!15 feat(xispeak): 督办领导列表统一改用SzUserSelectByDeptRoleSecurityModal弹窗选人,存储use…
* feat(xispeak): 督办领导列表统一改用SzUserSelectByDeptRoleSecurityModal弹窗选人,存储use… * feat(xispeak): 督办领导列表改用SzUserSelectByDeptRoleSecurityModal弹窗选人 * chore(xispeak): 更新 BPM_NODE_PERMISSIONS 节点权限配置 * feat(xispeak): 新增 showSelnextUser 权限控制,默认隐藏指定下一步操作人 * fix(xispeak): 修复是否报送上级报告字段显示0/1而非字典标签 * feat(xispeak): 新增 nonJiJianFieldsReadonly 权限控制,支持除纪检字段外全部只读 * fix(xispeak): 修复反馈表单标签对齐和网格布局问题 * fix(xispeak): 指定落实措施条数、措施已闭环数量、督办次数设为不可编辑
This commit is contained in:
@@ -13,12 +13,14 @@
|
||||
edit → 基础信息是否可编辑(1=可编辑, 缺省=只读)
|
||||
|
||||
showProcessHandle → 流程办理区域
|
||||
└── showSubApproveUser → 是否办结 + 部门经办人选人
|
||||
├── showSubApproveUser → 是否办结 + 部门经办人选人
|
||||
└── showSelnextUser → 指定下一步操作人(默认隐藏,=1 显示)
|
||||
|
||||
showFeedbackInfo → 反馈信息区域(表格 + 表头)
|
||||
├── showAddFeedback → 新增反馈按钮
|
||||
├── showEditFeedback → 编辑/删除操作列
|
||||
│ └── jiJianFieldsReadonly → 弹窗内纪检字段只读(需 showEditFeedback=1 或 showAddFeedback=1)
|
||||
│ ├── jiJianFieldsReadonly → 弹窗内纪检字段只读(需 showEditFeedback=1 或 showAddFeedback=1)
|
||||
│ └── nonJiJianFieldsReadonly → 弹窗内非纪检字段只读(仅纪检字段可编辑,需 showEditFeedback=1 或 showAddFeedback=1)
|
||||
├── showDeptFeedback → 按部门过滤反馈数据
|
||||
└── showJiJianFields → 纪检字段列(检查情况/监督意见/措施数量)
|
||||
```
|
||||
@@ -195,9 +197,10 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
|
||||
* **showAddFeedback** `0` —— 新增反馈按钮
|
||||
* **showEditFeedback** `1` —— 编辑/删除操作列
|
||||
* **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读
|
||||
* **nonJiJianFieldsReadonly** `1` —— 弹窗内非纪检字段只读
|
||||
* **showDeptFeedback** `0` —— 按部门过滤反馈
|
||||
* **showJiJianFields** `1` —— 纪检字段列
|
||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1
|
||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&nonJiJianFieldsReadonly=1&showJiJianFields=1
|
||||
---
|
||||
|
||||
### 节点: <反馈流程纪检负责人审批>
|
||||
@@ -299,9 +302,10 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
|
||||
* **showAddFeedback** `0` —— 新增反馈按钮
|
||||
* **showEditFeedback** `1` —— 编辑/删除操作列
|
||||
* **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读
|
||||
* **nonJiJianFieldsReadonly** `1` —— 弹窗内非纪检字段只读
|
||||
* **showDeptFeedback** `0` —— 按部门过滤反馈
|
||||
* **showJiJianFields** `1` —— 纪检字段列
|
||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1
|
||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&nonJiJianFieldsReadonly=1&showJiJianFields=1
|
||||
---
|
||||
|
||||
|
||||
|
||||
@@ -575,6 +575,7 @@
|
||||
showSuoleaderFields: true,
|
||||
isNeedAppro: record?.needSdwApproval,
|
||||
supDeptleaderid: record?.sdwLeaderList,
|
||||
supDeptleaderName: record?.sdwLeaderList_dictText,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -586,6 +587,7 @@
|
||||
showSuoleaderFields: true,
|
||||
isNeedAppro: record?.needSdwApproval,
|
||||
supDeptleaderid: record?.sdwLeaderList,
|
||||
supDeptleaderName: record?.sdwLeaderList_dictText,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="反馈部门" name="responDeptid">
|
||||
<j-select-dept v-model:value="formData.responDeptid" :multiple="true" checkStrictly allow-clear @change="handleDeptChange" />
|
||||
<j-select-dept v-model:value="formData.responDeptid" :multiple="true" :disabled="nonJiJianFieldsReadonly" checkStrictly allow-clear @change="handleDeptChange" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -29,33 +29,33 @@
|
||||
|
||||
<a-col :span="24">
|
||||
<a-form-item label="具体措施" name="method" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||
<a-textarea v-model:value="formData.method" :rows="3" allow-clear />
|
||||
<a-textarea v-model:value="formData.method" :rows="3" :disabled="nonJiJianFieldsReadonly" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="完成期限" name="deadline">
|
||||
<a-date-picker v-model:value="formData.deadline" value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" allow-clear />
|
||||
<a-date-picker v-model:value="formData.deadline" value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" :disabled="nonJiJianFieldsReadonly" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="成果形式" name="outcomeForm">
|
||||
<a-input v-model:value="formData.outcomeForm" allow-clear />
|
||||
<a-input v-model:value="formData.outcomeForm" :disabled="nonJiJianFieldsReadonly" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="完成状态" name="completionStatus">
|
||||
<JDictSelectTag v-model:value="formData.completionStatus" dictCode="measure_complete_status" placeholder="请选择完成状态" type="select" allow-clear />
|
||||
<JDictSelectTag v-model:value="formData.completionStatus" dictCode="measure_complete_status" placeholder="请选择完成状态" type="select" :disabled="nonJiJianFieldsReadonly" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="是否有报送上级报告" name="isReportedToHigher">
|
||||
<JDictSelectTag v-model:value="formData.isReportedToHigher" dictCode="need_report_higher" placeholder="请选择" type="select" allow-clear />
|
||||
<JDictSelectTag v-model:value="formData.isReportedToHigher" dictCode="need_report_higher" placeholder="请选择" type="select" :stringToNumber="true" :disabled="nonJiJianFieldsReadonly" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :span="24">
|
||||
<a-form-item label="进展情况" name="progress" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||
<a-textarea v-model:value="formData.progress" :rows="3" allow-clear />
|
||||
<a-textarea v-model:value="formData.progress" :rows="3" :disabled="nonJiJianFieldsReadonly" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- <a-col :span="24">-->
|
||||
@@ -114,6 +114,7 @@
|
||||
const props = defineProps({
|
||||
showJiJianFields: { type: Boolean, default: false },
|
||||
jiJianFieldsReadonly: { type: Boolean, default: false },
|
||||
nonJiJianFieldsReadonly: { type: Boolean, default: false },
|
||||
});
|
||||
const { createMessage } = useMessage();
|
||||
const userStore = useUserStore();
|
||||
|
||||
@@ -85,16 +85,16 @@
|
||||
<a-input-number v-model:value="mainForm.numberOfResolutions" :disabled="mainDisabled" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="落实条数" name="implCount">
|
||||
<a-input-number v-model:value="mainForm.implCount" :disabled="mainDisabled" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="已闭环数量" name="closedCount">
|
||||
<a-input-number v-model:value="mainForm.closedCount" :disabled="mainDisabled" style="width: 100%" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- <a-col :span="12">-->
|
||||
<!-- <a-form-item label="落实条数" name="implCount">-->
|
||||
<!-- <a-input-number v-model:value="mainForm.implCount" :disabled="mainDisabled" style="width: 100%" />-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :span="12">-->
|
||||
<!-- <a-form-item label="已闭环数量" name="closedCount">-->
|
||||
<!-- <a-input-number v-model:value="mainForm.closedCount" :disabled="mainDisabled" style="width: 100%" />-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<a-col :span="12">
|
||||
<a-form-item label="完成状态" name="completionStatus">
|
||||
<JDictSelectTag
|
||||
@@ -141,7 +141,27 @@
|
||||
</a-col>
|
||||
<a-col v-if="mainForm.needSdwApproval === 1" :span="12">
|
||||
<a-form-item label="督导领导列表" name="sdwLeaderList">
|
||||
<j-select-user v-model:value="mainForm.sdwLeaderList" :disabled="mainDisabled" :multiple="true" allow-clear />
|
||||
<a-input
|
||||
v-model:value="sdwLeaderNames"
|
||||
placeholder="请选择督导领导"
|
||||
:disabled="mainDisabled"
|
||||
readonly
|
||||
allow-clear
|
||||
@click="openSdwLeaderModal"
|
||||
@clear="handleClearSdwLeader"
|
||||
>
|
||||
<template #suffix>
|
||||
<SearchOutlined @click="openSdwLeaderModal" />
|
||||
</template>
|
||||
</a-input>
|
||||
<SzUserSelectByDeptRoleSecurityModal
|
||||
v-model:open="sdwLeaderModalOpen"
|
||||
title="请选择所党委领导"
|
||||
:deptId="sdwLeaderDeptId"
|
||||
:roleId="sdwLeaderRoleId"
|
||||
:securityValue="sdwLeaderSecurityValue"
|
||||
@confirm="handleSdwLeaderConfirm"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- <a-col :span="12">-->
|
||||
@@ -225,6 +245,7 @@
|
||||
ref="feedbackModalRef"
|
||||
:showJiJianFields="showJiJianFields"
|
||||
:jiJianFieldsReadonly="jiJianFieldsReadonly"
|
||||
:nonJiJianFieldsReadonly="nonJiJianFieldsReadonly"
|
||||
@success="loadFeedbackList"
|
||||
/>
|
||||
|
||||
@@ -254,6 +275,7 @@
|
||||
<TaskHandleInnerContent
|
||||
:form-data="formData"
|
||||
:claim="claim"
|
||||
:showSelnextUser="showSelnextUser"
|
||||
:beforeHandle="saveMainFormBeforeProcessHandle"
|
||||
@success="handleProcessSuccess"
|
||||
@claimSuccess="handleClaimSuccess"
|
||||
@@ -266,6 +288,7 @@
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted, reactive, ref, watch } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { getUserList } from '/@/api/common/api';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
||||
@@ -284,6 +307,8 @@
|
||||
import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue';
|
||||
import BgXiSpeakBPMFeedbackModal from './BgXiSpeakBPMFeedbackModal.vue';
|
||||
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
||||
import SzUserSelectByDeptRoleSecurityModal from '/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue';
|
||||
import { SearchOutlined } from '@ant-design/icons-vue';
|
||||
|
||||
const { isDisabledAuth, hasPermission, initBpmFormData } = usePermission();
|
||||
const userStore = useUserStore();
|
||||
@@ -320,6 +345,42 @@
|
||||
const subApproveUser = ref('');
|
||||
const isEnd = ref(0);
|
||||
|
||||
// 督导领导选人弹窗
|
||||
const sdwLeaderModalOpen = ref(false);
|
||||
const sdwLeaderNames = ref('');
|
||||
const sdwLeaderDeptId = ref('2044677562460508161');
|
||||
const sdwLeaderRoleId = ref('2044676455280570370');
|
||||
const sdwLeaderSecurityValue = ref(5);
|
||||
|
||||
function openSdwLeaderModal() {
|
||||
sdwLeaderModalOpen.value = true;
|
||||
}
|
||||
|
||||
function handleClearSdwLeader() {
|
||||
mainForm.sdwLeaderList = '';
|
||||
sdwLeaderNames.value = '';
|
||||
}
|
||||
|
||||
function handleSdwLeaderConfirm(rows: Array<{ id: string; realname: string }>) {
|
||||
if (rows && rows.length > 0) {
|
||||
mainForm.sdwLeaderList = rows.map((r) => r.username).join(',');
|
||||
sdwLeaderNames.value = rows.map((r) => r.realname).join(',');
|
||||
} else {
|
||||
mainForm.sdwLeaderList = '';
|
||||
sdwLeaderNames.value = '';
|
||||
}
|
||||
}
|
||||
|
||||
async function resolveSdwLeaderNames(ids: string) {
|
||||
try {
|
||||
const res = await getUserList({ username: ids, pageSize: 999 });
|
||||
const records = res?.records || res?.result?.records || [];
|
||||
sdwLeaderNames.value = records.map((u: any) => u.realname).join(',');
|
||||
} catch {
|
||||
sdwLeaderNames.value = '';
|
||||
}
|
||||
}
|
||||
|
||||
const mainForm = reactive<Record<string, any>>({
|
||||
id: '',
|
||||
pid: '',
|
||||
@@ -409,6 +470,8 @@
|
||||
);
|
||||
const showJiJianFields = computed(() => String(props.formData?.extendUrlParams?.showJiJianFields ?? '') === '1');
|
||||
const jiJianFieldsReadonly = computed(() => String(props.formData?.extendUrlParams?.jiJianFieldsReadonly ?? '') === '1');
|
||||
const nonJiJianFieldsReadonly = computed(() => String(props.formData?.extendUrlParams?.nonJiJianFieldsReadonly ?? '') === '1');
|
||||
const showSelnextUser = computed(() => String(props.formData?.extendUrlParams?.showSelnextUser ?? '') === '1');
|
||||
const showDeptFields = computed(() => String(props.formData?.extendUrlParams?.deptfields ?? '') === '1');
|
||||
const showSubApproveUser = computed(
|
||||
() => String(props.formData?.extendUrlParams?.showSubApproveUser ?? props.formData?.extendUrlParams?.selectuser ?? '') === '1'
|
||||
@@ -468,6 +531,10 @@
|
||||
Object.keys(mainForm).forEach((key) => {
|
||||
mainForm[key] = record[key] ?? '';
|
||||
});
|
||||
sdwLeaderNames.value = record.sdwLeaderList_dictText || '';
|
||||
if (!sdwLeaderNames.value && mainForm.sdwLeaderList) {
|
||||
resolveSdwLeaderNames(mainForm.sdwLeaderList);
|
||||
}
|
||||
// 从 approveInfo JSON 初始化当前部门的 isEnd 和 subApproveUser
|
||||
const approveInfo = record.approveInfo;
|
||||
const deptId = getCurrentUserDeptId();
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<JFormContainer :disabled="disabled">
|
||||
<template #detail>
|
||||
<a-form class="antd-modal-form" v-bind="formItemLayout" ref="formRef" :model="formData" :rules="validatorRules" name="BgXiSpeakFeedbackForm">
|
||||
<a-form class="antd-modal-form" labelAlign="left" :labelCol="formItemLayout.labelCol" :wrapperCol="formItemLayout.wrapperCol" ref="formRef" :model="formData" :rules="validatorRules" name="BgXiSpeakFeedbackForm">
|
||||
<!-- 基本信息 -->
|
||||
<a-divider orientation="left" plain>基本信息</a-divider>
|
||||
<a-row :gutter="[16, 0]">
|
||||
@@ -42,6 +42,8 @@
|
||||
<a-textarea v-model:value="formData.method" placeholder="请输入措施内容" :rows="3" allow-clear></a-textarea>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="[16, 0]">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="完成期限" name="deadline">
|
||||
<a-date-picker
|
||||
@@ -58,6 +60,8 @@
|
||||
<a-input v-model:value="formData.outcomeForm" placeholder="请输入成果形式" allow-clear></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="[16, 0]">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="进展情况" v-bind="validateInfos.progress" name="progress">
|
||||
<a-textarea v-model:value="formData.progress" placeholder="请输入进展情况" :rows="3" allow-clear></a-textarea>
|
||||
@@ -83,6 +87,8 @@
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="[16, 0]">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="是否报送上级报告" name="isReportedToHigher">
|
||||
<JDictSelectTag
|
||||
@@ -90,6 +96,7 @@
|
||||
dictCode="need_report_higher"
|
||||
placeholder="请选择"
|
||||
type="select"
|
||||
:stringToNumber="true"
|
||||
allow-clear
|
||||
/>
|
||||
</a-form-item>
|
||||
@@ -99,11 +106,15 @@
|
||||
<a-input v-model:value="formData.checkStatus" placeholder="请输入检查情况" allow-clear></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="[16, 0]">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="落实计划" name="completionPlan">
|
||||
<a-textarea v-model:value="formData.completionPlan" placeholder="请输入落实计划" :rows="3" allow-clear></a-textarea>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="[16, 0]">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="总措施号" name="sumMethodNum">
|
||||
<a-input v-model:value="formData.sumMethodNum" placeholder="请输入总措施号" allow-clear></a-input>
|
||||
@@ -114,6 +125,8 @@
|
||||
<a-input-number v-model:value="formData.measureNum" placeholder="请输入措施数量" style="width: 100%" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="[16, 0]">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="监督意见" name="inspectionAdvice">
|
||||
<a-textarea v-model:value="formData.inspectionAdvice" placeholder="请输入监督意见" :rows="3" allow-clear></a-textarea>
|
||||
@@ -212,8 +225,6 @@
|
||||
startTime: '',
|
||||
});
|
||||
const { createMessage } = useMessage();
|
||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
const validatorRules = reactive({
|
||||
completionStatus: [{ required: true, message: '请选择完成状态' }],
|
||||
|
||||
@@ -67,8 +67,27 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col v-if="formData.needSdwApproval === 1" :span="12">
|
||||
<a-form-item label="督办领导列表" v-bind="validateInfos.sdwLeaderList" id="BgXiSpeakForm-sdwLeaderList" name="sdwLeaderList">
|
||||
<j-select-user v-model:value="formData.sdwLeaderList" :multiple="true" allow-clear placeholder="请选择督办领导" />
|
||||
<a-form-item label="督办领导列表" id="BgXiSpeakForm-sdwLeaderList" name="sdwLeaderList">
|
||||
<a-input
|
||||
v-model:value="sdwLeaderNames"
|
||||
placeholder="请选择督办领导"
|
||||
readonly
|
||||
allow-clear
|
||||
@click="openSdwLeaderModal"
|
||||
@clear="handleClearSdwLeader"
|
||||
>
|
||||
<template #suffix>
|
||||
<SearchOutlined @click="openSdwLeaderModal" />
|
||||
</template>
|
||||
</a-input>
|
||||
<SzUserSelectByDeptRoleSecurityModal
|
||||
v-model:open="sdwLeaderModalOpen"
|
||||
title="请选择所党委领导"
|
||||
:deptId="sdwLeaderDeptId"
|
||||
:roleId="sdwLeaderRoleId"
|
||||
:securityValue="sdwLeaderSecurityValue"
|
||||
@confirm="handleSdwLeaderConfirm"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -78,12 +97,12 @@
|
||||
<a-row :gutter="[16, 0]">
|
||||
<a-col :span="12">
|
||||
<a-form-item label="指定落实措施条数" v-bind="validateInfos.implCount" id="BgXiSpeakForm-implCount" name="implCount">
|
||||
<a-input-number v-model:value="formData.implCount" placeholder="每增加一条反馈数量加1" style="width: 100%" />
|
||||
<a-input-number v-model:value="formData.implCount" placeholder="每增加一条反馈数量加1" style="width: 100%" disabled />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="措施已闭环数量" v-bind="validateInfos.closedCount" id="BgXiSpeakForm-closedCount" name="closedCount">
|
||||
<a-input-number v-model:value="formData.closedCount" placeholder="完成反馈全流程后增加" style="width: 100%" />
|
||||
<a-input-number v-model:value="formData.closedCount" placeholder="完成反馈全流程后增加" style="width: 100%" disabled />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -103,7 +122,7 @@
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="督办次数" v-bind="validateInfos.supervisionCount" id="BgXiSpeakForm-supervisionCount" name="supervisionCount">
|
||||
<a-input-number v-model:value="formData.supervisionCount" placeholder="每次发起督办流程自动加1" style="width: 100%" />
|
||||
<a-input-number v-model:value="formData.supervisionCount" placeholder="每次发起督办流程自动加1" style="width: 100%" disabled />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -125,6 +144,9 @@
|
||||
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
||||
import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue';
|
||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
import SzUserSelectByDeptRoleSecurityModal from '/src/components/semri/userComponent/modal/SzUserSelectByDeptRoleSecurityModal.vue';
|
||||
import { SearchOutlined } from '@ant-design/icons-vue';
|
||||
import { getUserList } from '/@/api/common/api';
|
||||
import { getValueType } from '/@/utils';
|
||||
import { loadTreeData, saveOrUpdateDict } from '../BgXiSpeak.api';
|
||||
import { Form } from 'ant-design-vue';
|
||||
@@ -174,6 +196,42 @@
|
||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 18 } });
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
|
||||
// 督办领导选人弹窗
|
||||
const sdwLeaderModalOpen = ref(false);
|
||||
const sdwLeaderNames = ref('');
|
||||
const sdwLeaderDeptId = ref('2044677562460508161');
|
||||
const sdwLeaderRoleId = ref('2044676455280570370');
|
||||
const sdwLeaderSecurityValue = ref(5);
|
||||
|
||||
function openSdwLeaderModal() {
|
||||
sdwLeaderModalOpen.value = true;
|
||||
}
|
||||
|
||||
function handleClearSdwLeader() {
|
||||
formData.sdwLeaderList = '';
|
||||
sdwLeaderNames.value = '';
|
||||
}
|
||||
|
||||
function handleSdwLeaderConfirm(rows: Array<{ id: string; realname: string }>) {
|
||||
if (rows && rows.length > 0) {
|
||||
formData.sdwLeaderList = rows.map((r) => r.username).join(',');
|
||||
sdwLeaderNames.value = rows.map((r) => r.realname).join(',');
|
||||
} else {
|
||||
formData.sdwLeaderList = '';
|
||||
sdwLeaderNames.value = '';
|
||||
}
|
||||
}
|
||||
|
||||
async function resolveSdwLeaderNames(ids: string) {
|
||||
try {
|
||||
const res = await getUserList({ username: ids, pageSize: 999 });
|
||||
const records = res?.records || res?.result?.records || [];
|
||||
sdwLeaderNames.value = records.map((u: any) => u.realname).join(',');
|
||||
} catch {
|
||||
sdwLeaderNames.value = '';
|
||||
}
|
||||
}
|
||||
|
||||
const validatorRules = reactive({
|
||||
speakStatus: [{ required: true, message: '请输入重要讲话指示批示情况' }],
|
||||
time: [{ required: true, message: '请选择时间' }],
|
||||
@@ -254,6 +312,10 @@
|
||||
});
|
||||
|
||||
Object.assign(formData, tmpData);
|
||||
sdwLeaderNames.value = data.sdwLeaderList_dictText || '';
|
||||
if (!sdwLeaderNames.value && formData.sdwLeaderList) {
|
||||
resolveSdwLeaderNames(formData.sdwLeaderList);
|
||||
}
|
||||
model = { ...tmpData };
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user