This commit is contained in:
lcw
2025-09-29 18:11:07 +08:00
parent ffdbb04675
commit 93c711dca6
86 changed files with 395 additions and 338 deletions

View File

@ -24,7 +24,7 @@ const props = defineProps({
},
title: {
type: String,
default: '走访信息'
default: '案件信息'
},
dict: {
type: Object,

View File

@ -68,7 +68,7 @@ const props = defineProps({
},
titleValue: {
type: String,
default: "研判记录"
default: "现实表现"
},
data: {
type: Object,

View File

@ -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);

View File

@ -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>

View File

@ -101,7 +101,7 @@ const onComfirm = (val) => {
tbGsxtZdryXsbxSaveOrUpdateXsbx(params).then(res => {
gettbZdryClxxSelectPage()
proxy.$message({
message: '关联车辆添加成功',
message: '现实表现添加成功',
type: 'success'
})
})

View File

@ -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, '看守所')"

View File

@ -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"

View File

@ -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>

View File

@ -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({

View File

@ -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,

View File

@ -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
}

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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) => {

View File

@ -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",},
]
});

View File

@ -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>

View File

@ -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>