!152 fix(bg,dq): 分管所领导选择组件改用按角色+密级查询

* fix(bg,dq): 分管所领导选择组件改用按角色+密级查询
* fix(bg,dq): 表单部门级领导字样统一改为负责人
This commit is contained in:
wsm
2026-08-13 06:08:55 +00:00
parent 9742faf892
commit 93a75b4319
16 changed files with 620 additions and 496 deletions
@@ -12,8 +12,6 @@
<a-input v-model:value="formData.taskTitle" placeholder="请输入督办标题" allow-clear /> <a-input v-model:value="formData.taskTitle" placeholder="请输入督办标题" allow-clear />
</a-form-item> </a-form-item>
<a-form-item v-if="deptOptions.length" label="被督办部门"> <a-form-item v-if="deptOptions.length" label="被督办部门">
<a-select <a-select
v-model:value="formData.deptIds" v-model:value="formData.deptIds"
@@ -47,11 +45,11 @@
</a-form-item> </a-form-item>
<template v-if="showSuoleaderFields"> <template v-if="showSuoleaderFields">
<a-form-item label="是否所办领导审批"> <a-form-item label="是否所办负责人审批">
<j-switch v-model:value="formData.isNeedAppro" /> <j-switch v-model:value="formData.isNeedAppro" />
</a-form-item> </a-form-item>
<a-form-item label="所办领导"> <a-form-item label="所办负责人">
<DeptRoleUserSelectRadioGroup <DeptRoleUserSelectRadioGroup
v-model:value="formData.supDeptleaderid" v-model:value="formData.supDeptleaderid"
:deptId="SUOBAN_DEPT_ID" :deptId="SUOBAN_DEPT_ID"
@@ -84,13 +82,11 @@
:getPopupContainer="(node) => node?.parentNode" :getPopupContainer="(node) => node?.parentNode"
/> />
</a-form-item> </a-form-item>
</template> </template>
<a-form-item label="审批意见"> <a-form-item label="审批意见">
<a-textarea v-model:value="formData.approvalOpinion" placeholder="请输入审批意见" :auto-size="{ minRows: 3, maxRows: 6 }" allow-clear /> <a-textarea v-model:value="formData.approvalOpinion" placeholder="请输入审批意见" :auto-size="{ minRows: 3, maxRows: 6 }" allow-clear />
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
@@ -106,7 +102,7 @@
import JDictSelectTag from '/src/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JDictSelectTag from '/src/components/Form/src/jeecg/components/JDictSelectTag.vue';
import JSwitch from '/src/components/Form/src/jeecg/components/JSwitch.vue'; import JSwitch from '/src/components/Form/src/jeecg/components/JSwitch.vue';
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue'; import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
import { SUOBAN_DEPT_ID, MEASURE_RES_LEADER_ROLE_ID } from '/@/constant/supervision'; import { SUOBAN_DEPT_ID, MEASURE_RES_LEADER_ROLE_ID } from '/@/constant/supervision';
import { useMessage } from '/src/hooks/web/useMessage'; import { useMessage } from '/src/hooks/web/useMessage';
interface ModalPayload { interface ModalPayload {
@@ -37,21 +37,16 @@ const modelValue = defineModel<string>('value', { default: '' });
const userList = ref<Array<{ username: string; realname: string }>>([]); const userList = ref<Array<{ username: string; realname: string }>>([]);
async function fetchUserList() { async function fetchUserList() {
if (!props.roleId) {
userList.value = [];
return;
}
try { try {
const res = await defHttp.get({ const params = {
url: '/sys/user/userRoleList', roleId: props.roleId,
params: { searchSecurityLevel: 5,
roleId: props.roleId, pageNo: 1,
pageNo: 1, pageSize: 999,
pageSize: 999, };
}, const res = await defHttp.get({ url: '/sys/user/queryUserRoleComponentData', params });
});
const records = res?.records || res?.result?.records || []; const records = res?.records || res?.result?.records || [];
userList.value = records; userList.value = records.sort((a, b) => (a.sortno ?? Infinity) - (b.sortno ?? Infinity));
} catch { } catch {
userList.value = []; userList.value = [];
} }
@@ -61,9 +56,12 @@ onMounted(fetchUserList);
watch( watch(
() => props.roleId, () => props.roleId,
() => { async () => {
modelValue.value = ''; await fetchUserList();
fetchUserList(); const current = modelValue.value;
if (current && !userList.value.some((u) => u.username === current)) {
modelValue.value = '';
}
}, },
); );
@@ -221,24 +221,24 @@ export const bgPartymatterFeedbackColumns: BasicColumn[] = [
// 高级查询数据 // 高级查询数据
export const superQuerySchema = { export const superQuerySchema = {
year: {title: '年份',order: 0,view: 'text', type: 'string',}, year: { title: '年份', order: 0, view: 'text', type: 'string' },
number: {title: '序号',order: 1,view: 'text', type: 'string',}, number: { title: '序号', order: 1, view: 'text', type: 'string' },
itemNumber: {title: '议题序号',order: 2,view: 'number', type: 'number',}, itemNumber: { title: '议题序号', order: 2, view: 'number', type: 'number' },
matterTime: {title: '会议时间',order: 3,view: 'date', type: 'string',}, matterTime: { title: '会议时间', order: 3, view: 'date', type: 'string' },
title: {title: '事项名称',order: 4,view: 'text', type: 'string',}, title: { title: '事项名称', order: 4, view: 'text', type: 'string' },
content: {title: '会议决议',order: 5,view: 'textarea', type: 'string',}, content: { title: '会议决议', order: 5, view: 'textarea', type: 'string' },
matterCode: {title: '事项目录编码',order: 6,view: 'text', type: 'string',}, matterCode: { title: '事项目录编码', order: 6, view: 'text', type: 'string' },
noticeNumber: {title: '抄告单编号',order: 7,view: 'text', type: 'string',}, noticeNumber: { title: '抄告单编号', order: 7, view: 'text', type: 'string' },
isImportant: {title: '是否为三重一大决策',order: 8,view: 'list', type: 'string', dictCode: 'yn',}, isImportant: { title: '是否为三重一大决策', order: 8, view: 'list', type: 'string', dictCode: 'yn' },
manageSuoleader: {title: '分管所领导',order: 9,view: 'sel_user', type: 'string',}, manageSuoleader: { title: '分管所领导', order: 9, view: 'sel_user', type: 'string' },
responDeptid: {title: '责任部门',order: 10,view: 'sel_depart', type: 'string',}, responDeptid: { title: '责任部门', order: 10, view: 'sel_depart', type: 'string' },
actualExect: {title: '实际执行情况',order: 11,view: 'text', type: 'string',}, actualExect: { title: '实际执行情况', order: 11, view: 'text', type: 'string' },
bpmStatus: {title: '完成状态',order: 12,view: 'text', type: 'string',}, bpmStatus: { title: '完成状态', order: 12, view: 'text', type: 'string' },
superviseCount: {title: '督办次数',order: 13,view: 'text', type: 'string',}, superviseCount: { title: '督办次数', order: 13, view: 'text', type: 'string' },
deadline: {title: '要求完成日期',order: 14,view: 'date', type: 'string',}, deadline: { title: '要求完成日期', order: 14, view: 'date', type: 'string' },
urgencyLevel: {title: '是否急件',order: 15,view: 'list', type: 'string', dictCode: 'yn',}, urgencyLevel: { title: '是否急件', order: 15, view: 'list', type: 'string', dictCode: 'yn' },
isNeedAppro: {title: '是否需要所办领导审批',order: 16,view: 'switch', type: 'string',}, isNeedAppro: { title: '是否需要所办负责人审批', order: 16, view: 'switch', type: 'string' },
supDeptleaderid: {title: '所办领导',order: 17,view: 'sel_user', type: 'string',}, supDeptleaderid: { title: '所办负责人', order: 17, view: 'sel_user', type: 'string' },
isNeedSuoleader: {title: '是否抄送所领导',order: 18,view: 'switch', type: 'string',}, isNeedSuoleader: { title: '是否抄送所领导', order: 18, view: 'switch', type: 'string' },
suoleaderid: {title: '抄送所领导',order: 19,view: 'sel_user', type: 'string',}, suoleaderid: { title: '抄送所领导', order: 19, view: 'sel_user', type: 'string' },
}; };
@@ -17,7 +17,7 @@
<template #label> <template #label>
<a-tooltip title="按分管所领导筛选">分管所领导</a-tooltip> <a-tooltip title="按分管所领导筛选">分管所领导</a-tooltip>
</template> </template>
<a-tooltip title="按分管所领导筛选"><DeptRoleUserSelectDropDown v-model:value="queryParam.manageSuoleader" :roleId="CHARGE_LEADER_ROLE_ID" placeholder="请选择分管所领导" allow-clear style="width: 100%" @change="searchQuery" /></a-tooltip> <a-tooltip title="按分管所领导筛选"><RoleUserSelectDropDown v-model:value="queryParam.manageSuoleader" :roleId="CHARGE_LEADER_ROLE_ID" placeholder="请选择分管所领导" allow-clear style="width: 100%" @change="searchQuery" /></a-tooltip>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="4" :lg="6" :md="8" :sm="12"> <a-col :xl="4" :lg="6" :md="8" :sm="12">
@@ -180,7 +180,7 @@
import { startProcessSchedules } from '/@/api/common/api'; import { startProcessSchedules } from '/@/api/common/api';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue'; import RoleUserSelectDropDown from '/@/components/semri/userComponent/RoleUserSelectDropDown.vue';
import { CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision'; import { CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
import { Tooltip } from 'ant-design-vue'; import { Tooltip } from 'ant-design-vue';
import Icon from '/@/components/Icon/index'; import Icon from '/@/components/Icon/index';
@@ -315,10 +315,10 @@
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const queryByIdUrl = '/bgpartymatter/bgPartymatter/queryById'; const queryByIdUrl = '/bgpartymatter/bgPartymatter/queryById';
const labelCol = { xs: { span: 24 }, sm: { span: 7 } }; const labelCol = { xs: { span: 24 }, sm: { span: 8 } };
const wrapperCol = { xs: { span: 24 }, sm: { span: 17 } }; const wrapperCol = { xs: { span: 24 }, sm: { span: 16 } };
const wideLabelCol = { xs: { span: 24 }, sm: { span: 3 } }; const wideLabelCol = { xs: { span: 24 }, sm: { span: 4 } };
const wideWrapperCol = { xs: { span: 24 }, sm: { span: 21 } }; const wideWrapperCol = { xs: { span: 24 }, sm: { span: 20 } };
// 流程变量区桌面端整体右移并缩短标签列,兼顾左侧留白与标签、控件间距。 // 流程变量区桌面端整体右移并缩短标签列,兼顾左侧留白与标签、控件间距。
const processLabelCol = { xs: { span: 24 }, sm: { span: 4 }, md: { span: 2 } }; const processLabelCol = { xs: { span: 24 }, sm: { span: 4 }, md: { span: 2 } };
const processWideWrapperCol = { xs: { span: 24 }, sm: { span: 20 }, md: { span: 22 } }; const processWideWrapperCol = { xs: { span: 24 }, sm: { span: 20 }, md: { span: 22 } };
@@ -4,14 +4,27 @@
<template #detail> <template #detail>
<a-form ref="formRef" class="antd-modal-form" labelAlign="left" :labelCol="labelCol" :wrapperCol="wrapperCol" name="BgPartymatterForm"> <a-form ref="formRef" class="antd-modal-form" labelAlign="left" :labelCol="labelCol" :wrapperCol="wrapperCol" name="BgPartymatterForm">
<a-row class="form-content-row" :gutter="[12, 4]"> <a-row class="form-content-row" :gutter="[12, 4]">
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="年份" v-bind="validateInfos.year" id="BgPartymatterForm-year" name="year"> <a-form-item label="年份" v-bind="validateInfos.year" id="BgPartymatterForm-year" name="year">
<a-date-picker v-model:value="formData.year" picker="year" value-format="YYYY" placeholder="请选择年份" style="width: 100%" allow-clear /> <a-date-picker
</a-form-item> v-model:value="formData.year"
</a-col> picker="year"
value-format="YYYY"
placeholder="请选择年份"
style="width: 100%"
allow-clear
/>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="会议时间" v-bind="validateInfos.matterTime" id="BgPartymatterForm-matterTime" name="matterTime"> <a-form-item label="会议时间" v-bind="validateInfos.matterTime" id="BgPartymatterForm-matterTime" name="matterTime">
<a-date-picker placeholder="请选择会议时间" v-model:value="formData.matterTime" value-format="YYYY-MM-DD" style="width: 100%" allow-clear /> <a-date-picker
placeholder="请选择会议时间"
v-model:value="formData.matterTime"
value-format="YYYY-MM-DD"
style="width: 100%"
allow-clear
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
@@ -21,7 +34,7 @@
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="序号" v-bind="validateInfos.number" id="BgPartymatterForm-number" name="number"> <a-form-item label="序号" v-bind="validateInfos.number" id="BgPartymatterForm-number" name="number">
<a-input v-model:value="formData.number" placeholder="填写会议时间和议题序号后自动生成" :readonly="true" ></a-input> <a-input v-model:value="formData.number" placeholder="填写会议时间和议题序号后自动生成" :readonly="true"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
@@ -29,84 +42,99 @@
<j-dict-select-tag v-model:value="formData.secretLevel" dictCode="secret_level" placeholder="请选择密级" allow-clear /> <j-dict-select-tag v-model:value="formData.secretLevel" dictCode="secret_level" placeholder="请选择密级" allow-clear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="事项名称" v-bind="validateInfos.title" id="BgPartymatterForm-title" name="title"> <a-form-item label="事项名称" v-bind="validateInfos.title" id="BgPartymatterForm-title" name="title">
<a-input v-model:value="formData.title" placeholder="请输入事项名称" allow-clear ></a-input> <a-input v-model:value="formData.title" placeholder="请输入事项名称" allow-clear></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="24"> <a-col :xs="24" :md="24">
<a-form-item label="会议决议" v-bind="validateInfos.content" id="BgPartymatterForm-content" name="content" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol"> <a-form-item
<a-textarea v-model:value="formData.content" :rows="4" placeholder="请输入会议决议" style="width: 100%" /> label="会议决议"
</a-form-item> v-bind="validateInfos.content"
</a-col> id="BgPartymatterForm-content"
name="content"
:labelCol="wideLabelCol"
:wrapperCol="wideWrapperCol"
>
<a-textarea v-model:value="formData.content" :rows="4" placeholder="请输入会议决议" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="分管所领导" v-bind="validateInfos.manageSuoleader" id="BgPartymatterForm-manageSuoleader" name="manageSuoleader"> <a-form-item label="分管所领导" v-bind="validateInfos.manageSuoleader" id="BgPartymatterForm-manageSuoleader" name="manageSuoleader">
<DeptRoleUserSelectDropDown <RoleUserSelectDropDown v-model:value="formData.manageSuoleader" :roleId="CHARGE_LEADER_ROLE_ID" placeholder="请选择分管所领导" />
v-model:value="formData.manageSuoleader" </a-form-item>
:deptId="CHARGE_LEADER_DEPT_ID" </a-col>
:roleId="CHARGE_LEADER_ROLE_ID" <a-col :xs="24" :md="12">
placeholder="请选择分管所领导" <a-form-item label="事项目录编码" v-bind="validateInfos.matterCode" id="BgPartymatterForm-matterCode" name="matterCode">
<a-input v-model:value="formData.matterCode" placeholder="请输入事项目录编码" allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="抄告单编号" v-bind="validateInfos.noticeNumber" id="BgPartymatterForm-noticeNumber" name="noticeNumber">
<a-input v-model:value="formData.noticeNumber" placeholder="请输入抄告单编号" allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="是否为三重一大决策" v-bind="validateInfos.isImportant" id="BgPartymatterForm-isImportant" name="isImportant">
<j-dict-select-tag v-model:value="formData.isImportant" dictCode="yn" placeholder="请选择是否为三重一大决策" allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="主办部门" v-bind="validateInfos.responDeptid" id="BgPartymatterForm-responDeptid" name="responDeptid">
<sz-select-dept v-model:value="formData.responDeptid" :multiple="true" checkStrictly allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="协办部门" v-bind="validateInfos.assistDeptid" id="BgPartymatterForm-assistDeptid" name="assistDeptid">
<sz-select-dept v-model:value="formData.assistDeptid" :multiple="true" checkStrictly allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="实际执行情况" v-bind="validateInfos.actualExect" id="BgPartymatterForm-actualExect" name="actualExect">
<a-input v-model:value="formData.actualExect" placeholder="请输入实际执行情况" allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="完成状态" v-bind="validateInfos.bpmStatus" id="BgPartymatterForm-bpmStatus" name="bpmStatus">
<j-dict-select-tag v-model:value="formData.bpmStatus" dictCode="super_status" placeholder="请选择完成状态" allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="督办次数" v-bind="validateInfos.superviseCount" id="BgPartymatterForm-superviseCount" name="superviseCount">
<a-input v-model:value="formData.superviseCount" placeholder="请输入督办次数" allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="要求完成日期" v-bind="validateInfos.deadline" id="BgPartymatterForm-deadline" name="deadline">
<a-date-picker
placeholder="请选择要求完成日期"
v-model:value="formData.deadline"
value-format="YYYY-MM-DD"
style="width: 100%"
allow-clear
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="事项目录编码" v-bind="validateInfos.matterCode" id="BgPartymatterForm-matterCode" name="matterCode"> <a-form-item label="是否急件" v-bind="validateInfos.urgencyLevel" id="BgPartymatterForm-urgencyLevel" name="urgencyLevel">
<a-input v-model:value="formData.matterCode" placeholder="请输入事项目录编码" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="抄告单编号" v-bind="validateInfos.noticeNumber" id="BgPartymatterForm-noticeNumber" name="noticeNumber">
<a-input v-model:value="formData.noticeNumber" placeholder="请输入抄告单编号" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="是否为三重一大决策" v-bind="validateInfos.isImportant" id="BgPartymatterForm-isImportant" name="isImportant">
<j-dict-select-tag v-model:value="formData.isImportant" dictCode="yn" placeholder="请选择是否为三重一大决策" allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="主办部门" v-bind="validateInfos.responDeptid" id="BgPartymatterForm-responDeptid" name="responDeptid">
<sz-select-dept v-model:value="formData.responDeptid" :multiple="true" checkStrictly allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="协办部门" v-bind="validateInfos.assistDeptid" id="BgPartymatterForm-assistDeptid" name="assistDeptid">
<sz-select-dept v-model:value="formData.assistDeptid" :multiple="true" checkStrictly allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="实际执行情况" v-bind="validateInfos.actualExect" id="BgPartymatterForm-actualExect" name="actualExect">
<a-input v-model:value="formData.actualExect" placeholder="请输入实际执行情况" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="完成状态" v-bind="validateInfos.bpmStatus" id="BgPartymatterForm-bpmStatus" name="bpmStatus">
<j-dict-select-tag v-model:value="formData.bpmStatus" dictCode="super_status" placeholder="请选择完成状态" allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="督办次数" v-bind="validateInfos.superviseCount" id="BgPartymatterForm-superviseCount" name="superviseCount">
<a-input v-model:value="formData.superviseCount" placeholder="请输入督办次数" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="要求完成日期" v-bind="validateInfos.deadline" id="BgPartymatterForm-deadline" name="deadline">
<a-date-picker placeholder="请选择要求完成日期" v-model:value="formData.deadline" value-format="YYYY-MM-DD" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="是否急件" v-bind="validateInfos.urgencyLevel" id="BgPartymatterForm-urgencyLevel" name="urgencyLevel">
<j-dict-select-tag v-model:value="formData.urgencyLevel" dictCode="yn" placeholder="请选择是否急件" allow-clear /> <j-dict-select-tag v-model:value="formData.urgencyLevel" dictCode="yn" placeholder="请选择是否急件" allow-clear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="需所办领导审批" v-bind="validateInfos.isNeedAppro" id="BgPartymatterForm-isNeedAppro" name="isNeedAppro" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol"> <a-form-item
<j-switch v-model:value="formData.isNeedAppro" ></j-switch> label="需所办负责人审批"
</a-form-item> v-bind="validateInfos.isNeedAppro"
</a-col> id="BgPartymatterForm-isNeedAppro"
name="isNeedAppro"
:labelCol="wideLabelCol"
:wrapperCol="wideWrapperCol"
>
<j-switch v-model:value="formData.isNeedAppro"></j-switch>
</a-form-item>
</a-col>
<a-col v-if="showSupDeptLeader" :xs="24" :md="12"> <a-col v-if="showSupDeptLeader" :xs="24" :md="12">
<a-form-item label="所办领导" v-bind="validateInfos.supDeptleaderid" id="BgPartymatterForm-supDeptleaderid" name="supDeptleaderid"> <a-form-item label="所办负责人" v-bind="validateInfos.supDeptleaderid" id="BgPartymatterForm-supDeptleaderid" name="supDeptleaderid">
<!-- <j-select-user v-model:value="formData.supDeptleaderid" allow-clear />--> <!-- <j-select-user v-model:value="formData.supDeptleaderid" allow-clear />-->
<DeptRoleUserSelectRadioGroup <DeptRoleUserSelectRadioGroup
v-model:value="formData.supDeptleaderid" v-model:value="formData.supDeptleaderid"
:deptId="SUOBAN_DEPT_ID" :deptId="SUOBAN_DEPT_ID"
@@ -114,37 +142,37 @@
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- <a-col :span="12">--> <!-- <a-col :span="12">-->
<!-- <a-form-item label="是否抄送所领导" v-bind="validateInfos.isNeedSuoleader" id="BgPartymatterForm-isNeedSuoleader" name="isNeedSuoleader">--> <!-- <a-form-item label="是否抄送所领导" v-bind="validateInfos.isNeedSuoleader" id="BgPartymatterForm-isNeedSuoleader" name="isNeedSuoleader">-->
<!-- <j-switch v-model:value="formData.isNeedSuoleader" ></j-switch>--> <!-- <j-switch v-model:value="formData.isNeedSuoleader" ></j-switch>-->
<!-- </a-form-item>--> <!-- </a-form-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<!-- <a-col :span="12">--> <!-- <a-col :span="12">-->
<!-- <a-form-item label="抄送所领导" v-bind="validateInfos.suoleaderid" id="BgPartymatterForm-suoleaderid" name="suoleaderid">--> <!-- <a-form-item label="抄送所领导" v-bind="validateInfos.suoleaderid" id="BgPartymatterForm-suoleaderid" name="suoleaderid">-->
<!-- <j-select-user v-model:value="formData.suoleaderid" allow-clear />--> <!-- <j-select-user v-model:value="formData.suoleaderid" allow-clear />-->
<!-- </a-form-item>--> <!-- </a-form-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<!-- <a-col :span="12">--> <!-- <a-col :span="12">-->
<!-- <a-form-item label="是否需要重复督办" v-bind="validateInfos.isNeedInterval" id="BgPartymatterForm-isNeedInterval" name="isNeedInterval">--> <!-- <a-form-item label="是否需要重复督办" v-bind="validateInfos.isNeedInterval" id="BgPartymatterForm-isNeedInterval" name="isNeedInterval">-->
<!-- <a-input v-model:value="formData.isNeedInterval" placeholder="请输入是否需要重复督办" allow-clear ></a-input>--> <!-- <a-input v-model:value="formData.isNeedInterval" placeholder="请输入是否需要重复督办" allow-clear ></a-input>-->
<!-- </a-form-item>--> <!-- </a-form-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<!-- <a-col :span="12">--> <!-- <a-col :span="12">-->
<!-- <a-form-item label="重复类型" v-bind="validateInfos.intervalType" id="BgPartymatterForm-intervalType" name="intervalType">--> <!-- <a-form-item label="重复类型" v-bind="validateInfos.intervalType" id="BgPartymatterForm-intervalType" name="intervalType">-->
<!-- <a-input v-model:value="formData.intervalType" placeholder="请输入重复类型" allow-clear ></a-input>--> <!-- <a-input v-model:value="formData.intervalType" placeholder="请输入重复类型" allow-clear ></a-input>-->
<!-- </a-form-item>--> <!-- </a-form-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<!-- <a-col :span="12">--> <!-- <a-col :span="12">-->
<!-- <a-form-item label="重复次数" v-bind="validateInfos.startCount" id="BgPartymatterForm-startCount" name="startCount">--> <!-- <a-form-item label="重复次数" v-bind="validateInfos.startCount" id="BgPartymatterForm-startCount" name="startCount">-->
<!-- <a-input v-model:value="formData.startCount" placeholder="请输入重复次数" allow-clear ></a-input>--> <!-- <a-input v-model:value="formData.startCount" placeholder="请输入重复次数" allow-clear ></a-input>-->
<!-- </a-form-item>--> <!-- </a-form-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<!-- <a-col :span="12">--> <!-- <a-col :span="12">-->
<!-- <a-form-item label="重复开始时间" v-bind="validateInfos.intervalStartTime" id="BgPartymatterForm-intervalStartTime" name="intervalStartTime">--> <!-- <a-form-item label="重复开始时间" v-bind="validateInfos.intervalStartTime" id="BgPartymatterForm-intervalStartTime" name="intervalStartTime">-->
<!-- <a-date-picker placeholder="请选择重复开始时间" v-model:value="formData.intervalStartTime" value-format="YYYY-MM-DD" style="width: 100%" allow-clear />--> <!-- <a-date-picker placeholder="请选择重复开始时间" v-model:value="formData.intervalStartTime" value-format="YYYY-MM-DD" style="width: 100%" allow-clear />-->
<!-- </a-form-item>--> <!-- </a-form-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<a-col v-if="showFlowSubmitButton" :span="24" style="width: 100%;text-align: center;"> <a-col v-if="showFlowSubmitButton" :span="24" style="width: 100%; text-align: center">
<a-button preIcon="ant-design:check-outlined" style="width: 126px" type="primary" @click="submitForm"> </a-button> <a-button preIcon="ant-design:check-outlined" style="width: 126px" type="primary" @click="submitForm"> </a-button>
</a-col> </a-col>
</a-row> </a-row>
@@ -166,21 +194,19 @@
import { saveOrUpdate } from '../BgPartymatter.api'; import { saveOrUpdate } from '../BgPartymatter.api';
import { Form } from 'ant-design-vue'; import { Form } from 'ant-design-vue';
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
import DeptRoleUserSelectRadioGroup from "/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue"; import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
import RoleUserSelectDropDown from '@/components/semri/userComponent/RoleUserSelectDropDown.vue';
import { import {
SUOBAN_DEPT_ID, SUOBAN_DEPT_ID,
MEASURE_RES_LEADER_ROLE_ID, MEASURE_RES_LEADER_ROLE_ID,
PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID, PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID,
CHARGE_LEADER_ROLE_ID, CHARGE_LEADER_ROLE_ID,
} from '/@/constant/supervision'; } from '/@/constant/supervision';
import SzSelectDept from "@/components/Form/src/jeecg/components/SzSelectDept.vue"; import SzSelectDept from '@/components/Form/src/jeecg/components/SzSelectDept.vue';
import DeptRoleUserSelectDropDown
from "@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue";
const props = defineProps({ const props = defineProps({
formDisabled: { type: Boolean, default: false }, formDisabled: { type: Boolean, default: false },
formData: { type: Object, default: () => ({}) }, formData: { type: Object, default: () => ({}) },
formBpm: { type: Boolean, default: true } formBpm: { type: Boolean, default: true },
}); });
const useForm = Form.useForm; const useForm = Form.useForm;
const emit = defineEmits(['register', 'ok']); const emit = defineEmits(['register', 'ok']);
@@ -209,17 +235,17 @@
isNeedSuoleader: '', isNeedSuoleader: '',
suoleaderid: '', suoleaderid: '',
delFlag: '', delFlag: '',
isNeedInterval:'', isNeedInterval: '',
startCount:'', startCount: '',
intervalType:'', intervalType: '',
intervalStartTime:'', intervalStartTime: '',
meetingType: 'party', meetingType: 'party',
}); });
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 7 } }); const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 8 } });
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 17 } }); const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
const wideLabelCol = { xs: { span: 24 }, sm: { span: 3 } }; const wideLabelCol = { xs: { span: 24 }, sm: { span: 4 } };
const wideWrapperCol = { xs: { span: 24 }, sm: { span: 21 } }; const wideWrapperCol = { xs: { span: 24 }, sm: { span: 20 } };
const confirmLoading = ref<boolean>(false); const confirmLoading = ref<boolean>(false);
//表单验证 //表单验证
const validatorRules = reactive({ const validatorRules = reactive({
@@ -245,11 +271,11 @@
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false }); const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
const formRef = ref(); const formRef = ref();
// 表单禁用 // 表单禁用
const disabled = computed(()=>{ const disabled = computed(() => {
if(props.formBpm === true){ if (props.formBpm === true) {
if(props.formData.disabled === false){ if (props.formData.disabled === false) {
return false; return false;
}else{ } else {
return true; return true;
} }
} }
@@ -319,27 +345,27 @@
return ''; return '';
} }
onMounted(()=>{ onMounted(() => {
initFormData(); initFormData();
}); });
//渲染流程表单数据 //渲染流程表单数据
const queryByIdUrl = '/bgpartymatter/bgPartymatter/queryById'; const queryByIdUrl = '/bgpartymatter/bgPartymatter/queryById';
async function initFormData(){ async function initFormData() {
if(props.formBpm === true){ if (props.formBpm === true) {
let params = {id: props.formData.dataId}; let params = { id: props.formData.dataId };
const data = await defHttp.get({url: queryByIdUrl, params}); const data = await defHttp.get({ url: queryByIdUrl, params });
//设置表单的值 //设置表单的值
edit({...data}); edit({ ...data });
} }
} }
// 是否显示提交按钮 // 是否显示提交按钮
const showFlowSubmitButton = computed(()=>{ const showFlowSubmitButton = computed(() => {
if(props.formBpm === true){ if (props.formBpm === true) {
if(props.formData.disabled === false){ if (props.formData.disabled === false) {
return true return true;
} }
} }
return false return false;
}); });
/** /**
@@ -357,12 +383,12 @@
resetFields(); resetFields();
const tmpData = {}; const tmpData = {};
Object.keys(formData).forEach((key) => { Object.keys(formData).forEach((key) => {
if(record.hasOwnProperty(key)){ if (record.hasOwnProperty(key)) {
tmpData[key] = record[key] tmpData[key] = record[key];
} }
}) });
//赋值 //赋值
Object.assign(formData,tmpData); Object.assign(formData, tmpData);
}); });
} }
@@ -414,7 +440,6 @@
}); });
} }
defineExpose({ defineExpose({
add, add,
edit, edit,
+42 -42
View File
@@ -262,52 +262,52 @@ export const bgTakepulseFeedbackColumns: JVxeColumn[] = [
// 高级查询数据 // 高级查询数据
export const superQuerySchema = { export const superQuerySchema = {
secretLevel: {title: '密级',order: 0,view: 'list', type: 'string',dictCode: 'secret_level',}, secretLevel: { title: '密级', order: 0, view: 'list', type: 'string', dictCode: 'secret_level' },
year: {title: '年份',order: 1,view: 'list', type: 'string',dictCode: 'super_year',}, year: { title: '年份', order: 1, view: 'list', type: 'string', dictCode: 'super_year' },
number: {title: '序号',order: 2,view: 'text', type: 'string',}, number: { title: '序号', order: 2, view: 'text', type: 'string' },
taskType: {title: '会议类型:行政线、技术线',order: 3,view: 'list', type: 'string',dictCode: 'super_takepulse_type',}, taskType: { title: '会议类型:行政线、技术线', order: 3, view: 'list', type: 'string', dictCode: 'super_takepulse_type' },
type: {title: '类别:党的建设等其他',order: 4,view: 'text', type: 'string',}, type: { title: '类别:党的建设等其他', order: 4, view: 'text', type: 'string' },
proposer: {title: '提出人',order: 5,view: 'sel_user', type: 'string',}, proposer: { title: '提出人', order: 5, view: 'sel_user', type: 'string' },
title: {title: '意见主题',order: 6,view: 'text', type: 'string',}, title: { title: '意见主题', order: 6, view: 'text', type: 'string' },
content: {title: '具体意见',order: 7,view: 'textarea', type: 'string',}, content: { title: '具体意见', order: 7, view: 'textarea', type: 'string' },
manageSuoleader: {title: '分管所领导',order: 8,view: 'sel_user', type: 'string',}, manageSuoleader: { title: '分管所领导', order: 8, view: 'sel_user', type: 'string' },
suoleader: {title: '责任领导',order: 9,view: 'sel_user', type: 'string',}, suoleader: { title: '责任领导', order: 9, view: 'sel_user', type: 'string' },
responDeptid: {title: '牵头部门',order: 10,view: 'sel_depart', type: 'string',}, responDeptid: { title: '牵头部门', order: 10, view: 'sel_depart', type: 'string' },
assistDeptid: {title: '协办部门',order: 11,view: 'sel_depart', type: 'string',}, assistDeptid: { title: '协办部门', order: 11, view: 'sel_depart', type: 'string' },
implementDeptid: {title: '落实部门',order: 12,view: 'text', type: 'string',}, implementDeptid: { title: '落实部门', order: 12, view: 'text', type: 'string' },
isAdopt: {title: '是否采纳',order: 13,view: 'switch', type: 'string',}, isAdopt: { title: '是否采纳', order: 13, view: 'switch', type: 'string' },
measure: {title: '落实措施/解释说明',order: 14,view: 'textarea', type: 'string',}, measure: { title: '落实措施/解释说明', order: 14, view: 'textarea', type: 'string' },
measureNumber: {title: '措施数量',order: 15,view: 'number', type: 'number',}, measureNumber: { title: '措施数量', order: 15, view: 'number', type: 'number' },
achievement: {title: '成果形式',order: 16,view: 'textarea', type: 'string',}, achievement: { title: '成果形式', order: 16, view: 'textarea', type: 'string' },
deadline: {title: '要求完成日期',order: 17,view: 'date', type: 'string',}, deadline: { title: '要求完成日期', order: 17, view: 'date', type: 'string' },
remark: {title: '备注',order: 18,view: 'text', type: 'string',}, remark: { title: '备注', order: 18, view: 'text', type: 'string' },
actualExect: {title: '执行情况',order: 19,view: 'textarea', type: 'string',}, actualExect: { title: '执行情况', order: 19, view: 'textarea', type: 'string' },
actualTime: {title: '实际完成时间',order: 20,view: 'datetime', type: 'string',}, actualTime: { title: '实际完成时间', order: 20, view: 'datetime', type: 'string' },
proposerConfirm: {title: '提出人确认',order: 21,view: 'text', type: 'string',}, proposerConfirm: { title: '提出人确认', order: 21, view: 'text', type: 'string' },
bpmStatus: {title: '完成状态',order: 22,view: 'list', type: 'string',dictCode: 'super_status',}, bpmStatus: { title: '完成状态', order: 22, view: 'list', type: 'string', dictCode: 'super_status' },
actSt: {title: '调整落实措施及执行情况',order: 23,view: 'textarea', type: 'string',}, actSt: { title: '调整落实措施及执行情况', order: 23, view: 'textarea', type: 'string' },
superviseCount: {title: '督办次数',order: 24,view: 'text', type: 'string',}, superviseCount: { title: '督办次数', order: 24, view: 'text', type: 'string' },
urgencyLevel: {title: '紧急程度',order: 25,view: 'text', type: 'string',}, urgencyLevel: { title: '紧急程度', order: 25, view: 'text', type: 'string' },
isNeedAppro: {title: '是否需要所办领导审批',order: 26,view: 'switch', type: 'string',}, isNeedAppro: { title: '是否需要所办负责人审批', order: 26, view: 'switch', type: 'string' },
supDeptleaderid: {title: '所办领导',order: 27,view: 'sel_user', type: 'string',}, supDeptleaderid: { title: '所办负责人', order: 27, view: 'sel_user', type: 'string' },
//子表高级查询 //子表高级查询
bgTakepulseFeedback: { bgTakepulseFeedback: {
title: '执行情况反馈', title: '执行情况反馈',
view: 'table', view: 'table',
fields: { fields: {
responDeptid: {title: '责任部门id',order: 0,view: 'text', type: 'string',}, responDeptid: { title: '责任部门id', order: 0, view: 'text', type: 'string' },
responDeptname: {title: '责任部门名称',order: 1,view: 'text', type: 'string',}, responDeptname: { title: '责任部门名称', order: 1, view: 'text', type: 'string' },
responPersonid: {title: '反馈人id',order: 2,view: 'text', type: 'string',}, responPersonid: { title: '反馈人id', order: 2, view: 'text', type: 'string' },
responPersonname: {title: '反馈人姓名',order: 3,view: 'text', type: 'string',}, responPersonname: { title: '反馈人姓名', order: 3, view: 'text', type: 'string' },
planExect: {title: '计划完成目标',order: 4,view: 'textarea', type: 'string',}, planExect: { title: '计划完成目标', order: 4, view: 'textarea', type: 'string' },
planTime: {title: '计划完成日期',order: 5,view: 'date', type: 'string',}, planTime: { title: '计划完成日期', order: 5, view: 'date', type: 'string' },
actualExect: {title: '实际执行情况',order: 6,view: 'textarea', type: 'string',}, actualExect: { title: '实际执行情况', order: 6, view: 'textarea', type: 'string' },
actualTime: {title: '实际完成日期',order: 7,view: 'date', type: 'string',}, actualTime: { title: '实际完成日期', order: 7, view: 'date', type: 'string' },
actSt: {title: '调整落实措施及执行情况',order: 8,view: 'textarea', type: 'string',}, actSt: { title: '调整落实措施及执行情况', order: 8, view: 'textarea', type: 'string' },
bpmStatus: {title: '完成状态',order: 9,view: 'text', type: 'string',}, bpmStatus: { title: '完成状态', order: 9, view: 'text', type: 'string' },
proposerConfirm: {title: '提出人确认',order: 10,view: 'text', type: 'string',}, proposerConfirm: { title: '提出人确认', order: 10, view: 'text', type: 'string' },
bpmProcessId: {title: '流程实例id',order: 11,view: 'text', type: 'string',}, bpmProcessId: { title: '流程实例id', order: 11, view: 'text', type: 'string' },
mainId: {title: '外键',order: 12,view: 'text', type: 'string',}, mainId: { title: '外键', order: 12, view: 'text', type: 'string' },
} },
}, },
}; };
+2 -2
View File
@@ -35,9 +35,8 @@
<a-tooltip title="按所党委分管所领导筛选">分管所领导</a-tooltip> <a-tooltip title="按所党委分管所领导筛选">分管所领导</a-tooltip>
</template> </template>
<a-tooltip title="按所党委分管所领导筛选" <a-tooltip title="按所党委分管所领导筛选"
><DeptRoleUserSelectDropDown ><RoleUserSelectDropDown
v-model:value="queryParam.manageSuoleader" v-model:value="queryParam.manageSuoleader"
:deptId="PARTY_COMMITTEE_DEPT_ID"
:roleId="CHARGE_LEADER_ROLE_ID" :roleId="CHARGE_LEADER_ROLE_ID"
placeholder="请选择分管所领导" placeholder="请选择分管所领导"
allow-clear allow-clear
@@ -251,6 +250,7 @@
import BusinessProcessListModal from '/src/components/semri/process/BusinessProcessListModal.vue'; import BusinessProcessListModal from '/src/components/semri/process/BusinessProcessListModal.vue';
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue'; import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
import { batchDelete } from '@/views/bg/bqtakepulse/BgTakepulse.api'; import { batchDelete } from '@/views/bg/bqtakepulse/BgTakepulse.api';
import RoleUserSelectDropDown from '@/components/semri/userComponent/RoleUserSelectDropDown.vue';
const [registerBpmModal, { openModal: bpmPicModal }] = useModal(); const [registerBpmModal, { openModal: bpmPicModal }] = useModal();
const FLOW_CODE = 'dev_task_task_001'; const FLOW_CODE = 'dev_task_task_001';
@@ -6,164 +6,190 @@
<a-row class="form-content-row" :gutter="[12, 4]"> <a-row class="form-content-row" :gutter="[12, 4]">
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="年份" v-bind="validateInfos.year" id="BgTakepulseForm-year" name="year"> <a-form-item label="年份" v-bind="validateInfos.year" id="BgTakepulseForm-year" name="year">
<a-date-picker v-model:value="formData.year" picker="year" value-format="YYYY" placeholder="请选择年份" style="width: 100%" allow-clear /> <a-date-picker
v-model:value="formData.year"
picker="year"
value-format="YYYY"
placeholder="请选择年份"
style="width: 100%"
allow-clear
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="密级" v-bind="validateInfos.secretLevel" id="BgTakepulseForm-secretLevel" name="secretLevel"> <a-form-item label="密级" v-bind="validateInfos.secretLevel" id="BgTakepulseForm-secretLevel" name="secretLevel">
<j-dict-select-tag v-model:value="formData.secretLevel" dictCode="secret_level" placeholder="请选择密级" allow-clear /> <j-dict-select-tag v-model:value="formData.secretLevel" dictCode="secret_level" placeholder="请选择密级" allow-clear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="序号" v-bind="validateInfos.number" id="BgTakepulseForm-number" name="number"> <a-form-item label="序号" v-bind="validateInfos.number" id="BgTakepulseForm-number" name="number">
<a-input v-model:value="formData.number" placeholder="请输入序号" allow-clear ></a-input> <a-input v-model:value="formData.number" placeholder="请输入序号" allow-clear></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="会议类型" v-bind="validateInfos.taskType" id="BgTakepulseForm-taskType" name="taskType"> <a-form-item label="会议类型" v-bind="validateInfos.taskType" id="BgTakepulseForm-taskType" name="taskType">
<j-dict-select-tag v-model:value="formData.taskType" dictCode="super_takepulse_type" placeholder="请选择会议类型:行政线、技术线" allow-clear /> <j-dict-select-tag
</a-form-item> v-model:value="formData.taskType"
</a-col> dictCode="super_takepulse_type"
<a-col :xs="24" :md="12"> placeholder="请选择会议类型:行政线、技术线"
<a-form-item label="类别" v-bind="validateInfos.type" id="BgTakepulseForm-type" name="type"> allow-clear
<a-input v-model:value="formData.type" placeholder="请输入类别:如党的建设" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="提出人" v-bind="validateInfos.proposer" id="BgTakepulseForm-proposer" name="proposer">
<!-- <j-select-user v-model:value="formData.proposer" allow-clear />-->
<sz-dept-user-modal
v-model:value="formData.proposer"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="意见主题" v-bind="validateInfos.title" id="BgTakepulseForm-title" name="title"> <a-form-item label="类别" v-bind="validateInfos.type" id="BgTakepulseForm-type" name="type">
<a-input v-model:value="formData.title" placeholder="请输入意见主题" allow-clear ></a-input> <a-input v-model:value="formData.type" placeholder="请输入类别:如党的建设" allow-clear></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="具体意见" v-bind="validateInfos.content" id="BgTakepulseForm-content" name="content"> <a-form-item label="提出人" v-bind="validateInfos.proposer" id="BgTakepulseForm-proposer" name="proposer">
<a-textarea v-model:value="formData.content" :rows="4" placeholder="请输入具体意见" /> <!-- <j-select-user v-model:value="formData.proposer" allow-clear />-->
</a-form-item> <sz-dept-user-modal v-model:value="formData.proposer" />
</a-col> </a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="意见主题" v-bind="validateInfos.title" id="BgTakepulseForm-title" name="title">
<a-input v-model:value="formData.title" placeholder="请输入意见主题" allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="具体意见" v-bind="validateInfos.content" id="BgTakepulseForm-content" name="content">
<a-textarea v-model:value="formData.content" :rows="4" placeholder="请输入具体意见" />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="分管所领导" v-bind="validateInfos.manageSuoleader" id="BgTakepulseForm-manageSuoleader" name="manageSuoleader"> <a-form-item label="分管所领导" v-bind="validateInfos.manageSuoleader" id="BgTakepulseForm-manageSuoleader" name="manageSuoleader">
<DeptRoleUserSelectDropDown <RoleUserSelectDropDown v-model:value="formData.manageSuoleader" :roleId="CHARGE_LEADER_ROLE_ID" placeholder="请选择分管所领导" />
v-model:value="formData.manageSuoleader" </a-form-item>
:deptId="CHARGE_LEADER_DEPT_ID" </a-col>
:roleId="CHARGE_LEADER_ROLE_ID" <a-col :xs="24" :md="12">
placeholder="请选择分管所领导" <a-form-item label="责任领导" v-bind="validateInfos.suoleader" id="BgTakepulseForm-suoleader" name="suoleader">
<sz-dept-user-modal v-model:value="formData.suoleader" />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="牵头部门" v-bind="validateInfos.responDeptid" id="BgTakepulseForm-responDeptid" name="responDeptid">
<sz-select-dept v-model:value="formData.responDeptid" :multiple="true" :checkable="false" checkStrictly allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="协办部门" v-bind="validateInfos.assistDeptid" id="BgTakepulseForm-assistDeptid" name="assistDeptid">
<sz-select-dept v-model:value="formData.assistDeptid" :multiple="true" :checkable="false" checkStrictly allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="落实部门" v-bind="validateInfos.implementDeptid" id="BgTakepulseForm-implementDeptid" name="implementDeptid">
<a-input v-model:value="formData.implementDeptid" placeholder="请输入落实部门" allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="是否采纳" v-bind="validateInfos.isAdopt" id="BgTakepulseForm-isAdopt" name="isAdopt">
<j-switch v-model:value="formData.isAdopt"></j-switch>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item
label="落实措施/解释说明"
v-bind="validateInfos.measure"
id="BgTakepulseForm-measure"
name="measure"
:labelCol="wideLabelCol"
:wrapperCol="wideWrapperCol"
>
<a-textarea v-model:value="formData.measure" :rows="4" placeholder="请输入落实措施/解释说明" />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="措施数量" v-bind="validateInfos.measureNumber" id="BgTakepulseForm-measureNumber" name="measureNumber">
<a-input-number v-model:value="formData.measureNumber" placeholder="请输入措施数量" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item
label="成果形式"
v-bind="validateInfos.achievement"
id="BgTakepulseForm-achievement"
name="achievement"
:labelCol="wideLabelCol"
:wrapperCol="wideWrapperCol"
>
<a-textarea v-model:value="formData.achievement" :rows="4" placeholder="请输入成果形式" />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="要求完成日期" v-bind="validateInfos.deadline" id="BgTakepulseForm-deadline" name="deadline">
<a-date-picker
placeholder="请选择要求完成日期"
v-model:value="formData.deadline"
value-format="YYYY-MM-DD"
style="width: 100%"
allow-clear
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="责任领导" v-bind="validateInfos.suoleader" id="BgTakepulseForm-suoleader" name="suoleader"> <a-form-item label="备注" v-bind="validateInfos.remark" id="BgTakepulseForm-remark" name="remark">
<sz-dept-user-modal <a-input v-model:value="formData.remark" placeholder="请输入备注" allow-clear></a-input>
v-model:value="formData.suoleader" </a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="执行情况" v-bind="validateInfos.actualExect" id="BgTakepulseForm-actualExect" name="actualExect">-->
<!-- <a-textarea v-model:value="formData.actualExect" :rows="4" placeholder="请输入执行情况" />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :xs="24" :md="12">
<a-form-item label="实际完成时间" v-bind="validateInfos.actualTime" id="BgTakepulseForm-actualTime" name="actualTime">
<a-date-picker
placeholder="请选择实际完成时间"
v-model:value="formData.actualTime"
showTime
value-format="YYYY-MM-DD HH:mm:ss"
style="width: 100%"
allow-clear
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="牵头部门" v-bind="validateInfos.responDeptid" id="BgTakepulseForm-responDeptid" name="responDeptid"> <a-form-item label="提出人确认" v-bind="validateInfos.proposerConfirm" id="BgTakepulseForm-proposerConfirm" name="proposerConfirm">
<sz-select-dept v-model:value="formData.responDeptid" :multiple="true" :checkable="false" checkStrictly allow-clear /> <a-input v-model:value="formData.proposerConfirm" placeholder="请输入提出人确认" allow-clear></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="协办部门" v-bind="validateInfos.assistDeptid" id="BgTakepulseForm-assistDeptid" name="assistDeptid"> <a-form-item label="完成状态" v-bind="validateInfos.bpmStatus" id="BgTakepulseForm-bpmStatus" name="bpmStatus">
<sz-select-dept v-model:value="formData.assistDeptid" :multiple="true" :checkable="false" checkStrictly allow-clear /> <j-dict-select-tag v-model:value="formData.bpmStatus" dictCode="super_status" placeholder="请选择完成状态" allow-clear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <!-- <a-col :span="12">-->
<a-form-item label="落实部门" v-bind="validateInfos.implementDeptid" id="BgTakepulseForm-implementDeptid" name="implementDeptid"> <!-- <a-form-item label="调整落实措施及执行情况" v-bind="validateInfos.actSt" id="BgTakepulseForm-actSt" name="actSt">-->
<a-input v-model:value="formData.implementDeptid" placeholder="请输入落实部门" allow-clear ></a-input> <!-- <a-textarea v-model:value="formData.actSt" :rows="4" placeholder="请输入调整落实措施及执行情况" />-->
</a-form-item> <!-- </a-form-item>-->
</a-col> <!-- </a-col>-->
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="是否采纳" v-bind="validateInfos.isAdopt" id="BgTakepulseForm-isAdopt" name="isAdopt"> <a-form-item label="督办次数" v-bind="validateInfos.superviseCount" id="BgTakepulseForm-superviseCount" name="superviseCount">
<j-switch v-model:value="formData.isAdopt" ></j-switch> <a-input v-model:value="formData.superviseCount" placeholder="请输入督办次数" allow-clear></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :xs="24" :md="12">
<a-form-item label="落实措施/解释说明" v-bind="validateInfos.measure" id="BgTakepulseForm-measure" name="measure" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="formData.measure" :rows="4" placeholder="请输入落实措施/解释说明" />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="措施数量" v-bind="validateInfos.measureNumber" id="BgTakepulseForm-measureNumber" name="measureNumber">
<a-input-number v-model:value="formData.measureNumber" placeholder="请输入措施数量" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="成果形式" v-bind="validateInfos.achievement" id="BgTakepulseForm-achievement" name="achievement" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="formData.achievement" :rows="4" placeholder="请输入成果形式" />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="要求完成日期" v-bind="validateInfos.deadline" id="BgTakepulseForm-deadline" name="deadline">
<a-date-picker placeholder="请选择要求完成日期" v-model:value="formData.deadline" value-format="YYYY-MM-DD" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="备注" v-bind="validateInfos.remark" id="BgTakepulseForm-remark" name="remark">
<a-input v-model:value="formData.remark" placeholder="请输入备注" allow-clear ></a-input>
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="执行情况" v-bind="validateInfos.actualExect" id="BgTakepulseForm-actualExect" name="actualExect">-->
<!-- <a-textarea v-model:value="formData.actualExect" :rows="4" placeholder="请输入执行情况" />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :xs="24" :md="12">
<a-form-item label="实际完成时间" v-bind="validateInfos.actualTime" id="BgTakepulseForm-actualTime" name="actualTime">
<a-date-picker placeholder="请选择实际完成时间" v-model:value="formData.actualTime" showTime value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="提出人确认" v-bind="validateInfos.proposerConfirm" id="BgTakepulseForm-proposerConfirm" name="proposerConfirm">
<a-input v-model:value="formData.proposerConfirm" placeholder="请输入提出人确认" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="完成状态" v-bind="validateInfos.bpmStatus" id="BgTakepulseForm-bpmStatus" name="bpmStatus">
<j-dict-select-tag v-model:value="formData.bpmStatus" dictCode="super_status" placeholder="请选择完成状态" allow-clear />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="调整落实措施及执行情况" v-bind="validateInfos.actSt" id="BgTakepulseForm-actSt" name="actSt">-->
<!-- <a-textarea v-model:value="formData.actSt" :rows="4" placeholder="请输入调整落实措施及执行情况" />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :xs="24" :md="12">
<a-form-item label="督办次数" v-bind="validateInfos.superviseCount" id="BgTakepulseForm-superviseCount" name="superviseCount">
<a-input v-model:value="formData.superviseCount" placeholder="请输入督办次数" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :xs="24" :md="12">
<a-form-item label="是否急件" v-bind="validateInfos.urgencyLevel" id="BgTakepulseForm-urgencyLevel" name="urgencyLevel"> <a-form-item label="是否急件" v-bind="validateInfos.urgencyLevel" id="BgTakepulseForm-urgencyLevel" name="urgencyLevel">
<j-dict-select-tag v-model:value="formData.urgencyLevel" dictCode="yn" placeholder="请选择是否急件" allow-clear /> <j-dict-select-tag v-model:value="formData.urgencyLevel" dictCode="yn" placeholder="请选择是否急件" allow-clear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="是否需要所办领导审批" v-bind="validateInfos.isNeedAppro" id="BgTakepulseForm-isNeedAppro" name="isNeedAppro"> <a-form-item label="是否需要所办负责人审批" v-bind="validateInfos.isNeedAppro" id="BgTakepulseForm-isNeedAppro" name="isNeedAppro">
<j-switch v-model:value="formData.isNeedAppro" ></j-switch> <j-switch v-model:value="formData.isNeedAppro"></j-switch>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col v-if="showSupDeptLeader" :xs="24" :md="12"> <a-col v-if="showSupDeptLeader" :xs="24" :md="12">
<a-form-item label="所办领导" v-bind="validateInfos.supDeptleaderid" id="BgTakepulseForm-supDeptleaderid" name="supDeptleaderid"> <a-form-item label="所办负责人" v-bind="validateInfos.supDeptleaderid" id="BgTakepulseForm-supDeptleaderid" name="supDeptleaderid">
<DeptRoleUserSelectRadioGroup <DeptRoleUserSelectRadioGroup v-model:value="formData.supDeptleaderid" :deptId="SUP_LEADER_DEPT_ID" :roleId="SUP_LEADER_ROLE_ID" />
v-model:value="formData.supDeptleaderid" </a-form-item>
:deptId="SUP_LEADER_DEPT_ID" </a-col>
:roleId="SUP_LEADER_ROLE_ID"
/>
</a-form-item>
</a-col>
</a-row> </a-row>
</a-form> </a-form>
</template> </template>
</JFormContainer> </JFormContainer>
<div v-if="showFlowSubmitButton" :span="24" style="width: 100%;text-align: center;margin-top: 10px"> <div v-if="showFlowSubmitButton" :span="24" style="width: 100%; text-align: center; margin-top: 10px">
<a-button preIcon="ant-design:check-outlined" style="width: 126px" type="primary" @click="submitForm"> </a-button> <a-button preIcon="ant-design:check-outlined" style="width: 126px" type="primary" @click="submitForm"> </a-button>
</div> </div>
</a-spin> </a-spin>
@@ -180,21 +206,22 @@
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue'; import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
import { Form } from 'ant-design-vue'; import { Form } from 'ant-design-vue';
import DeptRoleUserSelectRadioGroup import DeptRoleUserSelectRadioGroup from '@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
from "@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue"; import SzDeptUserModal from '@/components/semri/deptUserComponent/SzDeptUserModal.vue';
import SzDeptUserModal from "@/components/semri/deptUserComponent/SzDeptUserModal.vue"; import DeptRoleUserSelectDropDown from '@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
import DeptRoleUserSelectDropDown from "@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue";
import { import {
SUOBAN_DEPT_ID, SUOBAN_DEPT_ID,
MEASURE_RES_LEADER_ROLE_ID, MEASURE_RES_LEADER_ROLE_ID,
PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID, PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID,
CHARGE_LEADER_ROLE_ID, CHARGE_LEADER_ROLE_ID,
} from '/@/constant/supervision'; } from '/@/constant/supervision';
import RoleUserSelectDropDown from '@/components/semri/userComponent/RoleUserSelectDropDown.vue';
const useForm = Form.useForm; const useForm = Form.useForm;
export default defineComponent({ export default defineComponent({
name: "BgTakepulseForm", name: 'BgTakepulseForm',
components:{ components: {
RoleUserSelectDropDown,
SzDeptUserModal, SzDeptUserModal,
DeptRoleUserSelectDropDown, DeptRoleUserSelectDropDown,
DeptRoleUserSelectRadioGroup, DeptRoleUserSelectRadioGroup,
@@ -202,18 +229,18 @@
JSwitch, JSwitch,
SzSelectDept, SzSelectDept,
JSelectUser, JSelectUser,
JFormContainer, JFormContainer,
}, },
props:{ props: {
formDisabled:{ formDisabled: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
formData: { type: Object, default: ()=>{} }, formData: { type: Object, default: () => {} },
formBpm: { type: Boolean, default: true } formBpm: { type: Boolean, default: true },
}, },
emits:['success'], emits: ['success'],
setup(props, {emit}) { setup(props, { emit }) {
const SUP_LEADER_DEPT_ID = SUOBAN_DEPT_ID; const SUP_LEADER_DEPT_ID = SUOBAN_DEPT_ID;
const SUP_LEADER_ROLE_ID = MEASURE_RES_LEADER_ROLE_ID; const SUP_LEADER_ROLE_ID = MEASURE_RES_LEADER_ROLE_ID;
const { createMessage } = useMessage(); const { createMessage } = useMessage();
@@ -281,21 +308,21 @@
}, },
], ],
}); });
const {resetFields, validate, validateInfos, clearValidate} = useForm(formData, validatorRules, {immediate: false}); const { resetFields, validate, validateInfos, clearValidate } = useForm(formData, validatorRules, { immediate: false });
const dbData = {}; const dbData = {};
const formItemLayout = { const formItemLayout = {
labelCol: {xs: {span: 24}, sm: {span: 7}}, labelCol: { xs: { span: 24 }, sm: { span: 7 } },
wrapperCol: {xs: {span: 24}, sm: {span: 17}}, wrapperCol: { xs: { span: 24 }, sm: { span: 17 } },
}; };
const wideLabelCol = { xs: { span: 24 }, sm: { span: 3 } }; const wideLabelCol = { xs: { span: 24 }, sm: { span: 3 } };
const wideWrapperCol = { xs: { span: 24 }, sm: { span: 21 } }; const wideWrapperCol = { xs: { span: 24 }, sm: { span: 21 } };
// 表单禁用 // 表单禁用
const disabled = computed(()=>{ const disabled = computed(() => {
if(props.formBpm === true){ if (props.formBpm === true) {
if(props.formData.disabled === false){ if (props.formData.disabled === false) {
return false; return false;
}else{ } else {
return true; return true;
} }
} }
@@ -312,33 +339,32 @@
watch(() => formData.isNeedAppro, clearSupDeptLeaderIfNotNeeded); watch(() => formData.isNeedAppro, clearSupDeptLeaderIfNotNeeded);
onMounted(()=>{ onMounted(() => {
initFormData(); initFormData();
}); });
//渲染流程表单数据 //渲染流程表单数据
const queryByIdUrl = '/bqtakepulse/bgTakepulse/queryById'; const queryByIdUrl = '/bqtakepulse/bgTakepulse/queryById';
async function initFormData(){ async function initFormData() {
if(props.formBpm === true){ if (props.formBpm === true) {
let params = {id: props.formData.dataId}; let params = { id: props.formData.dataId };
const row = await defHttp.get({url: queryByIdUrl, params}); const row = await defHttp.get({ url: queryByIdUrl, params });
//设置表单的值 //设置表单的值
Object.keys(row).map(k => { Object.keys(row).map((k) => {
formData[k] = row[k]; formData[k] = row[k];
}); });
clearSupDeptLeaderIfNotNeeded(); clearSupDeptLeaderIfNotNeeded();
} }
} }
// 是否显示提交按钮 // 是否显示提交按钮
const showFlowSubmitButton = computed(()=>{ const showFlowSubmitButton = computed(() => {
if(props.formBpm === true){ if (props.formBpm === true) {
if(props.formData.disabled === false){ if (props.formData.disabled === false) {
return true return true;
} }
} }
return false return false;
}); });
function add() { function add() {
resetFields(); resetFields();
} }
@@ -352,12 +378,12 @@
resetFields(); resetFields();
const tmpData = {}; const tmpData = {};
Object.keys(formData).forEach((key) => { Object.keys(formData).forEach((key) => {
if(row.hasOwnProperty(key)){ if (row.hasOwnProperty(key)) {
tmpData[key] = row[key] tmpData[key] = row[key];
} }
}) });
//赋值 //赋值
Object.assign(formData,tmpData); Object.assign(formData, tmpData);
clearSupDeptLeaderIfNotNeeded(); clearSupDeptLeaderIfNotNeeded();
} }
@@ -374,7 +400,7 @@
} }
return Promise.reject(errorFields); return Promise.reject(errorFields);
} }
return normalizeMainFormData(toRaw(formData)) return normalizeMainFormData(toRaw(formData));
} }
function normalizeMainFormData(data) { function normalizeMainFormData(data) {
@@ -394,8 +420,8 @@
async function submitForm() { async function submitForm() {
const mainData = await getFormData(); const mainData = await getFormData();
const values = Object.assign({}, dbData, mainData); const values = Object.assign({}, dbData, mainData);
console.log('表单提交数据', values) console.log('表单提交数据', values);
const isUpdate = values.id ? true : false const isUpdate = values.id ? true : false;
await saveOrUpdate(values, isUpdate); await saveOrUpdate(values, isUpdate);
createMessage.success('保存成功'); createMessage.success('保存成功');
//关闭弹窗 //关闭弹窗
@@ -403,8 +429,8 @@
} }
function setFieldsValue(values) { function setFieldsValue(values) {
if(values){ if (values) {
Object.keys(values).map(k=>{ Object.keys(values).map((k) => {
formData[k] = values[k]; formData[k] = values[k];
}); });
clearSupDeptLeaderIfNotNeeded(); clearSupDeptLeaderIfNotNeeded();
@@ -420,7 +446,6 @@
formData[key] = value; formData[key] = value;
} }
return { return {
validatorRules, validatorRules,
validateInfos, validateInfos,
@@ -443,8 +468,8 @@
add, add,
edit, edit,
formRef, formRef,
} };
} },
}); });
</script> </script>
@@ -15,7 +15,12 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="定点联系所领导" v-bind="validateInfos.contactLeader" id="FixedContact20260730Form-contactLeader" name="contactLeader"> <a-form-item
label="定点联系所领导"
v-bind="validateInfos.contactLeader"
id="FixedContact20260730Form-contactLeader"
name="contactLeader"
>
<DeptRoleUserSelectDropDown <DeptRoleUserSelectDropDown
v-model:value="formData.contactLeader" v-model:value="formData.contactLeader"
:deptId="PARTY_COMMITTEE_DEPT_ID" :deptId="PARTY_COMMITTEE_DEPT_ID"
@@ -31,7 +36,13 @@
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="联系时间" v-bind="validateInfos.contactTime" id="FixedContact20260730Form-contactTime" name="contactTime"> <a-form-item label="联系时间" v-bind="validateInfos.contactTime" id="FixedContact20260730Form-contactTime" name="contactTime">
<a-date-picker v-model:value="formData.contactTime" value-format="YYYY-MM-DD" placeholder="请选择联系时间" style="width: 100%" allow-clear /> <a-date-picker
v-model:value="formData.contactTime"
value-format="YYYY-MM-DD"
placeholder="请选择联系时间"
style="width: 100%"
allow-clear
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
@@ -40,22 +51,48 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="24"> <a-col :xs="24" :md="24">
<a-form-item label="联系点建议诉求摘要" v-bind="validateInfos.suggestionSummary" id="FixedContact20260730Form-suggestionSummary" name="suggestionSummary" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol"> <a-form-item
label="联系点建议诉求摘要"
v-bind="validateInfos.suggestionSummary"
id="FixedContact20260730Form-suggestionSummary"
name="suggestionSummary"
:labelCol="wideLabelCol"
:wrapperCol="wideWrapperCol"
>
<a-textarea v-model:value="formData.suggestionSummary" :rows="4" placeholder="请输入联系点建议诉求摘要" style="width: 100%" /> <a-textarea v-model:value="formData.suggestionSummary" :rows="4" placeholder="请输入联系点建议诉求摘要" style="width: 100%" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="24"> <a-col :xs="24" :md="24">
<a-form-item label="定点联系所领导审批意见" v-bind="validateInfos.leaderOpinion" id="FixedContact20260730Form-leaderOpinion" name="leaderOpinion" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol"> <a-form-item
label="定点联系所领导审批意见"
v-bind="validateInfos.leaderOpinion"
id="FixedContact20260730Form-leaderOpinion"
name="leaderOpinion"
:labelCol="wideLabelCol"
:wrapperCol="wideWrapperCol"
>
<a-textarea v-model:value="formData.leaderOpinion" :rows="4" placeholder="请输入定点联系所领导审批意见" style="width: 100%" /> <a-textarea v-model:value="formData.leaderOpinion" :rows="4" placeholder="请输入定点联系所领导审批意见" style="width: 100%" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="24"> <a-col :xs="24" :md="24">
<a-form-item label="相关分管所领导批示意见" v-bind="validateInfos.relatedLeaderOpinion" id="FixedContact20260730Form-relatedLeaderOpinion" name="relatedLeaderOpinion" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol"> <a-form-item
label="相关分管所领导批示意见"
v-bind="validateInfos.relatedLeaderOpinion"
id="FixedContact20260730Form-relatedLeaderOpinion"
name="relatedLeaderOpinion"
:labelCol="wideLabelCol"
:wrapperCol="wideWrapperCol"
>
<a-textarea v-model:value="formData.relatedLeaderOpinion" :rows="4" placeholder="请输入相关分管所领导批示意见" style="width: 100%" /> <a-textarea v-model:value="formData.relatedLeaderOpinion" :rows="4" placeholder="请输入相关分管所领导批示意见" style="width: 100%" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="相关分管所领导" v-bind="validateInfos.relatedLeader" id="FixedContact20260730Form-relatedLeader" name="relatedLeader"> <a-form-item
label="相关分管所领导"
v-bind="validateInfos.relatedLeader"
id="FixedContact20260730Form-relatedLeader"
name="relatedLeader"
>
<DeptRoleUserSelectDropDown <DeptRoleUserSelectDropDown
v-model:value="formData.relatedLeader" v-model:value="formData.relatedLeader"
:deptId="PARTY_COMMITTEE_DEPT_ID" :deptId="PARTY_COMMITTEE_DEPT_ID"
@@ -80,7 +117,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="是否所办领导审批" id="FixedContact20260730Form-isNeedAppro" name="isNeedAppro"> <a-form-item label="是否所办负责人审批" id="FixedContact20260730Form-isNeedAppro" name="isNeedAppro">
<a-radio-group v-model:value="formData.isNeedAppro"> <a-radio-group v-model:value="formData.isNeedAppro">
<a-radio value="1"></a-radio> <a-radio value="1"></a-radio>
<a-radio value="0"></a-radio> <a-radio value="0"></a-radio>
@@ -88,13 +125,18 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :md="12"> <a-col :xs="24" :md="12">
<a-form-item label="所办领导" v-bind="validateInfos.supDeptleaderid" id="FixedContact20260730Form-supDeptleaderid" name="supDeptleaderid"> <a-form-item
label="所办负责人"
v-bind="validateInfos.supDeptleaderid"
id="FixedContact20260730Form-supDeptleaderid"
name="supDeptleaderid"
>
<DeptRoleUserSelectDropDown <DeptRoleUserSelectDropDown
v-model:value="formData.supDeptleaderid" v-model:value="formData.supDeptleaderid"
:deptId="SUOBAN_DEPT_ID" :deptId="SUOBAN_DEPT_ID"
:roleId="MEASURE_RES_LEADER_ROLE_ID" :roleId="MEASURE_RES_LEADER_ROLE_ID"
:disabled="formData.isNeedAppro !== '1'" :disabled="formData.isNeedAppro !== '1'"
placeholder="请选择所办领导" placeholder="请选择所办负责人"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -34,7 +34,7 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
## 整改任务审批流程 ## 整改任务审批流程
### 节点: <责任部门领导接受任务并分配> ### 节点: <责任部门负责人接受任务并分配>
* taskDefKey: `<Task_1c64uvl>` * taskDefKey: `<Task_1c64uvl>`
* **edit** `1` —— 基础信息可编辑 * **edit** `1` —— 基础信息可编辑
@@ -57,7 +57,7 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `1` —— 编辑/删除操作列 * **showEditFeedback** `1` —— 编辑/删除操作列
* dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1 * dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1
--- ---
### 节点: <责任部门领导审批> ### 节点: <责任部门负责人审批>
* taskDefKey: `<Task_0mxtg05>` * taskDefKey: `<Task_0mxtg05>`
* **edit** `0` —— 基础信息只读 * **edit** `0` —— 基础信息只读
@@ -55,7 +55,7 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1 * dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1
--- ---
### 节点: <责任部门领导审批> ### 节点: <责任部门负责人审批>
* taskDefKey: `<Task_0mxtg05>` * taskDefKey: `<Task_0mxtg05>`
* dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1 * dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1
--- ---
@@ -65,7 +65,7 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1 * dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1
--- ---
### 节点: <责任部门领导接受任务并分配> ### 节点: <责任部门负责人接受任务并分配>
* taskDefKey: `<Task_1c64uvl>` * taskDefKey: `<Task_1c64uvl>`
* dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showSubApproveUser=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1 * dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showSubApproveUser=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1
--- ---
@@ -42,7 +42,7 @@ export const columns: BasicColumn[] = [
dataIndex: 'measureResDept_dictText', dataIndex: 'measureResDept_dictText',
}, },
{ {
title: '措施责任领导', title: '措施责任负责人',
align: 'center', align: 'center',
dataIndex: 'measureResLeader_dictText', dataIndex: 'measureResLeader_dictText',
}, },
@@ -57,12 +57,12 @@ export const columns: BasicColumn[] = [
dataIndex: 'evaluationCriterion', dataIndex: 'evaluationCriterion',
}, },
{ {
title: '是否需要党群领导审批', title: '是否需要党群负责人审批',
align: 'center', align: 'center',
dataIndex: 'isNeedAppro_dictText', dataIndex: 'isNeedAppro_dictText',
}, },
{ {
title: '党群领导', title: '党群负责人',
align: 'center', align: 'center',
dataIndex: 'supDeptleaderid_dictText', dataIndex: 'supDeptleaderid_dictText',
}, },
@@ -177,12 +177,12 @@ export const superQuerySchema = {
improveMeasure: {title: '整改措施',order: 2,view: 'text', type: 'string',}, improveMeasure: {title: '整改措施',order: 2,view: 'text', type: 'string',},
deadline: {title: '完成时限',order: 3,view: 'date', type: 'string',}, deadline: {title: '完成时限',order: 3,view: 'date', type: 'string',},
targetNode: {title: '目标节点',order: 4,view: 'text', type: 'string',}, targetNode: {title: '目标节点',order: 4,view: 'text', type: 'string',},
measureResLeader: {title: '措施责任领导',order: 5,view: 'sel_user', type: 'string',}, measureResLeader: {title: '措施责任负责人',order: 5,view: 'sel_user', type: 'string',},
measureResDept: {title: '措施责任部门',order: 6,view: 'sel_depart', type: 'string',}, measureResDept: {title: '措施责任部门',order: 6,view: 'sel_depart', type: 'string',},
rectificationEvidence: {title: '整改交付成果',order: 7,view: 'text', type: 'string',}, rectificationEvidence: {title: '整改交付成果',order: 7,view: 'text', type: 'string',},
evaluationCriterion: {title: '成效评价标准',order: 8,view: 'text', type: 'string',}, evaluationCriterion: {title: '成效评价标准',order: 8,view: 'text', type: 'string',},
isNeedAppro: {title: '是否需要党群领导审批',order: 9,view: 'radio', type: 'string',dictCode: 'yn',}, isNeedAppro: {title: '是否需要党群负责人审批',order: 9,view: 'radio', type: 'string',dictCode: 'yn',},
supDeptleaderid: {title: '党群领导',order: 10,view: 'sel_user', type: 'string',}, supDeptleaderid: {title: '党群负责人',order: 10,view: 'sel_user', type: 'string',},
inspectionStatus: {title: '检查情况',order: 11,view: 'text', type: 'string',}, inspectionStatus: {title: '检查情况',order: 11,view: 'text', type: 'string',},
supervisoryOpinion: {title: '监督意见',order: 12,view: 'text', type: 'string',}, supervisoryOpinion: {title: '监督意见',order: 12,view: 'text', type: 'string',},
measureCount: {title: '措施数量',order: 13,view: 'number', type: 'number',}, measureCount: {title: '措施数量',order: 13,view: 'number', type: 'number',},
@@ -252,7 +252,7 @@ export const ledgerColumns: BasicColumn[] = [
dataIndex: 'measureResDept_dictText' dataIndex: 'measureResDept_dictText'
}, },
{ {
title: '措施责任领导', title: '措施责任负责人',
align:"center", align:"center",
dataIndex: 'measureResLeader_dictText' dataIndex: 'measureResLeader_dictText'
}, },
@@ -11,9 +11,8 @@
</a-col> </a-col>
<a-col :xl="5" :lg="6" :md="8" :sm="12"> <a-col :xl="5" :lg="6" :md="8" :sm="12">
<a-form-item label="分管所领导" name="chargeLeaderId"> <a-form-item label="分管所领导" name="chargeLeaderId">
<DeptRoleUserSelectDropDown <RoleUserSelectDropDown
v-model:value="queryParam.chargeLeaderId" v-model:value="queryParam.chargeLeaderId"
:deptId="PARTY_COMMITTEE_DEPT_ID"
:roleId="CHARGE_LEADER_ROLE_ID" :roleId="CHARGE_LEADER_ROLE_ID"
placeholder="请选择分管所领导" placeholder="请选择分管所领导"
allow-clear allow-clear
@@ -160,7 +159,7 @@
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import Icon from '/@/components/Icon/index'; import Icon from '/@/components/Icon/index';
import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue'; import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue';
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue'; import RoleUserSelectDropDown from '@/components/semri/userComponent/RoleUserSelectDropDown.vue';
import { PARTY_COMMITTEE_DEPT_ID, CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision'; import { PARTY_COMMITTEE_DEPT_ID, CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
import { startProcessSchedules } from '/@/api/common/api'; import { startProcessSchedules } from '/@/api/common/api';
import { dateUtil } from '/@/utils/dateUtil'; import { dateUtil } from '/@/utils/dateUtil';
@@ -72,17 +72,34 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="措施责任领导" name="measureResLeader"> <a-form-item label="措施责任领导" name="measureResLeader">
<j-select-user v-model:value="mainForm.measureResLeader" :disabled="mainDisabled" allow-clear @select="selectHandler('measureResLeader')" /> <j-select-user
v-model:value="mainForm.measureResLeader"
:disabled="mainDisabled"
allow-clear
@select="selectHandler('measureResLeader')"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="措施责任部门" name="measureResDept"> <a-form-item label="措施责任部门" name="measureResDept">
<j-select-dept v-model:value="mainForm.measureResDept" :disabled="mainDisabled" :multiple="true" checkStrictly allow-clear @select="selectHandler('measureResDept')" /> <j-select-dept
v-model:value="mainForm.measureResDept"
:disabled="mainDisabled"
:multiple="true"
checkStrictly
allow-clear
@select="selectHandler('measureResDept')"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="分管所领导" name="chargeLeaderId"> <a-form-item label="分管所领导" name="chargeLeaderId">
<j-select-user v-model:value="mainForm.chargeLeaderId" :disabled="mainDisabled" allow-clear @select="selectHandler('chargeLeaderId')" /> <j-select-user
v-model:value="mainForm.chargeLeaderId"
:disabled="mainDisabled"
allow-clear
@select="selectHandler('chargeLeaderId')"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@@ -96,13 +113,18 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="是否需要党群领导审批" name="isNeedAppro"> <a-form-item label="是否需要党群负责人审批" name="isNeedAppro">
<j-dict-select-tag type="radio" v-model:value="mainForm.isNeedAppro" dictCode="yn" :disabled="mainDisabled" allow-clear /> <j-dict-select-tag type="radio" v-model:value="mainForm.isNeedAppro" dictCode="yn" :disabled="mainDisabled" allow-clear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="党群领导" name="supDeptleaderid"> <a-form-item label="党群负责人" name="supDeptleaderid">
<j-select-user v-model:value="mainForm.supDeptleaderid" :disabled="mainDisabled" allow-clear @select="selectHandler('supDeptleaderid')" /> <j-select-user
v-model:value="mainForm.supDeptleaderid"
:disabled="mainDisabled"
allow-clear
@select="selectHandler('supDeptleaderid')"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@@ -194,28 +216,33 @@
</a-col> </a-col>
<a-col v-if="showSubApproveUserSelector" :xs="24" :md="{ span: 22, offset: 1 }"> <a-col v-if="showSubApproveUserSelector" :xs="24" :md="{ span: 22, offset: 1 }">
<a-form-item label="部门经办人" :labelCol="processLabelCol" :wrapperCol="processUserWrapperCol"> <a-form-item label="部门经办人" :labelCol="processLabelCol" :wrapperCol="processUserWrapperCol">
<sz-dept-user-modal class="process-user-selector" v-model:value="subApproveUser" :disabled="savingSubApproveUser" @confirm="onSubApproveUserConfirm" /> <sz-dept-user-modal
class="process-user-selector"
v-model:value="subApproveUser"
:disabled="savingSubApproveUser"
@confirm="onSubApproveUserConfirm"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form> </a-form>
<!-- <a-form v-if="showIsNeedLeaderApprove" class="process-variable-form" labelAlign="left" :labelCol="labelCol" :wrapperCol="wrapperCol">--> <!-- <a-form v-if="showIsNeedLeaderApprove" class="process-variable-form" labelAlign="left" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <a-row :gutter="16">--> <!-- <a-row :gutter="16">-->
<!-- <a-col :span="12">--> <!-- <a-col :span="12">-->
<!-- <a-form-item label="是否需要所领导审批" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">--> <!-- <a-form-item label="是否需要所领导审批" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">-->
<!-- <a-radio-group v-model:value="isNeedLeaderApprove" :disabled="savingIsNeedLeaderApprove">--> <!-- <a-radio-group v-model:value="isNeedLeaderApprove" :disabled="savingIsNeedLeaderApprove">-->
<!-- <a-radio :value="0">不需要</a-radio>--> <!-- <a-radio :value="0">不需要</a-radio>-->
<!-- <a-radio :value="1">需要所领导审批</a-radio>--> <!-- <a-radio :value="1">需要所领导审批</a-radio>-->
<!-- </a-radio-group>--> <!-- </a-radio-group>-->
<!-- </a-form-item>--> <!-- </a-form-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<!-- <a-col v-if="showIsNeedLeaderApproveSelector" :span="12">--> <!-- <a-col v-if="showIsNeedLeaderApproveSelector" :span="12">-->
<!-- <a-form-item label="分管所领导" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">--> <!-- <a-form-item label="分管所领导" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">-->
<!-- <j-select-user v-model:value="leaderApproveUser" :disabled="savingIsNeedLeaderApprove" allow-clear @select="selectHandler('leaderApproveUser')" />--> <!-- <j-select-user v-model:value="leaderApproveUser" :disabled="savingIsNeedLeaderApprove" allow-clear @select="selectHandler('leaderApproveUser')" />-->
<!-- </a-form-item>--> <!-- </a-form-item>-->
<!-- </a-col>--> <!-- </a-col>-->
<!-- </a-row>--> <!-- </a-row>-->
<!-- </a-form>--> <!-- </a-form>-->
<TaskHandleInnerContent <TaskHandleInnerContent
:form-data="formData" :form-data="formData"
:claim="claim" :claim="claim"
@@ -237,16 +264,16 @@
import { useUserStore } from '/@/store/modules/user'; import { useUserStore } from '/@/store/modules/user';
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue'; import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue'; import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue'; import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import Icon from '/@/components/Icon/index'; import Icon from '/@/components/Icon/index';
import { saveBpmForm, setProcessVariable, specificProblemOptions } from '../DqInspectTask.api'; import { saveBpmForm, setProcessVariable, specificProblemOptions } from '../DqInspectTask.api';
import { list as progressList, deleteOne as progressDelete } from '../../inspectProgress/DqInspectProgress.api'; import { list as progressList, deleteOne as progressDelete } from '../../inspectProgress/DqInspectProgress.api';
import { usePermission } from '/@/hooks/web/usePermission'; import { usePermission } from '/@/hooks/web/usePermission';
import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervision'; import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervision';
import { useSelectNameResolver } from '/@/composables/useSelectNameResolver'; import { useSelectNameResolver } from '/@/composables/useSelectNameResolver';
import { useSubApproveUserResolver } from '/@/composables/useSubApproveUserResolver'; import { useSubApproveUserResolver } from '/@/composables/useSubApproveUserResolver';
import { buildDeptLeaderAssignReason, normalizeDeptNames } from '/@/composables/useDefaultApprovalReason'; import { buildDeptLeaderAssignReason, normalizeDeptNames } from '/@/composables/useDefaultApprovalReason';
import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue'; import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue';
import DqInspectTaskBPMFeedbackModal from './DqInspectTaskBPMFeedbackModal.vue'; import DqInspectTaskBPMFeedbackModal from './DqInspectTaskBPMFeedbackModal.vue';
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue'; import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
@@ -276,8 +303,6 @@ import { buildDeptLeaderAssignReason, normalizeDeptNames } from '/@/composables/
const processWideWrapperCol = { xs: { span: 24 }, sm: { span: 20 }, md: { span: 22 } }; const processWideWrapperCol = { xs: { span: 24 }, sm: { span: 20 }, md: { span: 22 } };
const processUserWrapperCol = { xs: { span: 24 }, sm: { span: 20 }, md: { span: 9 } }; const processUserWrapperCol = { xs: { span: 24 }, sm: { span: 20 }, md: { span: 9 } };
const feedbackModalRef = ref(); const feedbackModalRef = ref();
const loading = ref(false); const loading = ref(false);
const savingMain = ref(false); const savingMain = ref(false);
@@ -392,9 +417,7 @@ import { buildDeptLeaderAssignReason, normalizeDeptNames } from '/@/composables/
const nonJiJianFieldsReadonly = computed(() => String(props.formData?.extendUrlParams?.nonJiJianFieldsReadonly ?? '') === '1'); const nonJiJianFieldsReadonly = computed(() => String(props.formData?.extendUrlParams?.nonJiJianFieldsReadonly ?? '') === '1');
const showSelnextUser = computed(() => String(props.formData?.extendUrlParams?.showSelnextUser ?? '') === '1'); const showSelnextUser = computed(() => String(props.formData?.extendUrlParams?.showSelnextUser ?? '') === '1');
const showSubApproveUser = computed(() => String(props.formData?.extendUrlParams?.showSubApproveUser ?? '') === '1'); const showSubApproveUser = computed(() => String(props.formData?.extendUrlParams?.showSubApproveUser ?? '') === '1');
const showIsNeedLeaderApprove = computed( const showIsNeedLeaderApprove = computed(() => String(props.formData?.extendUrlParams?.showIsNeedLeaderApprove ?? '') === '1');
() => String(props.formData?.extendUrlParams?.showIsNeedLeaderApprove ?? '') === '1'
);
const showSubApproveUserSelector = computed(() => showSubApproveUser.value && String(isEnd.value) !== '1'); const showSubApproveUserSelector = computed(() => showSubApproveUser.value && String(isEnd.value) !== '1');
const showIsNeedLeaderApproveSelector = computed(() => showIsNeedLeaderApprove.value && String(isNeedLeaderApprove.value) === '1'); const showIsNeedLeaderApproveSelector = computed(() => showIsNeedLeaderApprove.value && String(isNeedLeaderApprove.value) === '1');
@@ -416,7 +439,7 @@ import { buildDeptLeaderAssignReason, normalizeDeptNames } from '/@/composables/
// ==================== 默认审批意见 ==================== // ==================== 默认审批意见 ====================
// 仅覆盖需要动态内容(人名)的节点,其余节点走后端节点配置 // 仅覆盖需要动态内容(人名)的节点,其余节点走后端节点配置
const handleReasonTemplateMap: Record<string, () => string> = { const handleReasonTemplateMap: Record<string, () => string> = {
// 责任部门领导接受任务并分配 // 责任部门负责人接受任务并分配
Task_1c64uvl: () => { Task_1c64uvl: () => {
if (isEnd.value === 1) return ''; if (isEnd.value === 1) return '';
return buildDeptLeaderAssignReason(normalizeDeptNames(subApproveUserNames.value)); return buildDeptLeaderAssignReason(normalizeDeptNames(subApproveUserNames.value));
@@ -430,7 +453,10 @@ import { buildDeptLeaderAssignReason, normalizeDeptNames } from '/@/composables/
provide('formDefaultReason', defaultHandleReason); provide('formDefaultReason', defaultHandleReason);
provide('extraVars', formScope); provide('extraVars', formScope);
provide('flowVars', computed(() => props.formData?.vars || {})); provide(
'flowVars',
computed(() => props.formData?.vars || {})
);
provide('defaultCcUsers', defaultCcUsers); provide('defaultCcUsers', defaultCcUsers);
onMounted(() => { onMounted(() => {
@@ -7,7 +7,14 @@
<a-divider orientation="left" plain>基本信息</a-divider> <a-divider orientation="left" plain>基本信息</a-divider>
<a-row :gutter="[16, 0]"> <a-row :gutter="[16, 0]">
<a-col :span="24"> <a-col :span="24">
<a-form-item label="具体问题" v-bind="validateInfos.problemId" id="DqInspectTaskForm-problemId" name="problemId" :labelCol="{ xs: { span: 24 }, sm: { span: 4 } }" :wrapperCol="{ xs: { span: 24 }, sm: { span: 20 } }"> <a-form-item
label="具体问题"
v-bind="validateInfos.problemId"
id="DqInspectTaskForm-problemId"
name="problemId"
:labelCol="{ xs: { span: 24 }, sm: { span: 4 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 20 } }"
>
<a-tree-select <a-tree-select
v-model:value="formData.problemId" v-model:value="formData.problemId"
:tree-data="problemTreeData" :tree-data="problemTreeData"
@@ -78,7 +85,7 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item <a-form-item
label="措施责任领导" label="措施责任负责人"
v-bind="validateInfos.measureResLeader" v-bind="validateInfos.measureResLeader"
id="DqInspectTaskForm-measureResLeader" id="DqInspectTaskForm-measureResLeader"
name="measureResLeader" name="measureResLeader"
@@ -88,18 +95,13 @@
:deptId="measureResDeptId" :deptId="measureResDeptId"
:roleId="MEASURE_RES_LEADER_ROLE_ID" :roleId="MEASURE_RES_LEADER_ROLE_ID"
:disabled="measureResLeaderDisabled" :disabled="measureResLeaderDisabled"
placeholder="请选择措施责任领导" placeholder="请选择措施责任负责人"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="分管所领导" v-bind="validateInfos.chargeLeaderId" id="DqInspectTaskForm-chargeLeaderId" name="chargeLeaderId"> <a-form-item label="分管所领导" v-bind="validateInfos.chargeLeaderId" id="DqInspectTaskForm-chargeLeaderId" name="chargeLeaderId">
<DeptRoleUserSelectDropDown <RoleUserSelectDropDown v-model:value="formData.chargeLeaderId" :roleId="CHARGE_LEADER_ROLE_ID" placeholder="请选择分管所领导" />
v-model:value="formData.chargeLeaderId"
:deptId="CHARGE_LEADER_DEPT_ID"
:roleId="CHARGE_LEADER_ROLE_ID"
placeholder="请选择分管所领导"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@@ -123,13 +125,17 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="需党群领导审批" v-bind="validateInfos.isNeedAppro" id="DqInspectTaskForm-isNeedAppro" name="isNeedAppro"> <a-form-item label="需党群负责人审批" v-bind="validateInfos.isNeedAppro" id="DqInspectTaskForm-isNeedAppro" name="isNeedAppro">
<j-switch v-model:value="formData.isNeedAppro" /> <j-switch v-model:value="formData.isNeedAppro" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col v-if="formData.isNeedAppro === '1'" :span="12"> <a-col v-if="formData.isNeedAppro === '1'" :span="12">
<a-form-item label="党群领导" v-bind="validateInfos.supDeptleaderid" id="DqInspectTaskForm-supDeptleaderid" name="supDeptleaderid"> <a-form-item label="党群负责人" v-bind="validateInfos.supDeptleaderid" id="DqInspectTaskForm-supDeptleaderid" name="supDeptleaderid">
<DeptRoleUserSelectRadioGroup v-model:value="formData.supDeptleaderid" :deptId="PARTY_MASSES_DEPT_ID" :roleId="MEASURE_RES_LEADER_ROLE_ID" /> <DeptRoleUserSelectRadioGroup
v-model:value="formData.supDeptleaderid"
:deptId="PARTY_MASSES_DEPT_ID"
:roleId="MEASURE_RES_LEADER_ROLE_ID"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@@ -168,18 +174,25 @@
import { JVxeTable } from '/@/components/jeecg/JVxeTable'; import { JVxeTable } from '/@/components/jeecg/JVxeTable';
import { dqInspectProgressColumns } from '../DqInspectTask.data'; import { dqInspectProgressColumns } from '../DqInspectTask.data';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import JSwitch from '/@/components/Form/src/jeecg/components/JSwitch.vue'; import JSwitch from '/@/components/Form/src/jeecg/components/JSwitch.vue';
import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue'; import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue';
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue'; import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
import { Form } from 'ant-design-vue'; import { Form } from 'ant-design-vue';
import DeptRoleUserSelectDropDown from '@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue'; import DeptRoleUserSelectDropDown from '@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
import { PARTY_COMMITTEE_DEPT_ID, CHARGE_LEADER_ROLE_ID as _CHARGE_LEADER_ROLE_ID, PARTY_MASSES_DEPT_ID as _PARTY_MASSES_DEPT_ID, MEASURE_RES_LEADER_ROLE_ID as _MEASURE_RES_LEADER_ROLE_ID } from '/@/constant/supervision'; import {
PARTY_COMMITTEE_DEPT_ID,
CHARGE_LEADER_ROLE_ID as _CHARGE_LEADER_ROLE_ID,
PARTY_MASSES_DEPT_ID as _PARTY_MASSES_DEPT_ID,
MEASURE_RES_LEADER_ROLE_ID as _MEASURE_RES_LEADER_ROLE_ID,
} from '/@/constant/supervision';
import RoleUserSelectDropDown from '@/components/semri/userComponent/RoleUserSelectDropDown.vue';
const useForm = Form.useForm; const useForm = Form.useForm;
export default defineComponent({ export default defineComponent({
name: 'DqInspectTaskForm', name: 'DqInspectTaskForm',
components: { components: {
RoleUserSelectDropDown,
DeptRoleUserSelectDropDown, DeptRoleUserSelectDropDown,
JDictSelectTag, JDictSelectTag,
JSwitch, JSwitch,
@@ -249,9 +262,9 @@ import { PARTY_COMMITTEE_DEPT_ID, CHARGE_LEADER_ROLE_ID as _CHARGE_LEADER_ROLE_I
improveMeasure: [{ required: true, message: '请输入整改措施' }], improveMeasure: [{ required: true, message: '请输入整改措施' }],
deadline: [{ required: true, message: '请选择完成时限' }], deadline: [{ required: true, message: '请选择完成时限' }],
measureResDept: [{ required: true, message: '请选择措施责任部门' }], measureResDept: [{ required: true, message: '请选择措施责任部门' }],
measureResLeader: [{ required: true, message: '请选择措施责任领导' }], measureResLeader: [{ required: true, message: '请选择措施责任负责人' }],
chargeLeaderId: [{ required: true, message: '请选择分管所领导' }], chargeLeaderId: [{ required: true, message: '请选择分管所领导' }],
isNeedAppro: [{ required: true, message: '请选择是否需要党群领导审批' }], isNeedAppro: [{ required: true, message: '请选择是否需要党群负责人审批' }],
}); });
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false }); const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
const dbData = {}; const dbData = {};