lcw
This commit is contained in:
@ -24,7 +24,7 @@ const props = defineProps({
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '走访信息'
|
||||
default: '案件信息'
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
|
||||
@ -68,7 +68,7 @@ const props = defineProps({
|
||||
},
|
||||
titleValue: {
|
||||
type: String,
|
||||
default: "研判记录"
|
||||
default: "现实表现"
|
||||
},
|
||||
data: {
|
||||
type: Object,
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
<li @click="scrollToSection('historyAssembly-section')"
|
||||
:class="activeSection === 'historyAssembly-section' ? 'active' : ''" v-if="!butShow">案件信息</li>
|
||||
<li @click="scrollToSection('joblogging-section')"
|
||||
:class="activeSection === 'joblogging-section' ? 'active' : ''" v-if="!butShow">显示表现</li>
|
||||
:class="activeSection === 'joblogging-section' ? 'active' : ''" v-if="!butShow">现实表现</li>
|
||||
<li @click="scrollToSection('joblogging-joblog')"
|
||||
:class="activeSection === 'joblogging-joblog' ? 'active' : ''" v-if="!butShow">操作日志</li>
|
||||
</ul>
|
||||
@ -54,58 +54,30 @@
|
||||
<div id="controlInfo-section" v-if="!butShow">
|
||||
<ControlInfo ref="controlInfo" title="重点人" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="featinfo-section" v-if="!butShow">
|
||||
<Deployment ref="deployment" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="demandsInfo-section" v-if="!butShow">
|
||||
<Contact ref="contact" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="requestInfo-section" v-if="!butShow">
|
||||
<DynamicTrajectory ref="dynamicTrajectory" :disabled="disabled" :showBut="showBut" />
|
||||
</div>
|
||||
<div id="personnel-section" v-if="!butShow">
|
||||
<BehaviorInfo ref="behaviorInfo" :disabled="disabled" :showBut="showBut" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="judgmentRecord-section" v-if="!butShow">
|
||||
<VisitRecord ref="visitRecord" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="historyAssembly-section" v-if="!butShow" >
|
||||
<CaseInfo ref="caseInfo" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||
</div>
|
||||
|
||||
|
||||
<div id="joblogging-section" v-if="!butShow">
|
||||
<ActualPerformance ref="actualPerformance" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||
</div>
|
||||
|
||||
|
||||
<div id="joblogging-joblog" v-if="!butShow" >
|
||||
<CzModel ref="czModel" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -128,7 +100,8 @@ import VisitRecord from '../model/visitRecord.vue'
|
||||
import CaseInfo from '../model/caseInfo.vue'
|
||||
import ActualPerformance from '../model/actualPerformance.vue'
|
||||
import CzModel from '../model/czModel.vue'
|
||||
import { ref, onUnmounted } from "vue";
|
||||
import { ref, onUnmounted ,getCurrentInstance} from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const emit = defineEmits(["updateDate"]);
|
||||
const chooseMarksVisible = ref(false);
|
||||
const dialogForm = ref(false); //弹窗
|
||||
@ -228,13 +201,15 @@ const personnelTags = ref()
|
||||
const submit = async () => {
|
||||
// 使用Promise.all处理所有子组件的验证和数据获取
|
||||
const [infoData, personnelTagsData] = await Promise.all([
|
||||
info.value.throwData(),
|
||||
|
||||
info.value.throwData()
|
||||
// personnelTags.value.throwData(),
|
||||
]);
|
||||
tbGsxtZdrySave(infoData).then(res => {
|
||||
console.log(res);
|
||||
|
||||
proxy.$message({
|
||||
message: '新增成功',
|
||||
type: 'success',
|
||||
})
|
||||
close()
|
||||
})
|
||||
console.log(infoData);
|
||||
|
||||
|
||||
@ -80,8 +80,8 @@
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<el-link size="small" type="success" @click="handleremove(row.id)">移除</el-link>
|
||||
<el-link size="small" type="success" v-if="row.zdrZt == '01'" @click="handleSend(row.id)">送审</el-link>
|
||||
<el-link size="small" type="primary" v-if="row.zdrZt == '01'" @click="addEdit('edit', row)">编辑</el-link>
|
||||
<el-link size="small" type="success" v-if="row.zdrZt == '01'||row.zdrZt == '03'" @click="handleSend(row.id)">送审</el-link>
|
||||
<el-link size="small" type="primary" v-if="row.zdrZt == '01'||row.zdrZt == '03'" @click="addEdit('edit', row)">编辑</el-link>
|
||||
<el-link size="small" type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||
<el-link size="small" type="danger" @click="deleteRow(row.id)">删除</el-link>
|
||||
</template>
|
||||
|
||||
@ -101,7 +101,7 @@ const onComfirm = (val) => {
|
||||
tbGsxtZdryXsbxSaveOrUpdateXsbx(params).then(res => {
|
||||
gettbZdryClxxSelectPage()
|
||||
proxy.$message({
|
||||
message: '关联车辆添加成功',
|
||||
message: '现实表现添加成功',
|
||||
type: 'success'
|
||||
})
|
||||
})
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<el-input v-model="ruleForm.detentionCenterRecords[i].str" type="textarea"
|
||||
class="detentionFacilityInput" placeholder="请输入拘留所记录" />
|
||||
</el-form-item>
|
||||
<div style="width: 100px;">
|
||||
<div style="width: 100px;" v-if="showBut">
|
||||
<el-button type="primary" v-if="ruleForm.detentionCenterRecords.length != 1"
|
||||
@click="decreaseRecord(i, '拘留所')">−</el-button>
|
||||
<el-button type="primary" @click="addRecord(i, '拘留所')"
|
||||
@ -35,7 +35,7 @@
|
||||
<el-input v-model="ruleForm.prison[i].str" type="textarea" class="detentionFacilityInput"
|
||||
placeholder="请输入拘留所记录" />
|
||||
</el-form-item>
|
||||
<div style="width: 100px;">
|
||||
<div style="width: 100px;" v-if="showBut">
|
||||
<el-button type="primary" v-if="ruleForm.prison.length != 1"
|
||||
@click="decreaseRecord(i, '看守所')">−</el-button>
|
||||
<el-button type="primary" @click="addRecord(i, '看守所')"
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
<div class="headClass" style="">
|
||||
<h3>案件信息</h3>
|
||||
<el-button @click="AddPore" type="primary" v-if="showBut">新增</el-button>
|
||||
|
||||
</div>
|
||||
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
|
||||
@ -15,25 +15,16 @@
|
||||
</template>
|
||||
<template #ryLxdh>
|
||||
<div class="phone-input-container">
|
||||
<div class="inputGroup" v-for="(item,index) in listQuery.ryLxdh" :key="index">
|
||||
<div class="inputGroup" v-for="(item, index) in listQuery.ryLxdh" :key="index">
|
||||
<el-input v-model="listQuery.ryLxdh[index]" class="group" placeholder="请输入电话号码" />
|
||||
<div class="flex align-center but">
|
||||
<el-button type="primary" :icon="Plus" circle @click="addPhone" title="添加电话号码" v-if=" listQuery.ryLxdh.length-1 ==index"/>
|
||||
<div class="flex align-center but" v-if="showBut">
|
||||
<el-button type="primary" :icon="Plus" circle @click="addPhone" title="添加电话号码"
|
||||
v-if="listQuery.ryLxdh.length - 1 == index" />
|
||||
<el-button type="success" :icon="Minus" circle @click="removePhone(index)" title="删除电话号码" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<!-- <template #tags>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<el-button type="primary" :disabled="disabled" @click="chooseMarksVisible = true">
|
||||
选择标签
|
||||
</el-button>
|
||||
<div v-if="roleIds.length > 0" style="margin-left: 10px; color: #606266;">
|
||||
已选择 {{ roleIds.length }} 个标签
|
||||
</div>
|
||||
</div>
|
||||
</template> -->
|
||||
|
||||
</FormMessage>
|
||||
</div>
|
||||
@ -44,14 +35,14 @@
|
||||
<script setup>
|
||||
import * as rule from "@/utils/rules.js";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import { Plus ,Minus} from "@element-plus/icons-vue";
|
||||
import { Plus, Minus } from "@element-plus/icons-vue";
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||
import ChooseMarks from "@/components/ChooseList/ChooseMarks/index.vue";
|
||||
import { ref, reactive, onMounted, getCurrentInstance, watch } from "vue";
|
||||
import { tbGsxtZdryUpdate } from "@/api/zdr.js";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_XB, D_BZ_ZZMM, D_BZ_HYZK, D_BZ_MZ, D_BZ_XZQHDM, D_ZDRY_RYLX,D_BZ_RCBKZT, D_GS_ZDR_RYJB, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_ZDR_CZZT, D_BZ_WHCD, D_ZDRY_ZYLB } =
|
||||
proxy.$dict('D_BZ_XB', 'D_BZ_ZZMM', 'D_BZ_HYZK', 'D_BZ_MZ', "D_ZDRY_RYLX",'D_BZ_XZQHDM', 'D_BZ_RCBKZT', 'D_GS_ZDR_RYJB', 'D_GS_ZDR_YJDJ', 'D_GS_BK_SSJZ', 'D_GS_ZDR_CZZT', 'D_BZ_WHCD', 'D_ZDRY_ZYLB')
|
||||
const { D_BZ_XB, D_BZ_ZZMM, D_BZ_HYZK, D_BZ_MZ, D_BZ_XZQHDM, D_ZDRY_RYLX, D_BZ_RCBKZT, D_GS_ZDR_RYJB, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_ZDR_CZZT, D_BZ_WHCD, D_ZDRY_ZYLB } =
|
||||
proxy.$dict('D_BZ_XB', 'D_BZ_ZZMM', 'D_BZ_HYZK', 'D_BZ_MZ', "D_ZDRY_RYLX", 'D_BZ_XZQHDM', 'D_BZ_RCBKZT', 'D_GS_ZDR_RYJB', 'D_GS_ZDR_YJDJ', 'D_GS_BK_SSJZ', 'D_GS_ZDR_CZZT', 'D_BZ_WHCD', 'D_ZDRY_ZYLB')
|
||||
const props = defineProps({
|
||||
dataList: {
|
||||
type: Object,
|
||||
@ -80,7 +71,7 @@ const rules = reactive({
|
||||
zdrYjdj: [{ required: true, message: "请选择预警等级", trigger: "change" }],
|
||||
rylx: [{ required: true, message: "请选择人员类型", trigger: "change" }]
|
||||
});
|
||||
const listQuery = ref({ryLxdh:[""]}); //表单
|
||||
const listQuery = ref({ ryLxdh: [""] }); //表单
|
||||
const chooseMarksVisible = ref(false); // 控制标签选择弹窗显示
|
||||
const roleIds = ref([]); // 已选择的标签ID
|
||||
const formData = ref([
|
||||
@ -149,7 +140,7 @@ watch(() => props.dataList, (val) => {
|
||||
listQuery.value = deepClone(val);
|
||||
// 处理照片数据
|
||||
listQuery.value.ryzp = val.ryzp == null || val.ryzp == '' ? [] : [val.ryzp];
|
||||
listQuery.value.zdrSjjz = val.zdrSjjz == null || val.zdrSjjz == '' ? [] :JSON.parse(val.zdrSjjz);
|
||||
listQuery.value.zdrSjjz = val.zdrSjjz == null || val.zdrSjjz == '' ? [] : JSON.parse(val.zdrSjjz);
|
||||
// 处理标签ID数据,确保数据回显
|
||||
if (val.tagIds && Array.isArray(val.tagIds) && val.tagIds.length > 0) {
|
||||
roleIds.value = [...val.tagIds];
|
||||
@ -163,18 +154,23 @@ watch(() => props.dataList, (val) => {
|
||||
// 提交
|
||||
const submit = () => {
|
||||
loading.value = true
|
||||
gettbGsxtZdryUpdate()
|
||||
gettbGsxtZdryUpdate()
|
||||
};
|
||||
//
|
||||
const gettbGsxtZdryUpdate = () => {
|
||||
|
||||
|
||||
|
||||
|
||||
const promes = {
|
||||
...listQuery.value,
|
||||
ryzp: listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : "",
|
||||
ryLxdh: listQuery.value.ryLxdh,
|
||||
zdrSjjz:JSON.stringify(listQuery.value.zdrSjjz),
|
||||
zdrSjjz: JSON.stringify(listQuery.value.zdrSjjz),
|
||||
|
||||
}
|
||||
tbGsxtZdryUpdate(promes).then((res) => {
|
||||
elform.value.submit((data) => {
|
||||
tbGsxtZdryUpdate(promes).then((res) => {
|
||||
listQuery.value.ryzp = []
|
||||
proxy.$message({
|
||||
message: '更新成功',
|
||||
@ -185,6 +181,10 @@ const gettbGsxtZdryUpdate = () => {
|
||||
}).finally(() => {
|
||||
loading.value = false
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
|
||||
}
|
||||
// 添加电话号码
|
||||
const addPhone = () => {
|
||||
@ -198,8 +198,8 @@ const addPhone = () => {
|
||||
|
||||
// 删除电话号码
|
||||
const removePhone = (index) => {
|
||||
if (listQuery.value.ryLxdh .length > 1) {
|
||||
listQuery.value.ryLxdh .splice(index, 1);
|
||||
if (listQuery.value.ryLxdh.length > 1) {
|
||||
listQuery.value.ryLxdh.splice(index, 1);
|
||||
} else {
|
||||
// 清空输入但保留输入框
|
||||
listQuery.value.ryLxdh[0] = '';
|
||||
@ -210,37 +210,39 @@ const removePhone = (index) => {
|
||||
const throwData = () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (elform.value && elform.value.validate) {
|
||||
elform.value.validate((valid) => {
|
||||
if (valid) {
|
||||
// 过滤掉空的电话号码
|
||||
const validPhones = listQuery.value.ryLxdh.filter(phone => phone && phone.trim());
|
||||
if (validPhones.length === 0) {
|
||||
reject(new Error('请至少输入一个有效的联系电话'));
|
||||
return;
|
||||
}
|
||||
resolve({
|
||||
...listQuery.value,
|
||||
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
|
||||
ryLxdh: validPhones,
|
||||
zdrSjjz:JSON.stringify(listQuery.value.zdrSjjz),
|
||||
});
|
||||
} else {
|
||||
reject(new Error('表单验证失败,请检查输入信息'));
|
||||
elform.value.submit((data) => {
|
||||
// 过滤掉空的电话号码
|
||||
const validPhones = listQuery.value.ryLxdh.filter(phone => phone && phone.trim());
|
||||
if (validPhones.length === 0) {
|
||||
proxy.$message.warning('请至少输入一个有效的联系电话');
|
||||
reject(new Error('请至少输入一个有效的联系电话'));
|
||||
return;
|
||||
}
|
||||
});
|
||||
resolve({
|
||||
...listQuery.value,
|
||||
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
|
||||
ryLxdh: validPhones,
|
||||
zdrSjjz: JSON.stringify(listQuery.value.zdrSjjz),
|
||||
});
|
||||
})
|
||||
} else {
|
||||
// 如果没有验证方法,直接返回数据
|
||||
const validPhones = listQuery.value.ryLxdh.filter(phone => phone && phone.trim());
|
||||
if (validPhones.length === 0) {
|
||||
reject(new Error('请至少输入一个有效的联系电话'));
|
||||
return;
|
||||
}
|
||||
resolve({
|
||||
...listQuery.value,
|
||||
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
|
||||
ryLxdh: validPhones,
|
||||
zdrSjjz:JSON.stringify(listQuery.value.zdrSjjz),
|
||||
});
|
||||
elform.value.submit((data) => {
|
||||
// 如果没有验证方法,直接返回数据
|
||||
const validPhones = listQuery.value.ryLxdh.filter(phone => phone && phone.trim());
|
||||
if (validPhones.length === 0) {
|
||||
proxy.$message.warning('请至少输入一个有效的联系电话');
|
||||
reject(new Error('请至少输入一个有效的联系电话'));
|
||||
return;
|
||||
}
|
||||
resolve({
|
||||
...listQuery.value,
|
||||
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
|
||||
ryLxdh: validPhones,
|
||||
zdrSjjz: JSON.stringify(listQuery.value.zdrSjjz),
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
});
|
||||
};
|
||||
@ -313,23 +315,25 @@ h3 {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.inputGroup{
|
||||
margin-left: 10px;
|
||||
width: 100%;
|
||||
max-width: 400px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
.group{
|
||||
width: 250px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.but{
|
||||
display: flex;
|
||||
gap: 5px;
|
||||
}
|
||||
.inputGroup {
|
||||
margin-left: 10px;
|
||||
width: 100%;
|
||||
max-width: 400px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.group {
|
||||
width: 250px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.but {
|
||||
display: flex;
|
||||
gap: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-button--primary {
|
||||
background-color: #409eff !important;
|
||||
border-color: #409eff !important;
|
||||
@ -339,5 +343,4 @@ h3 {
|
||||
background-color: #67c23a !important;
|
||||
border-color: #67c23a !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@ -92,7 +92,8 @@ const pageData = reactive({
|
||||
const zdqtUpdate = (val) => {
|
||||
const params = {
|
||||
id: listData.value.id,
|
||||
bqList: pageData.tableData
|
||||
bqList: pageData.tableData,
|
||||
rySfzh: listData.value.rySfzh,
|
||||
}
|
||||
tbGsxtZdryUpdate(params).then(res => {
|
||||
proxy.$message({
|
||||
|
||||
@ -53,7 +53,6 @@ const addUpd = ref(true)
|
||||
watch(() => props.dataList, (val) => {
|
||||
if (val) {
|
||||
listData.value = val
|
||||
console.log(listData.value, 'listData.value')
|
||||
gettbZdryClxxSelectPage()
|
||||
}
|
||||
}, { deep: true })
|
||||
@ -98,6 +97,7 @@ const pageData = reactive({
|
||||
// 修改数据接口
|
||||
const dataModel = ref()
|
||||
const addMarks = (val) => {
|
||||
|
||||
const params = {
|
||||
...val,
|
||||
zdrid: listData.value.id,
|
||||
|
||||
Reference in New Issue
Block a user