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,
|
||||
|
||||
@ -273,8 +273,16 @@ const clone = (val) => {
|
||||
}
|
||||
watch(() => props.defaultData, (val) => {
|
||||
if (val) {
|
||||
|
||||
gzmc.value = val.gzmc
|
||||
dataList.value = list.filter(item => {
|
||||
if (val.sjlx) {
|
||||
return item.key != 'jqlx'
|
||||
}
|
||||
if (val.jqlx){
|
||||
return item.key != 'sjlx'
|
||||
}
|
||||
return item
|
||||
})
|
||||
const data = dataList.value.map(item => {
|
||||
switch (item.key) {
|
||||
case 'cs':
|
||||
@ -314,15 +322,7 @@ watch(() => props.defaultData, (val) => {
|
||||
}
|
||||
})
|
||||
copyList.value = data.filter(item => item[item.key] != null)
|
||||
dataList.value = list.filter(item => {
|
||||
if (val.sjlx) {
|
||||
return item.key != 'jqlx'
|
||||
}
|
||||
if (val.jqlx){
|
||||
return item.key != 'sjlx'
|
||||
}
|
||||
return item
|
||||
})
|
||||
|
||||
} else {
|
||||
dataList.value=list
|
||||
}
|
||||
|
||||
@ -41,7 +41,6 @@ const defaultData = ref({})
|
||||
const SSYJ = '02'
|
||||
const YJGZ='01'
|
||||
onMounted(() => {
|
||||
|
||||
switch (props.item.mxlx) {
|
||||
case SSYJ:
|
||||
getmxglSsyjpzSelectList()
|
||||
@ -104,7 +103,8 @@ const addSsyj = () => {
|
||||
ElMessage.warning('请填写规则名称')
|
||||
return
|
||||
}
|
||||
if (!defaultData.value) {
|
||||
|
||||
if (!defaultData.value.id) {
|
||||
const promes = {
|
||||
mxid: props.item.id,
|
||||
...data
|
||||
@ -139,7 +139,10 @@ const addYjgzpzs = () => {
|
||||
ElMessage.warning('请事件类型和警情类型必须选择一个')
|
||||
return
|
||||
}
|
||||
if (!defaultData.value) {
|
||||
|
||||
|
||||
if (!defaultData.value.id) {
|
||||
console.log(props.item.id,"xxxxxxxxx");
|
||||
const promes = {
|
||||
mxid:props.item.id,
|
||||
...data
|
||||
@ -152,8 +155,6 @@ const addYjgzpzs = () => {
|
||||
ElMessage.error(err.message)
|
||||
});
|
||||
} else {
|
||||
console.log( defaultData.value.id);
|
||||
|
||||
editYjgzpz({
|
||||
id: defaultData.value.id,
|
||||
...data
|
||||
|
||||
@ -19,25 +19,33 @@
|
||||
<strong>模型名称:</strong>{{ it.mxmc }}
|
||||
</div>
|
||||
<div class="model-type flex">
|
||||
<strong>模型类型:</strong> <DictTag :tag="false" :value="it.mxlx" :options="D_MXGL_MXLX" />
|
||||
<strong>模型类型:</strong>
|
||||
<DictTag :tag="false" :value="it.mxlx" :options="D_MXGL_MXLX" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="model-image-container" @click="openYjList(it)">
|
||||
<img class="model-image"
|
||||
src="@/assets/images/mxbg.jpg" alt="">
|
||||
<img class="model-image" src="@/assets/images/mxbg.jpg" alt="">
|
||||
</div>
|
||||
<div class="model-actions">
|
||||
<span class="action-btn action-btn-view" @click.stop="openAddRule('', it)">
|
||||
<el-icon class="action-icon"><Document /></el-icon>查看规则
|
||||
<el-icon class="action-icon">
|
||||
<Document />
|
||||
</el-icon>查看规则
|
||||
</span>
|
||||
<span class="action-btn action-btn-edit" @click.stop="openAddModel('edit', it)">
|
||||
<el-icon class="action-icon"><ChatDotSquare /></el-icon>编辑
|
||||
<el-icon class="action-icon">
|
||||
<ChatDotSquare />
|
||||
</el-icon>编辑
|
||||
</span>
|
||||
<span class="action-btn action-btn-edit" @click.stop="openAddModel('detail', it)">
|
||||
<el-icon class="action-icon"><Edit /></el-icon>详情
|
||||
<span class="action-btn action-btn-edit" @click.stop="operationRule(it)">
|
||||
<el-icon class="action-icon">
|
||||
<Edit />
|
||||
</el-icon>执行
|
||||
</span>
|
||||
<span class="action-btn action-btn-delete" @click.stop="delDictItem(it.id)">
|
||||
<el-icon class="action-icon"><Files /></el-icon>删除
|
||||
<el-icon class="action-icon">
|
||||
<Files />
|
||||
</el-icon>删除
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
@ -53,7 +61,7 @@
|
||||
|
||||
<script setup>
|
||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import { getPageList, deleteEntity } from '@/api/model.js'
|
||||
import { getPageList, deleteEntity, getSsyjpzMxgzxl, SsyjselectList, getYjgzpzSelectList, getYjgzpzMxgzxl } from '@/api/model.js'
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
import { CirclePlus } from '@element-plus/icons-vue'
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
@ -62,12 +70,12 @@ import { reactive, ref, onMounted, getCurrentInstance, watch, defineEmits } from
|
||||
import AddModel from "../components/AddModel/addModel";
|
||||
const emit = defineEmits(['change'])
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_MXGL_MXLX ,D_BZ_RYBQ} = proxy.$dict("D_MXGL_MXLX","D_BZ_RYBQ")
|
||||
const { D_MXGL_MXLX, D_BZ_RYBQ } = proxy.$dict("D_MXGL_MXLX", "D_BZ_RYBQ")
|
||||
const searchBox = ref(); //搜索框
|
||||
const show = ref(false)
|
||||
const listHeight = ref()
|
||||
const SSYJ = '02'
|
||||
const YJGZ='01'
|
||||
const YJGZ = '01'
|
||||
const searchConfiger = ref([
|
||||
{ label: "模型名称", prop: "mxmc", placeholder: "请输入模型名称", showType: "input" },
|
||||
{
|
||||
@ -156,18 +164,56 @@ const openAddModel = (type, row) => {
|
||||
const openAddRule = (type, row) => {
|
||||
switch (row.mxlx) {
|
||||
case SSYJ:
|
||||
emitter.emit('changeModel', {row,name:'四色预警规则'})
|
||||
emitter.emit('changeModel', { row, name: '四色预警规则' })
|
||||
break;
|
||||
case YJGZ:
|
||||
emitter.emit('changeModel', {row,name:'预警规则'})
|
||||
case YJGZ:
|
||||
emitter.emit('changeModel', { row, name: '预警规则' })
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
const openYjList = (row) => {
|
||||
emitter.emit('changeModel', {row,name:'预警列表'})
|
||||
emitter.emit('changeModel', { row, name: '预警列表' })
|
||||
}
|
||||
const operationRule = async (row) => {
|
||||
if (row.mxlx == SSYJ) {
|
||||
try {
|
||||
const data = await SsyjselectList({ mxid: row.id })
|
||||
if (data.length > 0) {
|
||||
await getSsyjpzMxgzxl({ id: data[0].id })
|
||||
proxy.$message.success('运行成功')
|
||||
} else {
|
||||
proxy.$message.warning('未配置预警规则')
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
proxy.$message.error('运行失败')
|
||||
}
|
||||
}
|
||||
if (row.mxlx == YJGZ) {
|
||||
try {
|
||||
const data = await getYjgzpzSelectList({ mxid: row.id })
|
||||
if (data.length > 0) {
|
||||
await getYjgzpzMxgzxl({ id: data[0].id })
|
||||
proxy.$message.success('运行成功')
|
||||
} else {
|
||||
proxy.$message.warning('未配置预警规则')
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
|
||||
proxy.$message.error('运行失败')
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||
<template #bqDlMc>
|
||||
<el-input readonly @click="showDialog = true" v-model="listQuery.bqDlMc" placeholder="请选择标签大类" clearable />
|
||||
</template>
|
||||
</template>
|
||||
</FormMessage>
|
||||
</div>
|
||||
<!-- 选择框 -->
|
||||
@ -96,7 +96,7 @@ const close = () => {
|
||||
dialogForm.value = false;
|
||||
loading.value = false;
|
||||
if(props.type == '标签细类') formData.pop()
|
||||
|
||||
|
||||
};
|
||||
defineExpose({ init });
|
||||
</script>
|
||||
|
||||
@ -36,7 +36,7 @@ const pageData = reactive({
|
||||
{ label: "报警人电话", prop: "bjdh" },
|
||||
{ label: "报警人身份证", prop: "bjrzjhm"},
|
||||
{ label: "预警内容", prop: "bjnr", showOverflowTooltip: true },
|
||||
{ label: "报警时间", prop: "yjsj", showOverflowTooltip: true },
|
||||
{ label: "报警时间", prop: "bjsj", showOverflowTooltip: true },
|
||||
]
|
||||
});
|
||||
const init = (row) => {
|
||||
|
||||
@ -23,7 +23,13 @@
|
||||
<template #xwcs="{ row }">
|
||||
<span style="color: #0072ff;" @click="handleClick(row)">{{ row.xwcs }}</span>
|
||||
</template>
|
||||
|
||||
<template #bqYs="{ row }">
|
||||
<DictTag :value="row.bqYs" :tag="false" :options="D_GS_SSYJ" />
|
||||
</template>
|
||||
<template #controls="{ row }">
|
||||
<el-link type="primary">下发指令</el-link>
|
||||
<el-link type="success">查看反馈</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages
|
||||
@changeNo="changeNo"
|
||||
@ -48,7 +54,9 @@ import Search from "@/components/aboutTable/Search.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted } from "vue";
|
||||
import { reactive, ref, onMounted,getCurrentInstance } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_GS_SSYJ } = proxy.$dict("D_GS_SSYJ"); //获取字典数据
|
||||
const searchBox = ref(); //搜索框
|
||||
const searchConfiger = ref(
|
||||
[
|
||||
@ -79,7 +87,8 @@ const pageData = reactive({
|
||||
{ label: "行为大类", prop: "xldlmc"},
|
||||
{ label: "行为子类", prop: "xwzlmc", showOverflowTooltip: true },
|
||||
{ label: "行为描述", prop: "xwms", showOverflowTooltip: true },
|
||||
{ label: "行为次数", prop: "xwcs",showSolt: true },
|
||||
{ label: "行为次数", prop: "xwcs", showSolt: true },
|
||||
{ label: "行为颜色", prop: "bqYs",showSolt: true },
|
||||
{ label: "行为分值", prop: "xwfz",},
|
||||
]
|
||||
});
|
||||
|
||||
@ -21,6 +21,10 @@
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
>
|
||||
<template #controls="{ row }">
|
||||
<el-link type="primary">下发指令</el-link>
|
||||
<el-link type="success">查看反馈</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages
|
||||
@changeNo="changeNo"
|
||||
@ -68,7 +72,7 @@ const pageData = reactive({
|
||||
rowHieght: 61,
|
||||
showSelectType: "checkBox",
|
||||
loading: false,
|
||||
haveControls: false,
|
||||
// haveControls: false,
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
@ -134,4 +138,4 @@ const tabHeightFn = () => {
|
||||
.el-loading-mask {
|
||||
background: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -13,24 +13,18 @@
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="tabBox">
|
||||
<MyTable
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||
<template #controls="{ row }">
|
||||
<el-link type="primary">详情</el-link>
|
||||
<!-- 展示预警具体数据 -->
|
||||
<el-link type="success">研判报告</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages
|
||||
@changeNo="changeNo"
|
||||
@changeSize="changeSize"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"
|
||||
></Pages>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -45,30 +39,25 @@ import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const searchBox = ref();
|
||||
|
||||
const { D_MXGL_MXLX } = proxy.$dict("D_MXGL_MXLX")
|
||||
// 搜索配置
|
||||
const searchConfiger = ref([
|
||||
{ label: "姓名", prop: 'xm', placeholder: "请输入姓名", showType: "input"},
|
||||
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input"},
|
||||
{ label: "模型类型", prop: 'mxlx', placeholder: "请选择模型类型", showType: "select", options: [
|
||||
{ label: "行为模型", value: "1" },
|
||||
{ label: "身份模型", value: "2" },
|
||||
{ label: "关系模型", value: "3" },
|
||||
{ label: "轨迹模型", value: "4" }
|
||||
]},
|
||||
{ label: "模型类型", prop: 'mxlx', placeholder: "请选择模型类型", showType: "select", options: D_MXGL_MXLX },
|
||||
]);
|
||||
|
||||
const queryFrom = ref({});
|
||||
|
||||
// 页面数据
|
||||
const pageData = reactive({
|
||||
tableData: [],
|
||||
tableData: [
|
||||
{ mxlx: "四色预警", mxmc: "四色预警模型", yjyy: "四色预警模型", yjsj: "2025-1-2", clzt: "处理中" }
|
||||
],
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "checkBox",
|
||||
loading: false,
|
||||
haveControls: false,
|
||||
// haveControls: false,
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
@ -77,15 +66,11 @@ const pageData = reactive({
|
||||
},
|
||||
controlsWidth: 160,
|
||||
tableColumn: [
|
||||
{ label: "序号", prop: "xh" },
|
||||
{ label: "姓名", prop: "xm" },
|
||||
{ label: "身份证号", prop: "sfzh" },
|
||||
{ label: "电话", prop: "dh", },
|
||||
{ label: "模型类型", prop: "mxlx" },
|
||||
{ label: "模型名称", prop: "mxmc", },
|
||||
{ label: "预警原因", prop: "yjyy", showOverflowTooltip: true },
|
||||
{ label: "模型名称", prop: "mxmc", },
|
||||
{ label: "预警内容", prop: "yjyy", showOverflowTooltip: true },
|
||||
{ label: "预警时间", prop: "yjsj" },
|
||||
{ label: "处理状态", prop: "clzt" },
|
||||
// { label: "处理状态", prop: "clzt" },
|
||||
]
|
||||
});
|
||||
|
||||
@ -95,7 +80,7 @@ onMounted(() => {
|
||||
});
|
||||
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = {...val};
|
||||
queryFrom.value = { ...val };
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getList();
|
||||
};
|
||||
@ -135,4 +120,4 @@ const tabHeightFn = () => {
|
||||
.el-loading-mask {
|
||||
background: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user