更新页面

This commit is contained in:
2025-07-03 21:15:39 +08:00
parent a72b8782bc
commit 29444fbdc2
11 changed files with 265 additions and 304 deletions

4
package-lock.json generated
View File

@ -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": {}
},

View File

@ -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>

View File

@ -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);

View File

@ -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>

View File

@ -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();
};

View File

@ -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>

View File

@ -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 },

View File

@ -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(); };

View File

@ -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 }} &nbsp;</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()

View File

@ -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>

View File

@ -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",