Merge branch 'main' of http://61.139.16.27:26684/zy_oyj/sgxt_web
This commit is contained in:
BIN
gsxt/gsxt.zip
BIN
gsxt/gsxt.zip
Binary file not shown.
File diff suppressed because one or more lines are too long
1
gsxt/static/css/chunk-1789b809.d44ba6a6.css
Normal file
1
gsxt/static/css/chunk-1789b809.d44ba6a6.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
gsxt/static/css/chunk-4036b933.44ab7927.css
Normal file
1
gsxt/static/css/chunk-4036b933.44ab7927.css
Normal file
File diff suppressed because one or more lines are too long
1
gsxt/static/css/chunk-5aab06d5.88ecda79.css
Normal file
1
gsxt/static/css/chunk-5aab06d5.88ecda79.css
Normal file
File diff suppressed because one or more lines are too long
1
gsxt/static/css/chunk-7394af44.3d020e22.css
Normal file
1
gsxt/static/css/chunk-7394af44.3d020e22.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
gsxt/static/css/chunk-b1a51bc8.d52654e7.css
Normal file
1
gsxt/static/css/chunk-b1a51bc8.d52654e7.css
Normal file
File diff suppressed because one or more lines are too long
1
gsxt/static/css/chunk-bae0ea5a.872fe21d.css
Normal file
1
gsxt/static/css/chunk-bae0ea5a.872fe21d.css
Normal file
File diff suppressed because one or more lines are too long
1
gsxt/static/js/app.5243490b.js
Normal file
1
gsxt/static/js/app.5243490b.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
gsxt/static/js/chunk-1789b809.3d357c58.js
Normal file
4
gsxt/static/js/chunk-1789b809.3d357c58.js
Normal file
File diff suppressed because one or more lines are too long
1
gsxt/static/js/chunk-19a2e7ba.f3e6af4f.js
Normal file
1
gsxt/static/js/chunk-19a2e7ba.f3e6af4f.js
Normal file
File diff suppressed because one or more lines are too long
1
gsxt/static/js/chunk-2a4f4670.dec2dbca.js
Normal file
1
gsxt/static/js/chunk-2a4f4670.dec2dbca.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
gsxt/static/js/chunk-4036b933.393cce32.js
Normal file
1
gsxt/static/js/chunk-4036b933.393cce32.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
gsxt/static/js/chunk-5aab06d5.2beff1f4.js
Normal file
4
gsxt/static/js/chunk-5aab06d5.2beff1f4.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
gsxt/static/js/chunk-7394af44.d546619b.js
Normal file
1
gsxt/static/js/chunk-7394af44.d546619b.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
gsxt/static/js/chunk-b1a51bc8.23f094f0.js
Normal file
1
gsxt/static/js/chunk-b1a51bc8.23f094f0.js
Normal file
File diff suppressed because one or more lines are too long
1
gsxt/static/js/chunk-bae0ea5a.b1f647d8.js
Normal file
1
gsxt/static/js/chunk-bae0ea5a.b1f647d8.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
50
gsxt/static/js/chunk-vendors.fb1461fd.js
Normal file
50
gsxt/static/js/chunk-vendors.fb1461fd.js
Normal file
File diff suppressed because one or more lines are too long
@ -88,3 +88,85 @@ export const xxcjSelectPage = (params) => {
|
||||
params
|
||||
})
|
||||
}
|
||||
// 情报采集打标签
|
||||
export const xxcjDbqList = (data) => {
|
||||
return request({
|
||||
url: api + `/xxcj/xxdbq`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 情报采集肯定
|
||||
export const xxcjXxqd = (params) => {
|
||||
return request({
|
||||
url: api + `/xxcj/xxkd`,
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
// 情报采集追加
|
||||
export const xxcjAddBc = (data) => {
|
||||
return request({
|
||||
url: api + `/xxcj/bc/addEntity`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 情报采集修改
|
||||
export const xxcjUpdateBc = (data) => {
|
||||
return request({
|
||||
url: api + `/xxcj/bc/updateEntity`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 情报采集补充信息查询
|
||||
export const xxcjSelectListBc = (data) => {
|
||||
return request({
|
||||
url: api + `/xxcj/bc/selectList`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 情报采集删除补充信息
|
||||
export const xxcjDeletesBc = (data) => {
|
||||
return request({
|
||||
url: api + `/xxcj/bc/deletes`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 情报采集分组
|
||||
export const xxcjPzgzbm = (data) => {
|
||||
return request({
|
||||
url: api + `/xxcj/pzgzbm`,
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 情报采集分页查询
|
||||
export const xxcjZxsSelectPage = (params) => {
|
||||
return request({
|
||||
url: api + `/xxcj/zxs/selectPage`,
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
// 情报采集增加
|
||||
export const xxcjZhcSelectPage = (params) => {
|
||||
return request({
|
||||
url: api + `/xxcj/zhc/selectPage`,
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
// 情报采集分页查询
|
||||
export const xxcjMjjfSelectPage = (params) => {
|
||||
return request({
|
||||
url: api + `/xxcj/mjjf/selectPage`,
|
||||
method: "get",
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
@ -532,7 +532,7 @@ export const publicRoutes = [
|
||||
path: "/openSourceList",
|
||||
name: "openSourceList",
|
||||
component: () => import("@/views/backOfficeSystem/HumanIntelligence/listView/index"),
|
||||
meta: { title: "开源列表", icon: "article", qbjbList: '01' },
|
||||
meta: { title: "共享列表", icon: "article", qbjbList: '01' },
|
||||
}, {
|
||||
path: "/socialInformationCrculated",
|
||||
name: "changeTheClue",
|
||||
@ -545,7 +545,15 @@ export const publicRoutes = [
|
||||
component: () => import("@/views/backOfficeSystem/HumanIntelligence/ConversionSynthesis/index"),
|
||||
meta: { title: "转合成", icon: "article" },
|
||||
},
|
||||
|
||||
{
|
||||
path: "/CollectPoints",
|
||||
name: "CollectPoints",
|
||||
component: () => import("@/views/backOfficeSystem/HumanIntelligence/CollectPoints/index"),
|
||||
meta: {
|
||||
title: "采集积分",
|
||||
icon: "article"
|
||||
}
|
||||
}
|
||||
// {
|
||||
// path: "/MakeAcomment",
|
||||
// name: "MakeAcomment",
|
||||
|
||||
@ -0,0 +1,160 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle title="采集积分">
|
||||
<!-- <el-button type="primary" @click="addEdit('add', '')">
|
||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||
<span style="vertical-align: middle">新增</span>
|
||||
</el-button> -->
|
||||
</PageTitle>
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
<div ref="searchBox">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="tabBox">
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||
<template #jflylx="{ row }">
|
||||
<DictTag :tag="false" :value="row.jflylx" :options="D_BZ_LCZT" />
|
||||
</template>
|
||||
<template #jflx="{ row }">
|
||||
<span v-if="row.jflx === '01'"> 优秀信息员</span>
|
||||
<span v-else-if="row.jflx === '02'">优秀研判员</span>
|
||||
</template>
|
||||
<!-- 操作 -->
|
||||
<!-- <template #controls="{ row }">
|
||||
<el-link type="primary" @click="addEdit('edit', row)">详情</el-link>
|
||||
</template> -->
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
<!-- 编辑详情 -->
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import { xxcjMjjfSelectPage } from '@/api/xxcj.js'
|
||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {D_BZ_LCZT} =proxy.$dict("D_BZ_LCZT")
|
||||
const detailDiloag = ref();
|
||||
const show = ref(false)
|
||||
const searchConfiger = ref([
|
||||
|
||||
{
|
||||
label: "积分来源类型",
|
||||
prop: "jflylx",
|
||||
placeholder: "请选择积分来源类型",
|
||||
showType: "select",
|
||||
options: D_BZ_LCZT
|
||||
},
|
||||
{
|
||||
label: "积分类型",
|
||||
prop: "jflx",
|
||||
placeholder: "请选择积分类型",
|
||||
showType: "select",
|
||||
options: [
|
||||
{ label: "优秀信息员", value: "01" },
|
||||
{ label: "优秀研判员", value: "02" },
|
||||
]
|
||||
},
|
||||
]);
|
||||
const searchBox = ref(); //搜索框
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
loading: false,
|
||||
haveControls: false
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
controlsWidth: 160, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "姓名", prop: "xm" },
|
||||
{ label: "身份证号", prop: "sfzh" },
|
||||
{ label: "积分类型", prop: "jflx",showSolt:true },
|
||||
{ label: "积分获得时间", prop: "hdsj" },
|
||||
{ label: "积分来源类型", prop: "jflylx",showSolt:true },
|
||||
{ label: "积分", prop: "jf"},
|
||||
]
|
||||
});
|
||||
onMounted(() => {
|
||||
tabHeightFn();
|
||||
getList()
|
||||
});
|
||||
const listQuery=ref({})
|
||||
// 搜索
|
||||
const onSearch = (val) => {
|
||||
listQuery.value = { ...val };
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getList()
|
||||
}
|
||||
|
||||
const changeNo = (val) => {
|
||||
pageData.pageConfiger.pageCurrent = val;
|
||||
getList()
|
||||
}
|
||||
const changeSize = (val) => {
|
||||
pageData.pageConfiger.pageSize = val;
|
||||
getList()
|
||||
}
|
||||
|
||||
const getList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
const params = {
|
||||
pageCurrent: pageData.pageConfiger.pageCurrent,
|
||||
pageSize: pageData.pageConfiger.pageSize,
|
||||
...listQuery.value
|
||||
}
|
||||
|
||||
xxcjMjjfSelectPage(params).then(res => {
|
||||
console.log(res);
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total;
|
||||
|
||||
}).finally(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 新增
|
||||
const addEdit = (type, row) => {
|
||||
show.value = true;
|
||||
nextTick(() => {
|
||||
detailDiloag.value.init(type, row,);
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||
window.onresize = function () {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-loading-mask {
|
||||
background: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
</style>
|
||||
@ -41,8 +41,8 @@ watch(() => dialogForm.value, (val) => {
|
||||
{ label: "情报标题", prop: "qbmc", type: "input", width: '45%' },
|
||||
{ label: "转线索时间", prop: "zxssj", type: "datetime", width: '45%' },
|
||||
{ label: "线索编号", prop: "xsBh", type: "input", width: '45%' },
|
||||
{ label: "采集类型", prop: "cjLx", type: "select", options: props.dict.D_GS_XS_LX, width: '45%' },
|
||||
{ label: "情报类型", prop: "qblx", type: "select", options: props.dict.D_GS_XS_LX, width: '45%' },
|
||||
// { label: "采集类型", prop: "cjLx", type: "select", options: props.dict.D_GS_XS_LX, width: '45%' },
|
||||
// { label: "情报类型", prop: "qblx", type: "select", options: props.dict.D_GS_XS_LX, width: '45%' },
|
||||
{ label: "情报内容", prop: "qbnr", type: "textarea", width: '100%' },
|
||||
]
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle title="转线索">
|
||||
<PageTitle title="转合成">
|
||||
</PageTitle>
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
@ -39,10 +39,9 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import { useRoute } from 'vue-router'
|
||||
import { qbcjZhcSelectPage } from "@/api/qbcj.js";
|
||||
import { xxcjZhcSelectPage } from "@/api/xxcj.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
||||
import AddForm from "./addForm.vue"
|
||||
import { getItem } from '@//utils/storage.js'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_CJLX, D_GS_XS_LX } = proxy.$dict("D_BZ_CJLX", "D_GS_XS_LX"); //获取字典数据
|
||||
const detailDiloag = ref();
|
||||
@ -84,8 +83,8 @@ const pageData = reactive({
|
||||
controlsWidth: 240,
|
||||
tableColumn: [
|
||||
{ label: "情报标题", prop: "qbmc" },
|
||||
{ label: "情报类型", prop: "qblx", showSolt: true },
|
||||
{ label: "情报来源", prop: "cjlx", showSolt: true },
|
||||
// { label: "情报类型", prop: "qblx", showSolt: true },
|
||||
// { label: "情报来源", prop: "cjlx", showSolt: true },
|
||||
{ label: "转线索时间", prop: "zxssj" },
|
||||
{ label: "情报内容", prop: "qbnr" },
|
||||
{ label: "所属部门", prop: "ssbm" },
|
||||
@ -116,7 +115,7 @@ const changeSize = (val) => {
|
||||
const getList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||
qbcjZhcSelectPage(data).then(res => {
|
||||
xxcjZhcSelectPage(data).then(res => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total;
|
||||
pageData.tableConfiger.loading = false;
|
||||
|
||||
@ -41,8 +41,8 @@ watch(() => dialogForm.value, (val) => {
|
||||
{ label: "情报标题", prop: "qbmc", type: "input", width: '45%' },
|
||||
{ label: "转线索时间", prop: "zxssj", type: "datetime", width: '45%' },
|
||||
{ label: "线索编号", prop: "xsBh", type: "input", width: '45%' },
|
||||
{ label: "采集类型", prop: "cjLx", type: "select", options: props.dict.D_GS_XS_LX, width: '45%' },
|
||||
{ label: "情报类型", prop: "qblx", type: "select", options: props.dict.D_GS_XS_LX, width: '45%' },
|
||||
// { label: "采集类型", prop: "cjLx", type: "select", options: props.dict.D_GS_XS_LX, width: '45%' },
|
||||
// { label: "情报类型", prop: "qblx", type: "select", options: props.dict.D_GS_XS_LX, width: '45%' },
|
||||
{ label: "情报内容", prop: "qbnr", type: "textarea", width: '100%' },
|
||||
]
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import { useRoute } from 'vue-router'
|
||||
import { qbcjZxsSelectPage } from "@/api/qbcj.js";
|
||||
import { xxcjZxsSelectPage } from "@/api/xxcj.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
||||
import AddForm from "./addForm.vue"
|
||||
import { getItem } from '@//utils/storage.js'
|
||||
@ -97,8 +97,8 @@ const pageData = reactive({
|
||||
controlsWidth: 240,
|
||||
tableColumn: [
|
||||
{ label: "情报标题", prop: "qbmc" },
|
||||
{ label: "情报类型", prop: "qblx", showSolt: true },
|
||||
{ label: "情报来源", prop: "cjlx", showSolt: true },
|
||||
// { label: "情报类型", prop: "qblx", showSolt: true },
|
||||
// { label: "情报来源", prop: "cjlx", showSolt: true },
|
||||
{ label: "转线索时间", prop: "zxssj" },
|
||||
{ label: "情报内容", prop: "qbnr" },
|
||||
{ label: "所属部门", prop: "ssbm" },
|
||||
@ -135,7 +135,7 @@ const changeSize = (val) => {
|
||||
const getList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||
qbcjZxsSelectPage(data).then(res => {
|
||||
xxcjZxsSelectPage(data).then(res => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total;
|
||||
pageData.tableConfiger.loading = false;
|
||||
|
||||
@ -0,0 +1,150 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" :title="title" :width="width" @close="close" append-to-body>
|
||||
<div style="height: 50vh; overflow: auto;">
|
||||
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules" />
|
||||
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="close">取消</el-button>
|
||||
<el-button type="primary" @click="submit">
|
||||
确认
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
import { onMounted, reactive, watch, ref, computed, getCurrentInstance } from 'vue'
|
||||
import { ElMessage, ElEmpty } from 'element-plus'
|
||||
import { xxcjPzgzbm, xxcjSelectByid } from "@/api/xxcj.js";
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
width: {
|
||||
type: String,
|
||||
default: '50%'
|
||||
}, tableColumn: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}, dict: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
dataList: {
|
||||
type: Array,
|
||||
default: () => ([])
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '配置部门'
|
||||
}
|
||||
})
|
||||
onMounted(() => {
|
||||
|
||||
})
|
||||
const emit = defineEmits(['update:modelValue', 'getList'])
|
||||
// 过滤后的数据
|
||||
const listQuery = ref({})
|
||||
const rules = ref({
|
||||
fxfzrq: [
|
||||
{ required: true, message: '请选择关注部门', trigger: 'blur' }
|
||||
]
|
||||
})
|
||||
const formData = ref([
|
||||
{ label: "关注部门", prop: "ssbmdm", depMc: 'ssbm', type: "department", width: '45%', multiple: true },
|
||||
])
|
||||
const elform = ref(null)
|
||||
watch(() => props.modelValue, (newVal) => {
|
||||
if (newVal) {
|
||||
listQuery.value.ssbmdm = props.dataList.gzbmList.map(item => item.ssbmdm)
|
||||
}
|
||||
})
|
||||
// 搜索相关
|
||||
const close = () => {
|
||||
emit('update:modelValue', false)
|
||||
}
|
||||
const submit = () => {
|
||||
elform.value.submit(async (val) => {
|
||||
try {
|
||||
const list = listQuery.value.ssbmdm.map((item, index) => {
|
||||
return {
|
||||
ssbmdm: item,
|
||||
ssbm: listQuery.value.ssbm[index],
|
||||
qbid: props.dataList.id
|
||||
}
|
||||
})
|
||||
const promes = { list }
|
||||
await xxcjPzgzbm(promes)
|
||||
proxy.$message({ type: "success", message: "配置成功" });
|
||||
close()
|
||||
emit('getList')
|
||||
} catch (error) {
|
||||
proxy.$message({ type: "error", message: error.message });
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 搜索区域样式 */
|
||||
.search-container {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.search-input {
|
||||
width: 100%;
|
||||
max-width: 500px;
|
||||
}
|
||||
|
||||
/* 内容展示区域样式 */
|
||||
.content-container {
|
||||
height: 40vh;
|
||||
overflow: auto;
|
||||
border: 1px solid #ebeef5;
|
||||
border-radius: 4px;
|
||||
padding: 16px;
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
.content-area {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* 数据列表样式 */
|
||||
.data-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.data-item {
|
||||
padding: 12px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ebeef5;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.data-item:hover {
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.08);
|
||||
border-color: #409EFF;
|
||||
}
|
||||
|
||||
/* 空状态样式 */
|
||||
.empty-state {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 200px;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,196 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" :title="title" :width="width" @close="close" append-to-body>
|
||||
<!-- 搜索区域 -->
|
||||
<div class="search-container">
|
||||
<el-input v-model="searchQuery" placeholder="请输入搜索内容" clearable class="search-input" />
|
||||
</div>
|
||||
|
||||
<!-- 内容展示区域 -->
|
||||
<div class="content-container">
|
||||
<div class="content-area">
|
||||
<!-- 预留内容展示空间 -->
|
||||
<div v-if="filteredData.length > 0" class="data-list">
|
||||
<el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">
|
||||
全选
|
||||
</el-checkbox>
|
||||
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
|
||||
<el-checkbox v-for="(item, index) in filteredData" :key="index" :label="item.dm">
|
||||
{{ item.zdmc }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
<div v-else class="empty-state">
|
||||
<el-empty description="暂无数据" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="close">取消</el-button>
|
||||
<el-button type="primary" @click="submit">
|
||||
确认
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
import { onMounted, reactive, watch, ref, computed } from 'vue'
|
||||
import { ElMessage, ElEmpty } from 'element-plus'
|
||||
import { xxcjDbqList, xxcjSelectByid } from "@/api/xxcj.js";
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
width: {
|
||||
type: String,
|
||||
default: '50%'
|
||||
}, tableColumn: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}, dict: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
dataList: {
|
||||
type: Array,
|
||||
default: () => ([])
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '自定义标签'
|
||||
}
|
||||
})
|
||||
onMounted(() => {
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:modelValue', 'getList'])
|
||||
|
||||
|
||||
|
||||
// 过滤后的数据
|
||||
const filteredData = computed(() => {
|
||||
if (!props.dict.D_XXCJ_BQLX) return []
|
||||
if (!searchQuery.value) return props.dict.D_XXCJ_BQLX
|
||||
const query = searchQuery.value.toLowerCase()
|
||||
return props.dict.D_XXCJ_BQLX.filter(item => {
|
||||
return item.zdmc && item.zdmc.toLowerCase().includes(query)
|
||||
})
|
||||
})
|
||||
// 搜索相关
|
||||
const searchQuery = ref('')
|
||||
|
||||
const close = () => {
|
||||
emit('update:modelValue', false)
|
||||
}
|
||||
const submit = () => {
|
||||
|
||||
const a = checkedCities.value.map(v => {
|
||||
return props.dict.D_XXCJ_BQLX.find(item => item.dm == v)
|
||||
})
|
||||
const promes = a.map(item => {
|
||||
return {
|
||||
qbid: props.dataList.id,
|
||||
bqdm: item.dm,
|
||||
bqmc: item.zdmc,
|
||||
}
|
||||
})
|
||||
xxcjDbqList({ list: promes }).then(res => {
|
||||
ElMessage({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
showClose: true,
|
||||
})
|
||||
emit('getList')
|
||||
close()
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 选择标签
|
||||
const checkAll = ref(false)
|
||||
const isIndeterminate = ref(false)
|
||||
const checkedCities = ref([])
|
||||
const handleCheckAllChange = (val) => {
|
||||
checkedCities.value = val ? filteredData.value.map(item => item.dm) : []
|
||||
isIndeterminate.value = false
|
||||
}
|
||||
const handleCheckedCitiesChange = (value) => {
|
||||
const checkedCount = value.length
|
||||
checkAll.value = checkedCount === filteredData.value.length
|
||||
isIndeterminate.value = checkedCount > 0 && checkedCount < filteredData.value.length
|
||||
}
|
||||
// 当对话框显示时处理表格列配置
|
||||
watch(() => props.modelValue, (newVal) => {
|
||||
if (newVal) {
|
||||
xxcjSelectByid({ id: props.dataList.id }).then(res => {
|
||||
checkedCities.value = res.glbqList.map(v => v.bqdm)
|
||||
checkAll.value = res.glbqList.length == props.dict.D_XXCJ_BQLX.length
|
||||
isIndeterminate.value = res.glbqList.length < props.dict.D_XXCJ_BQLX.length
|
||||
|
||||
})
|
||||
}
|
||||
}, { deep: true })
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 搜索区域样式 */
|
||||
.search-container {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.search-input {
|
||||
width: 100%;
|
||||
max-width: 500px;
|
||||
}
|
||||
|
||||
/* 内容展示区域样式 */
|
||||
.content-container {
|
||||
height: 40vh;
|
||||
overflow: auto;
|
||||
border: 1px solid #ebeef5;
|
||||
border-radius: 4px;
|
||||
padding: 16px;
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
.content-area {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* 数据列表样式 */
|
||||
.data-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.data-item {
|
||||
padding: 12px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ebeef5;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.data-item:hover {
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.08);
|
||||
border-color: #409EFF;
|
||||
}
|
||||
|
||||
/* 空状态样式 */
|
||||
.empty-state {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 200px;
|
||||
}
|
||||
</style>
|
||||
@ -153,12 +153,8 @@ const getDepValue = (e) => {
|
||||
const close = () => {
|
||||
listQuery.value = {}
|
||||
listQuery.value.attachmentPath = ''
|
||||
emit('update:modelValue', false)
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
getsendFqzl,
|
||||
close
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@ -13,20 +13,6 @@
|
||||
<div class="info-value">{{ item.sxsbsj }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-row">
|
||||
<div class="info-item">
|
||||
<div class="info-label">情报类型:</div>
|
||||
<div class="info-value">
|
||||
<DictTag :tag="false" :value="item.qblx" :options="dict.D_GS_XS_LX" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<div class="info-label">情报来源:</div>
|
||||
<div class="info-value">
|
||||
<DictTag :tag="false" :value="item.cjLx" :options="dict.D_BZ_CJLX" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-section">
|
||||
<div class="info-label">情报内容:</div>
|
||||
<div class="info-content">{{ item.qbnr }}</div>
|
||||
|
||||
@ -22,6 +22,9 @@ import { onMounted, reactive, watch, ref } from 'vue'
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { qbcjCzzt, qbcjCzztEdit } from "@/api/qbcj.js"
|
||||
|
||||
|
||||
import { xxcjAddBc,xxcjUpdateBc } from "@/api/xxcj.js"
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
@ -91,18 +94,20 @@ const formData = ref([
|
||||
])
|
||||
const submit = () => {
|
||||
elform.value.submit((val) => {
|
||||
const promes = {
|
||||
xsid: props.dataList.id,
|
||||
let promes = {
|
||||
qbid: props.dataList.id,
|
||||
...listQuery.value
|
||||
}
|
||||
if (props.updeteBool) {
|
||||
qbcjCzztEdit(promes).then(res => {
|
||||
promes.czlx=props.title=='信息追加'?'02':'01'
|
||||
xxcjUpdateBc(promes).then(res => {
|
||||
ElMessage.success('修改成功')
|
||||
close()
|
||||
emit('getqbcjCzztList')
|
||||
})
|
||||
} else {
|
||||
qbcjCzzt(promes).then(res => {
|
||||
promes.czlx=props.title=='信息追加'?'02':'01'
|
||||
xxcjAddBc(promes).then(res => {
|
||||
ElMessage.success('新增成功')
|
||||
close()
|
||||
})
|
||||
|
||||
@ -10,41 +10,111 @@
|
||||
<div class="form-container">
|
||||
<div class="form-content" v-loading="loading">
|
||||
<!-- <div class="form_cnt"> -->
|
||||
<FormMessage :disabled="disabled" v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||
</FormMessage>
|
||||
<FormMessage :disabled="disabled" v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||
</FormMessage>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
<div class="ml50 mr50 timeline-container" v-if="disabled">
|
||||
<div class="timeline-title">信息流程展示</div>
|
||||
<el-timeline class="timeline-full-width">
|
||||
<el-timeline-item :timestamp="item.czsj" placement="top" v-for="(item, index) in lcList" :key="index">
|
||||
<el-card class="process-card">
|
||||
<div class="process-info">
|
||||
<div class="info-label">处置人:</div>
|
||||
<div class="info-value">{{ item.czrxm || '未记录' }}</div>
|
||||
</div>
|
||||
<div class="process-info">
|
||||
<div class="info-label">处置结果:</div>
|
||||
<div class="info-value">
|
||||
<DictTag :tag="false" :value="item.czzt" :options="dict.D_BZ_QBCZZT" />
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
<MOSTY.Empty :show="lcList.length == 0" :imgSize="100"></MOSTY.Empty>
|
||||
<div class="tags-section" v-if="disabled">
|
||||
<h3 class="tags-title">关注部门</h3>
|
||||
<div class="tags-container">
|
||||
<div v-for="(tag, index) in listQuery.gzbmList" :key="tag.id || index" class="tag-item">
|
||||
<div class="tag-content">
|
||||
{{ tag.ssbm }}
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="!listQuery.gzbmList || listQuery.gzbmList.length === 0" class="no-tags">
|
||||
暂无标签
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tags-section" v-if="disabled">
|
||||
<h3 class="tags-title">关联标签</h3>
|
||||
<div class="tags-container">
|
||||
<div v-for="(tag, index) in listQuery.glbqList" :key="tag.id || index" class="tag-item">
|
||||
<div class="tag-content">
|
||||
{{ tag.bqmc }}
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="!listQuery.glbqList || listQuery.glbqList.length === 0" class="no-tags">
|
||||
暂无标签
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tags-section" v-if="disabled">
|
||||
<h3 class="tags-title">续保信息</h3>
|
||||
<div class="list-container">
|
||||
<div v-for="(item, index) in dataList.xb" :key="item.id || index" class="list-item">
|
||||
<div class="list-content">
|
||||
{{ item.bcnr }}
|
||||
</div>
|
||||
<div class="tag-actions">
|
||||
<el-icon class="action-icon edit-icon" :size="32" @click="openPursue('续保信息', item)">
|
||||
<EditPen />
|
||||
</el-icon>
|
||||
<el-icon class="action-icon delete-icon" :size="32" @click="handleDeleteTag(item)">
|
||||
<Delete />
|
||||
</el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="!dataList.xb || dataList.xb.length === 0" class="no-tags">
|
||||
暂无标签
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tags-section" v-if="disabled">
|
||||
<h3 class="tags-title">补充信息</h3>
|
||||
<div class="list-container">
|
||||
<div v-for="(item, index) in dataList.bc" :key="item.id || index" class="list-item">
|
||||
<div class="list-content">
|
||||
{{ item.bcnr }}
|
||||
</div>
|
||||
<div class="tag-actions">
|
||||
<el-icon class="action-icon edit-icon" :size="32" @click="openPursue('信息追加', item)">
|
||||
<EditPen />
|
||||
</el-icon>
|
||||
<el-icon class="action-icon delete-icon" :size="32" @click="handleDeleteTag(item)">
|
||||
<Delete />
|
||||
</el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="!dataList.bc || dataList.bc.length === 0" class="no-tags">
|
||||
暂无标签
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ml50 mr50 timeline-container" v-if="disabled">
|
||||
<div class="timeline-title">信息流程展示</div>
|
||||
<el-timeline class="timeline-full-width">
|
||||
<el-timeline-item :timestamp="item.czsj" placement="top" v-for="(item, index) in lcList" :key="index">
|
||||
<el-card class="process-card">
|
||||
<div class="process-info">
|
||||
<div class="info-label">处置人:</div>
|
||||
<div class="info-value">{{ item.czrxm || '未记录' }}</div>
|
||||
</div>
|
||||
<div class="process-info">
|
||||
<div class="info-label">处置结果:</div>
|
||||
<div class="info-value">
|
||||
<DictTag :tag="false" :value="item.czzt" :options="dict.D_BZ_QBCZZT" />
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
<MOSTY.Empty :show="lcList.length == 0" :imgSize="100"></MOSTY.Empty>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<pursueContent v-model="pursueShow" :dataList="dataVals" :title="processtitle" :updeteBool="true" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||
import { qbcjAdd, qbcjUpdate, qbcjSelectByid } from "@/api/Intelligence.js";
|
||||
import {xxcjAddEntity,xxcjUpdateEntity,xxcjSelectByid,xxcjSelectCzlcList} from "@/api/xxcj.js"
|
||||
import { ref, defineExpose, onMounted, defineEmits, watch, getCurrentInstance } from "vue";
|
||||
import { xxcjAddEntity, xxcjUpdateEntity, xxcjSelectByid, xxcjSelectCzlcList, xxcjSelectListBc, xxcjDeletesBc } from "@/api/xxcj.js"
|
||||
import { EditPen, Delete } from '@element-plus/icons-vue'
|
||||
import { ref, defineExpose, onMounted, defineEmits, watch, getCurrentInstance } from "vue"
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { qbcjCzztList, qbcjCzztDelete } from '@/api/qbcj'
|
||||
import pursueContent from "@/views/backOfficeSystem/HumanIntelligence/components/pursueContent.vue";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
const { proxy } = getCurrentInstance()
|
||||
const emit = defineEmits(["getList"]);
|
||||
@ -81,7 +151,6 @@ const listQuery = ref({}); //表单
|
||||
const elform = ref();
|
||||
onMounted(() => {
|
||||
})
|
||||
const addForm = ref()
|
||||
const msgeDat = ref()
|
||||
const title = ref("")
|
||||
const showPj = ref(false)
|
||||
@ -96,6 +165,8 @@ const init = (type, row) => {
|
||||
showPj.value = true
|
||||
msgeDat.value = row
|
||||
getqbcjPldb(row.id)
|
||||
getxxcjSelectListBc(row.id, '01')
|
||||
getxxcjSelectListBc(row.id, '02')
|
||||
// 初始化表单数据,并根据详情页设置禁用状态
|
||||
if (row) getDataById(row.id);
|
||||
// getqbcjCzztList()
|
||||
@ -108,8 +179,8 @@ const getDataById = (id) => {
|
||||
xxcjSelectByid({ id }).then((res) => {
|
||||
console.log(res);
|
||||
lcList.value = res.czlcList || []
|
||||
listQuery.value = res;
|
||||
listQuery.value.fjdz=res.fjdz?res.fjdz?.split(","):[]
|
||||
listQuery.value = res;
|
||||
listQuery.value.fjdz = res.fjdz ? res.fjdz?.split(",") : []
|
||||
});
|
||||
};
|
||||
|
||||
@ -121,7 +192,9 @@ const submitForm = () => {
|
||||
if (valid) {
|
||||
const promes = {
|
||||
...listQuery.value,
|
||||
fjdz: listQuery.value.fjdz&&listQuery.value.fjdz.length > 0 ? listQuery.value.fjdz.join(',') : '',
|
||||
fjdz: listQuery.value.fjdz && listQuery.value.fjdz.length > 0 ? listQuery.value.fjdz.map(item => {
|
||||
return item.id
|
||||
}).join(',') : '',
|
||||
qbly: 0,
|
||||
}
|
||||
if (title.value == '新增') {
|
||||
@ -152,7 +225,7 @@ const close = () => {
|
||||
router.replace({ query });
|
||||
}
|
||||
fjdz.value = []
|
||||
lcList.value=[]
|
||||
lcList.value = []
|
||||
listQuery.value = {};
|
||||
dialogForm.value = false;
|
||||
loading.value = false;
|
||||
@ -166,6 +239,50 @@ const getqbcjPldb = (id) => {
|
||||
.catch(() => {
|
||||
})
|
||||
}
|
||||
//
|
||||
const dataList = ref({
|
||||
xb: [],
|
||||
bc: [],
|
||||
})
|
||||
const getxxcjSelectListBc = (id, lx) => {
|
||||
xxcjSelectListBc({ qbid: id, czlx: lx }).then(res => {
|
||||
if (lx == '01') {
|
||||
dataList.value.xb = res || []
|
||||
} else {
|
||||
dataList.value.bc = res || []
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 处理标签删除
|
||||
const handleDeleteTag = (tag) => {
|
||||
|
||||
proxy.$confirm("确定要删除吗?", "警告", { type: "warning" }).then(() => {
|
||||
xxcjDeletesBc({ ids: [tag.id] }).then(res => {
|
||||
ElMessage({
|
||||
message: '删除成功',
|
||||
type: 'success',
|
||||
showClose: true,
|
||||
})
|
||||
getxxcjSelectListBc(msgeDat.value.id, '01')
|
||||
getxxcjSelectListBc(msgeDat.value.id, '02')
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
//
|
||||
const pursueShow = ref(false)
|
||||
const dataVals = ref([])
|
||||
const processtitle = ref()
|
||||
const openPursue = (title, data) => {
|
||||
console.log(title, data);
|
||||
pursueShow.value = true
|
||||
processtitle.value = title
|
||||
dataVals.value = data
|
||||
}
|
||||
defineExpose({ init });
|
||||
</script>
|
||||
|
||||
@ -256,7 +373,7 @@ defineExpose({ init });
|
||||
}
|
||||
|
||||
.action-icon {
|
||||
font-size: 16px;
|
||||
// font-size: 24px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
@ -362,7 +479,7 @@ defineExpose({ init });
|
||||
}
|
||||
|
||||
.form-content {
|
||||
display: flex;
|
||||
// display: flex;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
@ -376,4 +493,144 @@ defineExpose({ init });
|
||||
.timeline-full-width {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* 标签区域样式 */
|
||||
.tags-section {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
/* 标签标题样式 */
|
||||
.tags-title {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #303133;
|
||||
margin-bottom: 8px;
|
||||
padding-left: 5px;
|
||||
border-left: 3px solid #409EFF;
|
||||
}
|
||||
|
||||
/* 标签容器样式 */
|
||||
.tags-container {
|
||||
padding: 12px;
|
||||
background-color: #f5f7fa;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* 标签项目样式 */
|
||||
.tag-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 6px 10px;
|
||||
background-color: #ecf5ff;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #d9ecff;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
/* 标签项目悬停效果 */
|
||||
.tag-item:hover {
|
||||
background-color: #e6f7ff;
|
||||
border-color: #91d5ff;
|
||||
box-shadow: 0 2px 8px rgba(0, 123, 255, 0.15);
|
||||
}
|
||||
|
||||
/* 标签内容样式 */
|
||||
.tag-content {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
color: #303133;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* 标签操作按钮样式 */
|
||||
.tag-actions {
|
||||
display: flex;
|
||||
// align-items: flex-start;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
/* 操作图标样式 */
|
||||
.action-icon {
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
padding: 6px 8px;
|
||||
border-radius: 4px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* 编辑图标样式 */
|
||||
.edit-icon {
|
||||
color: #409EFF;
|
||||
background-color: #ecf5ff;
|
||||
}
|
||||
|
||||
.edit-icon:hover {
|
||||
color: #66B1FF;
|
||||
background-color: #e6f7ff;
|
||||
transform: scale(1.05);
|
||||
box-shadow: 0 2px 4px rgba(64, 158, 255, 0.2);
|
||||
}
|
||||
|
||||
/* 列表容器样式 */
|
||||
.list-container {
|
||||
padding: 12px;
|
||||
background-color: #f5f7fa;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/* 列表项样式 */
|
||||
.list-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 10px 12px;
|
||||
background-color: #ffffff;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 8px;
|
||||
border: 1px solid #e4e7ed;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
/* 列表项悬停效果 */
|
||||
.list-item:hover {
|
||||
background-color: #f5f7fa;
|
||||
border-color: #dcdfe6;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
/* 列表内容样式 */
|
||||
.list-content {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
color: #303133;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* 删除图标样式 */
|
||||
.delete-icon {
|
||||
color: #F56C6C;
|
||||
background-color: #fef0f0;
|
||||
}
|
||||
|
||||
.delete-icon:hover {
|
||||
color: #F78989;
|
||||
background-color: #fde2e2;
|
||||
transform: scale(1.05);
|
||||
box-shadow: 0 2px 4px rgba(245, 108, 108, 0.2);
|
||||
}
|
||||
|
||||
/* 无标签提示样式 */
|
||||
.no-tags {
|
||||
color: #909399;
|
||||
font-size: 14px;
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -21,12 +21,12 @@
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle">转线索</span>
|
||||
</el-button>
|
||||
<el-button type="primary" :disabled="ids.length === 0" @click="batchMark(ids)" v-if="qxkz.deptLevel == '01'">
|
||||
<!-- <el-button type="primary" :disabled="ids.length === 0" @click="batchMark(ids)" v-if="qxkz.deptLevel == '01'">
|
||||
<el-icon style="vertical-align: middle">
|
||||
<CirclePlus />
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle">转合成</span>
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
<!-- <el-button type="primary" :disabled="ids.length === 0" @click="batchMark(ids)" v-if="qxkz.deptLevel == '01'">
|
||||
<el-icon style="vertical-align: middle">
|
||||
<CirclePlus />
|
||||
@ -85,18 +85,19 @@
|
||||
<!-- 只有上报状态才能回退 -->
|
||||
<el-link size="small" type="primary" @click="rollbackNewspapers(row)">回退</el-link>
|
||||
<!-- 只有采纳状态才能分组 -->
|
||||
<el-link size="small" type="primary" @click="opneMsg(row)">分组</el-link>
|
||||
<el-link size="small" type="primary" @click="opneMsg(row)">分组</el-link>
|
||||
|
||||
<!-- 所有状态都能进行转线索 -->
|
||||
<el-link size="small" type="primary" @click="FollowUpOnLeads(row)" v-if="qxkz.depBool">转线索</el-link>
|
||||
<el-link size="small" type="primary" @click="FollowUpOnLeads(row)" >转线索</el-link>
|
||||
<!-- 所有状态都能进行转合成 -->
|
||||
<el-link size="small" type="primary" @click="openFkDialogszl(row)" v-if="qxkz.depBool">转合成</el-link>
|
||||
<el-link size="small" type="primary" @click="openFkDialogszl(row)">转合成</el-link>
|
||||
<!-- 所有状态都能进行转会商 -->
|
||||
<el-link size="small" type="primary" @click="addEdit('info', row)" v-if="qxkz.depBool">转会商</el-link>
|
||||
<!-- 只有领导有肯定 -->
|
||||
<el-link size="small" type="primary" @click="addEdit('info', row)">肯定</el-link>
|
||||
<el-link size="small" type="primary" @click="affirm(row)" v-if="qxkz.roleCode">肯定</el-link>
|
||||
<el-link size="small" type="primary" @click="FollowUpOnDept(row)">关注部门</el-link>
|
||||
<!-- 市局能给所有数据创建标签 -->
|
||||
<el-link size="small" type="primary" @click="addEdit('info', row)">创建</el-link>
|
||||
<el-link size="small" type="primary" @click="openCustomTag(row)">创建</el-link>
|
||||
<el-link size="small" type="danger" @click="delDictItem(row.id)">删除</el-link>
|
||||
<el-link size="small" type="primary" @click="addEdit('edit', row)">修改</el-link>
|
||||
<el-link size="small" type="primary" @click="addEdit('info', row)">详情</el-link>
|
||||
@ -129,6 +130,8 @@
|
||||
<MakeTag v-model="chooseRow" :dataList="dataList" :dict="{ D_BZ_CJLX, D_BZ_QBCZZT, D_GS_XS_LX, D_BZ_BQJB }"
|
||||
@getList="getList" />
|
||||
<Fszl v-model="fszlShow" path="/xxcj/sendFqzl" :itemData="dataList" />
|
||||
<CustomTag v-model="customTagShow" :dataList="dataList" @getList="getList" :dict="{ D_XXCJ_BQLX }" />
|
||||
<Configuration v-model="configurationShow" :dataList="dataList" @getList="getList" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -139,20 +142,23 @@ import Searchs from "@/components/aboutTable/Search.vue";
|
||||
import AddForm from "./components/addForm.vue";
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
import { qbcjSelectQbsbPage, qbcjDeletes, qbcjCzzt, qbcjPlsb } from "@/api/Intelligence.js";
|
||||
import { xxcjSelectXxsbPage, xxcjDeletes, xxcjXxzsx, xxcjUpdateCzlc } from '@/api/xxcj.js'
|
||||
import { xxcjSelectXxsbPage, xxcjDeletes, xxcjXxzsx, xxcjUpdateCzlc, xxcjXxqd } from '@/api/xxcj.js'
|
||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||
import MakeTag from '../components/maketag.vue'
|
||||
import ExportFile from './components/exportFile.vue'
|
||||
import { ElMessageBox } from 'element-plus'
|
||||
import { getItem } from '@//utils/storage.js'
|
||||
import Fszl from '@/views/backOfficeSystem/HumanIntelligence/components/fszl.vue'
|
||||
import CustomTag from '../components/customTag.vue'
|
||||
import Configuration from '../components/configuration.vue'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_GS_XS_LY, D_BZ_SSZT, D_BZ_SF, D_GS_XS_LX, D_BZ_BQJB,
|
||||
D_GS_XS_QTLX, D_GS_ZDQT_LB,
|
||||
D_BZ_BMJB, D_BZ_CLPP, D_BZ_CLYS, D_BZ_CLLX, D_BZ_XZQHDM, D_BZ_QBCZZT, D_BZ_CJLX, D_BZ_LCZT } =
|
||||
D_BZ_BMJB, D_BZ_CLPP, D_BZ_CLYS, D_BZ_CLLX, D_BZ_XZQHDM, D_BZ_QBCZZT, D_BZ_CJLX, D_BZ_LCZT,
|
||||
D_XXCJ_BQLX } =
|
||||
proxy.$dict("D_BZ_BMJB", "D_GS_XS_LY",
|
||||
"D_BZ_SSZT", "D_BZ_SF", "D_GS_XS_LX", "D_GS_XS_QTLX",
|
||||
"D_GS_ZDQT_LB", "D_BZ_CLPP", "D_BZ_CLYS", "D_BZ_CLLX", "D_BZ_XZQHDM", "D_BZ_QBCZZT", "D_BZ_CJLX", "D_BZ_BQJB", "D_BZ_LCZT"); //获取字典数据
|
||||
"D_GS_ZDQT_LB", "D_BZ_CLPP", "D_BZ_CLYS", "D_BZ_CLLX", "D_BZ_XZQHDM", "D_BZ_QBCZZT", "D_BZ_CJLX", "D_BZ_BQJB", "D_BZ_LCZT", "D_XXCJ_BQLX"); //获取字典数据
|
||||
const detailDiloag = ref();
|
||||
const searchBox = ref(); //搜索框
|
||||
const ids = ref([])
|
||||
@ -168,11 +174,9 @@ const chooseData = (val) => {
|
||||
const isShow = ref(false)
|
||||
const searchConfiger = ref([
|
||||
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
|
||||
{ label: "姓名", prop: 'xssbr', placeholder: "请输入姓名", showType: "input" },
|
||||
{ label: "录入时间", prop: 'lrkssj', placeholder: "请选择开始时间", showType: "datetimerange" },
|
||||
{ label: "情报来源", prop: 'qbly', placeholder: "请选择情报来源", showType: "select", options: D_BZ_CJLX },
|
||||
{ label: "情报处置状态", prop: 'czzt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_QBCZZT },
|
||||
{ label: "来源单位", prop: 'ssbmdm', placeholder: "请选择来源单位", showType: "department" },
|
||||
{ label: "标签级别", prop: 'qbjb', placeholder: "请选择标签级别", showType: "select",options:D_BZ_BQJB},
|
||||
{ label: "情报处置状态", prop: 'lczt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_LCZT },
|
||||
{ label: "线索编号", prop: 'xsBh', placeholder: "请输入线索编号", showType: "input" },
|
||||
{ label: "关键字", prop: 'keyword', placeholder: "请输入关键字", showType: "input" },
|
||||
]);
|
||||
const pageData = reactive({
|
||||
@ -195,14 +199,11 @@ const pageData = reactive({
|
||||
{ label: "情报标题", prop: "qbmc" },
|
||||
{ label: "情报来源", prop: "qbly", showSolt: true },
|
||||
{ label: "流程状态", prop: "lczt", showSolt: true },
|
||||
{ label: "消息状态", prop: "czzt", showSolt: true },
|
||||
// { label: "消息状态", prop: "czzt", showSolt: true },
|
||||
]
|
||||
});
|
||||
const queryFrom = ref({});
|
||||
|
||||
|
||||
|
||||
|
||||
const chooseRow = ref(false)
|
||||
const dataList = ref()
|
||||
|
||||
@ -283,13 +284,38 @@ const appearNewspapers = (item) => {
|
||||
}
|
||||
// 分组
|
||||
const opneMsg = (item) => {
|
||||
if (item.lczt=='04'&& qxkz.depBool) {
|
||||
chooseRow.value = true
|
||||
dataList.value = [item]
|
||||
if (item.lczt == '04' && qxkz.depBool) {
|
||||
chooseRow.value = true
|
||||
dataList.value = [item]
|
||||
} else {
|
||||
proxy.$message.warning('请选择已采纳的消息!')
|
||||
proxy.$message.warning('请选择已采纳的消息!')
|
||||
}
|
||||
}
|
||||
// 打标签
|
||||
const customTagShow = ref(false)
|
||||
const openCustomTag = (item) => {
|
||||
customTagShow.value = true
|
||||
dataList.value = item
|
||||
}
|
||||
// 肯定
|
||||
const affirm = (item) => {
|
||||
proxy.$confirm("确定要肯定吗?", "警告", { type: "warning" }).then(() => {
|
||||
xxcjXxqd({ ids: item.id }).then(res => {
|
||||
proxy.$message({ type: "success", message: "肯定成功" });
|
||||
getList();
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
// 配置关注部门
|
||||
const configurationShow = ref(false)
|
||||
const FollowUpOnDept = (item) => {
|
||||
configurationShow.value = true
|
||||
dataList.value = item
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 批量分组
|
||||
// const batchMark = () => {
|
||||
@ -397,11 +423,13 @@ const titleData = ref()
|
||||
const qxkz = reactive({
|
||||
deptBizType: '',
|
||||
deptLevel: '',
|
||||
roleCode: false,
|
||||
depBool: false
|
||||
});
|
||||
onMounted(() => {
|
||||
const { deptBizType, deptLevel } = getItem('deptId')[0]
|
||||
const Jb = deptLevel[0] == '2' ? '01' : deptLevel[0] == '3' ? '02' : '03'
|
||||
qxkz.roleCode = getItem('roleList').find(item => item.roleCode == 'JS_666666') != undefined
|
||||
qxkz.deptBizType = deptBizType
|
||||
qxkz.deptLevel = Jb
|
||||
if (deptBizType == '23' && Jb == '01') {
|
||||
@ -451,18 +479,38 @@ const tabHeightFn = () => {
|
||||
};
|
||||
// 转线索
|
||||
const FollowUpOnLeads = (row) => {
|
||||
proxy.$confirm("确定要转线索吗?", "警告", { type: "warning" }).then(() => {
|
||||
if (!qxkz.depBool) {
|
||||
proxy.$message({
|
||||
message: '权限不足',
|
||||
type: 'warning',
|
||||
showClose: true,
|
||||
})
|
||||
return
|
||||
} else {
|
||||
proxy.$confirm("确定要转线索吗?", "警告", { type: "warning" }).then(() => {
|
||||
xxcjXxzsx({ ids: Array.isArray(row) ? row.join(',') : row.id }).then(res => {
|
||||
proxy.$message({ type: "success", message: "转线索成功" });
|
||||
getList();
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
// 发送指令
|
||||
const fszlShow = ref(false)
|
||||
const openFkDialogszl = (row) => {
|
||||
if (!qxkz.depBool) {
|
||||
proxy.$message({
|
||||
message: '权限不足',
|
||||
type: 'warning',
|
||||
showClose: true,
|
||||
})
|
||||
return
|
||||
} else {
|
||||
fszlShow.value = true
|
||||
dataList.value = row
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@ -8,19 +8,12 @@
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle">导出</span>
|
||||
</el-button>
|
||||
<el-button v-if="qxkz.deptLevel == '01'" type="primary" :disabled="ids.length === 0" @click="batchMark(ids)">
|
||||
<!-- <el-button v-if="qxkz.deptLevel == '01'" type="primary" :disabled="ids.length === 0" @click="batchMark(ids)">
|
||||
<el-icon style="vertical-align: middle">
|
||||
<CirclePlus />
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle">批量打标</span>
|
||||
</el-button>
|
||||
|
||||
<el-button type="primary" :disabled="ids.length === 0" @click="delDictItem(ids)">
|
||||
<el-icon style="vertical-align: middle">
|
||||
<CirclePlus />
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle">批量删除</span>
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
</PageTitle>
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
@ -33,23 +26,25 @@
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData">
|
||||
<template #qblx="{ row }">
|
||||
<template #qblx="{ row }">
|
||||
<DictTag :tag="false" :value="row.qblx" :options="D_GS_XS_LX" />
|
||||
</template>
|
||||
<template #cjlx="{ row }">
|
||||
<DictTag :tag="false" :value="row.cjLx" :options="D_BZ_CJLX" />
|
||||
<template #qbly="{ row }">
|
||||
<DictTag :tag="false" :value="row.qbly" :options="D_BZ_CJLX" />
|
||||
</template>
|
||||
<template #czzt="{ row }">
|
||||
<DictTag :tag="false" :value="row.czzt" :options="D_BZ_QBCZZT" />
|
||||
</template>
|
||||
<template #lczt="{ row }">
|
||||
<DictTag :tag="false" :value="row.lczt" :options="D_BZ_LCZT" />
|
||||
</template>
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<el-link size="small" type="primary" @click="instQbcjZxs(row)">转线索</el-link>
|
||||
<el-link size="small" type="primary" @click="FollowUpOnLeads(row)">转线索</el-link>
|
||||
<el-link size="small" type="primary" @click="openFszl(row)">转合成</el-link>
|
||||
<el-link size="small" type="primary" @click="openCheckProcess(row)">补充信息</el-link>
|
||||
<el-link size="small" type="primary" @click="checkProcess(row)">查看流程</el-link>
|
||||
<el-link size="small" type="primary" @click="openCheckProcessXb(row)"> 续报</el-link>
|
||||
<el-link size="small" type="primary" @click="addEdit('info', row)">详情</el-link>
|
||||
<el-link size="small" type="danger" @click="delDictItem(row.id)">删除</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
@ -76,8 +71,7 @@
|
||||
:dataModel="pageData.tableData" />
|
||||
<MakeTag v-model="chooseRow" :dataList="dataList" :dict="{ D_BZ_CJLX, D_BZ_QBCZZT, D_GS_XS_LX, D_BZ_BQJB }"
|
||||
@getList="getList" />
|
||||
<CheckProcess v-model="checkProcessModel" :dataList="dataList" :dict="{ D_BZ_QBCZZT }" />
|
||||
<pursueContent v-model="pursueShow" :dataList="dataList" />
|
||||
<pursueContent v-model="pursueShow" :dataList="dataList" :title="processtitle" />
|
||||
<Fszl v-model="fszlShow" :itemData="dataList"/>
|
||||
<!-- <SemdFqzl ref="semdFqzlRef" :itemData="itemData" @handleClose="handleClose" identification="yj"
|
||||
:tacitly="tacitly" /> -->
|
||||
@ -94,19 +88,18 @@ import { qbcjSelectPage, qbcjDeletes } from "@/api/Intelligence.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
||||
import MakeTag from '@/views/backOfficeSystem/HumanIntelligence/components/maketag.vue'
|
||||
import ExportFile from '@/views/backOfficeSystem/HumanIntelligence/infoCollection/components/exportFile.vue'
|
||||
import CheckProcess from '@/views/backOfficeSystem/HumanIntelligence/components/checkProcess.vue'
|
||||
import pursueContent from "../components/pursueContent.vue";
|
||||
import Fszl from '../components/fszl.vue'
|
||||
import { getItem } from '@//utils/storage.js'
|
||||
import { qbcjZxs } from '@/api/qbcj.js'
|
||||
import {xxcjSelectPage} from '@/api/xxcj.js'
|
||||
import {xxcjSelectPage,xxcjXxzsx} from '@/api/xxcj.js'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_GS_XS_LY, D_BZ_SSZT, D_BZ_SF, D_GS_XS_LX, D_BZ_BQJB,
|
||||
D_GS_XS_QTLX, D_GS_ZDQT_LB,
|
||||
D_BZ_BMJB, D_BZ_CLPP, D_BZ_CLYS, D_BZ_CLLX, D_BZ_XZQHDM, D_BZ_QBCZZT, D_BZ_CJLX } =
|
||||
D_BZ_BMJB, D_BZ_CLPP, D_BZ_CLYS, D_BZ_CLLX, D_BZ_XZQHDM, D_BZ_QBCZZT, D_BZ_CJLX ,D_BZ_LCZT} =
|
||||
proxy.$dict("D_BZ_BMJB", "D_GS_XS_LY",
|
||||
"D_BZ_SSZT", "D_BZ_SF", "D_GS_XS_LX", "D_GS_XS_QTLX",
|
||||
"D_GS_ZDQT_LB", "D_BZ_CLPP", "D_BZ_CLYS", "D_BZ_CLLX", "D_BZ_XZQHDM", "D_BZ_QBCZZT", "D_BZ_CJLX", "D_BZ_BQJB"); //获取字典数据
|
||||
"D_GS_ZDQT_LB", "D_BZ_CLPP", "D_BZ_CLYS", "D_BZ_CLLX", "D_BZ_XZQHDM", "D_BZ_QBCZZT", "D_BZ_CJLX", "D_BZ_BQJB","D_BZ_LCZT"); //获取字典数据
|
||||
const detailDiloag = ref();
|
||||
const searchBox = ref(); //搜索框
|
||||
const ids = ref([])
|
||||
@ -151,18 +144,10 @@ watch(() => D_BZ_BQJB, val => {
|
||||
list.value = []
|
||||
}
|
||||
searchConfiger.value = [
|
||||
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
|
||||
{ label: "姓名", prop: 'xssbr', placeholder: "请输入姓名", showType: "input" },
|
||||
{ label: "身份证号", prop: 'sfzh', placeholder: "请输入身份证号", showType: "input" },
|
||||
// { label: "群体名称", prop: 'qtmc', placeholder: "请输入群体名称", showType: "input" },
|
||||
// { label: "指向地点", prop: 'zxdz', placeholder: "请输入指向地点", showType: "input" },
|
||||
// { label: "指向时间", prop: 'zxkssj', placeholder: "请选择开始时间", showType: "datetimerange" },
|
||||
// { label: "录入时间", prop: 'lrkssj', placeholder: "请选择开始时间", showType: "datetimerange" },
|
||||
// { label: "情报类型", prop: 'qblx', placeholder: "请选择情报类型", showType: "select", options: D_GS_XS_LX },
|
||||
// { label: "情报来源", prop: 'cjLx', placeholder: "请选择情报来源", showType: "select", options: D_BZ_CJLX },
|
||||
// { label: "情报处置状态", prop: 'czzt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_QBCZZT },
|
||||
// { label: "来源单位", prop: 'ssbmdm', placeholder: "请选择来源单位", showType: "department" },
|
||||
// { label: "关键字", prop: 'keyword', placeholder: "请输入关键字", showType: "input" },
|
||||
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
|
||||
{ label: "情报处置状态", prop: 'lczt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_LCZT },
|
||||
{ label: "线索编号", prop: 'xsBh', placeholder: "请输入线索编号", showType: "input" },
|
||||
{ label: "关键字", prop: 'keyword', placeholder: "请输入关键字", showType: "input" },
|
||||
]
|
||||
}, { deep: true, immediate: true })
|
||||
const isShow = ref(false)
|
||||
@ -181,15 +166,12 @@ const pageData = reactive({
|
||||
},
|
||||
controlsWidth: 240,
|
||||
tableColumn: [
|
||||
{ label: "上报人姓名", prop: "xssbr" },
|
||||
{ label: "情报上报时间", prop: "sxsbsj" },
|
||||
{ label: "情报编号", prop: "xsBh" },
|
||||
{ label: "情报标题", prop: "qbmc" },
|
||||
{ label: "情报类型", prop: "qblx", showSolt: true },
|
||||
{ label: "情报来源", prop: "cjlx", showSolt: true },
|
||||
{ label: "情报上报时间", prop: "sxsbsj" },
|
||||
{ label: "指向地点", prop: "zxdz" },
|
||||
{ label: "消息状态", prop: "czzt", showSolt: true },
|
||||
{ label: "情报内容", prop: "qbnr" },
|
||||
{ label: "情报来源", prop: "qbly", showSolt: true },
|
||||
{ label: "流程状态", prop: "lczt", showSolt: true },
|
||||
// { label: "消息状态", prop: "czzt", showSolt: true },
|
||||
]
|
||||
});
|
||||
const queryFrom = ref({});
|
||||
@ -244,16 +226,6 @@ const getList = () => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
}).catch(() => { pageData.tableConfiger.loading = false; })
|
||||
}
|
||||
// 删除
|
||||
const delDictItem = (id) => {
|
||||
proxy.$confirm("确定要删除", "警告", { type: "warning" }).then(() => {
|
||||
qbcjDeletes({ ids: Array.isArray(id) ? id : [id] }).then((res) => {
|
||||
proxy.$message({ type: "success", message: "删除成功" });
|
||||
getList();
|
||||
}).catch(() => {
|
||||
})
|
||||
}).catch(() => { });
|
||||
}
|
||||
// 导出数据
|
||||
const tableColumn = reactive([
|
||||
{ label: "上报人姓名", prop: "xssbr" },
|
||||
@ -290,15 +262,18 @@ const dologCancel = () => {
|
||||
exportFileModel.value = true;
|
||||
}
|
||||
|
||||
// 流程
|
||||
const checkProcessModel = ref()
|
||||
const checkProcess = (item) => {
|
||||
checkProcessModel.value = true
|
||||
dataList.value = item
|
||||
}
|
||||
|
||||
// 追加
|
||||
const pursueShow = ref(false)
|
||||
const processtitle = ref('信息追加')
|
||||
const openCheckProcess = (item) => {
|
||||
processtitle.value = '信息追加'
|
||||
pursueShow.value = true
|
||||
dataList.value = item
|
||||
}
|
||||
// 续报
|
||||
const openCheckProcessXb = (item) => {
|
||||
processtitle.value = '信息续报'
|
||||
pursueShow.value = true
|
||||
dataList.value = item
|
||||
}
|
||||
@ -311,6 +286,26 @@ const instQbcjZxs = (item) => {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 转线索
|
||||
const FollowUpOnLeads = (row) => {
|
||||
if (!qxkz.depBool) {
|
||||
proxy.$message({
|
||||
message: '权限不足',
|
||||
type: 'warning',
|
||||
showClose: true,
|
||||
})
|
||||
return
|
||||
} else {
|
||||
proxy.$confirm("确定要转线索吗?", "警告", { type: "warning" }).then(() => {
|
||||
xxcjXxzsx({ ids: Array.isArray(row) ? row.join(',') : row.id }).then(res => {
|
||||
proxy.$message({ type: "success", message: "转线索成功" });
|
||||
getList();
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
// 转合成
|
||||
const fszlShow = ref(false)
|
||||
const openFszl = (item) => {
|
||||
|
||||
@ -162,7 +162,7 @@ const getList = (val) => {
|
||||
pageData.tableData = res.records.map(item => {
|
||||
return {
|
||||
...item,
|
||||
yjtp: item.yjlx == '01' ? item.yjtp.replace(ORDIMG, IMGYM) : item.yjtp
|
||||
yjTp: item.yjlx == '01' ? item.yjTpreplace(ORDIMG, IMGYM) : item.yjTp
|
||||
}
|
||||
}) || [];
|
||||
pageData.total = res.total;
|
||||
|
||||
Reference in New Issue
Block a user