更新页面

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

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