This commit is contained in:
2025-07-03 17:47:01 +08:00
parent 1d3534bcb9
commit a72b8782bc
6 changed files with 534 additions and 1066 deletions

View File

@ -0,0 +1,190 @@
<template>
<el-dialog :title="titleValue" width="1400px" :model-value="modelValue" append-to-body @close="closed">
<div>
<el-form :model="listQuery" class="mosty-from-wrap" :inline="true">
<el-form-item label="标签名称">
<el-input placeholder="请输入标签名称" v-model="listQuery.bqMc" clearable ></el-input>
</el-form-item>
<el-form-item>
<el-button type="success" @click="handleFilter">查询</el-button>
<el-button type="info" @click="reset()"> 重置 </el-button>
</el-form-item>
</el-form>
<div class="tabBox" :class="props.Single ? 'tabBoxRadio' : ''" style="margin-top: 0px">
<el-table ref="multipleUserRef" :key="keyTabel" @selection-change="handleSelectionChange" :data="tableData" border :row-key="keyid" style="width: 100%" height="450">
<el-table-column type="selection" width="55" :reserve-selection="true"/>
<el-table-column prop="bqMc" align="center" label="标签名称"/>
<el-table-column prop="bqDm" align="center" label="标签代码"/>
<el-table-column prop="bqDj" align="center" label="标签等级">
<template #default="{ row }">
<DictTag :tag="false" :value="row.bqDj" :options="D_GS_BQ_DJ" />
</template>
</el-table-column>
<el-table-column prop="bqYs" align="center" label="标签颜色">
<template #default="{ row }">
<DictTag :value="row.bqYs" :tag="false" :options="D_GS_SSYJ" />
</template>
</el-table-column>
</el-table>
</div>
<div class="fenye" :style="{ top: tableHeight + 'px' }">
<el-pagination
class="pagination"
@size-change="handleSizeChange"
@pageCurrent-change="handleCurrentChange"
:pageCurrent-page="listQuery.pageCurrent"
:page-sizes="[10, 20, 50, 100]"
:page-size="listQuery.size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="closed">取消</el-button>
<el-button type="primary" @click="onComfirm">确认</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { qcckGet} from "@/api/qcckApi.js";
import { defineProps, ref ,getCurrentInstance, watch} from "vue";
const { proxy } = getCurrentInstance();
const { D_GS_BQ_DJ,D_GS_SSYJ } = proxy.$dict("D_GS_BQ_DJ","D_GS_SSYJ"); //获取字典数据
const props = defineProps({
modelValue: {
type: Boolean,
default:false
},
titleValue: {
type: String,
default: "选择标签"
},
LeaderType: {
type: String,
default: ""
},
//是否单选
Single: {
type: Boolean,
default: false
},
roleIds: {
type: Array,
default: []
}
});
const total = ref(0);
const listQuery = ref({
pageCurrent: 1,
pageSize: 20
});
const multipleUserRef = ref(null);
const multipleSelectionUser = ref([]);
const tableData = ref([]);
const emits = defineEmits(["update:modelValue", "choosed"]);
const keyTabel = ref(0)
const keyid = (row) => {
return row.id;
};
const closed = () => {
emits("update:modelValue", false);
};
const reset = () => {
listQuery.value = { pageCurrent: 1, pageSize: 20, };
getListData();
};
// 为用户分配角色
const onComfirm = () => {
const userList = multipleSelectionUser.value;
let list = [];
let listId = [];
userList.forEach((val) => {
if (listId.indexOf(val.id) == -1) {
list.push(val);
listId.push(val.id);
}
});
emits("choosed", list);
closed();
};
/**
* pageSize 改变触发
*/
const handleSizeChange = (currentSize) => {
listQuery.value.pageSize = currentSize;
getListData();
};
/**
* 页码改变触发
*/
const handleCurrentChange = (currentPage) => {
listQuery.value.pageCurrent = currentPage;
getListData();
};
const getListData = () => {
keyTabel.value++
const params = {bqLb:'02',...listQuery.vlue}
qcckGet(params,'/mosty-gsxt/tbGsxtBqgl/selectPage').then(res=>{
tableData.value = res.records || [];
total.value = res.total;
multipleUser();
})
};
//列表回显
function multipleUser() {
tableData.value.forEach((item) => {
multipleUserRef.value.toggleRowSelection(item, false);
if (props.roleIds.some((id) => id == item.id)) {
multipleUserRef.value.toggleRowSelection(item, true);
}
});
}
const handleFilter = () => {
listQuery.value.pageCurrent = 1;
getListData();
};
const handleSelectionChange = (val) => {
if (props.Single) {
if (val.length > 1) {
let del_row = val.shift();
multipleUserRef.value.toggleRowSelection(del_row, false);
}
multipleSelectionUser.value = val;
} else {
multipleSelectionUser.value = val;
}
};
watch(()=>props.modelValue,val=>{
if(val) handleFilter();
},{immediate:true})
</script>
<style lang="scss" scoped>
@import "@/assets/css/layout.scss";
@import "@/assets/css/element-plus.scss";
</style>
<style>
.tabBoxRadio .el-checkbox__inner {
border-radius: 50% !important;
}
.tabBoxRadio .el-table__header-wrapper .el-checkbox {
display: none;
}
.el-dialog__title {
color: #fff;
}
</style>

View File

@ -10,6 +10,14 @@
<el-form-item prop="uid" label="选择民警" v-if="props.type == '指定分配'"> <el-form-item prop="uid" label="选择民警" v-if="props.type == '指定分配'">
<MOSTY.Other @click="chooseUserVisible = true" readonly v-model="listQuery.uidMc" width="100%" clearable placeholder="请选择选择民警"/> <MOSTY.Other @click="chooseUserVisible = true" readonly v-model="listQuery.uidMc" width="100%" clearable placeholder="请选择选择民警"/>
</el-form-item> </el-form-item>
<el-form-item prop="bqList" label="添加标签" v-if="props.type == '添加标签'">
<div @click="chooseMarksVisible = true" style="border: 1px solid #e1e1e1;border-radius: 4px;" class="ww100 pl10 pointer">
<span v-if="!listQuery.bqList || listQuery.bqList.length == 0" style="color: #e7e7e7;">请选择添加标签</span>
<span v-else >
<el-tag @close.stop="closeTag(idx)" type="success" closable v-for="(it,idx) in listQuery.bqList" :key="idx">{{ it.bqMc }}</el-tag >
</span>
</div>
</el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<div class="tc"> <div class="tc">
@ -19,11 +27,13 @@
</template> </template>
</el-dialog> </el-dialog>
<ChooseUser v-model="chooseUserVisible" @choosedUsers="handleUserSelected" :roleIds="roleIds" /> <ChooseUser v-model="chooseUserVisible" @choosedUsers="handleUserSelected" :roleIds="roleIds" />
<ChooseMarks v-model="chooseMarksVisible" @choosed="choosed" :roleIds="roleIds" />
</template> </template>
<script setup> <script setup>
import ChooseUser from "@/components/MyComponents/ChooseUser/index.vue"; import ChooseUser from "@/components/MyComponents/ChooseUser/index.vue";
import ChooseMarks from "@/components/MyComponents/ChooseMarks/index.vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { qcckPost } from "@/api/qcckApi.js"; import { qcckPost } from "@/api/qcckApi.js";
import * as MOSTY from "@/components/MyComponents/index"; import * as MOSTY from "@/components/MyComponents/index";
@ -41,6 +51,7 @@ const props = defineProps({
dic:Object dic:Object
}) })
const chooseUserVisible = ref(false) const chooseUserVisible = ref(false)
const chooseMarksVisible = ref(false)
const roleIds = ref([]) const roleIds = ref([])
const emits = defineEmits(["update:modelValue",'getDepValue']); const emits = defineEmits(["update:modelValue",'getDepValue']);
const formValidate = ref() const formValidate = ref()
@ -48,25 +59,41 @@ const rules = reactive({
fxDj: [{ required: true, message: "请选择风险等级", trigger: "change" }], fxDj: [{ required: true, message: "请选择风险等级", trigger: "change" }],
ssbmdm: [{ required: true, message: "请选择所属部门", trigger: "change" }], ssbmdm: [{ required: true, message: "请选择所属部门", trigger: "change" }],
uid: [{ required: true, message: "请选择民警", trigger: "change" }], uid: [{ required: true, message: "请选择民警", trigger: "change" }],
bqList: [{ required: true, message: "请选择标签", trigger: "change" }],
}) })
const listQuery = ref({}); const listQuery = ref({});
// 选择民警
const handleUserSelected = (val) => { const handleUserSelected = (val) => {
listQuery.value.uid = val[0].id; listQuery.value.uid = val[0].id;
listQuery.value.uidMc = val[0].userName; listQuery.value.uidMc = val[0].userName;
roleIds.value = [val[0].id] roleIds.value = [val[0].id]
} }
// 选择标签
const choosed = (val) => {
listQuery.value.bqList = val.map(v=>{
return { bqDm:v.bqDm, bqId:v.id, bqLb:v.bqLb, bqLx:v.bqLx, bqMc:v.bqMc }
});
roleIds.value = val.map(v=>v.id)
}
// 删除数据
const closeTag = (idx) =>{
listQuery.value.bqList.splice(idx,1)
roleIds.value.splice(idx,1)
}
const submitForm = () =>{ const submitForm = () =>{
formValidate.value.validate((valid) => { formValidate.value.validate((valid) => {
if (!valid) return false; if (!valid) return false;
let params = { ids:props.ids, ...listQuery.value } let params = { ids:props.ids, ...listQuery.value }
let url = '' let url = ''
if( props.type == '警种变更') '/mosty-gsxt/tbGsxtRqfjRy/updateByBm' if( props.type == '警种变更') url = '/mosty-gsxt/tbGsxtRqfjRy/updateByBm'
if( props.type == '指定分配') '/mosty-gsxt/tbGsxtRqfjRy/updateByMj' if( props.type == '指定分配') url = '/mosty-gsxt/tbGsxtRqfjRy/updateByMj'
if( props.type == '级别变更') '/mosty-gsxt/tbGsxtRqfjRy/updateByFxDj' if( props.type == '级别变更') url = '/mosty-gsxt/tbGsxtRqfjRy/updateByFxDj'
if( props.type == '添加标签') url = '/mosty-gsxt/tbGsxtRqfjRy/updateAddBq'
qcckPost(params,url).then(res=>{ qcckPost(params,url).then(res=>{
ElMessage.success("修改成功"); ElMessage.success("成功");
emits('update:modelValue',false) emits('update:modelValue',false)
emits('change') emits('change')
}) })
@ -74,6 +101,7 @@ const submitForm = () =>{
} }
const handleClose = () =>{ const handleClose = () =>{
roleIds.value = []
emits('update:modelValue',false) emits('update:modelValue',false)
formValidate.value.resetFields(); formValidate.value.resetFields();
} }

View File

@ -127,7 +127,7 @@ const checkData = reactive({
hasChoose: ["警情"], hasChoose: ["警情"],
list: ["警情","人力情报","线索","民警处置文本", "交通事故"], list: ["警情","人力情报","线索","民警处置文本", "交通事故"],
}); });
const btnsList = reactive(['级别变更','警种变更','指定分配','添加标签','批量导入','导出','批量删除']) const btnsList = reactive(['级别变更','警种变更','指定分配','添加标签','导出','批量删除'])
const chooselx = ref('') const chooselx = ref('')
const isShow = ref(false) const isShow = ref(false)
@ -171,7 +171,7 @@ const pageData = reactive({
{ label: "现住地址", prop: "ryXzdz" ,showOverflowTooltip:true}, { label: "现住地址", prop: "ryXzdz" ,showOverflowTooltip:true},
{ label: "附件照片", prop: "ryFjZp" ,showOverflowTooltip:true}, { label: "附件照片", prop: "ryFjZp" ,showOverflowTooltip:true},
{ label: "管辖单位", prop: "gxDwDm" ,showOverflowTooltip:true}, { label: "管辖单位", prop: "gxDwDm" ,showOverflowTooltip:true},
{ label: "户籍地址", prop: "ssbm",showOverflowTooltip:true}, { label: "责任部门", prop: "ssbm",showOverflowTooltip:true},
{ label: "风险等级", prop: "fxDj",showOverflowTooltip:true, showSolt: true }, { label: "风险等级", prop: "fxDj",showOverflowTooltip:true, showSolt: true },
{ label: "风险类别", prop: "fxLb",showOverflowTooltip:true, showSolt: true }, { label: "风险类别", prop: "fxLb",showOverflowTooltip:true, showSolt: true },
{ label: "是否关注", prop: "sfGz",showOverflowTooltip:true, showSolt: true }, { label: "是否关注", prop: "sfGz",showOverflowTooltip:true, showSolt: true },
@ -243,7 +243,16 @@ const chooseDataBottom = (val) =>{
const chooseType = (val)=>{ const chooseType = (val)=>{
if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据"); if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据");
chooselx.value = val; chooselx.value = val;
switch(val){
case '级别变更':
case '警种变更':
case '指定分配':
case '添加标签':
isShow.value = true; isShow.value = true;
break;
case '批量删除':
break;
}
} }
const tabHeightFn = () => { const tabHeightFn = () => {

View File

@ -1,542 +0,0 @@
<template>
<div class="dialog" v-if="dialogForm">
<div class="head_box" style="width: 83vw">
<span class="title">{{ title }}</span>
<div>
<el-button size="small" type="primary" @click="close">暂存</el-button>
<el-button size="small" type="primary" @click="submit">确认</el-button>
<el-button size="small" @click="close">关闭</el-button>
</div>
</div>
<div class="cntinfo">
<div class="left">
<div class="top" ref="topBox">
<div class="title">图像信息</div>
<MyTable
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:tableHeight="250"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #cjhx>
<img width="60" height="60" :src="pro" alt="" />
</template>
<template #ytp>
<img width="60" height="60" :src="pro" alt="" />
</template>
<template #controls="{ row }">
<el-link size="small" type="success" @click="addEdit('edit', row)"
>研判确认</el-link
>
<el-link size="small" type="primary">查看</el-link>
<el-link size="small" type="danger" @click="deleteRow(row)"
>删除</el-link
>
</template>
</MyTable>
</div>
<div class="mt20">
<div class="title">人员信息</div>
<MyTable
:tableData="pageData.tableDataPeople"
:tableColumn="pageData.tableColumnPeople"
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #fxDj="{ row }">
<DictTag
:tag="false"
:value="row.fxDj"
:options="D_GS_RQFJ_FXDJ"
/>
</template>
<template #fxLb="{ row }">
<DictTag
:tag="false"
:value="row.fxLb"
:options="D_GS_RQFJ_FXLB"
/>
</template>
<template #sfGz="{ row }">
<DictTag :tag="false" :value="row.sfGz" :options="D_BZ_SF" />
</template>
<template #sfZbkry="{ row }">
<DictTag :tag="false" :value="row.sfZbkry" :options="D_BZ_SF" />
</template>
<template #sfZzdry="{ row }">
<DictTag :tag="false" :value="row.sfZzdry" :options="D_BZ_SF" />
</template>
<template #controls="{ row }">
<el-link size="small" type="primary" @click="addEdit('edit', row)"
>关联重点人</el-link
>
<el-link size="small" type="primary">查看</el-link>
<el-link size="small" type="primary" @click="deleteRow(row)"
>修改</el-link
>
</template>
</MyTable>
<Pages
class="mt10"
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
</div>
</div>
<el-divider direction="vertical" style="height: 100%" />
<div class="right noScollLine">
<div class="title">轨迹信息</div>
<div>
<div
class="step"
v-for="(item, index) in stepList"
:key="`${index}stepList`"
>
<div class="icon">
<div class="circle"></div>
<div class="line"></div>
</div>
<div>
<div>{{ item.time }}</div>
<div class="desc">
<div class="ellipsis mb5">事由{{ item.sy }}</div>
<div class="ellipsis mb5">数据来源{{ item.sjly }}</div>
<div class="ellipsis">所在地址{{ item.szdz }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
<el-dialog v-model="dialogVisible" title="请选择风险" width="500px">
<FormMessage
v-model="elform"
:formList="elformata"
ref="elformRef"
:rules="rules"
>
</FormMessage>
<template #footer>
<div class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="submitData"> 确定 </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup>
import { ref, reactive, onMounted, nextTick, getCurrentInstance } from "vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import { pa } from "element-plus/es/locale.mjs";
import { qcckPost } from "@/api/qcckApi.js";
const { proxy } = getCurrentInstance();
const { D_GS_RQFJ_FXDJ, D_GS_RQFJ_FXLB } = proxy.$dict(
"D_GS_RQFJ_FXDJ",
"D_GS_RQFJ_FXLB"
); //获取字典数据
const dialogForm = ref(false);
const activeName = ref("basic");
const title = ref("深度研判");
const listQuery = ref({});
const topBox = ref();
const areaOptions = ref([]); // 区域选项数据
const rowId = ref(null);
const rules = reactive({
fxDj: [{ required: true, message: "请选择风险等级", trigger: "change" }],
fxLb: [{ required: true, message: "请选择风险类别", trigger: "change" }]
});
const dialogVisible = ref(false);
// 初始化数据
const init = (id) => {
rowId.value = id;
dialogForm.value = true;
tabHeightFn();
// 根据type和row初始化表单数据
};
const close = () => {
dialogForm.value = false;
};
const elformRef = ref();
const elform = ref({}); //表单
const elformata = ref([
{ label: "风险等级", prop: "fxDj", type: "select", options: D_GS_RQFJ_FXDJ },
{ label: "风险类别", prop: "fxLb", type: "select", options: D_GS_RQFJ_FXLB }
]);
//确认
const submit = () => {
dialogVisible.value = true;
};
const submitData = () => {
elformRef.value.submit((data) => {
let url = "/mosty-gsxt/tbGsxtRqfjRy/updateSdfj";
let params = { ...data, id: rowId.value };
qcckPost(params, url)
.then((res) => {
proxy.$message({ type: "success", message: title.value + "成功" });
dialogVisible.value = true;
close();
emit("getList");
})
.catch(() => {});
});
};
const pageData = reactive({
tableData: [
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
}
],
tableDataPeople: [
{
xm: "111",
xb: "111",
sfzh: "111",
hjd: "111",
xjd: "111",
sjh: "111",
cph: "111",
gkzt: "111"
},
{
xm: "111",
xb: "111",
sfzh: "111",
hjd: "111",
xjd: "111",
sjh: "111",
cph: "111",
gkzt: "111"
},
{
xm: "111",
xb: "111",
sfzh: "111",
hjd: "111",
xjd: "111",
sjh: "111",
cph: "111",
gkzt: "111"
},
{
xm: "111",
xb: "111",
sfzh: "111",
hjd: "111",
xjd: "111",
sjh: "111",
cph: "111",
gkzt: "111"
},
{
xm: "111",
xb: "111",
sfzh: "111",
hjd: "111",
xjd: "111",
sjh: "111",
cph: "111",
gkzt: "111"
},
{
xm: "111",
xb: "111",
sfzh: "111",
hjd: "111",
xjd: "111",
sjh: "111",
cph: "111",
gkzt: "111"
}
],
keyCount: 0,
tableConfiger: {
rowHieght: 61,
showSelectType: "checkBox",
loading: false
},
total: 0,
pageConfiger: {
pageSize: 20,
pageCurrent: 1
},
controlsWidth: 220,
tableColumn: [
{ label: "图片资源", prop: "tpzy" },
{ label: "单位名称", prop: "dwmc" },
{ label: "资源来源详址", prop: "zylyxz" },
{ label: "采集画像", prop: "cjhx", showSolt: true },
{ label: "原图片", prop: "ytp", showSolt: true },
{ label: "人像相似度", prop: "rxxsd" }
],
tableColumnPeople: [
{ label: "姓名", prop: "ryXm" },
{ label: "英文姓名", prop: "ryXmYw" },
{ label: "别名", prop: "ryBm" },
{ label: "网名", prop: "ryWm" },
{ label: "绰号", prop: "ryCh" },
{ label: "手机号码", prop: "rySjhm" },
{ label: "身份证号码", prop: "rySfzh" },
{ label: "户籍地址", prop: "ryHjdz" },
{ label: "护照号码", prop: "ryHzhm" },
{ label: "现住地址", prop: "ryXzdz" },
{ label: "银行卡号", prop: "ryYhkh" },
{ label: "附件照片", prop: "ryFjZp" },
{ label: "管辖单位", prop: "gxDwDm" },
{ label: "风险等级", prop: "fxDj", showSolt: true },
{ label: "风险类别", prop: "fxLb", showSolt: true },
{ label: "是否关注", prop: "sfGz", showSolt: true },
{ label: "是否转布控人员", prop: "sfZbkry", showSolt: true },
{ label: "是否转重点人员", prop: "sfZzdry", showSolt: true }
]
});
const stepList = ref([
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
}
]);
// 表格高度计算
const tabHeightFn = () => {
nextTick(() => {
pageData.tableHeight = window.innerHeight - 410 - 250;
});
window.onresize = function () {
tabHeightFn();
};
};
defineExpose({ init });
</script>
<style lang="scss" scoped>
.dialog {
padding: 20px;
// :deep(.el-form-item__label) {
// background-color: #f7fafb;
// padding: 0px 8px;
// color: #000;
// font-weight: 500;
// border: 1px solid #e3e7ed;
// }
.head_box {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.cntinfo {
height: calc(100% - 70px);
overflow: hidden;
overflow-y: auto;
display: flex;
.title {
font-size: 20px;
font-weight: 700;
margin-bottom: 20px;
position: relative;
&::after {
content: "";
position: absolute;
bottom: 2px;
left: 0;
width: 78px;
height: 4px;
background: linear-gradient(
90deg,
#3597f9c4 0%,
rgba(53, 150, 249, 0) 100%
);
border-radius: 4px 4px 4px 4px;
}
}
.left {
width: calc(100% - 560px);
}
.right {
width: 400px;
padding: 10px 0;
overflow: auto;
.step {
// position: relative;
display: flex;
gap: 5px;
box-sizing: border-box;
.desc {
margin: 5px;
color: #929090;
width: 350px;
}
.icon {
// position: absolute;
// top: 0;
// left: 0;
text-align: center;
.circle {
height: 14px;
width: 14px;
border-radius: 50%;
background-color: rgb(3, 134, 251);
}
.line {
margin: 0 auto;
width: 0;
height: calc(100% - 14px);
border: 1px dashed rgb(3, 134, 251);
}
}
}
}
}
.form-row {
display: flex;
.el-form-item {
flex: 1;
}
}
.upload-group {
display: flex;
// gap: 20px;
.el-form-item {
flex: 1;
}
}
.unit {
margin-left: 5px;
}
::v-deep .el-input__inner {
height: 36px !important;
line-height: 36px !important;
border-radius: 0;
color: #777575;
}
}
.el-form-item--default {
margin-bottom: 0px;
}
</style>

View File

@ -1,221 +0,0 @@
<template>
<div class="dialog" v-if="dialogForm">
<div class="head_box">
<span class="title">{{ title }}</span>
<div>
<el-button size="small" @click="close">关闭</el-button>
</div>
</div>
<div class="cntinfo">
<el-tabs v-model="activeName">
<el-tab-pane label="场所信息" name="basic">
<el-form :model="listQuery" :label-width="230" label-position="left">
<div class="flex align-center">
<div style="width: calc(100% - 176px);">
<div class="form-row">
<el-form-item label="统一社会信用代码">
<el-input v-model="listQuery.tyshdm" placeholder="ktv"/>
</el-form-item>
<el-form-item label="单位名称(营业执照登记名称)">
<el-input v-model="listQuery.djmc" placeholder="请输入"/>
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="场所名称">
<el-input v-model="listQuery.csmc" placeholder="请输入"/>
</el-form-item>
<el-form-item label="场所联系电话">
<el-input v-model="listQuery.cslxdh" placeholder="请输入"/>
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="经营状况">
<el-input v-model="listQuery.csdm" placeholder="请输入"/>
</el-form-item>
<el-form-item label="场所面积">
<el-input v-model="listQuery.csmj" placeholder="请输入"/>
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="开业日期">
<el-input v-model="listQuery.kyrq" placeholder="请输入"/>
</el-form-item>
</div>
</div>
<img height="130" src="@/assets/images/person.png" alt="">
</div>
<el-form-item label="单位注册地址">
<el-input v-model="listQuery.dwzcdz" placeholder="请输入"/>
</el-form-item>
<el-form-item label="场所地址">
<el-input v-model="listQuery.csdz" placeholder="请输入"/>
</el-form-item>
<div class="flex align-center">
<div style="width: calc(100% - 176px);">
<div class="form-row">
<el-form-item label="法定代表人">
<el-input v-model="listQuery.fddbr" placeholder="请输入"/>
</el-form-item>
<el-form-item label="法定代表人证件号码">
<el-input v-model="listQuery.fddbrzjhm" placeholder="请输入"/>
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="法定代表人联系电话">
<el-input v-model="listQuery.fddbrLxdh" placeholder="请输入"/>
</el-form-item>
<el-form-item label="法定代表人居住地址">
<el-input v-model="listQuery.fddbrJzdz" placeholder="请输入"/>
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="场所负责人">
<el-input v-model="listQuery.csfzr" placeholder="请输入"/>
</el-form-item>
<el-form-item label="场所负责人身份证号">
<el-input v-model="listQuery.csfzrSfzh" placeholder="请输入"/>
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="场所负责人联系方式">
<el-input v-model="listQuery.csfzrLxfs" placeholder="请输入"/>
</el-form-item>
<el-form-item label="场所负责人居住地址">
<el-input v-model="listQuery.csfzrJzdz" placeholder="请输入"/>
</el-form-item>
</div>
</div>
<div>
<img height="65" style="width: 100%;" src="@/assets/images/person.png" alt="">
<img height="65" style="width: 100%;" src="@/assets/images/person.png" alt="">
</div>
</div>
<div class="upload-group">
<el-form-item label="营业执照照片">
<img height="130" src="@/assets/images/person.png" alt="">
<img height="130" src="@/assets/images/person.png" alt="">
<img height="130" src="@/assets/images/person.png" alt="">
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="机修场所备案编号">
<el-input v-model="listQuery.jxcsbabh" placeholder="请输入"/>
</el-form-item>
<el-form-item label="场所备案机构名称">
<el-input v-model="listQuery.ylcsbajgmc" placeholder="请输入"/>
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="备案登记日期">
<el-input v-model="listQuery.badjrq" placeholder="请输入"/>
</el-form-item>
<el-form-item label="所属辖区">
<el-input v-model="listQuery.ssxq" placeholder="请输入"/>
</el-form-item>
</div>
<div class="form-row">
<el-form-item label="责任民警">
<el-input v-model="listQuery.zrmj" placeholder="请输入"/>
</el-form-item>
<el-form-item label="警号">
<el-input v-model="listQuery.jh" placeholder="请输入"/>
</el-form-item>
</div>
</el-form>
</el-tab-pane>
<el-tab-pane label="从业人员" name="staff">
<!-- 从业人员表格 -->
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
<script setup>
import { ref, reactive } from 'vue';
import { Plus } from '@element-plus/icons-vue';
const dialogForm = ref(false);
const activeName = ref('basic');
const title = ref('3D打印业场所管理详情');
const listQuery = ref({});
const areaOptions = ref([]); // 区域选项数据
// 初始化数据
const init = (type, row,) => {
dialogForm.value = true;
// 根据type和row初始化表单数据
};
const close = () => {
dialogForm.value = false;
};
defineExpose({init})
</script>
<style lang="scss" scoped>
.dialog {
padding: 20px;
:deep(.el-form-item__label) {
background-color: #F7FAFB;
padding: 0px 8px;
color: #000;
font-weight: 500;
border: 1px solid #E3E7ED;
}
.head_box {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.cntinfo{
height: calc(100% - 70px);
overflow: hidden;
overflow-y: auto;
}
.form-row {
display: flex;
.el-form-item {
flex: 1;
}
}
.upload-group {
display: flex;
// gap: 20px;
.el-form-item {
flex: 1;
}
}
.unit {
margin-left: 5px;
}
::v-deep .el-input__inner{
height: 36px !important;
line-height: 36px !important;
border-radius: 0;
color: #777575;
}
}
.el-form-item--default{
margin-bottom: 0px;
}
</style>

View File

@ -1,44 +1,8 @@
<template> <template>
<div class="statistical-analysis"> <div class="statistical-analysis">
<!-- 左侧树形菜单 --> <div class="left">
<div class="left-menu"> <div style="background:#fff" class="pl10 pr10 pb10 pt10">
<!-- 这个部分用的是组件-后期替换 --> <div class="title">图像信息</div>
<el-tree
:data="treeData"
:props="defaultProps"
@node-click="handleNodeClick"
default-expand-all
/>
</div>
<!-- 右侧内容区 -->
<div class="right-content">
<Search
:searchArr="searchConfiger"
@submit="onSearch"
@reset="onReset"
:key="pageData.keyCount"
>
<template #defaultSlot>
<CheckBox :data="checkData" @changeData="changeData"></CheckBox>
</template>
</Search>
<div class="tableCnt mb10 pl10 pr10">
<PageTitle title="发掘内容" style="color: #333">
<el-button type="primary" size="small" @click="addEdit('add', '')">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
<span style="vertical-align: middle">新增</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">导入内容</span>
</el-button>
<el-button type="danger" size="small" @click="exportData">
<el-icon style="vertical-align: middle"><Delete /></el-icon>
<span style="vertical-align: middle">删除</span>
</el-button>
</PageTitle>
<div>
<MyTable <MyTable
:tableData="pageData.tableData" :tableData="pageData.tableData"
:tableColumn="pageData.tableColumn" :tableColumn="pageData.tableColumn"
@ -48,313 +12,353 @@
:controlsWidth="pageData.controlsWidth" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData" @chooseData="chooseData"
> >
<template #fjLx="{ row }"> <template #cjhx>
<DictTag :tag="false" :value="row.fjLx" :options="D_GS_RQFJ_LX" /> <img width="60" height="60" :src="pro" alt="" />
</template>
<template #ytp>
<img width="60" height="60" :src="pro" alt="" />
</template> </template>
<!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-link size="small" type="danger" @click="deleteRow(row)" <el-link size="small" type="success" @click="addEdit('edit', row)" >研判确认</el-link >
>删除</el-link <el-link size="small" type="primary">查看</el-link>
> <el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
<el-link size="small" type="primary" @click="viewDetails(row)"
>查看</el-link
>
</template> </template>
</MyTable> </MyTable>
<!-- <div class="ww100 flex just-center mt8">
<el-button type="primary">智能解析</el-button>
</div> -->
</div> </div>
</div> <div style="background:#fff" class="mt10 pl10 pr10 pb10 pt10" >
<div class="tableCnt mb10 pl10 pr10"> <div class="title">人员信息</div>
<PageTitle
title="模型智能识别/LP解析结果"
style="color: #333"
></PageTitle>
<div ref="searchBox" class="mb8">
<el-button
v-for="(it, idx) in btns"
:key="idx"
:type="it.type"
:icon="it.icon"
size="small"
@click="importData"
>
{{ it.label }}
</el-button>
</div>
<div>
<MyTable <MyTable
:tableData="pageData.tableData2" :tableData="pageData.tableDataPeople"
:tableColumn="pageData.tableColumn2" :tableColumn="pageData.tableColumnPeople"
:tableHeight="pageData.tableHeight2" :tableHeight="pageData.tableHeight1"
:key="pageData.keyCount" :key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger2" :tableConfiger="pageData.tableConfiger1"
:controlsWidth="pageData.controlsWidth2" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData" @chooseData="chooseData"
> >
<!-- 操作 --> <template #ryXm="{ row }">
<template #controls="{ row }"> <div>姓名{{ row.ryXm }} &nbsp;</div>
<el-link size="small" type="primary" @click="handleDeepIn(row.id)" <div>电话{{ row.rySjhm }} &nbsp;</div>
>深度研判</el-link <div>身份证{{ row.rySfzh }} </div>
> </template>
<el-link size="small" type="primary" @click="viewDetails(row)" <template #fxDj="{ row }">
>查看</el-link <DictTag :tag="false" :value="row.fxDj" :options="D_GS_RQFJ_FXDJ"/>
> </template>
<el-link size="small" type="primary" @click="viewDetails(row)" <template #fxLb="{ row }">
>修改</el-link <DictTag :tag="false" :value="row.fxLb" :options="D_GS_RQFJ_FXLB"/>
> </template>
<el-link size="small" type="danger" @click="deleteRow(row)" <template #czfs="{ row }">
>删除</el-link <div>关注<DictTag :tag="false" style="display: inline;" :value="row.sfGz" :options="D_BZ_SF" /> &nbsp;</div>
> <div>布控人员<DictTag :tag="false" style="display: inline;" :value="row.sfZbkry" :options="D_BZ_SF" />&nbsp;</div>
<div>重点人员<DictTag :tag="false" style="display: inline;" :value="row.sfZzdry" :options="D_BZ_SF" /></div>
</template> </template>
</MyTable> </MyTable>
<Pages <Pages
@changeNo="changeNo" @changeNo="changeNo"
@changeSize="changeSize" @changeSize="changeSize"
:tableHeight="pageData.tableHeight2" :tableHeight="pageData.tableHeight1"
:pageConfiger="{ :pageConfiger="{ ...pageData.pageConfiger, total: pageData.total }"
...pageData.pageConfiger, />
total: pageData.total
}"
></Pages>
</div> </div>
</div> </div>
<div class="right">
<div class="title">轨迹信息</div>
<ul class="cntBox">
<li class="step" v-for="(item, index) in stepList" :key="index">
<div style="color: #000;">{{ item.time }}</div>
<div class="desc">
<div class="ellipsis mb5">事由{{ item.sy }}</div>
<div class="ellipsis mb5">数据来源{{ item.sjly }}</div>
<div class="ellipsis">所在地址{{ item.szdz }}</div>
</div>
</li>
</ul>
</div> </div>
</div> </div>
<DeepIn ref="deepIn" @getList="getList" ></DeepIn>
</template> </template>
<script setup> <script setup>
import DeepIn from "./components/deepIn.vue"; import { qcckGet } from "@/api/qcckApi.js";
import CheckBox from "@/components/checkBox/index.vue"; import { ref, reactive, onMounted, getCurrentInstance } from "vue";
import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue"; import FormMessage from "@/components/aboutTable/FormMessage.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js"; import { qcckPost } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { D_GS_RQFJ_LX } = proxy.$dict("D_GS_RQFJ_LX"); //获取字典数据 const { D_GS_RQFJ_FXDJ, D_GS_RQFJ_FXLB } = proxy.$dict("D_GS_RQFJ_FXDJ","D_GS_RQFJ_FXLB"); //获取字典数据
const searchConfiger = ref([
{
label: "管辖部门",
prop: "department",
placeholder: "请选择管辖部门",
showType: "select"
},
{ label: "是否关注", prop: "sfgz", showType: "defaultSlot" }
]);
const checkData = reactive({
list: ["是", "否"],
hasChoose: ["是", "否"]
});
const pageData = reactive({ const pageData = reactive({
tableData: [ tableData: [
{ nrbh: "测试内容", lx: "1", nr: "测试内容" },
{ nrbh: "测试内容", lx: "1", nr: "测试内容" }
],
tableData2: [
{ {
pm: "1", tpzy: "GBJD01",
lx: "1", dwmc: "工布江达重点人",
zp: "xx", zylyxz: "涉稳",
xm: "张三", cjhx: "系统新增",
sfzh: "12345619900101001X", ytp: "低级",
jzdz: "浙江省杭州市西湖区", rxxsd: "2025/05/05"
rylb: "xx", },
bkyy: "xx", {
fxdj: "xx", tpzy: "GBJD01",
fxjf: "xx", dwmc: "工布江达重点人",
mxbq: "xx", zylyxz: "涉稳",
sfgz: "是" cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
} }
], ],
tableDataPeople: [],
keyCount: 0, keyCount: 0,
tableConfiger: { tableConfiger: {
rowHieght: 61, rowHieght: 61,
showSelectType: "checkBox", showSelectType: "checkBox",
loading: false loading: false
}, },
tableConfiger2: { tableConfiger1: {
rowHieght: 61, rowHieght: 61,
showSelectType: "checkBox", showSelectType: "null",
loading: false, loading: false,
showIndex: false haveControls:false
}, },
tableHeight: 230,
total: 0, total: 0,
pageConfiger: { pageConfiger: {
pageSize: 20, pageSize: 20,
pageCurrent: 1 pageCurrent: 1
}, },
controlsWidth: 120, controlsWidth: 220,
controlsWidth2: 220,
tableColumn: [ tableColumn: [
{ label: "发掘类型", prop: "fjLx", showSolt: true }, { label: "图片资源", prop: "tpzy" },
{ label: "发掘文本 ", prop: "fjWb" } { label: "单位名称", prop: "dwmc" },
{ label: "资源来源详址", prop: "zylyxz" },
{ label: "采集画像", prop: "cjhx", showSolt: true },
{ label: "原图片", prop: "ytp", showSolt: true },
{ label: "人像相似度", prop: "rxxsd" }
], ],
tableColumn2: [ tableColumnPeople: [
{ label: "姓名", prop: "ryXm" }, { label: "姓名", prop: "ryXm",showOverflowTooltip:true ,showSolt: true},
{ label: "英文姓名", prop: "ryXmYw" }, { label: "户籍地址", prop: "ryHjdz" ,showOverflowTooltip:true},
{ label: "别名", prop: "ryBm" }, { label: "护照号码", prop: "ryHzhm" ,showOverflowTooltip:true},
{ label: "网名", prop: "ryWm" }, { label: "现住地址", prop: "ryXzdz" ,showOverflowTooltip:true},
{ label: "绰号", prop: "ryCh" }, { label: "附件照片", prop: "ryFjZp" ,showOverflowTooltip:true},
{ label: "手机号码", prop: "rySjhm" }, { label: "管辖单位", prop: "gxDwDm" ,showOverflowTooltip:true},
{ label: "身份证号码", prop: "rySfzh" }, { label: "责任部门", prop: "ssbm",showOverflowTooltip:true},
{ label: "户籍地址", prop: "ryHjdz" }, { label: "风险等级", prop: "fxDj",showOverflowTooltip:true, showSolt: true },
{ label: "护照号码", prop: "ryHzhm" }, { label: "风险类别", prop: "fxLb",showOverflowTooltip:true, showSolt: true },
{ label: "现住地址", prop: "ryXzdz" }, { label: "处置方式", prop: "czfs",showOverflowTooltip:true, showSolt: true },
{ label: "银行卡号", prop: "ryYhkh" },
{ label: "附件照片", prop: "ryFjZp" },
{ label: "管辖单位", prop: "gxDwDm" },
{ label: "风险等级", prop: "fxDj", showSolt: true },
{ label: "风险类别", prop: "fxLb", showSolt: true },
{ label: "是否关注", prop: "sfGz", showSolt: true },
{ label: "是否转布控人员", prop: "sfZbkry", showSolt: true },
{ label: "是否转重点人员", prop: "sfZzdry", showSolt: true }
] ]
}); });
const btns = reactive([ const stepList = ref([
{ label: "新增", type: "primary", icon: "CirclePlus" },
{ label: "一件布控", type: "primary" },
{ label: "级别变更", type: "primary" },
{ label: "警种变更", type: "primary" },
{ label: "指定分配", type: "primary" },
{ label: "添加标签", type: "primary" },
{ label: "协控申请", type: "primary" },
{ label: "撤控申请", type: "primary" },
{ label: "移交管控", type: "primary" },
{ label: "批量导入", type: "primary" },
{ label: "导出", type: "primary" },
{ label: "批量删除", type: "danger", icon: "Delete" }
]);
const queryFrom = ref({});
const searchBox = ref();
// 树形菜单数据
const treeData = ref([
{ {
label: "林芝市公安局200", time: "2025-4-25 16:40",
children: [ sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
{ label: "工布江达县公安局100" }, sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
{ label: "工布江达城区派出所10" }, szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
{ label: "某某某派出所10" }, },
{ label: "某某某公安局100" } {
] time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
} }
]); ]);
const defaultProps = {
children: "children",
label: "label"
};
// 搜索
const onSearch = (val) => {
queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1;
getList();
};
const changeNo = (val) => { const changeNo = (val) => {
pageData.pageConfiger.pageCurrent = val; pageData.pageConfiger.pageCurrent = val;
getModelList(); getList();
}; };
const changeSize = (val) => { const changeSize = (val) => {
pageData.pageConfiger.pageSize = val; pageData.pageConfiger.pageSize = val;
getModelList();
};
// 获取内容列表
const getList = (val) => {
pageData.tableConfiger.loading = true;
let data = { ...queryFrom.value };
let url = "/mosty-gsxt/tbGsxtRqfjNr/selectPage";
qcckGet(data, url)
.then((res) => {
pageData.tableData = res.records || [];
pageData.tableConfiger.loading = false;
})
.catch(() => {
pageData.tableConfiger.loading = false;
});
};
//获取模型识别列表
const getModelList = (val) => {
pageData.tableConfiger2.loading = true;
let data = { ...pageData.pageConfiger };
let url = "/mosty-gsxt/tbGsxtRqfjRy/selectPage";
qcckGet(data, url)
.then((res) => {
pageData.tableData2 = res.records || [];
pageData.total2 = res.total;
pageData.tableConfiger2.loading = false;
})
.catch(() => {
pageData.tableConfiger2.loading = false;
});
};
//删除操作
const deleteRow = (row) => {
qcckGet({}, "/mosty-gsxt/tbGsxtRqfjNr/closeById/" + row.id)
.then((res) => {
ElMessage.success("删除成功");
getList(); getList();
};
//获取模型识别列表
const getList = () => {
let data = { ...pageData.pageConfiger };
qcckGet(data, "/mosty-gsxt/tbGsxtRqfjRy/selectPage").then((res) => {
pageData.tableDataPeople = res.records || [];
pageData.total = res.total;
}) })
.catch(() => {});
};
// 事件处理函数
const handleNodeClick = (data) => {
console.log(data);
};
const deepIn = ref();
// 处理深度研判
const handleDeepIn = (id) => {
deepIn.value.init(id);
}; };
// 表格高度计算
const tabHeightFn = () => { const tabHeightFn = () => {
pageData.tableHeight2 = pageData.tableHeight =( window.innerHeight - 280 ) / 2;
window.innerHeight - searchBox.value.offsetHeight - 690; pageData.tableHeight1 =(( window.innerHeight - 280 ) / 2 )- 50;
window.onresize = function () { window.onresize = function () {
tabHeightFn(); tabHeightFn();
}; };
}; };
onMounted(()=>{ onMounted(()=>{
getList();
tabHeightFn(); tabHeightFn();
getModelList(); getList()
}); })
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.statistical-analysis { .statistical-analysis {
width: 100%; width: 100%;
height: 100%; height: 100%;
.left-menu { padding: 10px 10px 0 10px ;
float: left; box-sizing: border-box;
width: 280px; overflow: hidden;
height: calc(100% - 20px); .title {
padding: 20px; font-size: 20px;
margin-top: 20px; font-weight: 700;
border-radius: 4px; margin-bottom: 20px;
background-color: #fff; position: relative;
border-right: 1px solid #e8e8e8; color: #333;
} &::after {
.right-content { content: "";
float: left; position: absolute;
width: calc(100% - 452px); bottom: -4px;
height: 100%; left: 0;
padding: 0 20px 0; width: 78px;
margin-top: 20px; height: 4px;
margin-left: 10px; background: linear-gradient( 90deg, #3597f9c4 0%, rgba(53, 150, 249, 0) 100%);
border-radius: 4px; border-radius: 4px 4px 4px 4px;
}
}
.left {
width: calc(100% - 410px);
height: 100%;
float: left;
}
.right {
width: 400px;
height: 100%;
padding: 10px 10px 0 10px;
margin-left: 10px;
float: right;
box-sizing: border-box; box-sizing: border-box;
.tableCnt {
height: calc((100vh - 253px) / 2);
background: #fff; background: #fff;
border-radius: 4px; .cntBox{
height: calc(100% - 60px);
overflow: hidden;
overflow-y: auto;
.step {
padding-left: 20px;
box-sizing: border-box;
position: relative;
border-left: 3px dashed #0072ff;
margin-left: 10px;
&::before{
position: absolute;
content: '';
width: 20px;
height: 20px;
background: #0072ff;
border-radius: 50%;
left: -12px;
top: 0;
}
.desc {
margin: 5px;
color: #929090;
} }
} }
} }
}
.form-row {
display: flex;
.el-form-item {
flex: 1;
}
}
.upload-group {
display: flex;
// gap: 20px;
.el-form-item {
flex: 1;
}
}
.unit {
margin-left: 5px;
}
::v-deep .el-input__inner {
height: 36px !important;
line-height: 36px !important;
border-radius: 0;
color: #777575;
}
}
.el-form-item--default {
margin-bottom: 0px;
}
</style> </style>