lcw
This commit is contained in:
@ -211,3 +211,28 @@ export const xxcjTjcll = (params) => {
|
|||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 送审
|
||||||
|
export const xxcjXxcjTjsh = (data) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/xxcj/xxcjTjsh`,
|
||||||
|
method: "post",
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 审批列表
|
||||||
|
export const xxcjSelectDshPage = (params) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/xxcj/selectDshPage`,
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 审批
|
||||||
|
export const xxcjXxcjSh = (data) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/xxcj/xxcjSh`,
|
||||||
|
method: "post",
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -187,6 +187,14 @@ header {
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.searchBoxlive {
|
||||||
|
// padding: 15px;
|
||||||
|
border-radius: 1px;
|
||||||
|
position: relative;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
.app-main {
|
.app-main {
|
||||||
height: calc(100vh - 126px);
|
height: calc(100vh - 126px);
|
||||||
position: relative;
|
position: relative;
|
||||||
@ -256,6 +264,10 @@ header {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.heightBox {
|
||||||
|
height: calc(100vh - 270px);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-card {
|
::v-deep .el-card {
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
:action="actionUrl"
|
:action="actionUrl"
|
||||||
:list-type="props.showBtn ? '' : 'picture-card'"
|
:list-type="props.showBtn ? '' : 'picture-card'"
|
||||||
:file-list="fileList"
|
:file-list="fileList"
|
||||||
show-file-list
|
:show-file-list="showFileList"
|
||||||
:before-remove="beforeRemove"
|
:before-remove="beforeRemove"
|
||||||
:on-exceed="handleExceed"
|
:on-exceed="handleExceed"
|
||||||
:on-success="handlerSuccess"
|
:on-success="handlerSuccess"
|
||||||
@ -82,6 +82,10 @@ const props = defineProps({
|
|||||||
isAll: {
|
isAll: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true //所有类型都可以用这个接口,接口返回的是id
|
default: true //所有类型都可以用这个接口,接口返回的是id
|
||||||
|
},
|
||||||
|
showFileList: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const emits = defineEmits(["update:modelValue"]);
|
const emits = defineEmits(["update:modelValue"]);
|
||||||
@ -102,9 +106,10 @@ watch(() => props.modelValue,(val) => {
|
|||||||
// 确保file.url始终是字符串URL
|
// 确保file.url始终是字符串URL
|
||||||
const fileUrl = props.isAll ? `/mosty-api/mosty-base/minio/image/download/` + el.id : el.url;
|
const fileUrl = props.isAll ? `/mosty-api/mosty-base/minio/image/download/` + el.id : el.url;
|
||||||
return {
|
return {
|
||||||
|
...el,
|
||||||
url: String(fileUrl || ''),
|
url: String(fileUrl || ''),
|
||||||
name: el.name || '',
|
name: el.name || '',
|
||||||
id: el
|
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
return {
|
return {
|
||||||
@ -113,6 +118,8 @@ watch(() => props.modelValue,(val) => {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
console.log(fileList.value, "fileList.value");
|
||||||
|
|
||||||
},{ immediate: true,deep:true });
|
},{ immediate: true,deep:true });
|
||||||
|
|
||||||
const actionUrl = computed(() => {
|
const actionUrl = computed(() => {
|
||||||
@ -173,8 +180,16 @@ const handlerSuccess = (res, file) => {
|
|||||||
let arr = []
|
let arr = []
|
||||||
if(props.isImg){
|
if(props.isImg){
|
||||||
arr = fileList.value.map((el) => el.id)
|
arr = fileList.value.map((el) => el.id)
|
||||||
}else{
|
} else {
|
||||||
arr = fileList.value.map((el) => ({ id:el.id, name:el.name}))
|
console.log(fileList,"测试");
|
||||||
|
arr = fileList.value.map((el) => {
|
||||||
|
console.log(el,'xunhuan');
|
||||||
|
return {
|
||||||
|
id: el.id, name: el.name
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log(arr,"测试2222");
|
||||||
|
|
||||||
}
|
}
|
||||||
emits("update:modelValue", arr);
|
emits("update:modelValue", arr);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -8,9 +8,8 @@
|
|||||||
:stripe="getConfiger.stripe" :height="tableHeight" v-loading="tableConfiger.loading" :lazy="getConfiger.lazy"
|
:stripe="getConfiger.stripe" :height="tableHeight" v-loading="tableConfiger.loading" :lazy="getConfiger.lazy"
|
||||||
:load="load" :tree-props="treePros" style="width: 100%" :header-cell-class-name="() => 'HeadBgColor'"
|
:load="load" :tree-props="treePros" style="width: 100%" :header-cell-class-name="() => 'HeadBgColor'"
|
||||||
:highlight-current-row="getConfiger.showSelectType === 'radio'"
|
:highlight-current-row="getConfiger.showSelectType === 'radio'"
|
||||||
|
|
||||||
|
|
||||||
@row-click="handleRowClick"
|
@row-click="handleRowClick"
|
||||||
|
@cell-click="handleCellClick"
|
||||||
:row-style="(row, index) => getRowStyle(row, index)"
|
:row-style="(row, index) => getRowStyle(row, index)"
|
||||||
:row-class-name="(row, index) => getRowClassName(row, index)">
|
:row-class-name="(row, index) => getRowClassName(row, index)">
|
||||||
|
|
||||||
@ -98,7 +97,7 @@ const props = defineProps({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 可选的时候选择的数据
|
// 可选的时候选择的数据
|
||||||
const emit = defineEmits(["chooseData","handleRowClick"]);
|
const emit = defineEmits(["chooseData","handleRowClick","handleCellClick"]);
|
||||||
const multipleTableRef = ref();
|
const multipleTableRef = ref();
|
||||||
const currentRow = ref();
|
const currentRow = ref();
|
||||||
let getConfiger = reactive({
|
let getConfiger = reactive({
|
||||||
@ -160,7 +159,6 @@ const load = (date, treeNode, resolve) => {
|
|||||||
const getRowStyle = (row, index) => {
|
const getRowStyle = (row, index) => {
|
||||||
// 基础行高样式
|
// 基础行高样式
|
||||||
const baseStyle = { height: getConfiger.rowHeight === 'auto' ? getConfiger.rowHeight : getConfiger.rowHeight + 'px' };
|
const baseStyle = { height: getConfiger.rowHeight === 'auto' ? getConfiger.rowHeight : getConfiger.rowHeight + 'px' };
|
||||||
|
|
||||||
// 如果有自定义行样式函数,合并样式
|
// 如果有自定义行样式函数,合并样式
|
||||||
if (props.rowStyle) {
|
if (props.rowStyle) {
|
||||||
const customStyle = props.rowStyle(row, index);
|
const customStyle = props.rowStyle(row, index);
|
||||||
@ -200,6 +198,9 @@ function setDefaultChoose() {
|
|||||||
const handleRowClick = (row) => {
|
const handleRowClick = (row) => {
|
||||||
emit("handleRowClick", row);
|
emit("handleRowClick", row);
|
||||||
}
|
}
|
||||||
|
const handleCellClick = (row,column,event,cell) => {
|
||||||
|
emit("handleCellClick", {row,column,event,cell});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss"></style>
|
<style lang="scss"></style>
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="pageTitle" :style="`margin-bottom: ${marginBottom}px;background-color: ${backgroundColor}`">
|
<div class="pageTitle" :style="`margin-bottom: ${marginBottom}px;margin-top: ${marginTop}px;background-color: ${backgroundColor};height: ${height}px;`">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<ul class="flex" v-if="Array.isArray(title)">
|
<ul class="flex" v-if="Array.isArray(title)">
|
||||||
<li :class=" idx == active ? 'hedBtn':''" @click="handleBtn(it,idx)" class="pointer ml10 mr10" v-for="(it,idx) in title" :key="it">{{ it }}</li>
|
<li :class=" idx == active ? 'hedBtn':''" @click="handleBtn(it,idx)" class="pointer ml10 mr10" v-for="(it,idx) in title" :key="it">{{ it }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="font" v-else>{{ title }}</div>
|
<div class="font" v-else>{{ title }}</div>
|
||||||
<div class="ml30">
|
<div :style="`margin-left: ${ malginLeft==0?30:malginLeft}px`">
|
||||||
<slot name="left"></slot>
|
<slot name="left"></slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -28,15 +28,28 @@ defineProps({
|
|||||||
marginBottom: {
|
marginBottom: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
|
},
|
||||||
|
malginLeft: {
|
||||||
|
type: Number,
|
||||||
|
default: 0
|
||||||
},
|
},
|
||||||
active: {
|
active: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
},
|
},
|
||||||
|
marginTop: {
|
||||||
|
type: Number,
|
||||||
|
default: 0
|
||||||
|
},
|
||||||
backgroundColor: {
|
backgroundColor: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "rgb(255, 255, 255, 0)"
|
default: "rgb(255, 255, 255, 0)"
|
||||||
|
},
|
||||||
|
height: {
|
||||||
|
type: Number,
|
||||||
|
default: 52
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const emit = defineEmits(["update:active","change"]);
|
const emit = defineEmits(["update:active","change"]);
|
||||||
@ -47,7 +60,7 @@ const handleBtn = (it, idx) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang = "scss" scoped>
|
<style lang = "scss" scoped>
|
||||||
.pageTitle {
|
.pageTitle {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -55,7 +68,7 @@ const handleBtn = (it, idx) => {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
min-height: 52px;
|
min-height: 30px;
|
||||||
.title {
|
.title {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin: auto 0;
|
margin: auto 0;
|
||||||
@ -71,4 +84,4 @@ const handleBtn = (it, idx) => {
|
|||||||
color: #0072ff;
|
color: #0072ff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -169,7 +169,7 @@ const props = defineProps({
|
|||||||
},
|
},
|
||||||
marginBottom: {
|
marginBottom: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 15
|
default: 0
|
||||||
},
|
},
|
||||||
backgroundColor: {
|
backgroundColor: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|||||||
@ -155,31 +155,42 @@ export const publicRoutes = [
|
|||||||
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/warningBk/index"),
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/warningBk/index"),
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
path: "/fouColorWarning",
|
path: "/YjData",
|
||||||
name: "fouColorWarning",
|
name: "YjData",
|
||||||
meta: { title: "预警数据整合", icon: "article-create" },
|
meta: { title: "预警", icon: "article-create" },
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/fouColorWarning/index"),
|
component: () => import("@/views/backOfficeSystem/fourColorManage/YjData/index.vue"),
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// path: "/fouColorWarning",
|
||||||
|
// name: "fouColorWarning",
|
||||||
|
// meta: { title: "预警数据整合", icon: "article-create" },
|
||||||
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/fouColorWarning/index"),
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: "/sevenWarning",
|
||||||
|
// name: "sevenWarning",
|
||||||
|
// meta: { title: "七类重点人员", icon: "article" },
|
||||||
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarning/index.vue"),
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: "/identityWarning",
|
||||||
|
// name: "identityWarning",
|
||||||
|
// meta: { title: "身份预警", icon: "article-create" },
|
||||||
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/identityWarning/index"),
|
||||||
|
// },
|
||||||
|
|
||||||
{
|
// {
|
||||||
path: "/identityWarning",
|
// path: "/behaviorWarning",
|
||||||
name: "identityWarning",
|
// name: "behaviorWarning",
|
||||||
meta: { title: "身份预警", icon: "article-create" },
|
// meta: { title: "行为预警", icon: "article-create" },
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/identityWarning/index"),
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/behaviorWarning/index"),
|
||||||
},
|
// },
|
||||||
|
// {
|
||||||
{
|
// path: "/combinedWarning",
|
||||||
path: "/behaviorWarning",
|
// name: "combinedWarning",
|
||||||
name: "behaviorWarning",
|
// meta: { title: "组合预警", icon: "article-create" },
|
||||||
meta: { title: "行为预警", icon: "article-create" },
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/combinedWarning/index"),
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/behaviorWarning/index"),
|
// },
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/combinedWarning",
|
|
||||||
name: "combinedWarning",
|
|
||||||
meta: { title: "组合预警", icon: "article-create" },
|
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/combinedWarning/index"),
|
|
||||||
},
|
|
||||||
// {
|
// {
|
||||||
// path: "/warningList",
|
// path: "/warningList",
|
||||||
// name: "warningList",
|
// name: "warningList",
|
||||||
@ -189,37 +200,37 @@ export const publicRoutes = [
|
|||||||
// icon: "article-create"
|
// icon: "article-create"
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
{
|
// {
|
||||||
path: "/portraitWarning",
|
// path: "/portraitWarning",
|
||||||
name: "portraitWarning",
|
// name: "portraitWarning",
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningList/portraitWarning/index"),
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningList/portraitWarning/index"),
|
||||||
meta: {
|
// meta: {
|
||||||
title: "人像预警",
|
// title: "人像预警",
|
||||||
icon: "article-create"
|
// icon: "article-create"
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
|
|
||||||
{
|
// {
|
||||||
path: "/vehicleWarning",
|
// path: "/vehicleWarning",
|
||||||
name: "vehicleWarning",
|
// name: "vehicleWarning",
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningList/vehicleWarning/index"),
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningList/vehicleWarning/index"),
|
||||||
meta: {
|
// meta: {
|
||||||
title: "车辆预警",
|
// title: "车辆预警",
|
||||||
icon: "article-create"
|
// icon: "article-create"
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
path: "/controlWarning",
|
// path: "/controlWarning",
|
||||||
name: "controlWarning",
|
// name: "controlWarning",
|
||||||
meta: { title: "布控预警", icon: "article-create" },
|
// meta: { title: "布控预警", icon: "article-create" },
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/controlWarning/index"),
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/controlWarning/index"),
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
path: "/regionalControl",
|
// path: "/regionalControl",
|
||||||
name: "regionalControl",
|
// name: "regionalControl",
|
||||||
meta: { title: "区域布控预警", icon: "article-create" },
|
// meta: { title: "区域布控预警", icon: "article-create" },
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/regionalControl/index"),
|
// component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/regionalControl/index"),
|
||||||
},
|
// },
|
||||||
// {
|
// {
|
||||||
// path: "/fouColorWarning",
|
// path: "/fouColorWarning",
|
||||||
// name: "fouColorWarning",
|
// name: "fouColorWarning",
|
||||||
@ -232,16 +243,11 @@ export const publicRoutes = [
|
|||||||
meta: { title: "积分排名", icon: "article-create" },
|
meta: { title: "积分排名", icon: "article-create" },
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/scoreRanking/index"),
|
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/scoreRanking/index"),
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: "/sevenWarning",
|
|
||||||
name: "sevenWarning",
|
|
||||||
meta: { title: "七类重点人员", icon: "article" },
|
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarning/index.vue"),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: "/sevenWarningFail",
|
path: "/sevenWarningFail",
|
||||||
name: "sevenWarningFail",
|
name: "sevenWarningFail",
|
||||||
meta: { title: "报错", icon: "article" },
|
meta: { title: "报错列表", icon: "article" },
|
||||||
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarningFail/index.vue"),
|
component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarningFail/index.vue"),
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
@ -338,6 +344,11 @@ export const publicRoutes = [
|
|||||||
name: "openSourceList",
|
name: "openSourceList",
|
||||||
component: () => import("@/views/backOfficeSystem/HumanIntelligence/listView/index"),
|
component: () => import("@/views/backOfficeSystem/HumanIntelligence/listView/index"),
|
||||||
meta: { title: "共享列表", icon: "article-create", qbjbList: '01' },
|
meta: { title: "共享列表", icon: "article-create", qbjbList: '01' },
|
||||||
|
}, {
|
||||||
|
path: "/auditList",
|
||||||
|
name: "auditList",
|
||||||
|
component: () => import("@/views/backOfficeSystem/HumanIntelligence/auditList/index"),
|
||||||
|
meta: { title: "审批列表", icon: "article-create" },
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// path: "/socialInformationCrculated",
|
// path: "/socialInformationCrculated",
|
||||||
@ -460,50 +471,7 @@ export const publicRoutes = [
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
path: "/ExcavationResearch",
|
|
||||||
name: "ExcavationResearch",
|
|
||||||
meta: { title: "重点人发掘", icon: "article-ranking" },
|
|
||||||
children: [
|
|
||||||
|
|
||||||
{
|
|
||||||
path: "/PreliminaryExcavations",
|
|
||||||
name: "PreliminaryExcavations",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/ExcavationResearch/PreliminaryExcavations/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "重点人员初步发掘",
|
|
||||||
icon: "article-create"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/ZdryFjyp",
|
|
||||||
name: "ZdryFjyp",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/ExcavationResearch/ZdryFjyp/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "重点人员深度发掘",
|
|
||||||
icon: "article-create"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/LandingAudit",
|
|
||||||
name: "LandingAudit",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/ExcavationResearch/LandingAudit/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "重点人员落地审核",
|
|
||||||
icon: "article-create"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: "/JudgmentHome",
|
path: "/JudgmentHome",
|
||||||
name: "JudgmentHome",
|
name: "JudgmentHome",
|
||||||
@ -677,62 +645,76 @@ export const publicRoutes = [
|
|||||||
meta: { title: "数据应用", icon: "article-ranking" },
|
meta: { title: "数据应用", icon: "article-ranking" },
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: "/IntegralCoefficient",
|
path: "/Cspz",
|
||||||
name: "IntegralCoefficient",
|
name: "Cspz",
|
||||||
component: () =>
|
component: () =>
|
||||||
import(
|
import(
|
||||||
"@/views/backOfficeSystem/fourColorManage/IntegralCoefficient/index"
|
"@/views/backOfficeSystem/fourColorManage/Cspz/index"
|
||||||
),
|
),
|
||||||
meta: {
|
meta: {
|
||||||
title: "积分系数配置",
|
title: "参数配置",
|
||||||
icon: "article-create"
|
icon: "article-create"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
// {
|
||||||
path: "/IdentityManage",
|
// path: "/IntegralCoefficient",
|
||||||
name: "IdentityManage",
|
// name: "IntegralCoefficient",
|
||||||
component: () =>
|
// component: () =>
|
||||||
import(
|
// import(
|
||||||
"@/views/backOfficeSystem/fourColorManage/IdentityManage/index"
|
// "@/views/backOfficeSystem/fourColorManage/IntegralCoefficient/index"
|
||||||
),
|
// ),
|
||||||
meta: {
|
// meta: {
|
||||||
title: "身份标签管理",
|
// title: "积分系数配置",
|
||||||
icon: "article-create"
|
// icon: "article-create"
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
{
|
|
||||||
path: "/BehaviorLabels",
|
// {
|
||||||
name: "BehaviorLabels",
|
// path: "/IdentityManage",
|
||||||
component: () =>
|
// name: "IdentityManage",
|
||||||
import(
|
// component: () =>
|
||||||
"@/views/backOfficeSystem/fourColorManage/BehaviorLabels/index"
|
// import(
|
||||||
),
|
// "@/views/backOfficeSystem/fourColorManage/IdentityManage/index"
|
||||||
meta: {
|
// ),
|
||||||
title: "行为标签管理",
|
// meta: {
|
||||||
icon: "article-create"
|
// title: "身份标签管理",
|
||||||
}
|
// icon: "article-create"
|
||||||
},
|
// }
|
||||||
{
|
// },
|
||||||
path: "/tagManage",
|
// {
|
||||||
name: "tagManage",
|
// path: "/BehaviorLabels",
|
||||||
component: () =>
|
// name: "BehaviorLabels",
|
||||||
import(
|
// component: () =>
|
||||||
"@/views/backOfficeSystem/fourColorManage/tagManage/index"
|
// import(
|
||||||
),
|
// "@/views/backOfficeSystem/fourColorManage/BehaviorLabels/index"
|
||||||
meta: {
|
// ),
|
||||||
title: "标签组合管理",
|
// meta: {
|
||||||
icon: "article-create"
|
// title: "行为标签管理",
|
||||||
}
|
// icon: "article-create"
|
||||||
}, {
|
// }
|
||||||
path: "/tsypHome",
|
// },
|
||||||
name: "tsypHome",
|
// {
|
||||||
component: () => import("@/views/backOfficeSystem/JudgmentHome/tsypHome/index"),
|
// path: "/tagManage",
|
||||||
meta: {
|
// name: "tagManage",
|
||||||
title: "模型管理",
|
// component: () =>
|
||||||
icon: "article-create"
|
// import(
|
||||||
}
|
// "@/views/backOfficeSystem/fourColorManage/tagManage/index"
|
||||||
},
|
// ),
|
||||||
|
// meta: {
|
||||||
|
// title: "标签组合管理",
|
||||||
|
// icon: "article-create"
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// path: "/tsypHome",
|
||||||
|
// name: "tsypHome",
|
||||||
|
// component: () => import("@/views/backOfficeSystem/JudgmentHome/tsypHome/index"),
|
||||||
|
// meta: {
|
||||||
|
// title: "模型管理",
|
||||||
|
// icon: "article-create"
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/JobAppraisal",
|
path: "/JobAppraisal",
|
||||||
@ -744,23 +726,32 @@ export const publicRoutes = [
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/fileTransfer",
|
path: "/FileData",
|
||||||
name: "fileTransfer",
|
name: "FileData",
|
||||||
component: () => import("@/views/backOfficeSystem/HumanIntelligence/fileTransfer/index"),
|
component: () => import("@/views/backOfficeSystem/HumanIntelligence/FileData/index"),
|
||||||
meta: {
|
meta: {
|
||||||
title: "文件中转",
|
title: "文件中转",
|
||||||
icon: "article-create"
|
icon: "article-create"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: "/fileOrientation",
|
// path: "/fileTransfer",
|
||||||
name: "fileOrientation",
|
// name: "fileTransfer",
|
||||||
component: () => import("@/views/backOfficeSystem/HumanIntelligence/fileOrientation/index"),
|
// component: () => import("@/views/backOfficeSystem/HumanIntelligence/fileTransfer/index"),
|
||||||
meta: {
|
// meta: {
|
||||||
title: "文件定向传输",
|
// title: "文件中转",
|
||||||
icon: "article-create"
|
// icon: "article-create"
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
|
// {
|
||||||
|
// path: "/fileOrientation",
|
||||||
|
// name: "fileOrientation",
|
||||||
|
// component: () => import("@/views/backOfficeSystem/HumanIntelligence/fileOrientation/index"),
|
||||||
|
// meta: {
|
||||||
|
// title: "点对点",
|
||||||
|
// icon: "article-create"
|
||||||
|
// }
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
path: "/ssemanticAnalysis",
|
path: "/ssemanticAnalysis",
|
||||||
name: "semanticAnalysis",
|
name: "semanticAnalysis",
|
||||||
@ -787,7 +778,31 @@ export const publicRoutes = [
|
|||||||
title: "操作记录",
|
title: "操作记录",
|
||||||
icon: "article-create"
|
icon: "article-create"
|
||||||
}
|
}
|
||||||
}
|
}, {
|
||||||
|
path: "/dataMonitor",
|
||||||
|
name: "dataMonitor",
|
||||||
|
meta: { title: "数据监控", icon: "article-ranking" },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "/resourceMonitoring",
|
||||||
|
name: "resourceMonitoring",
|
||||||
|
component: () => import("@/views/backOfficeSystem/dataMonitor/resourceMonitoring/index.vue"),
|
||||||
|
meta: {
|
||||||
|
title: "数据资源检测",
|
||||||
|
icon: "article-create"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/onlineUserMonitoring",
|
||||||
|
name: "onlineUserMonitoring",
|
||||||
|
component: () => import("@/views/backOfficeSystem/dataMonitor/onlineUserMonitoring/index.vue"),
|
||||||
|
meta: {
|
||||||
|
title: "在线用户监控",
|
||||||
|
icon: "article-create"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
@ -835,31 +850,7 @@ export const publicRoutes = [
|
|||||||
icon: "article-ranking"
|
icon: "article-ranking"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: "/dataMonitor",
|
|
||||||
name: "dataMonitor",
|
|
||||||
meta: { title: "数据监控", icon: "article-ranking" },
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: "/resourceMonitoring",
|
|
||||||
name: "resourceMonitoring",
|
|
||||||
component: () => import("@/views/backOfficeSystem/dataMonitor/resourceMonitoring/index.vue"),
|
|
||||||
meta: {
|
|
||||||
title: "数据资源检测",
|
|
||||||
icon: "article-create"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/onlineUserMonitoring",
|
|
||||||
name: "onlineUserMonitoring",
|
|
||||||
component: () => import("@/views/backOfficeSystem/dataMonitor/onlineUserMonitoring/index.vue"),
|
|
||||||
meta: {
|
|
||||||
title: "在线用户监控",
|
|
||||||
icon: "article-create"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: "/systemConfig",
|
path: "/systemConfig",
|
||||||
// component: layout,
|
// component: layout,
|
||||||
@ -1080,6 +1071,50 @@ export const publicRoutes = [
|
|||||||
icon: "article-create"
|
icon: "article-create"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/ExcavationResearch",
|
||||||
|
name: "ExcavationResearch",
|
||||||
|
meta: { title: "重点人发掘", icon: "article-ranking" },
|
||||||
|
children: [
|
||||||
|
|
||||||
|
{
|
||||||
|
path: "/PreliminaryExcavations",
|
||||||
|
name: "PreliminaryExcavations",
|
||||||
|
component: () =>
|
||||||
|
import(
|
||||||
|
"@/views/backOfficeSystem/ExcavationResearch/PreliminaryExcavations/index"
|
||||||
|
),
|
||||||
|
meta: {
|
||||||
|
title: "重点人员初步发掘",
|
||||||
|
icon: "article-create"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/ZdryFjyp",
|
||||||
|
name: "ZdryFjyp",
|
||||||
|
component: () =>
|
||||||
|
import(
|
||||||
|
"@/views/backOfficeSystem/ExcavationResearch/ZdryFjyp/index"
|
||||||
|
),
|
||||||
|
meta: {
|
||||||
|
title: "重点人员深度发掘",
|
||||||
|
icon: "article-create"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/LandingAudit",
|
||||||
|
name: "LandingAudit",
|
||||||
|
component: () =>
|
||||||
|
import(
|
||||||
|
"@/views/backOfficeSystem/ExcavationResearch/LandingAudit/index"
|
||||||
|
),
|
||||||
|
meta: {
|
||||||
|
title: "重点人员落地审核",
|
||||||
|
icon: "article-create"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// path: "/ResearchHome",
|
// path: "/ResearchHome",
|
||||||
// name: "ResearchHome",
|
// name: "ResearchHome",
|
||||||
|
|||||||
@ -13,6 +13,13 @@ const getChildrenRoutes = (routes) => {
|
|||||||
// 在这个条件分支中也需要过滤掉/internalAuditor路由
|
// 在这个条件分支中也需要过滤掉/internalAuditor路由
|
||||||
result.push(...route.children);
|
result.push(...route.children);
|
||||||
} else {
|
} else {
|
||||||
|
if (route.path == '/HumanIntelligence') {
|
||||||
|
route.children.splice(route.children.findIndex(item => item.path == '/auditList'), 1)
|
||||||
|
result.push(...route.children);
|
||||||
|
} else {
|
||||||
|
result.push(...route.children);
|
||||||
|
}
|
||||||
|
|
||||||
if (route.path == '/JudgmentHome') {
|
if (route.path == '/JudgmentHome') {
|
||||||
route.children.splice(route.children.findIndex(item => item.path == '/internalAuditor'), 1)
|
route.children.splice(route.children.findIndex(item => item.path == '/internalAuditor'), 1)
|
||||||
result.push(...route.children);
|
result.push(...route.children);
|
||||||
@ -37,9 +44,7 @@ export const filterRoutes = (routes) => {
|
|||||||
return !childrenRoutes.find((childrenRoute) => {
|
return !childrenRoutes.find((childrenRoute) => {
|
||||||
return childrenRoute.path === route.path;
|
return childrenRoute.path === route.path;
|
||||||
});
|
});
|
||||||
}).filter(item => item.path != '/internalAuditor')
|
}).filter(item => item.path != '/internalAuditor' && item.path != '/auditList')
|
||||||
console.log(childrenRoutes);
|
|
||||||
|
|
||||||
return data
|
return data
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
<PageTitle title="基础库">
|
|
||||||
<template #left>
|
<template #left>
|
||||||
<el-button v-for="(el,index) in tabBtn" :type="tabActive==index?'primary':''" @click="tabActive=index" :key="el">{{ el }}</el-button>
|
<el-button size="small" v-for="(el,index) in tabBtn" :type="tabActive==index?'primary':''" @click="tabActive=index" :key="el">{{ el }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<ZdrPage v-if="tabActive==0" />
|
<ZdrPage v-if="tabActive==0" />
|
||||||
<ZdqtPage v-else-if="tabActive==1" />
|
<ZdqtPage v-else-if="tabActive==1" />
|
||||||
<ZdclPage v-else-if="tabActive==2" />
|
<ZdclPage v-else-if="tabActive==2" />
|
||||||
|
|||||||
@ -1,7 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="重点车辆管理">
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请</el-button>
|
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请</el-button>
|
||||||
@ -28,12 +33,8 @@
|
|||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
|
|||||||
@ -1,7 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="重点群体管理">
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请
|
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请
|
||||||
@ -33,12 +38,8 @@
|
|||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
|
|||||||
@ -1,7 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="重点群体管理">
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请
|
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请
|
||||||
@ -34,12 +39,8 @@
|
|||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
|
|||||||
@ -1,7 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="重点群体审核">
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请
|
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请
|
||||||
@ -31,12 +36,8 @@
|
|||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
|
|||||||
@ -1,7 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- 搜索 -->
|
||||||
<PageTitle title="重点人管理">
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请</el-button>
|
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请</el-button>
|
||||||
@ -32,12 +36,8 @@
|
|||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- <div class="titleBox">
|
||||||
<PageTitle title="重点人审批">
|
<PageTitle title="重点人审批"> -->
|
||||||
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
<!-- <el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请</el-button>
|
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请</el-button>
|
||||||
@ -24,14 +24,14 @@
|
|||||||
</el-popover>
|
</el-popover>
|
||||||
<el-button size="small" type="primary" @click="handleZxs">转线索</el-button>
|
<el-button size="small" type="primary" @click="handleZxs">转线索</el-button>
|
||||||
<el-button size="small" type="primary" @click="handleMove">移交管控</el-button> -->
|
<el-button size="small" type="primary" @click="handleMove">移交管控</el-button> -->
|
||||||
</PageTitle>
|
<!-- </PageTitle>
|
||||||
</div>
|
</div> -->
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageData.tableData"
|
:tableData="pageData.tableData"
|
||||||
:tableColumn="pageData.tableColumn"
|
:tableColumn="pageData.tableColumn"
|
||||||
@ -383,7 +383,7 @@ const addEdit = (type, row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,14 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="重点人员深度发掘"></PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageData.tableData"
|
:tableData="pageData.tableData"
|
||||||
:tableColumn="pageData.tableColumn"
|
:tableColumn="pageData.tableColumn"
|
||||||
@ -192,7 +189,7 @@ const handleDetail = (val,type) =>{
|
|||||||
}
|
}
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -12,12 +12,12 @@
|
|||||||
<Search :searchArr="searchConfiger" @submit="onSearch"> </Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch"> </Search>
|
||||||
<div class="tableCnt1 mb10 pl10 pr10">
|
<div class="tableCnt1 mb10 pl10 pr10">
|
||||||
<PageTitle title="发掘内容" style="color: #333"></PageTitle>
|
<PageTitle title="发掘内容" style="color: #333"></PageTitle>
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageData.tableData"
|
:tableData="pageData.tableData"
|
||||||
:tableColumn="pageData.tableColumn"
|
:tableColumn="pageData.tableColumn"
|
||||||
:tableHeight="pageData.tableHeight"
|
:tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount"
|
:key="pageData.keyCount"
|
||||||
:tableConfiger="pageData.tableConfigerTop"
|
:tableConfiger="pageData.tableConfigerTop"
|
||||||
:controlsWidth="pageData.controlsWidth">
|
:controlsWidth="pageData.controlsWidth">
|
||||||
<template #sjly="{ row }">
|
<template #sjly="{ row }">
|
||||||
<DictTag :tag="false" :value="row.sjly" :options="D_GS_RQFJ_LX" />
|
<DictTag :tag="false" :value="row.sjly" :options="D_GS_RQFJ_LX" />
|
||||||
@ -38,11 +38,11 @@
|
|||||||
<el-button :type="it == '批量删除' ? 'danger' : 'primary'" size="small" v-for="it in btnsList" :key="it" @click="chooseType(it)">{{ it }}</el-button>
|
<el-button :type="it == '批量删除' ? 'danger' : 'primary'" size="small" v-for="it in btnsList" :key="it" @click="chooseType(it)">{{ it }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageData.tableData2"
|
:tableData="pageData.tableData2"
|
||||||
:tableColumn="pageData.tableColumn2"
|
:tableColumn="pageData.tableColumn2"
|
||||||
:tableHeight="pageData.tableHeight2"
|
:tableHeight="pageData.tableHeight2"
|
||||||
:key="pageData.keyCount"
|
:key="pageData.keyCount"
|
||||||
:tableConfiger="pageData.tableConfiger"
|
:tableConfiger="pageData.tableConfiger"
|
||||||
:controlsWidth="pageData.controlsWidth"
|
:controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseDataBottom">
|
@chooseData="chooseDataBottom">
|
||||||
@ -72,10 +72,10 @@
|
|||||||
<el-link size="small" type="primary" @click="viewDetails(row)">查看</el-link>
|
<el-link size="small" type="primary" @click="viewDetails(row)">查看</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages
|
<Pages
|
||||||
@changeNo="changeNo"
|
@changeNo="changeNo"
|
||||||
@changeSize="changeSize"
|
@changeSize="changeSize"
|
||||||
:tableHeight="pageData.tableHeight"
|
:tableHeight="pageData.tableHeight"
|
||||||
:pageConfiger="{
|
:pageConfiger="{
|
||||||
...pageData.pageConfiger,
|
...pageData.pageConfiger,
|
||||||
total: pageData.total
|
total: pageData.total
|
||||||
@ -122,7 +122,8 @@ const searchConfiger = ref([
|
|||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
const active = ref('');
|
const active = ref('');
|
||||||
const btnsList = reactive(["级别变更","警种变更","指定分配","添加标签","导出","批量删除"]);
|
// "级别变更","警种变更","指定分配","添加标签",
|
||||||
|
const btnsList = reactive(["导出","批量删除"]);
|
||||||
const chooselx = ref("");
|
const chooselx = ref("");
|
||||||
const ids = ref([]);
|
const ids = ref([]);
|
||||||
const addFormDiloag = ref();
|
const addFormDiloag = ref();
|
||||||
@ -295,7 +296,7 @@ const intelligent = () => {
|
|||||||
btnLoading.value = true;
|
btnLoading.value = true;
|
||||||
ParsingText( obj,(res)=>{
|
ParsingText( obj,(res)=>{
|
||||||
console.log(res,'===========系欸小蜀');
|
console.log(res,'===========系欸小蜀');
|
||||||
|
|
||||||
btnLoading.value = false;
|
btnLoading.value = false;
|
||||||
let content = res.data.choices[0].message.content;
|
let content = res.data.choices[0].message.content;
|
||||||
let message = null;
|
let message = null;
|
||||||
|
|||||||
@ -1,15 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="转合成">
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseData">
|
@chooseData="chooseData">
|
||||||
@ -125,7 +122,7 @@ const getList = () => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight -200
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -0,0 +1,23 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button :type="qh ? 'primary' : 'default'" @click="add(true)" size="small">文件中转</el-button>
|
||||||
|
<el-button :type="qh ? 'default' : 'primary'" @click="add(false)" size="small">点对点</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
|
<FileTransfer v-if="qh" />
|
||||||
|
<FileOrientation v-else />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import FileTransfer from "@/views/backOfficeSystem/HumanIntelligence/fileTransfer/index.vue"
|
||||||
|
import FileOrientation from "@/views/backOfficeSystem/HumanIntelligence/fileOrientation/index.vue"
|
||||||
|
import { ref } from "vue";
|
||||||
|
const qh = ref(true)
|
||||||
|
const add = (flag) => {
|
||||||
|
qh.value = flag
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -1,15 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="转线索">
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseData">
|
@chooseData="chooseData">
|
||||||
@ -145,7 +141,7 @@ const getList = () => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- 搜索 -->
|
||||||
<PageTitle title="工作考核">
|
<div ref="searchBox" class="mt10">
|
||||||
<el-button type="primary" @click="addEdit('add', '')">
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" type="primary" @click="addEdit('add', '')">
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
|
|||||||
@ -152,9 +152,7 @@ watch(() => D_BZ_BQJB, val => {
|
|||||||
{ label: "情报类型", prop: 'qblx', placeholder: "请选择情报类型", showType: "select", options: D_GS_XS_LX },
|
{ label: "情报类型", prop: 'qblx', placeholder: "请选择情报类型", showType: "select", options: D_GS_XS_LX },
|
||||||
{ label: "情报来源", prop: 'cjLx', placeholder: "请选择情报来源", showType: "select", options: D_BZ_CJLX },
|
{ label: "情报来源", prop: 'cjLx', placeholder: "请选择情报来源", showType: "select", options: D_BZ_CJLX },
|
||||||
{ label: "情报处置状态", prop: 'czzt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_QBCZZT },
|
{ label: "情报处置状态", prop: 'czzt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_QBCZZT },
|
||||||
{
|
{label: "标签级别", prop: 'qbjbList', placeholder: "请选择标签", showType: "select", options: list.value},
|
||||||
label: "标签级别", prop: 'qbjbList', placeholder: "请选择标签", showType: "select", options: list.value
|
|
||||||
},
|
|
||||||
{ label: "来源单位", prop: 'ssbmdm', placeholder: "请选择来源单位", showType: "department" },
|
{ label: "来源单位", prop: 'ssbmdm', placeholder: "请选择来源单位", showType: "department" },
|
||||||
{ label: "关键字", prop: 'keyword', placeholder: "请输入关键字", showType: "input" },
|
{ label: "关键字", prop: 'keyword', placeholder: "请输入关键字", showType: "input" },
|
||||||
]
|
]
|
||||||
|
|||||||
@ -0,0 +1,726 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">{{ title }}</span>
|
||||||
|
<div>
|
||||||
|
<el-button @click="submitForm()" type="primary" v-if="!disabled">保存</el-button>
|
||||||
|
<el-button @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<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">
|
||||||
|
<template #jbxx>
|
||||||
|
<div>
|
||||||
|
<h3 class="tags-title">报送情况</h3>
|
||||||
|
<div style="display: flex;justify-content:space-between;width: 200%;">
|
||||||
|
<div>录入人:{{ userName }}</div>
|
||||||
|
<div>录入单位:{{ userInfo.deptName }}</div>
|
||||||
|
<div>本年度报送信息量:{{ tjcll.cnl || 0 }}</div>
|
||||||
|
<div>采纳量:{{ tjcll.sbsl || 0 }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #shzt>
|
||||||
|
<div v-if="disabled">
|
||||||
|
<h3 class="tags-title">审核状态</h3>
|
||||||
|
<div style="display: flex;justify-content:space-between;width: 200%;">
|
||||||
|
<div style="display: flex;">
|
||||||
|
市审核状态:<DictTag v-model:value="listQuery.sldshzt" :options="dict.D_BZ_SSSHZT" :tag="false" />
|
||||||
|
</div>
|
||||||
|
<div style="display: flex;">
|
||||||
|
县审核状态:<DictTag v-model:value="listQuery.xldshzt" :options="dict.D_BZ_SSSHZT" :tag="false" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
<!-- </div> -->
|
||||||
|
<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_LCZT" />
|
||||||
|
</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 { xxcjAddEntity, xxcjUpdateEntity, xxcjSelectByid, xxcjSelectCzlcList, xxcjSelectListBc, xxcjDeletesBc, addEntity, xxcjTjcll, xxcjXxzhs } 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 { getItem } from '@//utils/storage.js'
|
||||||
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
import pursueContent from "@/views/backOfficeSystem/HumanIntelligence/components/pursueContent.vue";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
|
||||||
|
const { proxy } = getCurrentInstance()
|
||||||
|
const emit = defineEmits(["getList"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dict: Object,
|
||||||
|
titleData: {
|
||||||
|
type: String,
|
||||||
|
default: ""
|
||||||
|
},
|
||||||
|
showBc: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const loading = ref(false)
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const formData = ref();
|
||||||
|
const rules = ref({
|
||||||
|
qbmc: [{ required: true, message: "请输入情报标题", trigger: "blur" }],
|
||||||
|
qbnr: [{ required: true, message: "请输入情报内容", trigger: "blur" }],
|
||||||
|
bcnr: [{ required: true, message: "请输入续报内容", trigger: "blur" }],
|
||||||
|
})
|
||||||
|
const tjcll = ref({})
|
||||||
|
const getXxcjTjcll = () => {
|
||||||
|
xxcjTjcll({}).then(res => {
|
||||||
|
tjcll.value = res
|
||||||
|
}).catch(error => {
|
||||||
|
console.error('请求失败:', error)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
watch(() => dialogForm.value, (val) => {
|
||||||
|
if (val) {
|
||||||
|
if (formType.value === 'followUpReport') {
|
||||||
|
formData.value = [
|
||||||
|
{ label: "情报标题", prop: "qbmc", type: "input", width: '45%', disabled: true },
|
||||||
|
{ label: "续报内容", prop: "bcnr", type: "textarea", width: '100%', rows: 100 },
|
||||||
|
]
|
||||||
|
} else {
|
||||||
|
formData.value = [
|
||||||
|
{ label: "情报标题", prop: "qbmc", type: "input", width: '45%' },
|
||||||
|
{ label: "情报内容", prop: "qbnr", type: "textarea", width: '100%', rows: 100 },
|
||||||
|
{ label: "附件上传", prop: "fjdz", type: "upload", width: '100%', isImg: false },
|
||||||
|
{ label: "", prop: "jbxx", type: "slot", width: '100%',},
|
||||||
|
{ label: "", prop: "shzt", type: "slot", width: '100%' },
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, { deep: true })
|
||||||
|
const fjdz = ref()
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const elform = ref();
|
||||||
|
onMounted(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
const msgeDat = ref()
|
||||||
|
const title = ref("")
|
||||||
|
const showPj = ref(false)
|
||||||
|
const disabled = ref(false)
|
||||||
|
/** 类型 add 新增 info 详情 edit 编辑 followUpReport 续报*/
|
||||||
|
const formType = ref('add')
|
||||||
|
const userInfo = ref({})
|
||||||
|
const userName = ref('')
|
||||||
|
// 初始化数据
|
||||||
|
const init = (type, row) => {
|
||||||
|
userInfo.value = getItem('deptId') ? getItem('deptId')[0] : {}
|
||||||
|
userName.value = getItem('USERNAME')
|
||||||
|
getXxcjTjcll()
|
||||||
|
const titleObj = {
|
||||||
|
add: "新增",
|
||||||
|
info: "详情",
|
||||||
|
edit: "编辑",
|
||||||
|
followUpReport: "续报"
|
||||||
|
}
|
||||||
|
title.value = titleObj[type]
|
||||||
|
disabled.value = type == 'info' ? true : false
|
||||||
|
fjdz.value = []
|
||||||
|
dialogForm.value = true;
|
||||||
|
formType.value = type
|
||||||
|
if (type == 'info' || type == 'edit' || type == 'followUpReport') {
|
||||||
|
showPj.value = true
|
||||||
|
msgeDat.value = row
|
||||||
|
getqbcjPldb(row.id)
|
||||||
|
getxxcjSelectListBc(row.id, '01')
|
||||||
|
getxxcjSelectListBc(row.id, '02')
|
||||||
|
// 初始化表单数据,并根据详情页设置禁用状态
|
||||||
|
if (row) getDataById(row.id);
|
||||||
|
// getqbcjCzztList()
|
||||||
|
} else {
|
||||||
|
showPj.value = false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// 根据id查询详情
|
||||||
|
const getDataById = (id) => {
|
||||||
|
xxcjSelectByid({ id }).then((res) => {
|
||||||
|
|
||||||
|
lcList.value = res.czlcList || []
|
||||||
|
listQuery.value = res;
|
||||||
|
listQuery.value.fjdz = res.fjdz ? res.fjdz?.split(",") : []
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
const submitForm = () => {
|
||||||
|
elform.value.submit(valid => {
|
||||||
|
if (valid) {
|
||||||
|
loading.value = true
|
||||||
|
const promes = {
|
||||||
|
...listQuery.value,
|
||||||
|
fjdz: listQuery.value.fjdz && listQuery.value.fjdz.length > 0 ? listQuery.value.fjdz.map(item => {
|
||||||
|
return item.id
|
||||||
|
}).join(',') : '',
|
||||||
|
qbly: 0,
|
||||||
|
}
|
||||||
|
if (title.value == '新增') {
|
||||||
|
xxcjAddEntity(promes).then((res) => {
|
||||||
|
emit("getList")
|
||||||
|
close()
|
||||||
|
}).finally(() => {
|
||||||
|
loading.value = false
|
||||||
|
})
|
||||||
|
} else if (title.value == '编辑') {
|
||||||
|
xxcjUpdateEntity(promes).then((res) => {
|
||||||
|
emit("getList")
|
||||||
|
close()
|
||||||
|
}).finally(() => {
|
||||||
|
loading.value = false
|
||||||
|
})
|
||||||
|
} else if (title.value == '续报') {
|
||||||
|
const params = {
|
||||||
|
qbid: listQuery.value.id,
|
||||||
|
czlx: '01',
|
||||||
|
ysnr: listQuery.value.qbnr,
|
||||||
|
bcnr: promes.bcnr,
|
||||||
|
}
|
||||||
|
addEntity(params).then((res) => {
|
||||||
|
emit("getList")
|
||||||
|
close()
|
||||||
|
}).finally(() => {
|
||||||
|
loading.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const route = useRoute()
|
||||||
|
const router = useRouter()
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
if (route.query.id) {
|
||||||
|
const query = { ...route.query };
|
||||||
|
delete query.id;
|
||||||
|
router.replace({ query });
|
||||||
|
}
|
||||||
|
fjdz.value = []
|
||||||
|
lcList.value = []
|
||||||
|
listQuery.value = {};
|
||||||
|
dialogForm.value = false;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
const lcList = ref([])
|
||||||
|
const getqbcjPldb = (id) => {
|
||||||
|
xxcjSelectCzlcList({ qbid: id }).then(res => {
|
||||||
|
console.log(res);
|
||||||
|
|
||||||
|
lcList.value = res || []
|
||||||
|
})
|
||||||
|
.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(() => {
|
||||||
|
const userName = getItem('USERNAME')
|
||||||
|
if (userName == tag.bcrxm) {
|
||||||
|
xxcjDeletesBc({ ids: [tag.id] }).then(res => {
|
||||||
|
ElMessage({
|
||||||
|
message: '删除成功',
|
||||||
|
type: 'success',
|
||||||
|
showClose: true,
|
||||||
|
})
|
||||||
|
getxxcjSelectListBc(msgeDat.value.id, '01')
|
||||||
|
getxxcjSelectListBc(msgeDat.value.id, '02')
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
proxy.$message({
|
||||||
|
message: '您不是该数据的创建人,不能删除',
|
||||||
|
type: 'warning',
|
||||||
|
showClose: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
//
|
||||||
|
const pursueShow = ref(false)
|
||||||
|
const dataVals = ref([])
|
||||||
|
const processtitle = ref()
|
||||||
|
const openPursue = (title, data) => {
|
||||||
|
const userName = getItem('USERNAME')
|
||||||
|
if (userName == data.bcrxm) {
|
||||||
|
pursueShow.value = true
|
||||||
|
processtitle.value = title
|
||||||
|
dataVals.value = data
|
||||||
|
} else {
|
||||||
|
proxy.$message({
|
||||||
|
message: '您不是该数据的创建人,不能进行操作',
|
||||||
|
type: 'warning',
|
||||||
|
showClose: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
defineExpose({ init });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
|
||||||
|
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||||
|
color: #0072ff;
|
||||||
|
background: rgba(0, 114, 255, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxlist {
|
||||||
|
width: 99%;
|
||||||
|
height: 225px;
|
||||||
|
margin-top: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .avatar-uploader {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list {
|
||||||
|
margin-left: 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list__item-name .el-icon {
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form_cnt {
|
||||||
|
// width: 75%;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.person {
|
||||||
|
padding-left: 20px;
|
||||||
|
width: 25%;
|
||||||
|
// height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 补充信息样式 */
|
||||||
|
.supplement-title {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
|
margin: 16px 0 10px 0;
|
||||||
|
padding-left: 5px;
|
||||||
|
border-left: 3px solid #24b6dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-list {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 8px 12px;
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
border: 1px solid #e4e7ed;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
margin-right: 10px;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-item:hover {
|
||||||
|
background-color: #ecf5ff;
|
||||||
|
border-color: #c6e2ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-content {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-actions {
|
||||||
|
display: flex;
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-icon {
|
||||||
|
// font-size: 24px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-icon {
|
||||||
|
color: #24b6dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-icon:hover {
|
||||||
|
color: #409eff;
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.delete-icon {
|
||||||
|
color: #f56c6c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.delete-icon:hover {
|
||||||
|
color: #f78989;
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间线标题样式 */
|
||||||
|
.timeline-title {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #303133;
|
||||||
|
padding: 12px 16px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
border-bottom: 1px solid #ebeef5;
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间线样式优化 */
|
||||||
|
.el-timeline {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 处置流程卡片样式 */
|
||||||
|
.process-card {
|
||||||
|
border: none;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.08);
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
border-left: 3px solid #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-card:hover {
|
||||||
|
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.12);
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 卡片内部信息样式 */
|
||||||
|
.process-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-info:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-label {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #409EFF;
|
||||||
|
margin-right: 8px;
|
||||||
|
min-width: 65px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-value {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 1.6;
|
||||||
|
flex: 1;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间戳样式 */
|
||||||
|
.el-timeline-item__timestamp {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #909399;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间线节点样式 */
|
||||||
|
.el-timeline-item__node {
|
||||||
|
background-color: #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-textarea__inner {
|
||||||
|
height: 50vh !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 容器类样式 */
|
||||||
|
.form-container {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-content {
|
||||||
|
// display: flex;
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-container {
|
||||||
|
border: 1px solid #ebeef5;
|
||||||
|
flex: 1;
|
||||||
|
margin: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间线宽度 */
|
||||||
|
.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>
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
<!--文件导出 -->
|
||||||
|
<template>
|
||||||
|
<el-dialog :model-value="modelValue" :title="title" :width="width" @close="close" append-to-body>
|
||||||
|
<div style="height: 15vh;">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules" :labelWidth="100" />
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="close">取消</el-button>
|
||||||
|
<el-button type="primary" @click="exportCurrentTable">确定 </el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { onMounted, reactive, watch, ref, getCurrentInstance } from 'vue'
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
|
||||||
|
import { xxcjXxcjSh } from "@/api/xxcj.js"
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const props = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
width: {
|
||||||
|
type: String,
|
||||||
|
default: '30%'
|
||||||
|
}, dict: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: '审批'
|
||||||
|
}, dataModel: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const listQuery = ref({})
|
||||||
|
const elform = ref()
|
||||||
|
const rules = ref({
|
||||||
|
shzt: { required: true, message: '请选择审批状态', trigger: ['blur', 'change'] },
|
||||||
|
shyh: { required: true, message: '请输入不通过原因', trigger: ['blur', 'change'] }
|
||||||
|
})
|
||||||
|
const formData = ref([
|
||||||
|
{ label: "审批状态", prop: "shzt", type: "select", width: '100%', options: [{ label: "通过", value: "02" }, { label: "不通过", value: "03" }] },
|
||||||
|
{}
|
||||||
|
])
|
||||||
|
// watch(() => listQuery.value.modelValue, (newVal, oldVal) => {
|
||||||
|
// if (newVal) {
|
||||||
|
// listQuery.value.xxid = props.dataModel.id
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
watch(() => listQuery.value.shzt == '03', (newVal, oldVal) => {
|
||||||
|
if (newVal) {
|
||||||
|
formData.value[1] = { label: "不通过原因", prop: "shyh", type: "textarea", width: '100%', rows: 3 }
|
||||||
|
} else {
|
||||||
|
formData.value[1] = {}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const exportCurrentTable = () => {
|
||||||
|
elform.value.submit(valid => {
|
||||||
|
const params = { ...listQuery.value, xxid: props.dataModel.id}
|
||||||
|
xxcjXxcjSh(params).then(res => {
|
||||||
|
proxy.$message({ type: "success", message: "审批成功" });
|
||||||
|
emit('getList')
|
||||||
|
emit('update:modelValue', false)
|
||||||
|
elform.value.reset()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
watch(() => props.modelValue, (newVal, oldVal) => {
|
||||||
|
if (newVal) {
|
||||||
|
listQuery.value.id = props.dataModel.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emit = defineEmits(['update:modelValue','getList'])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const close = () => {
|
||||||
|
emit('update:modelValue', false)
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
205
src/views/backOfficeSystem/HumanIntelligence/auditList/index.vue
Normal file
205
src/views/backOfficeSystem/HumanIntelligence/auditList/index.vue
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
|
<Searchs :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
|
</div>
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="tabBox heightBox">
|
||||||
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
|
<template #qblx="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.qblx" :options="D_GS_XS_LX" />
|
||||||
|
</template>
|
||||||
|
<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 #xldshzt="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.sldshzt" :options="D_BZ_SSSHZT" />
|
||||||
|
</template>
|
||||||
|
<template #sldshzt="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.sldshzt" :options="D_BZ_SSSHZT" />
|
||||||
|
</template>
|
||||||
|
<template #controls="{ row }">
|
||||||
|
<el-link size="small" type="danger" @click="openDoingLogin(row)"
|
||||||
|
v-if="row.sldshzt == '01' && getRole() == '02'">审批</el-link>
|
||||||
|
<el-link size="small" type="danger" @click="openDoingLogin(row)"
|
||||||
|
v-if="row.xldshzt == '01' && getRole() == '01'">审批</el-link>
|
||||||
|
<el-link size="small" type="primary" @click="addEdit('info', row)">详情</el-link>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||||
|
...pageData.pageConfiger,
|
||||||
|
total: pageData.total
|
||||||
|
}"></Pages>
|
||||||
|
</div>
|
||||||
|
<!-- 新增 -->
|
||||||
|
<AddForm ref="detailDiloag" @getList="getList" :dict="{ D_BZ_LCZT, D_BZ_SSSHZT }" />
|
||||||
|
</div>
|
||||||
|
<Doinglogin v-model="doingloginModel" :dataModel="dataModel" :dict="{ D_BZ_SSSHZT }" @getList="getList" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import Doinglogin from "./components/doinglogin.vue";
|
||||||
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
|
import Searchs from "@/components/aboutTable/Search.vue";
|
||||||
|
import AddForm from "./components/addForm.vue";
|
||||||
|
import { xxcjSelectDshPage } from '@/api/xxcj.js'
|
||||||
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
|
import { getItem } from "@/utils/storage";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_BZ_SSSHZT, D_GS_XS_LX, D_BZ_BQJB, D_BZ_QBCZZT, D_BZ_CJLX, D_BZ_LCZT } =
|
||||||
|
proxy.$dict('D_BZ_SSSHZT', 'D_GS_XS_LX', 'D_BZ_BQJB', 'D_BZ_QBCZZT', 'D_BZ_CJLX', 'D_BZ_LCZT'); //获取字典数据
|
||||||
|
const searchBox = ref(); //搜索框
|
||||||
|
const searchConfiger = ref([
|
||||||
|
{ label: "录入人", prop: 'xssbr', placeholder: "请输入录入人", showType: "input" },
|
||||||
|
{ label: "录入单位", prop: "ssbmdm", placeholder: "请选择录入单位", showType: "department" },
|
||||||
|
{ label: "编号", prop: 'xsBh', placeholder: "请输入编号", showType: "input" },
|
||||||
|
{ label: "时间", prop: "startTime", placeholder: "请选择时间", showType: "daterange" },
|
||||||
|
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
|
||||||
|
{ label: "标签级别", prop: 'qbjb', placeholder: "请选择标签级别", showType: "select", options: D_BZ_BQJB },
|
||||||
|
{ label: "情报处置状态", prop: 'lczt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_LCZT },
|
||||||
|
{ label: "关键字", prop: 'keyword', placeholder: "请输入关键字", showType: "input" },
|
||||||
|
]);
|
||||||
|
const pageData = reactive({
|
||||||
|
tableData: [],
|
||||||
|
keyCount: 0,
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "checkBox",
|
||||||
|
loading: false
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
pageConfiger: {
|
||||||
|
pageSize: 20,
|
||||||
|
pageCurrent: 1
|
||||||
|
},
|
||||||
|
controlsWidth: 200,
|
||||||
|
tableColumn: [
|
||||||
|
{ label: "情报上报时间", prop: "sxsbsj" },
|
||||||
|
{ label: "情报编号", prop: "xsBh" },
|
||||||
|
{ label: "情报标题", prop: "qbmc" },
|
||||||
|
{ label: "情报来源", prop: "qbly", showSolt: true },
|
||||||
|
{ label: "上报人", prop: "xssbr" },
|
||||||
|
{ label: "上报单位", prop: "ssbm" },
|
||||||
|
{ label: "县审核", prop: "xldshzt", showSolt: true },
|
||||||
|
{ label: "市审核", prop: "sldshzt", showSolt: true },
|
||||||
|
]
|
||||||
|
});
|
||||||
|
const queryFrom = ref({});
|
||||||
|
/** 获取当前角色 */
|
||||||
|
function getRole() {
|
||||||
|
const { deptBizType, deptLevel } = getItem('deptId')[0]
|
||||||
|
/** 是否是市情指领导 */
|
||||||
|
const isShiQzLeader = getItem('roleList').find(item => item.roleCode == 'JS_666666') != undefined
|
||||||
|
if (isShiQzLeader) return '02'
|
||||||
|
const isXQzLeader = getItem('roleList').find(item => item.roleCode == 'JS_999999') != undefined
|
||||||
|
if (isXQzLeader) return '01'
|
||||||
|
}
|
||||||
|
// 搜索
|
||||||
|
const onSearch = (val) => {
|
||||||
|
const promes = {
|
||||||
|
...pageData.pageConfiger,
|
||||||
|
...val,
|
||||||
|
startTime: val.startTime ? val.startTime[0] : '',
|
||||||
|
endTime: val.endTime ? val.endTime[1] : '',
|
||||||
|
}
|
||||||
|
queryFrom.value = { ...promes }
|
||||||
|
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;
|
||||||
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
|
xxcjSelectDshPage(data).then(res => {
|
||||||
|
pageData.tableData = res.records || [];
|
||||||
|
pageData.total = res.total;
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
}).catch(() => { pageData.tableConfiger.loading = false; })
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
tabHeightFn()
|
||||||
|
getList()
|
||||||
|
});
|
||||||
|
//审批
|
||||||
|
const doingloginModel = ref(false)
|
||||||
|
const dataModel = ref({})
|
||||||
|
const openDoingLogin = (row) => {
|
||||||
|
dataModel.value = row
|
||||||
|
doingloginModel.value = true
|
||||||
|
}
|
||||||
|
const detailDiloag=ref()
|
||||||
|
const addEdit = (type, row) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
detailDiloag.value.init(type, row);
|
||||||
|
}, 500)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.label-pop {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
position: absolute;
|
||||||
|
content: '*';
|
||||||
|
top: 0;
|
||||||
|
left: -7px;
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.el-loading-mask {
|
||||||
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:v-deep .el-dialog {
|
||||||
|
width: 90% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.zdy-model-dialogs {
|
||||||
|
/* background-color: rgb(50, 148, 214); */
|
||||||
|
background: url("~@/assets/images/bg46.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
padding: 8px 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
pointer-events: auto !important;
|
||||||
|
height: calc(100% - 50px);
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vertical-middle {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,205 @@
|
|||||||
|
<template>
|
||||||
|
<div style="width: 100%;">
|
||||||
|
<div style="margin: 0 auto;">
|
||||||
|
<MOSTY.Upload v-model="listQuery.img" :isImg="isImg" :limit="limit" :isAll="false" :disabled="disabled"
|
||||||
|
:showBtn="true" :showFileList="false" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #controls="{ row }">
|
||||||
|
<div class="operation-links">
|
||||||
|
<el-link size="small" type="primary" @click="previewFile(row)" class="link-item primary-link"
|
||||||
|
v-if="row.wjlx == '.png' || row.wjlx == '.jpg' || row.wjlx == '.jpeg'">预览</el-link>
|
||||||
|
<el-link size="small" type="primary" @click="downloadFile(row)" class="link-item primary-link">下载</el-link>
|
||||||
|
<el-link size="small" type="danger" @click="deleteFile(row)" class="link-item danger-link">删除</el-link>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import { reactive, watch,getCurrentInstance } from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const props = defineProps({
|
||||||
|
isImg: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
limit: {
|
||||||
|
type: Number,
|
||||||
|
default: 0,
|
||||||
|
}, disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: () => { },
|
||||||
|
},
|
||||||
|
imgMsg: {
|
||||||
|
type: Array,
|
||||||
|
default: () => { },
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const emit = defineEmits(["changeData"]);
|
||||||
|
const listQuery = reactive({
|
||||||
|
img: "",
|
||||||
|
});
|
||||||
|
const pageData = reactive({
|
||||||
|
tableData: [],
|
||||||
|
keyCount: 0,
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "null",
|
||||||
|
loading: false
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
pageConfiger: {
|
||||||
|
pageSize: 20,
|
||||||
|
pageCurrent: 1
|
||||||
|
},
|
||||||
|
controlsWidth: 280,
|
||||||
|
tableColumn: [
|
||||||
|
{ label: "文件名称", prop: "wjmc" },
|
||||||
|
{ label: "文件大小", prop: "wjdx" },
|
||||||
|
]
|
||||||
|
});
|
||||||
|
watch(() => listQuery.img, (newVal, oldVal) => {
|
||||||
|
pageData.tableData = newVal.map(item => {
|
||||||
|
return {
|
||||||
|
wjmc: item.name,
|
||||||
|
wjdx:parseFloat((item.id.fileSize/1024/1024).toFixed(2)),
|
||||||
|
url: item.id.url
|
||||||
|
}
|
||||||
|
})
|
||||||
|
emit("changeData", pageData.tableData);
|
||||||
|
})
|
||||||
|
watch(() => props.imgMsg, (newVal, oldVal) => {
|
||||||
|
pageData.tableData = newVal.map(item => {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},{deep:true,immediate:true})
|
||||||
|
const deleteFile = (row) => {
|
||||||
|
pageData.tableData = pageData.tableData.filter(item => item.url !== row.url)
|
||||||
|
const data=pageData.tableData.map(item => {
|
||||||
|
return {
|
||||||
|
wjmc: item.wjmc,
|
||||||
|
wjdx: parseFloat(item.wjdx),
|
||||||
|
url: item.url
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
emit("changeData",data);
|
||||||
|
}
|
||||||
|
const downloadFile = async (item) => {
|
||||||
|
console.log(item);
|
||||||
|
try {
|
||||||
|
const dataList =[item]
|
||||||
|
if (dataList.length === 0) {
|
||||||
|
proxy.$message.warning('没有文件可下载');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const downloadCount = dataList.length;
|
||||||
|
let successCount = 0;
|
||||||
|
let failCount = 0;
|
||||||
|
|
||||||
|
proxy.$message.info(`开始下载${downloadCount}个文件...`);
|
||||||
|
|
||||||
|
// 并行下载所有文件
|
||||||
|
const downloadPromises = dataList.map(async (fileData, index) => {
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 使用fetch获取文件内容
|
||||||
|
const response = await fetch(fileData.url);
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error('文件下载失败');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将响应转换为Blob对象
|
||||||
|
const blob = await response.blob();
|
||||||
|
|
||||||
|
// 创建下载链接
|
||||||
|
const downloadLink = document.createElement('a');
|
||||||
|
downloadLink.href = URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
// 设置下载文件的名称,避免冲突
|
||||||
|
const fileName = dataList.length > 1
|
||||||
|
? `${item.wjmc}_${index + 1}`
|
||||||
|
: item.wjmc;
|
||||||
|
downloadLink.download = fileName;
|
||||||
|
|
||||||
|
// 触发下载
|
||||||
|
document.body.appendChild(downloadLink);
|
||||||
|
downloadLink.click();
|
||||||
|
|
||||||
|
// 清理
|
||||||
|
setTimeout(() => {
|
||||||
|
document.body.removeChild(downloadLink);
|
||||||
|
URL.revokeObjectURL(downloadLink.href);
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
successCount++;
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`文件${index + 1}下载失败:`, error);
|
||||||
|
failCount++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 等待所有下载完成
|
||||||
|
await Promise.all(downloadPromises);
|
||||||
|
|
||||||
|
// 显示下载结果
|
||||||
|
if (failCount === 0) {
|
||||||
|
proxy.$message.success(`成功下载${successCount}个文件`);
|
||||||
|
} else if (successCount === 0) {
|
||||||
|
proxy.$message.error(`所有${failCount}个文件下载失败`);
|
||||||
|
} else {
|
||||||
|
proxy.$message.warning(`成功下载${successCount}个文件,失败${failCount}个文件`);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('文件下载失败:', error);
|
||||||
|
proxy.$message.error('文件下载失败,请稍后重试');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.operation-links {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 12px;
|
||||||
|
|
||||||
|
.link-item {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 4px 12px;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 12px;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
transform: translateY(-1px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.primary-link {
|
||||||
|
color: #409EFF;
|
||||||
|
background-color: #ECF5FF;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #D9ECFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.danger-link {
|
||||||
|
color: #F56C6C;
|
||||||
|
background-color: #FEF0F0;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #FEE2E2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,20 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- 搜索 -->
|
||||||
<PageTitle title="文件定向传输">
|
<div ref="searchBox" class="mt10">
|
||||||
<el-button type="primary" @click="getDataById('add', '')">
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" type="primary" @click="getDataById('add', '')">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -28,11 +27,12 @@
|
|||||||
</template>
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link size="small" type="primary" @click="getDataById('edit',row)">修改</el-link>
|
<el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link>
|
||||||
<el-link size="small" type="primary" @click="getDataById('detail',row)">详情</el-link>
|
<el-link size="small" type="primary" @click="getDataById('detail', row)">详情</el-link>
|
||||||
<el-link size="small" type="primary" @click="previewFile(row)" v-if="row.wjlx == '.png'||row.wjlx == '.jpg'||row.wjlx == '.jpeg'">预览</el-link>
|
<el-link size="small" type="primary" @click="previewFile(row)"
|
||||||
<el-link size="small" type="primary" @click="downloadFile(row)">下载</el-link>
|
v-if="row.wjlx == '.png' || row.wjlx == '.jpg' || row.wjlx == '.jpeg'">预览</el-link>
|
||||||
<el-link size="small" type="danger" @click="deleteFile(row)">删除</el-link>
|
<el-link size="small" type="primary" @click="downloadFile(row)">下载</el-link>
|
||||||
|
<el-link size="small" type="danger" @click="deleteFile(row)">删除</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||||
@ -41,7 +41,8 @@
|
|||||||
}"></Pages>
|
}"></Pages>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<AddForm ref="addForm" @getList="getList"/>
|
<AddForm ref="addForm" @getList="getList" />
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -53,7 +54,7 @@ import { useRoute } from 'vue-router'
|
|||||||
|
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
||||||
import { getItem } from '@//utils/storage.js'
|
import { getItem } from '@//utils/storage.js'
|
||||||
import { deleteWjZzzAddEntity, getWjZzzAddEntity ,selectDxzjList} from '@//api/qbcj.js'
|
import { deleteWjZzzAddEntity, getWjZzzAddEntity, selectDxzjList } from '@//api/qbcj.js'
|
||||||
import AddForm from "@/views/backOfficeSystem/HumanIntelligence/fileTransfer/components/addForm.vue";
|
import AddForm from "@/views/backOfficeSystem/HumanIntelligence/fileTransfer/components/addForm.vue";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
// const { D_BZ_CJLX, D_GS_XS_LX } = proxy.$dict("D_BZ_CJLX", "D_GS_XS_LX"); //获取字典数据
|
// const { D_BZ_CJLX, D_GS_XS_LX } = proxy.$dict("D_BZ_CJLX", "D_GS_XS_LX"); //获取字典数据
|
||||||
@ -88,7 +89,7 @@ const qxkz = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
|
{ label: "文件名称", prop: 'wjmc', placeholder: "请输入文件名称", showType: "input" },
|
||||||
// { label: "情报来源", prop: 'cjLx', placeholder: "请选择情报来源", showType: "select", options: D_BZ_CJLX },
|
// { label: "情报来源", prop: 'cjLx', placeholder: "请选择情报来源", showType: "select", options: D_BZ_CJLX },
|
||||||
// { label: "来源单位", prop: 'ssbmdm', placeholder: "请选择来源单位", showType: "department" }
|
// { label: "来源单位", prop: 'ssbmdm', placeholder: "请选择来源单位", showType: "department" }
|
||||||
]);
|
]);
|
||||||
@ -109,12 +110,14 @@ const pageData = reactive({
|
|||||||
controlsWidth: 240,
|
controlsWidth: 240,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "文件名称", prop: "wjmc" },
|
{ label: "文件名称", prop: "wjmc" },
|
||||||
|
{ label: "上传人", prop: "scrxm" },
|
||||||
{ label: "文件大小", prop: "wjdx", showSolt: true },
|
{ label: "文件大小", prop: "wjdx", showSolt: true },
|
||||||
{ label: "文件类别", prop: "wjlb", showSolt: true },
|
{ label: "文件类别", prop: "wjlb", showSolt: true },
|
||||||
{ label: "所属部门", prop: "ssbm" },
|
{ label: "所属部门", prop: "ssbm" },
|
||||||
{ label: "文件描述", prop: "qbnr" },
|
{ label: "文件描述", prop: "qbnr" },
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
const queryFrom = ref({});
|
const queryFrom = ref({});
|
||||||
|
|
||||||
// 搜索
|
// 搜索
|
||||||
@ -145,7 +148,7 @@ const changeSize = (val) => {
|
|||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value ,wjlb:'02'};
|
let data = { ...pageData.pageConfiger, ...queryFrom.value, wjlb: '02' };
|
||||||
selectDxzjList(data).then(res => {
|
selectDxzjList(data).then(res => {
|
||||||
pageData.tableData = res.records || [];
|
pageData.tableData = res.records || [];
|
||||||
pageData.total = res.total;
|
pageData.total = res.total;
|
||||||
@ -156,7 +159,7 @@ const getList = () => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
@ -168,47 +171,77 @@ const getRouter = () => {
|
|||||||
}
|
}
|
||||||
const addForm = ref(null)
|
const addForm = ref(null)
|
||||||
const getDataById = (type, row) => {
|
const getDataById = (type, row) => {
|
||||||
addForm.value.init(type, row,'02');
|
addForm.value.init(type, row, '02');
|
||||||
}
|
}
|
||||||
const previewFile = (item) => {
|
const previewFile = (item) => {
|
||||||
window.open(item.wjdz);
|
window.open(item.wjdz);
|
||||||
}
|
}
|
||||||
const downloadFile = async (item) => {
|
const downloadFile = async (item) => {
|
||||||
|
console.log(item);
|
||||||
try {
|
try {
|
||||||
// 显示加载提示
|
const dataList =JSON.parse(item.wjdz)
|
||||||
// proxy.$message({
|
if (dataList.length === 0) {
|
||||||
// message: '开始下载文件...',
|
proxy.$message.warning('没有文件可下载');
|
||||||
// type: 'info',
|
return;
|
||||||
// duration: 0,
|
|
||||||
// showClose: true
|
|
||||||
// });
|
|
||||||
proxy.$message.info('开始下载文件...');
|
|
||||||
// 使用fetch获取文件内容
|
|
||||||
const response = await fetch(item.wjdz);
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error('文件下载失败');
|
|
||||||
}
|
}
|
||||||
|
console.log(dataList);
|
||||||
|
|
||||||
// 将响应转换为Blob对象
|
const downloadCount = dataList.length;
|
||||||
const blob = await response.blob();
|
let successCount = 0;
|
||||||
|
let failCount = 0;
|
||||||
|
|
||||||
// 创建下载链接
|
proxy.$message.info(`开始下载${downloadCount}个文件...`);
|
||||||
const downloadLink = document.createElement('a');
|
|
||||||
downloadLink.href = URL.createObjectURL(blob);
|
|
||||||
|
|
||||||
// 设置下载文件的名称
|
// 并行下载所有文件
|
||||||
downloadLink.download = item.wjmc;
|
const downloadPromises = dataList.map(async (fileData, index) => {
|
||||||
|
|
||||||
// 触发下载
|
try {
|
||||||
document.body.appendChild(downloadLink);
|
// 使用fetch获取文件内容
|
||||||
downloadLink.click();
|
const response = await fetch(fileData.url);
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error('文件下载失败');
|
||||||
|
}
|
||||||
|
|
||||||
// 清理
|
// 将响应转换为Blob对象
|
||||||
document.body.removeChild(downloadLink);
|
const blob = await response.blob();
|
||||||
URL.revokeObjectURL(downloadLink.href);
|
|
||||||
|
|
||||||
// 显示下载成功提示
|
// 创建下载链接
|
||||||
proxy.$message.success('文件下载成功');
|
const downloadLink = document.createElement('a');
|
||||||
|
downloadLink.href = URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
// 设置下载文件的名称,避免冲突
|
||||||
|
const fileName = dataList.length > 1
|
||||||
|
? `${item.wjmc}_${index + 1}`
|
||||||
|
: item.wjmc;
|
||||||
|
downloadLink.download = fileName;
|
||||||
|
|
||||||
|
// 触发下载
|
||||||
|
document.body.appendChild(downloadLink);
|
||||||
|
downloadLink.click();
|
||||||
|
|
||||||
|
// 清理
|
||||||
|
setTimeout(() => {
|
||||||
|
document.body.removeChild(downloadLink);
|
||||||
|
URL.revokeObjectURL(downloadLink.href);
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
successCount++;
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`文件${index + 1}下载失败:`, error);
|
||||||
|
failCount++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 等待所有下载完成
|
||||||
|
await Promise.all(downloadPromises);
|
||||||
|
// 显示下载结果
|
||||||
|
if (failCount === 0) {
|
||||||
|
proxy.$message.success(`成功下载${successCount}个文件`);
|
||||||
|
} else if (successCount === 0) {
|
||||||
|
proxy.$message.error(`所有${failCount}个文件下载失败`);
|
||||||
|
} else {
|
||||||
|
proxy.$message.warning(`成功下载${successCount}个文件,失败${failCount}个文件`);
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('文件下载失败:', error);
|
console.error('文件下载失败:', error);
|
||||||
proxy.$message.error('文件下载失败,请稍后重试');
|
proxy.$message.error('文件下载失败,请稍后重试');
|
||||||
@ -220,7 +253,7 @@ const deleteFile = (row) => {
|
|||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteWjZzzAddEntity({ids:[row.id]}).then(res => {
|
deleteWjZzzAddEntity({ ids: [row.id] }).then(res => {
|
||||||
proxy.$message.success('删除成功');
|
proxy.$message.success('删除成功');
|
||||||
getList();
|
getList();
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
|||||||
@ -8,11 +8,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
|
|
||||||
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
<template #wjdz>
|
<template #wjdz>
|
||||||
<div style="width: 100%;">
|
<FileUploadList @changeData="changeData" :imgMsg="imgMsg"/>
|
||||||
|
<!-- <div style="width: 100%;">
|
||||||
<UploadFile v-model="imgMsg" :limit="1" :isImg="false" :isAll="false" />
|
<UploadFile v-model="imgMsg" :limit="1" :isImg="false" :isAll="false" />
|
||||||
</div>
|
</div> -->
|
||||||
</template>
|
</template>
|
||||||
<template #jsrxm>
|
<template #jsrxm>
|
||||||
<el-input v-model="listQuery.jsrxm" placeholder="请输入接收人" readonly @click="chooseUserVisible = true" />
|
<el-input v-model="listQuery.jsrxm" placeholder="请输入接收人" readonly @click="chooseUserVisible = true" />
|
||||||
@ -26,6 +28,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import FileUploadList from "@/views/backOfficeSystem/HumanIntelligence/fileOrientation/components/fileUploadList.vue";
|
||||||
import UploadFile from "@/components/MyComponents/Upload/index.vue";
|
import UploadFile from "@/components/MyComponents/Upload/index.vue";
|
||||||
import ChooseUser from "@/components/ChooseList/ChooseUser/index.vue"
|
import ChooseUser from "@/components/ChooseList/ChooseUser/index.vue"
|
||||||
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, watch } from "vue";
|
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, watch } from "vue";
|
||||||
@ -49,16 +52,16 @@ const formData = ref([
|
|||||||
// },
|
// },
|
||||||
]);
|
]);
|
||||||
const listQuery = ref({}); //表单
|
const listQuery = ref({}); //表单
|
||||||
watch(() => imgMsg.value, (newVal, oldVal) => {
|
// watch(() => imgMsg.value, (newVal, oldVal) => {
|
||||||
if (newVal.length > 0) {
|
// if (newVal.length > 0) {
|
||||||
listQuery.value.wjdz= newVal[0].id?newVal[0].id.url:listQuery.value.wjdz,
|
// listQuery.value.wjdz= newVal[0].id?newVal[0].id.url:listQuery.value.wjdz,
|
||||||
listQuery.value.wjdx= newVal[0].id?(newVal[0].id.fileSize / 1024 / 1024).toFixed(2):listQuery.value.wjdx,
|
// listQuery.value.wjdx= newVal[0].id?(newVal[0].id.fileSize / 1024 / 1024).toFixed(2):listQuery.value.wjdx,
|
||||||
listQuery.value.wjmc= newVal[0].id?newVal[0].name:listQuery.value.wjmc,
|
// listQuery.value.wjmc= newVal[0].id?newVal[0].name:listQuery.value.wjmc,
|
||||||
listQuery.value. wjlx= newVal[0].id?newVal[0].id.fileSuffix:listQuery.value.wjlx
|
// listQuery.value. wjlx= newVal[0].id?newVal[0].id.fileSuffix:listQuery.value.wjlx
|
||||||
} else {
|
// } else {
|
||||||
listQuery.value = {}
|
// listQuery.value = {}
|
||||||
}
|
// }
|
||||||
}, { deep: true })
|
// }, { deep: true })
|
||||||
watch(() => listQuery.value.wjlb, (newVal, oldVal) => {
|
watch(() => listQuery.value.wjlb, (newVal, oldVal) => {
|
||||||
listQuery.value.wjlb = newVal
|
listQuery.value.wjlb = newVal
|
||||||
if (newVal == '02') {
|
if (newVal == '02') {
|
||||||
@ -75,7 +78,7 @@ watch(() => listQuery.value.wjlb, (newVal, oldVal) => {
|
|||||||
{ label: "文件", prop: "wjdz", type: "slot", width: "100%" },
|
{ label: "文件", prop: "wjdz", type: "slot", width: "100%" },
|
||||||
{ label: "文件大小", prop: "wjdx", type: "input", width: "30%", placeholder: "单位:MB",disabled: true },
|
{ label: "文件大小", prop: "wjdx", type: "input", width: "30%", placeholder: "单位:MB",disabled: true },
|
||||||
{ label: "文件名称", prop: "wjmc", type: "input", width: "30%" },
|
{ label: "文件名称", prop: "wjmc", type: "input", width: "30%" },
|
||||||
{ label: "文件文件类型", prop: "wjlx", type: "input", width: "30%" ,disabled: true},
|
// { label: "文件文件类型", prop: "wjlx", type: "input", width: "30%" },
|
||||||
{ label: "接收人", prop: "jsrxm", type: "slot", width: "100%" },
|
{ label: "接收人", prop: "jsrxm", type: "slot", width: "100%" },
|
||||||
{ label: "接收部门", prop: "jsbmdm", type: "department", depMc: "jsbmmc", multiple: true },
|
{ label: "接收部门", prop: "jsbmdm", type: "department", depMc: "jsbmmc", multiple: true },
|
||||||
{ label: "文件描述", prop: "wjms", type: "textarea", width: "100%" },]
|
{ label: "文件描述", prop: "wjms", type: "textarea", width: "100%" },]
|
||||||
@ -93,7 +96,7 @@ watch(() => listQuery.value.wjlb, (newVal, oldVal) => {
|
|||||||
{ label: "文件", prop: "wjdz", type: "slot", width: "100%" },
|
{ label: "文件", prop: "wjdz", type: "slot", width: "100%" },
|
||||||
{ label: "文件大小", prop: "wjdx", type: "input", width: "30%", placeholder: "单位:MB" },
|
{ label: "文件大小", prop: "wjdx", type: "input", width: "30%", placeholder: "单位:MB" },
|
||||||
{ label: "文件名称", prop: "wjmc", type: "input", width: "30%" },
|
{ label: "文件名称", prop: "wjmc", type: "input", width: "30%" },
|
||||||
{ label: "文件文件类型", prop: "wjlx", type: "input", width: "30%" },
|
// { label: "文件文件类型", prop: "wjlx", type: "input", width: "30%" },
|
||||||
{ label: "文件描述", prop: "wjms", type: "textarea", width: "100%" },]
|
{ label: "文件描述", prop: "wjms", type: "textarea", width: "100%" },]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -103,6 +106,9 @@ const loading = ref(false);
|
|||||||
const elform = ref();
|
const elform = ref();
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
|
wjmc: [
|
||||||
|
{ required: true, message: "请输入文件名称", trigger: "blur" },
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
@ -116,9 +122,8 @@ const init = (type, row,wjlb) => {
|
|||||||
// 根据id查询详情
|
// 根据id查询详情
|
||||||
const getDataById = (id) => {
|
const getDataById = (id) => {
|
||||||
getWjZzzAddEntityById(id).then((res) => {
|
getWjZzzAddEntityById(id).then((res) => {
|
||||||
|
|
||||||
listQuery.value = res;
|
listQuery.value = res;
|
||||||
imgMsg.value = res.wjdz.split(',')
|
imgMsg.value =JSON.parse(res.wjdz)
|
||||||
listQuery.value.jsbmdm = res.jsdxList.filter(item => item.jsbmdm).map(item => item.jsbmdm)
|
listQuery.value.jsbmdm = res.jsdxList.filter(item => item.jsbmdm).map(item => item.jsbmdm)
|
||||||
listQuery.value.jsbmmc=res.jsdxList.filter(item => item.jsbmdm).map(item => item.jsbmmc)
|
listQuery.value.jsbmmc=res.jsdxList.filter(item => item.jsbmdm).map(item => item.jsbmmc)
|
||||||
userList.value = res.jsdxList.filter(item => {
|
userList.value = res.jsdxList.filter(item => {
|
||||||
@ -133,7 +138,17 @@ const getDataById = (id) => {
|
|||||||
listQuery.value.jsrxm=userList.value.map(item => item.userName).join(',')
|
listQuery.value.jsrxm=userList.value.map(item => item.userName).join(',')
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
const wjList=ref({})
|
||||||
|
const changeData = (val) => {
|
||||||
|
console.log(val);
|
||||||
|
let wjsize=0
|
||||||
|
for (let i = 0; i < val.length; i++) {
|
||||||
|
console.log(val[i].wjdx);
|
||||||
|
wjsize+= val[i].wjdx
|
||||||
|
}
|
||||||
|
listQuery.value.wjdx = wjsize
|
||||||
|
wjList.value.wjdz =val
|
||||||
|
};
|
||||||
// 提交
|
// 提交
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
elform.value.submit(async (data) => {
|
elform.value.submit(async (data) => {
|
||||||
@ -150,7 +165,7 @@ const submit = () => {
|
|||||||
jsbmmc: listQuery.value.jsbmmc[index],
|
jsbmmc: listQuery.value.jsbmmc[index],
|
||||||
})):[]
|
})):[]
|
||||||
const list = [...ryList, ...bmList]
|
const list = [...ryList, ...bmList]
|
||||||
let params = { ...listQuery.value, jsdxList: list };
|
let params = { ...listQuery.value, jsdxList: list,...wjList.value,wjdz:JSON.stringify(wjList.value.wjdz) };
|
||||||
try {
|
try {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
let res
|
let res
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="文件中转">
|
<!-- 搜索 -->
|
||||||
<el-button type="primary" @click="getDataById('add', '')">
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" type="primary" @click="getDataById('add', '')">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -28,11 +28,12 @@
|
|||||||
</template>
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link size="small" type="primary" @click="getDataById('edit',row)">修改</el-link>
|
<el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link>
|
||||||
<el-link size="small" type="primary" @click="getDataById('detail',row)">详情</el-link>
|
<el-link size="small" type="primary" @click="getDataById('detail', row)">详情</el-link>
|
||||||
<el-link size="small" type="primary" @click="previewFile(row)" v-if="row.wjlx == '.png'||row.wjlx == '.jpg'||row.wjlx == '.jpeg'">预览</el-link>
|
<el-link size="small" type="primary" @click="previewFile(row)"
|
||||||
<el-link size="small" type="primary" @click="downloadFile(row)">下载</el-link>
|
v-if="row.wjlx == '.png' || row.wjlx == '.jpg' || row.wjlx == '.jpeg'">预览</el-link>
|
||||||
<el-link size="small" type="danger" @click="deleteFile(row)">删除</el-link>
|
<el-link size="small" type="primary" @click="downloadFile(row)">下载</el-link>
|
||||||
|
<el-link size="small" type="danger" @click="deleteFile(row)">删除</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||||
@ -41,7 +42,7 @@
|
|||||||
}"></Pages>
|
}"></Pages>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<AddForm ref="addForm" @getList="getList"/>
|
<AddForm ref="addForm" @getList="getList" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -53,7 +54,7 @@ import { useRoute } from 'vue-router'
|
|||||||
import { qbcjZxsSelectPage } from "@/api/qbcj.js";
|
import { qbcjZxsSelectPage } from "@/api/qbcj.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
||||||
import { getItem } from '@//utils/storage.js'
|
import { getItem } from '@//utils/storage.js'
|
||||||
import { deleteWjZzzAddEntity, getWjZzzAddEntity } from '@//api/qbcj.js'
|
import { deleteWjZzzAddEntity, getWjZzzAddEntity } from '@//api/qbcj.js'
|
||||||
import AddForm from "./components/addForm.vue";
|
import AddForm from "./components/addForm.vue";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
// const { D_BZ_CJLX, D_GS_XS_LX } = proxy.$dict("D_BZ_CJLX", "D_GS_XS_LX"); //获取字典数据
|
// const { D_BZ_CJLX, D_GS_XS_LX } = proxy.$dict("D_BZ_CJLX", "D_GS_XS_LX"); //获取字典数据
|
||||||
@ -88,7 +89,7 @@ const qxkz = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
|
{ label: "文件名称", prop: 'wjmc', placeholder: "请输入文件名称", showType: "input" },
|
||||||
// { label: "情报来源", prop: 'cjLx', placeholder: "请选择情报来源", showType: "select", options: D_BZ_CJLX },
|
// { label: "情报来源", prop: 'cjLx', placeholder: "请选择情报来源", showType: "select", options: D_BZ_CJLX },
|
||||||
// { label: "来源单位", prop: 'ssbmdm', placeholder: "请选择来源单位", showType: "department" }
|
// { label: "来源单位", prop: 'ssbmdm', placeholder: "请选择来源单位", showType: "department" }
|
||||||
]);
|
]);
|
||||||
@ -145,7 +146,7 @@ const changeSize = (val) => {
|
|||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value,wjlb:'01' };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value, wjlb: '01' };
|
||||||
getWjZzzAddEntity(data).then(res => {
|
getWjZzzAddEntity(data).then(res => {
|
||||||
pageData.tableData = res.records || [];
|
pageData.tableData = res.records || [];
|
||||||
pageData.total = res.total;
|
pageData.total = res.total;
|
||||||
@ -156,7 +157,7 @@ const getList = () => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
@ -168,47 +169,78 @@ const getRouter = () => {
|
|||||||
}
|
}
|
||||||
const addForm = ref(null)
|
const addForm = ref(null)
|
||||||
const getDataById = (type, row) => {
|
const getDataById = (type, row) => {
|
||||||
addForm.value.init(type, row,'01');
|
addForm.value.init(type, row, '01');
|
||||||
}
|
}
|
||||||
const previewFile = (item) => {
|
const previewFile = (item) => {
|
||||||
window.open(item.wjdz);
|
window.open(item.wjdz);
|
||||||
}
|
}
|
||||||
const downloadFile = async (item) => {
|
const downloadFile = async (item) => {
|
||||||
|
console.log(item);
|
||||||
try {
|
try {
|
||||||
// 显示加载提示
|
const dataList =JSON.parse(item.wjdz)
|
||||||
// proxy.$message({
|
if (dataList.length === 0) {
|
||||||
// message: '开始下载文件...',
|
proxy.$message.warning('没有文件可下载');
|
||||||
// type: 'info',
|
return;
|
||||||
// duration: 0,
|
|
||||||
// showClose: true
|
|
||||||
// });
|
|
||||||
proxy.$message.info('开始下载文件...');
|
|
||||||
// 使用fetch获取文件内容
|
|
||||||
const response = await fetch(item.wjdz);
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error('文件下载失败');
|
|
||||||
}
|
}
|
||||||
|
console.log(dataList);
|
||||||
|
|
||||||
// 将响应转换为Blob对象
|
const downloadCount = dataList.length;
|
||||||
const blob = await response.blob();
|
let successCount = 0;
|
||||||
|
let failCount = 0;
|
||||||
|
|
||||||
// 创建下载链接
|
proxy.$message.info(`开始下载${downloadCount}个文件...`);
|
||||||
const downloadLink = document.createElement('a');
|
|
||||||
downloadLink.href = URL.createObjectURL(blob);
|
|
||||||
|
|
||||||
// 设置下载文件的名称
|
// 并行下载所有文件
|
||||||
downloadLink.download = item.wjmc;
|
const downloadPromises = dataList.map(async (fileData, index) => {
|
||||||
|
|
||||||
// 触发下载
|
try {
|
||||||
document.body.appendChild(downloadLink);
|
// 使用fetch获取文件内容
|
||||||
downloadLink.click();
|
const response = await fetch(fileData.url);
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error('文件下载失败');
|
||||||
|
}
|
||||||
|
|
||||||
// 清理
|
// 将响应转换为Blob对象
|
||||||
document.body.removeChild(downloadLink);
|
const blob = await response.blob();
|
||||||
URL.revokeObjectURL(downloadLink.href);
|
|
||||||
|
|
||||||
// 显示下载成功提示
|
// 创建下载链接
|
||||||
proxy.$message.success('文件下载成功');
|
const downloadLink = document.createElement('a');
|
||||||
|
downloadLink.href = URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
// 设置下载文件的名称,避免冲突
|
||||||
|
const fileName = dataList.length > 1
|
||||||
|
? `${item.wjmc}_${index + 1}`
|
||||||
|
: item.wjmc;
|
||||||
|
downloadLink.download = fileName;
|
||||||
|
|
||||||
|
// 触发下载
|
||||||
|
document.body.appendChild(downloadLink);
|
||||||
|
downloadLink.click();
|
||||||
|
|
||||||
|
// 清理
|
||||||
|
setTimeout(() => {
|
||||||
|
document.body.removeChild(downloadLink);
|
||||||
|
URL.revokeObjectURL(downloadLink.href);
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
successCount++;
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`文件${index + 1}下载失败:`, error);
|
||||||
|
failCount++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 等待所有下载完成
|
||||||
|
await Promise.all(downloadPromises);
|
||||||
|
|
||||||
|
// 显示下载结果
|
||||||
|
if (failCount === 0) {
|
||||||
|
proxy.$message.success(`成功下载${successCount}个文件`);
|
||||||
|
} else if (successCount === 0) {
|
||||||
|
proxy.$message.error(`所有${failCount}个文件下载失败`);
|
||||||
|
} else {
|
||||||
|
proxy.$message.warning(`成功下载${successCount}个文件,失败${failCount}个文件`);
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('文件下载失败:', error);
|
console.error('文件下载失败:', error);
|
||||||
proxy.$message.error('文件下载失败,请稍后重试');
|
proxy.$message.error('文件下载失败,请稍后重试');
|
||||||
@ -220,7 +252,7 @@ const deleteFile = (row) => {
|
|||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
deleteWjZzzAddEntity({ids:[row.id]}).then(res => {
|
deleteWjZzzAddEntity({ ids: [row.id] }).then(res => {
|
||||||
proxy.$message.success('删除成功');
|
proxy.$message.success('删除成功');
|
||||||
getList();
|
getList();
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
|||||||
@ -22,6 +22,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<template #shzt>
|
||||||
|
<div v-if="disabled">
|
||||||
|
<h3 class="tags-title">审核状态</h3>
|
||||||
|
<div style="display: flex;justify-content:space-between;width: 200%;">
|
||||||
|
<div style="display: flex;">
|
||||||
|
市审核状态:<DictTag v-model:value="listQuery.sldshzt" :options="dict.D_BZ_SSSHZT" :tag="false" />
|
||||||
|
</div>
|
||||||
|
<div style="display: flex;">
|
||||||
|
县审核状态:<DictTag v-model:value="listQuery.xldshzt" :options="dict.D_BZ_SSSHZT" :tag="false" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</FormMessage>
|
</FormMessage>
|
||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
<div class="tags-section" v-if="disabled">
|
<div class="tags-section" v-if="disabled">
|
||||||
@ -170,9 +183,8 @@ watch(() => dialogForm.value, (val) => {
|
|||||||
{ label: "情报标题", prop: "qbmc", type: "input", width: '45%' },
|
{ label: "情报标题", prop: "qbmc", type: "input", width: '45%' },
|
||||||
{ label: "情报内容", prop: "qbnr", type: "textarea", width: '100%', rows: 100 },
|
{ label: "情报内容", prop: "qbnr", type: "textarea", width: '100%', rows: 100 },
|
||||||
{ label: "附件上传", prop: "fjdz", type: "upload", width: '100%', isImg: false },
|
{ label: "附件上传", prop: "fjdz", type: "upload", width: '100%', isImg: false },
|
||||||
{ label: "", prop: "jbxx", type: "slot", width: '100%', isImg: false },
|
{ label: "", prop: "jbxx", type: "slot", width: '100%',},
|
||||||
|
{ label: "", prop: "shzt", type: "slot", width: '100%' },
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -294,7 +306,6 @@ const lcList = ref([])
|
|||||||
const getqbcjPldb = (id) => {
|
const getqbcjPldb = (id) => {
|
||||||
xxcjSelectCzlcList({ qbid: id }).then(res => {
|
xxcjSelectCzlcList({ qbid: id }).then(res => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
|
|
||||||
lcList.value = res || []
|
lcList.value = res || []
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|||||||
@ -1,42 +1,42 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox" class="mt10">
|
<div ref="searchBox" class="mt10">
|
||||||
<Searchs :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
<Searchs :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
</div>
|
</div>
|
||||||
<div class="titleBox">
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
<PageTitle>
|
<template #left>
|
||||||
<el-button type="primary" @click="addEdit('add')">
|
<el-button type="primary" @click="addEdit('add')" size="small">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon class="vertical-middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span class="vertical-middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" @click="dologCancel()">
|
<el-button type="primary" @click="dologCancel()" size="small">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon class="vertical-middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">导出</span>
|
<span class="vertical-middle">导出</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" :disabled="ids.length === 0" @click="handleSumbit(ids)" v-if="qxkz.deptLevel != '01'">
|
<el-button type="primary" :disabled="ids.length === 0" @click="handleSumbit(ids)" v-if="qxkz.deptLevel != '01'"
|
||||||
<el-icon style="vertical-align: middle">
|
size="small">
|
||||||
|
<el-icon class="vertical-middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">上报</span>
|
<span class="vertical-middle">上报</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" :disabled="ids.length === 0" @click="delDictItem(ids)">
|
<el-button type="primary" :disabled="ids.length === 0" @click="delDictItem(ids)" size="small">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon class="vertical-middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">删除</span>
|
<span class="vertical-middle">删除</span>
|
||||||
</el-button>
|
</el-button></template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseData" @handleRowClick="openXxqk">
|
@chooseData="chooseData" @handleCellClick="openXxqk">
|
||||||
<template #qblx="{ row }">
|
<template #qblx="{ row }">
|
||||||
<DictTag :tag="false" :value="row.qblx" :options="D_GS_XS_LX" />
|
<DictTag :tag="false" :value="row.qblx" :options="D_GS_XS_LX" />
|
||||||
</template>
|
</template>
|
||||||
@ -52,31 +52,34 @@
|
|||||||
|
|
||||||
<template #cyqk="{ row }">
|
<template #cyqk="{ row }">
|
||||||
<el-link v-if="isShowBtn('采纳')" size="small" type="danger" @click="cnMsg(row)"
|
<el-link v-if="isShowBtn('采纳')" size="small" type="danger" @click="cnMsg(row)"
|
||||||
:disabled="butcontroll('02', row.lczt)">采纳</el-link>
|
:disabled="butcontroll('04', row.lczt)">采纳</el-link>
|
||||||
<!-- 只有上报状态才能回退 -->
|
<!-- 只有上报状态才能回退 -->
|
||||||
<el-link v-if="isShowBtn('回退')" size="small" type="danger" @click="rollbackNewspapers(row)"
|
<el-link v-if="isShowBtn('回退')" size="small" type="danger" @click="rollbackNewspapers(row)"
|
||||||
:disabled="butcontroll('03', row.lczt)">回退</el-link>
|
:disabled="butcontroll('04', row.lczt)">回退</el-link>
|
||||||
</template>
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<!-- "市情指挥人员": ["采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门", "送审"], -->
|
||||||
|
<!-- "县情指人员": ["上报", "回退", "修改", "详情", "送审"], -->
|
||||||
|
<template #controls="{ row }">
|
||||||
|
<el-link v-if="isShowBtn('送审', row) && qxkz.deptLevel == '01'" :disabled="row.sldshzt != '00'||row.lczt != '04'" size="small"
|
||||||
|
type="primary" @click="postXxcjXxcjTjsh(row)">送审</el-link>
|
||||||
|
<el-link v-if="isShowBtn('送审', row) && qxkz.deptLevel == '02'" :disabled="row.xldshzt != '00'||row.lczt != '04'" size="small"
|
||||||
|
type="primary" @click="postXxcjXxcjTjsh(row)">送审</el-link>
|
||||||
<!-- (01 提交 02 上报县局 03 上班市局 04 采纳 05 退回 06 打标签 07 转合成 08 转线索 09 转会商)v-if="qxkz.deptLevel == '01'" -->
|
<!-- (01 提交 02 上报县局 03 上班市局 04 采纳 05 退回 06 打标签 07 转合成 08 转线索 09 转会商)v-if="qxkz.deptLevel == '01'" -->
|
||||||
<!-- 在提交和退回得状态才能进行上报 -->
|
<!-- 在提交和退回得状态才能进行上报 -->
|
||||||
<el-link v-if="isShowBtn('上报')" size="small" type="primary" @click="appearNewspapers(row)">上报</el-link>
|
<el-link v-if="isShowBtn('上报')" size="small" type="primary" @click="appearNewspapers(row)" :disabled="row.xldshzt != '02'">上报</el-link>
|
||||||
<!-- 只有上报状态才能进行采纳 -->
|
|
||||||
|
|
||||||
<!-- 只有采纳状态才能分组 -->
|
|
||||||
<el-link v-if="isShowBtn('分组')" size="small" type="primary" @click="opneMsg(row)"
|
<el-link v-if="isShowBtn('分组')" size="small" type="primary" @click="opneMsg(row)"
|
||||||
:disabled="butcontroll('01', row.lczt)">分组</el-link>
|
:disabled="row.sldshzt != '02'">分组</el-link>
|
||||||
<!-- 只有领导有肯定 -->
|
<!-- 只有领导有肯定 -->
|
||||||
<el-link v-if="isShowBtn('肯定')" size="small" type="primary" @click="affirm(row)">肯定</el-link>
|
<!-- <el-link v-if="isShowBtn('肯定')" size="small" type="primary" @click="affirm(row)">肯定</el-link> -->
|
||||||
<el-link v-if="isShowBtn('删除')" size="small" type="primary" @click="delDictItem(row.id)">删除</el-link>
|
<el-link v-if="isShowBtn('删除')" size="small" type="primary" @clic.stopk="delDictItem(row.id)">删除</el-link>
|
||||||
<el-link v-if="isShowBtn('修改', row)" size="small" type="primary" @click="addEdit('edit', row)">修改</el-link>
|
<el-link v-if="isShowBtn('修改', row)" size="small" type="primary" @click="addEdit('edit', row)">修改</el-link>
|
||||||
<el-link v-if="isShowBtn('续报', row)" size="small" type="primary"
|
<el-link v-if="isShowBtn('续报', row)" size="small" type="primary" @click="addEdit('followUpReport', row)">续报</el-link>
|
||||||
@click="addEdit('followUpReport', row)">续报</el-link>
|
|
||||||
<el-link v-if="isShowBtn('详情')" size="small" type="primary" @click="addEdit('info', row)">详情</el-link>
|
<el-link v-if="isShowBtn('详情')" size="small" type="primary" @click="addEdit('info', row)">详情</el-link>
|
||||||
<!-- 所有状态都能进行转线索 -->
|
<!-- 所有状态都能进行转线索 -->
|
||||||
<el-link v-if="isShowBtn('转线索')" size="small" type="primary" @click="FollowUpOnLeads(row)"
|
<el-link v-if="isShowBtn('转线索')" size="small" type="primary" @click="FollowUpOnLeads(row)"
|
||||||
:disabled="butcontroll('01', row.lczt)">转线索</el-link>
|
:disabled="row.sldshzt != '02' ">转线索</el-link>
|
||||||
<!-- 所有状态都能进行转合成 -->
|
<!-- 所有状态都能进行转合成 -->
|
||||||
<!-- <el-link v-if="isShowBtn('转合成')" size="small" type="primary" @click="openFkDialogszl(row)"
|
<!-- <el-link v-if="isShowBtn('转合成')" size="small" type="primary" @click="openFkDialogszl(row)"
|
||||||
:disabled="butcontroll('01', row.lczt)">转合成</el-link> -->
|
:disabled="butcontroll('01', row.lczt)">转合成</el-link> -->
|
||||||
@ -84,10 +87,10 @@
|
|||||||
<!-- <el-link v-if="isShowBtn('转会商')" size="small" type="primary" @click="handleTransferMerchant(row)"
|
<!-- <el-link v-if="isShowBtn('转会商')" size="small" type="primary" @click="handleTransferMerchant(row)"
|
||||||
:disabled="butcontroll('01', row.lczt)">转会商</el-link> -->
|
:disabled="butcontroll('01', row.lczt)">转会商</el-link> -->
|
||||||
|
|
||||||
<el-link v-if="isShowBtn('关注部门')" size="small" type="primary" @click="FollowUpOnDept(row)">关注</el-link>
|
<el-link v-if="isShowBtn('关注部门')" :disabled="row.sldshzt != '02'" size="small" type="primary" @click="FollowUpOnDept(row)">关注</el-link>
|
||||||
<!-- 市局能给所有数据创建标签 -->
|
<!-- 市局能给所有数据创建标签 -->
|
||||||
<el-link v-if="isShowBtn('打标签')" size="small" type="primary" @click="openCustomTag(row)"
|
<el-link v-if="isShowBtn('打标签')" size="small" type="primary" @click="openCustomTag(row)"
|
||||||
:disabled="butcontroll('01', row.lczt)">打标签</el-link>
|
:disabled="row.sldshzt != '02' ">打标签</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||||
@ -96,7 +99,7 @@
|
|||||||
}"></Pages>
|
}"></Pages>
|
||||||
</div>
|
</div>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<AddForm ref="detailDiloag" @getList="getList" :titleData="titleData" :dict="{ D_BZ_LCZT }" />
|
<AddForm ref="detailDiloag" @getList="getList" :titleData="titleData" :dict="{ D_BZ_LCZT, D_BZ_SSSHZT }" />
|
||||||
</div>
|
</div>
|
||||||
<ExportFile v-model="exportFileModel" :tableColumn="tableColumn" :dict="{ D_GS_XS_LY, D_GS_XS_LX, D_GS_XS_LX }"
|
<ExportFile v-model="exportFileModel" :tableColumn="tableColumn" :dict="{ D_GS_XS_LY, D_GS_XS_LX, D_GS_XS_LX }"
|
||||||
:dataModel="pageData.tableData" />
|
:dataModel="pageData.tableData" />
|
||||||
@ -120,7 +123,7 @@ import Searchs from "@/components/aboutTable/Search.vue";
|
|||||||
import AddForm from "./components/addForm.vue";
|
import AddForm from "./components/addForm.vue";
|
||||||
import { useRouter, useRoute } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
import { qbcjSelectQbsbPage, qbcjDeletes, qbcjCzzt, qbcjPlsb } from "@/api/Intelligence.js";
|
import { qbcjSelectQbsbPage, qbcjDeletes, qbcjCzzt, qbcjPlsb } from "@/api/Intelligence.js";
|
||||||
import { xxcjSelectXxsbPage, xxcjDeletes, xxcjXxzsx, xxcjUpdateCzlc, xxcjXxqd } from '@/api/xxcj.js'
|
import { xxcjSelectXxsbPage, xxcjDeletes, xxcjXxzsx, xxcjUpdateCzlc, xxcjXxqd, xxcjXxcjTjsh } from '@/api/xxcj.js'
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
import MakeTag from '../components/maketag.vue'
|
import MakeTag from '../components/maketag.vue'
|
||||||
import ExportFile from './components/exportFile.vue'
|
import ExportFile from './components/exportFile.vue'
|
||||||
@ -133,11 +136,11 @@ import transferMerchant from "./components/transferMerchant.vue";
|
|||||||
import { isShiQingZhi } from "@/utils/auth.js"
|
import { isShiQingZhi } from "@/utils/auth.js"
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_GS_XS_LY, D_BZ_SSZT, D_BZ_SF, D_GS_XS_LX, D_BZ_BQJB,
|
const { D_GS_XS_LY, D_BZ_SSSHZT, D_BZ_SSZT, D_BZ_SF, D_GS_XS_LX, D_BZ_BQJB,
|
||||||
D_GS_XS_QTLX, D_GS_ZDQT_LB,
|
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 } =
|
D_XXCJ_BQLX } =
|
||||||
proxy.$dict("D_BZ_BMJB", "D_GS_XS_LY",
|
proxy.$dict("D_BZ_BMJB", "D_GS_XS_LY", 'D_BZ_SSSHZT',
|
||||||
"D_BZ_SSZT", "D_BZ_SF", "D_GS_XS_LX", "D_GS_XS_QTLX",
|
"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_XXCJ_BQLX"); //获取字典数据
|
"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 detailDiloag = ref();
|
||||||
@ -158,9 +161,9 @@ const isShowTransferMerchantTc = ref(false)
|
|||||||
|
|
||||||
const isShow = ref(false)
|
const isShow = ref(false)
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "录入人", prop: 'keyword', placeholder: "请输入录入人", showType: "input" },
|
{ label: "录入人", prop: 'xssbr', placeholder: "请输入录入人", showType: "input" },
|
||||||
{ label: "录入单位", prop: "ssbmdm", placeholder: "请选择录入单位", showType: "department" },
|
{ label: "录入单位", prop: "ssbmdm", placeholder: "请选择录入单位", showType: "department" },
|
||||||
{ label: "编号", prop: 'keyword', placeholder: "请输入编号", showType: "input" },
|
{ label: "编号", prop: 'xsBh', placeholder: "请输入编号", showType: "input" },
|
||||||
{ label: "时间", prop: "startTime", placeholder: "请选择时间", showType: "daterange" },
|
{ label: "时间", prop: "startTime", placeholder: "请选择时间", showType: "daterange" },
|
||||||
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
|
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
|
||||||
{ label: "标签级别", prop: 'qbjb', placeholder: "请选择标签级别", showType: "select", options: D_BZ_BQJB },
|
{ label: "标签级别", prop: 'qbjb', placeholder: "请选择标签级别", showType: "select", options: D_BZ_BQJB },
|
||||||
@ -351,6 +354,7 @@ const handleSumbit = () => {
|
|||||||
// <!-- [04、06、07、08、09] -->打标签
|
// <!-- [04、06、07、08、09] -->打标签
|
||||||
// <!-- [03、05] -->采纳
|
// <!-- [03、05] -->采纳
|
||||||
// <!-- [04] -->回退
|
// <!-- [04] -->回退
|
||||||
|
// <!-- (01 提交 02 上报县局 03 上班市局 04 采纳 05 退回 06 打标签 07 转合成 08 转线索 09 转会商)v-if="qxkz.deptLevel == '01'" -->
|
||||||
const butcontroll = (val, zt) => {
|
const butcontroll = (val, zt) => {
|
||||||
switch (val) {
|
switch (val) {
|
||||||
case '01':
|
case '01':
|
||||||
@ -359,6 +363,8 @@ const butcontroll = (val, zt) => {
|
|||||||
return !(['03', '05'].includes(zt))
|
return !(['03', '05'].includes(zt))
|
||||||
case '03':
|
case '03':
|
||||||
return !(['02', '03', '04'].includes(zt))
|
return !(['02', '03', '04'].includes(zt))
|
||||||
|
case '04':
|
||||||
|
return ([ '04', '05' ,'06', '07', '08', '09'].includes(zt))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,18 +427,18 @@ const tableColumn = reactive([
|
|||||||
])
|
])
|
||||||
// 详情
|
// 详情
|
||||||
const addEdit = (type, row) => {
|
const addEdit = (type, row) => {
|
||||||
|
|
||||||
|
|
||||||
isShow.value = true;
|
isShow.value = true;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
detailDiloag.value.init(type, row);
|
detailDiloag.value.init(type, row);
|
||||||
}, 500)
|
}, 500)
|
||||||
};
|
};
|
||||||
const openXxqk = (row) => {
|
const openXxqk = (row) => {
|
||||||
isShow.value = true;
|
if (row.column.property == 'qbmc' || row.column.property == 'xsBh') {
|
||||||
setTimeout(() => {
|
isShow.value = true;
|
||||||
detailDiloag.value.init('info', row);
|
setTimeout(() => {
|
||||||
}, 500)
|
detailDiloag.value.init('info', row.row);
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const titleData = ref()
|
const titleData = ref()
|
||||||
@ -442,6 +448,8 @@ const qxkz = reactive({
|
|||||||
roleCode: false,
|
roleCode: false,
|
||||||
depBool: false
|
depBool: false
|
||||||
});
|
});
|
||||||
|
const qxzt = ref(false)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const { deptBizType, deptLevel } = getItem('deptId')[0]
|
const { deptBizType, deptLevel } = getItem('deptId')[0]
|
||||||
const Jb = deptLevel[0] == '2' ? '01' : deptLevel[0] == '3' ? '02' : '03'
|
const Jb = deptLevel[0] == '2' ? '01' : deptLevel[0] == '3' ? '02' : '03'
|
||||||
@ -518,6 +526,13 @@ const openFkDialogszl = (row) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** 获取当前角色 */
|
/** 获取当前角色 */
|
||||||
function getRole() {
|
function getRole() {
|
||||||
const { deptBizType, deptLevel } = getItem('deptId')[0]
|
const { deptBizType, deptLevel } = getItem('deptId')[0]
|
||||||
@ -539,8 +554,8 @@ const isShowBtn = (btnName, row = {}) => {
|
|||||||
/** 按钮权限 */
|
/** 按钮权限 */
|
||||||
const buttonPermissions = {
|
const buttonPermissions = {
|
||||||
"市情指领导": ["肯定", "采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门"],
|
"市情指领导": ["肯定", "采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门"],
|
||||||
"市情指挥人员": ["采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门"],
|
"市情指挥人员": ["采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门", "送审"],
|
||||||
"县情指人员": ["上报", "回退", "修改", "详情"],
|
"县情指人员": ["上报", "回退", "修改", "详情", "送审"],
|
||||||
"部门": ["上报", "新增", "修改", "续报", "详情"]
|
"部门": ["上报", "新增", "修改", "续报", "详情"]
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -561,7 +576,29 @@ const handleTransferMerchant = (row) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 送审
|
||||||
|
const postXxcjXxcjTjsh = (row) => {
|
||||||
|
proxy.$confirm("确定要送审吗", "提示", { type: "warning" }).then(() => {
|
||||||
|
xxcjXxcjTjsh({ xxid: row.id }).then(res => {
|
||||||
|
proxy.$message({ type: "success", message: "送审成功" });
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
}).catch(() => { })
|
||||||
|
}
|
||||||
|
const getDisabled = (val, zt) => {
|
||||||
|
console.log(val, zt);
|
||||||
|
|
||||||
|
// switch (val) {
|
||||||
|
// case '01':
|
||||||
|
// return !(['04', '06', '07', '08', '09'].includes(zt))
|
||||||
|
// case '02':
|
||||||
|
// return !(['03', '05'].includes(zt))
|
||||||
|
// case '03':
|
||||||
|
// return !(['02', '03', '04'].includes(zt))
|
||||||
|
// case '04':
|
||||||
|
// return ([ '04', '05' ,'06', '07', '08', '09'].includes(zt))
|
||||||
|
// }
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -597,4 +634,8 @@ const handleTransferMerchant = (row) => {
|
|||||||
height: calc(100% - 50px);
|
height: calc(100% - 50px);
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.vertical-middle {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,25 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="临安码线索">
|
<!-- 搜索 -->
|
||||||
<el-button type="primary" @click="addEdit('add', null)">
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="addEdit('add', null)">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="danger" @click="plDelDictItem">
|
<el-button type="danger" size="small" @click="plDelDictItem">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<Dete />
|
<Dete />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">批量删除</span>
|
<span style="vertical-align: middle">批量删除</span>
|
||||||
</el-button>
|
</el-button></template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
|
|||||||
@ -5,14 +5,16 @@
|
|||||||
<div ref="searchBox" class="mt10">
|
<div ref="searchBox" class="mt10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
</div>
|
</div>
|
||||||
<div class="titleBox">
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
<PageTitle :title="routerMate.title">
|
<template #left>
|
||||||
<el-button type="primary" @click="dologCancel()">
|
<el-button type="primary" @click="dologCancel()" size="small">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">导出</span>
|
<span style="vertical-align: middle">导出</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- <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">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
@ -20,7 +22,6 @@
|
|||||||
<span style="vertical-align: middle">批量打标</span>
|
<span style="vertical-align: middle">批量打标</span>
|
||||||
</el-button> -->
|
</el-button> -->
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
|
|||||||
@ -1,14 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox" class="mt10">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
</div>
|
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="蜂群信息上报"/>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
|
|
||||||
@ -147,7 +144,7 @@ addForm.value.init(type, row,);
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function() {
|
window.onresize = function() {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,22 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- 搜索 -->
|
||||||
<PageTitle title="布控区域" >
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<el-button type="primary" @click="handleRow('add', '')">
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" @click="handleRow('add', '')" size="small">
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="danger" @click="handleRow('moreDelete', '')">批量删除</el-button>
|
<el-button type="danger" size="small" @click="handleRow('moreDelete', '')">批量删除</el-button>
|
||||||
</PageTitle>
|
</template>
|
||||||
</div>
|
</PageTitle>
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|
||||||
</div>
|
|
||||||
<!-- 按钮组 -->
|
<!-- 按钮组 -->
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageData.tableData"
|
:tableData="pageData.tableData"
|
||||||
:tableColumn="pageData.tableColumn"
|
:tableColumn="pageData.tableColumn"
|
||||||
|
|||||||
@ -1,17 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="标签布控" >
|
<!-- 搜索 -->
|
||||||
<el-button type="primary" @click="AddFrom('add', '')">
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch"></Search>
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="AddFrom('add', '')">
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch"></Search>
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
|
|||||||
@ -68,7 +68,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%;" class="mt10">
|
<div style="width: 100%;" class="mt10">
|
||||||
<el-form-item prop="bkDj" label="布控部门" v-if="props.name == 'myControl'">
|
<el-form-item prop="bkDj" label="布控等级" v-if="props.name == 'myControl'">
|
||||||
<MOSTY.Select v-model="listQuery.bkDj" :dictEnum="props.dic.D_GS_SSYJ" placeholder="请选择布控级别"
|
<MOSTY.Select v-model="listQuery.bkDj" :dictEnum="props.dic.D_GS_SSYJ" placeholder="请选择布控级别"
|
||||||
clearable />
|
clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -192,6 +192,7 @@ const rules = reactive({
|
|||||||
czJsdwdm: [{ required: true, message: "请选择处置接收单位", trigger: "change" }],
|
czJsdwdm: [{ required: true, message: "请选择处置接收单位", trigger: "change" }],
|
||||||
bkshrSsbmdm: [{ required: true, message: "请选择审核部门", trigger: "change" }],
|
bkshrSsbmdm: [{ required: true, message: "请选择审核部门", trigger: "change" }],
|
||||||
bksprSsbmdm: [{ required: true, message: "请选择审批部门", trigger: "change" }],
|
bksprSsbmdm: [{ required: true, message: "请选择审批部门", trigger: "change" }],
|
||||||
|
czYq: [{ required: true, message: "请选择处置要求", trigger: "change" }],
|
||||||
})
|
})
|
||||||
let tableDate = reactive({
|
let tableDate = reactive({
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
|
|||||||
@ -0,0 +1,263 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog :model-value="modelValue" :destroy-on-close="true" title="回执单" @close="close"
|
||||||
|
:close-on-click-modal="false">
|
||||||
|
<div class="hzd-container">
|
||||||
|
<h2 class="hzd-title">林芝市公安局临时布控工作回执单</h2>
|
||||||
|
<table class="hzd-table">
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">布控对象</td>
|
||||||
|
<td class="hzd-value">{{ listQuery.bkdx }}</td>
|
||||||
|
<td class="hzd-label">申请日期</td>
|
||||||
|
<td class="hzd-value">
|
||||||
|
<el-date-picker v-model="listQuery.sqrq" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="请选择日期" style="width: 100%" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">对象信息</td>
|
||||||
|
<td class="hzd-value" colspan="3">{{ listQuery.bkdxList }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">布控来源</td>
|
||||||
|
<td class="hzd-value">{{ listQuery.ly }}</td>
|
||||||
|
<td class="hzd-label">布控范围</td>
|
||||||
|
<td class="hzd-value">全市;工布江达县</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">布控级别</td>
|
||||||
|
<td class="hzd-value">{{ listQuery.dj }}</td>
|
||||||
|
<td class="hzd-label">处置要求</td>
|
||||||
|
<td class="hzd-value">{{ listQuery.czyq }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">经办人员</td>
|
||||||
|
<td class="hzd-value">{{ listQuery.bkcjrXm }}</td>
|
||||||
|
<td class="hzd-label">联系方式</td>
|
||||||
|
<td class="hzd-value">
|
||||||
|
<el-input v-model="listQuery.lxfs" style="width: 100%" placeholder="请输入经办人联系方式" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">布控理由</td>
|
||||||
|
<td class="hzd-value" colspan="3">
|
||||||
|
<el-input v-model="listQuery.bkSy" style="width: 100%" placeholder="请输入布控理由" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">执法依据</td>
|
||||||
|
<td class="hzd-value" colspan="3">
|
||||||
|
<el-input v-model="listQuery.zfyj" style="width: 100%" placeholder="请输入执法依据" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">布控时间(起)</td>
|
||||||
|
<td class="hzd-value">
|
||||||
|
<el-date-picker v-model="listQuery.bkSjKs" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="请选择日期" style="width: 100%" />
|
||||||
|
</td>
|
||||||
|
<td class="hzd-label">布控时间(止)</td>
|
||||||
|
<td class="hzd-value">
|
||||||
|
<el-date-picker v-model="listQuery.bkSjJs" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="请选择日期" style="width: 100%" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">布控结果</td>
|
||||||
|
<td class="hzd-value" colspan="3">{{ listQuery.bkzt }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="hzd-label">备注:</td>
|
||||||
|
<td class="hzd-value" colspan="3">
|
||||||
|
<el-input v-model="listQuery.bz" type="textarea" style="width: 100%" placeholder="请输入备注" />
|
||||||
|
<div v-show="false" class="input-value">{{ listQuery.bz }}</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<div class="flex just-center">
|
||||||
|
<el-button @click="close">取消</el-button>
|
||||||
|
<el-button type="primary" @click="exportWord">导出Word</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
|
||||||
|
import { reactive, ref, getCurrentInstance, watch } from 'vue';
|
||||||
|
import { timeValidate } from '@/utils/tools'
|
||||||
|
import { saveAs } from 'file-saver'
|
||||||
|
const props = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
bkDx: {
|
||||||
|
type: String,
|
||||||
|
default: '01'
|
||||||
|
},
|
||||||
|
dataList: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}, dict: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emits = defineEmits(["update:modelValue", "choosed", "choosedAdd"]);
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_BZ_XB, D_GS_ZDR_YJDJ } = proxy.$dict("D_BZ_XB", "D_GS_ZDR_YJDJ"); // 获取字典数据
|
||||||
|
const input = ref('')
|
||||||
|
const value1 = ref('')
|
||||||
|
const value2 = ref('')
|
||||||
|
const listQuery = ref({})
|
||||||
|
|
||||||
|
|
||||||
|
watch(() => props.dataList, (newVal) => {
|
||||||
|
if (newVal) {
|
||||||
|
listQuery.value = newVal
|
||||||
|
listQuery.value.bkdxList = newVal.bkdxList.map(item => {
|
||||||
|
return item.rySfzh
|
||||||
|
}).join(',')
|
||||||
|
listQuery.value.sqrq = timeValidate()
|
||||||
|
listQuery.value.bkdx = props.dict.D_GS_BK_NEWDX.find(item => item.dm == listQuery.value.bkDx).zdmc
|
||||||
|
listQuery.value.ly = props.dict.D_BZ_BKLYS.find(item => item.dm == listQuery.value.bkly).zdmc
|
||||||
|
listQuery.value.czyq =listQuery.value.czYq? props.dict.D_GS_BK_CZYQ.find(item => item.dm == listQuery.value.czYq).zdmc:""
|
||||||
|
listQuery.value.bkzt = props.dict.D_GZL_SHZT.find(item => item.dm == listQuery.value.bkZt).zdmc
|
||||||
|
if (props.name == 'myControl') {
|
||||||
|
listQuery.value.dj = props.dict.D_GS_SSYJ.find(item => item.dm == listQuery.value.bkDj).zdmc
|
||||||
|
} else {
|
||||||
|
listQuery.value.dj = props.dict.D_BZ_JQDJ.find(item => item.dm == listQuery.value.bkDj).zdmc
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// options: route.name == 'myControl' ? D_GS_SSYJ : D_BZ_JQDJ
|
||||||
|
|
||||||
|
const submitForm = () => {
|
||||||
|
elform.value.submit((val) => {
|
||||||
|
val.id = new Date().getTime()
|
||||||
|
emits('choosedAdd', val)
|
||||||
|
close()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const close = async () => {
|
||||||
|
|
||||||
|
emits("update:modelValue", false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const exportWord = () => {
|
||||||
|
// 获取表格HTML内容
|
||||||
|
const tableElement = document.querySelector('.hzd-table');
|
||||||
|
if (!tableElement) return;
|
||||||
|
|
||||||
|
// 克隆表格以避免修改原始DOM
|
||||||
|
const clonedTable = tableElement.cloneNode(true);
|
||||||
|
|
||||||
|
// 处理备注输入框的值
|
||||||
|
const noteCell = clonedTable.querySelector('.hzd-value[colspan="3"]:last-child');
|
||||||
|
if (noteCell) {
|
||||||
|
const inputElement = noteCell.querySelector('el-input');
|
||||||
|
const inputValue = noteCell.querySelector('.input-value');
|
||||||
|
if (inputValue) {
|
||||||
|
// 清空单元格内容并添加纯文本值
|
||||||
|
noteCell.innerHTML = inputValue.textContent || '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理其他输入框和日期选择器的值
|
||||||
|
const inputElements = clonedTable.querySelectorAll('input');
|
||||||
|
inputElements.forEach(input => {
|
||||||
|
const parentTd = input.closest('td');
|
||||||
|
if (parentTd) {
|
||||||
|
// 替换为输入框的值
|
||||||
|
parentTd.innerHTML = input.value || '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 构建完整的HTML内容
|
||||||
|
const htmlContent = `
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
body { font-family: SimSun, serif; }
|
||||||
|
h2 { text-align: center; margin-bottom: 20px; }
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
border: 1px solid #000;
|
||||||
|
padding: 8px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.hzd-label {
|
||||||
|
font-weight: bold;
|
||||||
|
width: 150px;
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>林芝市公安局临时布控工作回执单</h2>
|
||||||
|
${clonedTable.outerHTML}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
`;
|
||||||
|
|
||||||
|
// 创建Blob对象并下载
|
||||||
|
const blob = new Blob([htmlContent], { type: 'application/msword' });
|
||||||
|
saveAs(blob, '布控工作回执单.doc');
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.hzd-container {
|
||||||
|
width: 100%;
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hzd-title {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hzd-table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border: 1px solid #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hzd-table td {
|
||||||
|
border: 1px solid #000;
|
||||||
|
padding: 8px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hzd-label {
|
||||||
|
font-weight: bold;
|
||||||
|
width: 150px;
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hzd-value {
|
||||||
|
width: calc((100% - 150px) / 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hzd-table td[colspan="3"] {
|
||||||
|
width: calc(100% - 150px);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,14 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle :title=" route.meta.title ">
|
|
||||||
<el-button type="primary" @click="handleAdd('add', null)">发起布控</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="handleAdd('add', null)">发起布控</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<!-- 按钮组 -->
|
<!-- 按钮组 -->
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
@ -20,8 +20,8 @@
|
|||||||
<DictTag :tag="false" :value="row.bkZt" :options="D_GS_BK_ZT" />
|
<DictTag :tag="false" :value="row.bkZt" :options="D_GS_BK_ZT" />
|
||||||
</template>
|
</template>
|
||||||
<template #bkDj="{ row }">
|
<template #bkDj="{ row }">
|
||||||
<DictTag :tag="false" :value="row.bkDj" :options="D_GS_SSYJ" v-if="route.name=='myControl'" />
|
<DictTag :tag="false" :value="row.bkDj" :options="D_GS_SSYJ" v-if="route.name == 'myControl'" />
|
||||||
<DictTag :tag="false" :value="row.bkDj" :options="D_BZ_JQDJ" v-else/>
|
<DictTag :tag="false" :value="row.bkDj" :options="D_BZ_JQDJ" v-else />
|
||||||
</template>
|
</template>
|
||||||
<template #bkDx="{ row }">
|
<template #bkDx="{ row }">
|
||||||
<DictTag :tag="false" :value="row.bkDx" :options="D_GS_BK_NEWDX" />
|
<DictTag :tag="false" :value="row.bkDx" :options="D_GS_BK_NEWDX" />
|
||||||
@ -49,12 +49,13 @@
|
|||||||
<template v-if="!row.gzlid">
|
<template v-if="!row.gzlid">
|
||||||
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
||||||
@click="createProcess(row)">送审</el-link>
|
@click="createProcess(row)">送审</el-link>
|
||||||
<el-link type="primary" size="small" @click="tbGsxtBkQuashList( row)" v-else>撤控</el-link>
|
<el-link type="primary" size="small" @click="tbGsxtBkQuashList(row)" v-else>撤控</el-link>
|
||||||
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
||||||
@click="handleAdd('edit', row)">编辑</el-link>
|
@click="handleAdd('edit', row)">编辑</el-link>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<!-- 审核通过后才有轨迹 -->
|
<!-- 审核通过后才有轨迹 -->
|
||||||
|
<el-link type="primary" size="small" @click="openShowHzd(row)">回执单</el-link>
|
||||||
<el-link type="primary" size="small" @click="handleAdd('detail', row)">详情</el-link>
|
<el-link type="primary" size="small" @click="handleAdd('detail', row)">详情</el-link>
|
||||||
<el-link type="danger" size="small" @click="handleRow(row.id)"
|
<el-link type="danger" size="small" @click="handleRow(row.id)"
|
||||||
v-if="['01', '03', '06'].includes(row.bkZt)">删除</el-link>
|
v-if="['01', '03', '06'].includes(row.bkZt)">删除</el-link>
|
||||||
@ -69,13 +70,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 布控类型 -->
|
<!-- 布控类型 -->
|
||||||
<AddBkdx ref="addBkdxForm" @change="getList" :name="route.name" :dic="{
|
<AddBkdx ref="addBkdxForm" @change="getList" :name="route.name" :dic="{
|
||||||
D_GS_BK_NEWDX, D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_CZYQ,D_BZ_JQDJ,D_BZ_BKLYS,
|
D_GS_BK_NEWDX, D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_CZYQ, D_BZ_JQDJ, D_BZ_BKLYS,
|
||||||
D_GS_SSYJ, BD_BK_CLYJBQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS, D_GS_ZDR_YJDJ,
|
D_GS_SSYJ, BD_BK_CLYJBQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS, D_GS_ZDR_YJDJ,
|
||||||
}" />
|
}" />
|
||||||
<!-- 预警弹窗 -->
|
<!-- 预警弹窗 -->
|
||||||
<YjDialog ref="warningkdxForm"></YjDialog>
|
<YjDialog ref="warningkdxForm"></YjDialog>
|
||||||
<SubmissionProcess v-model="showSp" :data="rowData" :userData="{ ajmc: '布控审批', flowType: 'BKSP', modelName: '布控' }"
|
<SubmissionProcess v-model="showSp" :data="rowData" :userData="{ ajmc: '布控审批', flowType: 'BKSP', modelName: '布控' }"
|
||||||
:path="fixedValue" @getList="getList" />
|
:path="fixedValue" @getList="getList" />
|
||||||
|
<Hzd v-model="hzdVisible" :dataList="dataList" :dict="{D_GS_BK_NEWDX,D_BZ_BKLYS,D_GS_SSYJ,D_BZ_JQDJ,D_GZL_SHZT,D_GS_BK_CZYQ}" :name="route.name" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -87,18 +89,19 @@ import Pages from "@/components/aboutTable/Pages.vue";
|
|||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||||
import SubmissionProcess from '@/components/flowPath/submissionProcess.vue'
|
import SubmissionProcess from '@/components/flowPath/submissionProcess.vue'
|
||||||
import {tbGsxtBkQuash} from '@/api/zdr.js'
|
import { tbGsxtBkQuash } from '@/api/zdr.js'
|
||||||
import { useRouter, useRoute } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||||
|
import Hzd from "./components/dolog/hzd.vue";
|
||||||
import { rotate } from "ol/transform";
|
import { rotate } from "ol/transform";
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_SJLX, D_GS_SSYJ, BD_BK_CLYJBQ, D_GS_ZDR_YJDJ,
|
const { D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_SJLX, D_GS_SSYJ, BD_BK_CLYJBQ, D_GS_ZDR_YJDJ,
|
||||||
D_GS_BK_NEWDX, D_GS_BK_ZT, D_GS_BK_CZYQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS,D_BZ_BKLYS,
|
D_GS_BK_NEWDX, D_GS_BK_ZT, D_GS_BK_CZYQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS, D_BZ_BKLYS,D_GZL_SHZT,
|
||||||
D_BZ_JQDJ } = proxy.$dict("D_GS_ZDR_YJDJ", "D_GS_BK_BKYS", "D_BZ_XB", "D_GS_BK_SJLX",
|
D_BZ_JQDJ } = proxy.$dict("D_GS_ZDR_YJDJ", "D_GS_BK_BKYS", "D_BZ_XB", "D_GS_BK_SJLX",
|
||||||
"D_GS_SSYJ", "D_GS_BK_NEWDX", "D_GS_BK_ZT", "D_GS_BK_CZYQ", "D_GS_BK_CZJSDWLX", "D_GS_BK_TJFS",
|
"D_GS_SSYJ", "D_GS_BK_NEWDX", "D_GS_BK_ZT", "D_GS_BK_CZYQ", "D_GS_BK_CZJSDWLX", "D_GS_BK_TJFS",'D_GZL_SHZT',
|
||||||
'BD_BK_CLYJBQ', 'D_BZ_JQDJ',"D_BZ_BKLYS"); //获取字典数据
|
'BD_BK_CLYJBQ', 'D_BZ_JQDJ', "D_BZ_BKLYS"); //获取字典数据
|
||||||
const addBkdxForm = ref(null); //布控对象组件
|
const addBkdxForm = ref(null); //布控对象组件
|
||||||
const warningkdxForm = ref(); //布控对象组件
|
const warningkdxForm = ref(); //布控对象组件
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
@ -124,11 +127,16 @@ const searchConfiger = ref([
|
|||||||
showType: "select",
|
showType: "select",
|
||||||
options: D_GS_BK_ZT
|
options: D_GS_BK_ZT
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "布控时间",
|
label: "布控时间",
|
||||||
prop: "startTime",
|
prop: "startTime",
|
||||||
placeholder: "请选择布控时间",
|
placeholder: "请选择布控时间",
|
||||||
showType: "datetimerange",
|
showType: "datetimerange",
|
||||||
|
}, {
|
||||||
|
label: "布控部门",
|
||||||
|
prop: "bkfqrSsbmdm",
|
||||||
|
placeholder: "请选择布控部门",
|
||||||
|
showType: "department",
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
const queryFrom = ref({});
|
const queryFrom = ref({});
|
||||||
@ -179,8 +187,8 @@ onMounted(() => {
|
|||||||
const onSearch = (val) => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = {
|
queryFrom.value = {
|
||||||
...val,
|
...val,
|
||||||
startTime: val.startTime? val.startTime[0]: '',
|
startTime: val.startTime ? val.startTime[0] : '',
|
||||||
endTime: val.startTime? val.startTime[1]: ''
|
endTime: val.startTime ? val.startTime[1] : ''
|
||||||
};
|
};
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
getList();
|
getList();
|
||||||
@ -199,7 +207,6 @@ const changeSize = (val) => {
|
|||||||
const getList = () => {
|
const getList = () => {
|
||||||
pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let bklx = ''
|
let bklx = ''
|
||||||
console.log();
|
|
||||||
|
|
||||||
if (route.name == 'myControl') {
|
if (route.name == 'myControl') {
|
||||||
bklx = '01'
|
bklx = '01'
|
||||||
@ -234,7 +241,13 @@ const handleRow = (id) => {
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
// 回执单
|
||||||
|
const hzdVisible = ref(false)
|
||||||
|
const dataList= ref({})
|
||||||
|
const openShowHzd = (row) => {
|
||||||
|
hzdVisible.value = true
|
||||||
|
dataList.value = row
|
||||||
|
}
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
@ -243,7 +256,7 @@ const tabHeightFn = () => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
const tbGsxtBkQuashList = (item) => {
|
const tbGsxtBkQuashList = (item) => {
|
||||||
tbGsxtBkQuash({id:item.id}).then(res=>{
|
tbGsxtBkQuash({ id: item.id }).then(res => {
|
||||||
proxy.$message({ type: "success", message: "操作成功" });
|
proxy.$message({ type: "success", message: "操作成功" });
|
||||||
getList();
|
getList();
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,18 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle :title=" route.meta.title ">
|
|
||||||
<el-button type="primary" @click="handleAdd('add', null)">发起布控</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :title="route.meta.title" :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5"
|
||||||
|
:marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="handleAdd('add', null)">发起布控</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<!-- 按钮组 -->
|
<!-- 按钮组 -->
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
|
|
||||||
@ -48,7 +49,7 @@
|
|||||||
<template v-if="!row.gzlid">
|
<template v-if="!row.gzlid">
|
||||||
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
||||||
@click="createProcess(row)">送审</el-link>
|
@click="createProcess(row)">送审</el-link>
|
||||||
<el-link type="primary" size="small" @click="tbGsxtBkQuashList( row)" v-else>撤控</el-link>
|
<el-link type="primary" size="small" @click="tbGsxtBkQuashList(row)" v-else>撤控</el-link>
|
||||||
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
|
||||||
@click="handleAdd('edit', row)">编辑</el-link>
|
@click="handleAdd('edit', row)">编辑</el-link>
|
||||||
</template>
|
</template>
|
||||||
@ -86,7 +87,7 @@ import Pages from "@/components/aboutTable/Pages.vue";
|
|||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||||
import SubmissionProcess from '@/components/flowPath/submissionProcess.vue'
|
import SubmissionProcess from '@/components/flowPath/submissionProcess.vue'
|
||||||
import {tbGsxtBkQuash} from '@/api/zdr.js'
|
import { tbGsxtBkQuash } from '@/api/zdr.js'
|
||||||
import { useRouter, useRoute } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
@ -119,7 +120,7 @@ const searchConfiger = ref([
|
|||||||
showType: "select",
|
showType: "select",
|
||||||
options: D_GS_BK_ZT
|
options: D_GS_BK_ZT
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "布控时间",
|
label: "布控时间",
|
||||||
prop: "startTime",
|
prop: "startTime",
|
||||||
placeholder: "请选择布控时间",
|
placeholder: "请选择布控时间",
|
||||||
@ -174,8 +175,8 @@ onMounted(() => {
|
|||||||
const onSearch = (val) => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = {
|
queryFrom.value = {
|
||||||
...val,
|
...val,
|
||||||
startTime: val.startTime? val.startTime[0]: '',
|
startTime: val.startTime ? val.startTime[0] : '',
|
||||||
endTime: val.startTime? val.startTime[1]: ''
|
endTime: val.startTime ? val.startTime[1] : ''
|
||||||
};
|
};
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
getList();
|
getList();
|
||||||
@ -238,7 +239,7 @@ const tabHeightFn = () => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
const tbGsxtBkQuashList = (item) => {
|
const tbGsxtBkQuashList = (item) => {
|
||||||
tbGsxtBkQuash({id:item.id}).then(res=>{
|
tbGsxtBkQuash({ id: item.id }).then(res => {
|
||||||
proxy.$message({ type: "success", message: "操作成功" });
|
proxy.$message({ type: "success", message: "操作成功" });
|
||||||
getList();
|
getList();
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,17 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="titleBox">
|
<div ref="searchBox" class="mt10">
|
||||||
<PageTitle title="网上会议室">
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
<el-button type="primary" @click="addEdit('add', '')">
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" type="primary" @click="addEdit('add', '')">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|
||||||
</div>
|
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<ul class="list noScollLine" v-loading="pageData.loading">
|
<ul class="list noScollLine" v-loading="pageData.loading">
|
||||||
<li class="list-item" v-for="(item, index) in pageData.list" :key="`tableData${index}`">
|
<li class="list-item" v-for="(item, index) in pageData.list" :key="`tableData${index}`">
|
||||||
|
|||||||
@ -1,20 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- 搜索 -->
|
||||||
<PageTitle title="数据整理">
|
<div ref="searchBox" class="mt10">
|
||||||
<el-button type="primary" @click="getDataById('add', '')">
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="getDataById('add', '')">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
|
|||||||
@ -1,14 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="内部审核" />
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<template #bglx="{ row }">
|
<template #bglx="{ row }">
|
||||||
@ -154,7 +151,7 @@ const createProcess = (row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,20 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- 搜索 -->
|
||||||
<PageTitle title="研判指令">
|
<div ref="searchBox" class="mt10">
|
||||||
<el-button type="primary" @click="getDataById('add', '')">
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" type="primary" @click="getDataById('add', '')">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -35,8 +34,8 @@
|
|||||||
<el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link>
|
<el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link>
|
||||||
<el-link size="small" type="primary" @click="getDataById('detail', row)">详情</el-link>
|
<el-link size="small" type="primary" @click="getDataById('detail', row)">详情</el-link>
|
||||||
<el-link size="small" type="danger" @click="deleteFile(row)">删除</el-link>
|
<el-link size="small" type="danger" @click="deleteFile(row)">删除</el-link>
|
||||||
<el-link v-if="showBtn(row)=='sign'" size="small" type="success" @click="sign(row)">签收</el-link>
|
<el-link v-if="showBtn(row) == 'sign'" size="small" type="success" @click="sign(row)">签收</el-link>
|
||||||
<el-link v-if="showBtn(row)=='feedback'" size="small" type="warning" @click="feedback(row)">反馈</el-link>
|
<el-link v-if="showBtn(row) == 'feedback'" size="small" type="warning" @click="feedback(row)">反馈</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="战略研判">
|
<!-- 搜索 -->
|
||||||
<el-button type="primary" @click="selfCreateResearch('add')">
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" type="primary" @click="selfCreateResearch('add')">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">自建研判</span>
|
<span style="vertical-align: middle">自建研判</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -28,7 +28,7 @@
|
|||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<!-- <el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link> -->
|
<!-- <el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link> -->
|
||||||
<el-link size="small" type="danger" @click="getypbgSjzlTjspId(row.id)" >提交申请</el-link>
|
<el-link size="small" type="danger" @click="getypbgSjzlTjspId(row.id)">提交申请</el-link>
|
||||||
<el-link size="small" type="primary" @click="getDataById('detail', row)">详情</el-link>
|
<el-link size="small" type="primary" @click="getDataById('detail', row)">详情</el-link>
|
||||||
<el-link size="small" type="primary" @click="createReport(row)">{{ row.ypbg?.id ? '编辑' : '创建' }}报告</el-link>
|
<el-link size="small" type="primary" @click="createReport(row)">{{ row.ypbg?.id ? '编辑' : '创建' }}报告</el-link>
|
||||||
<el-link size="small" type="success" @click="createMeeting(row)">创建会议</el-link>
|
<el-link size="small" type="success" @click="createMeeting(row)">创建会议</el-link>
|
||||||
@ -57,7 +57,7 @@ import Search from "@/components/aboutTable/Search.vue";
|
|||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import { tacticalGet, strategicDelete } from "@/api/huiShangyp/tacticalApi.js";
|
import { tacticalGet, strategicDelete } from "@/api/huiShangyp/tacticalApi.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, watch, computed, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, watch, computed, nextTick } from "vue";
|
||||||
import {ypbgSjzlTjspId} from "@/api/huiShangyp/strategicApi.js"
|
import { ypbgSjzlTjspId } from "@/api/huiShangyp/strategicApi.js"
|
||||||
import addReport from "./addReport.vue";
|
import addReport from "./addReport.vue";
|
||||||
import AddForm from "./addForm.vue";
|
import AddForm from "./addForm.vue";
|
||||||
import addMeeting from "./addMeeting.vue";
|
import addMeeting from "./addMeeting.vue";
|
||||||
@ -160,7 +160,7 @@ const getList = () => {
|
|||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||||
window.onresize = function() {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="战术研判">
|
<!-- 搜索 -->
|
||||||
<el-button type="primary" @click="selfCreateResearch('add')">
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" type="primary" @click="selfCreateResearch('add')">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">自建研判</span>
|
<span style="vertical-align: middle">自建研判</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -27,7 +27,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link size="small" type="danger" @click="getypbgSjzlTjspId(row.id)" >提交申请</el-link>
|
<el-link size="small" type="danger" @click="getypbgSjzlTjspId(row.id)">提交申请</el-link>
|
||||||
<!-- <el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link> -->
|
<!-- <el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link> -->
|
||||||
<el-link size="small" type="primary" @click="getDataById('detail', row)">详情</el-link>
|
<el-link size="small" type="primary" @click="getDataById('detail', row)">详情</el-link>
|
||||||
<el-link size="small" type="primary" @click="createReport(row)">{{ row.ypbg?.id ? '编辑' : '创建' }}报告</el-link>
|
<el-link size="small" type="primary" @click="createReport(row)">{{ row.ypbg?.id ? '编辑' : '创建' }}报告</el-link>
|
||||||
@ -56,7 +56,7 @@ import Pages from "@/components/aboutTable/Pages.vue";
|
|||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import { tacticalGet, strategicDelete, } from "@/api/huiShangyp/tacticalApi.js";
|
import { tacticalGet, strategicDelete, } from "@/api/huiShangyp/tacticalApi.js";
|
||||||
import {ypbgSjzlTjspId} from "@/api/huiShangyp/strategicApi.js"
|
import { ypbgSjzlTjspId } from "@/api/huiShangyp/strategicApi.js"
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, watch, computed, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, watch, computed, nextTick } from "vue";
|
||||||
import addReport from "./addReport.vue";
|
import addReport from "./addReport.vue";
|
||||||
import AddForm from "./addForm.vue";
|
import AddForm from "./addForm.vue";
|
||||||
@ -160,7 +160,7 @@ const getList = () => {
|
|||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||||
window.onresize = function() {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,16 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 研判类型 -->
|
<!-- 研判类型 -->
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="模型平台">
|
<div ref="searchBox" class="mt10">
|
||||||
<el-button type="primary" @click="openAddModel('add')" :icon="CirclePlus">
|
|
||||||
新增模型
|
|
||||||
</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch"> </Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch"> </Search>
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" type="primary" @click="openAddModel('add')" :icon="CirclePlus">
|
||||||
|
新增模型
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<ul class="cntlsit mb10" v-if="show" v-infinite-scroll="load" :style="{ height: listHeight + 'px' }"
|
<ul class="cntlsit mb10" v-if="show" v-infinite-scroll="load" :style="{ height: listHeight + 'px' }"
|
||||||
v-loading="loading">
|
v-loading="loading">
|
||||||
<li class="model-card" v-for="(it, idx) in list" :key="idx">
|
<li class="model-card" v-for="(it, idx) in list" :key="idx">
|
||||||
|
|||||||
@ -1,17 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- 搜索 -->
|
||||||
<PageTitle title="指令信息">
|
<div ref="searchBox" class="mt10">
|
||||||
<el-button type="primary" @click="addEdit('add', '')">
|
<Search :searchArr="searchConfiger" @submit="onSearch"/>
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="addEdit('add', '')">
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch"/>
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
|
|||||||
@ -1,14 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="操作记录"/>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"/>
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageData.tableData"
|
:tableData="pageData.tableData"
|
||||||
:tableColumn="pageData.tableColumn"
|
:tableColumn="pageData.tableColumn"
|
||||||
|
|||||||
@ -1,22 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="行为标签管理">
|
<!-- 搜索 -->
|
||||||
<template #left>
|
<div ref="searchBox" class="mt10">
|
||||||
<el-button v-for="(it,idx) in D_GS_BQ_LB " :key="idx" :type="type == it.zdmc ? 'success':''" @click="chooseListType(it.zdmc)">
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" v-for="(it,idx) in D_GS_BQ_LB " :key="idx" :type="type == it.zdmc ? 'success':''" @click="chooseListType(it.zdmc)">
|
||||||
<span style="vertical-align: middle">{{ it.zdmc }}</span>
|
<span style="vertical-align: middle">{{ it.zdmc }}</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
<el-button size="small" type="primary" @click="addEdit('add', '')">
|
||||||
<el-button type="primary" @click="addEdit('add', '')">
|
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox" :style="{height:pageData.tableHeight+20+'px'}">
|
<div class="tabBox" :style="{height:pageData.tableHeight+20+'px'}">
|
||||||
<MyTable
|
<MyTable
|
||||||
@ -168,7 +168,7 @@ const addEdit = (type, row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
window.onresize = function () { tabHeightFn(); };
|
window.onresize = function () { tabHeightFn(); };
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
38
src/views/backOfficeSystem/fourColorManage/Cspz/index.vue
Normal file
38
src/views/backOfficeSystem/fourColorManage/Cspz/index.vue
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button v-for="(item, index) in butList" :key="index" :type="qh == index + 1 ? 'primary' : 'default'"
|
||||||
|
@click="add(index + 1)" size="small">{{ item }}</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
|
<IntegralCoefficient v-if="qh == 1" />
|
||||||
|
<IdentityManage v-if="qh == 2" />
|
||||||
|
<BehaviorLabels v-if="qh == 3" />
|
||||||
|
<TagManage v-if="qh == 4" />
|
||||||
|
<TsypHome v-if="qh == 5" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import IntegralCoefficient from "@/views/backOfficeSystem/fourColorManage/IntegralCoefficient/index"
|
||||||
|
import IdentityManage from "@/views/backOfficeSystem/fourColorManage/IdentityManage/index"
|
||||||
|
import BehaviorLabels from "@/views/backOfficeSystem/fourColorManage/BehaviorLabels/index"
|
||||||
|
import TagManage from "@/views/backOfficeSystem/fourColorManage/tagManage/index"
|
||||||
|
|
||||||
|
import TsypHome from "@/views/backOfficeSystem/JudgmentHome/tsypHome/index"
|
||||||
|
|
||||||
|
import { ref } from "vue";
|
||||||
|
const butList = ref(["积分系数配置", "身份标签管理", "行为标签管理", "标签组合管理", "模型管理"])
|
||||||
|
|
||||||
|
|
||||||
|
const qh = ref(1)
|
||||||
|
const add = (flag) => {
|
||||||
|
qh.value = flag
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
@ -1,22 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="身份标签管理">
|
<!-- 搜索 -->
|
||||||
<template #left>
|
<div ref="searchBox" class="mt10">
|
||||||
<el-button v-for="(it,idx) in D_GS_BQ_LB " :key="idx" :type="type == it.zdmc ? 'success':''" @click="chooseListType(it.zdmc)">
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button size="small" v-for="(it,idx) in D_GS_BQ_LB " :key="idx" :type="type == it.zdmc ? 'success':''" @click="chooseListType(it.zdmc)">
|
||||||
<span style="vertical-align: middle">{{ it.zdmc }}</span>
|
<span style="vertical-align: middle">{{ it.zdmc }}</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
<el-button size="small" type="primary" @click="addEdit('add', '')">
|
||||||
<el-button type="primary" @click="addEdit('add', '')">
|
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox" :style="{height:pageData.tableHeight+20+'px'}">
|
<div class="tabBox" :style="{height:pageData.tableHeight+20+'px'}">
|
||||||
<MyTable
|
<MyTable
|
||||||
@ -167,7 +167,7 @@ const addEdit = (type, row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
window.onresize = function () { tabHeightFn(); };
|
window.onresize = function () { tabHeightFn(); };
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -1,17 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="积分系数配置">
|
<!-- 搜索 -->
|
||||||
<el-button type="primary" @click="addEdit('add', '')">
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="addEdit('add', '')">
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox" :style="{height:pageData.tableHeight+20+'px'}">
|
<div class="tabBox" :style="{height:pageData.tableHeight+20+'px'}">
|
||||||
<MyTable
|
<MyTable
|
||||||
@ -137,7 +139,7 @@ const addEdit = (type, row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
window.onresize = function () { tabHeightFn(); };
|
window.onresize = function () { tabHeightFn(); };
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
43
src/views/backOfficeSystem/fourColorManage/YjData/index.vue
Normal file
43
src/views/backOfficeSystem/fourColorManage/YjData/index.vue
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button v-for="(item,index) in butList" :key="index" :type="qh == index+1 ? 'primary' : 'default'" @click="add(index+1)" size="small">{{item}}</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
|
<FouColorWarning v-if="qh==1" />
|
||||||
|
<SevenWarning v-if="qh==2" />
|
||||||
|
<IdentityWarning v-if="qh==3" />
|
||||||
|
<BehaviorWarning v-if="qh==4" />
|
||||||
|
<CombinedWarning v-if="qh==5" />
|
||||||
|
<PortraitWarning v-if="qh==6" />
|
||||||
|
<VehicleWarning v-if="qh==7" />
|
||||||
|
<ControlWarning v-if="qh==8" />
|
||||||
|
<RegionalControl v-if="qh==9" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import FouColorWarning from "@/views/backOfficeSystem/fourColorManage/warningControl/fouColorWarning/index.vue"
|
||||||
|
import SevenWarning from "@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarning/index.vue"
|
||||||
|
import IdentityWarning from "@/views/backOfficeSystem/fourColorManage/warningControl/identityWarning/index.vue"
|
||||||
|
import BehaviorWarning from "@/views/backOfficeSystem/fourColorManage/warningControl/behaviorWarning/index.vue"
|
||||||
|
import CombinedWarning from "@/views/backOfficeSystem/fourColorManage/warningControl/combinedWarning/index.vue"
|
||||||
|
import PortraitWarning from "@/views/backOfficeSystem/fourColorManage/warningList/portraitWarning/index.vue"
|
||||||
|
import VehicleWarning from "@/views/backOfficeSystem/fourColorManage/warningList/vehicleWarning/index.vue"
|
||||||
|
import ControlWarning from "@/views/backOfficeSystem/fourColorManage/warningControl/controlWarning/index.vue"
|
||||||
|
import RegionalControl from "@/views/backOfficeSystem/fourColorManage/warningControl/regionalControl/index.vue"
|
||||||
|
import { ref } from "vue";
|
||||||
|
const butList=ref(["预警整合","七类重点","身份预警","行为预警","组合预警","人像预警","车辆预警","布控预警","区域预警"])
|
||||||
|
|
||||||
|
|
||||||
|
const qh = ref(1)
|
||||||
|
const add = (flag) => {
|
||||||
|
qh.value = flag
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
@ -1,7 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="标签组合管理">
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox" class="mt10">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
<!-- <el-button>
|
<!-- <el-button>
|
||||||
<span style="vertical-align: middle">调级</span>
|
<span style="vertical-align: middle">调级</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -11,18 +16,14 @@
|
|||||||
<el-button>
|
<el-button>
|
||||||
<span style="vertical-align: middle">导入</span>
|
<span style="vertical-align: middle">导入</span>
|
||||||
</el-button> -->
|
</el-button> -->
|
||||||
<el-button type="primary" @click="addEdit('add', '')">
|
<el-button size="small" type="primary" @click="addEdit('add', '')">
|
||||||
<el-icon style="vertical-align: middle">
|
<el-icon style="vertical-align: middle">
|
||||||
<CirclePlus />
|
<CirclePlus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
</template>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -163,7 +164,7 @@ const chooseJfFun = (val) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,16 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="行为预警">
|
|
||||||
<!-- <el-button type="primary" @click="exportExcel">
|
|
||||||
<span style="vertical-align: middle">导出</span>
|
|
||||||
</el-button> -->
|
|
||||||
|
|
||||||
<el-button type="primary" @click="exportExl">导出</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10">
|
||||||
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
||||||
<template #jfd>
|
<template #jfd>
|
||||||
<div>
|
<div>
|
||||||
@ -21,6 +12,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</Searchs>
|
</Searchs>
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" @click="exportExl" size="small">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox tabBox_zdy" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
<div class="tabBox tabBox_zdy" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -328,7 +324,7 @@ const chooseJfFun = (val) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 280;
|
||||||
|
|
||||||
window.onresize = function() {
|
window.onresize = function() {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
|
|||||||
@ -1,14 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="组合预警">
|
|
||||||
<!-- <el-button>
|
|
||||||
<span style="vertical-align: middle">导出</span>
|
|
||||||
</el-button> -->
|
|
||||||
|
|
||||||
<el-button type="primary" @click="exportExl">导出</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox">
|
||||||
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
||||||
@ -21,11 +13,16 @@
|
|||||||
</template>
|
</template>
|
||||||
</Searchs>
|
</Searchs>
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" @click="exportExl" size="small">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox tabBox_zdy" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
<div class="tabBox tabBox_zdy" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||||
:expand="true" @chooseData="handleChooseData">
|
:expand="true" @chooseData="handleChooseData">
|
||||||
<template #sfcs="{ row }">
|
<template #sfcs="{ row }">
|
||||||
<span style="color: #0072ff;" @click="handleClick(row)">{{ row.sfcs }}</span>
|
<span style="color: #0072ff;" @click="handleClick(row)">{{ row.sfcs }}</span>
|
||||||
</template>
|
</template>
|
||||||
@ -43,11 +40,12 @@
|
|||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
|
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
|
||||||
<el-link type="primary" @click="handleCzjy(row)" v-if="roleCode">处置建议</el-link>
|
<el-link type="primary" @click="handleCzjy(row)" v-if="roleCode">处置建议</el-link>
|
||||||
<el-link type="primary" @click="chooseJfFun(row)" >配置系统</el-link>
|
<el-link type="primary" @click="chooseJfFun(row)">配置系统</el-link>
|
||||||
<!-- <el-link type="primary" @click="showDetail(row)">转合成</el-link>
|
<!-- <el-link type="primary" @click="showDetail(row)">转合成</el-link>
|
||||||
<el-link type="danger" @click="delDictItem(row.id)">转会商</el-link> -->
|
<el-link type="danger" @click="delDictItem(row.id)">转会商</el-link> -->
|
||||||
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs">签收</el-link>
|
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs">签收</el-link>
|
||||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02'&& permission_sfqs">反馈</el-link>
|
<el-link type="success" @click="handleQsFk(row, '反馈')"
|
||||||
|
v-else-if="row.czzt == '02' && permission_sfqs">反馈</el-link>
|
||||||
<!-- <el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link> -->
|
<!-- <el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link> -->
|
||||||
<el-link type="primary" @click="openAddModel(row)">详情</el-link>
|
<el-link type="primary" @click="openAddModel(row)">详情</el-link>
|
||||||
</template>
|
</template>
|
||||||
@ -69,8 +67,8 @@
|
|||||||
<!-- 处置建议 -->
|
<!-- 处置建议 -->
|
||||||
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
||||||
|
|
||||||
<ChooseJf v-model="chooseJfShow" titleValue="选择系数" :Single="false"
|
<ChooseJf v-model="chooseJfShow" titleValue="选择系数" :Single="false" :chooseJfBh="chooseJfBh" url="/yjzxZhyj/sjxspz"
|
||||||
:chooseJfBh="chooseJfBh" url="/yjzxZhyj/sjxspz" :roleIds="roleIds"/>
|
:roleIds="roleIds" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -82,7 +80,7 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
|||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import Items from "./item/items.vue";
|
import Items from "./item/items.vue";
|
||||||
import ChooseJf from '@/components/ChooseList/ChooseJf/index.vue'
|
import ChooseJf from '@/components/ChooseList/ChooseJf/index.vue'
|
||||||
import { tbYjxxGetZbtj, tbGsxtBqzhSelectList,yjzxZhyjSelectList } from '@/api/yj.js'
|
import { tbYjxxGetZbtj, tbGsxtBqzhSelectList, yjzxZhyjSelectList } from '@/api/yj.js'
|
||||||
import HolographicArchive from '@/views/home/components/holographicArchive.vue'
|
import HolographicArchive from '@/views/home/components/holographicArchive.vue'
|
||||||
import Information from "@/views/home/model/information.vue";
|
import Information from "@/views/home/model/information.vue";
|
||||||
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
||||||
@ -114,7 +112,7 @@ const searchConfiger = ref([
|
|||||||
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input" },
|
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input" },
|
||||||
{ label: "预警标签", prop: 'yjbqmc', placeholder: "请输入预警标签", showType: "input" },
|
{ label: "预警标签", prop: 'yjbqmc', placeholder: "请输入预警标签", showType: "input" },
|
||||||
{ label: "部门", prop: 'ssbmdm', placeholder: "请选择部门", showType: "department" },
|
{ label: "部门", prop: 'ssbmdm', placeholder: "请选择部门", showType: "department" },
|
||||||
{ label: "级别", prop: 'bqys', placeholder: "请选择级别", showType: "select" ,options: D_BZ_YJJB},
|
{ label: "级别", prop: 'bqys', placeholder: "请选择级别", showType: "select", options: D_BZ_YJJB },
|
||||||
{ label: "积分段", prop: 'jfd', placeholder: "请选择积分段", showType: "Slot" },
|
{ label: "积分段", prop: 'jfd', placeholder: "请选择积分段", showType: "Slot" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -138,7 +136,7 @@ const pageData = reactive({
|
|||||||
controlsWidth: 200,
|
controlsWidth: 200,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "状态", prop: "czzt", showSolt: true },
|
{ label: "状态", prop: "czzt", showSolt: true },
|
||||||
{ label: "预警时间", prop: "yjsj"},
|
{ label: "预警时间", prop: "yjsj" },
|
||||||
{ label: "姓名", prop: "xm" },
|
{ label: "姓名", prop: "xm" },
|
||||||
{ label: "身份证号", prop: "sfzh" },
|
{ label: "身份证号", prop: "sfzh" },
|
||||||
{ label: "标签", prop: "yjbqmc" },
|
{ label: "标签", prop: "yjbqmc" },
|
||||||
@ -150,11 +148,11 @@ const pageData = reactive({
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let str = getItem('deptId') ? getItem('deptId')[0].deptLevel : ''
|
let str = getItem('deptId') ? getItem('deptId')[0].deptLevel : ''
|
||||||
permission_sfqs.value = str.startsWith('2'||'3') ? false : true;
|
permission_sfqs.value = str.startsWith('2' || '3') ? false : true;
|
||||||
|
|
||||||
let rols = getItem('roleList') ? getItem('roleList'):[]
|
let rols = getItem('roleList') ? getItem('roleList') : []
|
||||||
let obj = rols.find(item => {
|
let obj = rols.find(item => {
|
||||||
return ['JS_666666','JS_777777','JS_888888'].includes(item.roleCode)
|
return ['JS_666666', 'JS_777777', 'JS_888888'].includes(item.roleCode)
|
||||||
})
|
})
|
||||||
roleCode.value = obj ? true : false;
|
roleCode.value = obj ? true : false;
|
||||||
|
|
||||||
@ -165,11 +163,11 @@ onMounted(() => {
|
|||||||
|
|
||||||
|
|
||||||
const handleCzjy = (row) => {
|
const handleCzjy = (row) => {
|
||||||
czjyRef.value.init( row)
|
czjyRef.value.init(row)
|
||||||
}
|
}
|
||||||
|
|
||||||
const onSearch = (val) => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = { ...queryFrom.value,...val };
|
queryFrom.value = { ...queryFrom.value, ...val };
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
getList();
|
getList();
|
||||||
};
|
};
|
||||||
@ -242,7 +240,7 @@ const assessShow = ref(false)
|
|||||||
const selectRows = ref([])
|
const selectRows = ref([])
|
||||||
const dataList = ref()
|
const dataList = ref()
|
||||||
const pushAssess = (val) => {
|
const pushAssess = (val) => {
|
||||||
return holographicProfileJump(val.yjlx,val) // 全息档案跳转
|
return holographicProfileJump(val.yjlx, val) // 全息档案跳转
|
||||||
// assessShow.value = true;
|
// assessShow.value = true;
|
||||||
// dataList.value = val;
|
// dataList.value = val;
|
||||||
}
|
}
|
||||||
@ -301,21 +299,21 @@ const openAddModel = (row) => {
|
|||||||
// 选择系数
|
// 选择系数
|
||||||
const chooseJfShow = ref(false)
|
const chooseJfShow = ref(false)
|
||||||
const chooseJfBh = ref()
|
const chooseJfBh = ref()
|
||||||
const roleIds=ref()
|
const roleIds = ref()
|
||||||
const chooseJfFun = (val) => {
|
const chooseJfFun = (val) => {
|
||||||
chooseJfBh.value=val.id
|
chooseJfBh.value = val.id
|
||||||
yjzxZhyjSelectList(val.id).then(res => {
|
yjzxZhyjSelectList(val.id).then(res => {
|
||||||
roleIds.value=res.sjxspzList.map(item => item.xsid)
|
roleIds.value = res.sjxspzList.map(item => item.xsid)
|
||||||
chooseJfShow.value = true
|
chooseJfShow.value = true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
|
|
||||||
window.onresize = function() {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -355,12 +353,9 @@ const exportExl = () => {
|
|||||||
background: rgba(0, 0, 0, 0.5) !important;
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabBox_zdy{
|
.tabBox_zdy {
|
||||||
.el-table--fit {
|
.el-table--fit {
|
||||||
overflow: unset !important;
|
overflow: unset !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="预警布控">
|
|
||||||
|
|
||||||
<el-button type="primary" @click="exportExl">导出</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox" >
|
<div ref="searchBox" class="mt10">
|
||||||
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
||||||
<template #jfd>
|
<template #jfd>
|
||||||
<div>
|
<div>
|
||||||
@ -18,6 +14,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</Searchs>
|
</Searchs>
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" @click="exportExl" size="small">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox tabBox_zdy" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
<div class="tabBox tabBox_zdy" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -56,6 +57,7 @@
|
|||||||
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs">签收</el-link>
|
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs">签收</el-link>
|
||||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-if="row.czzt == '02' && permission_sfqs" >反馈</el-link>
|
<el-link type="success" @click="handleQsFk(row, '反馈')" v-if="row.czzt == '02' && permission_sfqs" >反馈</el-link>
|
||||||
<el-link type="primary" @click="openAddFrom(row)">详情</el-link>
|
<el-link type="primary" @click="openAddFrom(row)">详情</el-link>
|
||||||
|
<el-link type="primary" @click="pushWarning(row)">指派</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||||
@ -68,6 +70,7 @@
|
|||||||
<AddFrom ref="addModelRef" :dict="{ D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_GS_SSYJ }" />
|
<AddFrom ref="addModelRef" :dict="{ D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_GS_SSYJ }" />
|
||||||
<!-- 处置建议 -->
|
<!-- 处置建议 -->
|
||||||
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
||||||
|
<ZpForm v-model="warningShow" :dataList="dataList"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -80,6 +83,7 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
|||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import AddFrom from "./components/addFrom.vue";
|
import AddFrom from "./components/addFrom.vue";
|
||||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||||
|
import ZpForm from "@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarning/zpForm.vue";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
import emitter from "@/utils/eventBus.js";
|
import emitter from "@/utils/eventBus.js";
|
||||||
@ -100,6 +104,7 @@ const searchConfiger = ref([
|
|||||||
{ label: "部门", prop: 'ssbmdm', placeholder: "请选择部门", showType: "department" },
|
{ label: "部门", prop: 'ssbmdm', placeholder: "请选择部门", showType: "department" },
|
||||||
{ label: "级别", prop: 'yjJb', placeholder: "请选择级别", showType: "select" ,options: D_BZ_YJJB},
|
{ label: "级别", prop: 'yjJb', placeholder: "请选择级别", showType: "select" ,options: D_BZ_YJJB},
|
||||||
{ label: "积分段", prop: 'jfd', placeholder: "请选择积分段", showType: "Slot" },
|
{ label: "积分段", prop: 'jfd', placeholder: "请选择积分段", showType: "Slot" },
|
||||||
|
{ label: "布控时间", prop: 'startTime', placeholder: "请选择布控时间", showType: "datetimerange" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const permission_sfqs = ref(false)
|
const permission_sfqs = ref(false)
|
||||||
@ -122,7 +127,7 @@ const pageData = reactive({
|
|||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
pageCurrent: 1
|
pageCurrent: 1
|
||||||
},
|
},
|
||||||
controlsWidth: 200, //操作栏宽度
|
controlsWidth: 240, //操作栏宽度
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "状态", prop: "czzt", showSolt: true },
|
{ label: "状态", prop: "czzt", showSolt: true },
|
||||||
{ label: "预警时间", prop: "yjFssj" },
|
{ label: "预警时间", prop: "yjFssj" },
|
||||||
@ -154,7 +159,11 @@ onMounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const onSearch = (val) => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = { ...queryFrom.value,...val };
|
queryFrom.value = {
|
||||||
|
...queryFrom.value, ...val,
|
||||||
|
startTime: val.startTime ? val.startTime[0] : '',
|
||||||
|
endTime: val.startTime ? val.startTime[1] : '',
|
||||||
|
};
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
getList();
|
getList();
|
||||||
};
|
};
|
||||||
@ -240,12 +249,23 @@ const handleCzjy = (row) => {
|
|||||||
}
|
}
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
|
|
||||||
window.onresize = function() {
|
window.onresize = function() {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
// 指派
|
||||||
|
const dataList = ref(null)
|
||||||
|
const warningShow = ref(false)
|
||||||
|
const pushWarning = (val) => {
|
||||||
|
warningShow.value = true;
|
||||||
|
dataList.value = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** 选中项 */
|
/** 选中项 */
|
||||||
const selectRows = ref([])
|
const selectRows = ref([])
|
||||||
const handleChooseData = (val) => {
|
const handleChooseData = (val) => {
|
||||||
|
|||||||
@ -1,15 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<PageTitle title="预警数据整合" />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- 搜索 -->
|
||||||
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<template #yjtp="{ row }">
|
<template #yjtp="{ row }">
|
||||||
@ -32,7 +29,7 @@
|
|||||||
<DictTag :value="row.yjjb" :tag="false" :color="bqYs(row.yjjb)" :options="D_BZ_YJJB" />
|
<DictTag :value="row.yjjb" :tag="false" :color="bqYs(row.yjjb)" :options="D_BZ_YJJB" />
|
||||||
</template>
|
</template>
|
||||||
<template #yjlx="{ row }">
|
<template #yjlx="{ row }">
|
||||||
<DictTag :value="row.yjlx" :tag="false" :options="D_GS_ZDQT_YJLB" />
|
<DictTag :value="row.yjlx" :tag="false" :options="D_GS_ZDQT_YJLB" />
|
||||||
</template>
|
</template>
|
||||||
<template #yjlb="{ row }">
|
<template #yjlb="{ row }">
|
||||||
<DictTag :value="row.yjlb" :options="D_BZ_YJLX" />
|
<DictTag :value="row.yjlb" :options="D_BZ_YJLX" />
|
||||||
@ -54,7 +51,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 详情 -->
|
<!-- 详情 -->
|
||||||
<HolographicArchive v-model="assessShow" :dataList="dataList" />
|
<HolographicArchive v-model="assessShow" :dataList="dataList" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -101,7 +98,7 @@ const pageData = reactive({
|
|||||||
{ label: "预警级别", prop: "yjjb", showSolt: true },
|
{ label: "预警级别", prop: "yjjb", showSolt: true },
|
||||||
{ label: "预警类别", prop: "yjlb", showSolt: true },
|
{ label: "预警类别", prop: "yjlb", showSolt: true },
|
||||||
{ label: "预警类型", prop: "yjlx", showSolt: true },
|
{ label: "预警类型", prop: "yjlx", showSolt: true },
|
||||||
{ label: "预警时间", prop: "yjsj" , width: 200},
|
{ label: "预警时间", prop: "yjsj", width: 200 },
|
||||||
{ label: "所属部门", prop: "ssbm" },
|
{ label: "所属部门", prop: "ssbm" },
|
||||||
{ label: "车牌号", prop: "cph" },
|
{ label: "车牌号", prop: "cph" },
|
||||||
]
|
]
|
||||||
@ -168,7 +165,7 @@ const bqYs = (val) => {
|
|||||||
const assessShow = ref(false)
|
const assessShow = ref(false)
|
||||||
const dataList = ref()
|
const dataList = ref()
|
||||||
const pushAssess = (val) => {
|
const pushAssess = (val) => {
|
||||||
return holographicProfileJump(val?.yjlb,val) // 全息档案跳转
|
return holographicProfileJump(val?.yjlb, val) // 全息档案跳转
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -185,7 +182,7 @@ const pushAssess = (val) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 240;
|
||||||
window.onresize = function () { tabHeightFn(); };
|
window.onresize = function () { tabHeightFn(); };
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -1,15 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="身份预警">
|
|
||||||
<!-- <el-button>
|
|
||||||
<span style="vertical-align: middle">导出</span>
|
|
||||||
</el-button> -->
|
|
||||||
<el-button type="primary" @click="exportExl">导出</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
||||||
<template #jfd>
|
<template #jfd>
|
||||||
<div>
|
<div>
|
||||||
@ -20,8 +12,13 @@
|
|||||||
</template>
|
</template>
|
||||||
</Searchs>
|
</Searchs>
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="exportExl">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox tabBox_zdy" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
<div class="tabBox tabBox_zdy heightBox" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth" expand
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth" expand
|
||||||
@chooseData="handleChooseData">
|
@chooseData="handleChooseData">
|
||||||
@ -39,11 +36,12 @@
|
|||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
|
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
|
||||||
<el-link type="primary" @click="handleCzjy(row)" v-if="roleCode">处置建议</el-link>
|
<el-link type="primary" @click="handleCzjy(row)" v-if="roleCode">处置建议</el-link>
|
||||||
<el-link type="primary" @click="chooseJfFun(row)" >配置系统</el-link>
|
<el-link type="primary" @click="chooseJfFun(row)">配置系统</el-link>
|
||||||
<!-- <el-link type="primary" @click="showDetail(row)">转合成</el-link>
|
<!-- <el-link type="primary" @click="showDetail(row)">转合成</el-link>
|
||||||
<el-link type="danger" @click="handleQsFk(row)">转会商</el-link> -->
|
<el-link type="danger" @click="handleQsFk(row)">转会商</el-link> -->
|
||||||
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs">签收</el-link>
|
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs">签收</el-link>
|
||||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02' && permission_sfqs">反馈</el-link>
|
<el-link type="success" @click="handleQsFk(row, '反馈')"
|
||||||
|
v-else-if="row.czzt == '02' && permission_sfqs">反馈</el-link>
|
||||||
<!-- <el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link> -->
|
<!-- <el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link> -->
|
||||||
<el-link type="primary" @click="openAddFrom(row)">详情</el-link>
|
<el-link type="primary" @click="openAddFrom(row)">详情</el-link>
|
||||||
</template>
|
</template>
|
||||||
@ -66,8 +64,8 @@
|
|||||||
<!-- 处置建议 -->
|
<!-- 处置建议 -->
|
||||||
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
||||||
|
|
||||||
<ChooseJf v-model="chooseJfShow" titleValue="选择系数" :Single="false"
|
<ChooseJf v-model="chooseJfShow" titleValue="选择系数" :Single="false" :chooseJfBh="chooseJfBh" url="/yjzxSfyj/sjxspz"
|
||||||
:chooseJfBh="chooseJfBh" url="/yjzxSfyj/sjxspz" :roleIds="roleIds"/>
|
:roleIds="roleIds" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -85,7 +83,7 @@ import ChooseJf from '@/components/ChooseList/ChooseJf/index.vue'
|
|||||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
import { yjzxSfyjSelectList,yjzxyjzxSfyjSelectList } from "@/api/yj.js";
|
import { yjzxSfyjSelectList, yjzxyjzxSfyjSelectList } from "@/api/yj.js";
|
||||||
import { tbGsxtBqglSelectList } from '@/api/zdr'
|
import { tbGsxtBqglSelectList } from '@/api/zdr'
|
||||||
import Detail from './components/detail.vue'
|
import Detail from './components/detail.vue'
|
||||||
import { watch } from "vue";
|
import { watch } from "vue";
|
||||||
@ -97,7 +95,7 @@ import { getMultiDictVal } from "@/utils/dict.js"
|
|||||||
const czjyRef = ref()
|
const czjyRef = ref()
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const searchBox = ref();
|
const searchBox = ref();
|
||||||
const { D_GSXT_YJXX_CZZT, D_GS_SSYJ,D_BZ_YJJB } = proxy.$dict("D_GSXT_YJXX_CZZT", "D_GS_SSYJ",'D_BZ_YJJB')
|
const { D_GSXT_YJXX_CZZT, D_GS_SSYJ, D_BZ_YJJB } = proxy.$dict("D_GSXT_YJXX_CZZT", "D_GS_SSYJ", 'D_BZ_YJJB')
|
||||||
const dict = reactive({ D_GSXT_YJXX_CZZT, D_GS_SSYJ })
|
const dict = reactive({ D_GSXT_YJXX_CZZT, D_GS_SSYJ })
|
||||||
// 搜索配置
|
// 搜索配置
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
@ -105,7 +103,7 @@ const searchConfiger = ref([
|
|||||||
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input" },
|
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input" },
|
||||||
{ label: "预警标签", prop: 'yjbqmc', placeholder: "请输入预警标签", showType: "input" },
|
{ label: "预警标签", prop: 'yjbqmc', placeholder: "请输入预警标签", showType: "input" },
|
||||||
{ label: "部门", prop: 'ssbmdm', placeholder: "请选择部门", showType: "department" },
|
{ label: "部门", prop: 'ssbmdm', placeholder: "请选择部门", showType: "department" },
|
||||||
{ label: "级别", prop: 'bqys', placeholder: "请选择级别", showType: "select" ,options: D_BZ_YJJB},
|
{ label: "级别", prop: 'bqys', placeholder: "请选择级别", showType: "select", options: D_BZ_YJJB },
|
||||||
{ label: "积分段", prop: 'jfd', placeholder: "请选择积分段", showType: "Slot" },
|
{ label: "积分段", prop: 'jfd', placeholder: "请选择积分段", showType: "Slot" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -132,9 +130,9 @@ const pageData = reactive({
|
|||||||
controlsWidth: 200, //操作栏宽度
|
controlsWidth: 200, //操作栏宽度
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "状态", prop: "czzt", showSolt: true },
|
{ label: "状态", prop: "czzt", showSolt: true },
|
||||||
{ label: "预警时间", prop: "yjsj"},
|
{ label: "预警时间", prop: "yjsj" ,width: 180},
|
||||||
{ label: "姓名", prop: "xm" },
|
{ label: "姓名", prop: "xm" },
|
||||||
{ label: "身份证号", prop: "sfzh" },
|
{ label: "身份证号", prop: "sfzh" ,width: 180},
|
||||||
{ label: "标签", prop: "yjbqmc" },
|
{ label: "标签", prop: "yjbqmc" },
|
||||||
{ label: "接收单位", prop: "ssbm" },
|
{ label: "接收单位", prop: "ssbm" },
|
||||||
{ label: "活动频次", prop: "sfcs" },
|
{ label: "活动频次", prop: "sfcs" },
|
||||||
@ -144,10 +142,10 @@ const pageData = reactive({
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let str = getItem('deptId') ? getItem('deptId')[0].deptLevel : ''
|
let str = getItem('deptId') ? getItem('deptId')[0].deptLevel : ''
|
||||||
permission_sfqs.value = str.startsWith('2'||'3') ? false : true;
|
permission_sfqs.value = str.startsWith('2' || '3') ? false : true;
|
||||||
let rols = getItem('roleList') ? getItem('roleList'):[]
|
let rols = getItem('roleList') ? getItem('roleList') : []
|
||||||
let obj = rols.find(item => {
|
let obj = rols.find(item => {
|
||||||
return ['JS_666666','JS_777777','JS_888888'].includes(item.roleCode)
|
return ['JS_666666', 'JS_777777', 'JS_888888'].includes(item.roleCode)
|
||||||
})
|
})
|
||||||
roleCode.value = obj ? true : false;
|
roleCode.value = obj ? true : false;
|
||||||
|
|
||||||
@ -158,7 +156,7 @@ onMounted(() => {
|
|||||||
|
|
||||||
|
|
||||||
const onSearch = (val) => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = { ...queryFrom.value,...val };
|
queryFrom.value = { ...queryFrom.value, ...val };
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
getList();
|
getList();
|
||||||
};
|
};
|
||||||
@ -267,7 +265,7 @@ const handleQsFk = (val, type) => {
|
|||||||
const assessShow = ref(false)
|
const assessShow = ref(false)
|
||||||
const dataList = ref()
|
const dataList = ref()
|
||||||
const pushAssess = (val) => {
|
const pushAssess = (val) => {
|
||||||
return holographicProfileJump(val.yjlb,val) // 全息档案跳转
|
return holographicProfileJump(val.yjlb, val) // 全息档案跳转
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送指令
|
// 发送指令
|
||||||
@ -311,25 +309,25 @@ const openAddFrom = (row) => {
|
|||||||
// 选择系数
|
// 选择系数
|
||||||
const chooseJfShow = ref(false)
|
const chooseJfShow = ref(false)
|
||||||
const chooseJfBh = ref()
|
const chooseJfBh = ref()
|
||||||
const roleIds=ref()
|
const roleIds = ref()
|
||||||
const chooseJfFun = (val) => {
|
const chooseJfFun = (val) => {
|
||||||
chooseJfBh.value=val.id
|
chooseJfBh.value = val.id
|
||||||
yjzxyjzxSfyjSelectList(val.id).then(res => {
|
yjzxyjzxSfyjSelectList(val.id).then(res => {
|
||||||
roleIds.value=res.sjxspzList.map(item => item.xsid)
|
roleIds.value = res.sjxspzList.map(item => item.xsid)
|
||||||
chooseJfShow.value = true
|
chooseJfShow.value = true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const handleCzjy = (row) => {
|
const handleCzjy = (row) => {
|
||||||
czjyRef.value.init( row)
|
czjyRef.value.init(row)
|
||||||
}
|
}
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 280;
|
||||||
window.onresize = function() {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -364,17 +362,15 @@ const exportExl = () => {
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped >
|
<style scoped></style>
|
||||||
|
|
||||||
</style>
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.el-loading-mask {
|
.el-loading-mask {
|
||||||
background: rgba(0, 0, 0, 0.5) !important;
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
}
|
}
|
||||||
.tabBox_zdy{
|
|
||||||
|
.tabBox_zdy {
|
||||||
.el-table--fit {
|
.el-table--fit {
|
||||||
overflow: unset !important;
|
overflow: unset !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,16 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="区域布控预警">
|
|
||||||
<!-- <el-button>
|
|
||||||
<span style="vertical-align: middle">导出</span>
|
|
||||||
</el-button> -->
|
|
||||||
|
|
||||||
<el-button type="primary" @click="exportExl">导出</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox" >
|
<div ref="searchBox" class="mt10" >
|
||||||
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
<Searchs :searchArr="searchConfiger" @submit="onSearch" @reset="reset" :key="pageData.keyCount">
|
||||||
<template #jfd>
|
<template #jfd>
|
||||||
<div>
|
<div>
|
||||||
@ -21,6 +12,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</Searchs>
|
</Searchs>
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" @click="exportExl" size="small">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -311,7 +307,7 @@ const chooseJfFun = (val) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 270;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,17 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="积分排名">
|
|
||||||
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Searchs :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
|
<Searchs :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
|
||||||
</Searchs>
|
</Searchs>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
|
<div class="tabBox heightBox" >
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<template #sfcs="{ row }">
|
<template #sfcs="{ row }">
|
||||||
@ -239,7 +234,7 @@ const getRowClassName = (row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - (searchBox.value?.offsetHeight || 0) - 250;
|
pageData.tableHeight = window.innerHeight - (searchBox.value?.offsetHeight || 0) - 200;
|
||||||
window.onresize = function() {
|
window.onresize = function() {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="七类重点人员" />
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
|
||||||
<template #age="{ row }">
|
<template #age="{ row }">
|
||||||
<div class="ageBox">
|
<div class="ageBox">
|
||||||
@ -16,7 +14,7 @@
|
|||||||
</Search>
|
</Search>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<template #czzt="{ row }">
|
<template #czzt="{ row }">
|
||||||
@ -56,6 +54,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import ZpForm from "./zpForm.vue";
|
import ZpForm from "./zpForm.vue";
|
||||||
|
|
||||||
import { IdCard } from '@/utils/validate.js'
|
import { IdCard } from '@/utils/validate.js'
|
||||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
@ -170,7 +169,7 @@ const failWarning = (val) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 240;
|
||||||
window.onresize = function () { tabHeightFn(); };
|
window.onresize = function () { tabHeightFn(); };
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -1,10 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="报错" />
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
|
||||||
<template #age="{ row }">
|
<template #age="{ row }">
|
||||||
<div class="ageBox">
|
<div class="ageBox">
|
||||||
@ -16,7 +13,7 @@
|
|||||||
</Search>
|
</Search>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<template #czzt="{ row }">
|
<template #czzt="{ row }">
|
||||||
@ -156,7 +153,7 @@ const pushAssess = (val) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function () { tabHeightFn(); };
|
window.onresize = function () { tabHeightFn(); };
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<div class="tabBox tabBox_zdy" :style="{ height: maxHeight + 130 + 'px' }">
|
<div class="tabBox tabBox_zdy" :style="{ height: maxHeight + 130 + 'px' }">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="maxHeight + 'px'"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="maxHeight + 'px'"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||||
:expand="true" @chooseData="handleChooseData">
|
:expand="true" @chooseData="handleChooseData" :rowClassName="getRowClassName">
|
||||||
<template #expand="{ props }">
|
<template #expand="{ props }">
|
||||||
<div>
|
<div>
|
||||||
<Items :row="props" :dict="dict" />
|
<Items :row="props" :dict="dict" />
|
||||||
@ -53,6 +53,7 @@
|
|||||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02' && permission_sfqs">反馈</el-link>
|
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02' && permission_sfqs">反馈</el-link>
|
||||||
<!-- <el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link> -->
|
<!-- <el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link> -->
|
||||||
<el-link type="primary" @click="openAddFrom(row)">详情</el-link>
|
<el-link type="primary" @click="openAddFrom(row)">详情</el-link>
|
||||||
|
<el-link type="primary" @click="pushWarning(row)">指派</el-link>
|
||||||
</template>
|
</template>
|
||||||
<!-- <el-button type="success" @click="showFeedback(item, '签收')" v-if="item.czzt == '01'">签收</el-button>
|
<!-- <el-button type="success" @click="showFeedback(item, '签收')" v-if="item.czzt == '01'">签收</el-button>
|
||||||
<el-button type="success" @click="showFeedback(item, '反馈')" v-if="item.czzt == '02'">反馈</el-button>
|
<el-button type="success" @click="showFeedback(item, '反馈')" v-if="item.czzt == '02'">反馈</el-button>
|
||||||
@ -74,11 +75,13 @@
|
|||||||
<!-- <AddFrom ref="addFrom" /> -->
|
<!-- <AddFrom ref="addFrom" /> -->
|
||||||
<!-- 处置建议 -->
|
<!-- 处置建议 -->
|
||||||
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
||||||
|
<ZpForm v-model="warningShow" :dataList="dataList"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import Czjy from './czjy.vue'
|
import Czjy from './czjy.vue'
|
||||||
import { getItem, setItem } from '@/utils/storage'
|
import { getItem, setItem } from '@/utils/storage'
|
||||||
|
import ZpForm from "@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarning/zpForm.vue";
|
||||||
import Items from '../item/items.vue'
|
import Items from '../item/items.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";
|
||||||
@ -133,7 +136,7 @@ const pageData = reactive({
|
|||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
pageCurrent: 1
|
pageCurrent: 1
|
||||||
}, //分页
|
}, //分页
|
||||||
controlsWidth: 200, //操作栏宽度
|
controlsWidth: 250, //操作栏宽度
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "预警图片", prop: "yjTp", showSolt: true, width: 100 },
|
{ label: "预警图片", prop: "yjTp", showSolt: true, width: 100 },
|
||||||
{ label: "处置状态", prop: "czzt", showSolt: true },
|
{ label: "处置状态", prop: "czzt", showSolt: true },
|
||||||
@ -144,7 +147,7 @@ const pageData = reactive({
|
|||||||
{ label: "身份证", prop: "yjRysfzh", showOverflowTooltip: true, width: 200 },
|
{ label: "身份证", prop: "yjRysfzh", showOverflowTooltip: true, width: 200 },
|
||||||
// { label: "预警级别", prop: "yjJb", showSolt: true },
|
// { label: "预警级别", prop: "yjJb", showSolt: true },
|
||||||
{ label: "相似度", prop: "xsd", showSolt: true },
|
{ label: "相似度", prop: "xsd", showSolt: true },
|
||||||
{ label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true },
|
// { label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true },
|
||||||
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
|
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@ -268,7 +271,13 @@ const getRowClassName = (row) => {
|
|||||||
if (level === '04' || level.includes('蓝')) return 'warning-level-04';
|
if (level === '04' || level.includes('蓝')) return 'warning-level-04';
|
||||||
return '';
|
return '';
|
||||||
};
|
};
|
||||||
|
//
|
||||||
|
|
||||||
|
const warningShow = ref(false)
|
||||||
|
const pushWarning = (val) => {
|
||||||
|
warningShow.value = true
|
||||||
|
dataList.value = val;
|
||||||
|
}
|
||||||
// // 表格高度计算
|
// // 表格高度计算
|
||||||
// const tabHeightFn = () => {
|
// const tabHeightFn = () => {
|
||||||
// pageData.tableHeight = window.innerHeight - 430;
|
// pageData.tableHeight = window.innerHeight - 430;
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="人像预警">
|
|
||||||
|
|
||||||
<el-button type="primary" @click="exportExl">导出</el-button>
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox" class="searchBox" >
|
<div ref="searchBox" class="searchBoxlive mt10">
|
||||||
|
<div class="filter-title">
|
||||||
|
<span class="filter-label"><el-icon>
|
||||||
|
<Filter />
|
||||||
|
</el-icon>筛选条件</span>
|
||||||
|
</div>
|
||||||
<el-form :model="listQuery" label-width="auto" :inline="true" ref="searchArr">
|
<el-form :model="listQuery" label-width="auto" :inline="true" ref="searchArr">
|
||||||
<el-form-item label="布控人员" prop="yjRyxm ">
|
<el-form-item label="布控人员" prop="yjRyxm ">
|
||||||
<el-select clearable v-model="listQuery.yjRyxm" filterable remote reserve-keyword placeholder="请输入布控人员"
|
<el-select clearable v-model="listQuery.yjRyxm" filterable remote reserve-keyword placeholder="请输入布控人员"
|
||||||
@ -37,11 +37,16 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" size="small" @click="exportExl">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px', paddingTop: '10px' }">
|
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px', paddingTop: '10px' }">
|
||||||
<!-- <div style="padding:0 10px;"> <el-button type="primary" @click="exportExcel">导出</el-button></div> -->
|
<!-- <div style="padding:0 10px;"> <el-button type="primary" @click="exportExcel">导出</el-button></div> -->
|
||||||
<LocalWarning :maxHeight="pageData.tableHeight - 160"
|
<LocalWarning :maxHeight="pageData.tableHeight - 160" ref="localWarningRef"
|
||||||
ref="localWarningRef" :dict="{ D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLYXT,D_BZ_YJLY }" excelTitle="人像预警" />
|
:dict="{ D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLYXT, D_BZ_YJLY }" excelTitle="人像预警" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog v-model="showDc" title="导出预警" width="80%">
|
<el-dialog v-model="showDc" title="导出预警" width="80%">
|
||||||
@ -64,7 +69,7 @@
|
|||||||
<template #nl="{ row }">
|
<template #nl="{ row }">
|
||||||
{{ IdCard(row.yjRysfzh, 3) }}
|
{{ IdCard(row.yjRysfzh, 3) }}
|
||||||
</template>
|
</template>
|
||||||
<template #sxd="{ row }"> {{ row.sxd }}% </template>
|
<template #sxd="{ row }"> {{ row.sxd }}% </template>
|
||||||
<template #yjLylx="{ row }">
|
<template #yjLylx="{ row }">
|
||||||
<DictTag v-model:value="row.yjLylx" :options="D_BZ_YJLY" />
|
<DictTag v-model:value="row.yjLylx" :options="D_BZ_YJLY" />
|
||||||
</template>
|
</template>
|
||||||
@ -108,7 +113,7 @@ import * as XLSX from "xlsx";
|
|||||||
|
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLYXT,D_BZ_YJLY } = proxy.$dict("D_GSXT_YJXX_CZZT", "D_BZ_YJJB", "D_BZ_YJLYXT","D_BZ_YJLY")
|
const { D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLYXT, D_BZ_YJLY } = proxy.$dict("D_GSXT_YJXX_CZZT", "D_BZ_YJJB", "D_BZ_YJLYXT", "D_BZ_YJLY")
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
const shortcuts = [
|
const shortcuts = [
|
||||||
{
|
{
|
||||||
@ -161,12 +166,12 @@ const pageData = reactive({
|
|||||||
controlsWidth: 160, //操作栏宽度
|
controlsWidth: 160, //操作栏宽度
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "相似度", prop: "sxd", showSolt: true },
|
{ label: "相似度", prop: "sxd", showSolt: true },
|
||||||
{ label: "预警图片11", prop: "yjTp", showSolt: true },
|
{ label: "预警图片", prop: "yjTp", showSolt: true },
|
||||||
{ label: "处置状态", prop: "czzt", showSolt: true },
|
{ label: "处置状态", prop: "czzt", showSolt: true },
|
||||||
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true },
|
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true },
|
||||||
{ label: "姓名", prop: "yjRyxm" },
|
{ label: "姓名", prop: "yjRyxm" },
|
||||||
{ label: "年龄", prop: "nl", showSolt: true },
|
{ label: "年龄", prop: "nl", showSolt: true },
|
||||||
{ label: "数据来源", prop: "yjLylx", showOverflowTooltip: true,showSolt:D_BZ_YJLY },
|
{ label: "数据来源", prop: "yjLylx", showOverflowTooltip: true, showSolt: D_BZ_YJLY },
|
||||||
{ label: "性别", prop: "xb", showSolt: true },
|
{ label: "性别", prop: "xb", showSolt: true },
|
||||||
{ label: "预警级别", prop: "yjJb", showSolt: true },
|
{ label: "预警级别", prop: "yjJb", showSolt: true },
|
||||||
{ label: "预警地点", prop: "yjDz", showOverflowTooltip: true },
|
{ label: "预警地点", prop: "yjDz", showOverflowTooltip: true },
|
||||||
@ -234,8 +239,8 @@ const resetForm = (formEl) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - (searchBox.value?.offsetHeight || 0) - 250;
|
pageData.tableHeight = window.innerHeight - (searchBox.value?.offsetHeight || 0) - 220;
|
||||||
window.onresize = function() {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -350,6 +355,30 @@ const exportExl = () => {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.filter-title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
width: 100%;
|
||||||
|
background: linear-gradient(to right, #9ed7ff, #e6f0f8);
|
||||||
|
padding: 5px 15px;
|
||||||
|
|
||||||
|
.filter-label {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #000;
|
||||||
|
margin-right: 10px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-line {
|
||||||
|
flex: 1;
|
||||||
|
height: 1px;
|
||||||
|
background-color: #ccc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
::v-deep .el-table--fit {
|
::v-deep .el-table--fit {
|
||||||
height: calc(100% - 50px) !important;
|
height: calc(100% - 50px) !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<div class="tabBox tabBox_zdy" :style="{ height: maxHeight + 130 + 'px' }">
|
<div class="tabBox tabBox_zdy" :style="{ height: maxHeight + 130 + 'px' }">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="maxHeight + 'px'"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="maxHeight + 'px'"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||||
:expand="true" @chooseData="handleChooseData">
|
:expand="true" @chooseData="handleChooseData" :rowClassName="getRowClassName">
|
||||||
<template #expand="{ props }">
|
<template #expand="{ props }">
|
||||||
<div class="expand-content" style="max-width: 100%">
|
<div class="expand-content" style="max-width: 100%">
|
||||||
<Items :row="props" :dict="dict" />
|
<Items :row="props" :dict="dict" />
|
||||||
@ -54,6 +54,7 @@
|
|||||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02' && permission_sfqs">反馈</el-link>
|
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02' && permission_sfqs">反馈</el-link>
|
||||||
<!-- <el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link> -->
|
<!-- <el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link> -->
|
||||||
<el-link type="primary" @click="openAddFrom(row)">详情</el-link>
|
<el-link type="primary" @click="openAddFrom(row)">详情</el-link>
|
||||||
|
<el-link type="primary" @click="pushWarning(row)">指派</el-link>
|
||||||
</template>
|
</template>
|
||||||
<!-- <el-button type="success" @click="showFeedback(item, '签收')" v-if="item.czzt == '01'">签收</el-button>
|
<!-- <el-button type="success" @click="showFeedback(item, '签收')" v-if="item.czzt == '01'">签收</el-button>
|
||||||
<el-button type="success" @click="showFeedback(item, '反馈')" v-if="item.czzt == '02'">反馈</el-button>
|
<el-button type="success" @click="showFeedback(item, '反馈')" v-if="item.czzt == '02'">反馈</el-button>
|
||||||
@ -75,6 +76,7 @@
|
|||||||
<!-- <AddFrom ref="addFrom" /> -->
|
<!-- <AddFrom ref="addFrom" /> -->
|
||||||
<!-- 处置建议 -->
|
<!-- 处置建议 -->
|
||||||
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
|
||||||
|
<ZpForm v-model="warningShow" :dataList="dataList"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -89,6 +91,7 @@ import HolographicArchive from '@/views/home/components/holographicArchive.vue'
|
|||||||
import Information from "@/views/home/model/information.vue";
|
import Information from "@/views/home/model/information.vue";
|
||||||
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
||||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||||
|
import ZpForm from "@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarning/zpForm.vue";
|
||||||
import emitter from "@/utils/eventBus.js";
|
import emitter from "@/utils/eventBus.js";
|
||||||
import { holographicProfileJump } from "@/utils/tools.js"
|
import { holographicProfileJump } from "@/utils/tools.js"
|
||||||
import { exportExlByObj } from "@/utils/exportExcel.js"
|
import { exportExlByObj } from "@/utils/exportExcel.js"
|
||||||
@ -127,7 +130,7 @@ const pageData = reactive({
|
|||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
pageCurrent: 1
|
pageCurrent: 1
|
||||||
}, //分页
|
}, //分页
|
||||||
controlsWidth: 200, //操作栏宽度
|
controlsWidth: 250, //操作栏宽度
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "状态", prop: "czzt", showSolt: true },
|
{ label: "状态", prop: "czzt", showSolt: true },
|
||||||
{ label: "预警图片", prop: "yjTp", showSolt: true, width: 100 },
|
{ label: "预警图片", prop: "yjTp", showSolt: true, width: 100 },
|
||||||
@ -266,7 +269,12 @@ const getRowClassName = (row) => {
|
|||||||
// tabHeightFn();
|
// tabHeightFn();
|
||||||
// };
|
// };
|
||||||
// };
|
// };
|
||||||
|
// 指派
|
||||||
|
const warningShow = ref(false)
|
||||||
|
const pushWarning = (val) => {
|
||||||
|
warningShow.value = true;
|
||||||
|
dataList.value = val;
|
||||||
|
}
|
||||||
|
|
||||||
const handleChooseData = (val) => {
|
const handleChooseData = (val) => {
|
||||||
selectRows.value = val
|
selectRows.value = val
|
||||||
|
|||||||
@ -1,15 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<div ref="searchBox" class="searchBoxlive mt10">
|
||||||
|
<div class="filter-title">
|
||||||
<PageTitle title="车辆预警">
|
<span class="filter-label"><el-icon>
|
||||||
|
<Filter />
|
||||||
<el-button type="primary" @click="exportExl">导出</el-button>
|
</el-icon>筛选条件</span>
|
||||||
</PageTitle>
|
</div>
|
||||||
</div>
|
<el-form :model="listQuery" label-width="auto" :inline="true" ref="searchArr" style="margin-left: 10px;">
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox" class="searchBox">
|
|
||||||
<el-form :model="listQuery" label-width="auto" :inline="true" ref="searchArr">
|
|
||||||
<el-form-item label="时间筛选">
|
<el-form-item label="时间筛选">
|
||||||
<el-date-picker v-model="listQuery.time" type="datetimerange" :shortcuts="shortcuts" range-separator="To"
|
<el-date-picker v-model="listQuery.time" type="datetimerange" :shortcuts="shortcuts" range-separator="To"
|
||||||
start-placeholder="开始时间" end-placeholder="结束时间" value-format="YYYY-MM-DD HH:mm:ss"
|
start-placeholder="开始时间" end-placeholder="结束时间" value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
@ -32,11 +29,18 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
|
||||||
|
<template #left>
|
||||||
|
<el-button type="primary" @click="exportExl" size="small">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</PageTitle>
|
||||||
|
<!-- 搜索 -->
|
||||||
|
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px', paddingTop: '10px' }">
|
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px', paddingTop: '10px' }">
|
||||||
<!-- <div style="padding:0 10px;"> <el-button type="primary" @click="exportExcel">导出</el-button></div> -->
|
<!-- <div style="padding:0 10px;"> <el-button type="primary" @click="exportExcel">导出</el-button></div> -->
|
||||||
<LocalWarning :maxHeight=" pageData.tableHeight - 160"
|
<LocalWarning :maxHeight="pageData.tableHeight - 160" ref="localWarningRef"
|
||||||
ref="localWarningRef" :dict="{ D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLYXT ,D_BZ_YJLY}" excelTitle="车辆预警" />
|
:dict="{ D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLYXT, D_BZ_YJLY }" excelTitle="车辆预警" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog v-model="showDc" title="导出预警" width="80%">
|
<el-dialog v-model="showDc" title="导出预警" width="80%">
|
||||||
@ -60,7 +64,7 @@
|
|||||||
{{ IdCard(row.yjRysfzh, 3) }}
|
{{ IdCard(row.yjRysfzh, 3) }}
|
||||||
</template>
|
</template>
|
||||||
<template #yjLylx="{ row }">
|
<template #yjLylx="{ row }">
|
||||||
<DictTag v-model:value="row.yjLylx" :options="D_BZ_YJLY" />
|
<DictTag v-model:value="row.yjLylx" :options="D_BZ_YJLY" />
|
||||||
</template>
|
</template>
|
||||||
<template #xb="{ row }">
|
<template #xb="{ row }">
|
||||||
{{ IdCard(row.yjRysfzh, 2) }}
|
{{ IdCard(row.yjRysfzh, 2) }}
|
||||||
@ -158,7 +162,7 @@ const pageData = reactive({
|
|||||||
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true },
|
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true },
|
||||||
{ label: "姓名", prop: "yjRyxm" },
|
{ label: "姓名", prop: "yjRyxm" },
|
||||||
{ label: "年龄", prop: "nl", showSolt: true },
|
{ label: "年龄", prop: "nl", showSolt: true },
|
||||||
{ label: "数据来源", prop: "yjLylx", showOverflowTooltip: true , showSolt: true },
|
{ label: "数据来源", prop: "yjLylx", showOverflowTooltip: true, showSolt: true },
|
||||||
{ label: "性别", prop: "xb", showSolt: true },
|
{ label: "性别", prop: "xb", showSolt: true },
|
||||||
{ label: "预警级别", prop: "yjJb", showSolt: true },
|
{ label: "预警级别", prop: "yjJb", showSolt: true },
|
||||||
{ label: "相似度", prop: "xsd", showSolt: true },
|
{ label: "相似度", prop: "xsd", showSolt: true },
|
||||||
@ -208,8 +212,8 @@ const resetForm = (formEl) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - (searchBox.value?.offsetHeight || 0) - 250;
|
pageData.tableHeight = window.innerHeight - (searchBox.value?.offsetHeight || 0) - 270;
|
||||||
window.onresize = function() {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -328,6 +332,30 @@ const exportExl = () => {
|
|||||||
::v-deep .el-table--fit {
|
::v-deep .el-table--fit {
|
||||||
height: calc(100% - 50px) !important;
|
height: calc(100% - 50px) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.filter-title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
width: 100%;
|
||||||
|
background: linear-gradient(to right, #9ed7ff, #e6f0f8);
|
||||||
|
padding: 5px 15px;
|
||||||
|
|
||||||
|
.filter-label {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #000;
|
||||||
|
margin-right: 10px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-line {
|
||||||
|
flex: 1;
|
||||||
|
height: 1px;
|
||||||
|
background-color: #ccc;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<style>
|
<style>
|
||||||
.el-loading-mask {
|
.el-loading-mask {
|
||||||
|
|||||||
@ -2,19 +2,12 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox" class="mt10">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
</div>
|
</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 class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
|
|
||||||
@ -164,7 +157,7 @@ const addEdit = (type, row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function() {
|
window.onresize = function() {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,19 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<!-- <div class="titleBox">
|
||||||
<PageTitle title="警情管理">
|
<PageTitle title="警情管理">
|
||||||
<!-- <el-button type="primary" @click="addEdit('add', '')">
|
<el-button type="primary" @click="addEdit('add', '')">
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button> -->
|
</el-button>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
</div> -->
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<!-- <template #jjlx="{ row }">
|
<!-- <template #jjlx="{ row }">
|
||||||
@ -188,7 +188,7 @@ const handleYP = (type, row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,19 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox" class="mt10">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
</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>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox">
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<!-- <template #jjlx="{ row }">
|
<!-- <template #jjlx="{ row }">
|
||||||
@ -146,7 +138,7 @@ const addEdit = (type, row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight -200
|
||||||
window.onresize = function() {
|
window.onresize = function() {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,15 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox" class="mt10">
|
<div ref="searchBox" class="mt10 mb10">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
</div>
|
|
||||||
<div class="titleBox">
|
|
||||||
<PageTitle title="转会商列表">
|
|
||||||
</PageTitle>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox heightBox" >
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<!-- <template #jjlx="{ row }">
|
<!-- <template #jjlx="{ row }">
|
||||||
@ -146,7 +142,7 @@ const addEdit = (type, row) => {
|
|||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 200;
|
||||||
window.onresize = function() {
|
window.onresize = function() {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||||
<MyTable customClass="zdy_peo_table" :tableData="pageData.tableData" :tableColumn="pageData.tableColumn"
|
<MyTable customClass="zdy_peo_table" :tableData="pageData.tableData" :tableColumn="pageData.tableColumn"
|
||||||
:tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger"
|
:tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger"
|
||||||
:controlsWidth="pageData.controlsWidth">
|
:controlsWidth="pageData.controlsWidth" @handleCellClick="clickTag">
|
||||||
<template #qblx="{ row }">
|
<template #qblx="{ row }">
|
||||||
<DictTag :tag="false" :value="row.qblx" :options="D_GS_XS_LX" />
|
<DictTag :tag="false" :value="row.qblx" :options="D_GS_XS_LX" />
|
||||||
</template>
|
</template>
|
||||||
@ -30,12 +30,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<Xq v-model:modelValue="xqDialog" :dict="dict" :dataList="dataList" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
|
import Xq from "./xq.vue";
|
||||||
import { qbcjSelectPage } from "@/api/Intelligence.js";
|
import { qbcjSelectPage } from "@/api/Intelligence.js";
|
||||||
import {xxcjSelectPage,xxcjXxzsx} from '@/api/xxcj.js'
|
import {xxcjSelectPage,xxcjXxzsx} from '@/api/xxcj.js'
|
||||||
import { ref, reactive, getCurrentInstance, watch } from "vue";
|
import { ref, reactive, getCurrentInstance, watch } from "vue";
|
||||||
@ -67,7 +69,8 @@ const searchConfiger = ref([
|
|||||||
placeholder: "请选择上报来源",
|
placeholder: "请选择上报来源",
|
||||||
showType: "select",
|
showType: "select",
|
||||||
options: D_BZ_QBSBLY
|
options: D_BZ_QBSBLY
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
label: "上报时间",
|
label: "上报时间",
|
||||||
prop: "startTime",
|
prop: "startTime",
|
||||||
placeholder: "请选择时间",
|
placeholder: "请选择时间",
|
||||||
@ -99,10 +102,10 @@ const pageData = reactive({
|
|||||||
{ label: "上报人姓名", prop: "xssbr" },
|
{ label: "上报人姓名", prop: "xssbr" },
|
||||||
{ label: "情报编号", prop: "xsBh" },
|
{ label: "情报编号", prop: "xsBh" },
|
||||||
{ label: "情报标题", prop: "qbmc" },
|
{ label: "情报标题", prop: "qbmc" },
|
||||||
{ label: "情报类型", prop: "qblx", showSolt: true },
|
// { label: "情报类型", prop: "qblx", showSolt: true },
|
||||||
{ label: "情报来源", prop: "qbly", showSolt: true },
|
// { label: "情报来源", prop: "qbly", showSolt: true },
|
||||||
{ label: "情报上报时间", prop: "sxsbsj" },
|
{ label: "情报上报时间", prop: "sxsbsj" ,watch:'300'},
|
||||||
{ label: "指向地点", prop: "zxdz" },
|
// { label: "指向地点", prop: "zxdz" },
|
||||||
{ label: "情报内容", prop: "qbnr" },
|
{ label: "情报内容", prop: "qbnr" },
|
||||||
],
|
],
|
||||||
tableHeight: "50vh",
|
tableHeight: "50vh",
|
||||||
@ -150,6 +153,17 @@ const changeSize = (val) => {
|
|||||||
pageData.pageConfiger.pageSize = val;
|
pageData.pageConfiger.pageSize = val;
|
||||||
changePage()
|
changePage()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const xqDialog = ref(false)
|
||||||
|
const dataList = ref({})
|
||||||
|
const clickTag = (row) => {
|
||||||
|
if (row.column.property == 'qbmc' || row.column.property == 'xsBh') {
|
||||||
|
xqDialog.value = true;
|
||||||
|
dataList.value = row.row;
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|||||||
560
src/views/home/model/mesgSwitch/xq.vue
Normal file
560
src/views/home/model/mesgSwitch/xq.vue
Normal file
@ -0,0 +1,560 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog :model-value="modelValue" title="情报详情" width="70%" @close="closeDialog" destroy-on-close>
|
||||||
|
<div style="height: 60vh;overflow: auto; ">
|
||||||
|
<div class="form-container">
|
||||||
|
<div class="form-content">
|
||||||
|
<!-- <div class="form_cnt"> -->
|
||||||
|
<FormMessage :disabled="disabled" v-model="listQuery" :formList="formData" ref="elform" >
|
||||||
|
<template #jbxx>
|
||||||
|
<div>
|
||||||
|
<h3 class="tags-title">报送情况</h3>
|
||||||
|
<div style="display: flex;justify-content:space-between;width: 200%;">
|
||||||
|
<div>录入人:{{ userName }}</div>
|
||||||
|
<div>录入单位:{{ userInfo.deptName }}</div>
|
||||||
|
<div>本年度报送信息量:{{ tjcll.cnl || 0 }}</div>
|
||||||
|
<div>采纳量:{{ tjcll.sbsl || 0 }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #shzt>
|
||||||
|
<div v-if="disabled">
|
||||||
|
<h3 class="tags-title">审核状态</h3>
|
||||||
|
<div style="display: flex;justify-content:space-between;width: 200%;">
|
||||||
|
<div style="display: flex;">
|
||||||
|
市审核状态:
|
||||||
|
<DictTag v-model:value="listQuery.sldshzt" :options="dict.D_BZ_SSSHZT" :tag="false" />
|
||||||
|
</div>
|
||||||
|
<div style="display: flex;">
|
||||||
|
县审核状态:
|
||||||
|
<DictTag v-model:value="listQuery.xldshzt" :options="dict.D_BZ_SSSHZT" :tag="false" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
<!-- </div> -->
|
||||||
|
<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="D_BZ_LCZT" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</el-timeline-item>
|
||||||
|
</el-timeline>
|
||||||
|
<MOSTY.Empty :show="lcList.length == 0" :imgSize="100"></MOSTY.Empty>
|
||||||
|
</div>
|
||||||
|
</div></div>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="closeDialog">取消</el-button>
|
||||||
|
<el-button type="primary" @click="closeDialog">确认 </el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</el-dialog>
|
||||||
|
<pursueContent v-model="pursueShow" :dataList="dataVals" :title="processtitle" :updeteBool="true" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
|
||||||
|
import { xxcjAddEntity, xxcjUpdateEntity, xxcjSelectByid, xxcjSelectCzlcList, xxcjSelectListBc, xxcjDeletesBc, addEntity, xxcjTjcll, xxcjXxzhs } from "@/api/xxcj.js"
|
||||||
|
import { ref, reactive, getCurrentInstance, watch } from "vue";
|
||||||
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
import pursueContent from "@/views/backOfficeSystem/HumanIntelligence/components/pursueContent.vue";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import { getItem } from '@//utils/storage.js'
|
||||||
|
const router = useRouter()
|
||||||
|
const { proxy } = getCurrentInstance()
|
||||||
|
const { D_BZ_LCZT} = proxy.$dict("D_BZ_LCZT")
|
||||||
|
const props = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
dict: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}, dataList: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emit = defineEmits(['update:modelValue'])
|
||||||
|
const closeDialog = () => {
|
||||||
|
emit('update:modelValue', false)
|
||||||
|
}
|
||||||
|
//
|
||||||
|
|
||||||
|
const disabled = true
|
||||||
|
const listQuery = ref({})
|
||||||
|
const userInfo = ref({})
|
||||||
|
const userName = ref('')
|
||||||
|
const formData = ref([
|
||||||
|
{ label: "情报标题", prop: "qbmc", type: "input", width: '45%' },
|
||||||
|
{ label: "情报内容", prop: "qbnr", type: "textarea", width: '100%', rows: 10 },
|
||||||
|
{ label: "附件上传", prop: "fjdz", type: "upload", width: '100%', isImg: false },
|
||||||
|
{ label: "", prop: "jbxx", type: "slot", width: '100%', },
|
||||||
|
{ label: "", prop: "shzt", type: "slot", width: '100%' },
|
||||||
|
])
|
||||||
|
// 根据id查询详情
|
||||||
|
const getDataById = (id) => {
|
||||||
|
xxcjSelectByid({ id }).then((res) => {
|
||||||
|
listQuery.value = res;
|
||||||
|
listQuery.value.fjdz = res.fjdz ? res.fjdz?.split(",") : []
|
||||||
|
});
|
||||||
|
};
|
||||||
|
watch(() => props.modelValue, (newVal, oldVal) => {
|
||||||
|
if (newVal) {
|
||||||
|
userInfo.value = getItem('deptId') ? getItem('deptId')[0] : {}
|
||||||
|
userName.value = getItem('USERNAME')
|
||||||
|
getDataById(props.dataList.id)
|
||||||
|
getqbcjPldb(props.dataList.id)
|
||||||
|
getXxcjTjcll()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// 流程
|
||||||
|
const lcList = ref([])
|
||||||
|
const getqbcjPldb = (id) => {
|
||||||
|
xxcjSelectCzlcList({ qbid: id }).then(res => {
|
||||||
|
lcList.value = res || []
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 统计
|
||||||
|
const tjcll = ref({})
|
||||||
|
const getXxcjTjcll = () => {
|
||||||
|
xxcjTjcll({}).then(res => {
|
||||||
|
tjcll.value = res
|
||||||
|
}).catch(error => {
|
||||||
|
console.error('请求失败:', error)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
|
||||||
|
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||||
|
color: #0072ff;
|
||||||
|
background: rgba(0, 114, 255, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxlist {
|
||||||
|
width: 99%;
|
||||||
|
height: 225px;
|
||||||
|
margin-top: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .avatar-uploader {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list {
|
||||||
|
margin-left: 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list__item-name .el-icon {
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form_cnt {
|
||||||
|
// width: 75%;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.person {
|
||||||
|
padding-left: 20px;
|
||||||
|
width: 25%;
|
||||||
|
// height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 补充信息样式 */
|
||||||
|
.supplement-title {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
|
margin: 16px 0 10px 0;
|
||||||
|
padding-left: 5px;
|
||||||
|
border-left: 3px solid #24b6dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-list {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 8px 12px;
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
border: 1px solid #e4e7ed;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
margin-right: 10px;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-item:hover {
|
||||||
|
background-color: #ecf5ff;
|
||||||
|
border-color: #c6e2ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-content {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.supplement-actions {
|
||||||
|
display: flex;
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-icon {
|
||||||
|
// font-size: 24px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-icon {
|
||||||
|
color: #24b6dd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-icon:hover {
|
||||||
|
color: #409eff;
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.delete-icon {
|
||||||
|
color: #f56c6c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.delete-icon:hover {
|
||||||
|
color: #f78989;
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间线标题样式 */
|
||||||
|
.timeline-title {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #303133;
|
||||||
|
padding: 12px 16px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
border-bottom: 1px solid #ebeef5;
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间线样式优化 */
|
||||||
|
.el-timeline {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 处置流程卡片样式 */
|
||||||
|
.process-card {
|
||||||
|
border: none;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.08);
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
border-left: 3px solid #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-card:hover {
|
||||||
|
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.12);
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 卡片内部信息样式 */
|
||||||
|
.process-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.process-info:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-label {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #409EFF;
|
||||||
|
margin-right: 8px;
|
||||||
|
min-width: 65px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-value {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 1.6;
|
||||||
|
flex: 1;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间戳样式 */
|
||||||
|
.el-timeline-item__timestamp {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #909399;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间线节点样式 */
|
||||||
|
.el-timeline-item__node {
|
||||||
|
background-color: #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 容器类样式 */
|
||||||
|
.form-container {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-content {
|
||||||
|
// display: flex;
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-container {
|
||||||
|
border: 1px solid #ebeef5;
|
||||||
|
flex: 1;
|
||||||
|
margin: 0 10px;
|
||||||
|
height: 100vh;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 时间线宽度 */
|
||||||
|
.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>
|
||||||
@ -199,7 +199,7 @@ onUnmounted(() => {
|
|||||||
z-index: 10;
|
z-index: 10;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-left: 20px;
|
margin-left: 45%;
|
||||||
color: rgb(255, 146, 4);
|
color: rgb(255, 146, 4);
|
||||||
font-family: 'YSBTH';
|
font-family: 'YSBTH';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,12 +5,12 @@ function resolve(dir) {
|
|||||||
}
|
}
|
||||||
// http://47.108.232.77:9537/mosty-api/mosty-zhgj/docs.html
|
// http://47.108.232.77:9537/mosty-api/mosty-zhgj/docs.html
|
||||||
// const serverHost = "http://47.108.232.77:9537"//线上
|
// const serverHost = "http://47.108.232.77:9537"//线上
|
||||||
const serverHost = "http://192.168.2.206:8006"//线上
|
// const serverHost = "http://192.168.2.206:8006"//线上
|
||||||
// const serverHost = "http://192.168.191.75:8006"//周
|
// const serverHost = "http://192.168.191.75:8006"//周
|
||||||
// const serverHost = "http://192.168.212.75:8016"//周
|
// const serverHost = "http://192.168.212.75:8016"//周
|
||||||
// const serverHost = "http://192.168.1.98:8006"//毛毛
|
// const serverHost = "http://192.168.1.98:8006"//毛毛
|
||||||
// const serverHost = "http://192.168.193.75:8006"//线上
|
// const serverHost = "http://192.168.193.75:8006"//线上
|
||||||
// const serverHost = "http://47.108.232.77:9537"//线上
|
const serverHost = "http://47.108.232.77:9537"//线上
|
||||||
module.exports = {
|
module.exports = {
|
||||||
// configureWebpack: {
|
// configureWebpack: {
|
||||||
// resolve: {
|
// resolve: {
|
||||||
|
|||||||
Reference in New Issue
Block a user