更新页面
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@ -3312,7 +3312,7 @@
|
||||
},
|
||||
"node_modules/@wangeditor/editor-for-vue": {
|
||||
"version": "5.1.12",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
|
||||
"resolved": "https://registry.npmjs.org/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
|
||||
"integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==",
|
||||
"peerDependencies": {
|
||||
"@wangeditor/editor": ">=5.1.0",
|
||||
@ -22847,7 +22847,7 @@
|
||||
},
|
||||
"@wangeditor/editor-for-vue": {
|
||||
"version": "5.1.12",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
|
||||
"resolved": "https://registry.npmjs.org/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
|
||||
"integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==",
|
||||
"requires": {}
|
||||
},
|
||||
|
@ -60,8 +60,6 @@ const filesList = ref({});
|
||||
const baseUrl = ref('')//上传地址
|
||||
const modelUrl = ref('')//下载模板地址
|
||||
watch(()=>props.lx,(val)=>{
|
||||
let url = ''
|
||||
let moyRL = ''
|
||||
switch (val) {
|
||||
case 'policeF':
|
||||
baseUrl.value = '/mosty-api/mosty-jcgl/tbJcglXfll/importData'
|
||||
@ -79,6 +77,10 @@ watch(()=>props.lx,(val)=>{
|
||||
baseUrl.value = '/mosty-api/mosty-jcgl/tpjcglZnzb/importData'
|
||||
modelUrl.value = '/mosty-api/mosty-jcgl/tpjcglZnzb/importTemplate'
|
||||
break;
|
||||
case 'fjnr':
|
||||
baseUrl.value = '/mosty-api/mosty-gsxt/tbGsxtRqfjNr/importFxnr'
|
||||
// modelUrl.value = '/mosty-api/mosty-jcgl/tpjcglZnzb/importTemplate'
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -126,8 +128,8 @@ function onComfirm() {
|
||||
let formData = new FormData();
|
||||
formData.append("file", file);
|
||||
formData.append("updateSupport", isSelect.value);
|
||||
axios.post(baseUrl.value, formData, {"Content-type": "multipart/form-data"})
|
||||
.then((res) => {
|
||||
let token = localStorage.getItem('token')
|
||||
axios.post(baseUrl.value, formData, {"Content-type": "multipart/form-data",headers:{"Authorization": `${token}`}}).then((res) => {
|
||||
if (res.status == 200) {
|
||||
let { data, message, code } = res.data;
|
||||
if (code == -1) ElMessage({ type:'warning', message:message, dangerouslyUseHTMLString:true });
|
||||
@ -174,6 +176,6 @@ function onComfirm() {
|
||||
</style>
|
||||
<style>
|
||||
.el-upload-list__item-name {
|
||||
color: #fff;
|
||||
color: #0072ff;
|
||||
}
|
||||
</style>
|
@ -101,6 +101,7 @@ export default {
|
||||
this.commit("user/setUserName", data.userName);
|
||||
setItem('isOatuh', 0)
|
||||
setItem("USERNAME", data.userName);
|
||||
setItem("roleList", data.roleList);
|
||||
setItem("SFRH", data.sfrh);
|
||||
setItem("USERID", data.userId);
|
||||
setItem("PermissionsInfo", data.permissionsInfo);
|
||||
|
@ -1,188 +0,0 @@
|
||||
<template>
|
||||
<div class="dialog" v-if="dialogForm">
|
||||
<div class="head_box">
|
||||
<span class="title">重点人员深度发掘</span>
|
||||
<div>
|
||||
<el-button size="small" @click="close">关闭</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cntinfo">
|
||||
<el-form :model="listQuery" :label-width="120" label-position="right">
|
||||
<div class="section-title">管理信息</div>
|
||||
<div class="form-row">
|
||||
<el-form-item label="管理单位">
|
||||
<el-input v-model="listQuery.glDw" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="管辖区域">
|
||||
<el-input v-model="listQuery.gxqy" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人">
|
||||
<el-input v-model="listQuery.lxr" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系方式">
|
||||
<el-input v-model="listQuery.lxfs" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<el-form-item label="管理事由" class="full-width">
|
||||
<el-input type="textarea" v-model="listQuery.glSy" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<div class="section-title">申请信息</div>
|
||||
<div class="form-row">
|
||||
<el-form-item label="申请单位">
|
||||
<el-input v-model="listQuery.sqDw" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="申请人">
|
||||
<el-input v-model="listQuery.sqr" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核单位">
|
||||
<el-input v-model="listQuery.shdw" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核人">
|
||||
<el-input v-model="listQuery.shr" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<el-form-item label="审批单位">
|
||||
<el-input v-model="listQuery.sqDwDz" placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="接受单位类型" class="full-width">
|
||||
<el-select v-model="listQuery.jsdwlx">
|
||||
<el-options :label="1">是</el-options>
|
||||
<el-options :label="0">否</el-options>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否同意" class="full-width">
|
||||
<el-select v-model="listQuery.sfty">
|
||||
<el-options :label="1">是</el-options>
|
||||
<el-options :label="0">否</el-options>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="反馈时间" class="full-width">
|
||||
<el-date-picker
|
||||
v-model="listQuery.fksj"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const dialogForm = ref(false);
|
||||
const listQuery = ref({
|
||||
glDw: '',
|
||||
glQy: '',
|
||||
lxr: '',
|
||||
lxfs: '',
|
||||
glSy: '',
|
||||
sqDw: '',
|
||||
sqr: '',
|
||||
lxdz: '',
|
||||
shr: '',
|
||||
sqDwDz: '',
|
||||
shr2: '',
|
||||
sfty: 1,
|
||||
fksj: '',
|
||||
files: []
|
||||
});
|
||||
|
||||
// 初始化数据
|
||||
const init = (type, row) => {
|
||||
dialogForm.value = true;
|
||||
if (row) {
|
||||
Object.assign(listQuery.value, row);
|
||||
}
|
||||
};
|
||||
|
||||
const close = () => {
|
||||
dialogForm.value = false;
|
||||
listQuery.value = {
|
||||
glDw: '',
|
||||
glQy: '',
|
||||
lxr: '',
|
||||
lxfs: '',
|
||||
glSy: '',
|
||||
sqDw: '',
|
||||
sqr: '',
|
||||
lxdz: '',
|
||||
shr: '',
|
||||
sqDwDz: '',
|
||||
shr2: '',
|
||||
sfty: 1,
|
||||
fksj: '',
|
||||
files: []
|
||||
};
|
||||
};
|
||||
|
||||
const handleFileChange = (file) => {
|
||||
listQuery.value.files.push(file);
|
||||
};
|
||||
|
||||
defineExpose({init});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dialog {
|
||||
padding: 20px;
|
||||
|
||||
.head_box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.cntinfo {
|
||||
height: calc(100% - 70px);
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
margin: 20px 0 15px;
|
||||
padding-left: 10px;
|
||||
border-left: 4px solid #409EFF;
|
||||
}
|
||||
|
||||
.form-row {
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
.el-form-item {
|
||||
flex: 1 0 0;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.full-width {
|
||||
flex: 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.upload-demo {
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
border: 1px dashed #d9d9d9;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
|
||||
.el-upload__tip {
|
||||
margin-top: 10px;
|
||||
color: #909399;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
@ -1,28 +1,11 @@
|
||||
<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>
|
||||
<PageTitle title="重点人员深度发掘"></PageTitle>
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
<div ref="searchBox">
|
||||
<Search
|
||||
:searchArr="searchConfiger"
|
||||
@submit="onSearch"
|
||||
:key="pageData.keyCount"
|
||||
>
|
||||
<template #defaultSlot>
|
||||
<div class="checkbox-group">
|
||||
<el-checkbox v-model="queryFrom.myNote">我的笔记</el-checkbox>
|
||||
<el-checkbox v-model="queryFrom.myCheck">我的审核</el-checkbox>
|
||||
<el-checkbox v-model="queryFrom.myApprove">我的审批</el-checkbox>
|
||||
</div>
|
||||
</template>
|
||||
</Search>
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="tabBox">
|
||||
@ -33,23 +16,10 @@
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData"
|
||||
>
|
||||
<!-- 基础信息 -->
|
||||
<!-- <template #basicInfo="{ row }">
|
||||
<div class="basic-info">
|
||||
<div class="avatar">
|
||||
<el-image :src="row.avatar" fit="cover"></el-image>
|
||||
</div>
|
||||
<div class="info-list">
|
||||
<div>姓名:{{ row.name }}</div>
|
||||
<div>性别:{{ row.gender }}</div>
|
||||
<div>年龄:{{ row.age }}</div>
|
||||
<div>身份证号:{{ row.idCard }}</div>
|
||||
<div>出生日期:{{ row.birthDate }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</template> -->
|
||||
<template #bkzt="{ row }">
|
||||
<DictTag :tag="false" :value="row.bkzt" :options="D_BZ_RCBKZT" />
|
||||
</template>
|
||||
<template #fxDj="{ row }">
|
||||
<DictTag :tag="false" :value="row.fxDj" :options="D_GS_RQFJ_FXDJ" />
|
||||
</template>
|
||||
@ -68,18 +38,18 @@
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<div class="control-buttons">
|
||||
<el-button type="primary" size="small" @click="handleDetail(row)"
|
||||
<el-button type="primary" v-if="roleList.includes('BK_SH_RY')" size="small" @click="handleDetail(row,'审核')"
|
||||
>审核</el-button
|
||||
>
|
||||
<el-button type="info" size="small" @click="handleApprove(row)"
|
||||
<!-- <el-button type="info" size="small" @click="handleDetail(row,'审批')"
|
||||
>审批</el-button
|
||||
>
|
||||
<el-button type="warning" size="small" @click="handleDelete(row)"
|
||||
<el-button type="warning" size="small" @click="handleDetail(row,'去除')"
|
||||
>去除</el-button
|
||||
>
|
||||
<el-button type="danger" size="small" @click="handleBlacklist(row)"
|
||||
<el-button type="danger" size="small" @click="handleDetail(row,'拉黑')"
|
||||
>拉黑</el-button
|
||||
>
|
||||
>-->
|
||||
</div>
|
||||
</template>
|
||||
</MyTable>
|
||||
@ -93,28 +63,35 @@
|
||||
}"
|
||||
></Pages>
|
||||
</div>
|
||||
<!-- 详情 -->
|
||||
<DetailForm ref="detailDiloag" />
|
||||
<Model v-model="isShow" :type="chooselx" :ids="ids" @change="getList" :dic="{D_BZ_RCSHZT}"></Model>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ElMessage } from "element-plus";
|
||||
import Model from "./model.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 DetailForm from "./components/detailForm.vue";
|
||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_GS_RQFJ_LX, D_GS_RQFJ_FXDJ, D_BZ_SF, D_GS_RQFJ_FXLB } = proxy.$dict(
|
||||
"D_GS_RQFJ_LX",
|
||||
"D_GS_RQFJ_FXDJ",
|
||||
"D_BZ_SF",
|
||||
"D_GS_RQFJ_FXLB"
|
||||
);
|
||||
const detailDiloag = ref();
|
||||
const { D_BZ_RCSHZT,D_BZ_RCBKZT, D_GS_RQFJ_LX, D_GS_RQFJ_FXDJ, D_BZ_SF, D_GS_RQFJ_FXLB } =
|
||||
proxy.$dict(
|
||||
"D_BZ_RCSHZT",
|
||||
"D_BZ_RCBKZT",
|
||||
"D_GS_RQFJ_LX",
|
||||
"D_GS_RQFJ_FXDJ",
|
||||
"D_BZ_SF",
|
||||
"D_GS_RQFJ_FXLB"
|
||||
);
|
||||
|
||||
const chooselx = ref('')
|
||||
const isShow = ref(false)
|
||||
const ids = ref([])
|
||||
|
||||
const searchBox = ref(); //搜索框
|
||||
|
||||
const searchConfiger = ref([
|
||||
@ -147,7 +124,7 @@ const pageData = reactive({
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "checkbox",
|
||||
showSelectType: "null",
|
||||
loading: false
|
||||
},
|
||||
total: 0,
|
||||
@ -155,13 +132,9 @@ const pageData = reactive({
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
},
|
||||
controlsWidth: 300,
|
||||
// controlsWidth: 300,
|
||||
tableColumn: [
|
||||
{ label: "姓名", prop: "ryXm" },
|
||||
{ label: "英文姓名", prop: "ryXmYw" },
|
||||
{ label: "别名", prop: "ryBm" },
|
||||
{ label: "网名", prop: "ryWm" },
|
||||
{ label: "绰号", prop: "ryCh" },
|
||||
{ label: "手机号码", prop: "rySjhm" },
|
||||
{ label: "身份证号码", prop: "rySfzh" },
|
||||
{ label: "户籍地址", prop: "ryHjdz" },
|
||||
@ -170,6 +143,7 @@ const pageData = reactive({
|
||||
{ label: "银行卡号", prop: "ryYhkh" },
|
||||
{ label: "附件照片", prop: "ryFjZp" },
|
||||
{ label: "管辖单位", prop: "gxDwDm" },
|
||||
{ label: "布控状态", prop: "bkzt", showSolt: true },
|
||||
{ label: "风险等级", prop: "fxDj", showSolt: true },
|
||||
{ label: "风险类别", prop: "fxLb", showSolt: true },
|
||||
{ label: "是否关注", prop: "sfGz", showSolt: true },
|
||||
@ -177,6 +151,7 @@ const pageData = reactive({
|
||||
{ label: "是否转重点人员", prop: "sfZzdry", showSolt: true }
|
||||
]
|
||||
});
|
||||
const roleList = reactive(JSON.parse(localStorage.getItem('roleList')) || [])
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
@ -203,44 +178,32 @@ const changeSize = (val) => {
|
||||
// 获取列表
|
||||
const getList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||
qcckGet(data, "/mosty-gsxt/tbGsxtRqfjRy/selectPage")
|
||||
.then((res) => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total;
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
let data = { sfZbkry: 1, ...pageData.pageConfiger, ...queryFrom.value };
|
||||
qcckGet(data, "/mosty-gsxt/tbGsxtRqfjRy/selectPage").then((res) => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total;
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
|
||||
// 操作按钮处理函数
|
||||
const handleDetail = (row) => {
|
||||
detailDiloag.value.init("detail", row);
|
||||
};
|
||||
|
||||
// 详情
|
||||
const addEdit = (type, row) => {
|
||||
detailDiloag.value.init(type, row);
|
||||
};
|
||||
|
||||
const handleApprove = (row) => {
|
||||
detailDiloag.value.init("approve", row);
|
||||
};
|
||||
|
||||
const handleDelete = (row) => {
|
||||
// 实现删除逻辑
|
||||
};
|
||||
|
||||
const handleBlacklist = (row) => {
|
||||
// 实现拉黑逻辑
|
||||
};
|
||||
|
||||
// 处理数据
|
||||
const handleDetail = (val,type) =>{
|
||||
chooselx.value = type;
|
||||
ids.value = [val.id];
|
||||
switch(type){
|
||||
case '审核':
|
||||
if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据");
|
||||
isShow.value = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight =
|
||||
window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||
window.onresize = function () {
|
||||
tabHeightFn();
|
||||
};
|
||||
|
@ -0,0 +1,64 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" title="等级切换" width="500px" @close="handleClose">
|
||||
<el-form :model="listQuery" ref="formValidate" :rules="rules">
|
||||
<el-form-item prop="bkshzt" label="审核" v-if="props.type == '审核'">
|
||||
<MOSTY.Select filterable v-model="listQuery.bkshzt" :dictEnum="props.dic.D_BZ_RCSHZT" width="100%" clearable placeholder="请选择是否布控"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="tc">
|
||||
<el-button @click="handleClose">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm">确定</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ElMessage } from "element-plus";
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import { ref ,defineProps,defineEmits, reactive} from 'vue';
|
||||
const props = defineProps({
|
||||
modelValue:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
ids:{
|
||||
type:Array,
|
||||
default:[]
|
||||
},
|
||||
type:String,
|
||||
dic:Object
|
||||
})
|
||||
|
||||
const emits = defineEmits(["update:modelValue",'getDepValue']);
|
||||
const formValidate = ref()
|
||||
const rules = reactive({
|
||||
bkshzt: [{ required: true, message: "请选择审核状态", trigger: "change" }],
|
||||
})
|
||||
const listQuery = ref({});
|
||||
|
||||
const submitForm = () =>{
|
||||
formValidate.value.validate((valid) => {
|
||||
if (!valid) return false;
|
||||
let params = { ids:props.ids, ...listQuery.value }
|
||||
let url = ''
|
||||
if( props.type == '审核') url = '/mosty-gsxt/tbGsxtRqfjRy/updateByBksh'
|
||||
qcckPost(params,url).then(res=>{
|
||||
ElMessage.success("成功");
|
||||
emits('update:modelValue',false)
|
||||
emits('change')
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
const handleClose = () =>{
|
||||
emits('update:modelValue',false)
|
||||
formValidate.value.resetFields();
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
@ -93,10 +93,6 @@ const pageData = reactive({
|
||||
tableColumn: [
|
||||
{ label: "管辖单位", prop: "gxDwDm", showSolt: true, width: 200 },
|
||||
{ label: "姓名", prop: "ryXm", showSolt: true, width: 130 },
|
||||
{ label: "英文姓名", prop: "ryXmYw", showSolt: true, width: 130 },
|
||||
{ label: "别名", prop: "ryBm", showSolt: true, width: 130 },
|
||||
{ label: "网名", prop: "ryWm", showSolt: true, width: 130 },
|
||||
{ label: "绰号", prop: "ryCh", showSolt: true, width: 130 },
|
||||
{ label: "手机号码", prop: "rySjhm", showSolt: true, width: 130 },
|
||||
{ label: "身份证号码", prop: "rySfzh", showSolt: true, width: 130 },
|
||||
{ label: "户籍地址", prop: "ryHjdz", showSolt: true, width: 130 },
|
||||
|
@ -13,7 +13,7 @@
|
||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||
<span style="vertical-align: middle" @click="handleData('add', '')" >新增</span>
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" @click="importData">
|
||||
<el-button type="primary" size="small" @click="isImport = true">
|
||||
<span style="vertical-align: middle">导入内容</span>
|
||||
</el-button>
|
||||
<el-button type="danger" size="small" @click="exportData">
|
||||
@ -59,6 +59,11 @@
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseDataBottom"
|
||||
>
|
||||
<template #bqList="{ row }">
|
||||
<div v-if="row.bqList">
|
||||
<el-tag v-for="(it,idx) in row.bqList" :key="idx">{{ it.bqMc }}、</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
<template #fxDj="{ row }">
|
||||
<DictTag
|
||||
:tag="false"
|
||||
@ -101,18 +106,20 @@
|
||||
<!-- 弹窗智能分析 -->
|
||||
<IntelligentParsing :tableData="pageData.tableData" ref="IntelligentParsingRef" @upadate="getModelList" />
|
||||
<addForm ref="addFormDiloag" @onSearch="onSearch" />
|
||||
<Jbbg v-model="isShow" :type="chooselx" :ids="ids" @change="getModelList" :dic="{D_GS_RQFJ_FXDJ}"></Jbbg>
|
||||
<Model v-model="isShow" :type="chooselx" :ids="ids" @change="getModelList" :dic="{D_GS_RQFJ_FXDJ}"></Model>
|
||||
<Export :show="isImport" lx="fjnr" @closeImport="isImport = false" @handleImport="handleImport" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import Export from "@/components/export/index.vue";
|
||||
import CheckBox from "@/components/checkBox/index.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 Jbbg from "./components/model.vue";
|
||||
import Model from "./components/model.vue";
|
||||
import IntelligentParsing from "./components/IntelligentParsing.vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
@ -123,6 +130,7 @@ const searchConfiger = ref([
|
||||
{ label: "管辖部门", prop: "ssbm", placeholder: "请选择管辖部门", showType: "department" },
|
||||
{ label: "是否关注", prop: "sfgz", placeholder: "请选择是否关注", showType: "select", options:D_BZ_SF },
|
||||
]);
|
||||
const isImport = ref(false)
|
||||
const checkData = reactive({
|
||||
hasChoose: ["警情"],
|
||||
list: ["警情","人力情报","线索","民警处置文本", "交通事故"],
|
||||
@ -171,7 +179,9 @@ const pageData = reactive({
|
||||
{ label: "现住地址", prop: "ryXzdz" ,showOverflowTooltip:true},
|
||||
{ label: "附件照片", prop: "ryFjZp" ,showOverflowTooltip:true},
|
||||
{ label: "管辖单位", prop: "gxDwDm" ,showOverflowTooltip:true},
|
||||
{ label: "管控民警", prop: "gxMj" ,showOverflowTooltip:true},
|
||||
{ label: "责任部门", prop: "ssbm",showOverflowTooltip:true},
|
||||
{ label: "标签", prop: "bqList",showOverflowTooltip:true, showSolt: true },
|
||||
{ label: "风险等级", prop: "fxDj",showOverflowTooltip:true, showSolt: true },
|
||||
{ label: "风险类别", prop: "fxLb",showOverflowTooltip:true, showSolt: true },
|
||||
{ label: "是否关注", prop: "sfGz",showOverflowTooltip:true, showSolt: true },
|
||||
@ -197,7 +207,7 @@ const changeSize = (val) => {
|
||||
};
|
||||
|
||||
// 获取内容列表
|
||||
const getList = (val) => {
|
||||
const getList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
let data = { ...queryFrom.value };
|
||||
let url = "/mosty-gsxt/tbGsxtRqfjNr/selectPage";
|
||||
@ -212,8 +222,7 @@ const getList = (val) => {
|
||||
//获取模型识别列表
|
||||
const getModelList = (val) => {
|
||||
let data = { ...pageData.pageConfiger };
|
||||
let url = "/mosty-gsxt/tbGsxtRqfjRy/selectPage";
|
||||
qcckGet(data, url).then((res) => {
|
||||
qcckGet(data, "/mosty-gsxt/tbGsxtRqfjRy/selectPage").then((res) => {
|
||||
pageData.tableData2 = res.records || [];
|
||||
pageData.total = res.total;
|
||||
})
|
||||
@ -241,20 +250,27 @@ const chooseDataBottom = (val) =>{
|
||||
}
|
||||
|
||||
const chooseType = (val)=>{
|
||||
if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据");
|
||||
chooselx.value = val;
|
||||
switch(val){
|
||||
case '级别变更':
|
||||
case '警种变更':
|
||||
case '指定分配':
|
||||
case '添加标签':
|
||||
case '警种变更':
|
||||
case '指定分配':
|
||||
case '添加标签':
|
||||
if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据");
|
||||
isShow.value = true;
|
||||
break;
|
||||
case '导出':
|
||||
window.open('/mosty-api/mosty-gsxt/tbGsxtRqfjRy/exportRyfjFxjg');
|
||||
break;
|
||||
case '批量删除':
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const handleImport = (val) =>{
|
||||
getList()
|
||||
}
|
||||
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight2 = window.innerHeight - searchBox.value.offsetHeight - 650;
|
||||
window.onresize = function () { tabHeightFn(); };
|
||||
|
@ -26,7 +26,12 @@
|
||||
</MyTable>
|
||||
</div>
|
||||
<div style="background:#fff" class="mt10 pl10 pr10 pb10 pt10" >
|
||||
<div class="title">人员信息</div>
|
||||
<div class="flex align-center">
|
||||
<div class="title mr20">人员信息</div>
|
||||
<div class="mb13">
|
||||
<el-button size="small" v-for="it in btnsList" :key="it" @click="chooseType(it)"> {{ it }} </el-button>
|
||||
</div>
|
||||
</div>
|
||||
<MyTable
|
||||
:tableData="pageData.tableDataPeople"
|
||||
:tableColumn="pageData.tableColumnPeople"
|
||||
@ -34,7 +39,7 @@
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger1"
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData"
|
||||
@chooseData="chooseDataBottom"
|
||||
>
|
||||
<template #ryXm="{ row }">
|
||||
<div>姓名:{{ row.ryXm }} ;</div>
|
||||
@ -74,9 +79,12 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<Model v-model="isShow" :type="chooselx" :ids="ids" @change="getList" :dic="{D_BZ_SF}"></Model>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ElMessage,ElMessageBox } from "element-plus";
|
||||
import Model from "./model.vue";
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
import { ref, reactive, onMounted, getCurrentInstance } from "vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
@ -84,7 +92,13 @@ import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_GS_RQFJ_FXDJ, D_GS_RQFJ_FXLB } = proxy.$dict("D_GS_RQFJ_FXDJ","D_GS_RQFJ_FXLB"); //获取字典数据
|
||||
const {D_BZ_SF, D_GS_RQFJ_FXDJ, D_GS_RQFJ_FXLB } = proxy.$dict("D_BZ_SF","D_GS_RQFJ_FXDJ","D_GS_RQFJ_FXLB"); //获取字典数据
|
||||
const btnsList = reactive(['布控','是否关注','移交管控'])
|
||||
|
||||
const chooselx = ref('')
|
||||
const isShow = ref(false)
|
||||
const ids = ref([])
|
||||
|
||||
const pageData = reactive({
|
||||
tableData: [
|
||||
{
|
||||
@ -137,7 +151,7 @@ const pageData = reactive({
|
||||
},
|
||||
tableConfiger1: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
showSelectType: "checkBox",
|
||||
loading: false,
|
||||
haveControls:false
|
||||
},
|
||||
@ -260,6 +274,32 @@ const tabHeightFn = () => {
|
||||
};
|
||||
};
|
||||
|
||||
// 选择数据
|
||||
const chooseDataBottom = (val) =>{
|
||||
if(Array.isArray(val)) ids.value = val.map(item=>item.id);
|
||||
}
|
||||
|
||||
const chooseType = (val)=>{
|
||||
chooselx.value = val;
|
||||
switch(val){
|
||||
case '布控':
|
||||
if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据");
|
||||
ElMessageBox.confirm('是否确定布控?','Warning',{ confirmButtonText: 'OK', cancelButtonText: 'Cancel', type: 'warning' }).then(() => {
|
||||
let params = { ids:ids.value, sfbk:'1' }
|
||||
qcckPost(params,'/mosty-gsxt/tbGsxtRqfjRy/updateBySfbkpz').then(res=>{
|
||||
ElMessage.success("成功");
|
||||
getList()
|
||||
})
|
||||
}).catch(() => {
|
||||
ElMessage({ type: 'info', message: '取消' })
|
||||
})
|
||||
break;
|
||||
case '是否关注':
|
||||
case '移交管控':
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(()=>{
|
||||
tabHeightFn();
|
||||
getList()
|
||||
|
@ -0,0 +1,67 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" title="等级切换" width="500px" @close="handleClose">
|
||||
<el-form :model="listQuery" ref="formValidate" :rules="rules">
|
||||
<el-form-item prop="sfbk" label="是否布控" v-if="props.type == '布控'">
|
||||
<MOSTY.Select filterable v-model="listQuery.sfbk" :dictEnum="bkList" width="100%" clearable placeholder="请选择是否布控"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="tc">
|
||||
<el-button @click="handleClose">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm">确定</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ElMessage } from "element-plus";
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import { ref ,defineProps,defineEmits, reactive} from 'vue';
|
||||
const props = defineProps({
|
||||
modelValue:{
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
ids:{
|
||||
type:Array,
|
||||
default:[]
|
||||
},
|
||||
type:String,
|
||||
dic:Object
|
||||
})
|
||||
const bkList = reactive([
|
||||
{ label:'撤销申请布控',value:'0' },
|
||||
{ label:'申请布控',value:'1' },
|
||||
])
|
||||
const emits = defineEmits(["update:modelValue",'getDepValue']);
|
||||
const formValidate = ref()
|
||||
const rules = reactive({
|
||||
sfbk: [{ required: true, message: "请选择是布控", trigger: "change" }],
|
||||
})
|
||||
const listQuery = ref({});
|
||||
|
||||
const submitForm = () =>{
|
||||
formValidate.value.validate((valid) => {
|
||||
if (!valid) return false;
|
||||
let params = { ids:props.ids, ...listQuery.value }
|
||||
let url = ''
|
||||
if( props.type == '布控') url = '/mosty-gsxt/tbGsxtRqfjRy/updateBySfbkpz'
|
||||
qcckPost(params,url).then(res=>{
|
||||
ElMessage.success("成功");
|
||||
emits('update:modelValue',false)
|
||||
emits('change')
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
const handleClose = () =>{
|
||||
emits('update:modelValue',false)
|
||||
formValidate.value.resetFields();
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
@ -4,7 +4,7 @@ function resolve(dir) {
|
||||
return path.join(__dirname, dir);
|
||||
}
|
||||
|
||||
const serverHost = "http://192.168.31.233:8006"
|
||||
const serverHost = "http://192.168.1.98:8006"
|
||||
module.exports = {
|
||||
publicPath: "./",
|
||||
outputDir: "ylth",
|
||||
|
Reference in New Issue
Block a user