Merge branch 'main' of http://61.139.16.27:26684/zy_oyj/sgxt_web
This commit is contained in:
@ -146,7 +146,16 @@ const form = ref({});
|
|||||||
const tableData = ref([]);
|
const tableData = ref([]);
|
||||||
const emits = defineEmits(["update:modelValue", "choosedUsers"]);
|
const emits = defineEmits(["update:modelValue", "choosedUsers"]);
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
handleFilter();
|
});
|
||||||
|
|
||||||
|
watch(()=>props.modelValue, (val) => {
|
||||||
|
if (val) {
|
||||||
|
nextTick(() => {
|
||||||
|
getListData();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
immediate: true
|
||||||
});
|
});
|
||||||
const closed = () => {
|
const closed = () => {
|
||||||
emits("update:modelValue", false);
|
emits("update:modelValue", false);
|
||||||
@ -246,7 +255,4 @@ const handleSelectionChange = (val) => {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-dialog__title {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
190
src/components/MyComponents/ChooseXs/index.vue
Normal file
190
src/components/MyComponents/ChooseXs/index.vue
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog :title="titleValue" width="1400px" :model-value="modelValue" append-to-body @close="closed">
|
||||||
|
<div>
|
||||||
|
<el-form :model="listQuery" class="mosty-from-wrap" :inline="true">
|
||||||
|
<el-form-item label="标签名称">
|
||||||
|
<el-input placeholder="请输入标签名称" v-model="listQuery.bqMc" clearable ></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="success" @click="handleFilter">查询</el-button>
|
||||||
|
<el-button type="info" @click="reset()"> 重置 </el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div class="tabBox" :class="props.Single ? 'tabBoxRadio' : ''" style="margin-top: 0px">
|
||||||
|
<el-table ref="multipleUserRef" :key="keyTabel" @selection-change="handleSelectionChange" :data="tableData" border :row-key="keyid" style="width: 100%" height="450">
|
||||||
|
<el-table-column type="selection" width="55" :reserve-selection="true"/>
|
||||||
|
<el-table-column prop="xsBh" align="center" label="线索编号"/>
|
||||||
|
<el-table-column prop="xsMc" align="center" label="线索名称"/>
|
||||||
|
<el-table-column prop="xlLx" align="center" label="线索类型">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.xlLx" :options="D_GS_XS_LX" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="qbLy" align="center" label="线索来源">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<DictTag :value="row.qbLy" :tag="false" :options="D_GS_XS_LY" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="xsNr" align="center" label="线索内容"/>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div class="fenye" :style="{ top: tableHeight + 'px' }">
|
||||||
|
<el-pagination
|
||||||
|
class="pagination"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@pageCurrent-change="handleCurrentChange"
|
||||||
|
:pageCurrent-page="listQuery.pageCurrent"
|
||||||
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
:page-size="listQuery.size"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="total"
|
||||||
|
></el-pagination>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="closed">取消</el-button>
|
||||||
|
<el-button type="primary" @click="onComfirm">确认</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
|
||||||
|
import { qcckGet} from "@/api/qcckApi.js";
|
||||||
|
import { defineProps, ref ,getCurrentInstance, watch} from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_GS_XS_LX,D_GS_XS_LY } = proxy.$dict("D_GS_XS_LX","D_GS_XS_LY"); //获取字典数据
|
||||||
|
const props = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default:false
|
||||||
|
},
|
||||||
|
titleValue: {
|
||||||
|
type: String,
|
||||||
|
default: "选择线索"
|
||||||
|
},
|
||||||
|
LeaderType: {
|
||||||
|
type: String,
|
||||||
|
default: ""
|
||||||
|
},
|
||||||
|
//是否单选
|
||||||
|
Single: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
roleIds: {
|
||||||
|
type: Array,
|
||||||
|
default: []
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const total = ref(0);
|
||||||
|
const listQuery = ref({
|
||||||
|
pageCurrent: 1,
|
||||||
|
pageSize: 20
|
||||||
|
});
|
||||||
|
|
||||||
|
const multipleUserRef = ref(null);
|
||||||
|
const multipleSelectionUser = ref([]);
|
||||||
|
const tableData = ref([]);
|
||||||
|
const emits = defineEmits(["update:modelValue", "choosed"]);
|
||||||
|
const keyTabel = ref(0)
|
||||||
|
const keyid = (row) => {
|
||||||
|
return row.id;
|
||||||
|
};
|
||||||
|
|
||||||
|
const closed = () => {
|
||||||
|
emits("update:modelValue", false);
|
||||||
|
};
|
||||||
|
const reset = () => {
|
||||||
|
listQuery.value = { pageCurrent: 1, pageSize: 20, };
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 为用户分配角色
|
||||||
|
const onComfirm = () => {
|
||||||
|
const userList = multipleSelectionUser.value;
|
||||||
|
let list = [];
|
||||||
|
let listId = [];
|
||||||
|
userList.forEach((val) => {
|
||||||
|
if (listId.indexOf(val.id) == -1) {
|
||||||
|
list.push(val);
|
||||||
|
listId.push(val.id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
emits("choosed", list);
|
||||||
|
closed();
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* pageSize 改变触发
|
||||||
|
*/
|
||||||
|
const handleSizeChange = (currentSize) => {
|
||||||
|
listQuery.value.pageSize = currentSize;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* 页码改变触发
|
||||||
|
*/
|
||||||
|
const handleCurrentChange = (currentPage) => {
|
||||||
|
listQuery.value.pageCurrent = currentPage;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
const getListData = () => {
|
||||||
|
keyTabel.value++
|
||||||
|
const params = {...listQuery.vlue}
|
||||||
|
qcckGet(params,'/mosty-gsxt/qbcj/selectPage').then(res=>{
|
||||||
|
tableData.value = res.records || [];
|
||||||
|
total.value = res.total;
|
||||||
|
multipleUser();
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
//列表回显
|
||||||
|
function multipleUser() {
|
||||||
|
tableData.value.forEach((item) => {
|
||||||
|
multipleUserRef.value.toggleRowSelection(item, false);
|
||||||
|
if (props.roleIds.some((id) => id == item.id)) {
|
||||||
|
multipleUserRef.value.toggleRowSelection(item, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleFilter = () => {
|
||||||
|
listQuery.value.pageCurrent = 1;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSelectionChange = (val) => {
|
||||||
|
if (props.Single) {
|
||||||
|
if (val.length > 1) {
|
||||||
|
let del_row = val.shift();
|
||||||
|
multipleUserRef.value.toggleRowSelection(del_row, false);
|
||||||
|
}
|
||||||
|
multipleSelectionUser.value = val;
|
||||||
|
} else {
|
||||||
|
multipleSelectionUser.value = val;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
watch(()=>props.modelValue,val=>{
|
||||||
|
if(val) handleFilter();
|
||||||
|
},{immediate:true})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "@/assets/css/layout.scss";
|
||||||
|
@import "@/assets/css/element-plus.scss";
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
.tabBoxRadio .el-checkbox__inner {
|
||||||
|
border-radius: 50% !important;
|
||||||
|
}
|
||||||
|
.tabBoxRadio .el-table__header-wrapper .el-checkbox {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
@ -125,20 +125,11 @@ const nodeClick = (node) => {
|
|||||||
}else{
|
}else{
|
||||||
emits("update:modelValue", node.orgCode);
|
emits("update:modelValue", node.orgCode);
|
||||||
}
|
}
|
||||||
|
emits("change", node);
|
||||||
};
|
};
|
||||||
|
|
||||||
const emits = defineEmits(["update:modelValue"]);
|
const emits = defineEmits(["update:modelValue",'change']);
|
||||||
const handleChange = (e) => {
|
|
||||||
if (props.multiple === true) {
|
|
||||||
const data = e.map((item) => {
|
|
||||||
return item[item.length - 1];
|
|
||||||
});
|
|
||||||
emits("update:modelValue", data);
|
|
||||||
} else {
|
|
||||||
const data = e[0];
|
|
||||||
emits("update:modelValue", data);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -313,7 +313,7 @@ const createScroll = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 触底加载
|
// 滚动-触底加载
|
||||||
const loadTable = () => {
|
const loadTable = () => {
|
||||||
emit("changePage",props.tabelModel);
|
emit("changePage",props.tabelModel);
|
||||||
};
|
};
|
||||||
|
@ -8,13 +8,12 @@
|
|||||||
label-position="right"
|
label-position="right"
|
||||||
>
|
>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:class="myClass"
|
v-for="(item,idx) in props.formList"
|
||||||
v-for="item in props.formList"
|
|
||||||
:style="item.width && { width: item.width }"
|
:style="item.width && { width: item.width }"
|
||||||
:prop="item.prop"
|
:prop="item.prop"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:label-width="item.labelWidth"
|
:label-width="item.labelWidth"
|
||||||
:key="item"
|
:key="idx"
|
||||||
>
|
>
|
||||||
<!-- input表单 input-->
|
<!-- input表单 input-->
|
||||||
<MOSTY.Other
|
<MOSTY.Other
|
||||||
|
@ -42,6 +42,17 @@
|
|||||||
:disabledDate="disabledDate"
|
:disabledDate="disabledDate"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
/>
|
/>
|
||||||
|
<el-date-picker
|
||||||
|
v-else-if="item.showType === 'datetimerange'"
|
||||||
|
v-model="searchObj[item.prop]"
|
||||||
|
type="datetimerange"
|
||||||
|
unlink-panels
|
||||||
|
:range-separator="item.rangeSeparator || '至'"
|
||||||
|
:start-placeholder="item.startPlaceholder || '开始日期'"
|
||||||
|
:end-placeholder="item.endPlaceholder || '结束日期'"
|
||||||
|
:shortcuts="item.shortcuts"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
/>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-else-if="item.showType === 'date'"
|
v-else-if="item.showType === 'date'"
|
||||||
v-model="searchObj[item.prop]"
|
v-model="searchObj[item.prop]"
|
||||||
@ -583,4 +594,8 @@ watchEffect(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::v-deep .el-date-editor .el-range-separator{
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -377,7 +377,16 @@ export const publicRoutes = [
|
|||||||
title: "社会信息人员建设管理",
|
title: "社会信息人员建设管理",
|
||||||
icon: "article"
|
icon: "article"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/JobAppraisal",
|
||||||
|
name: "JobAppraisal",
|
||||||
|
component: () => import("@/views/backOfficeSystem/HumanIntelligence/JobAppraisal/index"),
|
||||||
|
meta: {
|
||||||
|
title: "社会员工工作信息考核",
|
||||||
|
icon: "article"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -432,7 +441,8 @@ export const publicRoutes = [
|
|||||||
title: "重点人员预警模型",
|
title: "重点人员预警模型",
|
||||||
icon: "article"
|
icon: "article"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -101,7 +101,7 @@ export default {
|
|||||||
this.commit("user/setUserName", data.userName);
|
this.commit("user/setUserName", data.userName);
|
||||||
setItem('isOatuh', 0)
|
setItem('isOatuh', 0)
|
||||||
setItem("USERNAME", data.userName);
|
setItem("USERNAME", data.userName);
|
||||||
setItem("roleList", data.roleList);
|
setItem("roleList", data.sysRole ? data.sysRole : []);
|
||||||
setItem("SFRH", data.sfrh);
|
setItem("SFRH", data.sfrh);
|
||||||
setItem("USERID", data.userId);
|
setItem("USERID", data.userId);
|
||||||
setItem("PermissionsInfo", data.permissionsInfo);
|
setItem("PermissionsInfo", data.permissionsInfo);
|
||||||
|
@ -64,6 +64,45 @@ export function timeValidate(date, type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export function timeSlotChange(val) {
|
||||||
|
let startTime, endTime;
|
||||||
|
let now = new Date(); //当前日期
|
||||||
|
let nowDayOfWeek = now.getDay(); //今天本周的第几天
|
||||||
|
let nowDay = now.getDate(); //当前日
|
||||||
|
let nowMonth = now.getMonth(); //当前月
|
||||||
|
let nowYear = now.getFullYear(); //当前年
|
||||||
|
let jd = Math.ceil((nowMonth + 1) / 3)
|
||||||
|
switch (val) {
|
||||||
|
case '天':
|
||||||
|
case '日':
|
||||||
|
startTime = timeValidate(new Date(), 'ymd')
|
||||||
|
endTime = timeValidate(new Date(), 'ymd')
|
||||||
|
break;
|
||||||
|
case "本周":
|
||||||
|
case "周":
|
||||||
|
startTime = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
|
||||||
|
endTime = new Date(nowYear, nowMonth, nowDay + 6 - nowDayOfWeek)
|
||||||
|
break;
|
||||||
|
case "本月":
|
||||||
|
case "月":
|
||||||
|
startTime = new Date(nowYear, nowMonth, 1)
|
||||||
|
endTime = new Date(nowYear, nowMonth + 1, 0)
|
||||||
|
break;
|
||||||
|
case "本季度":
|
||||||
|
case "季度":
|
||||||
|
startTime = new Date(nowYear, (jd - 1) * 3, 1)
|
||||||
|
endTime = new Date(nowYear, jd * 3, 0)
|
||||||
|
break
|
||||||
|
case "本年":
|
||||||
|
case "年":
|
||||||
|
startTime = new Date(nowYear, 0, 1)
|
||||||
|
endTime = new Date(nowYear, 11, 31)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return [timeValidate(startTime, 'ymd'), timeValidate(endTime, 'ymd')]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 获取当前近多少天 7后7天 -7 前五天
|
// 获取当前近多少天 7后7天 -7 前五天
|
||||||
export function getRecentDay(n) {
|
export function getRecentDay(n) {
|
||||||
var currentDate = new Date();
|
var currentDate = new Date();
|
||||||
|
@ -5,50 +5,38 @@
|
|||||||
<span class="title">重点人信息统计</span>
|
<span class="title">重点人信息统计</span>
|
||||||
<span :class="active == it ? 'active'+`${idx}`:''" @click="changeDate(it)" class="tabsBtn pointer" v-for="(it,idx) in btns" :key="it">{{ it }}</span>
|
<span :class="active == it ? 'active'+`${idx}`:''" @click="changeDate(it)" class="tabsBtn pointer" v-for="(it,idx) in btns" :key="it">{{ it }}</span>
|
||||||
</div>
|
</div>
|
||||||
<span style="color:#00B7FF;" class="f12 pointer">查看更多 》</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="asideCnt">
|
<div class="asideCnt">
|
||||||
<div class="seachBox flex">
|
<div class="seachBox flex">
|
||||||
<!-- 搜索 -->
|
<MOSTY.Other style="flex:1" v-model="keywords" clearable placeholder="输入关键字" />
|
||||||
<MOSTY.Select v-model="listQuery.bqm" style="width: 120px;margin-right:10px" :dictEnum="search.xd" clearable placeholder="选择标签" />
|
<el-button type="primary" @click="handleSearch">搜索</el-button>
|
||||||
<MOSTY.Other v-model="listQuery.nr" clearable placeholder="输入内容" />
|
|
||||||
<el-button type="primary">搜索</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
<MyTable @changePage="changePage" customClass="zdy_peo_table" :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" >
|
<MyTable @changePage="changePage" customClass="zdy_peo_table" :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" >
|
||||||
|
<template #qtFxdj="{row}">
|
||||||
|
<DictTag :tag="false" :value="row.qtFxdj" :options="D_GS_ZDQT_FXDJ"/>
|
||||||
|
</template>
|
||||||
|
<template #qtZt="{row}">
|
||||||
|
<DictTag :tag="false" :value="row.qtZt" :options="D_GS_ZDQT_ZT"/>
|
||||||
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { qcckGet } from "@/api/qcckApi.js";
|
||||||
import * as MOSTY from "@/components/MyComponents/index";
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
import MyTable from "@/components/aboutTable/DarkTable.vue";
|
import MyTable from "@/components/aboutTable/DarkTable.vue";
|
||||||
import { reactive, ref,onMounted } from "vue";
|
import { reactive, ref,onMounted,getCurrentInstance } from "vue";
|
||||||
const btns = ref(['重点人','重点群体'])
|
const btns = ref(['重点人','重点群体'])
|
||||||
const active = ref('重点人');
|
const active = ref('重点人');
|
||||||
|
const keywords = ref(''); // 搜索关键字
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_GS_ZDQT_ZT,D_BZ_RYBQ,D_GS_ZDQT_FXDJ } = proxy.$dict('D_GS_ZDQT_ZT','D_BZ_RYBQ','D_GS_ZDQT_FXDJ') //获取字典数据
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
tableData: [
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
{ ryXm: "王五", rySfzh: "330102199505057890", bq: "吸毒人员" },
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
{ ryXm: "王五", rySfzh: "330102199505057890", bq: "吸毒人员" },
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
{ xm: "王五", sfzh: "330102199505057890", bq: "吸毒人员" },
|
|
||||||
|
|
||||||
],
|
],
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
@ -64,35 +52,82 @@ const pageData = reactive({
|
|||||||
pageNum: 1
|
pageNum: 1
|
||||||
}, //分页
|
}, //分页
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "姓名", prop: "xm", showOverflowTooltip: true },
|
{ label: "姓名", prop: "ryXm", showOverflowTooltip: true },
|
||||||
{ label: "身份证号码", prop: "sfzh",showOverflowTooltip: true },
|
{ label: "身份证号码", prop: "rySfzh",showOverflowTooltip: true },
|
||||||
{ label: "标签", prop: "bq",showOverflowTooltip: true },
|
{ label: "标签", prop: "bq",showOverflowTooltip: true },
|
||||||
|
{ label: "所属线索", prop: "xsmc",showOverflowTooltip: true },
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
const search = reactive({
|
|
||||||
xd: [
|
|
||||||
{ label: "吸毒", value: "10" },
|
|
||||||
{ label: "贩毒", value: "20" }
|
|
||||||
],
|
|
||||||
});
|
|
||||||
const listQuery = ref([])
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
window.onresize = function () {
|
getList();
|
||||||
tabHeightFn();
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 切换标签
|
||||||
const changeDate = (val) =>{
|
const changeDate = (val) =>{
|
||||||
active.value = val;
|
active.value = val;
|
||||||
|
pageData.pageConfiger.pageNum = 1;
|
||||||
|
pageData.tableData = [];
|
||||||
|
switch(val){
|
||||||
|
case '重点人':
|
||||||
|
pageData.tableColumn = [
|
||||||
|
{ label: "姓名", prop: "ryXm", showOverflowTooltip: true },
|
||||||
|
{ label: "身份证号码", prop: "rySfzh",showOverflowTooltip: true },
|
||||||
|
{ label: "标签", prop: "bq",showOverflowTooltip: true },
|
||||||
|
{ label: "所属线索", prop: "xsmc",showOverflowTooltip: true },
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
case '重点群体':
|
||||||
|
pageData.tableColumn = [
|
||||||
|
{ label: "群体名称", prop: "qtMc", showOverflowTooltip: true },
|
||||||
|
{ label: "群体状态", prop: "qtZt",showSolt:true,showOverflowTooltip: true },
|
||||||
|
{ label: "群体风险等级", prop: "qtFxdj",showSolt:true, showOverflowTooltip: true },
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
getList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 搜索
|
||||||
|
const handleSearch = () => {
|
||||||
|
pageData.pageConfiger.pageNum = 1; // 重置页码
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
|
||||||
// 滚动分页加载
|
// 滚动分页加载
|
||||||
const changePage = () =>{
|
const changePage = () =>{
|
||||||
|
if( pageData.tableConfiger.loading) return; // 防止重复加载
|
||||||
|
pageData.pageConfiger.pageNum++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getList = () => {
|
||||||
|
pageData.tableConfiger.loading = true;
|
||||||
|
let url = active.value === '重点人' ? '/mosty-gsxt/tbGsxtZdry/selectPage' : '/mosty-gsxt/tbGsxtZdqt/selectPage';
|
||||||
|
let params = {
|
||||||
|
pageNum: pageData.pageConfiger.pageNum,
|
||||||
|
pageSize: pageData.pageConfiger.pageSize,
|
||||||
|
keywords: keywords.value,
|
||||||
|
};
|
||||||
|
qcckGet(params,url).then((res) => {
|
||||||
|
console.log(res,'=====');
|
||||||
|
|
||||||
|
let arr = res.records || [];
|
||||||
|
pageData.tableData = pageData.pageConfiger.pageNum == 1 ? arr : pageData.tableData.concat(arr);
|
||||||
|
pageData.total = res.total;
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
}).catch(() => {
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight = document.getElementById('zdrxxtj').offsetHeight - 160;
|
pageData.tableHeight = document.getElementById('zdrxxtj').offsetHeight - 160;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,221 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="dialog" v-if="dialogForm">
|
|
||||||
<div class="head_box">
|
|
||||||
<span class="title">{{ title }}</span>
|
|
||||||
<div>
|
|
||||||
<el-button size="small" @click="close">关闭</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cntinfo">
|
|
||||||
<el-tabs v-model="activeName">
|
|
||||||
<el-tab-pane label="场所信息" name="basic">
|
|
||||||
<el-form :model="listQuery" :label-width="230" label-position="left">
|
|
||||||
<div class="flex align-center">
|
|
||||||
<div style="width: calc(100% - 176px);">
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="统一社会信用代码">
|
|
||||||
<el-input v-model="listQuery.tyshdm" placeholder="ktv"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="单位名称(营业执照登记名称)">
|
|
||||||
<el-input v-model="listQuery.djmc" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="场所名称">
|
|
||||||
<el-input v-model="listQuery.csmc" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="场所联系电话">
|
|
||||||
<el-input v-model="listQuery.cslxdh" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="经营状况">
|
|
||||||
<el-input v-model="listQuery.csdm" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="场所面积">
|
|
||||||
<el-input v-model="listQuery.csmj" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="开业日期">
|
|
||||||
<el-input v-model="listQuery.kyrq" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<img height="130" src="@/assets/images/person.png" alt="">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<el-form-item label="单位注册地址">
|
|
||||||
<el-input v-model="listQuery.dwzcdz" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="场所地址">
|
|
||||||
<el-input v-model="listQuery.csdz" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<div class="flex align-center">
|
|
||||||
<div style="width: calc(100% - 176px);">
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="法定代表人">
|
|
||||||
<el-input v-model="listQuery.fddbr" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="法定代表人证件号码">
|
|
||||||
<el-input v-model="listQuery.fddbrzjhm" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="法定代表人联系电话">
|
|
||||||
<el-input v-model="listQuery.fddbrLxdh" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="法定代表人居住地址">
|
|
||||||
<el-input v-model="listQuery.fddbrJzdz" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="场所负责人">
|
|
||||||
<el-input v-model="listQuery.csfzr" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="场所负责人身份证号">
|
|
||||||
<el-input v-model="listQuery.csfzrSfzh" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="场所负责人联系方式">
|
|
||||||
<el-input v-model="listQuery.csfzrLxfs" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="场所负责人居住地址">
|
|
||||||
<el-input v-model="listQuery.csfzrJzdz" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<img height="65" style="width: 100%;" src="@/assets/images/person.png" alt="">
|
|
||||||
<img height="65" style="width: 100%;" src="@/assets/images/person.png" alt="">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="upload-group">
|
|
||||||
<el-form-item label="营业执照照片">
|
|
||||||
<img height="130" src="@/assets/images/person.png" alt="">
|
|
||||||
<img height="130" src="@/assets/images/person.png" alt="">
|
|
||||||
<img height="130" src="@/assets/images/person.png" alt="">
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="机修场所备案编号">
|
|
||||||
<el-input v-model="listQuery.jxcsbabh" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="场所备案机构名称">
|
|
||||||
<el-input v-model="listQuery.ylcsbajgmc" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="备案登记日期">
|
|
||||||
<el-input v-model="listQuery.badjrq" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="所属辖区">
|
|
||||||
<el-input v-model="listQuery.ssxq" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="责任民警">
|
|
||||||
<el-input v-model="listQuery.zrmj" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="警号">
|
|
||||||
<el-input v-model="listQuery.jh" placeholder="请输入"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
|
||||||
</el-tab-pane>
|
|
||||||
<el-tab-pane label="从业人员" name="staff">
|
|
||||||
<!-- 从业人员表格 -->
|
|
||||||
</el-tab-pane>
|
|
||||||
</el-tabs>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, reactive } from 'vue';
|
|
||||||
import { Plus } from '@element-plus/icons-vue';
|
|
||||||
|
|
||||||
const dialogForm = ref(false);
|
|
||||||
const activeName = ref('basic');
|
|
||||||
const title = ref('开锁业场所管理详情');
|
|
||||||
const listQuery = ref({});
|
|
||||||
|
|
||||||
const areaOptions = ref([]); // 区域选项数据
|
|
||||||
|
|
||||||
// 初始化数据
|
|
||||||
const init = (type, row,) => {
|
|
||||||
dialogForm.value = true;
|
|
||||||
// 根据type和row初始化表单数据
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const close = () => {
|
|
||||||
dialogForm.value = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({init})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.dialog {
|
|
||||||
padding: 20px;
|
|
||||||
|
|
||||||
:deep(.el-form-item__label) {
|
|
||||||
background-color: #F7FAFB;
|
|
||||||
padding: 0px 8px;
|
|
||||||
color: #000;
|
|
||||||
font-weight: 500;
|
|
||||||
border: 1px solid #E3E7ED;
|
|
||||||
}
|
|
||||||
|
|
||||||
.head_box {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
.cntinfo{
|
|
||||||
height: calc(100% - 70px);
|
|
||||||
overflow: hidden;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-row {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
.el-form-item {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.upload-group {
|
|
||||||
display: flex;
|
|
||||||
// gap: 20px;
|
|
||||||
|
|
||||||
.el-form-item {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.unit {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
::v-deep .el-input__inner{
|
|
||||||
height: 36px !important;
|
|
||||||
line-height: 36px !important;
|
|
||||||
border-radius: 0;
|
|
||||||
color: #777575;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.el-form-item--default{
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,27 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<div class="titleBox">
|
||||||
<PageTitle title="布控审批" />
|
<PageTitle title="布控审批">
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div ref="searchBox">
|
|
||||||
<!-- 顶部主导航 -->
|
|
||||||
<div class="main-nav">
|
|
||||||
<el-button
|
|
||||||
:class="['nav-btn', activeMainNav === 'todo' ? 'active' : '']"
|
|
||||||
@click="activeMainNav = 'todo'"
|
|
||||||
>
|
|
||||||
我的待办
|
|
||||||
</el-button>
|
|
||||||
<el-button
|
|
||||||
:class="['nav-btn', activeMainNav === 'done' ? 'active' : '']"
|
|
||||||
@click="activeMainNav = 'done'"
|
|
||||||
>
|
|
||||||
我的已办
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
<!-- 子导航 -->
|
|
||||||
<div class="sub-nav">
|
<div class="sub-nav">
|
||||||
<el-tabs v-model="activeSubNav" @click="handleType">
|
<el-tabs v-model="activeSubNav" @click="handleType">
|
||||||
<el-tab-pane label="我的发起" name="myInitiate"></el-tab-pane>
|
<el-tab-pane label="我的发起" name="myInitiate"></el-tab-pane>
|
||||||
@ -31,38 +11,19 @@
|
|||||||
<el-tab-pane label="我的处置" name="myHandle"></el-tab-pane>
|
<el-tab-pane label="我的处置" name="myHandle"></el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
|
</PageTitle>
|
||||||
|
</div>
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox">
|
||||||
<Search
|
<Search
|
||||||
:searchArr="searchConfiger"
|
:searchArr="searchConfiger"
|
||||||
@submit="onSearch"
|
@submit="onSearch"
|
||||||
:key="pageData.keyCount"
|
:key="pageData.keyCount"
|
||||||
>
|
>
|
||||||
<template #defaultSlot>
|
|
||||||
<div>
|
|
||||||
<el-input-number v-model="queryFrom.xqy"></el-input-number>
|
|
||||||
<span class="ml10 mr10" style="color: #000">至</span>
|
|
||||||
<el-input-number v-model="queryFrom.dqy"></el-input-number>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</Search>
|
</Search>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<div ref="btns" class="btns flexcb">
|
|
||||||
<div class="">
|
|
||||||
<el-button>批量处理</el-button>
|
|
||||||
<el-button>导出</el-button>
|
|
||||||
</div>
|
|
||||||
<el-input
|
|
||||||
v-model="input2"
|
|
||||||
style="max-width: 300px"
|
|
||||||
placeholder="请输入关键字"
|
|
||||||
>
|
|
||||||
<template #append
|
|
||||||
><el-button type="primary" icon="Search"></el-button
|
|
||||||
></template>
|
|
||||||
</el-input>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageData.tableData"
|
:tableData="pageData.tableData"
|
||||||
:tableColumn="pageData.tableColumn"
|
:tableColumn="pageData.tableColumn"
|
||||||
@ -91,6 +52,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<el-button
|
<el-button
|
||||||
|
:key="index"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
v-for="(item, index) in row.bqList"
|
v-for="(item, index) in row.bqList"
|
||||||
@ -104,7 +66,6 @@
|
|||||||
<div>创建单位:{{ row.xtCjbmmc }}</div>
|
<div>创建单位:{{ row.xtCjbmmc }}</div>
|
||||||
</template>
|
</template>
|
||||||
<template #gkxx="{ row }">
|
<template #gkxx="{ row }">
|
||||||
<!-- <div>群体标签:{{ }}</div> -->
|
|
||||||
<div>管辖单位:{{ row.gxSsdwmc }}</div>
|
<div>管辖单位:{{ row.gxSsdwmc }}</div>
|
||||||
<div>列控原因:{{ row.zdrLkyy }}</div>
|
<div>列控原因:{{ row.zdrLkyy }}</div>
|
||||||
<div>开始时间:{{ row.startTime }}</div>
|
<div>开始时间:{{ row.startTime }}</div>
|
||||||
@ -119,29 +80,29 @@
|
|||||||
|
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-button
|
<el-link
|
||||||
size="small"
|
size="small"
|
||||||
|
type="primary"
|
||||||
@click="autoEdit('auto', row)"
|
@click="autoEdit('auto', row)"
|
||||||
v-if="row.qtZt === '02' && activeSubNav === 'myAudit'"
|
v-if="row.qtZt === '02' && activeSubNav === 'myAudit'"
|
||||||
>审核</el-button
|
>审核</el-link
|
||||||
>
|
>
|
||||||
<el-button
|
<el-link
|
||||||
size="small"
|
size="small"
|
||||||
|
type="success"
|
||||||
@click="autoEdit('approval', row)"
|
@click="autoEdit('approval', row)"
|
||||||
v-if="row.qtZt === '04' && activeSubNav === 'myApprove'"
|
v-if="row.qtZt === '04' && activeSubNav === 'myApprove'"
|
||||||
>审批</el-button
|
>审批</el-link
|
||||||
>
|
>
|
||||||
<el-button size="small" @click="autoEdit('detail', row)"
|
<el-link size="small" type="info" @click="autoEdit('detail', row)"
|
||||||
>详情</el-button
|
>详情</el-link
|
||||||
>
|
>
|
||||||
<!-- <el-button size="small">从业人员</el-button>
|
|
||||||
<el-button size="small">转区域</el-button> -->
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages
|
<Pages
|
||||||
@changeNo="changeNo"
|
@changeNo="changeNo"
|
||||||
@changeSize="changeSize"
|
@changeSize="changeSize"
|
||||||
:tableHeight="pageData.tableHeight + 42"
|
:tableHeight="pageData.tableHeight"
|
||||||
:pageConfiger="{
|
:pageConfiger="{
|
||||||
...pageData.pageConfiger,
|
...pageData.pageConfiger,
|
||||||
total: pageData.total
|
total: pageData.total
|
||||||
@ -158,38 +119,19 @@ import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
|||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import DetailForm from "./components/detailForm.vue";
|
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||||
import { setItem, getItem, removeAllItem } from "@/utils/storage";
|
import { setItem, getItem } from "@/utils/storage";
|
||||||
import { selectUserDeptPage } from "@/api/user-manage";
|
import { selectUserDeptPage } from "@/api/user-manage";
|
||||||
import MpvGroupInfo from "../mpvGroup/index.vue";
|
import MpvGroupInfo from "../mpvGroup/components/infoForm.vue";
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const {
|
const { D_GS_ZDQT_FXDJ, D_GS_ZDR_RYJB, D_GS_ZDR_BK_ZT } = proxy.$dict("D_GS_ZDQT_FXDJ","D_GS_ZDR_RYJB","D_GS_ZDR_BK_ZT" ); //获取字典数据
|
||||||
D_GS_ZDQT_FXDJ,
|
|
||||||
D_GS_ZDR_RYJB,
|
|
||||||
D_GS_ZDQT_LB,
|
|
||||||
D_GS_ZDR_BK_ZT,
|
|
||||||
D_GS_BQ_LX,
|
|
||||||
D_GS_ZDQT_ZT
|
|
||||||
} = proxy.$dict(
|
|
||||||
"D_GS_ZDQT_FXDJ",
|
|
||||||
"D_GS_ZDR_RYJB",
|
|
||||||
"D_GS_ZDQT_LB",
|
|
||||||
"D_GS_ZDR_BK_ZT",
|
|
||||||
"D_GS_BQ_LX",
|
|
||||||
"D_GS_ZDQT_ZT"
|
|
||||||
); //获取字典数据
|
|
||||||
const deptList = ref([]); //部门列表
|
const deptList = ref([]); //部门列表
|
||||||
const detailDiloag = ref();
|
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
const btns = ref();
|
|
||||||
const userId = getItem("USERID");
|
const userId = getItem("USERID");
|
||||||
const MpvGroupInfoRef = ref(null);
|
const MpvGroupInfoRef = ref(null);
|
||||||
|
|
||||||
// 主导航激活状态
|
|
||||||
const activeMainNav = ref("todo");
|
|
||||||
// 子导航激活状态
|
// 子导航激活状态
|
||||||
const activeSubNav = ref("myAudit");
|
const activeSubNav = ref("myAudit");
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
@ -212,84 +154,12 @@ const searchConfiger = ref([
|
|||||||
placeholder: "请选择重点人人员级别",
|
placeholder: "请选择重点人人员级别",
|
||||||
showType: "select",
|
showType: "select",
|
||||||
options: D_GS_ZDR_RYJB
|
options: D_GS_ZDR_RYJB
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "成员姓名",
|
|
||||||
prop: "cyXm ",
|
|
||||||
placeholder: "请输入成员姓名",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "群体类别",
|
|
||||||
prop: "qtLb",
|
|
||||||
placeholder: "请选择群体类别",
|
|
||||||
showType: "select",
|
|
||||||
options: D_GS_ZDQT_LB
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "成员身份证号",
|
|
||||||
prop: "cySfzh",
|
|
||||||
placeholder: "请输入成员身份证号",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "群体大类",
|
|
||||||
prop: "qtDl",
|
|
||||||
placeholder: "请输入群体大类",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "群体细类",
|
|
||||||
prop: "qtXl",
|
|
||||||
placeholder: "请输入群体细类",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "管辖单位名称",
|
|
||||||
prop: "gxSsdwmc",
|
|
||||||
placeholder: "请输入管辖单位名称",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "开始时间",
|
|
||||||
prop: "startTime",
|
|
||||||
placeholder: "请输入开始时间",
|
|
||||||
showType: "date"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "截至时间",
|
|
||||||
prop: "endTime",
|
|
||||||
placeholder: "请输入截至时间",
|
|
||||||
showType: "date"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "布控状态",
|
|
||||||
prop: "zdrBkZt",
|
|
||||||
placeholder: "请输入布控装态",
|
|
||||||
showType: "select",
|
|
||||||
options: D_GS_ZDR_BK_ZT
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "布控类型",
|
|
||||||
prop: "bkzt",
|
|
||||||
placeholder: "请输入布控类型",
|
|
||||||
showType: "select",
|
|
||||||
options: D_GS_BQ_LX
|
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
const queryFrom = ref({});
|
const queryFrom = ref({});
|
||||||
const userInfo = ref({});
|
const userInfo = ref({});
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
tableData: [], //表格数据
|
||||||
{
|
|
||||||
name: "1",
|
|
||||||
ssxq: "1",
|
|
||||||
cyxm: "1",
|
|
||||||
qqksrxm: "1",
|
|
||||||
qqksrsfzh: "1",
|
|
||||||
jzrxm: "1"
|
|
||||||
}
|
|
||||||
], //表格数据
|
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
@ -317,10 +187,6 @@ onMounted(() => {
|
|||||||
getdepartmentList();
|
getdepartmentList();
|
||||||
});
|
});
|
||||||
|
|
||||||
// 详情
|
|
||||||
const info = (type, row) => {
|
|
||||||
MpvGroupInfoRef.value.init(type, row);
|
|
||||||
};
|
|
||||||
// 获取部门列表
|
// 获取部门列表
|
||||||
const getdepartmentList = () => {
|
const getdepartmentList = () => {
|
||||||
selectUserDeptPage().then((res) => {
|
selectUserDeptPage().then((res) => {
|
||||||
@ -339,7 +205,7 @@ const getUserInfo = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//选择类型
|
//选择类型
|
||||||
const handleType = (val) => {
|
const handleType = () => {
|
||||||
pageData.keyCount++;
|
pageData.keyCount++;
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
|
|
||||||
@ -384,19 +250,13 @@ const getList = (val) => {
|
|||||||
|
|
||||||
// 详情
|
// 详情
|
||||||
const autoEdit = (type, row) => {
|
const autoEdit = (type, row) => {
|
||||||
MpvGroupInfoRef.value.infoList(type, row);
|
MpvGroupInfoRef.value.init(type, row);
|
||||||
};
|
};
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
console.log("btns.value.offsetHeight", btns.value.offsetHeight);
|
|
||||||
|
|
||||||
pageData.tableHeight =
|
pageData.tableHeight =
|
||||||
window.innerHeight -
|
window.innerHeight - searchBox.value.offsetHeight - 260;
|
||||||
searchBox.value.offsetHeight -
|
|
||||||
btns.value.offsetHeight -
|
|
||||||
30 -
|
|
||||||
250;
|
|
||||||
window.onresize = function () {
|
window.onresize = function () {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
@ -413,6 +273,7 @@ const tabHeightFn = () => {
|
|||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
border: none;
|
border: none;
|
||||||
background: none;
|
background: none;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
background-color: #409eff;
|
background-color: #409eff;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -432,12 +293,12 @@ const tabHeightFn = () => {
|
|||||||
height: 1px;
|
height: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.el-table--fit) {
|
|
||||||
top: 52px !important;
|
|
||||||
}
|
|
||||||
.btns {
|
.btns {
|
||||||
height: 52px;
|
height: 52px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
::v-deep .el-tabs__nav-wrap::after {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -3,33 +3,12 @@
|
|||||||
<div class="head_box">
|
<div class="head_box">
|
||||||
<span class="title">重点群体管理 </span>
|
<span class="title">重点群体管理 </span>
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button type="primary" size="small" :loading="loading" @click="submit">保存</el-button>
|
||||||
type="primary"
|
|
||||||
size="small"
|
|
||||||
:loading="loading"
|
|
||||||
@click="submit"
|
|
||||||
>保存</el-button
|
|
||||||
>
|
|
||||||
<el-button size="small" @click="close">关闭</el-button>
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
<el-tabs
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
v-model="activeName"
|
|
||||||
type="card"
|
|
||||||
class="demo-tabs"
|
|
||||||
@tab-click="handleClick"
|
|
||||||
>
|
|
||||||
<el-tab-pane :label="title + '群体'" name="first"></el-tab-pane>
|
|
||||||
<el-tab-pane label="轨迹信息" name="second"></el-tab-pane>
|
|
||||||
<el-tab-pane label="标签信息" name="third"></el-tab-pane>
|
|
||||||
</el-tabs>
|
|
||||||
<FormMessage
|
|
||||||
v-model="listQuery"
|
|
||||||
:formList="formData"
|
|
||||||
ref="elform"
|
|
||||||
:rules="rules"
|
|
||||||
>
|
|
||||||
<template #qtXx>
|
<template #qtXx>
|
||||||
<el-divider content-position="left">群体信息</el-divider>
|
<el-divider content-position="left">群体信息</el-divider>
|
||||||
</template>
|
</template>
|
||||||
@ -42,21 +21,11 @@
|
|||||||
</template>
|
</template>
|
||||||
<template #xzRy>
|
<template #xzRy>
|
||||||
<div class="btns">
|
<div class="btns">
|
||||||
<el-button type="primary" @click="handleAddEdit('add', '')"
|
<el-button type="primary" @click="handleAddEdit('add', '')">新增</el-button>
|
||||||
>新增</el-button
|
<el-button type="primary" @click="selectionAdd()">选择重点人员</el-button>
|
||||||
>
|
|
||||||
<el-button type="primary" @click="selectionAdd()"
|
|
||||||
>选择重点人员</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<MyTable
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :key="pageData.keyCount"
|
||||||
:tableData="pageData.tableData"
|
:tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth" @chooseData="chooseData">
|
||||||
:tableColumn="pageData.tableColumn"
|
|
||||||
:key="pageData.keyCount"
|
|
||||||
:tableConfiger="pageData.tableConfiger"
|
|
||||||
:controlsWidth="pageData.controlsWidth"
|
|
||||||
@chooseData="chooseData"
|
|
||||||
>
|
|
||||||
<template #ryxx="{ row }">
|
<template #ryxx="{ row }">
|
||||||
<div>
|
<div>
|
||||||
<img src="" alt="" />
|
<img src="" alt="" />
|
||||||
@ -64,29 +33,17 @@
|
|||||||
<li>姓名:{{ row.rySfzh }}</li>
|
<li>姓名:{{ row.rySfzh }}</li>
|
||||||
<li class="rowClass">
|
<li class="rowClass">
|
||||||
性别:
|
性别:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.ryXb" :options="D_BZ_XB" />
|
||||||
:tag="false"
|
|
||||||
:value="row.ryXb"
|
|
||||||
:options="D_BZ_XB"
|
|
||||||
/>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="rowClass">
|
<li class="rowClass">
|
||||||
籍贯:
|
籍贯:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.ryJg" :options="D_BZ_XZQHDM" />
|
||||||
:tag="false"
|
|
||||||
:value="row.ryJg"
|
|
||||||
:options="D_BZ_XZQHDM"
|
|
||||||
/>
|
|
||||||
</li>
|
</li>
|
||||||
<li>身份证:{{ row.rySfzh }}</li>
|
<li>身份证:{{ row.rySfzh }}</li>
|
||||||
<li>出生日期:{{ row.ryCsrq }}</li>
|
<li>出生日期:{{ row.ryCsrq }}</li>
|
||||||
<li class="rowClass">
|
<li class="rowClass">
|
||||||
民族:
|
民族:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.ryMz" :options="D_BZ_MZ" />
|
||||||
:tag="false"
|
|
||||||
:value="row.ryMz"
|
|
||||||
:options="D_BZ_MZ"
|
|
||||||
/>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -99,11 +56,7 @@
|
|||||||
<template #jzxx="{ row }">
|
<template #jzxx="{ row }">
|
||||||
<div class="rowClass">
|
<div class="rowClass">
|
||||||
户籍地区划:
|
户籍地区划:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.hjdQh" :options="D_BZ_XZQHDM" />
|
||||||
:tag="false"
|
|
||||||
:value="row.hjdQh"
|
|
||||||
:options="D_BZ_XZQHDM"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div>户籍派出所:{{ row.hjdPcsmc }}</div>
|
<div>户籍派出所:{{ row.hjdPcsmc }}</div>
|
||||||
<div>户籍地详址:{{ row.hjdXz }}</div>
|
<div>户籍地详址:{{ row.hjdXz }}</div>
|
||||||
@ -112,28 +65,16 @@
|
|||||||
<div>管辖单位:{{ row.gxSsbmmc }}</div>
|
<div>管辖单位:{{ row.gxSsbmmc }}</div>
|
||||||
<div class="rowClass">
|
<div class="rowClass">
|
||||||
人员级别:
|
人员级别:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.zdrRyjb" :options="D_GS_ZDR_RYJB" />
|
||||||
:tag="false"
|
|
||||||
:value="row.zdrRyjb"
|
|
||||||
:options="D_GS_ZDR_RYJB"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div>管控原因:{{ zdrLkyy }}</div>
|
<div>管控原因:{{ zdrLkyy }}</div>
|
||||||
<div class="rowClass">
|
<div class="rowClass">
|
||||||
管控状态:
|
管控状态:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.zdrBkZt" :options="D_GS_ZDR_BK_ZT" />
|
||||||
:tag="false"
|
|
||||||
:value="row.zdrBkZt"
|
|
||||||
:options="D_GS_ZDR_BK_ZT"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #zdrCzzt="{ row }">
|
<template #zdrCzzt="{ row }">
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.zdrCzzt" :options="D_GS_ZDR_CZZT" />
|
||||||
:tag="false"
|
|
||||||
:value="row.zdrCzzt"
|
|
||||||
:options="D_GS_ZDR_CZZT"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
<template #xtSjzt="{ row }">
|
<template #xtSjzt="{ row }">
|
||||||
<div>
|
<div>
|
||||||
@ -143,20 +84,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #controls="{ row, index }">
|
<template #controls="{ row, index }">
|
||||||
<el-button
|
<el-button size="small" type="primary" @click="handleAddEdit('edit', row)" link>编辑</el-button>
|
||||||
size="small"
|
<el-button size="small" type="danger" @click="deleteData(index)" link>删除</el-button>
|
||||||
type="primary"
|
|
||||||
@click="handleAddEdit('edit', row)"
|
|
||||||
link
|
|
||||||
>编辑</el-button
|
|
||||||
>
|
|
||||||
<el-button
|
|
||||||
size="small"
|
|
||||||
type="danger"
|
|
||||||
@click="deleteData(index)"
|
|
||||||
link
|
|
||||||
>删除</el-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</template>
|
</template>
|
||||||
@ -167,14 +96,9 @@
|
|||||||
<template #bqList>
|
<template #bqList>
|
||||||
<el-button @click="open('01')">选择</el-button>
|
<el-button @click="open('01')">选择</el-button>
|
||||||
<div class="boxlist">
|
<div class="boxlist">
|
||||||
<MyTable
|
<MyTable :tableData="tableDate.bqList" :tableColumn="tableDate.tableColumn"
|
||||||
:tableData="tableDate.bqList"
|
:tableHeight="tableDate.tableHeight" :key="tableDate.keyCount" :tableConfiger="tableDate.tableConfiger"
|
||||||
:tableColumn="tableDate.tableColumn"
|
:controlsWidth="tableDate.controlsWidth">
|
||||||
:tableHeight="tableDate.tableHeight"
|
|
||||||
:key="tableDate.keyCount"
|
|
||||||
:tableConfiger="tableDate.tableConfiger"
|
|
||||||
:controlsWidth="tableDate.controlsWidth"
|
|
||||||
>
|
|
||||||
<template #bqLb="{ row }">
|
<template #bqLb="{ row }">
|
||||||
<DictTag :value="row.bqLb" :tag="false" :options="D_GS_BQ_LB" />
|
<DictTag :value="row.bqLb" :tag="false" :options="D_GS_BQ_LB" />
|
||||||
</template>
|
</template>
|
||||||
@ -186,9 +110,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="danger" @click="delDictItem(row.bqId)"
|
<el-link type="danger" @click="delDictItem(row.bqId)">删除</el-link>
|
||||||
>删除</el-link
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
@ -198,19 +120,12 @@
|
|||||||
<template #lqxxList>
|
<template #lqxxList>
|
||||||
<el-button @click="openDialog('01')">新增</el-button>
|
<el-button @click="openDialog('01')">新增</el-button>
|
||||||
<div class="boxlist">
|
<div class="boxlist">
|
||||||
<MyTable
|
<MyTable :tableData="tableDate.lqxxList" :tableColumn="tableDate.tableLqColumn"
|
||||||
:tableData="tableDate.lqxxList"
|
:tableHeight="tableDate.tableHeight" :key="tableDate.keyCount" :tableConfiger="tableDate.tableConfiger"
|
||||||
:tableColumn="tableDate.tableLqColumn"
|
:controlsWidth="tableDate.controlsWidth">
|
||||||
:tableHeight="tableDate.tableHeight"
|
|
||||||
:key="tableDate.keyCount"
|
|
||||||
:tableConfiger="tableDate.tableConfiger"
|
|
||||||
:controlsWidth="tableDate.controlsWidth"
|
|
||||||
>
|
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row, index }">
|
<template #controls="{ row, index }">
|
||||||
<el-link type="danger" @click="delDictItem(index)"
|
<el-link type="danger" @click="delDictItem(index)">删除</el-link>
|
||||||
>删除</el-link
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
@ -218,38 +133,16 @@
|
|||||||
</FormMessage>
|
</FormMessage>
|
||||||
</div>
|
</div>
|
||||||
<!-- 列表弹窗 -->
|
<!-- 列表弹窗 -->
|
||||||
<DialogList
|
<DialogList :Single="false" :roleIds="roleIds" v-if="chooseShow" @chooseDate="chooseDate" :titleValue="chooseTitle"
|
||||||
:Single="false"
|
v-model="chooseShow" :bqLx="chooseType" bqDl="02"></DialogList>
|
||||||
:roleIds="roleIds"
|
<addFormPeo ref="addFormDiloag" @chooseDate="addFormPeoDate" @handleEditDate="handleEditDate" />
|
||||||
v-if="chooseShow"
|
|
||||||
@chooseDate="chooseDate"
|
|
||||||
:titleValue="chooseTitle"
|
|
||||||
v-model="chooseShow"
|
|
||||||
:bqLx="chooseType"
|
|
||||||
bqDl="02"
|
|
||||||
></DialogList>
|
|
||||||
<addFormPeo
|
|
||||||
ref="addFormDiloag"
|
|
||||||
@chooseDate="addFormPeoDate"
|
|
||||||
@handleEditDate="handleEditDate"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<selectionList
|
<selectionList :Single="false" :roleIds="selectroleId" v-if="selectionValue" @chooseDate="chooseSelectDate"
|
||||||
:Single="false"
|
:titleValue="chooseTitle" v-model="selectionValue">
|
||||||
:roleIds="selectroleId"
|
|
||||||
v-if="selectionValue"
|
|
||||||
@chooseDate="chooseSelectDate"
|
|
||||||
:titleValue="chooseTitle"
|
|
||||||
v-model="selectionValue"
|
|
||||||
>
|
|
||||||
</selectionList>
|
</selectionList>
|
||||||
<!-- 列表弹窗 -->
|
<!-- 列表弹窗 -->
|
||||||
<TagSelectorDialog
|
<TagSelectorDialog v-model="choose" ref="tagDialog" @chooseDate="handleTagSelect"
|
||||||
v-model="choose"
|
:dic="{ D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX }" />
|
||||||
ref="tagDialog"
|
|
||||||
@chooseDate="handleTagSelect"
|
|
||||||
:dic="{ D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX }"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -260,9 +153,8 @@ import DialogList from "./dialogList.vue";
|
|||||||
import selectionList from "./selectionList.vue";
|
import selectionList from "./selectionList.vue";
|
||||||
import addFormPeo from "./addFormPeo.vue";
|
import addFormPeo from "./addFormPeo.vue";
|
||||||
import ApprovalInfo from "./approvalInfo.vue";
|
import ApprovalInfo from "./approvalInfo.vue";
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
|
||||||
import * as rule from "@/utils/rules.js";
|
|
||||||
import TagSelectorDialog from "./TagSelectorDialogPeo.vue";
|
import TagSelectorDialog from "./TagSelectorDialogPeo.vue";
|
||||||
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ref,
|
ref,
|
||||||
@ -316,12 +208,12 @@ const dialogForm = ref(false); //弹窗
|
|||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
const activeName = ref("first");
|
const activeName = ref("first");
|
||||||
const formData = ref([
|
const formData = ref([
|
||||||
{ label: "", prop: "qtXx", type: "slot", width: "100%" },
|
{ prop: "qtXx", type: "slot", width: "100%" },
|
||||||
{ label: "群体名称", prop: "qtMc", type: "input" },
|
{ label: "群体名称", prop: "qtMc", type: "input" },
|
||||||
{ label: "群体别名", prop: "qtBm", type: "input" },
|
{ label: "群体别名", prop: "qtBm", type: "input" },
|
||||||
{ label: "群体简称", prop: "qtJc", type: "input" },
|
{ label: "群体简称", prop: "qtJc", type: "input" },
|
||||||
{ label: "群体类别", prop: "qtLb", type: "select", options: D_GS_ZDQT_LB },
|
{ label: "群体类别", prop: "qtLb", type: "select", options: D_GS_ZDQT_LB },
|
||||||
{ label: "成立时间", prop: "qtClsj", type: "date" ,lx:"datetime" },
|
{ label: "成立时间", prop: "qtClsj", type: "date", lx: "datetime" },
|
||||||
{ label: "风险等级", prop: "qtFxdj", type: "select", options: D_GS_ZDQT_FXDJ },
|
{ label: "风险等级", prop: "qtFxdj", type: "select", options: D_GS_ZDQT_FXDJ },
|
||||||
{ label: "背景资料", prop: "qtBjzl", type: "input" },
|
{ label: "背景资料", prop: "qtBjzl", type: "input" },
|
||||||
{ label: "两群采集录入", prop: "lqxxList", type: "slot", width: "100%" },
|
{ label: "两群采集录入", prop: "lqxxList", type: "slot", width: "100%" },
|
||||||
@ -410,7 +302,7 @@ const rules = reactive({
|
|||||||
xsbt: [{ required: true, message: "请输入线索标题", trigger: "blur" }]
|
xsbt: [{ required: true, message: "请输入线索标题", trigger: "blur" }]
|
||||||
});
|
});
|
||||||
const editpeo = ref();
|
const editpeo = ref();
|
||||||
onMounted(() => {});
|
onMounted(() => { });
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
const init = async (type, row) => {
|
const init = async (type, row) => {
|
||||||
dialogForm.value = true;
|
dialogForm.value = true;
|
||||||
@ -576,7 +468,7 @@ const submit = () => {
|
|||||||
emit("updateDate");
|
emit("updateDate");
|
||||||
close();
|
close();
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => { });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -592,16 +484,19 @@ defineExpose({ init });
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "~@/assets/css/layout.scss";
|
@import "~@/assets/css/layout.scss";
|
||||||
@import "~@/assets/css/element-plus.scss";
|
@import "~@/assets/css/element-plus.scss";
|
||||||
::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
|
|
||||||
|
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||||
color: #0072ff;
|
color: #0072ff;
|
||||||
background: rgba(0, 114, 255, 0.3);
|
background: rgba(0, 114, 255, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlist {
|
.boxlist {
|
||||||
width: 99%;
|
width: 99%;
|
||||||
height: 225px;
|
height: 225px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btns {
|
.btns {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
|
@ -3,41 +3,19 @@
|
|||||||
<div class="head_box">
|
<div class="head_box">
|
||||||
<span class="title">重点群体管理 </span>
|
<span class="title">重点群体管理 </span>
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button size="small" type="primary" @click="autoClick" v-if="typetext == 'auto'">审核</el-button>
|
||||||
size="small"
|
<el-button size="small" @click="autoClick" type="primary" v-if="typetext == 'approval'">审批</el-button>
|
||||||
type="primary"
|
|
||||||
@click="autoClick"
|
|
||||||
v-if="typetext == 'auto'"
|
|
||||||
>审核</el-button
|
|
||||||
>
|
|
||||||
<el-button
|
|
||||||
size="small"
|
|
||||||
@click="autoClick"
|
|
||||||
type="primary"
|
|
||||||
v-if="typetext == 'approval'"
|
|
||||||
>审批</el-button
|
|
||||||
>
|
|
||||||
<el-button size="small" @click="close">关闭</el-button>
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
<el-tabs
|
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick">
|
||||||
v-model="activeName"
|
|
||||||
type="card"
|
|
||||||
class="demo-tabs"
|
|
||||||
@tab-click="handleClick"
|
|
||||||
>
|
|
||||||
<el-tab-pane :label="title + '群体'" name="first"></el-tab-pane>
|
<el-tab-pane :label="title + '群体'" name="first"></el-tab-pane>
|
||||||
<el-tab-pane label="轨迹信息" name="second"></el-tab-pane>
|
<el-tab-pane label="轨迹信息" name="second"></el-tab-pane>
|
||||||
<el-tab-pane label="标签信息" name="third"></el-tab-pane>
|
<el-tab-pane label="标签信息" name="third"></el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<FormMessage
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
v-model="listQuery"
|
|
||||||
:formList="formData"
|
|
||||||
ref="elform"
|
|
||||||
:rules="rules"
|
|
||||||
>
|
|
||||||
<template #qtXx>
|
<template #qtXx>
|
||||||
<el-divider content-position="left">群体信息</el-divider>
|
<el-divider content-position="left">群体信息</el-divider>
|
||||||
</template>
|
</template>
|
||||||
@ -49,14 +27,8 @@
|
|||||||
<ApprovalInfo ref="approvalInfoRef" />
|
<ApprovalInfo ref="approvalInfoRef" />
|
||||||
</template>
|
</template>
|
||||||
<template #xzRy>
|
<template #xzRy>
|
||||||
<MyTable
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :key="pageData.keyCount"
|
||||||
:tableData="pageData.tableData"
|
:tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth" @chooseData="chooseData">
|
||||||
:tableColumn="pageData.tableColumn"
|
|
||||||
:key="pageData.keyCount"
|
|
||||||
:tableConfiger="pageData.tableConfiger"
|
|
||||||
:controlsWidth="pageData.controlsWidth"
|
|
||||||
@chooseData="chooseData"
|
|
||||||
>
|
|
||||||
<template #ryxx="{ row }">
|
<template #ryxx="{ row }">
|
||||||
<div>
|
<div>
|
||||||
<img src="" alt="" />
|
<img src="" alt="" />
|
||||||
@ -64,29 +36,17 @@
|
|||||||
<li>姓名:{{ row.rySfzh }}</li>
|
<li>姓名:{{ row.rySfzh }}</li>
|
||||||
<li class="rowClass">
|
<li class="rowClass">
|
||||||
性别:
|
性别:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.ryXb" :options="D_BZ_XB" />
|
||||||
:tag="false"
|
|
||||||
:value="row.ryXb"
|
|
||||||
:options="D_BZ_XB"
|
|
||||||
/>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="rowClass">
|
<li class="rowClass">
|
||||||
籍贯:
|
籍贯:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.ryJg" :options="D_BZ_XZQHDM" />
|
||||||
:tag="false"
|
|
||||||
:value="row.ryJg"
|
|
||||||
:options="D_BZ_XZQHDM"
|
|
||||||
/>
|
|
||||||
</li>
|
</li>
|
||||||
<li>身份证:{{ row.rySfzh }}</li>
|
<li>身份证:{{ row.rySfzh }}</li>
|
||||||
<li>出生日期:{{ row.ryCsrq }}</li>
|
<li>出生日期:{{ row.ryCsrq }}</li>
|
||||||
<li class="rowClass">
|
<li class="rowClass">
|
||||||
民族:
|
民族:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.ryMz" :options="D_BZ_MZ" />
|
||||||
:tag="false"
|
|
||||||
:value="row.ryMz"
|
|
||||||
:options="D_BZ_MZ"
|
|
||||||
/>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -99,11 +59,7 @@
|
|||||||
<template #jzxx="{ row }">
|
<template #jzxx="{ row }">
|
||||||
<div class="rowClass">
|
<div class="rowClass">
|
||||||
户籍地区划:
|
户籍地区划:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.hjdQh" :options="D_BZ_XZQHDM" />
|
||||||
:tag="false"
|
|
||||||
:value="row.hjdQh"
|
|
||||||
:options="D_BZ_XZQHDM"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div>户籍派出所:{{ row.hjdPcsmc }}</div>
|
<div>户籍派出所:{{ row.hjdPcsmc }}</div>
|
||||||
<div>户籍地详址:{{ row.hjdXz }}</div>
|
<div>户籍地详址:{{ row.hjdXz }}</div>
|
||||||
@ -112,28 +68,16 @@
|
|||||||
<div>管辖单位:{{ row.gxSsbmmc }}</div>
|
<div>管辖单位:{{ row.gxSsbmmc }}</div>
|
||||||
<div class="rowClass">
|
<div class="rowClass">
|
||||||
人员级别:
|
人员级别:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.zdrRyjb" :options="D_GS_ZDR_RYJB" />
|
||||||
:tag="false"
|
|
||||||
:value="row.zdrRyjb"
|
|
||||||
:options="D_GS_ZDR_RYJB"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div>管控原因:{{ zdrLkyy }}</div>
|
<div>管控原因:{{ zdrLkyy }}</div>
|
||||||
<div class="rowClass">
|
<div class="rowClass">
|
||||||
管控状态:
|
管控状态:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.zdrBkZt" :options="D_GS_ZDR_BK_ZT" />
|
||||||
:tag="false"
|
|
||||||
:value="row.zdrBkZt"
|
|
||||||
:options="D_GS_ZDR_BK_ZT"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #zdrCzzt="{ row }">
|
<template #zdrCzzt="{ row }">
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.zdrCzzt" :options="D_GS_ZDR_CZZT" />
|
||||||
:tag="false"
|
|
||||||
:value="row.zdrCzzt"
|
|
||||||
:options="D_GS_ZDR_CZZT"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
<template #xtSjzt="{ row }">
|
<template #xtSjzt="{ row }">
|
||||||
<div>
|
<div>
|
||||||
@ -147,64 +91,28 @@
|
|||||||
<!-- 两群采集录入-->
|
<!-- 两群采集录入-->
|
||||||
<template #lqxxList>
|
<template #lqxxList>
|
||||||
<div class="boxlist">
|
<div class="boxlist">
|
||||||
<MyTable
|
<MyTable :tableData="tableDate.lqxxList" :tableColumn="tableDate.tableLqColumn"
|
||||||
:tableData="tableDate.lqxxList"
|
:tableHeight="tableDate.tableHeight" :key="tableDate.keyCount" :tableConfiger="tableDate.tableConfiger"
|
||||||
:tableColumn="tableDate.tableLqColumn"
|
:controlsWidth="tableDate.controlsWidth">
|
||||||
:tableHeight="tableDate.tableHeight"
|
|
||||||
:key="tableDate.keyCount"
|
|
||||||
:tableConfiger="tableDate.tableConfiger"
|
|
||||||
:controlsWidth="tableDate.controlsWidth"
|
|
||||||
>
|
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</FormMessage>
|
</FormMessage>
|
||||||
</div>
|
</div>
|
||||||
<!-- 列表弹窗 -->
|
<!-- 列表弹窗 -->
|
||||||
<DialogList
|
<DialogList :Single="false" :roleIds="roleIds" v-if="chooseShow" @chooseDate="chooseDate" :titleValue="chooseTitle"
|
||||||
:Single="false"
|
v-model="chooseShow" :bqLx="chooseType" bqDl="02"></DialogList>
|
||||||
:roleIds="roleIds"
|
<addFormPeo ref="addFormDiloag" @chooseDate="addFormPeoDate" @handleEditDate="handleEditDate" />
|
||||||
v-if="chooseShow"
|
|
||||||
@chooseDate="chooseDate"
|
|
||||||
:titleValue="chooseTitle"
|
|
||||||
v-model="chooseShow"
|
|
||||||
:bqLx="chooseType"
|
|
||||||
bqDl="02"
|
|
||||||
></DialogList>
|
|
||||||
<addFormPeo
|
|
||||||
ref="addFormDiloag"
|
|
||||||
@chooseDate="addFormPeoDate"
|
|
||||||
@handleEditDate="handleEditDate"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<selectionList
|
<selectionList :Single="false" :roleIds="selectroleId" v-if="selectionValue" @chooseDate="chooseSelectDate"
|
||||||
:Single="false"
|
:titleValue="chooseTitle" v-model="selectionValue">
|
||||||
:roleIds="selectroleId"
|
|
||||||
v-if="selectionValue"
|
|
||||||
@chooseDate="chooseSelectDate"
|
|
||||||
:titleValue="chooseTitle"
|
|
||||||
v-model="selectionValue"
|
|
||||||
>
|
|
||||||
</selectionList>
|
</selectionList>
|
||||||
<el-dialog v-model="dialogVisible" title="审核" width="500px">
|
<el-dialog v-model="dialogVisible" title="审核" width="500px">
|
||||||
<FormMessage
|
<FormMessage v-model="listQueryAuto" :formList="formAutoData" ref="elform">
|
||||||
v-model="listQueryAuto"
|
|
||||||
:formList="formAutoData"
|
|
||||||
ref="elform"
|
|
||||||
>
|
|
||||||
<!-- 自定义原因字段渲染 -->
|
<!-- 自定义原因字段渲染 -->
|
||||||
<template #shBtgyy>
|
<template #shBtgyy>
|
||||||
<el-form-item
|
<el-form-item label="原因" prop="shBtgyy" v-if="listQueryAuto.sftg == '0'" style="width: 100%">
|
||||||
label="原因"
|
<el-input type="textarea" v-model="listQueryAuto.shBtgyy" placeholder="请输入不通过原因" />
|
||||||
prop="shBtgyy"
|
|
||||||
v-if="listQueryAuto.sftg == '0'"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
type="textarea"
|
|
||||||
v-model="listQueryAuto.shBtgyy"
|
|
||||||
placeholder="请输入不通过原因"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</FormMessage>
|
</FormMessage>
|
||||||
@ -226,7 +134,6 @@ import selectionList from "./selectionList.vue";
|
|||||||
import addFormPeo from "./addFormPeo.vue";
|
import addFormPeo from "./addFormPeo.vue";
|
||||||
import ApprovalInfo from "./approvalInfo.vue";
|
import ApprovalInfo from "./approvalInfo.vue";
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
import * as rule from "@/utils/rules.js";
|
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
|
||||||
@ -389,7 +296,7 @@ const rules = reactive({
|
|||||||
xsbt: [{ required: true, message: "请输入线索标题", trigger: "blur" }]
|
xsbt: [{ required: true, message: "请输入线索标题", trigger: "blur" }]
|
||||||
});
|
});
|
||||||
const editpeo = ref();
|
const editpeo = ref();
|
||||||
onMounted(() => {});
|
onMounted(() => { });
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
const init = async (type, row) => {
|
const init = async (type, row) => {
|
||||||
console.log(row, "编辑数据", type);
|
console.log(row, "编辑数据", type);
|
||||||
@ -575,7 +482,7 @@ const submit = () => {
|
|||||||
emit("updateDate");
|
emit("updateDate");
|
||||||
close();
|
close();
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => { });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -591,16 +498,19 @@ defineExpose({ init });
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "~@/assets/css/layout.scss";
|
@import "~@/assets/css/layout.scss";
|
||||||
@import "~@/assets/css/element-plus.scss";
|
@import "~@/assets/css/element-plus.scss";
|
||||||
::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
|
|
||||||
|
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||||
color: #0072ff;
|
color: #0072ff;
|
||||||
background: rgba(0, 114, 255, 0.3);
|
background: rgba(0, 114, 255, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlist {
|
.boxlist {
|
||||||
width: 99%;
|
width: 99%;
|
||||||
height: 225px;
|
height: 225px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btns {
|
.btns {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
|
@ -1,120 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-form ref="elform" :model="listQuery" :rules="rules" :inline="true" label-position="right">
|
|
||||||
<el-divider content-position="left">群体信息</el-divider>
|
|
||||||
<el-form-item prop="qtmc" label="群体名称">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.qtmc" :placeholder="`请输入群体名称`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="qtbm" label="群体别名">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.qtbm" :placeholder="`请输入群体别名`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="qtjc" label="群体简称">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.qtjc" :placeholder="`请输入群体简称`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="qtlb" label="群体类别">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.qtlb" :placeholder="`请输入群体类别`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="clsj" label="成立时间">
|
|
||||||
<el-date-picker v-model="listQuery.clsj" type="date" value-format="YYYY-MM-DD" placeholder="请选择日期" style="width:100%;" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="fxdj" label="风险等级">
|
|
||||||
<MOSTY.Select filterable v-model="listQuery.fxdj" :dictEnum="[]" width="100%" clearable :placeholder="`请选择风险等级`"/>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item prop="ybjc" label="背景资料" style="width:100%">
|
|
||||||
<MOSTY.Other filterable v-model="listQuery.bjzl" style="width:100%" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="ybjc" label="两群采集录入" style="width:100%">
|
|
||||||
<MyTable
|
|
||||||
:tableData="pageData.tableData"
|
|
||||||
:tableColumn="pageData.tableColumn"
|
|
||||||
:tableHeight="pageData.tableHeight"
|
|
||||||
:key="pageData.keyCount"
|
|
||||||
:tableConfiger="pageData.tableConfiger"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-divider content-position="left">群体管辖信息</el-divider>
|
|
||||||
<el-form-item prop="gxdw" label="管辖单位">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.gxdw" :placeholder="`请输入管辖单位`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="gxxq" label="管辖辖区">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.gxxq" :placeholder="`请输入管辖辖区`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="lxr" label="联系人">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.lxr" :placeholder="`请输入联系人`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="lxfs" label="联系方式">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.lxfs" :placeholder="`请输入联系方式`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-divider content-position="left">审批信息</el-divider>
|
|
||||||
<el-form-item prop="sqr" label="申请人">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.sqr" :placeholder="`请输入申请人`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="sqdw" label="申请单位">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.sqdw" :placeholder="`请输入申请单位`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="shr" label="审核人">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.shr" :placeholder="`请输入审核人`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="shdw" label="审核单位">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.shdw" :placeholder="`请输入审核单位`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="spr" label="审批人">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.spr" :placeholder="`请输入审批人`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="spdw" label="审批单位">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.spdw" :placeholder="`请输入审批单位`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="jsdw" label="接收单位">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.jsdw" :placeholder="`请输入接收单位`"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="sffk" label="是否反馈">
|
|
||||||
<MOSTY.Other width="100%" clearable v-model="listQuery.sffk" :placeholder="`请输入是否反馈`"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import * as MOSTY from "@/components/MyComponents/index";
|
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
|
||||||
import { reactive,defineEmits,ref , defineExpose,} from 'vue'
|
|
||||||
const emits = defineEmits(["update:modelValue"]);
|
|
||||||
const elform = ref();
|
|
||||||
const listQuery = ref({});
|
|
||||||
const rules = reactive({
|
|
||||||
qtmc: [{ required: true, message: '请输入群体名称', trigger: 'blur' }],
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
const pageData = reactive({
|
|
||||||
tableData: [],
|
|
||||||
tableConfiger: {
|
|
||||||
rowHieght: 30,
|
|
||||||
showSelectType: "null",
|
|
||||||
loading: false,
|
|
||||||
haveControls:false,
|
|
||||||
showIndex:false
|
|
||||||
},
|
|
||||||
tableHeight:200,
|
|
||||||
tableColumn: [
|
|
||||||
{ label: "微信群", prop: "wxq"},
|
|
||||||
{ label: "QQ群", prop: "qqq"},
|
|
||||||
{ label: "群主", prop: "qz"},
|
|
||||||
{ label: "联系电话", prop: "lxdh"},
|
|
||||||
{ label: "群重要内容", prop: "zynr"},
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
const submit = (resfun) => {
|
|
||||||
elform.value.validate((valid) => {
|
|
||||||
if (!valid) return false;
|
|
||||||
resfun(listQuery.value);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
defineExpose({ submit });
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
|
|
||||||
</style>
|
|
@ -0,0 +1,201 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">流线索</span>
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" :loading="loading" @click="submit">保存</el-button>
|
||||||
|
<el-button @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
|
<template #gapdive>
|
||||||
|
<div style="width: 100%;height: 10px;" class="mb20">
|
||||||
|
<el-divider content-position="left">基础信息</el-divider>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #gapline>
|
||||||
|
<div style="width: 100%;height: 10px;" class="mb20">
|
||||||
|
<el-divider content-position="left">线索内容</el-divider>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #scfj>
|
||||||
|
<div style="width: 100%;padding-left: 50px;">
|
||||||
|
<div>上传附件:<span class="f12">(可附电子表格、Word文档、图像、音视频文件)</span> </div>
|
||||||
|
<div><MOSTY.Upload :showBtn="true" :limit="10" v-model="fjdz" /> </div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
<el-divider content-position="left"><span class="mr20">相关人员</span> </el-divider>
|
||||||
|
<MyTable
|
||||||
|
:tableData="pageForm.tableData"
|
||||||
|
:tableColumn="pageForm.tableColumn"
|
||||||
|
:tableHeight="pageForm.tableHeight"
|
||||||
|
:key="pageForm.keyCount"
|
||||||
|
:tableConfiger="pageForm.tableConfiger"
|
||||||
|
:controlsWidth="pageForm.controlsWidth"
|
||||||
|
>
|
||||||
|
<template #xb="{row}">
|
||||||
|
<DictTag :value="row.xb" :tag="false" :options="props.dic.D_BZ_XB" />
|
||||||
|
</template>
|
||||||
|
<template #bqList="{row}">
|
||||||
|
<div v-if="row.bqList">
|
||||||
|
<el-tag type="success" v-for="(it,idx) in row.bqList" :key="idx">{{ it.bqMc }}</el-tag >
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
||||||
|
const emit = defineEmits(["change"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dic: Object
|
||||||
|
});
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const rules = reactive({
|
||||||
|
xsMc: [{ required: true, message: "请输入线索名称", trigger: "blur" }],
|
||||||
|
xlLx: [{ required: true, message: "请选择线索类型", trigger: "change" }],
|
||||||
|
qbLy: [{ required: true, message: "请选择情报来源", trigger: "change" }],
|
||||||
|
});
|
||||||
|
const formData = ref([
|
||||||
|
{ prop: "gapdive", type: "slot",width:'100%' },
|
||||||
|
{ label: "线索名称", prop: "xsMc", type: "input" },
|
||||||
|
{ label: "线索类型", prop: "xlLx", type: "select", options:props.dic.D_GS_XS_LX },
|
||||||
|
{ label: "情报来源", prop: "qbLy", type: "select", options:props.dic.D_GS_XS_LY},
|
||||||
|
{ label: "指向开始时间", prop: "zxkssj", type: "datetime"},
|
||||||
|
{ label: "指向结束时间", prop: "zxjssj", type: "datetime"},
|
||||||
|
{ label: "指向地点", prop: "zxdz", type: "input"},
|
||||||
|
{ label: "所属专题", prop: "sszt", type: "select",options:props.dic.D_BZ_SSZT},
|
||||||
|
{ prop: "gapline", type: "slot",width:'100%' },
|
||||||
|
{ prop: "scfj", type: "slot",width:'100%'},
|
||||||
|
{ label: "线索内容", prop: "xsNr", type: "textarea",width:'100%'},
|
||||||
|
{ label: "群体类型", prop: "qtlx", type: "select",options:props.dic.D_GS_XS_QTLX },
|
||||||
|
{ label: "群体名称", prop: "qtmc", type: "input"},
|
||||||
|
{ label: "涉及人数", prop: "sjrs", type: "inputNumber"},
|
||||||
|
{ label: "线索报送单位", prop: "ssbmdm", type: "department"},
|
||||||
|
]);
|
||||||
|
const fjdz = ref()
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const loading = ref(false);
|
||||||
|
const elform = ref();
|
||||||
|
const pageForm = reactive({
|
||||||
|
tableData: [],
|
||||||
|
keyCount: 0,
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "checkBox",
|
||||||
|
loading: false,
|
||||||
|
haveControls:false
|
||||||
|
},
|
||||||
|
controlsWidth: 220,
|
||||||
|
tableColumn: [
|
||||||
|
{ label: "姓名", prop: "xm" },
|
||||||
|
{ label: "性别", prop: "xb",showSolt:true },
|
||||||
|
{ label: "身份证号", prop: "sfzh" },
|
||||||
|
{ label: "户籍地", prop: "hjdz" },
|
||||||
|
{ label: "户籍地派出所", prop: "hjdpcs" },
|
||||||
|
{ label: "标签", prop: "bqList",showSolt:true }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
onMounted(()=>{
|
||||||
|
tabHeightFn()
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
// 初始化数据
|
||||||
|
const init = (list) => {
|
||||||
|
|
||||||
|
fjdz.value = []
|
||||||
|
tabHeightFn()
|
||||||
|
dialogForm.value = true;
|
||||||
|
let peo = []
|
||||||
|
list.forEach(item => {
|
||||||
|
if(item.zdryList) peo = peo.concat(item.zdryList);
|
||||||
|
});
|
||||||
|
pageForm.tableData = peo.map((it) => {
|
||||||
|
return {
|
||||||
|
xm: it.ryXm,
|
||||||
|
xb: it.ryXb,
|
||||||
|
sfzh: it.rySfzh,
|
||||||
|
hjdz: it.xzdXz,
|
||||||
|
hjdpcs: it.hjdPcsmc,
|
||||||
|
hjdpcsdm: it.hjdPcsdm,
|
||||||
|
bqList: it.bqList || []
|
||||||
|
};
|
||||||
|
});
|
||||||
|
pageForm.keyCount++;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const submit = () => {
|
||||||
|
elform.value.submit((data) => {
|
||||||
|
let params = { ...data ,ryList:pageForm.tableData,cjLx:'0'};
|
||||||
|
params.fjdz = fjdz.value.length > 0 ? fjdz.value.join(','):'';
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(params, '/mosty-gsxt/qbcj/add').then((res) => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$message({ type: "success", message: "成功" });
|
||||||
|
emit("change");
|
||||||
|
close();
|
||||||
|
}).catch(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
fjdz.value = []
|
||||||
|
listQuery.value = {};
|
||||||
|
dialogForm.value = false;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
pageForm.tableHeight = window.innerHeight - 720;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
</style>
|
@ -2,63 +2,64 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<div class="titleBox">
|
||||||
<PageTitle title="重点群体管理">
|
<PageTitle title="重点群体管理">
|
||||||
<el-button type="primary" size="small" v-for="it in btns" :key="it">
|
<el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
||||||
{{ it }}</el-button
|
<template #reference>
|
||||||
>
|
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请
|
||||||
<el-button type="primary" size="small" @click="addEdit('add', '')">
|
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
|
||||||
<span style="vertical-align: middle">新增</span>
|
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="danger" size="small" @click="addEdit('add', '')">
|
</template>
|
||||||
<el-icon style="vertical-align: middle"><Dete /></el-icon>
|
<div class="flex just-center">
|
||||||
<span style="vertical-align: middle">批量删除</span>
|
<el-button size="small" type="primary" v-for="it in D_GS_BK_SQLX" :key="it.dm"
|
||||||
|
@click="handleApplication(it)">{{
|
||||||
|
it.zdmc }}</el-button>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
<el-popover placement="bottom" :visible="visiblefp" :width="400" trigger="click">
|
||||||
|
<template #reference>
|
||||||
|
<el-button size="small" type="primary" @click="(visiblefp = !visiblefp), (visible = false)">指定分配</el-button>
|
||||||
|
</template>
|
||||||
|
<div>
|
||||||
|
<el-input readonly v-model="obj.fpmc" @click="chooseUserVisible = true" placeholder="请选择民警"></el-input>
|
||||||
|
<div class="flex just-center mt10">
|
||||||
|
<el-button @click="(visiblefp = false), (obj = {})" size="small">取消</el-button>
|
||||||
|
<el-button type="primary" @click="handlefp" size="small">分配</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
|
||||||
|
<el-button size="small" type="primary" @click="handleZxs">转线索</el-button>
|
||||||
|
<el-button size="small" type="primary" @click="handleMove">移交管控</el-button>
|
||||||
|
<el-button type="primary" size="small" @click="addEdit('add', '')">
|
||||||
|
<el-icon style="vertical-align: middle">
|
||||||
|
<CirclePlus />
|
||||||
|
</el-icon>
|
||||||
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
</div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox">
|
||||||
<Search
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
:searchArr="searchConfiger"
|
|
||||||
@submit="onSearch"
|
|
||||||
:key="pageData.keyCount"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:tableData="pageData.tableData"
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||||
:tableColumn="pageData.tableColumn"
|
@chooseData="chooseData">
|
||||||
:tableHeight="pageData.tableHeight"
|
|
||||||
:key="pageData.keyCount"
|
|
||||||
:tableConfiger="pageData.tableConfiger"
|
|
||||||
:controlsWidth="pageData.controlsWidth"
|
|
||||||
@chooseData="chooseData"
|
|
||||||
>
|
|
||||||
<template #jbxx="{ row }">
|
<template #jbxx="{ row }">
|
||||||
<div>
|
<div>
|
||||||
<img src="" alt="" />
|
<img src="" alt="" />
|
||||||
<ul>
|
<ul>
|
||||||
<li>群体名称:{{ row.qtMc }}</li>
|
<li>群体名称:{{ row.qtMc }}</li>
|
||||||
<!-- <li>所属辖区:</li> -->
|
|
||||||
<li class="rowClass">
|
<li class="rowClass">
|
||||||
风险等级:
|
风险等级:
|
||||||
<DictTag
|
<DictTag :tag="false" :value="row.qtFxdj" :options="D_GS_ZDQT_FXDJ" />
|
||||||
:tag="false"
|
|
||||||
:value="row.qtFxdj"
|
|
||||||
:options="D_GS_ZDQT_FXDJ"
|
|
||||||
/>
|
|
||||||
</li>
|
</li>
|
||||||
<li>创建时间:{{ row.xtCjsj }}</li>
|
<li>创建时间:{{ row.xtCjsj }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<el-button
|
<el-button type="primary" size="small" v-for="(item, index) in row.bqList" :key="index">
|
||||||
type="primary"
|
{{ item.bqMc }}</el-button>
|
||||||
size="small"
|
|
||||||
v-for="(item, index) in row.bqList" :key="index"
|
|
||||||
>
|
|
||||||
{{ item.bqMc }}</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #bgxx="{ row }">
|
<template #bgxx="{ row }">
|
||||||
@ -66,7 +67,6 @@
|
|||||||
<div>创建单位:{{ row.xtCjbmmc }}</div>
|
<div>创建单位:{{ row.xtCjbmmc }}</div>
|
||||||
</template>
|
</template>
|
||||||
<template #gkxx="{ row }">
|
<template #gkxx="{ row }">
|
||||||
<!-- <div>群体标签:{{ }}</div> -->
|
|
||||||
<div>管辖单位:{{ row.gxSsdwmc }}</div>
|
<div>管辖单位:{{ row.gxSsdwmc }}</div>
|
||||||
<div>列控原因:{{ row.zdrLkyy }}</div>
|
<div>列控原因:{{ row.zdrLkyy }}</div>
|
||||||
<div>开始时间:{{ row.startTime }}</div>
|
<div>开始时间:{{ row.startTime }}</div>
|
||||||
@ -81,58 +81,44 @@
|
|||||||
|
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link
|
<el-link size="small" v-if="row.qtZt == '01' || row.qtZt == '03' || row.qtZt == '06'"
|
||||||
v-if="row.qtZt == '01' || row.qtZt == '03' || row.qtZt == '06'"
|
@click="openDetail(row)">送审</el-link>
|
||||||
@click="openDetail(row)"
|
<el-link size="small" type="success" @click="addEdit('edit', row)" v-if="row.qtZt !== '05'">编辑</el-link>
|
||||||
>送审</el-link
|
<el-link size="small" type="primary" @click="infoList('info', row)">查看</el-link>
|
||||||
>
|
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
|
||||||
<el-link
|
|
||||||
size="small"
|
|
||||||
type="success"
|
|
||||||
@click="addEdit('edit', row)"
|
|
||||||
v-if="row.qtZt !== '05'"
|
|
||||||
>编辑</el-link
|
|
||||||
>
|
|
||||||
<el-link size="small" type="primary" @click="infoList('info', row)"
|
|
||||||
>查看</el-link
|
|
||||||
>
|
|
||||||
<el-link size="small" type="danger" @click="deleteRow(row)"
|
|
||||||
>删除</el-link
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||||
@changeNo="changeNo"
|
|
||||||
@changeSize="changeSize"
|
|
||||||
:tableHeight="pageData.tableHeight"
|
|
||||||
:pageConfiger="{
|
|
||||||
...pageData.pageConfiger,
|
...pageData.pageConfiger,
|
||||||
total: pageData.total
|
total: pageData.total
|
||||||
}"
|
}"></Pages>
|
||||||
></Pages>
|
|
||||||
</div>
|
</div>
|
||||||
<el-dialog
|
<el-dialog v-model="dialogVisible" title="发起送审" width="500px" :before-close="handleClose">
|
||||||
v-model="dialogVisible"
|
|
||||||
title="发起送审"
|
|
||||||
width="500px"
|
|
||||||
:before-close="handleClose"
|
|
||||||
>
|
|
||||||
<span>是否要发起送审</span>
|
<span>是否要发起送审</span>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button @click="dialogVisible = false">取消</el-button>
|
<el-button @click="dialogVisible = false">取消</el-button>
|
||||||
<el-button type="primary" @click="autoEdit()"> 确定 </el-button>
|
<el-button type="primary" @click="autoEdit"> 确定 </el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 编辑 -->
|
<!-- 编辑 - 新增-->
|
||||||
<EditForm @updateDate="updateDate" ref="editFormDiloag" />
|
<EditForm v-if="show" @updateDate="getList" ref="editFormDiloag" />
|
||||||
|
|
||||||
<!-- 详情 -->
|
<!-- 详情 -->
|
||||||
<DetailForm ref="detailDiloag" />
|
<DetailForm ref="detailDiloag" />
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 选择用户 -->
|
||||||
|
<ChooseUser v-model="chooseUserVisible" @choosedUsers="handleUserSelected" :roleIds="roleIds" /> <!-- 转线索 -->
|
||||||
|
<ZxsForm v-if="showzxs" ref="zxsDilof" @change="getList" :dic="{ D_BZ_SF, D_BZ_XB, D_GS_XS_LY, D_BZ_SSZT, D_GS_XS_LX, D_GS_XS_QTLX }">
|
||||||
|
</ZxsForm>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import ZxsForm from "./components/zxsForm.vue";
|
||||||
|
import ChooseUser from "@/components/MyComponents/ChooseUser/index.vue";
|
||||||
import DetailForm from "./components/infoForm.vue";
|
import DetailForm from "./components/infoForm.vue";
|
||||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
@ -141,41 +127,52 @@ import Search from "@/components/aboutTable/Search.vue";
|
|||||||
import EditForm from "./components/addForm.vue";
|
import EditForm from "./components/addForm.vue";
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
|
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
const showzxs = ref(false);
|
||||||
const {
|
const {
|
||||||
|
D_GS_BK_SQLX,
|
||||||
D_GS_ZDQT_FXDJ,
|
D_GS_ZDQT_FXDJ,
|
||||||
D_GS_ZDR_RYJB,
|
D_GS_ZDR_RYJB,
|
||||||
D_GS_ZDQT_LB,
|
D_GS_ZDQT_LB,
|
||||||
D_GS_ZDR_BK_ZT,
|
D_GS_ZDR_BK_ZT,
|
||||||
D_GS_BQ_LX,
|
D_GS_BQ_LX,
|
||||||
D_GS_ZDQT_ZT
|
D_GS_ZDQT_ZT,
|
||||||
|
D_BZ_SF,
|
||||||
|
D_BZ_XB,
|
||||||
|
D_GS_XS_LY,
|
||||||
|
D_BZ_SSZT,
|
||||||
|
D_GS_XS_LX,
|
||||||
|
D_GS_XS_QTLX
|
||||||
} = proxy.$dict(
|
} = proxy.$dict(
|
||||||
|
"D_GS_BK_SQLX",
|
||||||
"D_GS_ZDQT_FXDJ",
|
"D_GS_ZDQT_FXDJ",
|
||||||
"D_GS_ZDR_RYJB",
|
"D_GS_ZDR_RYJB",
|
||||||
"D_GS_ZDQT_LB",
|
"D_GS_ZDQT_LB",
|
||||||
"D_GS_ZDR_BK_ZT",
|
"D_GS_ZDR_BK_ZT",
|
||||||
"D_GS_BQ_LX",
|
"D_GS_BQ_LX",
|
||||||
"D_GS_ZDQT_ZT"
|
"D_GS_ZDQT_ZT",
|
||||||
|
"D_BZ_SF",
|
||||||
|
"D_BZ_XB",
|
||||||
|
"D_GS_XS_LY",
|
||||||
|
"D_BZ_SSZT",
|
||||||
|
"D_GS_XS_LX",
|
||||||
|
"D_GS_XS_QTLX"
|
||||||
); //获取字典数据
|
); //获取字典数据
|
||||||
|
const show = ref(false);
|
||||||
|
const chooseUserVisible = ref(false); //审批流程
|
||||||
|
const roleIds = ref([]); //角色id
|
||||||
const editFormDiloag = ref();
|
const editFormDiloag = ref();
|
||||||
const detailDiloag = ref();
|
const detailDiloag = ref();
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
const autoId = ref();
|
const autoId = ref();
|
||||||
const dialogVisible = ref(false);
|
const dialogVisible = ref(false);
|
||||||
const btns = reactive([
|
const visible = ref(false);
|
||||||
"一键布控",
|
const visiblefp = ref(false);
|
||||||
"维护群体",
|
const zxsDilof = ref();
|
||||||
"矛盾化解",
|
const obj = ref({
|
||||||
"转指令",
|
fpmc: ""
|
||||||
"转线索",
|
});
|
||||||
"转督导",
|
|
||||||
"转合成",
|
|
||||||
"移交管控",
|
|
||||||
"批量导入",
|
|
||||||
"导出"
|
|
||||||
]);
|
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{
|
{
|
||||||
label: "群体名称",
|
label: "群体名称",
|
||||||
@ -197,12 +194,6 @@ const searchConfiger = ref([
|
|||||||
showType: "select",
|
showType: "select",
|
||||||
options: D_GS_ZDR_RYJB
|
options: D_GS_ZDR_RYJB
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: "成员姓名",
|
|
||||||
prop: "cyXm ",
|
|
||||||
placeholder: "请输入成员姓名",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "群体类别",
|
label: "群体类别",
|
||||||
prop: "qtLb",
|
prop: "qtLb",
|
||||||
@ -210,42 +201,6 @@ const searchConfiger = ref([
|
|||||||
showType: "select",
|
showType: "select",
|
||||||
options: D_GS_ZDQT_LB
|
options: D_GS_ZDQT_LB
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: "成员身份证号",
|
|
||||||
prop: "cySfzh",
|
|
||||||
placeholder: "请输入成员身份证号",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "群体大类",
|
|
||||||
prop: "qtDl",
|
|
||||||
placeholder: "请输入群体大类",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "群体细类",
|
|
||||||
prop: "qtXl",
|
|
||||||
placeholder: "请输入群体细类",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "管辖单位名称",
|
|
||||||
prop: "gxSsdwmc",
|
|
||||||
placeholder: "请输入管辖单位名称",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "开始时间",
|
|
||||||
prop: "startTime",
|
|
||||||
placeholder: "请输入开始时间",
|
|
||||||
showType: "date"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "截至时间",
|
|
||||||
prop: "endTime",
|
|
||||||
placeholder: "请输入截至时间",
|
|
||||||
showType: "date"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "布控状态",
|
label: "布控状态",
|
||||||
prop: "zdrBkZt",
|
prop: "zdrBkZt",
|
||||||
@ -263,13 +218,7 @@ const searchConfiger = ref([
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
tableData: [],
|
||||||
{
|
|
||||||
img: "",
|
|
||||||
jbxx: "",
|
|
||||||
wkrs: "1/5"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
@ -286,7 +235,7 @@ const pageData = reactive({
|
|||||||
{ label: "群体基本信息", prop: "jbxx", showSolt: true },
|
{ label: "群体基本信息", prop: "jbxx", showSolt: true },
|
||||||
{ label: "背景信息", prop: "bgxx", showSolt: true },
|
{ label: "背景信息", prop: "bgxx", showSolt: true },
|
||||||
{ label: "管控信息", prop: "gkxx", showSolt: true },
|
{ label: "管控信息", prop: "gkxx", showSolt: true },
|
||||||
{ label: "稳控人数", prop: "wkrs", showSolt: true, width: 80 },
|
{ label: "稳控人数", prop: "wkrs", showSolt: true },
|
||||||
{ label: "状态", prop: "qtZt", showSolt: true }
|
{ label: "状态", prop: "qtZt", showSolt: true }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@ -315,15 +264,7 @@ const autoEdit = () => {
|
|||||||
ElMessage.error("提交失败");
|
ElMessage.error("提交失败");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const updateDate = () => {
|
|
||||||
getList();
|
|
||||||
};
|
|
||||||
//选择类型
|
|
||||||
const handleType = (val) => {
|
|
||||||
pageData.keyCount++;
|
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
|
||||||
getList();
|
|
||||||
};
|
|
||||||
// 搜索
|
// 搜索
|
||||||
const onSearch = (val) => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = { ...val };
|
queryFrom.value = { ...val };
|
||||||
@ -344,7 +285,7 @@ const changeSize = (val) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = (val) => {
|
const getList = () => {
|
||||||
pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
let url = "/mosty-gsxt/tbGsxtZdqt/selectPage";
|
let url = "/mosty-gsxt/tbGsxtZdqt/selectPage";
|
||||||
@ -361,7 +302,80 @@ const getList = (val) => {
|
|||||||
|
|
||||||
// 详情
|
// 详情
|
||||||
const addEdit = (type, row) => {
|
const addEdit = (type, row) => {
|
||||||
|
show.value = true;
|
||||||
|
visible.value = false;
|
||||||
|
nextTick(() => {
|
||||||
editFormDiloag.value.init(type, row);
|
editFormDiloag.value.init(type, row);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const ids = ref([]);
|
||||||
|
const choosList = ref([]);
|
||||||
|
const chooseData = (data) => {
|
||||||
|
ids.value = Array.isArray(data) ? data.map((item) => item.id) : [];
|
||||||
|
choosList.value = Array.isArray(data) ? data : [];
|
||||||
|
};
|
||||||
|
// 选择申请数据数据
|
||||||
|
const handleApplication = () => {
|
||||||
|
if (ids.value.length === 0)
|
||||||
|
return ElMessage.error("请先选择需要布控的重点群体");
|
||||||
|
qcckPost({ ids: ids.value }, "/mosty-gsxt/tbGsxtZdqt/addBksq")
|
||||||
|
.then(() => {
|
||||||
|
ElMessage.success("申请成功");
|
||||||
|
visible.value = false;
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
ElMessage.error("布控申请失败");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleUserSelected = (val) => {
|
||||||
|
obj.value.fpmc = val[0].userName;
|
||||||
|
obj.value.fpid = val[0].id;
|
||||||
|
};
|
||||||
|
const handlefp = () => {
|
||||||
|
if (ids.value.length === 0)
|
||||||
|
return ElMessage.error("请先选择需要分配的重点群体");
|
||||||
|
qcckPost(
|
||||||
|
{ ids: ids.value, uid: obj.value.fpid },
|
||||||
|
"/mosty-gsxt/tbGsxtZdqt/addGkmj"
|
||||||
|
)
|
||||||
|
.then(() => {
|
||||||
|
ElMessage.success("分配成功");
|
||||||
|
visible.value = false;
|
||||||
|
visiblefp.value = false;
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
ElMessage.error("分配失败");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 移交管控
|
||||||
|
const handleMove = () => {
|
||||||
|
if (ids.value.length === 0)
|
||||||
|
return ElMessage.error("请先选择需要移交管控的重点群体");
|
||||||
|
proxy
|
||||||
|
.$confirm("是否确定移交?", "警告", { type: "warning" })
|
||||||
|
.then(() => {
|
||||||
|
qcckPost({ ids: ids.value }, "/mosty-gsxt/tbGsxtZdqt/addSfyj")
|
||||||
|
.then(() => {
|
||||||
|
ElMessage.success("移交管控成功");
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
ElMessage.error("移交管控失败");
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => { });
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleZxs = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要转线索的重点群体");
|
||||||
|
showzxs.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
zxsDilof.value.init(choosList.value);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
@ -379,6 +393,7 @@ defineExpose({ infoList });
|
|||||||
.el-loading-mask {
|
.el-loading-mask {
|
||||||
background: rgba(0, 0, 0, 0.5) !important;
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rowClass {
|
.rowClass {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -214,7 +214,6 @@ const multipleUserRef = ref(null);
|
|||||||
const emits = defineEmits(["update:modelValue", "chooseDate"]);
|
const emits = defineEmits(["update:modelValue", "chooseDate"]);
|
||||||
const type = ref("标签大类");
|
const type = ref("标签大类");
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
console.log(props.dic.D_GS_BQ_ZL, "props.dic.D_GS_BQ_ZL");
|
|
||||||
tabs.value = props.dic.D_GS_BQ_ZL;
|
tabs.value = props.dic.D_GS_BQ_ZL;
|
||||||
activeTab.value = tabs.value?.[0]?.dm || "01";
|
activeTab.value = tabs.value?.[0]?.dm || "01";
|
||||||
handleFilter();
|
handleFilter();
|
||||||
|
@ -3,23 +3,12 @@
|
|||||||
<div class="head_box">
|
<div class="head_box">
|
||||||
<span class="title">{{ title }}重点人管理</span>
|
<span class="title">{{ title }}重点人管理</span>
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button type="primary" size="small" :loading="loading" @click="submit">保存</el-button >
|
||||||
type="primary"
|
|
||||||
size="small"
|
|
||||||
:loading="loading"
|
|
||||||
@click="submit"
|
|
||||||
>保存</el-button
|
|
||||||
>
|
|
||||||
<el-button size="small" @click="close">关闭</el-button>
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
<FormMessage
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
v-model="listQuery"
|
|
||||||
:formList="formData"
|
|
||||||
ref="elform"
|
|
||||||
:rules="rules"
|
|
||||||
>
|
|
||||||
<template #basic>
|
<template #basic>
|
||||||
<el-divider content-position="left">基础管理</el-divider>
|
<el-divider content-position="left">基础管理</el-divider>
|
||||||
</template>
|
</template>
|
||||||
@ -45,22 +34,19 @@
|
|||||||
:tableHeight="tableDate.tableHeight"
|
:tableHeight="tableDate.tableHeight"
|
||||||
:key="tableDate.keyCount"
|
:key="tableDate.keyCount"
|
||||||
:tableConfiger="tableDate.tableConfiger"
|
:tableConfiger="tableDate.tableConfiger"
|
||||||
:controlsWidth="tableDate.controlsWidth"
|
:controlsWidth="tableDate.controlsWidth">
|
||||||
>
|
|
||||||
<template #bqLb="{ row }">
|
<template #bqLb="{ row }">
|
||||||
<DictTag :value="row.bqLb" :tag="false" :options="D_GS_BQ_LB" />
|
<DictTag :value="row.bqLb" :tag="false" :options="props.dic.D_GS_BQ_LB" />
|
||||||
</template>
|
</template>
|
||||||
<template #bqLx="{ row }">
|
<template #bqLx="{ row }">
|
||||||
<DictTag :value="row.bqLx" :tag="false" :options="D_GS_BQ_LX" />
|
<DictTag :value="row.bqLx" :tag="false" :options="props.dic.D_GS_BQ_LX" />
|
||||||
</template>
|
</template>
|
||||||
<template #bqZl="{ row }">
|
<template #bqZl="{ row }">
|
||||||
<DictTag :value="row.bqZl" :tag="false" :options="D_GS_BQ_ZL" />
|
<DictTag :value="row.bqZl" :tag="false" :options="props.dic.D_GS_BQ_ZL" />
|
||||||
</template>
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="danger" @click="delDictItem(row.bqId)"
|
<el-link type="danger" @click="delDictItem(row.bqId)">删除</el-link>
|
||||||
>删除</el-link
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
@ -68,92 +54,37 @@
|
|||||||
|
|
||||||
<!-- 管辖单位 -->
|
<!-- 管辖单位 -->
|
||||||
<template #gxSsbmdm>
|
<template #gxSsbmdm>
|
||||||
<el-select
|
<el-select v-model="listQuery.gxSsbmdm" placeholder="请选择管辖单位" style="width: 240px" @change="handleDeptChange('gxSsbmmc', $event)" >
|
||||||
v-model="listQuery.gxSsbmdm"
|
<el-option v-for="item in deptList" :key="item.value" :label="item.label" :value="item.value.toString()"/>
|
||||||
placeholder="请选择管辖单位"
|
|
||||||
style="width: 240px"
|
|
||||||
@change="handleDeptChange('gxSsbmmc', $event)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<!-- 户籍派出所 -->
|
<!-- 户籍派出所 -->
|
||||||
<template #hjdPcsdm>
|
<template #hjdPcsdm>
|
||||||
<el-select
|
<el-select v-model="listQuery.hjdPcsdm" placeholder="请选择户籍派出所" style="width: 240px" @change="handleDeptChange('hjdPcsmc', $event)">
|
||||||
v-model="listQuery.hjdPcsdm"
|
<el-option v-for="item in deptList" :key="item.value" :label="item.label" :value="item.value.toString()"/>
|
||||||
placeholder="请选择户籍派出所"
|
|
||||||
style="width: 240px"
|
|
||||||
@change="handleDeptChange('hjdPcsmc', $event)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<!-- 诉求单位 -->
|
<!-- 诉求单位 -->
|
||||||
<template #sqSsbmdm>
|
<template #sqSsbmdm>
|
||||||
<el-select
|
<el-select v-model="listQuery.sqSsbmdm" placeholder="请选择户籍派出所" style="width: 240px" @change="handleDeptChange('sqSsbmmc', $event)" >
|
||||||
v-model="listQuery.sqSsbmdm"
|
<el-option v-for="item in deptList" :key="item.value" :label="item.label" :value="item.value.toString()"/>
|
||||||
placeholder="请选择户籍派出所"
|
|
||||||
style="width: 240px"
|
|
||||||
@change="handleDeptChange('sqSsbmmc', $event)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<!-- 现住地派出所 -->
|
<!-- 现住地派出所 -->
|
||||||
<template #xzdPcsdm>
|
<template #xzdPcsdm>
|
||||||
<el-select
|
<el-select v-model="listQuery.xzdPcsdm" placeholder="请选择现住地派出所" style="width: 240px" @change="handleDeptChange('xzdPcsmc', $event)">
|
||||||
v-model="listQuery.xzdPcsdm"
|
<el-option v-for="item in deptList" :key="item.value" :label="item.label" :value="item.value.toString()"/>
|
||||||
placeholder="请选择现住地派出所"
|
|
||||||
style="width: 240px"
|
|
||||||
@change="handleDeptChange('xzdPcsmc', $event)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
<!-- 责任单位 -->
|
<!-- 责任单位 -->
|
||||||
<template #zrSsbmdm>
|
<template #zrSsbmdm>
|
||||||
<el-select
|
<el-select v-model="listQuery.zrSsbmdm" placeholder="请选择责任单位" style="width: 240px" @change="handleDeptChange('zrSsbmmc', $event)">
|
||||||
v-model="listQuery.zrSsbmdm"
|
<el-option v-for="item in deptList" :key="item.value" :label="item.label" :value="item.value.toString()"/>
|
||||||
placeholder="请选择责任单位"
|
|
||||||
style="width: 240px"
|
|
||||||
@change="handleDeptChange('zrSsbmmc', $event)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
</FormMessage>
|
</FormMessage>
|
||||||
<!-- 列表弹窗 -->
|
<!-- 列表弹窗 -->
|
||||||
<TagSelectorDialog
|
<TagSelectorDialog v-model="chooseShow" ref="tagDialog" @chooseDate="handleTagSelect" :dic="props.dic"/>
|
||||||
v-model="chooseShow"
|
|
||||||
ref="tagDialog"
|
|
||||||
@chooseDate="handleTagSelect"
|
|
||||||
:dic="{ D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX }"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -163,129 +94,47 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
|||||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
import TagSelectorDialog from "./TagSelectorDialog.vue";
|
import TagSelectorDialog from "./TagSelectorDialog.vue";
|
||||||
import * as rule from "@/utils/rules.js";
|
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
||||||
import {
|
|
||||||
ref,
|
|
||||||
defineExpose,
|
|
||||||
reactive,
|
|
||||||
onMounted,
|
|
||||||
defineEmits,
|
|
||||||
getCurrentInstance,
|
|
||||||
nextTick
|
|
||||||
} from "vue";
|
|
||||||
import { selectUserDeptPage } from "@/api/user-manage";
|
import { selectUserDeptPage } from "@/api/user-manage";
|
||||||
const emit = defineEmits(["updateDate"]);
|
const emit = defineEmits(["updateDate"]);
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dic: Object
|
dic: Object
|
||||||
});
|
});
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
const {
|
|
||||||
D_GS_BK_SSJZ,
|
|
||||||
D_GS_ZDR_RYJB,
|
|
||||||
D_GS_SSYJ,
|
|
||||||
D_GS_BQ_DJ,
|
|
||||||
D_BZ_XZQHDM,
|
|
||||||
D_BZ_MZ,
|
|
||||||
D_BZ_XB,
|
|
||||||
D_GS_ZDR_CZZT,
|
|
||||||
D_GS_BQ_ZL,
|
|
||||||
D_GS_BQ_LB,
|
|
||||||
D_GS_BQ_LX,
|
|
||||||
D_GS_ZDR_YJDJ
|
|
||||||
} = proxy.$dict(
|
|
||||||
"D_GS_BK_SSJZ",
|
|
||||||
"D_GS_ZDR_RYJB",
|
|
||||||
"D_GS_SSYJ",
|
|
||||||
"D_GS_BQ_DJ",
|
|
||||||
"D_BZ_XZQHDM",
|
|
||||||
"D_BZ_MZ",
|
|
||||||
"D_BZ_XB",
|
|
||||||
"D_GS_ZDR_CZZT",
|
|
||||||
"D_GS_BQ_ZL",
|
|
||||||
"D_GS_BQ_LB",
|
|
||||||
"D_GS_BQ_LX",
|
|
||||||
"D_GS_ZDR_YJDJ"
|
|
||||||
); //获取字典数据
|
|
||||||
const tagDialog = ref();
|
const tagDialog = ref();
|
||||||
|
|
||||||
const dialogForm = ref(false); //弹窗
|
const dialogForm = ref(false); //弹窗
|
||||||
const formData = ref([
|
const formData = ref([
|
||||||
{ label: "", prop: "basic", type: "slot", width: "100%" },
|
{ label: "", prop: "basic", type: "slot", width: "100%" },
|
||||||
{ label: "姓名", prop: "ryXm", type: "input" },
|
{ label: "姓名", prop: "ryXm", type: "input" },
|
||||||
{ label: "性别", prop: "ryXb", type: "select", options: D_BZ_XB },
|
{ label: "性别", prop: "ryXb", type: "select", options: props.dic.D_BZ_XB },
|
||||||
{ label: "民族", prop: "ryMz", type: "select", options: D_BZ_MZ },
|
{ label: "民族", prop: "ryMz", type: "select", options: props.dic.D_BZ_MZ },
|
||||||
{ label: "身份证号", prop: "rySfzh", type: "input" },
|
{ label: "身份证号", prop: "rySfzh", type: "input" },
|
||||||
{ label: "联系电话", prop: "ryLxdh", type: "input" },
|
{ label: "联系电话", prop: "ryLxdh", type: "input" },
|
||||||
{ label: "出生日期", prop: "ryCsrq", type: "date" },
|
{ label: "出生日期", prop: "ryCsrq", type: "date" },
|
||||||
{ label: "籍贯", prop: "ryJg", type: "select", options: D_BZ_XZQHDM },
|
{ label: "籍贯", prop: "ryJg", type: "select", options: props.dic.D_BZ_XZQHDM },
|
||||||
{
|
{ label: "级别", prop: "zdrRyjb", type: "select", options: props.dic.D_GS_ZDR_RYJB },
|
||||||
label: "级别",
|
{ label: "预警等级", prop: "zdrYjdj", type: "select", options: props.dic.D_GS_ZDR_YJDJ },
|
||||||
prop: "zdrRyjb",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_ZDR_RYJB
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "预警等级",
|
|
||||||
prop: "zdrYjdj",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_ZDR_YJDJ
|
|
||||||
},
|
|
||||||
{ label: "", prop: "address", type: "slot", width: "100%" },
|
{ label: "", prop: "address", type: "slot", width: "100%" },
|
||||||
{ label: "户籍地区划", prop: "hjdQh", type: "select", options: D_BZ_XZQHDM },
|
{ label: "户籍地区划", prop: "hjdQh", type: "select", options: props.dic.D_BZ_XZQHDM },
|
||||||
{ label: "户籍地详址", prop: "hjdXz", type: "input" },
|
{ label: "户籍地详址", prop: "hjdXz", type: "input" },
|
||||||
{
|
{ label: "户籍地派出所", prop: "hjdPcsdm", type: "slot" },
|
||||||
label: "户籍地派出所",
|
{ label: "现住地区划", prop: "xzdQh", type: "select", options: props.dic.D_BZ_XZQHDM },
|
||||||
prop: "hjdPcsdm",
|
|
||||||
type: "slot"
|
|
||||||
},
|
|
||||||
{ label: "现住地区划", prop: "xzdQh", type: "select", options: D_BZ_XZQHDM },
|
|
||||||
{ label: "现住地详址", prop: "xzdXz", type: "input" },
|
{ label: "现住地详址", prop: "xzdXz", type: "input" },
|
||||||
{
|
{ label: "现住地派出所", prop: "xzdPcsdm", type: "slot" },
|
||||||
label: "现住地派出所",
|
|
||||||
prop: "xzdPcsdm",
|
|
||||||
type: "slot"
|
|
||||||
},
|
|
||||||
{ label: "", prop: "jurisdiction", type: "slot", width: "100%" },
|
{ label: "", prop: "jurisdiction", type: "slot", width: "100%" },
|
||||||
{
|
{ label: "管辖单位", prop: "gxSsbmdm", type: "slot" },
|
||||||
label: "管辖单位",
|
{ label: "诉求单位", prop: "sqSsbmdm", type: "slot" },
|
||||||
prop: "gxSsbmdm",
|
{ label: "责任单位", prop: "zrSsbmdm", type: "slot" },
|
||||||
type: "slot"
|
{ label: "所属警种", prop: "zdrSsjz", type: "select", options: props.dic.D_GS_BK_SSJZ },
|
||||||
},
|
{ label: "涉及警种", prop: "zdrSjjz", type: "select", options: props.dic.D_GS_BK_SSJZ, multiple: true },
|
||||||
{
|
|
||||||
label: "诉求单位",
|
|
||||||
prop: "sqSsbmdm",
|
|
||||||
type: "slot"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "责任单位",
|
|
||||||
prop: "zrSsbmdm",
|
|
||||||
type: "slot"
|
|
||||||
},
|
|
||||||
{ label: "所属警种", prop: "zdrSsjz", type: "select", options: D_GS_BK_SSJZ },
|
|
||||||
{
|
|
||||||
label: "涉及警种",
|
|
||||||
prop: "zdrSjjz",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_BK_SSJZ,
|
|
||||||
multiple: true
|
|
||||||
},
|
|
||||||
{ label: "管控民警姓名", prop: "gkMjXm", type: "input" },
|
{ label: "管控民警姓名", prop: "gkMjXm", type: "input" },
|
||||||
{ label: "管控民警警号", prop: "gkMjJh", type: "input" },
|
{ label: "管控民警警号", prop: "gkMjJh", type: "input" },
|
||||||
{ label: "管控原因", prop: "zdrLkyy", type: "textarea", width: "100%" },
|
{ label: "管控原因", prop: "zdrLkyy", type: "textarea", width: "100%" },
|
||||||
{ label: "", prop: "status", type: "slot", width: "100%" },
|
{ label: "", prop: "status", type: "slot", width: "100%" },
|
||||||
{
|
{ label: "处置状态", prop: "zdrCzzt", type: "select", options: props.dic.D_GS_ZDR_CZZT },
|
||||||
label: "处置状态",
|
|
||||||
prop: "zdrCzzt",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_ZDR_CZZT
|
|
||||||
},
|
|
||||||
|
|
||||||
{ label: "入库开始时间", prop: "zdrRkkssj", type: "datetime" },
|
{ label: "入库开始时间", prop: "zdrRkkssj", type: "datetime" },
|
||||||
{ label: "入库结束时间", prop: "zdrRkjssj", type: "datetime" },
|
{ label: "入库结束时间", prop: "zdrRkjssj", type: "datetime" },
|
||||||
|
|
||||||
// { label: "人员标签大类", prop: "bqdl", type: "select", options: [] },
|
|
||||||
// { label: "人员标签细类", prop: "bqxl", type: "select", options: [] },
|
|
||||||
{ label: "", prop: "bqInfo", type: "slot", width: "100%" },
|
{ label: "", prop: "bqInfo", type: "slot", width: "100%" },
|
||||||
{ label: "标签列表", prop: "bqList", type: "slot", width: "80%" }
|
{ label: "标签列表", prop: "bqList", type: "slot", width: "80%" }
|
||||||
]);
|
]);
|
||||||
@ -322,7 +171,6 @@ const title = ref("");
|
|||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
xsbt: [{ required: true, message: "请输入线索标题", trigger: "blur" }]
|
xsbt: [{ required: true, message: "请输入线索标题", trigger: "blur" }]
|
||||||
});
|
});
|
||||||
const editpeo = ref();
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getdepartmentList();
|
getdepartmentList();
|
||||||
});
|
});
|
||||||
@ -353,19 +201,13 @@ const getdepartmentList = () => {
|
|||||||
const submit = () => {
|
const submit = () => {
|
||||||
elform.value.submit((data) => {
|
elform.value.submit((data) => {
|
||||||
data.zdrSjjz = data.zdrSjjz.join(",");
|
data.zdrSjjz = data.zdrSjjz.join(",");
|
||||||
let url =
|
let url = title.value == "新增" ? "/mosty-gsxt/tbGsxtZdry/save" : "/mosty-gsxt/tbGsxtZdry/update";
|
||||||
title.value == "新增"
|
|
||||||
? "/mosty-gsxt/tbGsxtZdry/save"
|
|
||||||
: "/mosty-gsxt/tbGsxtZdry/update";
|
|
||||||
let params = { ...data };
|
let params = { ...data };
|
||||||
|
qcckPost(params, url).then((res) => {
|
||||||
qcckPost(params, url)
|
|
||||||
.then((res) => {
|
|
||||||
proxy.$message({ type: "success", message: title.value + "成功" });
|
proxy.$message({ type: "success", message: title.value + "成功" });
|
||||||
emit("onSearch");
|
emit("onSearch");
|
||||||
close();
|
close();
|
||||||
})
|
}).catch(() => {});
|
||||||
.catch(() => {});
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
// 打开弹窗
|
// 打开弹窗
|
||||||
@ -378,9 +220,7 @@ const openDialog = (type) => {
|
|||||||
|
|
||||||
const handleDeptChange = (nameField, selectedValue) => {
|
const handleDeptChange = (nameField, selectedValue) => {
|
||||||
// 找到选中的部门
|
// 找到选中的部门
|
||||||
const selectedDept = deptList.value.find(
|
const selectedDept = deptList.value.find((item) => item.value.toString() === selectedValue );
|
||||||
(item) => item.value.toString() === selectedValue
|
|
||||||
);
|
|
||||||
// 更新名称
|
// 更新名称
|
||||||
listQuery.value[nameField] = selectedDept ? selectedDept.label : "";
|
listQuery.value[nameField] = selectedDept ? selectedDept.label : "";
|
||||||
};
|
};
|
||||||
@ -428,10 +268,12 @@ defineExpose({ init, setFormData });
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "~@/assets/css/layout.scss";
|
@import "~@/assets/css/layout.scss";
|
||||||
@import "~@/assets/css/element-plus.scss";
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
|
||||||
::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
|
::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
|
||||||
color: #0072ff;
|
color: #0072ff;
|
||||||
background: rgba(0, 114, 255, 0.3);
|
background: rgba(0, 114, 255, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlist {
|
.boxlist {
|
||||||
width: 99%;
|
width: 99%;
|
||||||
height: 225px;
|
height: 225px;
|
||||||
|
@ -1,662 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="dialog" v-if="dialogForm">
|
|
||||||
<div class="head_box">
|
|
||||||
<span class="title">{{ title }}重点人管理</span>
|
|
||||||
<div>
|
|
||||||
<el-button size="small" @click="close">关闭</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form_cnt">
|
|
||||||
<FormMessage
|
|
||||||
v-model="listQuery"
|
|
||||||
:formList="formData"
|
|
||||||
ref="elform"
|
|
||||||
:rules="rules"
|
|
||||||
>
|
|
||||||
<template #basic>
|
|
||||||
<el-divider content-position="left">基础管理</el-divider>
|
|
||||||
</template>
|
|
||||||
<template #address>
|
|
||||||
<el-divider content-position="left">地址信息</el-divider>
|
|
||||||
</template>
|
|
||||||
<template #jurisdiction>
|
|
||||||
<el-divider content-position="left">管辖信息</el-divider>
|
|
||||||
</template>
|
|
||||||
<template #status>
|
|
||||||
<el-divider content-position="left">状态信息</el-divider>
|
|
||||||
</template>
|
|
||||||
<template #bqInfo>
|
|
||||||
<el-divider content-position="left">标签信息</el-divider>
|
|
||||||
</template>
|
|
||||||
<!-- 人员标签模型-->
|
|
||||||
<template #bqList>
|
|
||||||
<!-- <el-button @click="openDialog('01')">选择</el-button> -->
|
|
||||||
<div class="boxlist">
|
|
||||||
<MyTable
|
|
||||||
:tableData="tableDate.bqList"
|
|
||||||
:tableColumn="tableDate.tableColumn"
|
|
||||||
:tableHeight="tableDate.tableHeight"
|
|
||||||
:key="tableDate.keyCount"
|
|
||||||
:tableConfiger="tableDate.tableConfiger"
|
|
||||||
:controlsWidth="tableDate.controlsWidth"
|
|
||||||
>
|
|
||||||
<template #bqLb="{ row }">
|
|
||||||
<DictTag :value="row.bqLb" :tag="false" :options="D_GS_BQ_LB" />
|
|
||||||
</template>
|
|
||||||
<template #bqLx="{ row }">
|
|
||||||
<DictTag :value="row.bqLx" :tag="false" :options="D_GS_BQ_LX" />
|
|
||||||
</template>
|
|
||||||
<template #bqZl="{ row }">
|
|
||||||
<DictTag :value="row.bqZl" :tag="false" :options="D_GS_BQ_ZL" />
|
|
||||||
</template>
|
|
||||||
<!-- 操作 -->
|
|
||||||
<!-- <template #controls="{ row }">
|
|
||||||
<el-link type="danger" @click="delDictItem(row.bqId)"
|
|
||||||
>删除</el-link
|
|
||||||
>
|
|
||||||
</template> -->
|
|
||||||
</MyTable>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 管辖单位 -->
|
|
||||||
<template #gxSsbmdm>
|
|
||||||
<el-select
|
|
||||||
v-model="listQuery.gxSsbmdm"
|
|
||||||
placeholder="请选择管辖单位"
|
|
||||||
style="width: 240px"
|
|
||||||
:disabled="true"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
<!-- 户籍派出所 -->
|
|
||||||
<template #hjdPcsdm>
|
|
||||||
<el-select
|
|
||||||
v-model="listQuery.hjdPcsdm"
|
|
||||||
placeholder="请选择户籍派出所"
|
|
||||||
style="width: 240px"
|
|
||||||
:disabled="true"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
<!-- 诉求单位 -->
|
|
||||||
|
|
||||||
<template #sqSsbmdm>
|
|
||||||
<el-select
|
|
||||||
v-model="listQuery.sqSsbmdm"
|
|
||||||
placeholder="请选择户籍派出所"
|
|
||||||
style="width: 240px"
|
|
||||||
:disabled="true"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
<!-- 现住地派出所 -->
|
|
||||||
<template #xzdPcsdm>
|
|
||||||
<el-select
|
|
||||||
v-model="listQuery.xzdPcsdm"
|
|
||||||
placeholder="请选择现住地派出所"
|
|
||||||
style="width: 240px"
|
|
||||||
:disabled="true"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
<!-- 责任单位 -->
|
|
||||||
<template #zrSsbmdm>
|
|
||||||
<el-select
|
|
||||||
v-model="listQuery.zrSsbmdm"
|
|
||||||
placeholder="请选择责任单位"
|
|
||||||
style="width: 240px"
|
|
||||||
:disabled="true"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in deptList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value.toString()"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
</FormMessage>
|
|
||||||
<!-- 列表弹窗 -->
|
|
||||||
<TagSelectorDialog
|
|
||||||
v-model="chooseShow"
|
|
||||||
ref="tagDialog"
|
|
||||||
@chooseDate="handleTagSelect"
|
|
||||||
:dic="{ D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX }"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
|
||||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
|
||||||
import TagSelectorDialog from "./TagSelectorDialog.vue";
|
|
||||||
import * as rule from "@/utils/rules.js";
|
|
||||||
import {
|
|
||||||
ref,
|
|
||||||
defineExpose,
|
|
||||||
reactive,
|
|
||||||
onMounted,
|
|
||||||
defineEmits,
|
|
||||||
getCurrentInstance,
|
|
||||||
nextTick
|
|
||||||
} from "vue";
|
|
||||||
import { selectUserDeptPage } from "@/api/user-manage";
|
|
||||||
const emit = defineEmits(["updateDate"]);
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
dic: Object
|
|
||||||
});
|
|
||||||
const { proxy } = getCurrentInstance();
|
|
||||||
|
|
||||||
const {
|
|
||||||
D_GS_BK_SSJZ,
|
|
||||||
D_GS_ZDR_RYJB,
|
|
||||||
D_GS_SSYJ,
|
|
||||||
D_GS_BQ_DJ,
|
|
||||||
D_BZ_XZQHDM,
|
|
||||||
D_BZ_MZ,
|
|
||||||
D_BZ_XB,
|
|
||||||
D_GS_ZDR_CZZT,
|
|
||||||
D_GS_BQ_ZL,
|
|
||||||
D_GS_BQ_LB,
|
|
||||||
D_GS_BQ_LX,
|
|
||||||
D_GS_ZDR_YJDJ
|
|
||||||
} = proxy.$dict(
|
|
||||||
"D_GS_BK_SSJZ",
|
|
||||||
"D_GS_ZDR_RYJB",
|
|
||||||
"D_GS_SSYJ",
|
|
||||||
"D_GS_BQ_DJ",
|
|
||||||
"D_BZ_XZQHDM",
|
|
||||||
"D_BZ_MZ",
|
|
||||||
"D_BZ_XB",
|
|
||||||
"D_GS_ZDR_CZZT",
|
|
||||||
"D_GS_BQ_ZL",
|
|
||||||
"D_GS_BQ_LB",
|
|
||||||
"D_GS_BQ_LX",
|
|
||||||
"D_GS_ZDR_YJDJ"
|
|
||||||
); //获取字典数据
|
|
||||||
const tagDialog = ref();
|
|
||||||
const dialogForm = ref(false); //弹窗
|
|
||||||
// const formData = ref([
|
|
||||||
// { label: "", prop: "basic", type: "slot", width: "100%" },
|
|
||||||
|
|
||||||
// { label: "姓名", prop: "ryXm", type: "input", disabled: true },
|
|
||||||
// { label: "身份证号", prop: "rySfzh", type: "input", disabled: true },
|
|
||||||
// {
|
|
||||||
// label: "户籍地派出所名称",
|
|
||||||
// prop: "hjdPcsmc",
|
|
||||||
// type: "input",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// label: "户籍地派出所代码",
|
|
||||||
// prop: "hjdPcsdm",
|
|
||||||
// type: "slot",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// { label: "管辖单位", prop: "gxSsbmmc", type: "input", disabled: true },
|
|
||||||
// {
|
|
||||||
// label: "管辖单位代码",
|
|
||||||
// prop: "gxSsbmdm",
|
|
||||||
// type: "slot",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
|
|
||||||
// {
|
|
||||||
// label: "户籍地区划",
|
|
||||||
// prop: "hjdQh",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_BZ_XZQHDM,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// { label: "户籍地详址", prop: "hjdXz", type: "input", disabled: true },
|
|
||||||
// { label: "人员出生日期", prop: "ryCsrq", type: "date", disabled: true },
|
|
||||||
// {
|
|
||||||
// label: "人员籍贯",
|
|
||||||
// prop: "ryJg",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_BZ_XZQHDM,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// { label: "人员联系电话", prop: "ryLxdh", type: "input", disabled: true },
|
|
||||||
// {
|
|
||||||
// label: "人员民族",
|
|
||||||
// prop: "ryMz",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_BZ_MZ,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// label: "人员性别",
|
|
||||||
// prop: "ryXb",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_BZ_XB,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// { label: "诉求单位名称", prop: "sqSsbmmc", type: "input", disabled: true },
|
|
||||||
// {
|
|
||||||
// label: "诉求单位代码",
|
|
||||||
// prop: "sqSsbmdm",
|
|
||||||
// type: "slot",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
|
|
||||||
// {
|
|
||||||
// label: "现住地派出所名称",
|
|
||||||
// prop: "xzdPcsmc",
|
|
||||||
// type: "input",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// label: "现住地派出所代码",
|
|
||||||
// prop: "xzdPcsdm",
|
|
||||||
// type: "slot",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
|
|
||||||
// {
|
|
||||||
// label: "现住地区划",
|
|
||||||
// prop: "xzdQh",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_BZ_XZQHDM,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// { label: "现住地详址", prop: "xzdXz", type: "input", disabled: true },
|
|
||||||
// {
|
|
||||||
// label: "重点人处置状态",
|
|
||||||
// prop: "zdrCzzt",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_GS_ZDR_CZZT,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
|
|
||||||
// {
|
|
||||||
// label: "入库开始时间",
|
|
||||||
// prop: "zdrRkkssj",
|
|
||||||
// type: "datetime",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// label: "入库结束时间",
|
|
||||||
// prop: "zdrRkjssj",
|
|
||||||
// type: "datetime",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// label: "人员级别",
|
|
||||||
// prop: "zdrRyjb",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_GS_ZDR_RYJB,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// label: "所属警种",
|
|
||||||
// prop: "zdrSsjz",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_GS_BK_SSJZ,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
|
|
||||||
// {
|
|
||||||
// label: "涉及警种",
|
|
||||||
// prop: "zdrSjjz",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_GS_BK_SSJZ,
|
|
||||||
// multiple: true,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// label: "重点人预警等级",
|
|
||||||
// prop: "zdrYjdj",
|
|
||||||
// type: "select",
|
|
||||||
// options: D_GS_ZDR_YJDJ,
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
|
|
||||||
// { label: "管控民警姓名", prop: "gkMjXm", type: "input", disabled: true },
|
|
||||||
// { label: "管控民警警号", prop: "gkMjJh", type: "input", disabled: true },
|
|
||||||
// {
|
|
||||||
// label: "管控原因",
|
|
||||||
// prop: "zdrLkyy",
|
|
||||||
// type: "textarea",
|
|
||||||
// width: "100%",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// { label: "责任单位", prop: "zrSsbmmc", type: "input", disabled: true },
|
|
||||||
// {
|
|
||||||
// label: "责任单位代码",
|
|
||||||
// prop: "zrSsbmdm",
|
|
||||||
// type: "slot",
|
|
||||||
// disabled: true
|
|
||||||
// },
|
|
||||||
// // { label: "人员标签大类", prop: "bqdl", type: "select", options: [] },
|
|
||||||
// // { label: "人员标签细类", prop: "bqxl", type: "select", options: [] },
|
|
||||||
// { label: "标签列表", prop: "bqList", type: "slot", width: "80%" }
|
|
||||||
// ]);
|
|
||||||
|
|
||||||
const formData = ref([
|
|
||||||
{ label: "", prop: "basic", type: "slot", width: "100%" },
|
|
||||||
{ label: "姓名", prop: "ryXm", type: "input", disabled: true },
|
|
||||||
{
|
|
||||||
label: "性别",
|
|
||||||
prop: "ryXb",
|
|
||||||
type: "select",
|
|
||||||
options: D_BZ_XB,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "民族",
|
|
||||||
prop: "ryMz",
|
|
||||||
type: "select",
|
|
||||||
options: D_BZ_MZ,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{ label: "身份证号", prop: "rySfzh", type: "input", disabled: true },
|
|
||||||
{ label: "联系电话", prop: "ryLxdh", type: "input", disabled: true },
|
|
||||||
{ label: "出生日期", prop: "ryCsrq", type: "date", disabled: true },
|
|
||||||
{
|
|
||||||
label: "籍贯",
|
|
||||||
prop: "ryJg",
|
|
||||||
type: "select",
|
|
||||||
options: D_BZ_XZQHDM,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "级别",
|
|
||||||
prop: "zdrRyjb",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_ZDR_RYJB,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "预警等级",
|
|
||||||
prop: "zdrYjdj",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_ZDR_YJDJ,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{ label: "", prop: "address", type: "slot", width: "100%" },
|
|
||||||
{
|
|
||||||
label: "户籍地区划",
|
|
||||||
prop: "hjdQh",
|
|
||||||
type: "select",
|
|
||||||
options: D_BZ_XZQHDM,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{ label: "户籍地详址", prop: "hjdXz", type: "input", disabled: true },
|
|
||||||
{
|
|
||||||
label: "户籍地派出所",
|
|
||||||
prop: "hjdPcsdm",
|
|
||||||
type: "slot",
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "现住地区划",
|
|
||||||
prop: "xzdQh",
|
|
||||||
type: "select",
|
|
||||||
options: D_BZ_XZQHDM,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{ label: "现住地详址", prop: "xzdXz", type: "input", disabled: true },
|
|
||||||
{
|
|
||||||
label: "现住地派出所",
|
|
||||||
prop: "xzdPcsdm",
|
|
||||||
type: "slot",
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "",
|
|
||||||
prop: "jurisdiction",
|
|
||||||
type: "slot",
|
|
||||||
width: "100%"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "管辖单位",
|
|
||||||
prop: "gxSsbmdm",
|
|
||||||
type: "slot",
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "诉求单位",
|
|
||||||
prop: "sqSsbmdm",
|
|
||||||
type: "slot",
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "责任单位",
|
|
||||||
prop: "zrSsbmdm",
|
|
||||||
type: "slot",
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "所属警种",
|
|
||||||
prop: "zdrSsjz",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_BK_SSJZ,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "涉及警种",
|
|
||||||
prop: "zdrSjjz",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_BK_SSJZ,
|
|
||||||
multiple: true,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{ label: "管控民警姓名", prop: "gkMjXm", type: "input", disabled: true },
|
|
||||||
{ label: "管控民警警号", prop: "gkMjJh", type: "input", disabled: true },
|
|
||||||
{
|
|
||||||
label: "管控原因",
|
|
||||||
prop: "zdrLkyy",
|
|
||||||
type: "textarea",
|
|
||||||
width: "100%",
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{ label: "", prop: "status", type: "slot", width: "100%" },
|
|
||||||
{
|
|
||||||
label: "处置状态",
|
|
||||||
prop: "zdrCzzt",
|
|
||||||
type: "select",
|
|
||||||
options: D_GS_ZDR_CZZT,
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
label: "入库开始时间",
|
|
||||||
prop: "zdrRkkssj",
|
|
||||||
type: "datetime",
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "入库结束时间",
|
|
||||||
prop: "zdrRkjssj",
|
|
||||||
type: "datetime",
|
|
||||||
disabled: true
|
|
||||||
},
|
|
||||||
|
|
||||||
// { label: "人员标签大类", prop: "bqdl", type: "select", options: [] },
|
|
||||||
// { label: "人员标签细类", prop: "bqxl", type: "select", options: [] },
|
|
||||||
{ label: "", prop: "bqInfo", type: "slot", width: "100%" },
|
|
||||||
{
|
|
||||||
label: "标签列表",
|
|
||||||
prop: "bqList",
|
|
||||||
type: "slot",
|
|
||||||
width: "80%",
|
|
||||||
disabled: true
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
const listQuery = ref({}); //表单
|
|
||||||
const deptList = ref([]); //部门列表
|
|
||||||
|
|
||||||
const chooseShow = ref(false); //选择弹窗
|
|
||||||
const tableDate = reactive({
|
|
||||||
bqList: [], //表格数据
|
|
||||||
keyCount: 0,
|
|
||||||
rykeyCount: 0,
|
|
||||||
tableConfiger: {
|
|
||||||
rowHieght: 61,
|
|
||||||
showSelectType: "null",
|
|
||||||
loading: false
|
|
||||||
},
|
|
||||||
total: 0,
|
|
||||||
tableHeight: 225,
|
|
||||||
pageConfiger: {
|
|
||||||
pageSize: 20,
|
|
||||||
pageCurrent: 1
|
|
||||||
}, //分页
|
|
||||||
controlsWidth: 90, //操作栏宽度
|
|
||||||
tableColumn: [
|
|
||||||
{ label: "标签名称", prop: "bqMc" },
|
|
||||||
{ label: "标签代码", prop: "bqDm" },
|
|
||||||
{ label: "标签种类", prop: "bqZl", showSolt: true },
|
|
||||||
{ label: "标签类型", prop: "bqLx", showSolt: true },
|
|
||||||
{ label: "标签类别", prop: "bqLb", showSolt: true }
|
|
||||||
]
|
|
||||||
});
|
|
||||||
const chooseType = ref("01"); //选择弹窗类型
|
|
||||||
const chooseTitle = ref(""); //选择弹窗
|
|
||||||
const loading = ref(false);
|
|
||||||
const elform = ref();
|
|
||||||
const title = ref("");
|
|
||||||
const rules = reactive({
|
|
||||||
xsbt: [{ required: true, message: "请输入线索标题", trigger: "blur" }]
|
|
||||||
});
|
|
||||||
const editpeo = ref();
|
|
||||||
onMounted(() => {
|
|
||||||
getdepartmentList();
|
|
||||||
});
|
|
||||||
// 初始化数据
|
|
||||||
const init = (type, row) => {
|
|
||||||
dialogForm.value = true;
|
|
||||||
title.value = type == "add" ? "新增" : type == "info" ? "详情" : "编辑";
|
|
||||||
if (row) getDataById(row.id);
|
|
||||||
};
|
|
||||||
// 根据id查询详情
|
|
||||||
const getDataById = (id) => {
|
|
||||||
qcckGet({}, "/mosty-gsxt/tbGsxtZdry/selectVoById/" + id).then((res) => {
|
|
||||||
listQuery.value = res;
|
|
||||||
listQuery.value.zdrSjjz = listQuery.value.zdrSjjz.split(",");
|
|
||||||
tableDate.bqList = res.bqList;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
// 获取部门列表
|
|
||||||
const getdepartmentList = () => {
|
|
||||||
selectUserDeptPage().then((res) => {
|
|
||||||
deptList.value = res?.records.map((item) => ({
|
|
||||||
label: item.deptName,
|
|
||||||
value: item.deptId
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
};
|
|
||||||
// 提交
|
|
||||||
const submit = () => {
|
|
||||||
elform.value.submit((data) => {
|
|
||||||
data.zdrSjjz = data.zdrSjjz.join(",");
|
|
||||||
let url =
|
|
||||||
title.value == "新增"
|
|
||||||
? "/mosty-gsxt/tbGsxtZdry/save"
|
|
||||||
: "/mosty-gsxt/tbGsxtZdry/update";
|
|
||||||
let params = { ...data };
|
|
||||||
|
|
||||||
qcckPost(params, url)
|
|
||||||
.then((res) => {
|
|
||||||
proxy.$message({ type: "success", message: title.value + "成功" });
|
|
||||||
emit("onSearch");
|
|
||||||
close();
|
|
||||||
})
|
|
||||||
.catch(() => {});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
// 打开弹窗
|
|
||||||
const openDialog = (type) => {
|
|
||||||
chooseShow.value = true;
|
|
||||||
chooseType.value = type;
|
|
||||||
chooseTitle.value = "请选择标签";
|
|
||||||
nextTick(() => {
|
|
||||||
tagDialog.value.setValues(listQuery.value.bqList);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleTagSelect = (selectedTags) => {
|
|
||||||
console.log("已选标签:", selectedTags);
|
|
||||||
tableDate.bqList = selectedTags.map((item) => ({
|
|
||||||
bqDm: item.bqDm || "",
|
|
||||||
bqId: item.bqId || "",
|
|
||||||
bqLb: item.bqLb || "",
|
|
||||||
bqLx: item.bqLx || "",
|
|
||||||
bqMc: item.bqMc || "",
|
|
||||||
bqZl: item.bqZl || ""
|
|
||||||
}));
|
|
||||||
listQuery.value.bqList = tableDate.bqList;
|
|
||||||
// 每个标签包含: bqDm, bqId, bqLb, bqLx, bqMc, bqZl 属性
|
|
||||||
};
|
|
||||||
|
|
||||||
// 接收父组件传入的数据并回显
|
|
||||||
const setFormData = (data) => {
|
|
||||||
tableDate.bqList = data.bqList ?? [];
|
|
||||||
listQuery.value = {
|
|
||||||
...data // 假设 data 包含所有需要的字段
|
|
||||||
};
|
|
||||||
};
|
|
||||||
// 关闭
|
|
||||||
const close = () => {
|
|
||||||
listQuery.value = {};
|
|
||||||
dialogForm.value = false;
|
|
||||||
loading.value = false;
|
|
||||||
};
|
|
||||||
// 删除
|
|
||||||
const delDictItem = (bqId) => {
|
|
||||||
tableDate.bqList = tableDate.bqList.filter((item) => item.bqId !== bqId);
|
|
||||||
listQuery.value.bqList = tableDate.bqList;
|
|
||||||
};
|
|
||||||
// 2. 暴露获取数据的方法
|
|
||||||
const getFormData = () => {
|
|
||||||
// 可以在这里添加验证逻辑
|
|
||||||
return {
|
|
||||||
formData: listQuery.value
|
|
||||||
};
|
|
||||||
};
|
|
||||||
defineExpose({ init, setFormData });
|
|
||||||
</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;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -0,0 +1,197 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">流线索</span>
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" :loading="loading" @click="submit">保存</el-button>
|
||||||
|
<el-button @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
|
<template #gapdive>
|
||||||
|
<div style="width: 100%;height: 10px;" class="mb20">
|
||||||
|
<el-divider content-position="left">基础信息</el-divider>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #gapline>
|
||||||
|
<div style="width: 100%;height: 10px;" class="mb20">
|
||||||
|
<el-divider content-position="left">线索内容</el-divider>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #scfj>
|
||||||
|
<div style="width: 100%;padding-left: 50px;">
|
||||||
|
<div>上传附件:<span class="f12">(可附电子表格、Word文档、图像、音视频文件)</span> </div>
|
||||||
|
<div><MOSTY.Upload :showBtn="true" :limit="10" v-model="fjdz" /> </div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
<el-divider content-position="left"><span class="mr20">相关人员</span> </el-divider>
|
||||||
|
<MyTable
|
||||||
|
:tableData="pageForm.tableData"
|
||||||
|
:tableColumn="pageForm.tableColumn"
|
||||||
|
:tableHeight="pageForm.tableHeight"
|
||||||
|
:key="pageForm.keyCount"
|
||||||
|
:tableConfiger="pageForm.tableConfiger"
|
||||||
|
:controlsWidth="pageForm.controlsWidth"
|
||||||
|
>
|
||||||
|
<template #xb="{row}">
|
||||||
|
<DictTag :value="row.xb" :tag="false" :options="props.dic.D_BZ_XB" />
|
||||||
|
</template>
|
||||||
|
<template #bqList="{row}">
|
||||||
|
<div v-if="row.bqList">
|
||||||
|
<el-tag type="success" v-for="(it,idx) in row.bqList" :key="idx">{{ it.bqMc }}</el-tag >
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
||||||
|
const emit = defineEmits(["change"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dic: Object
|
||||||
|
});
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const rules = reactive({
|
||||||
|
xsMc: [{ required: true, message: "请输入线索名称", trigger: "blur" }],
|
||||||
|
xlLx: [{ required: true, message: "请选择线索类型", trigger: "change" }],
|
||||||
|
qbLy: [{ required: true, message: "请选择情报来源", trigger: "change" }],
|
||||||
|
});
|
||||||
|
const formData = ref([
|
||||||
|
{ prop: "gapdive", type: "slot",width:'100%' },
|
||||||
|
{ label: "线索名称", prop: "xsMc", type: "input" },
|
||||||
|
{ label: "线索类型", prop: "xlLx", type: "select", options:props.dic.D_GS_XS_LX },
|
||||||
|
{ label: "情报来源", prop: "qbLy", type: "select", options:props.dic.D_GS_XS_LY},
|
||||||
|
{ label: "指向开始时间", prop: "zxkssj", type: "datetime"},
|
||||||
|
{ label: "指向结束时间", prop: "zxjssj", type: "datetime"},
|
||||||
|
{ label: "指向地点", prop: "zxdz", type: "input"},
|
||||||
|
{ label: "所属专题", prop: "sszt", type: "select",options:props.dic.D_BZ_SSZT},
|
||||||
|
{ prop: "gapline", type: "slot",width:'100%' },
|
||||||
|
{ prop: "scfj", type: "slot",width:'100%'},
|
||||||
|
{ label: "线索内容", prop: "xsNr", type: "textarea",width:'100%'},
|
||||||
|
{ label: "群体类型", prop: "qtlx", type: "select",options:props.dic.D_GS_XS_QTLX },
|
||||||
|
{ label: "群体名称", prop: "qtmc", type: "input"},
|
||||||
|
{ label: "涉及人数", prop: "sjrs", type: "inputNumber"},
|
||||||
|
{ label: "线索报送单位", prop: "ssbmdm", type: "department"},
|
||||||
|
]);
|
||||||
|
const fjdz = ref()
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const loading = ref(false);
|
||||||
|
const elform = ref();
|
||||||
|
const pageForm = reactive({
|
||||||
|
tableData: [],
|
||||||
|
keyCount: 0,
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "null",
|
||||||
|
loading: false,
|
||||||
|
haveControls:false
|
||||||
|
},
|
||||||
|
controlsWidth: 220,
|
||||||
|
tableColumn: [
|
||||||
|
{ label: "姓名", prop: "xm" },
|
||||||
|
{ label: "性别", prop: "xb",showSolt:true },
|
||||||
|
{ label: "身份证号", prop: "sfzh" },
|
||||||
|
{ label: "户籍地", prop: "hjdz" },
|
||||||
|
{ label: "户籍地派出所", prop: "hjdpcs" },
|
||||||
|
{ label: "标签", prop: "bqList",showSolt:true }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
onMounted(()=>{
|
||||||
|
tabHeightFn()
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
// 初始化数据
|
||||||
|
const init = (list) => {
|
||||||
|
|
||||||
|
fjdz.value = []
|
||||||
|
tabHeightFn()
|
||||||
|
dialogForm.value = true;
|
||||||
|
pageForm.tableData = list.map((it) => {
|
||||||
|
return {
|
||||||
|
xm: it.ryXm,
|
||||||
|
xb: it.ryXb,
|
||||||
|
sfzh: it.rySfzh,
|
||||||
|
hjdz: it.xzdXz,
|
||||||
|
hjdpcs: it.hjdPcsmc,
|
||||||
|
hjdpcsdm: it.hjdPcsdm,
|
||||||
|
bqList: it.bqList || []
|
||||||
|
};
|
||||||
|
});
|
||||||
|
pageForm.keyCount++;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const submit = () => {
|
||||||
|
elform.value.submit((data) => {
|
||||||
|
let params = { ...data ,ryList:pageForm.tableData,cjLx:'0'};
|
||||||
|
params.fjdz = fjdz.value.length > 0 ? fjdz.value.join(','):'';
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(params, '/mosty-gsxt/qbcj/add').then((res) => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$message({ type: "success", message: "成功" });
|
||||||
|
emit("change");
|
||||||
|
close();
|
||||||
|
}).catch(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
fjdz.value = []
|
||||||
|
listQuery.value = {};
|
||||||
|
dialogForm.value = false;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
pageForm.tableHeight = window.innerHeight - 720;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
</style>
|
@ -2,26 +2,57 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<div class="titleBox">
|
||||||
<PageTitle title="重点人管理">
|
<PageTitle title="重点人管理">
|
||||||
<el-button type="primary" size="small" v-for="it in btns" :key="it">
|
<el-popover
|
||||||
{{ it }}</el-button
|
placement="bottom"
|
||||||
|
:visible="visible"
|
||||||
|
:width="400"
|
||||||
|
trigger="click"
|
||||||
>
|
>
|
||||||
<el-button type="primary" size="small" @click="addEdit('add', '')">
|
<template #reference>
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-button
|
||||||
<span style="vertical-align: middle">新增</span>
|
type="primary"
|
||||||
|
@click="(visible = !visible), (visiblefp = false)"
|
||||||
|
size="small"
|
||||||
|
>布控申请
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="danger" size="small" @click="addEdit('add', '')">
|
</template>
|
||||||
<el-icon style="vertical-align: middle"><Dete /></el-icon>
|
<div class="flex just-center">
|
||||||
<span style="vertical-align: middle">批量删除</span>
|
<el-button
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
v-for="it in D_GS_BK_SQLX"
|
||||||
|
:key="it.dm"
|
||||||
|
@click="handleApplication(it)"
|
||||||
|
>{{ it.zdmc }}</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
|
||||||
|
<el-popover placement="bottom" :visible="visiblefp" :width="400" trigger="click">
|
||||||
|
<template #reference>
|
||||||
|
<el-button size="small" type="primary" @click="(visiblefp = !visiblefp), (visible = false)">指定分配</el-button>
|
||||||
|
</template>
|
||||||
|
<div>
|
||||||
|
<el-input readonly v-model="obj.fpmc" @click="chooseUserVisible = true" placeholder="请选择民警"></el-input>
|
||||||
|
<div class="flex just-center mt10">
|
||||||
|
<el-button @click="(visiblefp = false), (obj = {})" size="small">取消</el-button>
|
||||||
|
<el-button type="primary" @click="handlefp" size="small">分配</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
<el-button size="small" type="primary" @click="handleZxs">转线索</el-button>
|
||||||
|
<el-button size="small" type="primary" @click="handleMove">移交管控</el-button>
|
||||||
|
<el-button type="primary" size="small" @click="addEdit('add', '')">
|
||||||
|
<el-icon style="vertical-align: middle">
|
||||||
|
<CirclePlus />
|
||||||
|
</el-icon>
|
||||||
|
<span style="vertical-align: middle">新增</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
</div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<div ref="searchBox">
|
<div ref="searchBox">
|
||||||
<Search
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
:searchArr="searchConfiger"
|
|
||||||
@submit="onSearch"
|
|
||||||
:key="pageData.keyCount"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
@ -61,11 +92,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<el-button
|
<el-button
|
||||||
|
:key="index"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
v-for="(item, index) in row.bqList"
|
v-for="(item, index) in row.bqList"
|
||||||
>
|
>{{ item.bqMc }}</el-button
|
||||||
{{ item.bqMc }}</el-button
|
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -111,9 +142,6 @@
|
|||||||
<el-link size="small" type="success" @click="addEdit('edit', row)"
|
<el-link size="small" type="success" @click="addEdit('edit', row)"
|
||||||
>编辑</el-link
|
>编辑</el-link
|
||||||
>
|
>
|
||||||
<el-link size="small" type="primary" @click="infoList('info', row)"
|
|
||||||
>查看</el-link
|
|
||||||
>
|
|
||||||
<el-link size="small" type="danger" @click="deleteRow(row)"
|
<el-link size="small" type="danger" @click="deleteRow(row)"
|
||||||
>删除</el-link
|
>删除</el-link
|
||||||
>
|
>
|
||||||
@ -130,55 +158,91 @@
|
|||||||
></Pages>
|
></Pages>
|
||||||
</div>
|
</div>
|
||||||
<!-- 详情 -->
|
<!-- 详情 -->
|
||||||
<addForm ref="addFormDiloag" />
|
<AddForm
|
||||||
<DetailForm ref="detailDiloag" />
|
ref="addFormDiloag"
|
||||||
</div>
|
v-if="show"
|
||||||
</template>
|
:dic="{
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
|
||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
|
||||||
import addForm from "./components/addForm.vue";
|
|
||||||
import DetailForm from "./components/infoForm.vue";
|
|
||||||
|
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
|
||||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
|
||||||
import AddForm from "./components/addForm.vue";
|
|
||||||
const { proxy } = getCurrentInstance();
|
|
||||||
const {
|
|
||||||
D_GS_BK_SSJZ,
|
|
||||||
D_GS_ZDR_RYJB,
|
D_GS_ZDR_RYJB,
|
||||||
D_BZ_XB,
|
D_BZ_XB,
|
||||||
D_BZ_MZ,
|
D_BZ_MZ,
|
||||||
D_BZ_XZQHDM,
|
D_BZ_XZQHDM,
|
||||||
D_GS_ZDR_BK_ZT,
|
D_GS_ZDR_BK_ZT,
|
||||||
D_GS_ZDR_CZZT
|
D_GS_ZDR_CZZT,
|
||||||
|
D_GS_BQ_ZL,
|
||||||
|
D_GS_BQ_LB,
|
||||||
|
D_GS_BQ_LX,
|
||||||
|
D_GS_ZDR_YJDJ,
|
||||||
|
D_GS_BK_SSJZ
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
<!-- 选择用户 -->
|
||||||
|
<ChooseUser v-model="chooseUserVisible" @choosedUsers="handleUserSelected" :roleIds="roleIds" />
|
||||||
|
<!-- 转线索 -->
|
||||||
|
<ZxsForm v-if="showzxs" ref="zxsDilof" @change="getList" :dic="{ D_BZ_SF, D_BZ_XB, D_GS_XS_LY, D_BZ_SSZT, D_GS_XS_LX, D_GS_XS_QTLX }">
|
||||||
|
</ZxsForm>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import ChooseUser from "@/components/MyComponents/ChooseUser/index.vue";
|
||||||
|
import ZxsForm from "./components/zxsForm.vue";
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
|
import AddForm from "./components/addForm.vue";
|
||||||
|
import { qcckGet,qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import { reactive, ref, onMounted, getCurrentInstance,nextTick } from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const {
|
||||||
|
D_GS_ZDR_RYJB,
|
||||||
|
D_BZ_XB,
|
||||||
|
D_BZ_MZ,
|
||||||
|
D_BZ_XZQHDM,
|
||||||
|
D_GS_ZDR_BK_ZT,
|
||||||
|
D_GS_ZDR_CZZT,
|
||||||
|
D_GS_BQ_ZL,
|
||||||
|
D_GS_BQ_LB,
|
||||||
|
D_GS_BQ_LX,
|
||||||
|
D_GS_ZDR_YJDJ,
|
||||||
|
D_GS_BK_SSJZ,
|
||||||
|
D_GS_BK_SQLX,
|
||||||
|
D_BZ_SF,
|
||||||
|
D_GS_XS_LY,
|
||||||
|
D_BZ_SSZT,
|
||||||
|
D_GS_XS_LX,
|
||||||
|
D_GS_XS_QTLX
|
||||||
} = proxy.$dict(
|
} = proxy.$dict(
|
||||||
"D_GS_BK_SSJZ",
|
|
||||||
"D_GS_ZDR_RYJB",
|
"D_GS_ZDR_RYJB",
|
||||||
"D_BZ_XB",
|
"D_BZ_XB",
|
||||||
"D_BZ_MZ",
|
"D_BZ_MZ",
|
||||||
"D_BZ_XZQHDM",
|
"D_BZ_XZQHDM",
|
||||||
"D_GS_ZDR_BK_ZT",
|
"D_GS_ZDR_BK_ZT",
|
||||||
"D_GS_ZDR_CZZT"
|
"D_GS_ZDR_CZZT",
|
||||||
); //获取字典数据
|
"D_GS_BQ_ZL",
|
||||||
const detailDiloag = ref();
|
"D_GS_BQ_LB",
|
||||||
|
"D_GS_BQ_LX",
|
||||||
|
"D_GS_ZDR_YJDJ",
|
||||||
|
"D_GS_BK_SSJZ",
|
||||||
|
"D_GS_BK_SQLX",
|
||||||
|
"D_BZ_SF",
|
||||||
|
"D_GS_XS_LY",
|
||||||
|
"D_BZ_SSZT",
|
||||||
|
'D_GS_XS_LX',
|
||||||
|
'D_GS_XS_QTLX'
|
||||||
|
);
|
||||||
|
const obj = ref({
|
||||||
|
fpmc: ""
|
||||||
|
});
|
||||||
|
const showzxs = ref(false);
|
||||||
|
const zxsDilof = ref();
|
||||||
|
const show = ref(false);
|
||||||
const addFormDiloag = ref();
|
const addFormDiloag = ref();
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
const btns = reactive([
|
const chooseUserVisible = ref(false); //审批流程
|
||||||
"一键布控",
|
const visible = ref(false);
|
||||||
"维护群体",
|
const visiblefp = ref(false);
|
||||||
"矛盾化解",
|
|
||||||
"转指令",
|
|
||||||
"转线索",
|
|
||||||
"转督导",
|
|
||||||
"转合成",
|
|
||||||
"移交管控",
|
|
||||||
"批量导入",
|
|
||||||
"导出"
|
|
||||||
]);
|
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{
|
{
|
||||||
label: "姓名",
|
label: "姓名",
|
||||||
@ -198,122 +262,17 @@ const searchConfiger = ref([
|
|||||||
placeholder: "请输入户籍地",
|
placeholder: "请输入户籍地",
|
||||||
showType: "input"
|
showType: "input"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: "户籍地派出所",
|
|
||||||
prop: "hjdPcsdm",
|
|
||||||
placeholder: "请输入户籍地派出所",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "现居地",
|
|
||||||
prop: "xzdXz",
|
|
||||||
placeholder: "请输入现居地",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "现居地派出所",
|
|
||||||
prop: "xzdPcsmc",
|
|
||||||
placeholder: "请输入现居地派出所",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "入库开始时间",
|
|
||||||
prop: "startTime",
|
|
||||||
placeholder: "请选择入库开始时间",
|
|
||||||
showType: "date"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "入库结束时间",
|
|
||||||
prop: "endTime",
|
|
||||||
placeholder: "请输入入库结束时间",
|
|
||||||
showType: "date"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "人员级别",
|
label: "人员级别",
|
||||||
prop: "zdrRyjb",
|
prop: "zdrRyjb",
|
||||||
placeholder: "请输入人员级别",
|
placeholder: "请输入人员级别",
|
||||||
showType: "select",
|
showType: "select",
|
||||||
options: D_GS_ZDR_RYJB
|
options: D_GS_ZDR_RYJB
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "所属警种",
|
|
||||||
prop: "zdrSsjz",
|
|
||||||
placeholder: "请选择所属警种",
|
|
||||||
showType: "select",
|
|
||||||
options: D_GS_BK_SSJZ
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "管辖单位",
|
|
||||||
prop: "gxSsbmmc",
|
|
||||||
placeholder: "请选择管辖单位",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "涉及警种",
|
|
||||||
prop: "zdrSjjz",
|
|
||||||
placeholder: "请选择涉及警种",
|
|
||||||
showType: "select",
|
|
||||||
options: D_GS_BK_SSJZ,
|
|
||||||
multiple: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "管辖民警姓名",
|
|
||||||
prop: "gkMjXm",
|
|
||||||
placeholder: "请输入管辖民警姓名",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "管辖民警警号",
|
|
||||||
prop: "gkMjJh",
|
|
||||||
placeholder: "请输入管辖民警警号",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "管辖民警联系方式",
|
|
||||||
prop: "gkMjLxfs",
|
|
||||||
placeholder: "请输入管辖民警联系方式",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "管辖原因",
|
|
||||||
prop: "zdrLkyy",
|
|
||||||
placeholder: "请输入管辖原因",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "被管控人联系方式",
|
|
||||||
prop: "ryLxdh",
|
|
||||||
placeholder: "请输入被管控人联系方式",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "责任单位",
|
|
||||||
prop: "zrSsbmmc",
|
|
||||||
placeholder: "请选择责任单位",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "人员标签大类",
|
|
||||||
prop: "bqDl",
|
|
||||||
placeholder: "请选择人员标签大类",
|
|
||||||
showType: "select"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "人员标签细类",
|
|
||||||
prop: "bqXl",
|
|
||||||
placeholder: "请选择人员标签细类",
|
|
||||||
showType: "select"
|
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
tableData: [],
|
||||||
{
|
|
||||||
img: "",
|
|
||||||
jbxx: "",
|
|
||||||
wkrs: "1/5"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
@ -342,12 +301,6 @@ onMounted(() => {
|
|||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
});
|
});
|
||||||
|
|
||||||
//选择类型
|
|
||||||
const handleType = (val) => {
|
|
||||||
pageData.keyCount++;
|
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
|
||||||
getList();
|
|
||||||
};
|
|
||||||
// 搜索
|
// 搜索
|
||||||
const onSearch = (val) => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = { ...val };
|
queryFrom.value = { ...val };
|
||||||
@ -365,11 +318,10 @@ const changeSize = (val) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = (val) => {
|
const getList = () => {
|
||||||
pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
let url = "/mosty-gsxt/tbGsxtZdry/selectPage";
|
qcckGet(data, "/mosty-gsxt/tbGsxtZdry/selectPage")
|
||||||
qcckGet(data, url)
|
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
pageData.tableData = res.records || [];
|
pageData.tableData = res.records || [];
|
||||||
pageData.total = res.total;
|
pageData.total = res.total;
|
||||||
@ -382,12 +334,12 @@ const getList = (val) => {
|
|||||||
|
|
||||||
//新增编辑
|
//新增编辑
|
||||||
const addEdit = (type, row) => {
|
const addEdit = (type, row) => {
|
||||||
|
show.value = true;
|
||||||
|
setTimeout(() => {
|
||||||
addFormDiloag.value.init(type, row);
|
addFormDiloag.value.init(type, row);
|
||||||
|
}, 400);
|
||||||
};
|
};
|
||||||
// 详情
|
|
||||||
const infoList = (type, row) => {
|
|
||||||
detailDiloag.value.init(type, row);
|
|
||||||
};
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.tableHeight =
|
pageData.tableHeight =
|
||||||
@ -396,12 +348,72 @@ const tabHeightFn = () => {
|
|||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const ids = ref([]);
|
||||||
|
const choosList = ref([]);
|
||||||
|
const chooseData = (data) => {
|
||||||
|
ids.value = Array.isArray(data) ? data.map((item) => item.id) : [];
|
||||||
|
choosList.value = Array.isArray(data) ? data : [];
|
||||||
|
};
|
||||||
|
// 选择申请数据数据
|
||||||
|
const handleApplication = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要布控的重点人");
|
||||||
|
qcckPost({ ids: ids.value }, "/mosty-gsxt/tbGsxtZdry/addBksq")
|
||||||
|
.then(() => {
|
||||||
|
ElMessage.success("申请成功");
|
||||||
|
visible.value = false;
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
ElMessage.error("布控申请失败");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleUserSelected = (val) => {
|
||||||
|
obj.value.fpmc = val[0].userName;
|
||||||
|
obj.value.fpid = val[0].id;
|
||||||
|
};
|
||||||
|
|
||||||
|
const handlefp = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要布控的重点人");
|
||||||
|
qcckPost({ ids: ids.value, uid: obj.value.fpid },"/mosty-gsxt/tbGsxtZdry/addGkmj").then(() => {
|
||||||
|
ElMessage.success("分配成功");
|
||||||
|
visible.value = false;
|
||||||
|
visiblefp.value = false;
|
||||||
|
getList();
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessage.error("分配失败");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 移交管控
|
||||||
|
const handleMove = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要移交管控的重点群体");
|
||||||
|
proxy.$confirm("是否确定移交?", "警告", { type: "warning" }).then(() => {
|
||||||
|
qcckPost({ ids: ids.value }, "/mosty-gsxt/tbGsxtZdry/addSfyj").then(() => {
|
||||||
|
ElMessage.success("移交管控成功");
|
||||||
|
getList();
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessage.error("移交管控失败");
|
||||||
|
});
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleZxs = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要转线索的重点群体");
|
||||||
|
showzxs.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
zxsDilof.value.init(choosList.value);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.el-loading-mask {
|
.el-loading-mask {
|
||||||
background: rgba(0, 0, 0, 0.5) !important;
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rowClass {
|
.rowClass {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -148,9 +148,11 @@ const pageData = reactive({
|
|||||||
{ label: "是否转重点人员", prop: "sfZzdry", showSolt: true }
|
{ label: "是否转重点人员", prop: "sfZzdry", showSolt: true }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
const roleList = reactive(JSON.parse(localStorage.getItem('roleList')) || [])
|
const roleList = ref([])
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
let qx = JSON.parse(localStorage.getItem('roleList')) || [];
|
||||||
|
roleList.value = qx.map(item => item.roleCode);
|
||||||
getList();
|
getList();
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
});
|
});
|
||||||
|
@ -3,13 +3,11 @@
|
|||||||
<div class="head_box">
|
<div class="head_box">
|
||||||
<span class="title">人力情报信息采集流转编辑</span>
|
<span class="title">人力情报信息采集流转编辑</span>
|
||||||
<div>
|
<div>
|
||||||
<el-button @click="submit">保存</el-button>
|
|
||||||
<el-button @click="close">暂存</el-button>
|
|
||||||
<el-button @click="close">关闭</el-button>
|
<el-button @click="close">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
<FormMessage disabled v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
<template #gapdive>
|
<template #gapdive>
|
||||||
<div style="width: 100%;height: 10px;" class="mb20">
|
<div style="width: 100%;height: 10px;" class="mb20">
|
||||||
<el-divider content-position="left">基础信息</el-divider>
|
<el-divider content-position="left">基础信息</el-divider>
|
||||||
@ -23,11 +21,11 @@
|
|||||||
<template #scfj>
|
<template #scfj>
|
||||||
<div style="width: 100%;padding-left: 50px;">
|
<div style="width: 100%;padding-left: 50px;">
|
||||||
<div>上传附件:<span class="f12">(可附电子表格、Word文档、图像、音视频文件)</span> </div>
|
<div>上传附件:<span class="f12">(可附电子表格、Word文档、图像、音视频文件)</span> </div>
|
||||||
<div><MOSTY.Upload :showBtn="true" :limit="10" v-model="listQuery.tps" /> </div>
|
<div><MOSTY.Upload :showBtn="true" disabled :limit="10" v-model="fjdz" /> </div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</FormMessage>
|
</FormMessage>
|
||||||
<el-divider content-position="left"><span class="mr20">相关人员</span> <el-button type="primary" size="small" @click="showPeo = true,peoTitle = '新增人员'">添加人员</el-button></el-divider>
|
<el-divider content-position="left"><span class="mr20">相关人员</span> </el-divider>
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageForm.tableData"
|
:tableData="pageForm.tableData"
|
||||||
:tableColumn="pageForm.tableColumn"
|
:tableColumn="pageForm.tableColumn"
|
||||||
@ -35,18 +33,23 @@
|
|||||||
:key="pageForm.keyCount"
|
:key="pageForm.keyCount"
|
||||||
:tableConfiger="pageForm.tableConfiger"
|
:tableConfiger="pageForm.tableConfiger"
|
||||||
:controlsWidth="pageForm.controlsWidth"
|
:controlsWidth="pageForm.controlsWidth"
|
||||||
@chooseData="chooseData"
|
|
||||||
>
|
>
|
||||||
|
<template #xb="{row}">
|
||||||
|
<DictTag :value="row.xb" :tag="false" :options="props.dic.D_BZ_XB" />
|
||||||
|
</template>
|
||||||
|
<template #bqList="{row}">
|
||||||
|
<div v-if="row.bqList">
|
||||||
|
<el-tag type="success" v-for="(it,idx) in row.bqList" :key="idx">{{ it.bqMc }}</el-tag >
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row,index }">
|
||||||
<el-link size="small" type="primary" @click="addEdit('detail', row)">详情</el-link >
|
<el-link size="small" type="success" @click="addEdit('detail', row,index)">详情</el-link>
|
||||||
<el-link size="small" type="success" @click="addEdit('edit', row)">编辑</el-link>
|
|
||||||
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
<!-- 人员 -->
|
<!-- 人员 -->
|
||||||
<AddPeo v-model="showPeo" :dic="props.dic" :title="peoTitle"></AddPeo>
|
<AddPeo ref="showAdd" :dic="props.dic" ></AddPeo>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -55,36 +58,40 @@ import * as MOSTY from "@/components/MyComponents/index";
|
|||||||
import AddPeo from './addPeo.vue'
|
import AddPeo from './addPeo.vue'
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
import { qcckGet } from "@/api/qcckApi.js";
|
||||||
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
||||||
const emit = defineEmits(["updateDate"]);
|
const emit = defineEmits(["change"]);
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dic: Object
|
dic: Object
|
||||||
});
|
});
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const dialogForm = ref(false); //弹窗
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const rules = reactive({
|
||||||
|
xsMc: [{ required: true, message: "请输入线索名称", trigger: "blur" }],
|
||||||
|
xlLx: [{ required: true, message: "请选择线索类型", trigger: "change" }],
|
||||||
|
qbLy: [{ required: true, message: "请选择情报来源", trigger: "change" }],
|
||||||
|
});
|
||||||
const formData = ref([
|
const formData = ref([
|
||||||
{ label: "", prop: "gapdive", type: "slot",width:'100%' },
|
{ prop: "gapdive", type: "slot",width:'100%' },
|
||||||
{ label: "线索编号", prop: "xsbh", type: "input",},
|
{ label: "线索名称", prop: "xsMc", type: "input" },
|
||||||
{ label: "线索名称", prop: "xsmc", type: "input" },
|
{ label: "线索类型", prop: "xlLx", type: "select", options:props.dic.D_GS_XS_LX },
|
||||||
{ label: "线索类型", prop: "xslx", type: "select", options:props.dic.D_GS_XS_LX },
|
{ label: "情报来源", prop: "qbLy", type: "select", options:props.dic.D_GS_XS_LY},
|
||||||
{ label: "情报来源", prop: "qbly", type: "select", options:props.dic.D_GS_XS_LY},
|
|
||||||
{ label: "指向开始时间", prop: "zxkssj", type: "datetime"},
|
{ label: "指向开始时间", prop: "zxkssj", type: "datetime"},
|
||||||
{ label: "指向结束时间", prop: "zxjssj", type: "datetime"},
|
{ label: "指向结束时间", prop: "zxjssj", type: "datetime"},
|
||||||
{ label: "指向地点", prop: "zxdz", type: "input"},
|
{ label: "指向地点", prop: "zxdz", type: "input"},
|
||||||
{ label: "所属专题", prop: "sszt", type: "select",options:props.dic.D_BZ_SSZT},
|
{ label: "所属专题", prop: "sszt", type: "select",options:props.dic.D_BZ_SSZT},
|
||||||
{ prop: "gapline", type: "slot",width:'100%' },
|
{ prop: "gapline", type: "slot",width:'100%' },
|
||||||
{ prop: "scfj", type: "slot",width:'100%'},
|
{ prop: "scfj", type: "slot",width:'100%'},
|
||||||
{ label: "线索内容", prop: "xsnr", type: "textarea",width:'100%'},
|
{ label: "线索内容", prop: "xsNr", type: "textarea",width:'100%'},
|
||||||
{ label: "群体类型", prop: "qtlx", type: "select",options:props.dic.D_GS_XS_QTLX },
|
{ label: "群体类型", prop: "qtlx", type: "select",options:props.dic.D_GS_XS_QTLX },
|
||||||
{ label: "群体名称", prop: "qtmc", type: "input"},
|
{ label: "群体名称", prop: "qtmc", type: "input"},
|
||||||
{ label: "涉及人数", prop: "sjrs", type: "inputNumber"},
|
{ label: "涉及人数", prop: "sjrs", type: "inputNumber"},
|
||||||
{ label: "线索报送单位", prop: "fjWb", type: "department"},
|
{ label: "线索报送单位", prop: "ssbmdm", type: "department"},
|
||||||
]);
|
]);
|
||||||
const listQuery = ref({tps:[]}); //表单
|
const fjdz = ref()
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const elform = ref();
|
const elform = ref();
|
||||||
const title = ref("");
|
|
||||||
const pageForm = reactive({
|
const pageForm = reactive({
|
||||||
tableData: [],
|
tableData: [],
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
@ -96,53 +103,46 @@ const pageForm = reactive({
|
|||||||
controlsWidth: 220,
|
controlsWidth: 220,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "姓名", prop: "xm" },
|
{ label: "姓名", prop: "xm" },
|
||||||
{ label: "性别", prop: "xb" },
|
{ label: "性别", prop: "xb",showSolt:true },
|
||||||
{ label: "身份证号", prop: "sfzh" },
|
{ label: "身份证号", prop: "sfzh" },
|
||||||
{ label: "户籍地", prop: "hjd" },
|
{ label: "户籍地", prop: "hjdz" },
|
||||||
{ label: "户籍地派出所", prop: "hjdpcs" },
|
{ label: "户籍地派出所", prop: "hjdpcs" },
|
||||||
{ label: "标签", prop: "bq" }
|
{ label: "标签", prop: "bqList",showSolt:true }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
const showPeo = ref(false)
|
const showAdd = ref()
|
||||||
const peoTitle = ref('')
|
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
tabHeightFn()
|
tabHeightFn()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
const init = (type, row) => {
|
const init = (type, row) => {
|
||||||
listQuery.value = {tps :[]};
|
fjdz.value = []
|
||||||
tabHeightFn()
|
tabHeightFn()
|
||||||
dialogForm.value = true;
|
dialogForm.value = true;
|
||||||
// 初始化表单数据,并根据详情页设置禁用状态
|
// 初始化表单数据,并根据详情页设置禁用状态
|
||||||
// if (row) getDataById(row.id);
|
if (row) getDataById(row.id);
|
||||||
};
|
};
|
||||||
// 根据id查询详情
|
// 根据id查询详情
|
||||||
const getDataById = (id) => {
|
const getDataById = (id) => {
|
||||||
// qcckGet({}, "/mosty-gsxt/tbGsxtRqfjNr/" + id).then((res) => {
|
qcckGet({id}, "/mosty-gsxt/qbcj/selectByid").then((res) => {
|
||||||
// listQuery.value = res;
|
listQuery.value = res;
|
||||||
// });
|
pageForm.tableData = res.ryList || [];
|
||||||
};
|
|
||||||
|
|
||||||
// 提交
|
|
||||||
const submit = () => {
|
|
||||||
elform.value.submit((data) => {
|
|
||||||
let params = { ...data };
|
|
||||||
qcckPost(params, '/mosty-gsxt/tbGsxtRqfjNr/save').then((res) => {
|
|
||||||
proxy.$message({ type: "success", message: title.value + "成功" });
|
|
||||||
emit("onSearch");
|
|
||||||
close();
|
|
||||||
})
|
|
||||||
.catch(() => {});
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 打开弹窗
|
||||||
|
const addEdit = (type,row,index) =>{
|
||||||
|
showAdd.value.init(type,row,index)
|
||||||
|
}
|
||||||
|
|
||||||
// 关闭
|
// 关闭
|
||||||
const close = () => {
|
const close = () => {
|
||||||
|
fjdz.value = []
|
||||||
|
listQuery.value = {};
|
||||||
dialogForm.value = false;
|
dialogForm.value = false;
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
elform.value.reset()
|
|
||||||
listQuery.value = {tps :[]};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
|
@ -1,10 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="modelValue" :title="props.title" @close="close" :close-on-click-modal="false">
|
<el-dialog v-model="showDialog" :destroy-on-close="true" title="人员详情" @close="close" :close-on-click-modal="false">
|
||||||
<FormMessage v-model="listQuery" :formList="formData" labelWidth="120px" ref="elform" :rules="rules"></FormMessage>
|
<FormMessage v-model="listQuery" :formList="formData" labelWidth="120px" ref="elform" :rules="rules">
|
||||||
|
<template #bqList>
|
||||||
|
<div class="marks pointer" >
|
||||||
|
<span style="color: rgb(175 178 184);padding-left: 10px;" v-if="!listQuery.bqList || listQuery.bqList.length == 0 ">请选择标签</span>
|
||||||
|
<span v-else >
|
||||||
|
<el-tag type="success" v-for="(it,idx) in listQuery.bqList" :key="idx">{{ it.bqMc }}</el-tag >
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="flex just-center">
|
<div class="flex just-center">
|
||||||
<el-button @click="close">取消</el-button>
|
<el-button @click="close">取消</el-button>
|
||||||
<el-button type="primary" @click="submitForm">确认</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -14,34 +22,28 @@
|
|||||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
import { reactive, ref } from 'vue';
|
import { reactive, ref } from 'vue';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
modelValue:{
|
|
||||||
type:Boolean,
|
|
||||||
default:false
|
|
||||||
},
|
|
||||||
dic:{
|
dic:{
|
||||||
type:Object,
|
type:Object,
|
||||||
default:{}
|
default:{}
|
||||||
},
|
},
|
||||||
title:{
|
|
||||||
type:String,
|
|
||||||
default:'新增人员'
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
const roleIds = ref([])
|
||||||
const elform = ref()
|
const elform = ref()
|
||||||
const emit = defineEmits('update:modelValue')
|
const showDialog = ref(false)
|
||||||
|
const emit = defineEmits(['change'])
|
||||||
const listQuery = ref({})
|
const listQuery = ref({})
|
||||||
const formData = ref([
|
const formData = ref([
|
||||||
{ label: "姓名", prop: "xm", type: "input" },
|
{ label: "姓名", prop: "xm", type: "input" ,width:'48%'},
|
||||||
{ label: "性别", prop: "xb", type: "select",options:props.dic.D_BZ_XB },
|
{ label: "性别", prop: "xb", type: "select",options:props.dic.D_BZ_XB ,width:'48%'},
|
||||||
{ label: "身份证号", prop: "sfzh", type: "input" },
|
{ label: "身份证号", prop: "sfzh", type: "input" ,width:'48%'},
|
||||||
{ label: "户籍地", prop: "hjd", type: "input" },
|
{ label: "户籍地", prop: "hjdz", type: "input",width:'48%' },
|
||||||
{ label: "户籍地派出所", prop: "hjdpcs", type: "input" },
|
{ label: "户籍地派出所", prop: "hjdpcsdm", type: "department" ,width:'48%'},
|
||||||
{ label: "标签", prop: "bq", type: "input" },
|
{ label: "标签", prop: "bqList", type: "slot",width:'100%' },
|
||||||
{ label: "是否挑头人", prop: "sfdtr", type: "select",options:props.dic.D_BZ_SF },
|
{ label: "是否挑头人", prop: "sfttr", type: "select",options:props.dic.D_BZ_SF ,width:'48%'},
|
||||||
{ label: "是否响应人", prop: "sfxyr", type: "select" ,options:props.dic.D_BZ_SF },
|
{ label: "是否响应人", prop: "sfxyr", type: "select" ,options:props.dic.D_BZ_SF,width:'48%' },
|
||||||
{ label: "所属群体", prop: "ssqt", type: "input" },
|
{ label: "所属群体", prop: "ssqt", type: "input" ,width:'48%'},
|
||||||
{ label: "微信号", prop: "wxh", type: "input" },
|
{ label: "微信号", prop: "wx", type: "input" ,width:'48%'},
|
||||||
{ label: "QQ", prop: "qqh", type: "input" },
|
{ label: "QQ", prop: "qq", type: "input" ,width:'48%'},
|
||||||
])
|
])
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
xm: [{ required: true, message: "请输入姓名", trigger: "blur" }],
|
xm: [{ required: true, message: "请输入姓名", trigger: "blur" }],
|
||||||
@ -49,21 +51,28 @@ const rules = reactive({
|
|||||||
sfzh: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
|
sfzh: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
|
||||||
hjd: [{ required: true, message: "请输入户籍地", trigger: "blur" }],
|
hjd: [{ required: true, message: "请输入户籍地", trigger: "blur" }],
|
||||||
})
|
})
|
||||||
|
const title = ref('')
|
||||||
const submitForm = () =>{
|
const init = (type,row,index) =>{
|
||||||
elform.value.submit(()=>{
|
title.value = type == 'add' ? '新增' :'编辑';
|
||||||
|
showDialog.value = true;
|
||||||
})
|
if(row) listQuery.value = {...row};
|
||||||
}
|
}
|
||||||
|
|
||||||
const close = () =>{
|
const close = () =>{
|
||||||
elform.value.reset();
|
elform.value.reset();
|
||||||
emit('update:modelValue',false)
|
showDialog.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defineExpose({init})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::v-deep .el-form-item--default {
|
|
||||||
width: 48% !important;
|
.marks{
|
||||||
|
width: 100%;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 32px;
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -6,10 +6,6 @@
|
|||||||
<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="addEdit('add', '')">
|
|
||||||
<el-icon style="vertical-align: middle"><Dete /></el-icon>
|
|
||||||
<span style="vertical-align: middle">批量删除</span>
|
|
||||||
</el-button>
|
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
</div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
@ -27,9 +23,18 @@
|
|||||||
:controlsWidth="pageData.controlsWidth"
|
:controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseData">
|
@chooseData="chooseData">
|
||||||
|
|
||||||
|
<template #xlLx="{row}">
|
||||||
|
<DictTag :tag="false" :value="row.xlLx" :options="D_GS_XS_LX" />
|
||||||
|
</template>
|
||||||
|
<template #qbLy="{row}">
|
||||||
|
<DictTag :tag="false" :value="row.qbLy" :options="D_GS_XS_LY" />
|
||||||
|
</template>
|
||||||
|
<template #czzt="{row}">
|
||||||
|
<DictTag :tag="false" :value="row.czzt" :options="D_GS_XS_CZZT" />
|
||||||
|
</template>
|
||||||
<template #shzt="{row}">
|
<template #shzt="{row}">
|
||||||
<span>采纳(将这条信息推送到情报管理模块)</span>
|
<!-- 采纳(将这条信息推送到情报管理),退回! -->
|
||||||
<span>退回!</span>
|
<DictTag :tag="false" :value="row.shzt" :options="D_BZ_XSSHZT" @clickTag="clickTag(row.shzt)" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
@ -62,7 +67,7 @@
|
|||||||
<el-button size="small" type="primary" @click.stop="handleSumbit(row)">确定</el-button>
|
<el-button size="small" type="primary" @click.stop="handleSumbit(row)">确定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
|
<el-link size="small" type="danger" @click="delDictItem(row.id)">删除</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages
|
<Pages
|
||||||
@ -76,48 +81,45 @@
|
|||||||
></Pages>
|
></Pages>
|
||||||
</div>
|
</div>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<AddForm ref="detailDiloag" :dic="{D_BZ_SF,D_BZ_XB,D_GS_XS_LY,D_BZ_SSZT,D_GS_XS_LX ,D_GS_XS_QTLX}" />
|
<AddForm ref="detailDiloag" @change="change" v-if="isShow" :dic="{D_BZ_SF,D_BZ_XB,D_GS_XS_LY,D_BZ_SSZT,D_GS_XS_LX ,D_GS_XS_QTLX}" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import AddForm from "./components/addForm.vue";
|
import AddForm from "./components/addForm.vue";
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
|
import { fa } from "element-plus/es/locale.mjs";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const {D_GS_XS_CZZT,D_GS_XS_LY, D_BZ_SSZT,D_BZ_SF,D_GS_XS_LX ,D_GS_XS_QTLX,D_BZ_XB,D_BZ_XSSHZT} = proxy.$dict("D_GS_XS_CZZT","D_GS_XS_LY","D_BZ_SSZT","D_BZ_SF","D_GS_XS_LX","D_GS_XS_QTLX","D_BZ_XB","D_BZ_XSSHZT"); //获取字典数据
|
const {D_GS_XS_CZZT,D_GS_XS_LY, D_BZ_SSZT,D_BZ_SF,D_GS_XS_LX ,D_GS_XS_QTLX,D_BZ_XB,D_BZ_XSSHZT} = proxy.$dict("D_GS_XS_CZZT","D_GS_XS_LY","D_BZ_SSZT","D_BZ_SF","D_GS_XS_LX","D_GS_XS_QTLX","D_BZ_XB","D_BZ_XSSHZT"); //获取字典数据
|
||||||
const detailDiloag = ref();
|
const detailDiloag = ref();
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
const chooseRow = ref({})
|
const chooseRow = ref({})
|
||||||
|
const rules = reactive({
|
||||||
|
bhyy:false,
|
||||||
|
shzt: false,
|
||||||
|
})
|
||||||
|
const isShow = ref(false)
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "线索名称", prop: 'clueTitle', placeholder: "请输入线索名称", showType: "input" },
|
{ label: "线索名称", prop: 'xsMc', placeholder: "请输入线索名称", showType: "input" },
|
||||||
{ label: "语义关键字", prop: 'semanticKeywords', placeholder: "请输入语义关键字", showType: "input" },
|
{ label: "内容关键字", prop: 'xsNr', placeholder: "请输入语义关键字", showType: "input" },
|
||||||
{ label: "线索类型", prop: 'clueType', placeholder: "请选择线索类型", showType: "select" },
|
{ label: "线索类型", prop: 'xlLx', placeholder: "请选择线索类型", showType: "select" },
|
||||||
{ label: "线索来源", prop: 'clueSource', placeholder: "请选择线索来源", showType: "select" },
|
{ label: "线索来源", prop: 'qbLy', placeholder: "请选择线索来源", showType: "select" },
|
||||||
{ label: "线索状态", prop: 'xszt', placeholder: "请选择线索状态", showType: "select" },
|
{ label: "线索状态", prop: 'xszt', placeholder: "请选择线索状态", showType: "select" },
|
||||||
{ label: "处置状态", prop: 'czzt', placeholder: "请选择处置状态", showType: "select" },
|
{ label: "开始时间", prop: 'zxkssj', placeholder: "请选择开始时间", showType: "date" },
|
||||||
{ label: "开始时间", prop: 'startTime', placeholder: "请选择开始时间", showType: "date" },
|
{ label: "结束时间", prop: 'zxjssj', placeholder: "请选择结束时间", showType: "date" },
|
||||||
{ label: "结束时间", prop: 'endTime', placeholder: "请选择结束时间", showType: "date" },
|
{ label: "指向地点", prop: 'zxdz', placeholder: "请输入指向地点", showType: "input" },
|
||||||
{ label: "指向地点", prop: 'targetLocation', placeholder: "请输入指向地点", showType: "input" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
tableData: [],
|
||||||
{
|
|
||||||
clueNo: "XS20240101001",
|
|
||||||
clueTitle: "可疑人员活动线索",
|
|
||||||
clueType: "人员线索",
|
|
||||||
clueSource: "群众举报",
|
|
||||||
startTime: "2024-01-01 08:00:00",
|
|
||||||
endTime: "2024-01-01 18:00:00",
|
|
||||||
targetLocation: "某市某区某街道",
|
|
||||||
clueContent: "发现多名可疑人员在该区域频繁出入,疑似从事非法活动。",
|
|
||||||
attachment: "report.pdf"
|
|
||||||
},],
|
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
@ -131,17 +133,18 @@ const pageData = reactive({
|
|||||||
},
|
},
|
||||||
controlsWidth: 150,
|
controlsWidth: 150,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "上报人姓名", prop: "clueNo" },
|
{ label: "上报人姓名", prop: "xssbr" },
|
||||||
{ label: "上报人电话", prop: "clueNo" },
|
{ label: "上报人电话", prop: "xssbrdh" },
|
||||||
{ label: "线索编号", prop: "clueNo" },
|
{ label: "线索编号", prop: "xsBh" },
|
||||||
{ label: "线索名称", prop: "clueTitle" },
|
{ label: "线索名称", prop: "xsMc" },
|
||||||
{ label: "线索类型", prop: "clueType" },
|
{ label: "线索类型", prop: "xlLx",showSolt:true },
|
||||||
{ label: "线索来源", prop: "clueSource" },
|
{ label: "线索来源", prop: "qbLy",showSolt:true },
|
||||||
{ label: "开始时间", prop: "startTime" },
|
{ label: "开始时间", prop: "zxkssj" },
|
||||||
{ label: "结束时间", prop: "endTime" },
|
{ label: "结束时间", prop: "zxjssj" },
|
||||||
{ label: "指向地点", prop: "targetLocation" },
|
{ label: "指向地点", prop: "zxdz" },
|
||||||
{ label: "线索内容", prop: "clueContent", width: 200 },
|
{ label: "线索内容", prop: "xsNr"},
|
||||||
{ label: "附件", prop: "attachment", showSolt: true },
|
{ label: "处置状态", prop: "czzt",showSolt: true},
|
||||||
|
{ label: "附件", prop: "fjdz", showSolt: true },
|
||||||
{ label: "审核状态", prop: "shzt", showSolt: true },
|
{ label: "审核状态", prop: "shzt", showSolt: true },
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@ -153,6 +156,7 @@ onMounted(() => {
|
|||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const handleSh = (val) =>{
|
const handleSh = (val) =>{
|
||||||
chooseRow.value = {id:val.id,shzt:'01'}
|
chooseRow.value = {id:val.id,shzt:'01'}
|
||||||
val.visible = !val.visible;
|
val.visible = !val.visible;
|
||||||
@ -190,22 +194,31 @@ const changeSize = (val) =>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = (val) =>{
|
const getList = () =>{
|
||||||
// pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value,cjLx:'1' };
|
||||||
// let url = '/mosty-lzcj/tbDwMbkf/queryList';
|
qcckGet(data,'/mosty-gsxt/qbcj/selectPage').then(res=>{
|
||||||
// qcckPost(data,url).then(res=>{
|
pageData.tableData = res.records || [];
|
||||||
// pageData.tableData = res.records || [];
|
pageData.total = res.total;
|
||||||
// pageData.total = res.total;
|
pageData.tableConfiger.loading = false;
|
||||||
// pageData.tableConfiger.loading = false;
|
}).catch(()=>{ pageData.tableConfiger.loading = false; })
|
||||||
// }).catch(()=>{ pageData.tableConfiger.loading = false; })
|
}
|
||||||
|
// 删除
|
||||||
|
const delDictItem = (id) =>{
|
||||||
|
proxy.$confirm("确定要删除", "警告", {type: "warning"}).then(() => {
|
||||||
|
qcckPost({id},'/mosty-gsxt/qbcj/delete').then(()=>{
|
||||||
|
proxy.$message({ type: "success", message: "删除成功" });
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
}).catch(() => {});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 详情
|
// 详情
|
||||||
const addEdit = (type, row) => {
|
const addEdit = (type, row) => {
|
||||||
nextTick(()=>{
|
isShow.value = true;
|
||||||
|
setTimeout(()=>{
|
||||||
detailDiloag.value.init(type, row);
|
detailDiloag.value.init(type, row);
|
||||||
})
|
},500)
|
||||||
};
|
};
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
@ -217,6 +230,19 @@ const tabHeightFn = () => {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.label-pop{
|
||||||
|
position: relative;
|
||||||
|
&::before{
|
||||||
|
position: absolute;
|
||||||
|
content: '*';
|
||||||
|
top: 0;
|
||||||
|
left: -7px;
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.el-loading-mask {
|
.el-loading-mask {
|
||||||
background: rgba(0, 0, 0, 0.5) !important;
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
|
@ -0,0 +1,184 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">社会信息员工工作考核{{ title }} </span>
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" size="small" :loading="loading" @click="submit" >保存</el-button>
|
||||||
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules"></FormMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { IdCard } from "@/utils/validate.js";
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import * as rule from "@/utils/rules.js";
|
||||||
|
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, } from "vue";
|
||||||
|
const emit = defineEmits(["updateDate"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dic: Object
|
||||||
|
});
|
||||||
|
const validateIdentity = () => {
|
||||||
|
return (rule, value, callback) => {
|
||||||
|
if (!value) {
|
||||||
|
return callback(new Error("身份证号不能为空"));
|
||||||
|
} else if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)) {
|
||||||
|
callback(new Error("输入的身份证长度或格式错误"));
|
||||||
|
}
|
||||||
|
//身份证城市
|
||||||
|
var aCity = {
|
||||||
|
11: "北京",
|
||||||
|
12: "天津",
|
||||||
|
13: "河北",
|
||||||
|
14: "山西",
|
||||||
|
15: "内蒙古",
|
||||||
|
21: "辽宁",
|
||||||
|
22: "吉林",
|
||||||
|
23: "黑龙江",
|
||||||
|
31: "上海",
|
||||||
|
32: "江苏",
|
||||||
|
33: "浙江",
|
||||||
|
34: "安徽",
|
||||||
|
35: "福建",
|
||||||
|
36: "江西",
|
||||||
|
37: "山东",
|
||||||
|
41: "河南",
|
||||||
|
42: "湖北",
|
||||||
|
43: "湖南",
|
||||||
|
44: "广东",
|
||||||
|
45: "广西",
|
||||||
|
46: "海南",
|
||||||
|
50: "重庆",
|
||||||
|
51: "四川",
|
||||||
|
52: "贵州",
|
||||||
|
53: "云南",
|
||||||
|
54: "西藏",
|
||||||
|
61: "陕西",
|
||||||
|
62: "甘肃",
|
||||||
|
63: "青海",
|
||||||
|
64: "宁夏",
|
||||||
|
65: "新疆",
|
||||||
|
71: "台湾",
|
||||||
|
81: "香港",
|
||||||
|
82: "澳门",
|
||||||
|
91: "国外"
|
||||||
|
};
|
||||||
|
if (!aCity[parseInt(value?.substr(0, 2))]) callback(new Error("身份证地区非法"));
|
||||||
|
// 出生日期验证
|
||||||
|
var sBirthday = (
|
||||||
|
value.substr(6, 4) +
|
||||||
|
"-" +
|
||||||
|
Number(value.substr(10, 2)) +
|
||||||
|
"-" +
|
||||||
|
Number(value.substr(12, 2))
|
||||||
|
).replace(/-/g, "-"),
|
||||||
|
d = new Date(sBirthday);
|
||||||
|
let yyyy = d.getFullYear();
|
||||||
|
let mm = d.getMonth() + 1;
|
||||||
|
let dd = d.getDate();
|
||||||
|
if (sBirthday !== yyyy + "-" + mm + "-" + dd) {
|
||||||
|
listQuery.value.ryCsrq = "";
|
||||||
|
callback(new Error("身份证上的出生日期非法"));
|
||||||
|
} else {
|
||||||
|
let month = mm < 10 ? "0" + mm : mm;
|
||||||
|
listQuery.value.ryCsrq = yyyy + "-" + month + "-" + dd;
|
||||||
|
}
|
||||||
|
// 身份证号码校验
|
||||||
|
var sum = 0,
|
||||||
|
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
|
||||||
|
codes = "10X98765432";
|
||||||
|
for (var i = 0; i < value.length - 1; i++) {
|
||||||
|
sum += value[i] * weights[i];
|
||||||
|
}
|
||||||
|
var last = codes[sum % 11]; //计算出来的最后一位身份证号码
|
||||||
|
if (value[value.length - 1] !== last) {
|
||||||
|
listQuery.value.ryXb = "";
|
||||||
|
callback(new Error("输入的身份证号非法"));
|
||||||
|
} else {
|
||||||
|
if (value.length === 18) {
|
||||||
|
listQuery.value.ryCsrq = IdCard(value, 1);
|
||||||
|
listQuery.value.ryXb =
|
||||||
|
parseInt(value.substr(16, 1)) % 2 === 1 ? "1" : "2";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
callback();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const formData = ref([
|
||||||
|
{ label: "管辖部门", prop: "gxbmDm", type: "department" },
|
||||||
|
{ label: "姓名", prop: "ryXm", type: "input" },
|
||||||
|
{ label: "联系电话", prop: "ryLxdh", type: "input" },
|
||||||
|
{ label: "身份证号", prop: "rySfzh", type: "input" },
|
||||||
|
{ label: "出生日期", prop: "ryCsrq", type: "date" },
|
||||||
|
{ label: "性别", prop: "ryXb", type: "select", options: props.dic.D_BZ_XB },
|
||||||
|
{ label: "民族", prop: "ryMz", type: "select", options: props.dic.D_BZ_MZ },
|
||||||
|
{ label: "学历", prop: "ryXl", type: "select", options: props.dic.D_BZ_WHCD },
|
||||||
|
{ label: "政治面貌", prop: "ryZzmm", type: "select", options: props.dic.D_BZ_ZZMM},
|
||||||
|
{ label: "所在单位", prop: "rySzdw", type: "input" },
|
||||||
|
{ label: "居住地地址", prop: "jzdDz", type: "textarea", width: "100%" },
|
||||||
|
{ label: "考核分数", prop: "khfs", type: "input" },
|
||||||
|
{ label: "奖惩类型", prop: "jclx", type: "select", options: props.dic.D_GS_RLQB_JCQK},
|
||||||
|
]);
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const loading = ref(false);
|
||||||
|
const elform = ref();
|
||||||
|
const title = ref("");
|
||||||
|
const rules = reactive({
|
||||||
|
gxbmDm: [{ required: true, message: "请选择管辖部门", trigger: "change" }],
|
||||||
|
ryXm: [{ required: true, message: "请输入人员姓名", trigger: "blur" }],
|
||||||
|
rySfzh: [
|
||||||
|
{ required: true, message: "请输入人员身份证号", trigger: ["blur", "change"]},
|
||||||
|
{ trigger: ["blur", "change"], validator: validateIdentity() }
|
||||||
|
],
|
||||||
|
...rule.phoneRule({ require: true, validator: true }, "ryLxdh") // 是否必填 是否进行校验 可以传第二个参数
|
||||||
|
});
|
||||||
|
|
||||||
|
// 初始化数据
|
||||||
|
const init = (type, row) => {
|
||||||
|
dialogForm.value = true;
|
||||||
|
title.value = type == "add" ? "新增" : "编辑";
|
||||||
|
if (row) getDataById(row.id);
|
||||||
|
};
|
||||||
|
// 根据id查询详情
|
||||||
|
const getDataById = (id) => {
|
||||||
|
qcckGet({id}, "/mosty-gsxt/tbJlqk/selectByid").then((res) => {
|
||||||
|
listQuery.value = res;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const submit = () => {
|
||||||
|
elform.value.submit((data) => {
|
||||||
|
let url = title.value == "新增" ? "/mosty-gsxt/tbJlqk/add" : "/mosty-gsxt/tbJlqk/update";
|
||||||
|
let params = { ...data };
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(params, url).then(() => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$message({ type: "success", message: title.value + "成功" });
|
||||||
|
emit("updateDate");
|
||||||
|
close();
|
||||||
|
}).catch(() => {loading.value = false;});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
listQuery.value = {};
|
||||||
|
dialogForm.value = false;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
defineExpose({ init });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
</style>
|
@ -0,0 +1,170 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="titleBox">
|
||||||
|
<PageTitle title="社会信息员工工作考核">
|
||||||
|
<el-button type="primary" @click="addEdit('add', '')">
|
||||||
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
|
<span style="vertical-align: middle">新增</span>
|
||||||
|
</el-button>
|
||||||
|
</PageTitle>
|
||||||
|
</div>
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="tabBox">
|
||||||
|
<MyTable
|
||||||
|
:tableData="pageData.tableData"
|
||||||
|
:tableColumn="pageData.tableColumn"
|
||||||
|
:tableHeight="pageData.tableHeight"
|
||||||
|
:key="pageData.keyCount"
|
||||||
|
:tableConfiger="pageData.tableConfiger"
|
||||||
|
:controlsWidth="pageData.controlsWidth"
|
||||||
|
>
|
||||||
|
<template #ryXb="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.ryXb" :options="D_BZ_XB" />
|
||||||
|
</template>
|
||||||
|
<template #ryXl="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.ryXl" :options="D_BZ_WHCD" />
|
||||||
|
</template>
|
||||||
|
<template #ryMz="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.ryMz" :options="D_BZ_MZ" />
|
||||||
|
</template>
|
||||||
|
<template #jclx="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.jclx" :options="D_GS_RLQB_JCQK" />
|
||||||
|
</template>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #controls="{ row }">
|
||||||
|
<el-link size="small" type="success" @click="addEdit('edit', row)">编辑</el-link >
|
||||||
|
<el-link size="small" type="danger" @click="deleteRow(row.id)">删除</el-link>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
|
<Pages
|
||||||
|
@changeNo="changeNo"
|
||||||
|
@changeSize="changeSize"
|
||||||
|
:tableHeight="pageData.tableHeight"
|
||||||
|
:pageConfiger="{
|
||||||
|
...pageData.pageConfiger,
|
||||||
|
total: pageData.total
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<!-- 详情 -->
|
||||||
|
<DetailForm v-if="show" @updateDate="getList" ref="detailDiloag" :dic="{ D_BZ_WHCD, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM,D_GS_RLQB_JCQK }"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
|
import DetailForm from "./components/addForm.vue";
|
||||||
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_GS_RLQB_JCQK,D_BZ_WHCD, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM } = proxy.$dict("D_GS_RLQB_JCQK","D_BZ_WHCD","D_BZ_MZ","D_BZ_XB","D_BZ_ZZMM"); //获取字典数据
|
||||||
|
const detailDiloag = ref();
|
||||||
|
const searchBox = ref(); //搜索框
|
||||||
|
const show = ref(false);
|
||||||
|
const searchConfiger = ref([
|
||||||
|
{ label: "姓名", prop: "ryXm", placeholder: "请输入姓名", showType: "input" },
|
||||||
|
{ label: "身份证号", prop: "rySfzh", placeholder: "请输入身份证号", showType: "input"}
|
||||||
|
]);
|
||||||
|
|
||||||
|
const pageData = reactive({
|
||||||
|
tableData: [],
|
||||||
|
keyCount: 0,
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "null",
|
||||||
|
loading: false
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
pageConfiger: {
|
||||||
|
pageSize: 20,
|
||||||
|
pageCurrent: 1
|
||||||
|
},
|
||||||
|
controlsWidth: 200,
|
||||||
|
tableColumn: [
|
||||||
|
{ label: "姓名", prop: "ryXm" },
|
||||||
|
{ label: "性别", prop: "ryXb",showSolt: true },
|
||||||
|
{ label: "民族", prop: "ryMz",showSolt: true },
|
||||||
|
{ label: "学历", prop: "ryXl",showSolt: true },
|
||||||
|
{ label: "身份证", prop: "rySfzh"},
|
||||||
|
{ label: "所在单位", prop: "rySzdw"},
|
||||||
|
{ label: "考核分数", prop: "khfs" },
|
||||||
|
{ label: "奖惩类型", prop: "jclx",showSolt: true },
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
const queryFrom = ref({});
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
tabHeightFn();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 搜索
|
||||||
|
const onSearch = (val) => {
|
||||||
|
queryFrom.value = { ...val };
|
||||||
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
|
||||||
|
const changeNo = (val) => {
|
||||||
|
pageData.pageConfiger.pageNum = val;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
const changeSize = (val) => {
|
||||||
|
pageData.pageConfiger.pageSize = val;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
|
||||||
|
// 获取列表
|
||||||
|
const getList = () => {
|
||||||
|
pageData.tableConfiger.loading = true;
|
||||||
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
|
qcckGet(data, "/mosty-gsxt/tbJlqk/selectPage").then((res) => {
|
||||||
|
pageData.tableData = res.records || [];
|
||||||
|
pageData.total = res.total;
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
}).catch(() => {
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
const deleteRow = (id) => {
|
||||||
|
proxy.$confirm("确定要删除", "警告", { type: "warning" }).then(() => {
|
||||||
|
qcckPost({id}, "/mosty-gsxt/tbJlqk/delete").then(() => {
|
||||||
|
proxy.$message({ type: "success", message: "删除成功" });
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
// 详情
|
||||||
|
const addEdit = (type, row) => {
|
||||||
|
show.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
detailDiloag.value.init(type, row);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.el-loading-mask {
|
||||||
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
|
}
|
||||||
|
</style>
|
@ -3,22 +3,15 @@
|
|||||||
<!-- 左侧树形菜单 -->
|
<!-- 左侧树形菜单 -->
|
||||||
<div class="left-menu">
|
<div class="left-menu">
|
||||||
<!-- 这个部分用的是组件-后期替换 -->
|
<!-- 这个部分用的是组件-后期替换 -->
|
||||||
<el-tree
|
<MOSTY.DepartmentTree width="310px" @change="init" placeholder="管理部门" clearable filterable :isBmId="true" v-model="listQuery.ssbmdm" />
|
||||||
:data="treeData"
|
|
||||||
:props="defaultProps"
|
|
||||||
@node-click="handleNodeClick"
|
|
||||||
default-expand-all
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 右侧内容区 -->
|
<!-- 右侧内容区 -->
|
||||||
<div class="right-content">
|
<div class="right-content">
|
||||||
<!-- 顶部筛选 -->
|
<!-- 顶部筛选 -->
|
||||||
<div class="filter-section">
|
<div class="filter-section">
|
||||||
<el-radio-group v-model="radio">
|
<el-radio-group v-model="radio" @change="changeRadio">
|
||||||
<el-radio :label="it.value" v-for="it in timeList" :key="it.value">{{
|
<el-radio v-for="(it,idx) in timeList" :key="idx" :label="it.num" >{{ it.label }}</el-radio>
|
||||||
it.label
|
|
||||||
}}</el-radio>
|
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dateRange"
|
v-model="dateRange"
|
||||||
@ -30,23 +23,19 @@
|
|||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
@change="handleDateChange"
|
@change="handleDateChange"
|
||||||
/>
|
/>
|
||||||
<el-button type="primary" @click="handleExport">查询</el-button>
|
<el-button type="primary" @click="init">查询</el-button>
|
||||||
<el-button type="primary" @click="handleExport">重置</el-button>
|
<el-button type="primary" @click="handleRest">重置</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 统计图表区域 -->
|
<!-- 统计图表区域 -->
|
||||||
<div class="charts-container">
|
<div class="charts-container">
|
||||||
<div class="chart-item">
|
<div class="chart-item">
|
||||||
<div class="chart-title">
|
<div class="chart-title">
|
||||||
<span>报送情况</span>
|
<span>线索类型</span>
|
||||||
<el-button type="primary">导出统计表</el-button>
|
<el-button type="primary">导出统计表</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart">
|
<div class="chart">
|
||||||
<PieEcharts
|
<PieEcharts echartsId="bsqkEpieChart" color="#333" :data="obj.xslxList"></PieEcharts>
|
||||||
echartsId="bsqkEpieChart"
|
|
||||||
color="#333"
|
|
||||||
:data="obj.bsqkList"
|
|
||||||
></PieEcharts>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart-item">
|
<div class="chart-item">
|
||||||
@ -55,29 +44,19 @@
|
|||||||
<el-button type="primary">导出统计表</el-button>
|
<el-button type="primary">导出统计表</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart">
|
<div class="chart">
|
||||||
<DbarEcharts
|
<DbarEcharts echartsId="bar3DChart" :data="obj.cnList"></DbarEcharts>
|
||||||
echartsId="bar3DChart"
|
|
||||||
:data="obj.cnList"
|
|
||||||
></DbarEcharts>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart-item">
|
<div class="chart-item">
|
||||||
<div class="chart-title">
|
<div class="chart-title">
|
||||||
<span>战果情况</span>
|
<span>处置状态</span>
|
||||||
<el-button type="primary">导出统计表</el-button>
|
<el-button type="primary">导出统计表</el-button>
|
||||||
</div>
|
</div>
|
||||||
<ul class="chart mt8">
|
<ul class="chart mt8">
|
||||||
<li v-for="(it, idx) in obj.zgList" :key="idx" class="mb6">
|
<li v-for="(it, idx) in obj.czztList" :key="idx" class="mb6">
|
||||||
<div style="color: #333">{{ it.label }}</div>
|
<div style="color: #333">{{ it.label }}</div>
|
||||||
<el-progress
|
<el-progress :text-inside="true" :stroke-width="20" :percentage="50" status="exception" >
|
||||||
:text-inside="true"
|
<span><span style="color: #e37233">{{ it.value }}</span> 个</span >
|
||||||
:stroke-width="20"
|
|
||||||
:percentage="50"
|
|
||||||
status="exception"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
><span style="color: #e37233">{{ it.value }}</span> 个</span
|
|
||||||
>
|
|
||||||
</el-progress>
|
</el-progress>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -87,11 +66,7 @@
|
|||||||
<span>奖惩情况</span>
|
<span>奖惩情况</span>
|
||||||
<el-button type="primary">导出统计表</el-button>
|
<el-button type="primary">导出统计表</el-button>
|
||||||
</div>
|
</div>
|
||||||
<lineEcharts
|
<lineEcharts color="#333" echartsId="areaChart" :data="obj.jcqkList"></lineEcharts>
|
||||||
color="#333"
|
|
||||||
echartsId="areaChart"
|
|
||||||
:data="obj.jcList"
|
|
||||||
></lineEcharts>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -99,93 +74,111 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { timeValidate, timeSlotChange } from "@/utils/tools.js";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
import lineEcharts from "@/views/home/echarts/lineEcharts.vue";
|
import lineEcharts from "@/views/home/echarts/lineEcharts.vue";
|
||||||
import PieEcharts from "@/views/home/echarts/pieEcharts.vue";
|
import PieEcharts from "@/views/home/echarts/pieEcharts.vue";
|
||||||
import DbarEcharts from "@/views/home/echarts/3DbarEcharts.vue";
|
import DbarEcharts from "@/views/home/echarts/3DbarEcharts.vue";
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||||
import * as echarts from "echarts";
|
const radio = ref(0);
|
||||||
const radio = ref("日");
|
|
||||||
const timeList = ref([
|
const timeList = ref([
|
||||||
{ label: "日", value: "0" },
|
{ label: "日", num: 0 },
|
||||||
{ label: "月", value: "1" },
|
{ label: "月", num: 1 },
|
||||||
{ label: "季", value: "2" },
|
{ label: "季", num: 2 },
|
||||||
{ label: "年", value: "3" }
|
{ label: "年", num: 3 }
|
||||||
]);
|
]);
|
||||||
|
const dateRange = ref([timeValidate(),timeValidate()]);// 日期范围
|
||||||
|
const listQuery = ref({})
|
||||||
const obj = reactive({
|
const obj = reactive({
|
||||||
listQuery: {},
|
xslxList: [],
|
||||||
bsqkList: [
|
jcqkList: [],
|
||||||
{ label: "待上报", value: 18 },
|
czztList: [],
|
||||||
{ label: "已上报", value: 20 },
|
|
||||||
{ label: "已流转指令", value: 50 },
|
|
||||||
{ label: "已办结", value: 40 },
|
|
||||||
{ label: "已归档", value: 30 }
|
|
||||||
],
|
|
||||||
//
|
|
||||||
jcList: [
|
|
||||||
{ label: "表彰奖励", value: 10 },
|
|
||||||
{ label: "物质奖励", value: 20 },
|
|
||||||
{ label: "其他奖励", value: 50 },
|
|
||||||
{ label: "责任追究", value: 40 },
|
|
||||||
{ label: "通报批评", value: 40 },
|
|
||||||
{ label: "其他惩罚", value: 30 }
|
|
||||||
],
|
|
||||||
zgList: [
|
|
||||||
{ label: "已处置", value: 10 },
|
|
||||||
{ label: "转指令", value: 20 },
|
|
||||||
{ label: "转协同", value: 50 },
|
|
||||||
{ label: "转督办", value: 40 },
|
|
||||||
{ label: "转移交", value: 40 },
|
|
||||||
{ label: "警种变更", value: 40 }
|
|
||||||
],
|
|
||||||
cnList: {
|
cnList: {
|
||||||
list: [
|
list: [],
|
||||||
{ label: "已采纳", val: 50 },
|
|
||||||
{ label: "未采纳", val: 40 },
|
|
||||||
{ label: "已合并", val: 10 },
|
|
||||||
{ label: "已流转", val: 30 },
|
|
||||||
{ label: "退回", val: 40 },
|
|
||||||
],
|
|
||||||
topColor:'#1bd6c2',
|
topColor:'#1bd6c2',
|
||||||
colors: ["#28EEBF","#0DBAC5"],
|
colors: ["#28EEBF","#0DBAC5"],
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 树形菜单数据
|
|
||||||
const treeData = ref([
|
onMounted(() => {
|
||||||
{
|
init() //初始化数据
|
||||||
label: "林芝市公安局(200)",
|
});
|
||||||
children: [
|
|
||||||
{ label: "工布江达县公安局(100)" },
|
const init = () => {
|
||||||
{ label: "工布江达城区派出所(10)" },
|
let data = {
|
||||||
{ label: "某某某派出所(10)" },
|
ssbmdm: listQuery.value.ssbmdm,
|
||||||
{ label: "某某某公安局(100)" }
|
kssj: dateRange.value[0] + ' 00:00:00',
|
||||||
]
|
jssj: dateRange.value[1] + ' 23:59:59',
|
||||||
|
cjLx: 1 // 1-临安吗
|
||||||
|
};
|
||||||
|
|
||||||
|
// 获取线索类型统计
|
||||||
|
qcckPost(data, '/mosty-gsxt/qbcj/getXscjTjByXslx').then(res => {
|
||||||
|
let arr = res || [];
|
||||||
|
obj.xslxList = arr.map(v=>{
|
||||||
|
return { label:v.zdmc,value:v.count }
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
// 获取奖惩情况统计
|
||||||
|
qcckPost(data, '/mosty-gsxt/tbJlqk/getShygkhtj').then(res => {
|
||||||
|
let arr = res || [];
|
||||||
|
obj.jcqkList = arr.map(v=>{
|
||||||
|
return { label:v.zdmc,value:v.count }
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
// 获取处置状态统计
|
||||||
|
qcckPost(data, '/mosty-gsxt/qbcj/getXscjTjByCzzt').then(res => {
|
||||||
|
let arr = res || [];
|
||||||
|
obj.czztList = arr.map(v=>{
|
||||||
|
return { label:v.zdmc,value:v.count }
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
// 获取采纳情况统计
|
||||||
|
qcckPost(data, '/mosty-gsxt/qbcj/getXscjTjByShzt').then(res => {
|
||||||
|
let arr = res || [];
|
||||||
|
obj.cnList.list = arr.map(v=>{
|
||||||
|
return { label:v.zdmc,value:v.count }
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const changeRadio = (val) =>{
|
||||||
|
switch(val){
|
||||||
|
case 0: //日
|
||||||
|
dateRange.value = [timeValidate(),timeValidate()]
|
||||||
|
break;
|
||||||
|
case 1: //月
|
||||||
|
dateRange.value = timeSlotChange('本月')
|
||||||
|
break;
|
||||||
|
case 2: //季度
|
||||||
|
dateRange.value = timeSlotChange('本季度')
|
||||||
|
break;
|
||||||
|
case 3: //年
|
||||||
|
dateRange.value = timeSlotChange('本年')
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
]);
|
}
|
||||||
|
|
||||||
const defaultProps = {
|
const handleDateChange = (val) => {
|
||||||
children: "children",
|
radio.value = '';
|
||||||
label: "label"
|
if(val[0] == timeSlotChange('天')[0] && val[1] == timeSlotChange('天')[1]) radio.value = 0;
|
||||||
|
if(val[0] == timeSlotChange('本月')[0] && val[1] == timeSlotChange('本月')[1]) radio.value = 1;
|
||||||
|
if(val[0] == timeSlotChange('本季度')[0] && val[1] == timeSlotChange('本季度')[1]) radio.value = 2;
|
||||||
|
if(val[0] == timeSlotChange('本年')[0] && val[1] == timeSlotChange('本年')[1]) radio.value = 3;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 日期范围
|
// 重置
|
||||||
const dateRange = ref([]);
|
const handleRest = () => {
|
||||||
|
radio.value = 0;
|
||||||
// 事件处理函数
|
dateRange.value = [timeValidate(),timeValidate()];
|
||||||
const handleNodeClick = (data) => {
|
init();
|
||||||
console.log(data);
|
|
||||||
};
|
};
|
||||||
|
;
|
||||||
const handleDateChange = () => {
|
|
||||||
// 处理日期变化
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleExport = () => {
|
|
||||||
// 处理导出
|
|
||||||
};
|
|
||||||
|
|
||||||
onMounted(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -194,7 +187,7 @@ onMounted(() => {});
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.left-menu {
|
.left-menu {
|
||||||
width: 280px;
|
width: 350px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
<!-- 头部筛选 -->
|
<!-- 头部筛选 -->
|
||||||
<div class="topSearch">
|
<div class="topSearch">
|
||||||
<el-form v-model="listQuery">
|
<el-form v-model="listQuery">
|
||||||
<!-- <MOSTY.Department clearable width="400px" v-model="listQuery.ssbmdm" /> -->
|
|
||||||
<MOSTY.Select v-model="listQuery.sd" :dictEnum="search.xd" />
|
<MOSTY.Select v-model="listQuery.sd" :dictEnum="search.xd" />
|
||||||
<MOSTY.Select v-model="listQuery.zs" :dictEnum="search.zs" />
|
<MOSTY.Select v-model="listQuery.zs" :dictEnum="search.zs" />
|
||||||
<MOSTY.Select v-model="listQuery.qy" :dictEnum="search.qy" />
|
<MOSTY.Select v-model="listQuery.qy" :dictEnum="search.qy" />
|
||||||
|
@ -1,13 +1,119 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>22</div>
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">网上会议室{{ title }} </span>
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" size="small" :loading="loading" @click="submit" >保存</el-button>
|
||||||
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
|
<template #glxsmc>
|
||||||
|
<el-input placeholder="请选择关联线索" @click="chooseVisiblexS = true" readonly v-model="listQuery.glxsmc"></el-input>
|
||||||
|
</template>
|
||||||
|
<template #chryList>
|
||||||
|
<el-input placeholder="请选择参会人员" @click="chooseVisible = true" readonly v-model="listQuery.rymc"></el-input>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ChooseUser v-model="chooseVisible" :Single="false" @choosedUsers="handleUserSelected" :roleIds="roleIds" />
|
||||||
|
<Xslist v-model="chooseVisiblexS" @choosed="choosed" :roleIds="roleIdsxs"></Xslist>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script setup>
|
||||||
export default {
|
import ChooseUser from "@/components/MyComponents/ChooseUser/index.vue";
|
||||||
|
import Xslist from '@/components/MyComponents/ChooseXs/index.vue'
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, } from "vue";
|
||||||
|
const emit = defineEmits(["updateDate"]);
|
||||||
|
|
||||||
}
|
const roleIds = ref([]); //角色id
|
||||||
|
const chooseVisible = ref(false);
|
||||||
|
const roleIdsxs = ref([]); //角色id
|
||||||
|
const chooseVisiblexS = ref(false);
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const rules = reactive({
|
||||||
|
hskssj: [{ required: true, message: "请选择会商开始时间", trigger: "change" }],
|
||||||
|
hsjssj: [{ required: true, message: "请选择会商结束时间", trigger: "change" }],
|
||||||
|
hsnr: [{ required: true, message: "请输入会商内容", trigger: "blur" }],
|
||||||
|
hsbt: [{ required: true, message: "请输入会商标题", trigger: "blur" }],
|
||||||
|
glxsmc: [{ required: true, message: "请选择关联线索", trigger: "change" }],
|
||||||
|
chryList: [{ required: true, message: "请选择参会人员", trigger: "change" }],
|
||||||
|
});
|
||||||
|
const formData = ref([
|
||||||
|
{ label: "会商开始时间", prop: "hskssj", type: "datetime" },
|
||||||
|
{ label: "会商结束时间", prop: "hsjssj", type: "datetime" },
|
||||||
|
{ label: "会商内容", prop: "hsnr", type: "textarea", width: "100%" },
|
||||||
|
{ label: "关联线索", prop: "glxsmc", type: "slot", },
|
||||||
|
{ label: "会商标题", prop: "hsbt", type: "input" },
|
||||||
|
{ label: "参会人员", prop: "chryList", type: "slot" ,width:'100%'},
|
||||||
|
]);
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const loading = ref(false);
|
||||||
|
const elform = ref();
|
||||||
|
const title = ref("");
|
||||||
|
|
||||||
|
// 初始化数据
|
||||||
|
const init = (type, row) => {
|
||||||
|
dialogForm.value = true;
|
||||||
|
title.value = type == "add" ? "新增" : "编辑";
|
||||||
|
if (row) getDataById(row.id);
|
||||||
|
};
|
||||||
|
// 根据id查询详情
|
||||||
|
const getDataById = (id) => {
|
||||||
|
qcckGet({id}, "/mosty-gsxt/wshs/selectByid").then((res) => {
|
||||||
|
res.rymc = res.chryList ? res.chryList.map(v=>v.chryxm).join(","):'';
|
||||||
|
res.chryList = res.chryList ? res.chryList.map(item => item.chryid) : [];
|
||||||
|
roleIds.value = res.chryList;
|
||||||
|
roleIdsxs.value = res.glxsid ? [res.glxsid] : [];
|
||||||
|
listQuery.value = res;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleUserSelected = (userData) => {
|
||||||
|
roleIds.value = userData.map(item => item.id);
|
||||||
|
listQuery.value.chryList = userData.map(item => item.id)
|
||||||
|
listQuery.value.rymc = userData.map(item => item.userName).join("、");
|
||||||
|
};
|
||||||
|
|
||||||
|
const choosed = (data) => {
|
||||||
|
listQuery.value.glxsmc = data[0].xsMc;
|
||||||
|
listQuery.value.glxsid = data[0].id;
|
||||||
|
roleIdsxs.value = data.map(item => item.id);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const submit = () => {
|
||||||
|
elform.value.submit((data) => {
|
||||||
|
let url = title.value == "新增" ? "/mosty-gsxt/wshs/add" : "/mosty-gsxt/wshs/update";
|
||||||
|
let params = { ...data };
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(params, url).then(() => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$message({ type: "success", message: title.value + "成功" });
|
||||||
|
emit("updateDate");
|
||||||
|
close();
|
||||||
|
}).catch(() => {loading.value = false;});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
listQuery.value = {};
|
||||||
|
roleIds.value = [];
|
||||||
|
roleIdsxs.value = [];
|
||||||
|
dialogForm.value = false;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
defineExpose({ init });
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
</style>
|
</style>
|
@ -1,55 +1,60 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="titleBox">
|
<div class="titleBox">
|
||||||
<PageTitle title="网上会议室" />
|
<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 ref="searchBox">
|
<div ref="searchBox">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<div class="flexcb">
|
<ul class="list noScollLine" v-loading="pageData.loading">
|
||||||
<div class="btns">
|
<li class="list-item" v-for="(item, index) in pageData.list" :key="`tableData${index}`">
|
||||||
<el-button type="primary">新增</el-button>
|
|
||||||
<el-button type="danger">删除</el-button>
|
|
||||||
</div>
|
|
||||||
<Search :searchArr="searchArrMeet" @submit="onSearch" :key="pageData.keyCount + 1" class="search" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="list noScollLine">
|
|
||||||
<div class="list-item" v-for="(item, index) in pageData.tableData" :key="`tableData${index}`" @onmouseover="">
|
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<div class="title ellipsis">{{ item.title }}</div>
|
<div class="title ellipsis">{{ item.hsbt }}</div>
|
||||||
<div class="info h20 ellipsis">会商内容:{{ item.hynr }}</div>
|
<div class="info h20 ellipsis">会商内容:{{ item.hsnr }}</div>
|
||||||
<div class="info h20 ellipsis">关联线索:{{ item.lxxs }}</div>
|
<div class="info h20 ellipsis">关联线索:{{ item.glxsmc }}</div>
|
||||||
<div class="info h20 ellipsis">涉及人员:{{ item.sjry }}</div>
|
<div class="info h20 ellipsis">涉及人员:{{ item.sjry }}</div>
|
||||||
<div class="info h20 ellipsis">会商处置意见:xxxxxxx线索</div>
|
<div class="info h20 ellipsis">会商处置意见:{{ item.czyj }}</div>
|
||||||
|
<div class="info h20 ellipsis">会议时间:{{ item.hskssj }} - {{ item.hsjssj }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mid">
|
<div class="mid">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="title ellipsis">参会人员:{{ item.chry }}</div>
|
<div class="title ellipsis">参会人员:{{ item.chry }}</div>
|
||||||
<div class="desc">
|
<div class="desc">
|
||||||
<div class="info ellipsis" v-for="(el, i) in item.cqcs" :key="i">{{ i + 1 }}.{{ el }}</div>
|
<div class="info ellipsis" v-for="(el, i) in item.xsplList" :key="i">{{ i + 1 }}、{{ el.plnr }}</div>
|
||||||
<!-- <div class="info ellipsis">2.应抓捕赵某,王某XXXXXXXXX王某XXXXXXXXXXXXXXXX等人</div> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<el-button type="primary" size="small">加入会议</el-button>
|
<el-button type="primary" size="small" @click="joinMeeting(item)">加入会议</el-button>
|
||||||
<el-button type="primary" size="small">反馈情况</el-button>
|
<el-button type="primary" size="small">反馈情况</el-button>
|
||||||
<el-button type="primary" size="small">处置下发</el-button>
|
<el-button type="primary" size="small">处置下发</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
|
<el-popover placement="top" :visible="item.visible" :width="400" trigger="click">
|
||||||
|
<template #reference>
|
||||||
<el-link type="primary"><el-icon><ChatDotSquare /></el-icon>评论</el-link>
|
<el-link type="primary"><el-icon><ChatDotSquare /></el-icon>评论</el-link>
|
||||||
<el-link type="primary"><el-icon><VideoPlay /></el-icon>会议回放</el-link>
|
</template>
|
||||||
<el-link type="primary"><el-icon><Edit /></el-icon>详情</el-link>
|
<MOSTY.Other filterable style="width: 100%;" v-model="comments" type="textarea" rows="3" clearable placeholder="发表评论"/>
|
||||||
<el-link type="danger"><el-icon><Delete /></el-icon>删除</el-link>
|
<div class="mt10 flex just-center">
|
||||||
|
<el-button size="small" type="primary" @click.stop="handleSumbit(item)">发送</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
<el-link type="primary" ><el-icon><VideoPlay /></el-icon>会议回放</el-link>
|
||||||
|
<el-link type="primary" @click="addEdit('edit', item)"><el-icon><Edit /></el-icon>编辑</el-link>
|
||||||
|
<el-link type="danger" @click="delDictItem(item.id)"><el-icon><Delete /></el-icon>删除</el-link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</li>
|
||||||
|
<MOSTY.Empty :show="!pageData.loading && pageData.list.length <= 0"></MOSTY.Empty>
|
||||||
|
</ul>
|
||||||
<Pages
|
<Pages
|
||||||
@changeNo="changeNo"
|
@changeNo="changeNo"
|
||||||
@changeSize="changeSize"
|
@changeSize="changeSize"
|
||||||
@ -61,10 +66,11 @@
|
|||||||
></Pages>
|
></Pages>
|
||||||
</div>
|
</div>
|
||||||
<!-- 详情 -->
|
<!-- 详情 -->
|
||||||
<DetailForm ref="detailDiloag" />
|
<DetailForm ref="detailDiloag" @updateDate="getList" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
@ -78,134 +84,26 @@
|
|||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{
|
{
|
||||||
label: "会议主题",
|
label: "会议主题",
|
||||||
prop: "businessNo",
|
prop: "hsbt",
|
||||||
placeholder: "请输入会议主题",
|
placeholder: "请输入会议主题",
|
||||||
showType: "input"
|
showType: "input"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "关联线索",
|
label: "会议时间",
|
||||||
prop: "goodsName",
|
prop: "daterange",
|
||||||
placeholder: "请选择关联线索",
|
showType: "datetimerange"
|
||||||
showType: "select"
|
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: "涉及人员",
|
|
||||||
prop: "businessNo",
|
|
||||||
placeholder: "请输入涉及人员",
|
|
||||||
showType: "input"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "会议内容",
|
|
||||||
prop: "businessNo",
|
|
||||||
placeholder: "请输入会议内容",
|
|
||||||
showType: "input"
|
|
||||||
}
|
|
||||||
]);
|
]);
|
||||||
const searchArrMeet = ref([
|
const comments = ref(''); // 评论内容
|
||||||
{
|
|
||||||
label: "",
|
|
||||||
prop: "title",
|
|
||||||
placeholder: "请输入关键字",
|
|
||||||
showType: "input"
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
|
|
||||||
const queryFrom = ref({});
|
const queryFrom = ref({});
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
list: [],
|
||||||
{
|
loading: false,
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "林芝市XX地区发生的重大案件处理",
|
|
||||||
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
|
|
||||||
sjry: "王某、赵某、.....",
|
|
||||||
chry: "王某、赵某、赵某赵某赵某.....",
|
|
||||||
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
keyCount: 0,
|
|
||||||
tableConfiger: {
|
|
||||||
rowHieght: 61,
|
|
||||||
showSelectType: "null",
|
|
||||||
loading: false
|
|
||||||
},
|
|
||||||
total: 0,
|
total: 0,
|
||||||
pageConfiger: {
|
pageConfiger: {
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
pageCurrent: 1
|
pageCurrent: 1
|
||||||
},
|
},
|
||||||
controlsWidth: 120
|
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@ -214,36 +112,75 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 搜索
|
// 搜索
|
||||||
const onSearch = val => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = { ...val };
|
queryFrom.value = { ...val };
|
||||||
|
if (val.daterange && val.daterange.length > 0) {
|
||||||
|
queryFrom.value.startTime = val.daterange[0];
|
||||||
|
queryFrom.value.endTime = val.daterange[1];
|
||||||
|
} else {
|
||||||
|
queryFrom.value.startTime = '';
|
||||||
|
queryFrom.value.endTime = '';
|
||||||
|
}
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
getList();
|
getList();
|
||||||
};
|
};
|
||||||
|
|
||||||
const changeNo = val => {
|
const changeNo = (val) => {
|
||||||
pageData.pageConfiger.pageNum = val;
|
pageData.pageConfiger.pageNum = val;
|
||||||
getList();
|
getList();
|
||||||
};
|
};
|
||||||
const changeSize = val => {
|
const changeSize = (val) => {
|
||||||
pageData.pageConfiger.pageSize = val;
|
pageData.pageConfiger.pageSize = val;
|
||||||
getList();
|
getList();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = val => {
|
const getList = () => {
|
||||||
// pageData.tableConfiger.loading = true;
|
pageData.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
// let url = '/mosty-lzcj/tbDwMbkf/queryList';
|
delete data.daterange; // 删除daterange字段
|
||||||
// qcckPost(data,url).then(res=>{
|
qcckGet(data,'/mosty-gsxt/wshs/selectPage').then(res=>{
|
||||||
// pageData.tableData = res.records || [];
|
let arr = res.records || [];
|
||||||
// pageData.total = res.total;
|
arr.forEach(item => {
|
||||||
// pageData.tableConfiger.loading = false;
|
item.chry = item.chryList ? item.chryList.map(el => el.chryxm).join('、') : '';
|
||||||
// }).catch(()=>{ pageData.tableConfiger.loading = false; })
|
item.sjry = item.xsryList ? item.xsryList.map(el => el.xm).join('、') : '';
|
||||||
|
});
|
||||||
|
pageData.list = arr;
|
||||||
|
pageData.total = res.total;
|
||||||
|
pageData.loading = false;
|
||||||
|
}).catch(()=>{ pageData.loading = false; })
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 提交评论
|
||||||
|
const handleSumbit = (item) => {
|
||||||
|
if (!comments.value) return proxy.$message({ type: "warning", message: "评论内容不能为空" });
|
||||||
|
proxy.$message({ type: "success", message: "评论已发送" });
|
||||||
|
qcckPost({id:item.id,plnr:comments.value},'/mosty-gsxt/wshs/addWshyPl').then((res)=>{
|
||||||
|
getList();
|
||||||
|
item.visible = false; // 关闭评论弹窗
|
||||||
|
comments.value = ''; // 清空评论内容
|
||||||
|
})
|
||||||
|
};
|
||||||
|
// 加入会议
|
||||||
|
const joinMeeting = (item) => {
|
||||||
|
qcckPost({id:item.id},'/mosty-gsxt/wshs/addWshyRy').then((res)=>{
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
const delDictItem = (id) =>{
|
||||||
|
proxy.$confirm("确定要删除", "警告", {type: "warning"}).then(() => {
|
||||||
|
qcckPost({id},'/mosty-gsxt/wshs/delete').then(()=>{
|
||||||
|
proxy.$message({ type: "success", message: "删除成功" });
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
}).catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
// 详情
|
// 详情
|
||||||
const addEdit = (type, row) => {
|
const addEdit = (type, row) => {
|
||||||
// detailDiloag.value.init(type, row);
|
detailDiloag.value.init(type, row);
|
||||||
};
|
};
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
@ -274,15 +211,14 @@
|
|||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
}
|
}
|
||||||
.list {
|
.list {
|
||||||
height: calc(100% - 62px);
|
height: calc(100% - 40px);
|
||||||
|
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
margin: 0 15px;
|
margin: 0 15px;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
.list-item {
|
.list-item {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
height: 254px;
|
height: 270px;
|
||||||
width: 380px;
|
width: 380px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
@ -324,6 +260,19 @@
|
|||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
.left {
|
||||||
|
width: calc(100% - 80px);
|
||||||
|
.title {
|
||||||
|
font-size: 14px;
|
||||||
|
color: black;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
.info {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #a5a1a1;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
|
@ -158,7 +158,7 @@ const deleteRow = (index) =>{
|
|||||||
const submit = () => {
|
const submit = () => {
|
||||||
elform.value.submit((data) => {
|
elform.value.submit((data) => {
|
||||||
let url = title.value == "新增" ? "/mosty-gsxt/qbcj/add" : "/mosty-gsxt/qbcj/update";
|
let url = title.value == "新增" ? "/mosty-gsxt/qbcj/add" : "/mosty-gsxt/qbcj/update";
|
||||||
let params = { ...data ,ryList:pageForm.tableData,cjLx:'01'};
|
let params = { ...data ,ryList:pageForm.tableData,cjLx:'0'};
|
||||||
params.fjdz = fjdz.value.length > 0 ? fjdz.value.join(','):'';
|
params.fjdz = fjdz.value.length > 0 ? fjdz.value.join(','):'';
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
qcckPost(params, url).then((res) => {
|
qcckPost(params, url).then((res) => {
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
<DictTag :tag="false" :value="row.czzt" :options="D_GS_XS_CZZT" />
|
<DictTag :tag="false" :value="row.czzt" :options="D_GS_XS_CZZT" />
|
||||||
</template>
|
</template>
|
||||||
<template #shzt="{row}">
|
<template #shzt="{row}">
|
||||||
|
<!-- 采纳(将这条信息推送到情报管理),退回! -->
|
||||||
<DictTag :tag="false" :value="row.shzt" :options="D_BZ_XSSHZT" @clickTag="clickTag(row.shzt)" />
|
<DictTag :tag="false" :value="row.shzt" :options="D_BZ_XSSHZT" @clickTag="clickTag(row.shzt)" />
|
||||||
</template>
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
@ -110,14 +111,12 @@ const isShow = ref(false)
|
|||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "线索名称", prop: 'xsMc', placeholder: "请输入线索名称", showType: "input" },
|
{ label: "线索名称", prop: 'xsMc', placeholder: "请输入线索名称", showType: "input" },
|
||||||
{ label: "内容关键字", prop: 'xsNr', placeholder: "请输入语义关键字", showType: "input" },
|
{ label: "内容关键字", prop: 'xsNr', placeholder: "请输入语义关键字", showType: "input" },
|
||||||
{ label: "线索类型", prop: 'xlLx', placeholder: "请选择线索类型", showType: "select" },
|
{ label: "线索类型", prop: 'xlLx', placeholder: "请选择线索类型", showType: "select",options:D_GS_XS_LX },
|
||||||
{ label: "线索来源", prop: 'qbLy', placeholder: "请选择线索来源", showType: "select" },
|
{ label: "线索来源", prop: 'qbLy', placeholder: "请选择线索来源", showType: "select",options:D_GS_XS_LY },
|
||||||
{ label: "线索状态", prop: 'xszt', placeholder: "请选择线索状态", showType: "select" },
|
|
||||||
{ label: "开始时间", prop: 'zxkssj', placeholder: "请选择开始时间", showType: "date" },
|
{ label: "开始时间", prop: 'zxkssj', placeholder: "请选择开始时间", showType: "date" },
|
||||||
{ label: "结束时间", prop: 'zxjssj', placeholder: "请选择结束时间", showType: "date" },
|
{ label: "结束时间", prop: 'zxjssj', placeholder: "请选择结束时间", showType: "date" },
|
||||||
{ label: "指向地点", prop: 'zxdz', placeholder: "请输入指向地点", showType: "input" },
|
{ label: "指向地点", prop: 'zxdz', placeholder: "请输入指向地点", showType: "input" },
|
||||||
]);
|
]);
|
||||||
const elForm = ref()
|
|
||||||
const chooseRow = ref({})
|
const chooseRow = ref({})
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
bhyy:false,
|
bhyy:false,
|
||||||
@ -171,7 +170,7 @@ const cancel = (row) =>{
|
|||||||
const handleSumbit = (row) =>{
|
const handleSumbit = (row) =>{
|
||||||
rules.bhyy = !chooseRow.value.bhyy ? true :false;
|
rules.bhyy = !chooseRow.value.bhyy ? true :false;
|
||||||
if(chooseRow.value.shzt == '01' && rules.bhyy) return false;
|
if(chooseRow.value.shzt == '01' && rules.bhyy) return false;
|
||||||
let data = { ...chooseRow.value ,cjLx:'01'}
|
let data = { ...chooseRow.value }
|
||||||
qcckPost(data,'/mosty-gsxt/qbcj/updateByXssh').then(res=>{
|
qcckPost(data,'/mosty-gsxt/qbcj/updateByXssh').then(res=>{
|
||||||
row.visible = false;
|
row.visible = false;
|
||||||
proxy.$message({ type: "success", message: "审核成功" });
|
proxy.$message({ type: "success", message: "审核成功" });
|
||||||
@ -199,7 +198,7 @@ const changeSize = (val) =>{
|
|||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = () =>{
|
const getList = () =>{
|
||||||
pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value,cjLx:'0' };
|
||||||
qcckGet(data,'/mosty-gsxt/qbcj/selectPage').then(res=>{
|
qcckGet(data,'/mosty-gsxt/qbcj/selectPage').then(res=>{
|
||||||
pageData.tableData = res.records || [];
|
pageData.tableData = res.records || [];
|
||||||
pageData.total = res.total;
|
pageData.total = res.total;
|
||||||
@ -226,7 +225,7 @@ const addEdit = (type, row) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const clickTag = (val) =>{
|
const clickTag = (val) =>{
|
||||||
if(val == '01') router.push('/IntelligenceManagement');
|
if(val == '02') router.push('/IntelligenceManagement');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
|
@ -8,12 +8,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
<FormMessage :formList="formData" ref="elform" :rules="rules"></FormMessage>
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
|
<template #glxsid>
|
||||||
|
<div class="box pointer ellipsis" @click="chooseVisible = true">
|
||||||
|
<span v-if="listQuery.glxs">{{ listQuery.glxs }}</span>
|
||||||
|
<span v-else style="color: #b8b8b8;">请选择关联线索</span>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
</div>
|
||||||
|
<!-- 选择线索 -->
|
||||||
|
<Xslist v-model="chooseVisible" @choosed="choosed" :roleIds="roleIds"></Xslist>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import Xslist from '@/components/MyComponents/ChooseXs/index.vue'
|
||||||
import FormMessage from '@/components/aboutTable/FormMessage.vue'
|
import FormMessage from '@/components/aboutTable/FormMessage.vue'
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
import * as rule from "@/utils/rules.js";
|
import * as rule from "@/utils/rules.js";
|
||||||
@ -22,57 +32,74 @@ const emit = defineEmits(["updateDate"]);
|
|||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dic: Object
|
dic: Object
|
||||||
});
|
});
|
||||||
|
const chooseVisible = ref(false)
|
||||||
|
const roleIds = ref([])
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const dialogForm = ref(false); //弹窗
|
const dialogForm = ref(false); //弹窗
|
||||||
const formData = ref([
|
const formData = ref([
|
||||||
{ label: "指令标题", prop: "title", type: "input", },
|
{ label: "指令标题", prop: "zlbt", type: "input", },
|
||||||
{ label: "是否生成指令号", prop: "generateNumber", type: "select", options: [] },
|
{ label: "指令类型", prop: "zllx", type: "select", options: props.dic.D_GS_XS_ZLLX },
|
||||||
{ label: "指令类型", prop: "type", type: "select", options: [] },
|
{ label: "指令等级", prop: "zldj", type: "select", options: props.dic.D_GS_ZDQT_FXDJ },
|
||||||
{ label: "指令等级", prop: "dj", type: "select", options: [] },
|
{ label: "反馈结束时间", prop: "jssj", type: "datetime" },
|
||||||
{ label: "指令发起人", prop: "fqr", type: "input" },
|
{ label: "联系人", prop: "zllxr", type: "input" },
|
||||||
{ label: "发起部门", prop: "dep", type: "input" },
|
{ label: "联系电话", prop: "zllxdh", type: "input" },
|
||||||
{ label: "联系人", prop: "contact", type: "input" },
|
{ label: "关联线索", prop: "glxsid", type: "slot" },
|
||||||
{ label: "联系电话", prop: "phone", type: "input" },
|
{ label: "主送单位", prop: "zsdw", type: "department" },
|
||||||
{ label: "关联线索", prop: "relatedClues", type: "input" },
|
{ label: "抄送单位", prop: "csdw", type: "department" },
|
||||||
{ label: "主送单位", prop: "mainUnit", type: "input" },
|
{ label: "指令内容", prop: "zlnr", type: "textarea",width: '100%' },
|
||||||
{ label: "抄送单位", prop: "ccUnit", type: "input" },
|
{ label: "附件", prop: "fjzd", type: "upload",width: '100%' },
|
||||||
{ label: "指令内容", prop: "nr", type: "textarea",width: '100%' },
|
|
||||||
{ label: "附件", prop: "tpdz", type: "upload",width: '100%' },
|
|
||||||
]);
|
]);
|
||||||
const listQuery = ref({
|
const listQuery = ref({}); //表单
|
||||||
sfbqdj: []
|
|
||||||
}); //表单
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const elform = ref();
|
const elform = ref();
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
bqmc: [{ required: true, message: "请输入标签名称", trigger: "blur" }]
|
zlbt: [{ required: true, message: "请输入指令标题", trigger: "blur" }],
|
||||||
|
zllx: [{ required: true, message: "请选择指令类型", trigger: "change" }],
|
||||||
|
zldj: [{ required: true, message: "请选择指令等级", trigger: "change" }],
|
||||||
|
jssj: [{ required: true, message: "请选择反馈结束时间", trigger: "change" }],
|
||||||
|
zllxr: [{ required: true, message: "请输入联系人", trigger: "blur" }],
|
||||||
|
zllxdh: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
|
||||||
|
zsdw: [{ required: true, message: "请选择主送单位", trigger: "change" }],
|
||||||
|
csdw: [{ required: true, message: "请选择抄送单位", trigger: "change" }],
|
||||||
|
zlnr: [{ required: true, message: "请输入指令内容", trigger: "blur" }],
|
||||||
|
glxsid: [{ required: true, message: "请选择关联线索", trigger: "change" }],
|
||||||
});
|
});
|
||||||
const editpeo = ref();
|
|
||||||
onMounted(() => {});
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
const init = (type, row,) => {
|
const init = (type, row,) => {
|
||||||
|
listQuery.value.fjzd = null
|
||||||
dialogForm.value = true;
|
dialogForm.value = true;
|
||||||
title.value = type == 'add' ? "新增" : "编辑";
|
title.value = type == 'add' ? "新增" : "编辑";
|
||||||
if (row) getDataById(row.id);
|
if (row) getDataById(row.id);
|
||||||
};
|
};
|
||||||
// 根据id查询详情
|
// 根据id查询详情
|
||||||
const getDataById = (id) => {
|
const getDataById = (id) => {
|
||||||
// qcckGet({}, '/mosty-gsxt/tbGsxtBqgl/'+id).then((res) => {
|
qcckGet({id}, '/mosty-gsxt/zlxx/selectByid').then((res) => {
|
||||||
// listQuery.value = res;
|
res.fjzd = res.fjzd ? res.fjzd.split(','):[];
|
||||||
// });
|
listQuery.value = res;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 选择标签
|
||||||
|
const choosed = (val) => {
|
||||||
|
listQuery.value.glxs = val[0].xsMc;
|
||||||
|
listQuery.value.glxsid = val[0].id;
|
||||||
|
roleIds.value = val.map(v=>v.id)
|
||||||
|
}
|
||||||
|
|
||||||
// 提交
|
// 提交
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
elform.value.submit((data)=>{
|
elform.value.submit((data)=>{
|
||||||
// let url = title.value == "新增" ? '/mosty-gsxt/tbGsxtBqgl/save':'/mosty-gsxt/tbGsxtBqgl/update';
|
let url = title.value == "新增" ? '/mosty-gsxt/zlxx/add':'/mosty-gsxt/zlxx/update';
|
||||||
// let params = { ...data }
|
let params = { ...data }
|
||||||
// qcckPost(params, url).then((res) => {
|
loading.value = true;
|
||||||
// proxy.$message({ type: "success", message: title.value + "成功" });
|
params.fjzd = params.fjzd ? params.fjzd.join(','):''
|
||||||
// emit("updateDate");
|
qcckPost(params, url).then((res) => {
|
||||||
// close();
|
loading.value = false;
|
||||||
// }).catch(() => {});
|
proxy.$message({ type: "success", message: title.value + "成功" });
|
||||||
|
emit("updateDate");
|
||||||
|
close();
|
||||||
|
}).catch(() => {loading.value = false;});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -88,4 +115,11 @@ defineExpose({ init });
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "~@/assets/css/layout.scss";
|
@import "~@/assets/css/layout.scss";
|
||||||
@import "~@/assets/css/element-plus.scss";
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
.box{
|
||||||
|
width: 100%;
|
||||||
|
height: 32px;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -6,14 +6,6 @@
|
|||||||
<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="addEdit('add', '')">
|
|
||||||
<el-icon style="vertical-align: middle"><Dete /></el-icon>
|
|
||||||
<span style="vertical-align: middle">批量删除</span>
|
|
||||||
</el-button>
|
|
||||||
<el-button >
|
|
||||||
<el-icon style="vertical-align: middle"><Setting /></el-icon>
|
|
||||||
<span style="vertical-align: middle">批量处置</span>
|
|
||||||
</el-button>
|
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
</div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
@ -29,20 +21,17 @@
|
|||||||
:key="pageData.keyCount"
|
:key="pageData.keyCount"
|
||||||
:tableConfiger="pageData.tableConfiger"
|
:tableConfiger="pageData.tableConfiger"
|
||||||
:controlsWidth="pageData.controlsWidth"
|
:controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseData">
|
>
|
||||||
<!-- 事故照片 -->
|
|
||||||
<template #accidentPhoto="{ row }">
|
<template #zldj="{row}">
|
||||||
<el-image
|
<DictTag :tag="false" :value="row.zldj" :options="D_GS_ZDQT_FXDJ" />
|
||||||
style="width: 50px; height: 50px"
|
</template>
|
||||||
:src="row.accidentPhoto"
|
<template #czzt="{row}">
|
||||||
:preview-src-list="[row.accidentPhoto]">
|
<DictTag :tag="false" :value="row.czzt" :options="D_GS_XS_CZZT" />
|
||||||
</el-image>
|
|
||||||
</template>
|
</template>
|
||||||
<!-- 操作 -->
|
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link size="small" type="primary" @click="addEdit('detail', row)">查看</el-link>
|
|
||||||
<el-link size="small" type="primary" @click="addEdit('edit', row)">编辑</el-link>
|
<el-link size="small" type="primary" @click="addEdit('edit', row)">编辑</el-link>
|
||||||
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
|
<el-link size="small" type="danger" @click="deleteRow(row.id)">删除</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages
|
<Pages
|
||||||
@ -56,7 +45,7 @@
|
|||||||
></Pages>
|
></Pages>
|
||||||
</div>
|
</div>
|
||||||
<!-- 详情 -->
|
<!-- 详情 -->
|
||||||
<DetailForm ref="detailDiloag" />
|
<DetailForm ref="detailDiloag" @updateDate="getList" :dic="{D_GS_XS_ZLLX,D_GS_ZDQT_FXDJ}" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -71,28 +60,22 @@ import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
|||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const detailDiloag = ref();
|
const detailDiloag = ref();
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
|
const {D_GS_XS_SJLY,D_GS_XS_ZLLX,D_GS_ZDQT_FXDJ,D_GS_XS_CZZT} = proxy.$dict('D_GS_XS_SJLY','D_GS_XS_ZLLX','D_GS_ZDQT_FXDJ','D_GS_XS_CZZT')
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "指令标题", prop: 'instructionTitle', placeholder: "请输入指令标题", showType: "input" },
|
{ label: "指令标题", prop: 'zlbt', placeholder: "请输入指令标题", showType: "input" },
|
||||||
{ label: "督办对象", prop: 'supervisoryObject', placeholder: "请输入督办对象", showType: "input" },
|
{ label: "指令类型", prop: 'zllx', placeholder: "请选择指令类型", showType: "select",options:D_GS_XS_ZLLX },
|
||||||
{ label: "指令类型", prop: 'instructionType', placeholder: "请选择指令类型", showType: "input" },
|
{ label: "指令等级", prop: 'zldj', placeholder: "请选择指令等级", showType: "select" ,options:D_GS_ZDQT_FXDJ},
|
||||||
{ label: "指令等级", prop: 'instructionLevel', placeholder: "请选择指令等级", showType: "input" },
|
{ label: "处置状态", prop: 'czzt', placeholder: "请选择处置状态", showType: "select" ,options:D_GS_XS_CZZT},
|
||||||
{ label: "指令来源", prop: 'instructionSource', placeholder: "请输入指令来源", showType: "input" },
|
{ label: "反馈截止时间", prop: 'jssj', placeholder: "请选择反馈截止时间", showType: "datetime" },
|
||||||
{ label: "处置状态", prop: 'processingStatus', placeholder: "请选择处置状态", showType: "input" },
|
|
||||||
{ label: "数据来源", prop: 'dataSource', placeholder: "请输入数据来源", showType: "input" },
|
|
||||||
{ label: "反馈截止时间", prop: 'feedbackDeadline', placeholder: "请选择反馈截止时间", showType: "input" },
|
|
||||||
{ label: "指令流向", prop: 'instructionFlow', placeholder: "请输入指令流向", showType: "input" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const queryFrom = ref({});
|
const queryFrom = ref({});
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
tableData: [],
|
||||||
{id: 1, instructionFlow: '本级发起', instructionTitle: '关于XX的指令', urgencyLevel: '紧急', informationSource: '信息来源', workingStatus: '工作中', supervisoryObject: '督办对象', instructionLevel: '一级', feedbackPosition: '反馈位置', feedbackDeadline: '2024-01-20', receivedNumber: 5, unreceivedNumber: 2, processingStatus: '已处理', status: '已完成'},
|
|
||||||
],
|
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
showSelectType: "checkBox",
|
showSelectType: "null",
|
||||||
loading: false
|
loading: false
|
||||||
},
|
},
|
||||||
total: 0,
|
total: 0,
|
||||||
@ -102,19 +85,10 @@ const pageData = reactive({
|
|||||||
},
|
},
|
||||||
controlsWidth: 180,
|
controlsWidth: 180,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: '指令流向', prop: 'instructionFlow' },
|
{ label: '指令标题', prop: 'zlbt' },
|
||||||
{ label: '指令标题', prop: 'instructionTitle' },
|
{ label: '指令等级', prop: 'zldj',showSolt:true },
|
||||||
{ label: '紧急程度', prop: 'urgencyLevel', width: 100 },
|
{ label: '反馈截止时间', prop: 'jssj' },
|
||||||
{ label: '信息来源', prop: 'informationSource' },
|
{ label: '处置状态', prop: 'czzt',showSolt:true },
|
||||||
{ label: '工作状态', prop: 'workingStatus', width: 100 },
|
|
||||||
{ label: '督办对象', prop: 'supervisoryObject' },
|
|
||||||
{ label: '指令等级', prop: 'instructionLevel', width: 100 },
|
|
||||||
{ label: '反馈位置', prop: 'feedbackPosition' },
|
|
||||||
{ label: '反馈截止时间', prop: 'feedbackDeadline', width: 120 },
|
|
||||||
{ label: '发送人数', prop: 'receivedNumber', width: 100 },
|
|
||||||
{ label: '未接收人数', prop: 'unreceivedNumber', width: 100 },
|
|
||||||
{ label: '处置状态', prop: 'processingStatus', width: 100 },
|
|
||||||
{ label: '状态', prop: 'status', width: 100 },
|
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -123,12 +97,6 @@ onMounted(() => {
|
|||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
});
|
});
|
||||||
|
|
||||||
//选择类型
|
|
||||||
const handleType = (val) => {
|
|
||||||
pageData.keyCount++;
|
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
|
||||||
getList()
|
|
||||||
}
|
|
||||||
// 搜索
|
// 搜索
|
||||||
const onSearch = (val) =>{
|
const onSearch = (val) =>{
|
||||||
queryFrom.value = {...val}
|
queryFrom.value = {...val}
|
||||||
@ -147,14 +115,24 @@ const changeSize = (val) =>{
|
|||||||
|
|
||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = (val) =>{
|
const getList = (val) =>{
|
||||||
// pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
// let url = '/mosty-lzcj/tbDwMbkf/queryList';
|
qcckGet(data,'/mosty-gsxt/zlxx/selectPage').then(res=>{
|
||||||
// qcckPost(data,url).then(res=>{
|
pageData.tableData = res.records || [];
|
||||||
// pageData.tableData = res.records || [];
|
pageData.total = res.total;
|
||||||
// pageData.total = res.total;
|
pageData.tableConfiger.loading = false;
|
||||||
// pageData.tableConfiger.loading = false;
|
}).catch(()=>{ pageData.tableConfiger.loading = false; })
|
||||||
// }).catch(()=>{ pageData.tableConfiger.loading = false; })
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const deleteRow = (id) =>{
|
||||||
|
proxy.$confirm("确定要删除", "警告", {type: "warning"}).then(() => {
|
||||||
|
qcckPost({id},'/mosty-gsxt/zlxx/delete').then(()=>{
|
||||||
|
proxy.$message({ type: "success", message: "删除成功" });
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
}).catch(() => {});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 详情
|
// 详情
|
||||||
|
@ -3,22 +3,15 @@
|
|||||||
<!-- 左侧树形菜单 -->
|
<!-- 左侧树形菜单 -->
|
||||||
<div class="left-menu">
|
<div class="left-menu">
|
||||||
<!-- 这个部分用的是组件-后期替换 -->
|
<!-- 这个部分用的是组件-后期替换 -->
|
||||||
<el-tree
|
<MOSTY.DepartmentTree width="310px" @change="init" placeholder="管理部门" clearable filterable :isBmId="true" v-model="listQuery.ssbmdm" />
|
||||||
:data="treeData"
|
|
||||||
:props="defaultProps"
|
|
||||||
@node-click="handleNodeClick"
|
|
||||||
default-expand-all
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 右侧内容区 -->
|
<!-- 右侧内容区 -->
|
||||||
<div class="right-content">
|
<div class="right-content">
|
||||||
<!-- 顶部筛选 -->
|
<!-- 顶部筛选 -->
|
||||||
<div class="filter-section">
|
<div class="filter-section">
|
||||||
<el-radio-group v-model="radio">
|
<el-radio-group v-model="radio" @change="changeRadio">
|
||||||
<el-radio :label="it.value" v-for="it in timeList" :key="it.value">{{
|
<el-radio v-for="(it,idx) in timeList" :key="idx" :label="it.num" >{{ it.label }}</el-radio>
|
||||||
it.label
|
|
||||||
}}</el-radio>
|
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dateRange"
|
v-model="dateRange"
|
||||||
@ -30,8 +23,8 @@
|
|||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
@change="handleDateChange"
|
@change="handleDateChange"
|
||||||
/>
|
/>
|
||||||
<el-button type="primary" @click="handleExport">查询</el-button>
|
<el-button type="primary" @click="init">查询</el-button>
|
||||||
<el-button type="primary" @click="handleExport">重置</el-button>
|
<el-button type="primary" @click="handleRest">重置</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 统计图表区域 -->
|
<!-- 统计图表区域 -->
|
||||||
@ -42,42 +35,28 @@
|
|||||||
<el-button type="primary">导出统计表</el-button>
|
<el-button type="primary">导出统计表</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart">
|
<div class="chart">
|
||||||
<PieEcharts
|
<PieEcharts echartsId="pieChart" color="#333" :data="obj.cjList" />
|
||||||
echartsId="pieChart"
|
|
||||||
color="#333"
|
|
||||||
:data="obj.cjList"
|
|
||||||
></PieEcharts>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart-item">
|
<div class="chart-item">
|
||||||
<div class="chart-title">
|
<div class="chart-title">
|
||||||
<span>指令统计</span>
|
<span>线索来源统计</span>
|
||||||
<el-button type="primary">导出统计表</el-button>
|
<el-button type="primary">导出统计表</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart">
|
<div class="chart">
|
||||||
<DbarEcharts
|
<DbarEcharts echartsId="bar3DChart" :data="obj.xslyList" />
|
||||||
echartsId="bar3DChart"
|
|
||||||
:data="obj.zlList"
|
|
||||||
></DbarEcharts>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="chart-item">
|
<div class="chart-item">
|
||||||
<div class="chart-title">
|
<div class="chart-title">
|
||||||
<span>线索类型统计</span>
|
<span>线索专题统计</span>
|
||||||
<el-button type="primary">导出统计表</el-button>
|
<el-button type="primary">导出统计表</el-button>
|
||||||
</div>
|
</div>
|
||||||
<ul class="chart mt8">
|
<ul class="chart mt8">
|
||||||
<li v-for="(it, idx) in obj.jjList" :key="idx" class="mb6">
|
<li v-for="(it, idx) in obj.xxztList" :key="idx" class="mb6">
|
||||||
<div style="color: #333">{{ it.label }}</div>
|
<div style="color: #333">{{ it.label }}</div>
|
||||||
<el-progress
|
<el-progress :text-inside="true" :stroke-width="20" :percentage="50" status="exception">
|
||||||
:text-inside="true"
|
<span><span style="color: #e37233">{{ it.value }}</span> 个</span>
|
||||||
:stroke-width="20"
|
|
||||||
:percentage="50"
|
|
||||||
status="exception"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
><span style="color: #e37233">{{ it.value }}</span> 个</span
|
|
||||||
>
|
|
||||||
</el-progress>
|
</el-progress>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -87,11 +66,7 @@
|
|||||||
<span>线索类型统计</span>
|
<span>线索类型统计</span>
|
||||||
<el-button type="primary">导出统计表</el-button>
|
<el-button type="primary">导出统计表</el-button>
|
||||||
</div>
|
</div>
|
||||||
<lineEcharts
|
<lineEcharts color="#333" echartsId="areaChart" :data="obj.xxlxList" />
|
||||||
color="#333"
|
|
||||||
echartsId="areaChart"
|
|
||||||
:data="obj.bkgzList"
|
|
||||||
></lineEcharts>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -99,92 +74,109 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { timeValidate, timeSlotChange } from "@/utils/tools.js";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
import lineEcharts from "@/views/home/echarts/lineEcharts.vue";
|
import lineEcharts from "@/views/home/echarts/lineEcharts.vue";
|
||||||
import PieEcharts from "@/views/home/echarts/pieEcharts.vue";
|
import PieEcharts from "@/views/home/echarts/pieEcharts.vue";
|
||||||
import DbarEcharts from "@/views/home/echarts/3DbarEcharts.vue";
|
import DbarEcharts from "@/views/home/echarts/3DbarEcharts.vue";
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
import { reactive, ref, onMounted } from "vue";
|
||||||
import * as echarts from "echarts";
|
|
||||||
const radio = ref("日");
|
const dateRange = ref([timeValidate(),timeValidate()]);// 日期范围
|
||||||
|
const radio = ref(0); //当天
|
||||||
const timeList = ref([
|
const timeList = ref([
|
||||||
{ label: "日", value: "0" },
|
{ label: "日", num: 0 },
|
||||||
{ label: "月", value: "1" },
|
{ label: "月", num: 1 },
|
||||||
{ label: "季", value: "2" },
|
{ label: "季", num: 2 },
|
||||||
{ label: "年", value: "3" }
|
{ label: "年", num: 3 }
|
||||||
]);
|
]);
|
||||||
|
const listQuery = ref({})
|
||||||
const obj = reactive({
|
const obj = reactive({
|
||||||
listQuery: {},
|
cjList: [],// 线索采集统计
|
||||||
cjList: [
|
xxztList: [],// 线索专题统计
|
||||||
{ label: "采纳数", value: 18 },
|
xxlxList: [],//线索类型统计
|
||||||
{ label: "编刊数", value: 20 },
|
xslyList: {
|
||||||
{ label: "退回数", value: 50 },
|
list: [],//线索来源统计
|
||||||
{ label: "合并数", value: 40 },
|
|
||||||
{ label: "其他", value: 30 }
|
|
||||||
],
|
|
||||||
// 布控工作统计
|
|
||||||
bkgzList: [
|
|
||||||
{ label: "发起总数", value: 10 },
|
|
||||||
{ label: "审核总数", value: 20 },
|
|
||||||
{ label: "审批总数", value: 50 },
|
|
||||||
{ label: "处置总数", value: 40 },
|
|
||||||
{ label: "其他", value: 30 }
|
|
||||||
],
|
|
||||||
jjList: [
|
|
||||||
{ label: "涉稳", value: 10 },
|
|
||||||
{ label: "涉毒", value: 20 },
|
|
||||||
{ label: "行政", value: 50 },
|
|
||||||
{ label: "群体", value: 40 },
|
|
||||||
{ label: "灾害", value: 40 }
|
|
||||||
],
|
|
||||||
zlList: {
|
|
||||||
list: [
|
|
||||||
{ label: "下发数", val: 50 },
|
|
||||||
{ label: "未签收", val: 40 },
|
|
||||||
{ label: "已签收", val: 10 },
|
|
||||||
{ label: "超时签收", val: 30 },
|
|
||||||
{ label: "未反馈", val: 40 },
|
|
||||||
{ label: "已反馈", val: 40 }
|
|
||||||
],
|
|
||||||
topColor:'#1bd6c2',
|
topColor:'#1bd6c2',
|
||||||
colors: ["#28EEBF","#0DBAC5"],
|
colors: ["#28EEBF","#0DBAC5"],
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 树形菜单数据
|
onMounted(() => {
|
||||||
const treeData = ref([
|
init() //初始化数据
|
||||||
{
|
});
|
||||||
label: "林芝市公安局(200)",
|
|
||||||
children: [
|
|
||||||
{ label: "工布江达县公安局(100)" },
|
const init = () =>{
|
||||||
{ label: "工布江达城区派出所(10)" },
|
let data = {
|
||||||
{ label: "某某某派出所(10)" },
|
ssbmdm:listQuery.value.ssbmdm,
|
||||||
{ label: "某某某公安局(100)" }
|
kssj:dateRange.value[0]+' 00:00:00',
|
||||||
]
|
jssj:dateRange.value[1]+' 23:59:59',
|
||||||
|
cjLx:0 // 0 民警后台录入
|
||||||
}
|
}
|
||||||
]);
|
// 线索采集统计
|
||||||
|
qcckPost(data,'/mosty-gsxt/qbcj/getXscjTjByShzt').then(res=>{
|
||||||
|
let arr = res || [];
|
||||||
|
obj.cjList = arr.map(v=>{
|
||||||
|
return { label:v.zdmc,value:v.count }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// 线索类型统计
|
||||||
|
qcckPost(data,'/mosty-gsxt/qbcj/getXscjTjByXslx').then(res=>{
|
||||||
|
let arr = res || [];
|
||||||
|
obj.xxlxList = arr.map(v=>{
|
||||||
|
return { label:v.zdmc,value:v.count }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// 线索专题统计
|
||||||
|
qcckPost(data,'/mosty-gsxt/qbcj/getXscjTjBySszt').then(res=>{
|
||||||
|
let arr = res || [];
|
||||||
|
obj.xxztList = arr.map(v=>{
|
||||||
|
return { label:v.zdmc,value:v.count }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// 线索来源统计
|
||||||
|
qcckPost(data,'/mosty-gsxt/qbcj/getXscjTjByQbly').then(res=>{
|
||||||
|
let arr = res || [];
|
||||||
|
obj.xslyList.list = arr.map(v=>{
|
||||||
|
return { label:v.zdmc,value:v.count }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const defaultProps = {
|
const changeRadio = (val) =>{
|
||||||
children: "children",
|
switch(val){
|
||||||
label: "label"
|
case 0: //日
|
||||||
|
dateRange.value = [timeValidate(),timeValidate()]
|
||||||
|
break;
|
||||||
|
case 1: //月
|
||||||
|
dateRange.value = timeSlotChange('本月')
|
||||||
|
break;
|
||||||
|
case 2: //季度
|
||||||
|
dateRange.value = timeSlotChange('本季度')
|
||||||
|
break;
|
||||||
|
case 3: //年
|
||||||
|
dateRange.value = timeSlotChange('本年')
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleDateChange = (val) => {
|
||||||
|
radio.value = '';
|
||||||
|
if(val[0] == timeSlotChange('天')[0] && val[1] == timeSlotChange('天')[1]) radio.value = 0;
|
||||||
|
if(val[0] == timeSlotChange('本月')[0] && val[1] == timeSlotChange('本月')[1]) radio.value = 1;
|
||||||
|
if(val[0] == timeSlotChange('本季度')[0] && val[1] == timeSlotChange('本季度')[1]) radio.value = 2;
|
||||||
|
if(val[0] == timeSlotChange('本年')[0] && val[1] == timeSlotChange('本年')[1]) radio.value = 3;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 日期范围
|
// 重置
|
||||||
const dateRange = ref([]);
|
const handleRest = () => {
|
||||||
|
radio.value = 0;
|
||||||
// 事件处理函数
|
dateRange.value = [timeValidate(),timeValidate()];
|
||||||
const handleNodeClick = (data) => {
|
init();
|
||||||
console.log(data);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDateChange = () => {
|
|
||||||
// 处理日期变化
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleExport = () => {
|
|
||||||
// 处理导出
|
|
||||||
};
|
|
||||||
|
|
||||||
onMounted(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -193,7 +185,7 @@ onMounted(() => {});
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.left-menu {
|
.left-menu {
|
||||||
width: 280px;
|
width: 350px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
@ -3,13 +3,11 @@
|
|||||||
<div class="head_box">
|
<div class="head_box">
|
||||||
<span class="title">人力情报信息采集流转详情</span>
|
<span class="title">人力情报信息采集流转详情</span>
|
||||||
<div>
|
<div>
|
||||||
<el-button @click="close">保存</el-button>
|
|
||||||
<el-button @click="close">暂存</el-button>
|
|
||||||
<el-button @click="close">关闭</el-button>
|
<el-button @click="close">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
<FormMessage disabled v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
<template #gapdive>
|
<template #gapdive>
|
||||||
<div style="width: 100%;height: 10px;" class="mb20">
|
<div style="width: 100%;height: 10px;" class="mb20">
|
||||||
<el-divider content-position="left">基础信息</el-divider>
|
<el-divider content-position="left">基础信息</el-divider>
|
||||||
@ -21,10 +19,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #scfj>
|
<template #scfj>
|
||||||
<div style="width: 100%;">上传附件: <el-button size="small" type="primary">上传附件</el-button> <span class="f12">(可附电子表格、Word文档、图像、音视频文件)</span></div>
|
<div style="width: 100%;padding-left: 50px;">
|
||||||
|
<div>上传附件:<span class="f12">(可附电子表格、Word文档、图像、音视频文件)</span> </div>
|
||||||
|
<div><MOSTY.Upload :showBtn="true" disabled :limit="10" v-model="fjdz" /> </div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</FormMessage>
|
</FormMessage>
|
||||||
<el-divider content-position="left"><span class="mr20">相关人员</span> <el-button type="primary" size="small" @click="showPeo = true,peoTitle = '新增人员'">添加人员</el-button></el-divider>
|
<el-divider content-position="left"><span class="mr20">相关人员</span> </el-divider>
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageForm.tableData"
|
:tableData="pageForm.tableData"
|
||||||
:tableColumn="pageForm.tableColumn"
|
:tableColumn="pageForm.tableColumn"
|
||||||
@ -32,52 +33,62 @@
|
|||||||
:key="pageForm.keyCount"
|
:key="pageForm.keyCount"
|
||||||
:tableConfiger="pageForm.tableConfiger"
|
:tableConfiger="pageForm.tableConfiger"
|
||||||
:controlsWidth="pageForm.controlsWidth"
|
:controlsWidth="pageForm.controlsWidth"
|
||||||
@chooseData="chooseData"
|
|
||||||
>
|
>
|
||||||
|
<template #xb="{row}">
|
||||||
|
<DictTag :value="row.xb" :tag="false" :options="props.dic.D_BZ_XB" />
|
||||||
|
</template>
|
||||||
|
<template #bqList="{row}">
|
||||||
|
<div v-if="row.bqList">
|
||||||
|
<el-tag type="success" v-for="(it,idx) in row.bqList" :key="idx">{{ it.bqMc }}</el-tag >
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row,index }">
|
||||||
<el-link size="small" type="primary" @click="addEdit('detail', row)">详情</el-link >
|
<el-link size="small" type="success" @click="addEdit('detail', row,index)">详情</el-link>
|
||||||
<el-link size="small" type="success" @click="addEdit('edit', row)">编辑</el-link>
|
|
||||||
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 人员 -->
|
<!-- 人员 -->
|
||||||
<AddPeo v-model="showPeo" :dic="props.dic" :title="peoTitle"></AddPeo>
|
<AddPeo ref="showAdd" :dic="props.dic" ></AddPeo>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
import AddPeo from './addPeo.vue'
|
import AddPeo from './addPeo.vue'
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
||||||
const emit = defineEmits(["updateDate"]);
|
const emit = defineEmits(["change"]);
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dic: Object
|
dic: Object
|
||||||
});
|
});
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const dialogForm = ref(false); //弹窗
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const rules = reactive({
|
||||||
|
xsMc: [{ required: true, message: "请输入线索名称", trigger: "blur" }],
|
||||||
|
xlLx: [{ required: true, message: "请选择线索类型", trigger: "change" }],
|
||||||
|
qbLy: [{ required: true, message: "请选择情报来源", trigger: "change" }],
|
||||||
|
});
|
||||||
const formData = ref([
|
const formData = ref([
|
||||||
{ label: "", prop: "gapdive", type: "slot",width:'100%' },
|
{ prop: "gapdive", type: "slot",width:'100%' },
|
||||||
{ label: "线索编号", prop: "xsbh", type: "input",},
|
{ label: "线索名称", prop: "xsMc", type: "input" },
|
||||||
{ label: "线索名称", prop: "xsmc", type: "input" },
|
{ label: "线索类型", prop: "xlLx", type: "select", options:props.dic.D_GS_XS_LX },
|
||||||
{ label: "线索类型", prop: "xslx", type: "select", options:props.dic.D_GS_XS_LX },
|
{ label: "情报来源", prop: "qbLy", type: "select", options:props.dic.D_GS_XS_LY},
|
||||||
{ label: "情报来源", prop: "qbly", type: "select", options:props.dic.D_GS_XS_LY},
|
|
||||||
{ label: "指向开始时间", prop: "zxkssj", type: "datetime"},
|
{ label: "指向开始时间", prop: "zxkssj", type: "datetime"},
|
||||||
{ label: "指向结束时间", prop: "zxjssj", type: "datetime"},
|
{ label: "指向结束时间", prop: "zxjssj", type: "datetime"},
|
||||||
{ label: "指向地点", prop: "zxdz", type: "input"},
|
{ label: "指向地点", prop: "zxdz", type: "input"},
|
||||||
{ label: "所属专题", prop: "sszt", type: "select",options:props.dic.D_BZ_SSZT},
|
{ label: "所属专题", prop: "sszt", type: "select",options:props.dic.D_BZ_SSZT},
|
||||||
{ prop: "gapline", type: "slot",width:'100%' },
|
{ prop: "gapline", type: "slot",width:'100%' },
|
||||||
{ prop: "scfj", type: "slot",width:'100%'},
|
{ prop: "scfj", type: "slot",width:'100%'},
|
||||||
{ label: "线索内容", prop: "xsnr", type: "textarea",width:'100%'},
|
{ label: "线索内容", prop: "xsNr", type: "textarea",width:'100%'},
|
||||||
{ label: "群体类型", prop: "qtlx", type: "select",options:props.dic.D_GS_XS_QTLX },
|
{ label: "群体类型", prop: "qtlx", type: "select",options:props.dic.D_GS_XS_QTLX },
|
||||||
{ label: "群体名称", prop: "qtmc", type: "input"},
|
{ label: "群体名称", prop: "qtmc", type: "input"},
|
||||||
{ label: "涉及人数", prop: "sjrs", type: "inputNumber"},
|
{ label: "涉及人数", prop: "sjrs", type: "inputNumber"},
|
||||||
{ label: "线索报送单位", prop: "fjWb", type: "department"},
|
{ label: "线索报送单位", prop: "ssbmdm", type: "department"},
|
||||||
]);
|
]);
|
||||||
|
const fjdz = ref()
|
||||||
const listQuery = ref({}); //表单
|
const listQuery = ref({}); //表单
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const elform = ref();
|
const elform = ref();
|
||||||
@ -93,55 +104,50 @@ const pageForm = reactive({
|
|||||||
controlsWidth: 220,
|
controlsWidth: 220,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "姓名", prop: "xm" },
|
{ label: "姓名", prop: "xm" },
|
||||||
{ label: "性别", prop: "xb" },
|
{ label: "性别", prop: "xb",showSolt:true },
|
||||||
{ label: "身份证号", prop: "sfzh" },
|
{ label: "身份证号", prop: "sfzh" },
|
||||||
{ label: "户籍地", prop: "hjd" },
|
{ label: "户籍地", prop: "hjdz" },
|
||||||
{ label: "户籍地派出所", prop: "hjdpcs" },
|
{ label: "户籍地派出所", prop: "hjdpcs" },
|
||||||
{ label: "标签", prop: "bq" }
|
{ label: "标签", prop: "bqList",showSolt:true }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
const showPeo = ref(false)
|
const showAdd = ref()
|
||||||
const peoTitle = ref('')
|
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
tabHeightFn()
|
tabHeightFn()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
const init = (type, row) => {
|
const init = (type, row) => {
|
||||||
|
fjdz.value = []
|
||||||
tabHeightFn()
|
tabHeightFn()
|
||||||
dialogForm.value = true;
|
dialogForm.value = true;
|
||||||
title.value = type == "add" ? "新增" : type == "info" ? "详情" : "编辑";
|
title.value = type == "add" ? "新增" : type == "info" ? "详情" : "编辑";
|
||||||
// 初始化表单数据,并根据详情页设置禁用状态
|
// 初始化表单数据,并根据详情页设置禁用状态
|
||||||
// if (row) getDataById(row.id);
|
if (row) getDataById(row.id);
|
||||||
};
|
};
|
||||||
// 根据id查询详情
|
// 根据id查询详情
|
||||||
const getDataById = (id) => {
|
const getDataById = (id) => {
|
||||||
// qcckGet({}, "/mosty-gsxt/tbGsxtRqfjNr/" + id).then((res) => {
|
qcckGet({id}, "/mosty-gsxt/qbcj/selectByid").then((res) => {
|
||||||
// listQuery.value = res;
|
listQuery.value = res;
|
||||||
// });
|
pageForm.tableData = res.ryList || [];
|
||||||
};
|
|
||||||
|
|
||||||
// 提交
|
|
||||||
const submit = () => {
|
|
||||||
elform.value.submit((data) => {
|
|
||||||
let url = title.value == "新增" ? "/mosty-gsxt/tbGsxtRqfjNr/save" : "/mosty-gsxt/tbGsxtRqfjNr/update";
|
|
||||||
let params = { ...data };
|
|
||||||
// qcckPost(params, url).then((res) => {
|
|
||||||
// proxy.$message({ type: "success", message: title.value + "成功" });
|
|
||||||
// emit("onSearch");
|
|
||||||
// close();
|
|
||||||
// })
|
|
||||||
// .catch(() => {});
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 打开弹窗
|
||||||
|
const addEdit = (type,row,index) =>{
|
||||||
|
showAdd.value.init(type,row,index)
|
||||||
|
}
|
||||||
|
|
||||||
// 关闭
|
// 关闭
|
||||||
const close = () => {
|
const close = () => {
|
||||||
|
fjdz.value = []
|
||||||
listQuery.value = {};
|
listQuery.value = {};
|
||||||
dialogForm.value = false;
|
dialogForm.value = false;
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageForm.tableHeight = window.innerHeight - 720;
|
pageForm.tableHeight = window.innerHeight - 720;
|
||||||
@ -166,4 +172,18 @@ defineExpose({ init });
|
|||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
overflow: hidden;
|
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;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,10 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="modelValue" :title="props.title" @close="close" :close-on-click-modal="false">
|
<el-dialog v-model="showDialog" :destroy-on-close="true" title="人员详情" @close="close" :close-on-click-modal="false">
|
||||||
<FormMessage v-model="listQuery" :formList="formData" labelWidth="120px" ref="elform" :rules="rules"></FormMessage>
|
<FormMessage v-model="listQuery" :formList="formData" labelWidth="120px" ref="elform" :rules="rules">
|
||||||
|
<template #bqList>
|
||||||
|
<div class="marks pointer" >
|
||||||
|
<span style="color: rgb(175 178 184);padding-left: 10px;" v-if="!listQuery.bqList || listQuery.bqList.length == 0 ">请选择标签</span>
|
||||||
|
<span v-else >
|
||||||
|
<el-tag type="success" v-for="(it,idx) in listQuery.bqList" :key="idx">{{ it.bqMc }}</el-tag >
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="flex just-center">
|
<div class="flex just-center">
|
||||||
<el-button @click="close">取消</el-button>
|
<el-button @click="close">取消</el-button>
|
||||||
<el-button type="primary" @click="submitForm">确认</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -14,34 +22,28 @@
|
|||||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
import { reactive, ref } from 'vue';
|
import { reactive, ref } from 'vue';
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
modelValue:{
|
|
||||||
type:Boolean,
|
|
||||||
default:false
|
|
||||||
},
|
|
||||||
dic:{
|
dic:{
|
||||||
type:Object,
|
type:Object,
|
||||||
default:{}
|
default:{}
|
||||||
},
|
},
|
||||||
title:{
|
|
||||||
type:String,
|
|
||||||
default:'新增人员'
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
const roleIds = ref([])
|
||||||
const elform = ref()
|
const elform = ref()
|
||||||
const emit = defineEmits('update:modelValue')
|
const showDialog = ref(false)
|
||||||
|
const emit = defineEmits(['change'])
|
||||||
const listQuery = ref({})
|
const listQuery = ref({})
|
||||||
const formData = ref([
|
const formData = ref([
|
||||||
{ label: "姓名", prop: "xm", type: "input" },
|
{ label: "姓名", prop: "xm", type: "input" ,width:'48%'},
|
||||||
{ label: "性别", prop: "xb", type: "select",options:props.dic.D_BZ_XB },
|
{ label: "性别", prop: "xb", type: "select",options:props.dic.D_BZ_XB ,width:'48%'},
|
||||||
{ label: "身份证号", prop: "sfzh", type: "input" },
|
{ label: "身份证号", prop: "sfzh", type: "input" ,width:'48%'},
|
||||||
{ label: "户籍地", prop: "hjd", type: "input" },
|
{ label: "户籍地", prop: "hjdz", type: "input",width:'48%' },
|
||||||
{ label: "户籍地派出所", prop: "hjdpcs", type: "input" },
|
{ label: "户籍地派出所", prop: "hjdpcsdm", type: "department" ,width:'48%'},
|
||||||
{ label: "标签", prop: "bq", type: "input" },
|
{ label: "标签", prop: "bqList", type: "slot",width:'100%' },
|
||||||
{ label: "是否挑头人", prop: "sfdtr", type: "select",options:props.dic.D_BZ_SF },
|
{ label: "是否挑头人", prop: "sfttr", type: "select",options:props.dic.D_BZ_SF ,width:'48%'},
|
||||||
{ label: "是否响应人", prop: "sfxyr", type: "select" ,options:props.dic.D_BZ_SF },
|
{ label: "是否响应人", prop: "sfxyr", type: "select" ,options:props.dic.D_BZ_SF,width:'48%' },
|
||||||
{ label: "所属群体", prop: "ssqt", type: "input" },
|
{ label: "所属群体", prop: "ssqt", type: "input" ,width:'48%'},
|
||||||
{ label: "微信号", prop: "wxh", type: "input" },
|
{ label: "微信号", prop: "wx", type: "input" ,width:'48%'},
|
||||||
{ label: "QQ", prop: "qqh", type: "input" },
|
{ label: "QQ", prop: "qq", type: "input" ,width:'48%'},
|
||||||
])
|
])
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
xm: [{ required: true, message: "请输入姓名", trigger: "blur" }],
|
xm: [{ required: true, message: "请输入姓名", trigger: "blur" }],
|
||||||
@ -49,21 +51,28 @@ const rules = reactive({
|
|||||||
sfzh: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
|
sfzh: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
|
||||||
hjd: [{ required: true, message: "请输入户籍地", trigger: "blur" }],
|
hjd: [{ required: true, message: "请输入户籍地", trigger: "blur" }],
|
||||||
})
|
})
|
||||||
|
const title = ref('')
|
||||||
const submitForm = () =>{
|
const init = (type,row,index) =>{
|
||||||
elform.value.submit(()=>{
|
title.value = type == 'add' ? '新增' :'编辑';
|
||||||
|
showDialog.value = true;
|
||||||
})
|
if(row) listQuery.value = {...row};
|
||||||
}
|
}
|
||||||
|
|
||||||
const close = () =>{
|
const close = () =>{
|
||||||
elform.value.reset();
|
elform.value.reset();
|
||||||
emit('update:modelValue',false)
|
showDialog.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defineExpose({init})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::v-deep .el-form-item--default {
|
|
||||||
width: 48% !important;
|
.marks{
|
||||||
|
width: 100%;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 32px;
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -0,0 +1,92 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">转为指令</span>
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" size="small" :loading="loading" @click="submit" >保存</el-button>
|
||||||
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules"></FormMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import FormMessage from '@/components/aboutTable/FormMessage.vue'
|
||||||
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
|
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
||||||
|
const emit = defineEmits(["updateDate"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dic: Object
|
||||||
|
});
|
||||||
|
const router = useRouter();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const rules = reactive({
|
||||||
|
zlbt: [{ required: true, message: "请输入指令标题", trigger: "blur" }],
|
||||||
|
zllx: [{ required: true, message: "请选择指令类型", trigger: "change" }],
|
||||||
|
zldj: [{ required: true, message: "请选择指令等级", trigger: "change" }],
|
||||||
|
jssj: [{ required: true, message: "请选择反馈结束时间", trigger: "change" }],
|
||||||
|
zllxr: [{ required: true, message: "请输入联系人", trigger: "blur" }],
|
||||||
|
zllxdh: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
|
||||||
|
zsdw: [{ required: true, message: "请选择主送单位", trigger: "change" }],
|
||||||
|
csdw: [{ required: true, message: "请选择抄送单位", trigger: "change" }],
|
||||||
|
zlnr: [{ required: true, message: "请输入指令内容", trigger: "blur" }],
|
||||||
|
});
|
||||||
|
const formData = ref([
|
||||||
|
{ label: "线索名称", prop: "glxs", type: "input", disabled:true },
|
||||||
|
{ label: "指令标题", prop: "zlbt", type: "input", },
|
||||||
|
{ label: "指令类型", prop: "zllx", type: "select", options: props.dic.D_GS_XS_ZLLX },
|
||||||
|
{ label: "指令等级", prop: "zldj", type: "select", options: props.dic.D_GS_ZDQT_FXDJ },
|
||||||
|
{ label: "反馈结束时间", prop: "jssj", type: "datetime" },
|
||||||
|
{ label: "联系人", prop: "zllxr", type: "input" },
|
||||||
|
{ label: "联系电话", prop: "zllxdh", type: "input" },
|
||||||
|
{ label: "主送单位", prop: "zsdw", type: "department" },
|
||||||
|
{ label: "抄送单位", prop: "csdw", type: "department" },
|
||||||
|
{ label: "指令内容", prop: "zlnr", type: "textarea",width: '100%' },
|
||||||
|
{ label: "附件", prop: "fjzd", type: "upload",width: '100%' },
|
||||||
|
]);
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const loading = ref(false);
|
||||||
|
const elform = ref();
|
||||||
|
|
||||||
|
onMounted(() => {});
|
||||||
|
// 初始化数据
|
||||||
|
const init = (row) => {
|
||||||
|
listQuery.value.fjzd = null
|
||||||
|
dialogForm.value = true;
|
||||||
|
listQuery.value.glxs = row.xsMc;
|
||||||
|
listQuery.value.glxsid = row.id;
|
||||||
|
};
|
||||||
|
;
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const submit = () => {
|
||||||
|
elform.value.submit((data)=>{
|
||||||
|
let params = { ...data }
|
||||||
|
params.fjzd = params.fjzd ? params.fjzd.join(','):''
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(params, '/mosty-gsxt/zlxx/add').then((res) => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$message({ type: "success", message: "转发成功" });
|
||||||
|
router.push('/InstructionInformation')
|
||||||
|
}).catch(() => {loading.value = false;});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
listQuery.value = {};
|
||||||
|
dialogForm.value = false;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
defineExpose({ init });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
</style>
|
@ -2,14 +2,10 @@
|
|||||||
<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">
|
||||||
<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="addEdit('add', '')">
|
|
||||||
<el-icon style="vertical-align: middle"><Dete /></el-icon>
|
|
||||||
<span style="vertical-align: middle">批量删除</span>
|
|
||||||
</el-button>
|
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
</div>
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
@ -27,14 +23,23 @@
|
|||||||
:controlsWidth="pageData.controlsWidth"
|
:controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseData">
|
@chooseData="chooseData">
|
||||||
|
|
||||||
<template #shzt="{row}">
|
<template #xlLx="{row}">
|
||||||
<span>采纳(将这条信息推送到)</span>
|
<DictTag :tag="false" :value="row.xlLx" :options="D_GS_XS_LX" />
|
||||||
<span>退回!</span>
|
|
||||||
</template>
|
</template>
|
||||||
|
<template #qbLy="{row}">
|
||||||
|
<DictTag :tag="false" :value="row.qbLy" :options="D_GS_XS_LY" />
|
||||||
|
</template>
|
||||||
|
<template #czzt="{row}">
|
||||||
|
<DictTag :tag="false" :value="row.czzt" :options="D_GS_XS_CZZT" />
|
||||||
|
</template>
|
||||||
|
<template #shzt="{row}">
|
||||||
|
<DictTag :tag="false" :value="row.shzt" :options="D_BZ_XSSHZT" />
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
|
<el-link size="small" type="primary" @click="handleZL(row)">转为指令</el-link>
|
||||||
<el-link size="small" type="primary" @click="addEdit('detail', row)">详情</el-link>
|
<el-link size="small" type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||||
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages
|
<Pages
|
||||||
@ -48,7 +53,8 @@
|
|||||||
></Pages>
|
></Pages>
|
||||||
</div>
|
</div>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<AddForm ref="detailDiloag" :dic="{D_BZ_SF,D_BZ_XB,D_GS_XS_LY,D_BZ_SSZT,D_GS_XS_LX ,D_GS_XS_QTLX}" />
|
<AddForm ref="detailDiloag" v-if="isShow" :dic="{D_BZ_SF,D_BZ_XB,D_GS_XS_LY,D_BZ_SSZT,D_GS_XS_LX ,D_GS_XS_QTLX}" />
|
||||||
|
<ZlForm ref="zlDialog" v-if="isShow" :dic="{D_GS_XS_ZLLX,D_GS_ZDQT_FXDJ}"></ZlForm>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -58,61 +64,28 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
|||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import AddForm from "./components/addForm.vue";
|
import AddForm from "./components/addForm.vue";
|
||||||
|
import ZlForm from "./components/zlForm.vue";
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const {D_GS_XS_LY, D_BZ_SSZT,D_BZ_SF,D_GS_XS_LX ,D_GS_XS_QTLX,D_BZ_XB} = proxy.$dict("D_GS_XS_LY","D_BZ_SSZT","D_BZ_SF","D_GS_XS_LX","D_GS_XS_QTLX","D_BZ_XB"); //获取字典数据
|
const {D_GS_ZDQT_FXDJ,D_GS_XS_ZLLX,D_GS_XS_CZZT,D_GS_XS_LY, D_BZ_SSZT,D_BZ_SF,D_GS_XS_LX ,D_GS_XS_QTLX,D_BZ_XB,D_BZ_XSSHZT} = proxy.$dict("D_GS_ZDQT_FXDJ","D_GS_XS_ZLLX","D_GS_XS_CZZT","D_GS_XS_LY","D_BZ_SSZT","D_BZ_SF","D_GS_XS_LX","D_GS_XS_QTLX","D_BZ_XB","D_BZ_XSSHZT"); //获取字典数据
|
||||||
const detailDiloag = ref();
|
const detailDiloag = ref();
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
|
const isShow = ref(false)
|
||||||
|
const zlDialog = ref(false)
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "线索名称", prop: 'clueTitle', placeholder: "请输入线索名称", showType: "input" },
|
{ label: "线索名称", prop: 'xsMc', placeholder: "请输入线索名称", showType: "input" },
|
||||||
{ label: "语义关键字", prop: 'semanticKeywords', placeholder: "请输入语义关键字", showType: "input" },
|
{ label: "内容关键字", prop: 'xsNr', placeholder: "请输入语义关键字", showType: "input" },
|
||||||
{ label: "线索类型", prop: 'clueType', placeholder: "请选择线索类型", showType: "select" },
|
{ label: "线索类型", prop: 'xlLx', placeholder: "请选择线索类型", showType: "select" },
|
||||||
{ label: "线索来源", prop: 'clueSource', placeholder: "请选择线索来源", showType: "select" },
|
{ label: "线索来源", prop: 'qbLy', placeholder: "请选择线索来源", showType: "select" },
|
||||||
{ label: "线索状态", prop: 'xszt', placeholder: "请选择线索状态", showType: "select" },
|
{ label: "线索状态", prop: 'xszt', placeholder: "请选择线索状态", showType: "select" },
|
||||||
{ label: "处置状态", prop: 'czzt', placeholder: "请选择处置状态", showType: "select" },
|
{ label: "开始时间", prop: 'zxkssj', placeholder: "请选择开始时间", showType: "date" },
|
||||||
{ label: "开始时间", prop: 'startTime', placeholder: "请选择开始时间", showType: "date" },
|
{ label: "结束时间", prop: 'zxjssj', placeholder: "请选择结束时间", showType: "date" },
|
||||||
{ label: "结束时间", prop: 'endTime', placeholder: "请选择结束时间", showType: "date" },
|
{ label: "指向地点", prop: 'zxdz', placeholder: "请输入指向地点", showType: "input" },
|
||||||
{ label: "指向地点", prop: 'targetLocation', placeholder: "请输入指向地点", showType: "input" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
tableData: [],
|
||||||
{
|
|
||||||
clueNo: "XS20240101001",
|
|
||||||
clueTitle: "可疑人员活动线索",
|
|
||||||
clueType: "人员线索",
|
|
||||||
clueSource: "群众举报",
|
|
||||||
startTime: "2024-01-01 08:00:00",
|
|
||||||
endTime: "2024-01-01 18:00:00",
|
|
||||||
targetLocation: "某市某区某街道",
|
|
||||||
clueContent: "发现多名可疑人员在该区域频繁出入,疑似从事非法活动。",
|
|
||||||
attachment: "report.pdf"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
clueNo: "XS20240101002",
|
|
||||||
clueTitle: "涉毒交易线索",
|
|
||||||
clueType: "违法犯罪线索",
|
|
||||||
clueSource: "技术侦查",
|
|
||||||
startTime: "2024-01-02 10:00:00",
|
|
||||||
endTime: "2024-01-02 16:00:00",
|
|
||||||
targetLocation: "某市某区某小区",
|
|
||||||
clueContent: "监控发现多次可疑交易活动,疑似涉及违禁物品。",
|
|
||||||
attachment: "evidence.docx"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
clueNo: "XS20240101003",
|
|
||||||
clueTitle: "非法聚集线索",
|
|
||||||
clueType: "群体性事件",
|
|
||||||
clueSource: "网络监控",
|
|
||||||
startTime: "2024-01-03 14:00:00",
|
|
||||||
endTime: "2024-01-03 22:00:00",
|
|
||||||
targetLocation: "某市某广场",
|
|
||||||
clueContent: "网络平台发现有组织策划非法聚集活动的信息。",
|
|
||||||
attachment: "online_evidence.zip"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
@ -126,15 +99,17 @@ const pageData = reactive({
|
|||||||
},
|
},
|
||||||
controlsWidth: 220,
|
controlsWidth: 220,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "线索编号", prop: "clueNo" },
|
{ label: "线索编号", prop: "xsBh" },
|
||||||
{ label: "线索名称", prop: "clueTitle" },
|
{ label: "线索名称", prop: "xsMc" },
|
||||||
{ label: "线索类型", prop: "clueType" },
|
{ label: "线索类型", prop: "xlLx",showSolt:true },
|
||||||
{ label: "线索来源", prop: "clueSource" },
|
{ label: "线索来源", prop: "qbLy",showSolt:true },
|
||||||
{ label: "开始时间", prop: "startTime" },
|
{ label: "开始时间", prop: "zxkssj" },
|
||||||
{ label: "结束时间", prop: "endTime" },
|
{ label: "结束时间", prop: "zxjssj" },
|
||||||
{ label: "指向地点", prop: "targetLocation" },
|
{ label: "指向地点", prop: "zxdz" },
|
||||||
{ label: "线索内容", prop: "clueContent", width: 200 },
|
{ label: "线索内容", prop: "xsNr"},
|
||||||
{ label: "附件", prop: "attachment", solt: true },
|
{ label: "处置状态", prop: "czzt",showSolt: true},
|
||||||
|
{ label: "附件", prop: "fjdz", showSolt: true },
|
||||||
|
{ label: "审核状态", prop: "shzt", showSolt: true },
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -145,12 +120,7 @@ onMounted(() => {
|
|||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
});
|
});
|
||||||
|
|
||||||
//选择类型
|
|
||||||
const handleType = (val) => {
|
|
||||||
pageData.keyCount++;
|
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
|
||||||
getList()
|
|
||||||
}
|
|
||||||
// 搜索
|
// 搜索
|
||||||
const onSearch = (val) =>{
|
const onSearch = (val) =>{
|
||||||
queryFrom.value = {...val}
|
queryFrom.value = {...val}
|
||||||
@ -169,21 +139,30 @@ const changeSize = (val) =>{
|
|||||||
|
|
||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = (val) =>{
|
const getList = (val) =>{
|
||||||
// pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
// let url = '/mosty-lzcj/tbDwMbkf/queryList';
|
qcckGet(data,'/mosty-gsxt/qbcj/selectPage').then(res=>{
|
||||||
// qcckPost(data,url).then(res=>{
|
pageData.tableData = res.records || [];
|
||||||
// pageData.tableData = res.records || [];
|
pageData.total = res.total;
|
||||||
// pageData.total = res.total;
|
pageData.tableConfiger.loading = false;
|
||||||
// pageData.tableConfiger.loading = false;
|
}).catch(()=>{ pageData.tableConfiger.loading = false; })
|
||||||
// }).catch(()=>{ pageData.tableConfiger.loading = false; })
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 转为指令
|
||||||
|
const handleZL = (val) =>{
|
||||||
|
isShow.value = true;
|
||||||
|
setTimeout(()=>{
|
||||||
|
zlDialog.value.init(val)
|
||||||
|
},500)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 详情
|
// 详情
|
||||||
const addEdit = (type, row) => {
|
const addEdit = (type, row) => {
|
||||||
nextTick(()=>{
|
isShow.value = true;
|
||||||
|
setTimeout(()=>{
|
||||||
detailDiloag.value.init(type, row);
|
detailDiloag.value.init(type, row);
|
||||||
})
|
},500)
|
||||||
};
|
};
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
<FormMessage :formList="formData" ref="elform" :rules="rules"></FormMessage>
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules"></FormMessage>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -16,7 +16,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import FormMessage from '@/components/aboutTable/FormMessage.vue'
|
import FormMessage from '@/components/aboutTable/FormMessage.vue'
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
import * as rule from "@/utils/rules.js";
|
|
||||||
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
|
||||||
const emit = defineEmits(["updateDate"]);
|
const emit = defineEmits(["updateDate"]);
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@ -25,13 +24,16 @@ const props = defineProps({
|
|||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const dialogForm = ref(false); //弹窗
|
const dialogForm = ref(false); //弹窗
|
||||||
const formData = ref([
|
const formData = ref([
|
||||||
{ label: "语义名称", prop: "bqmc", type: "input", },
|
{ label: "语义名称", prop: "yymc", type: "input", },
|
||||||
{ label: "要素类型", prop: "sfbqdl", type: "select", options: [] },
|
{ label: "要素类型", prop: "yslx", type: "input"},
|
||||||
{ label: "要素名称", prop: "sfbqxl", type: "input", options: [] },
|
{ label: "要素名称", prop: "ysmc", type: "input"},
|
||||||
{ label: "要素描述", prop: "ysms", type: "textarea", width: "100%" },
|
{ label: "要素描述", prop: "ysms", type: "textarea", width: "100%" },
|
||||||
]);
|
]);
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
bqmc: [{ required: true, message: "请输入标签名称", trigger: "blur" }]
|
yymc: [{ required: true, message: "请输入标签名称", trigger: "blur" }],
|
||||||
|
yslx: [{ required: true, message: "请输入要素类型", trigger: "blur" }],
|
||||||
|
ysmc: [{ required: true, message: "请输入要素名称", trigger: "blur" }],
|
||||||
|
ysms: [{ required: true, message: "请输入要素描述", trigger: "blur" }],
|
||||||
});
|
});
|
||||||
const listQuery = ref({}); //表单
|
const listQuery = ref({}); //表单
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
@ -39,28 +41,32 @@ const elform = ref();
|
|||||||
const title = ref("");
|
const title = ref("");
|
||||||
onMounted(() => {});
|
onMounted(() => {});
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
const init = (type, row,) => {
|
const init = (type, id) => {
|
||||||
dialogForm.value = true;
|
dialogForm.value = true;
|
||||||
title.value = type == 'add' ? "新增" : "编辑";
|
title.value = type == 'add' ? "新增" : "编辑";
|
||||||
if (row) getDataById(row.id);
|
if (id) getDataById(id);
|
||||||
};
|
};
|
||||||
// 根据id查询详情
|
// 根据id查询详情
|
||||||
const getDataById = (id) => {
|
const getDataById = (id) => {
|
||||||
// qcckGet({}, '/mosty-gsxt/tbGsxtBqgl/'+id).then((res) => {
|
qcckGet({id}, '/mosty-gsxt/qbyy/selectByid').then((res) => {
|
||||||
// listQuery.value = res;
|
listQuery.value = res;
|
||||||
// });
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// 提交
|
// 提交
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
elform.value.submit((data)=>{
|
elform.value.submit((data)=>{
|
||||||
// let url = title.value == "新增" ? '/mosty-gsxt/tbGsxtBqgl/save':'/mosty-gsxt/tbGsxtBqgl/update';
|
let url = title.value == "新增" ? '/mosty-gsxt/qbyy/add':'/mosty-gsxt/qbyy/update';
|
||||||
// let params = { ...data }
|
let params = { ...data }
|
||||||
// qcckPost(params, url).then((res) => {
|
loading.value = true;
|
||||||
// proxy.$message({ type: "success", message: title.value + "成功" });
|
qcckPost(params, url).then((res) => {
|
||||||
// emit("updateDate");
|
loading.value = false;
|
||||||
// close();
|
proxy.$message({ type: "success", message: title.value + "成功" });
|
||||||
// }).catch(() => {});
|
emit("updateDate");
|
||||||
|
close();
|
||||||
|
}).catch(()=>{
|
||||||
|
loading.value = false;
|
||||||
|
})
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5,25 +5,28 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex just-between">
|
<div class="flex just-between">
|
||||||
<!-- 左边 -->
|
<!-- 左边 -->
|
||||||
<div class="ww49">
|
<div class="ww49" style="min-width: 647px;">
|
||||||
<div ref="searchBox">
|
<div ref="searchBox">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
<Search :searchArr="searchConfiger" @submit="onSearch">
|
||||||
|
<el-button type="primary" @click="addForm('add',null)">新增</el-button>
|
||||||
|
</Search>
|
||||||
</div>
|
</div>
|
||||||
<div class="tabBox">
|
<div class="tabBox">
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="pageData.tableData"
|
:tableData="pageData.tableData"
|
||||||
:tableColumn="pageData.tableColumn"
|
:tableColumn="pageData.tableColumn"
|
||||||
:tableHeight="pageData.tableHeight"
|
:tableHeight="pageData.tableHeight1"
|
||||||
:key="pageData.keyCount"
|
:key="pageData.keyCount"
|
||||||
:tableConfiger="pageData.tableConfiger"
|
:tableConfiger="pageData.tableConfiger"
|
||||||
:controlsWidth="pageData.controlsWidth"
|
:controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseData"
|
@chooseData="chooseData"
|
||||||
>
|
>
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
|
<el-link type="primary" @click="addForm('edit', row.id)">编辑</el-link>
|
||||||
<el-link type="danger" @click="delDictItem([row.id])">删除</el-link>
|
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
|
<div class="txetBox"></div>
|
||||||
<div class="footBnt">
|
<div class="footBnt">
|
||||||
<el-button type="primary">导入</el-button>
|
<el-button type="primary">导入</el-button>
|
||||||
<el-button type="primary">语义分析</el-button>
|
<el-button type="primary">语义分析</el-button>
|
||||||
@ -48,7 +51,7 @@
|
|||||||
>
|
>
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
|
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
|
||||||
<el-link type="danger" @click="delDictItem([row.id])">删除</el-link>
|
<el-link type="danger" @click="delDictItemRight(row.id)">删除</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<Pages
|
<Pages
|
||||||
@ -98,13 +101,14 @@ const searchConfiger = ref([
|
|||||||
]);
|
]);
|
||||||
const queryFrom = ref({});
|
const queryFrom = ref({});
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [{ id: 1, xh: 1, yymc: "XX公司", yslx: "实体识别", ysmc: "组织", ysms: "林芝某公司", bz: "" }], //表格数据
|
tableData: [], //表格数据
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
showSelectType: "checkBox",
|
showSelectType: "null",
|
||||||
loading: false
|
loading: false
|
||||||
},
|
},
|
||||||
|
tableHeight1:300,
|
||||||
tableConfigerR: {
|
tableConfigerR: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
showSelectType: null,
|
showSelectType: null,
|
||||||
@ -117,16 +121,19 @@ const pageData = reactive({
|
|||||||
}, //分页
|
}, //分页
|
||||||
controlsWidth: 160, //操作栏宽度
|
controlsWidth: 160, //操作栏宽度
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "语义名称", prop: "yymc" },
|
{ label: "语义名称", prop: "yymc",showOverflowTooltip:true },
|
||||||
{ label: "要素类型", prop: "yslx" },
|
{ label: "要素类型", prop: "yslx",showOverflowTooltip:true },
|
||||||
{ label: "要素名称", prop: "ysmc" },
|
{ label: "要素名称", prop: "ysmc",showOverflowTooltip:true },
|
||||||
{ label: "要素描述", prop: "ysms" },
|
{ label: "要素描述", prop: "ysms",showOverflowTooltip:true },
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
|
getList();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 搜索
|
// 搜索
|
||||||
const onSearch = (val) => {
|
const onSearch = (val) => {
|
||||||
queryFrom.value = { ...val };
|
queryFrom.value = { ...val };
|
||||||
@ -134,38 +141,57 @@ const onSearch = (val) => {
|
|||||||
getList();
|
getList();
|
||||||
};
|
};
|
||||||
|
|
||||||
const changeNo = (val) => {
|
|
||||||
pageData.pageConfiger.pageNum = val;
|
|
||||||
getList();
|
|
||||||
};
|
|
||||||
const changeSize = (val) => {
|
|
||||||
pageData.pageConfiger.pageSize = val;
|
|
||||||
getList();
|
|
||||||
};
|
|
||||||
|
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
// pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
// qcckGet(queryFrom.value).then((res)=>{
|
qcckGet(queryFrom.value,'/mosty-gsxt/qbyy/selectList').then((res)=>{
|
||||||
// pageData.tableData = res.data.list;
|
pageData.tableData = res || [];
|
||||||
// pageData.total = res.data.total;
|
pageData.tableConfiger.loading = false;
|
||||||
// pageData.keyCount++;
|
})
|
||||||
// pageData.tableConfiger.loading = false;
|
|
||||||
// })
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
const delDictItem = (ids) => {
|
const delDictItem = (id) => {
|
||||||
|
proxy.$confirm("确定要删除", "警告", {type: "warning"}).then(() => {
|
||||||
|
qcckPost({id},'/mosty-gsxt/qbyy/delete').then(()=>{
|
||||||
|
proxy.$message({ type: "success", message: "删除成功" });
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
}).catch(() => {});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除右边
|
||||||
|
const delDictItemRight = (id) => {
|
||||||
// proxy.$confirm("确定要删除", "警告", {type: "warning"}).then(() => {
|
// proxy.$confirm("确定要删除", "警告", {type: "warning"}).then(() => {
|
||||||
// qcckPost(ids,url).then(()=>{
|
// qcckPost({id},'/mosty-gsxt/qbyy/delete').then(()=>{
|
||||||
// proxy.$message({ type: "success", message: "删除成功" });
|
// proxy.$message({ type: "success", message: "删除成功" });
|
||||||
// getList();
|
// getList();
|
||||||
// })
|
// })
|
||||||
// }).catch(() => {});
|
// }).catch(() => {});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 新增数据 -- 左边
|
||||||
|
const addForm = (type, id) =>{
|
||||||
|
detailDiloag.value.init(type, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const changeNo = (val) => {
|
||||||
|
// pageData.pageConfiger.pageNum = val;
|
||||||
|
// getListR();
|
||||||
|
};
|
||||||
|
const changeSize = (val) => {
|
||||||
|
// pageData.pageConfiger.pageSize = val;
|
||||||
|
// getListR();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 新增
|
// 新增
|
||||||
const addEdit = (type, row) => {
|
const addEdit = (type, row) => {
|
||||||
detailDiloag.value.init(type, row);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
@ -185,6 +211,15 @@ const tabHeightFn = () => {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
.txetBox{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 50px;
|
||||||
|
height: 210px;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@ -1,58 +1,37 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="dialog" v-if="dialogForm">
|
<div class="dialog" v-if="dialogForm">
|
||||||
<div class="head_box">
|
<div class="head_box">
|
||||||
<span class="title">典当物品信息详情</span>
|
<span class="title">操作记录详情</span>
|
||||||
<div>
|
<div>
|
||||||
<el-button size="small" @click="close">关闭</el-button>
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="cntinfo">
|
<div class="cntinfo">
|
||||||
<el-form :model="listQuery" :label-width="230" label-position="left">
|
<el-form :model="listQuery" disabled :label-width="230" label-position="left">
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<el-form-item label="业务流水号码">
|
<el-form-item label="模块名称">
|
||||||
<el-input v-model="listQuery.ywlsh" placeholder="01131213"/>
|
<el-input v-model="listQuery.mkmc"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="典当物品类别">
|
<el-form-item label="操作人员">
|
||||||
<el-input v-model="listQuery.ddwplb" placeholder="贵金属"/>
|
<el-input v-model="listQuery.operName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<el-form-item label="典当人姓名">
|
<el-form-item label="操作人员身份证号">
|
||||||
<el-input v-model="listQuery.ddrxm" placeholder="张三"/>
|
<el-input v-model="listQuery.operSfzh" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="典当人证件号码">
|
<el-form-item label="操作人员ID">
|
||||||
<el-input v-model="listQuery.ddrzjhm" placeholder="511111111111111111"/>
|
<el-input v-model="listQuery.operUserId" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<el-form-item label="典当人联系电话">
|
<el-form-item label="操作模块">
|
||||||
<el-input v-model="listQuery.ddrlxdh" placeholder="15222222222"/>
|
<el-input v-model="listQuery.title"/>
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="典当物品名称">
|
|
||||||
<el-input v-model="listQuery.ddwpmc" placeholder="100g金条"/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="典当物品持有凭证">
|
|
||||||
<el-input v-model="listQuery.cypz" placeholder="123"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="典当物品数量">
|
|
||||||
<el-input v-model="listQuery.ddwpsl" placeholder="5"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-row">
|
|
||||||
<el-form-item label="典当物品照片">
|
|
||||||
<div class="image-group">
|
|
||||||
<div class="image-item" v-for="(item, index) in listQuery.plateImages" :key="index">
|
|
||||||
<el-image :src="item.img" fit="cover"></el-image>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -62,18 +41,12 @@
|
|||||||
import { ref, reactive } from 'vue';
|
import { ref, reactive } from 'vue';
|
||||||
|
|
||||||
const dialogForm = ref(false);
|
const dialogForm = ref(false);
|
||||||
const listQuery = ref({
|
const listQuery = ref({});
|
||||||
plateImages: [
|
|
||||||
{img:require('@/assets/images/person.png')},
|
|
||||||
{img:require('@/assets/images/person.png')},
|
|
||||||
{img:require('@/assets/images/person.png')},
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
const init = (type, row) => {
|
const init = (type, row) => {
|
||||||
dialogForm.value = true;
|
dialogForm.value = true;
|
||||||
// 根据type和row初始化表单数据
|
listQuery.value = row || {}; // 如果row为空,则初始化为空对象
|
||||||
};
|
};
|
||||||
|
|
||||||
const close = () => {
|
const close = () => {
|
||||||
|
@ -16,15 +16,7 @@
|
|||||||
:key="pageData.keyCount"
|
:key="pageData.keyCount"
|
||||||
:tableConfiger="pageData.tableConfiger"
|
:tableConfiger="pageData.tableConfiger"
|
||||||
:controlsWidth="pageData.controlsWidth"
|
:controlsWidth="pageData.controlsWidth"
|
||||||
@chooseData="chooseData">
|
>
|
||||||
<!-- 事故照片 -->
|
|
||||||
<template #accidentPhoto="{ row }">
|
|
||||||
<el-image
|
|
||||||
style="width: 50px; height: 50px"
|
|
||||||
:src="row.accidentPhoto"
|
|
||||||
:preview-src-list="[row.accidentPhoto]">
|
|
||||||
</el-image>
|
|
||||||
</template>
|
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-button size="small" @click="addEdit('detail', row)">详情</el-button>
|
<el-button size="small" @click="addEdit('detail', row)">详情</el-button>
|
||||||
@ -51,27 +43,20 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
|||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import DetailForm from "./components/detailForm.vue";
|
import DetailForm from "./components/detailForm.vue";
|
||||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||||
const { proxy } = getCurrentInstance();
|
|
||||||
const detailDiloag = ref();
|
const detailDiloag = ref();
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
|
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "物品名称", prop: 'itemName', placeholder: "请输入物品名称", showType: "input" },
|
{ label: "模块名称", prop: 'mkmc', placeholder: "请输入模块名称", showType: "input" },
|
||||||
{ label: "物品类别", prop: 'itemType', placeholder: "请输入物品类别", showType: "input" },
|
{ label: "操作人员", prop: 'operName', placeholder: "请输入操作人员", showType: "input" },
|
||||||
{ label: "持有凭证", prop: 'certificate', placeholder: "请输入持有凭证", showType: "input" },
|
{ label: "操作人员身份证号", prop: 'operSfzh', placeholder: "请输入操作人员身份证号", showType: "input" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const queryFrom = ref({});
|
const queryFrom = ref({});
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [
|
tableData: [],
|
||||||
{id: 1, placeName: '老王典当', itemName: '100g金条', itemType: '贵重金属', certificate: '123456', quantity: 5, pawner: '张三', pawnerIdCard: '511111111111111111', pawnerPhone: '15222222222'},
|
|
||||||
{id: 2, placeName: '老王典当', itemName: '100g金条', itemType: '贵重金属', certificate: '123456', quantity: 5, pawner: '张三', pawnerIdCard: '511111111111111111', pawnerPhone: '15222222222'},
|
|
||||||
{id: 3, placeName: '老王典当', itemName: '100g金条', itemType: '贵重金属', certificate: '123456', quantity: 5, pawner: '张三', pawnerIdCard: '511111111111111111', pawnerPhone: '15222222222'},
|
|
||||||
{id: 4, placeName: '老王典当', itemName: '100g金条', itemType: '贵重金属', certificate: '123456', quantity: 5, pawner: '张三', pawnerIdCard: '511111111111111111', pawnerPhone: '15222222222'},
|
|
||||||
{id: 5, placeName: '老王典当', itemName: '100g金条', itemType: '贵重金属', certificate: '123456', quantity: 5, pawner: '张三', pawnerIdCard: '511111111111111111', pawnerPhone: '15222222222'},
|
|
||||||
],
|
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
@ -80,19 +65,16 @@ const pageData = reactive({
|
|||||||
},
|
},
|
||||||
total: 0,
|
total: 0,
|
||||||
pageConfiger: {
|
pageConfiger: {
|
||||||
pageSize: 20,
|
size: 20,
|
||||||
pageCurrent: 1
|
current: 1
|
||||||
},
|
},
|
||||||
controlsWidth: 120,
|
controlsWidth: 120,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "场所名称", prop: "placeName" },
|
{ label: "模块名称", prop: "mkmc" },
|
||||||
{ label: "物品名称", prop: "itemName" },
|
{ label: "操作人员", prop: "operName" },
|
||||||
{ label: "物品类别", prop: "itemType" },
|
{ label: "操作人员身份证号", prop: "operSfzh" },
|
||||||
{ label: "持有凭证", prop: "certificate" },
|
{ label: "操作人员ID", prop: "operUserId" },
|
||||||
{ label: "数量", prop: "quantity", width: 80 },
|
{ label: "操作模块", prop: "title"},
|
||||||
{ label: "典当人", prop: "pawner" },
|
|
||||||
{ label: "典当人证件号码", prop: "pawnerIdCard" },
|
|
||||||
{ label: "典当人联系电话", prop: "pawnerPhone" },
|
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -101,16 +83,10 @@ onMounted(() => {
|
|||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
});
|
});
|
||||||
|
|
||||||
//选择类型
|
|
||||||
const handleType = (val) => {
|
|
||||||
pageData.keyCount++;
|
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
|
||||||
getList()
|
|
||||||
}
|
|
||||||
// 搜索
|
// 搜索
|
||||||
const onSearch = (val) =>{
|
const onSearch = (val) =>{
|
||||||
queryFrom.value = {...val}
|
queryFrom.value = {...val}
|
||||||
pageData.pageConfiger.pageCurrent = 1;
|
pageData.pageConfiger.current = 1;
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,20 +95,19 @@ const changeNo = (val) =>{
|
|||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
const changeSize = (val) =>{
|
const changeSize = (val) =>{
|
||||||
pageData.pageConfiger.pageSize = val;
|
pageData.pageConfiger.size = val;
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取列表
|
// 获取列表
|
||||||
const getList = (val) =>{
|
const getList = () =>{
|
||||||
// pageData.tableConfiger.loading = true;
|
pageData.tableConfiger.loading = true;
|
||||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
// let url = '/mosty-lzcj/tbDwMbkf/queryList';
|
qcckPost(data,'/mosty-base/monitor/operlog/list').then(res=>{
|
||||||
// qcckPost(data,url).then(res=>{
|
pageData.tableData = res.records || [];
|
||||||
// pageData.tableData = res.records || [];
|
pageData.total = res.total;
|
||||||
// pageData.total = res.total;
|
pageData.tableConfiger.loading = false;
|
||||||
// pageData.tableConfiger.loading = false;
|
}).catch(()=>{ pageData.tableConfiger.loading = false; })
|
||||||
// }).catch(()=>{ pageData.tableConfiger.loading = false; })
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 详情
|
// 详情
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="commCnt">
|
<div class="commCnt">
|
||||||
<div class="hh50">
|
<div class="hh50">
|
||||||
<div class="comm-title">处置统计</div>
|
<div class="comm-title">类型统计</div>
|
||||||
<div class="echartsBox">
|
<div class="echartsBox">
|
||||||
<MoreBarEcharts echartsId="cztjEcharts" :data="obj.data_cztj"></MoreBarEcharts>
|
<MoreBarEcharts echartsId="cztjEcharts" :data="obj.data_lxtj"></MoreBarEcharts>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="hh50">
|
<div class="hh50">
|
||||||
@ -39,10 +39,10 @@
|
|||||||
<div class="comm-title title-s">{{ it.title }}</div>
|
<div class="comm-title title-s">{{ it.title }}</div>
|
||||||
<div class="list-table" >
|
<div class="list-table" >
|
||||||
<MyTable
|
<MyTable
|
||||||
:tableData="it.tableData"
|
:tableData="it.tableList"
|
||||||
:tableColumn="pageData.tableColumn"
|
:tableColumn="pageData.tableColumn"
|
||||||
:tableHeight="pageData.tableHeight"
|
:tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount+idx"
|
:key="it.keyCount"
|
||||||
:isScroll="true"
|
:isScroll="true"
|
||||||
:fixed="false"
|
:fixed="false"
|
||||||
:tabelModel="it.title"
|
:tabelModel="it.title"
|
||||||
@ -52,10 +52,8 @@
|
|||||||
>
|
>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="primary" size="small">详情</el-link>
|
|
||||||
<el-link type="primary" size="small">网上会商</el-link>
|
<el-link type="primary" size="small">网上会商</el-link>
|
||||||
<el-link type="primary" size="small">处置</el-link>
|
<el-link type="primary" size="small">处置</el-link>
|
||||||
<el-link type="primary" size="small">反馈</el-link>
|
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
@ -67,22 +65,25 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { qcckPost, qcckGet } from "@/api/qcckApi.js";
|
||||||
import MoreBarEcharts from "@/views/home/echarts/moreBarEcharts.vue";
|
import MoreBarEcharts from "@/views/home/echarts/moreBarEcharts.vue";
|
||||||
import LineEcharts from "@/views/home/echarts/moreLineEcharts.vue";
|
import LineEcharts from "@/views/home/echarts/moreLineEcharts.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import MyTable from "@/components/aboutTable/DarkTable.vue";
|
import MyTable from "@/components/aboutTable/DarkTable.vue";
|
||||||
import { nextTick, onMounted, reactive ,ref } from 'vue';
|
import { nextTick, onMounted, reactive,getCurrentInstance ,ref, watch } from 'vue';
|
||||||
|
import { set } from "lodash";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const {D_BZ_SSZT,D_GS_XS_LY} = proxy.$dict("D_BZ_SSZT","D_GS_XS_LY"); //获取字典数据
|
||||||
const searchBox = ref();
|
const searchBox = ref();
|
||||||
const listBoxRef = ref();
|
const listBoxRef = ref();
|
||||||
// 图数据
|
// 图数据
|
||||||
const obj = reactive({
|
const obj = reactive({
|
||||||
data_cztj:{
|
data_lxtj:{
|
||||||
xData:['上访','诈骗','敲诈勒索','盗窃','涉黄','涉毒','强奸猥亵','灾害事故','自杀'],
|
xData:['上访','诈骗','敲诈勒索','盗窃','涉黄','涉毒','强奸猥亵','灾害事故','自杀'],
|
||||||
color:[['#0DBAC5','#28EEBF'],['#F06C0D','#EEB416']],
|
color:[['#0DBAC5','#28EEBF'],['#F06C0D','#EEB416']],
|
||||||
labelColor:'#000',
|
labelColor:'#000',
|
||||||
list:[
|
list:[
|
||||||
{label:'总数',val:[30,20,10,60,50,60,35,45,20]},
|
{label:'总数',val:[30,20,10,60,50,60,35,45,20]},
|
||||||
{label:'未办结',val:[40,30,20,50,30,44,50,45,62]},
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
data_hstj:{
|
data_hstj:{
|
||||||
@ -91,56 +92,27 @@ const obj = reactive({
|
|||||||
labelColor:'#000',
|
labelColor:'#000',
|
||||||
list:[
|
list:[
|
||||||
{label:'总数',val:[30,20,10,60,50,60,35,45,20]},
|
{label:'总数',val:[30,20,10,60,50,60,35,45,20]},
|
||||||
{label:'已会商',val:[40,30,20,50,30,44,50,45,62]},
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// 搜索
|
// 搜索
|
||||||
const searchConfiger = ref([
|
const searchConfiger = ref([
|
||||||
{ label: "专题来源", prop: "ztly", placeholder: "请选择", showType: "select"},
|
{ label: "线索来源", prop: 'qbLy', placeholder: "请选择线索来源", showType: "select",options:D_GS_XS_LY },
|
||||||
{ label: "所属专题", prop: "sszt", placeholder: "请输入", showType: "input"},
|
{ label: "线索内容", prop: "xsNr", placeholder: "请输入", showType: "input"},
|
||||||
{ label: "线索内容", prop: "xsnr", placeholder: "请输入", showType: "input"},
|
{ label: "开始时间", prop: 'zxkssj', placeholder: "请选择开始时间", showType: "date" },
|
||||||
{ label: "时间段", prop: "sjd", showType: "daterange"},
|
{ label: "结束时间", prop: 'zxjssj', placeholder: "请选择结束时间", showType: "date" },
|
||||||
{ label: "会商情况", prop: "hsqk", placeholder: "请选择", showType: "select"},
|
|
||||||
])
|
])
|
||||||
// 每个列表对应的值
|
// 每个列表对应的值
|
||||||
const list = reactive([
|
const list = ref([
|
||||||
{ title:'上访', tableData:[
|
// { title:'诈骗', tableList:[]},
|
||||||
{ bt:' 张三上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 李四上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
|
|
||||||
]},
|
|
||||||
{ title:'诈骗', tableData:[]},
|
|
||||||
{ title:'敲诈勒索',tableData:[]},
|
|
||||||
{ title:'盗窃',tableData:[]},
|
|
||||||
{ title:'涉黄',tableData:[]},
|
|
||||||
{ title:'涉赌',tableData:[]},
|
|
||||||
{ title:'涉毒',tableData:[]},
|
|
||||||
{ title:'强奸猥亵',tableData:[]},
|
|
||||||
])
|
])
|
||||||
// 列表公用
|
// 列表公用
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableColumn:[
|
tableColumn:[
|
||||||
{ label: "线索标题", width:55, prop: "bt",showOverflowTooltip: true},
|
{ label: "线索标题", prop: "xsMc",showOverflowTooltip: true},
|
||||||
{ label: "线索内容", prop: "nr",showOverflowTooltip: true},
|
{ label: "线索内容", prop: "xsNr",showOverflowTooltip: true},
|
||||||
{ label: "涉及人数",width:55, prop: "rs",showOverflowTooltip: true},
|
{ label: "涉及人数", prop: "sjrs",showOverflowTooltip: true},
|
||||||
{ label: "专题分类", prop: "ztfl",showOverflowTooltip: true},
|
{ label: "上报时间", prop: "sxsbsj",showOverflowTooltip: true},
|
||||||
{ label: "上报时间",width:55, prop: "sbsj",showOverflowTooltip: true},
|
|
||||||
],
|
],
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
@ -150,20 +122,49 @@ const pageData = reactive({
|
|||||||
showIndex:false,
|
showIndex:false,
|
||||||
rowHeight: 30,
|
rowHeight: 30,
|
||||||
},
|
},
|
||||||
controlsWidth: 200, //操作栏宽度
|
controlsWidth: 120, //操作栏宽度
|
||||||
});
|
});
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
tabHeightFn();
|
getCount(); //获取统计数据
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const getCount = () => {
|
||||||
|
// 获取处置状态统计
|
||||||
|
qcckPost({}, '/mosty-gsxt/qbcj/getXscjTjByXslx').then(res => {
|
||||||
|
let arr = res || [];
|
||||||
|
obj.data_lxtj.xData = arr.map(v => v.zdmc);
|
||||||
|
obj.data_lxtj.list = [{ label: '总数', val: arr.map(v => v.count) }];
|
||||||
|
});
|
||||||
|
// 会商统计
|
||||||
|
qcckPost({}, '/mosty-gsxt/wshs/getWshyZttj').then(res => {
|
||||||
|
let arr = res || [];
|
||||||
|
obj.data_hstj.xData = arr.map(v => v.zdmc);
|
||||||
|
obj.data_hstj.list = [{ label: '总数', val: arr.map(v => v.count) }];
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 滚动加载
|
// 滚动加载
|
||||||
const changePage = (val) => {
|
const changePage = (val) => {
|
||||||
console.log(val,'滚动加载');
|
list.value.forEach((item, index) => {
|
||||||
|
if(val == item.title && item.tableList.length < item.total) {
|
||||||
|
item.page++;
|
||||||
|
let params = { sszt: item.dm, pageNum: item.page, pageSize: 20, };
|
||||||
|
qcckPost(params, '/mosty-gsxt/qbcj/selectPage').then(res => {
|
||||||
|
let arr = res.records || [];
|
||||||
|
list.value[index].tableList = item.page == 1 ? arr : [...list.value[index].tableList, ...arr];
|
||||||
|
list.value[index].total = res.total;
|
||||||
|
item.keyCount++;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// 表格高度计算
|
// 表格高度计算
|
||||||
const tabHeightFn = () => {
|
const tabHeightFn = () => {
|
||||||
pageData.boxHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
pageData.boxHeight = window.innerHeight - searchBox.value.offsetHeight - 250
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
pageData.tableHeight = listBoxRef.value[0].offsetHeight - 40;
|
pageData.tableHeight = listBoxRef.value[0].offsetHeight - 40;
|
||||||
});
|
});
|
||||||
@ -172,6 +173,26 @@ const tabHeightFn = () => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleGetList = () => {
|
||||||
|
list.value.forEach((item, index) => {
|
||||||
|
let params = { sszt: item.dm, pageNum: 1, pageSize: 20 };
|
||||||
|
qcckGet(params, '/mosty-gsxt/qbcj/selectPage').then(res => {
|
||||||
|
list.value[index].tableList = res.records || [];
|
||||||
|
list.value[index].total = res.total;
|
||||||
|
item.keyCount++;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
watch(()=>D_BZ_SSZT.value, (val) => {
|
||||||
|
let zdlist = val || [];
|
||||||
|
list.value = zdlist.map(v => ({ title: v.zdmc,dm:v.dm,keyCount:0, tableList: [],page:1,total:0 }));
|
||||||
|
if(list.value.length > 0) handleGetList();
|
||||||
|
setTimeout(() => {
|
||||||
|
tabHeightFn();
|
||||||
|
}, 400);
|
||||||
|
}, { immediate: true });
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -299,9 +320,6 @@ const tabHeightFn = () => {
|
|||||||
margin-bottom:0 !important;
|
margin-bottom:0 !important;
|
||||||
padding: 2px !important;
|
padding: 2px !important;
|
||||||
}
|
}
|
||||||
::v-deep .pageSearch .box .item {
|
|
||||||
width: 16%;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep .el-table .table_blue_row {
|
::v-deep .el-table .table_blue_row {
|
||||||
background: #fff !important;
|
background: #fff !important;
|
||||||
|
@ -87,7 +87,7 @@ const pageData = reactive({
|
|||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
pageCurrent: 1
|
pageCurrent: 1
|
||||||
}, //分页
|
}, //分页
|
||||||
controlsWidth: 160, //操作栏宽度
|
controlsWidth: 150, //操作栏宽度
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "标签名称", prop: "bqMc" },
|
{ label: "标签名称", prop: "bqMc" },
|
||||||
{ label: "标签代码", prop: "bqDm" },
|
{ label: "标签代码", prop: "bqDm" },
|
||||||
|
Reference in New Issue
Block a user