feat✨: 1.对接全域布控下菜单的增删查改功能,以及用户操作流程优化。2.对接人力情报采集系统采集流转列表,搜索,新增接口
This commit is contained in:
@ -55,19 +55,26 @@ const init = async (type, row) => {
|
||||
approvalInfoRef.value?.resetForm?.();
|
||||
}
|
||||
};
|
||||
|
||||
const cleanObj = (obj) => {
|
||||
if (!obj) return {};
|
||||
return Object.fromEntries(
|
||||
Object.entries(obj).filter(([_, v]) => v !== null && v !== undefined)
|
||||
);
|
||||
};
|
||||
const submit = async () => {
|
||||
try {
|
||||
|
||||
// 1. 分别获取各子组件数据
|
||||
const controlInfoData = controlInfoRef.value?.getFormData?.();
|
||||
const controlAreaData = controlAreaRef.value?.getFormData?.();
|
||||
const approvalInfoData = approvalInfoRef.value?.getFormData?.();
|
||||
// 2. 合并数据
|
||||
const formData = {
|
||||
...controlInfoData.formData,
|
||||
...controlAreaData.formData,
|
||||
...approvalInfoData.formData
|
||||
...cleanObj(controlInfoData?.formData),
|
||||
...cleanObj(controlAreaData?.formData),
|
||||
...cleanObj(approvalInfoData?.formData)
|
||||
};
|
||||
console.log("合并数据:", formData);
|
||||
// 根据是否有 id 判断是新增还是编辑
|
||||
const url = formData.id
|
||||
? "/mosty-gsxt/tbGsxtBk/update" // 编辑接口
|
||||
|
@ -41,7 +41,11 @@
|
||||
>
|
||||
<!-- 自定义插槽(人员标签) -->
|
||||
<template #czJsdwdm>
|
||||
<el-select v-model="listQuery.czJsdwdm" placeholder="请选择处置接收单位" style="width: 240px">
|
||||
<el-select
|
||||
v-model="listQuery.czJsdwdm"
|
||||
placeholder="请选择处置接收单位"
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in deptList"
|
||||
:key="item.value"
|
||||
@ -73,6 +77,9 @@
|
||||
{{ item.fqr }}
|
||||
</div>
|
||||
<div class="description-item">{{ item.fqbm }}</div>
|
||||
<div class="step-description" v-if="item.description">
|
||||
{{ item.description }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -119,12 +126,12 @@ const formData = ref([
|
||||
type: "select",
|
||||
options: D_GS_BK_CZJSDWLX
|
||||
},
|
||||
{
|
||||
label: "提交方式",
|
||||
prop: "bkTjfs",
|
||||
type: "radio",
|
||||
options: D_GS_BK_TJFS
|
||||
},
|
||||
// {
|
||||
// label: "提交方式",
|
||||
// prop: "bkTjfs",
|
||||
// type: "radio",
|
||||
// options: D_GS_BK_TJFS
|
||||
// },
|
||||
{
|
||||
label: "签收时间",
|
||||
prop: "bkSjQs",
|
||||
@ -133,13 +140,27 @@ const formData = ref([
|
||||
]);
|
||||
const rules = reactive({
|
||||
bkBt: [{ required: true, message: "请选择处置接收单位", trigger: "blur" }],
|
||||
bkObj: [{ required: true, message: "请选择提交方式", trigger: "blur" }],
|
||||
// bkObj: [{ required: true, message: "请选择提交方式", trigger: "blur" }],
|
||||
bkSjQs: [{ required: true, message: "请选择签收时间", trigger: "change" }]
|
||||
});
|
||||
const step = ref([
|
||||
{ fqr: "发起人", fqbm: "发起部门", title: "发起申请", default: true },
|
||||
{ fqr: "发起人", fqbm: "发起部门", title: "审核确认", default: false },
|
||||
{ fqr: "发起人", fqbm: "发起部门", title: "审批确认", default: false }
|
||||
{
|
||||
fqr: "发起人",
|
||||
fqbm: "发起部门",
|
||||
title: "审核确认",
|
||||
default: false,
|
||||
status: "", // 动态设置状态
|
||||
description: "" // 动态设置描述(如不通过原因)
|
||||
},
|
||||
{
|
||||
fqr: "发起人",
|
||||
fqbm: "发起部门",
|
||||
title: "审批确认",
|
||||
default: false,
|
||||
status: "", // 动态设置状态
|
||||
description: "" // 动态设置描述(如不通过原因)
|
||||
}
|
||||
]);
|
||||
|
||||
onMounted(() => {
|
||||
@ -214,14 +235,46 @@ const setFormData = (data) => {
|
||||
{
|
||||
fqr: data.bkshrXm || "系统管理", // 审核人姓名
|
||||
fqbm: data.bkshrSsbmmc || "西藏", // 审核部门
|
||||
title: "审核确认"
|
||||
title: "审核确认",
|
||||
status: "", // 动态设置状态
|
||||
description: "" // 动态设置描述(如不通过原因)
|
||||
},
|
||||
{
|
||||
fqr: data.bksprXm || "测试", // 审批人姓名
|
||||
fqbm: data.bksprSsbmmc || "西藏", // 审批部门
|
||||
title: "审批确认"
|
||||
title: "审批确认",
|
||||
status: "", // 动态设置状态
|
||||
description: "" // 动态设置描述(如不通过原因)
|
||||
}
|
||||
];
|
||||
// 根据 bkZt 的值设置不同的状态
|
||||
switch (data.bkZt) {
|
||||
case "02": // 审核中
|
||||
step.value[1].status = "process";
|
||||
step.value[1].description = "审核中";
|
||||
break;
|
||||
case "03": // 审核不通过
|
||||
step.value[1].status = "error";
|
||||
step.value[1].description = `审核不通过(原因:${data.bkshBtgyy})`;
|
||||
break;
|
||||
case "04": // 审批中
|
||||
step.value[1].status = "finish"; // 审核已完成
|
||||
step.value[2].status = "process"; // 审批中
|
||||
step.value[2].description = "审批中";
|
||||
break;
|
||||
case "05": // 审批通过
|
||||
step.value[1].status = "finish"; // 审核已完成
|
||||
step.value[2].status = "finish"; // 审批已完成
|
||||
step.value[2].description = "审批通过";
|
||||
break;
|
||||
case "06": // 审批不通过
|
||||
step.value[1].status = "finish"; // 审核已完成
|
||||
step.value[2].status = "error"; // 审批不通过
|
||||
step.value[2].description = `审批不通过(原因:${data.bkshBtgyy})`;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
// 3. 暴露方法给父组件
|
||||
@ -240,7 +293,7 @@ defineExpose({
|
||||
.desc {
|
||||
margin: 5px;
|
||||
color: #929090;
|
||||
width: 350px;
|
||||
// width: 350px;
|
||||
}
|
||||
.icon {
|
||||
// position: absolute;
|
||||
|
@ -25,6 +25,14 @@
|
||||
</MyTable>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 布控范围-->
|
||||
<template #bkSjSx>
|
||||
{{
|
||||
listQuery?.bkSjKs && listQuery?.bkSjJs
|
||||
? calculateDays(listQuery.bkSjKs, listQuery.bkSjJs)
|
||||
: "--"
|
||||
}}
|
||||
</template>
|
||||
</FormMessage>
|
||||
|
||||
<!-- 列表弹窗 -->
|
||||
@ -152,7 +160,7 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||
import { qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||
import DialogList from "@/views/backOfficeSystem/IntelligentControl/myControl/components/ui/dialogList.vue";
|
||||
|
||||
import moment from "moment";
|
||||
const { D_GS_BK_CZYQ, D_GS_BK_CZJSDWLX, D_GS_BK_DJ, D_GS_BK_YZ, D_GS_BK_SJLX } =
|
||||
proxy.$dict(
|
||||
"D_GS_BK_CZYQ",
|
||||
@ -211,7 +219,7 @@ const formData = ref([
|
||||
{
|
||||
label: "布控失效时间",
|
||||
prop: "bkSjSx",
|
||||
type: "datetime"
|
||||
type: "slot"
|
||||
},
|
||||
|
||||
{
|
||||
@ -258,13 +266,24 @@ const openDialog = (type) => {
|
||||
chooseShow.value = true;
|
||||
chooseType.value = type;
|
||||
chooseTitle.value = type == "01" ? "请选择布控范围" : "请选择人员标签";
|
||||
console.log(tableDate.bkfwList, "tableDate.bkfwList");
|
||||
roleIds.value =
|
||||
type == "01"
|
||||
? tableDate.bkfwList.map((item) => item.id)
|
||||
: tableDate.rybqList.map((item) => item.id);
|
||||
};
|
||||
|
||||
const calculateDays = (start, end) => {
|
||||
if (!start || !end) return null; // 如果参数为空,返回 null
|
||||
const startDate = new Date(start);
|
||||
const endDate = new Date(end);
|
||||
|
||||
// 检查日期是否有效
|
||||
if (isNaN(startDate) || isNaN(endDate)) return null;
|
||||
|
||||
const diffInDays = (endDate - startDate) / (24 * 60 * 60 * 1000); // 计算天数差
|
||||
return diffInDays.toFixed(1); // 保留1位小数(返回字符串,如 "6.3")
|
||||
};
|
||||
|
||||
// 选择数据
|
||||
const chooseDate = (data) => {
|
||||
if (chooseType.value == "01") {
|
||||
@ -281,6 +300,10 @@ const handleFileChange = (file, fileList) => {
|
||||
|
||||
// 2. 暴露获取数据的方法
|
||||
const getFormData = () => {
|
||||
if (listQuery.value.bkSjLx == "01") {
|
||||
listQuery.value.bkSjSx = calculateDays(listQuery.value.bkSjKs, listQuery.value.bkSjJs);
|
||||
}
|
||||
console.log(listQuery.value, "listQuery.value",'数据');
|
||||
// 可以在这里添加验证逻辑
|
||||
return {
|
||||
formData: listQuery.value
|
||||
@ -288,8 +311,8 @@ const getFormData = () => {
|
||||
};
|
||||
// 接收父组件传入的数据并回显
|
||||
const setFormData = (data) => {
|
||||
tableDate.bkfwList = data.bkfwList;
|
||||
tableDate.rybqList = data.rybqList;
|
||||
tableDate.bkfwList = data.bkfwList ?? [];
|
||||
tableDate.rybqList = data.rybqList ?? [];
|
||||
listQuery.value = {
|
||||
...data // 假设 data 包含所有需要的字段
|
||||
};
|
||||
|
@ -227,7 +227,7 @@ const formDataModel = ref([
|
||||
{ label: "手机号", prop: "rySjhm", type: "input", width: "45%" },
|
||||
{ label: "同步上传", prop: "qtTbsc", type: "switch" },
|
||||
{ label: "车牌号", prop: "clCph", type: "input", width: "45%" },
|
||||
{ label: "车号", prop: "clCjh", type: "input", width: "45%" },
|
||||
{ label: "车架号", prop: "clCjh", type: "input", width: "45%" },
|
||||
{ label: "特许证号", prop: "qtTxzh", type: "input", width: "45%" },
|
||||
{
|
||||
label: "布控类型",
|
||||
@ -309,7 +309,7 @@ const pageData = reactive({
|
||||
{ label: "手机号", prop: "rySjhm" },
|
||||
{ label: "同步上传", prop: "qtTbsc", showSolt: true },
|
||||
{ label: "车牌号", prop: "clCph" },
|
||||
{ label: "车号", prop: "clCjh" },
|
||||
{ label: "车架号", prop: "clCjh" },
|
||||
{ label: "特许证号", prop: "qtTxzh" },
|
||||
{ label: "布控类型", prop: "bkLx", showSolt: true },
|
||||
{ label: "人员标签", prop: "" }
|
||||
@ -323,7 +323,7 @@ const formData = ref([
|
||||
},
|
||||
|
||||
{
|
||||
label: "所属警钟",
|
||||
label: "所属警种",
|
||||
prop: "bkSsjz",
|
||||
type: "select",
|
||||
options: D_GS_BK_SSJZ
|
||||
@ -353,6 +353,7 @@ const getFormData = () => {
|
||||
};
|
||||
// 打开弹窗
|
||||
const openDialog = (type) => {
|
||||
console.log(tableDate.yjbqList, tableDate.rybqList);
|
||||
chooseShow.value = true;
|
||||
chooseType.value = type;
|
||||
chooseTitle.value = type == "01" ? "请选择预警标签模型" : "请选择人员标签";
|
||||
@ -401,7 +402,6 @@ const submitForm = () => {
|
||||
clCjh: validData.clCjh,
|
||||
qtTxzh: validData.qtTxzh,
|
||||
bkLx: validData.bkLx,
|
||||
bkLx: validData.bkLx,
|
||||
fjZp: validData.fjZp
|
||||
};
|
||||
} else {
|
||||
@ -442,7 +442,7 @@ const submitForm = () => {
|
||||
|
||||
// 接收父组件传入的数据并回显
|
||||
const setFormData = (data) => {
|
||||
tableDate.yjbqList = data.yjbqList;
|
||||
tableDate.yjbqList = data.yjbqList ?? [];
|
||||
listQuery.value = {
|
||||
...data // 假设 data 包含所有需要的字段
|
||||
};
|
||||
|
Reference in New Issue
Block a user