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