!159 fix(bqtakepulse): 筛选条件文案改为意见类型
* fix(bqtakepulse): 筛选条件文案改为意见类型 * fix(bgpartymatter): 反馈弹窗字段对齐 * fix(inspectProblem): 上级问题字段按问题种类动态显示必填星号 * fix(bqtakepulse): 督办次数改为数字输入 * fix(bqtakepulse): 反馈弹窗字段对齐并支持长label换行 * feat(bpm): 各流程表单默认抄送改用角色查询接口 * fix(bgpartymatter): 所办负责人审批改为单选并调整编辑表单布局 * fix(modal): 详情弹窗支持点击遮罩关闭
This commit is contained in:
@@ -45,8 +45,11 @@
|
||||
</a-form-item>
|
||||
|
||||
<template v-if="showSuoleaderFields">
|
||||
<a-form-item label="是否所办负责人审批">
|
||||
<j-switch v-model:value="formData.isNeedAppro" />
|
||||
<a-form-item label="所办负责人审批">
|
||||
<a-radio-group v-model:value="formData.isNeedAppro">
|
||||
<a-radio value="1">是</a-radio>
|
||||
<a-radio value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="所办负责人">
|
||||
@@ -100,7 +103,6 @@
|
||||
import { reactive, ref, watch } from 'vue';
|
||||
import JModal from '/src/components/Modal/src/JModal/JModal.vue';
|
||||
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 { useMessage } from '/src/hooks/web/useMessage';
|
||||
|
||||
@@ -46,20 +46,20 @@
|
||||
</a-form-item>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-col :span="24">
|
||||
<a-tooltip :title="isEdit ? '' : '该信息后续不可编辑,请谨慎填写'">
|
||||
<a-form-item label="计划完成日期" name="planTime">
|
||||
<a-form-item label="计划完成日期" name="planTime" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||
<a-date-picker v-model:value="formData.planTime" value-format="YYYY-MM-DD" style="width: 100%" :disabled="isEdit" allow-clear />
|
||||
</a-form-item>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="完成状态" name="bpmStatus">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="完成状态" name="bpmStatus" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||
<JDictSelectTag v-model:value="formData.bpmStatus" dictCode="feedback_status" placeholder="请选择完成状态" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="实际完成日期" name="actualTime">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="实际完成日期" name="actualTime" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||
<a-date-picker v-model:value="formData.actualTime" value-format="YYYY-MM-DD" placeholder="请选择实际完成日期" style="width: 100%" :disabled="isEdit" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -300,11 +300,7 @@
|
||||
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
||||
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
|
||||
import {
|
||||
PARTY_COMMITTEE_DEPT_ID,
|
||||
PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID,
|
||||
CHARGE_LEADER_ROLE_ID,
|
||||
} from '/@/constant/supervision';
|
||||
import { PARTY_COMMITTEE_DEPT_ID, PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID, CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
|
||||
const { initBpmFormData } = usePermission();
|
||||
|
||||
const props = defineProps({
|
||||
@@ -509,7 +505,7 @@
|
||||
try {
|
||||
// 默认抄送按分管所领导角色跨部门查询,与台账分管所领导下拉逻辑一致
|
||||
const res = await defHttp.get({
|
||||
url: '/sys/user/queryUserRoleComponentData',
|
||||
url: '/sys/user/queryUserByRoleId',
|
||||
params: { roleId: CHARGE_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
||||
});
|
||||
const records = res?.records || res?.result?.records || [];
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
:width="width"
|
||||
centered
|
||||
:footer="null"
|
||||
:maskClosable="false"
|
||||
:maskClosable="true"
|
||||
:bodyStyle="{ maxHeight: '70vh', overflowY: 'auto', padding: '16px 24px 20px' }"
|
||||
wrapClassName="partymatter-detail-modal"
|
||||
destroyOnClose
|
||||
|
||||
@@ -124,20 +124,16 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="24" :md="12">
|
||||
<a-form-item label="是否急件" v-bind="validateInfos.urgencyLevel" id="BgPartymatterForm-urgencyLevel" name="urgencyLevel">
|
||||
<j-dict-select-tag v-model:value="formData.urgencyLevel" dictCode="yn" placeholder="请选择是否急件" allow-clear />
|
||||
</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-radio-group v-model:value="formData.isNeedAppro">
|
||||
<a-radio value="1">是</a-radio>
|
||||
<a-radio value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col v-if="showSupDeptLeader" :xs="24" :md="12">
|
||||
@@ -150,6 +146,11 @@
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="24" :md="12">
|
||||
<a-form-item label="是否急件" v-bind="validateInfos.urgencyLevel" id="BgPartymatterForm-urgencyLevel" name="urgencyLevel">
|
||||
<j-dict-select-tag v-model:value="formData.urgencyLevel" dictCode="yn" placeholder="请选择是否急件" allow-clear />
|
||||
</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>-->
|
||||
@@ -194,7 +195,6 @@
|
||||
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted, watch } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import JSwitch from '/@/components/Form/src/jeecg/components/JSwitch.vue';
|
||||
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
||||
import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue';
|
||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
<a-col :xl="3" :lg="6" :md="8" :sm="12">
|
||||
<a-form-item name="taskType">
|
||||
<template #label>
|
||||
<a-tooltip title="按会议类型筛选">会议类型</a-tooltip>
|
||||
<a-tooltip title="按意见类型筛选">意见类型</a-tooltip>
|
||||
</template>
|
||||
<a-tooltip title="按会议类型筛选"
|
||||
<a-tooltip title="按意见类型筛选"
|
||||
><JDictSelectTag
|
||||
v-model:value="queryParam.taskType"
|
||||
dictCode="super_takepulse_type"
|
||||
placeholder="请选择会议类型"
|
||||
placeholder="请选择意见类型"
|
||||
allow-clear
|
||||
@change="searchQuery"
|
||||
/></a-tooltip>
|
||||
@@ -116,12 +116,7 @@
|
||||
@click="handleImportByTemplate"
|
||||
>模板导入</j-upload-button
|
||||
>
|
||||
<a-button
|
||||
v-if="selectedRowKeys.length > 0"
|
||||
v-auth="'bqtakepulse:bg_takepulse:deleteBatch'"
|
||||
danger
|
||||
@click="batchHandleDelete"
|
||||
>
|
||||
<a-button v-if="selectedRowKeys.length > 0" v-auth="'bqtakepulse:bg_takepulse:deleteBatch'" danger @click="batchHandleDelete">
|
||||
<Icon icon="ant-design:delete-outlined"></Icon>
|
||||
删除
|
||||
</a-button>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
@cancel="handleCancel"
|
||||
>
|
||||
<a-alert v-if="!isEdit" message="可以多次添加反馈信息" type="info" showIcon style="margin-bottom: 12px" />
|
||||
<a-form ref="formRef" class="bpm-feedback-modal-form" :model="formData" :rules="formRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-form ref="formRef" class="bpm-feedback-modal-form" :model="formData" :rules="formRules" :labelCol="labelCol" :wrapperCol="wrapperCol" labelWrap>
|
||||
<a-row :gutter="16">
|
||||
<a-col :span="24">
|
||||
<a-tooltip :title="isEdit ? '' : '该信息后续不可编辑,请谨慎填写'">
|
||||
@@ -19,20 +19,20 @@
|
||||
</a-form-item>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-col :span="24">
|
||||
<a-tooltip :title="isEdit ? '' : '该信息后续不可编辑,请谨慎填写'">
|
||||
<a-form-item label="计划完成日期" name="planTime">
|
||||
<a-form-item label="计划完成日期" name="planTime" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||
<a-date-picker v-model:value="formData.planTime" value-format="YYYY-MM-DD" style="width: 100%" :disabled="isEdit" allow-clear />
|
||||
</a-form-item>
|
||||
</a-tooltip>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="完成状态" name="bpmStatus">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="完成状态" name="bpmStatus" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||
<JDictSelectTag v-model:value="formData.bpmStatus" dictCode="feedback_status" placeholder="请选择完成状态" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="实际完成日期" name="actualTime">
|
||||
<a-col :span="24">
|
||||
<a-form-item label="实际完成日期" name="actualTime" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||
<a-date-picker v-model:value="formData.actualTime" value-format="YYYY-MM-DD" placeholder="请选择实际完成日期" style="width: 100%" :disabled="isEdit" allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
<template>
|
||||
<a-spin :spinning="loading">
|
||||
<div class="bg-takepulse-bpm-form">
|
||||
<a-form class="main-form" :class="{ 'main-form-readonly': mainDisabled }" labelAlign="left" :labelCol="labelCol" :wrapperCol="wrapperCol" :model="mainForm">
|
||||
<a-form
|
||||
class="main-form"
|
||||
:class="{ 'main-form-readonly': mainDisabled }"
|
||||
labelAlign="left"
|
||||
:labelCol="labelCol"
|
||||
:wrapperCol="wrapperCol"
|
||||
:model="mainForm"
|
||||
>
|
||||
<div class="base-info-header section-toolbar">
|
||||
<div class="section-title">基础信息</div>
|
||||
<a-space class="section-actions">
|
||||
@@ -9,7 +16,12 @@
|
||||
<Icon icon="ant-design:save-outlined" />
|
||||
保存
|
||||
</a-button>
|
||||
<a-button class="section-action-button" :type="showBaseInfoDetail ? 'default' : 'link'" size="small" @click="showBaseInfoDetail = !showBaseInfoDetail">
|
||||
<a-button
|
||||
class="section-action-button"
|
||||
:type="showBaseInfoDetail ? 'default' : 'link'"
|
||||
size="small"
|
||||
@click="showBaseInfoDetail = !showBaseInfoDetail"
|
||||
>
|
||||
<Icon :icon="showBaseInfoDetail ? 'ant-design:up-outlined' : 'ant-design:down-outlined'" />
|
||||
{{ showBaseInfoDetail ? '收起基础信息' : '展开全部信息' }}
|
||||
</a-button>
|
||||
@@ -30,7 +42,15 @@
|
||||
<a-divider />
|
||||
<a-col :span="12">
|
||||
<a-form-item label="年份" name="year">
|
||||
<a-date-picker v-model:value="mainForm.year" picker="year" value-format="YYYY" :disabled="mainDisabled" placeholder="请选择年份" style="width: 100%" allow-clear />
|
||||
<a-date-picker
|
||||
v-model:value="mainForm.year"
|
||||
picker="year"
|
||||
value-format="YYYY"
|
||||
:disabled="mainDisabled"
|
||||
placeholder="请选择年份"
|
||||
style="width: 100%"
|
||||
allow-clear
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -133,7 +153,14 @@
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="实际完成时间" name="actualTime">
|
||||
<a-date-picker v-model:value="mainForm.actualTime" showTime value-format="YYYY-MM-DD HH:mm:ss" :disabled="mainDisabled" style="width: 100%" allow-clear />
|
||||
<a-date-picker
|
||||
v-model:value="mainForm.actualTime"
|
||||
showTime
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
:disabled="mainDisabled"
|
||||
style="width: 100%"
|
||||
allow-clear
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -143,7 +170,15 @@
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="督办次数" name="superviseCount">
|
||||
<a-input v-model:value="mainForm.superviseCount" :disabled="mainDisabled" allow-clear />
|
||||
<a-input-number
|
||||
v-model:value="mainForm.superviseCount"
|
||||
:disabled="mainDisabled"
|
||||
:min="0"
|
||||
:precision="0"
|
||||
:step="1"
|
||||
style="width: 100%"
|
||||
allow-clear
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
@@ -239,11 +274,7 @@
|
||||
</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"
|
||||
/>
|
||||
<sz-dept-user-modal class="process-user-selector" v-model:value="subApproveUser" :disabled="savingSubApproveUser" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -289,13 +320,9 @@
|
||||
import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue';
|
||||
import BgTakepulseBPMFeedbackModal from './BgTakepulseBPMFeedbackModal.vue';
|
||||
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
||||
import SzDeptUserModal from "@/components/semri/deptUserComponent/SzDeptUserModal.vue";
|
||||
import SzDeptUserModal from '@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
|
||||
import {
|
||||
PARTY_COMMITTEE_DEPT_ID,
|
||||
PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID,
|
||||
CHARGE_LEADER_ROLE_ID,
|
||||
} from '/@/constant/supervision';
|
||||
import { PARTY_COMMITTEE_DEPT_ID, PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID, CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
|
||||
|
||||
const { initBpmFormData } = usePermission();
|
||||
|
||||
@@ -374,7 +401,7 @@
|
||||
proposerConfirm: '',
|
||||
bpmStatus: '',
|
||||
actSt: '',
|
||||
superviseCount: '',
|
||||
superviseCount: null,
|
||||
urgencyLevel: '',
|
||||
isNeedAppro: '',
|
||||
supDeptleaderid: '',
|
||||
@@ -393,9 +420,21 @@
|
||||
customRender: ({ text }) => (!text ? '' : String(text).slice(0, 10)),
|
||||
},
|
||||
{ title: '实际执行情况', dataIndex: 'actualExect', align: 'left', width: 280 },
|
||||
{ title: '实际完成日期', dataIndex: 'actualTime', align: 'center', width: 155, customRender: ({ text }) => (!text ? '' : String(text).slice(0, 10)) },
|
||||
{
|
||||
title: '实际完成日期',
|
||||
dataIndex: 'actualTime',
|
||||
align: 'center',
|
||||
width: 155,
|
||||
customRender: ({ text }) => (!text ? '' : String(text).slice(0, 10)),
|
||||
},
|
||||
{ title: '调整落实措施及执行情况', dataIndex: 'actSt', align: 'left', width: 260 },
|
||||
{ title: '完成状态', dataIndex: 'bpmStatus', align: 'center', width: 95, customRender: ({ record }) => record?.bpmStatus_dictText || record?.bpmStatus },
|
||||
{
|
||||
title: '完成状态',
|
||||
dataIndex: 'bpmStatus',
|
||||
align: 'center',
|
||||
width: 95,
|
||||
customRender: ({ record }) => record?.bpmStatus_dictText || record?.bpmStatus,
|
||||
},
|
||||
{ title: '附件', dataIndex: 'id', key: 'attachments', align: 'left', width: 340 },
|
||||
];
|
||||
const feedbackActionColumn = { title: '操作', dataIndex: 'action', key: 'action', align: 'center', width: 120, fixed: 'right' };
|
||||
@@ -458,7 +497,7 @@
|
||||
try {
|
||||
// 默认抄送按分管所领导角色跨部门查询,与台账分管所领导下拉逻辑一致
|
||||
const res = await defHttp.get({
|
||||
url: '/sys/user/queryUserRoleComponentData',
|
||||
url: '/sys/user/queryUserByRoleId',
|
||||
params: { roleId: CHARGE_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
||||
});
|
||||
const records = res?.records || res?.result?.records || [];
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
:width="width"
|
||||
centered
|
||||
:footer="null"
|
||||
:maskClosable="false"
|
||||
:maskClosable="true"
|
||||
:bodyStyle="{ maxHeight: '70vh', overflowY: 'auto', padding: '16px 24px 20px' }"
|
||||
wrapClassName="takepulse-detail-modal"
|
||||
destroyOnClose
|
||||
|
||||
@@ -184,7 +184,15 @@
|
||||
<!-- </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-input-number
|
||||
v-model:value="formData.superviseCount"
|
||||
placeholder="请输入督办次数"
|
||||
:min="0"
|
||||
:precision="0"
|
||||
:step="1"
|
||||
style="width: 100%"
|
||||
allow-clear
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="24" :md="12">
|
||||
@@ -290,7 +298,7 @@
|
||||
proposerConfirm: '',
|
||||
bpmStatus: '1',
|
||||
actSt: '',
|
||||
superviseCount: '',
|
||||
superviseCount: null,
|
||||
urgencyLevel: '',
|
||||
isNeedAppro: '',
|
||||
supDeptleaderid: '',
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<a-col :span="12">
|
||||
<a-form-item label="是否需要督办领导" name="needSdwApproval">
|
||||
<a-form-item label="是否需要督办负责人" name="needSdwApproval">
|
||||
<a-radio-group v-model:value="mainForm.needSdwApproval" :disabled="mainDisabled">
|
||||
<a-radio :value="1">是</a-radio>
|
||||
<a-radio :value="0">否</a-radio>
|
||||
@@ -135,7 +135,7 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col v-if="mainForm.needSdwApproval === 1" :span="12">
|
||||
<a-form-item label="督导领导列表" name="sdwLeaderList">
|
||||
<a-form-item label="督导负责人列表" name="sdwLeaderList">
|
||||
<DeptRoleUserSelectRadioGroup
|
||||
v-model:value="mainForm.sdwLeaderList"
|
||||
:deptId="PARTY_COMMITTEE_DEPT_ID"
|
||||
@@ -213,7 +213,9 @@
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
<template v-if="column.key === 'feedbackAction'">
|
||||
<a-button type="link" size="small" @click="handleEditFeedback(record)">{{ showJiJianFields && nonJiJianFieldsReadonly ? '督察' : '编辑' }}</a-button>
|
||||
<a-button type="link" size="small" @click="handleEditFeedback(record)">{{
|
||||
showJiJianFields && nonJiJianFieldsReadonly ? '督察' : '编辑'
|
||||
}}</a-button>
|
||||
<a-popconfirm title="确定删除该反馈吗?" @confirm="handleDeleteFeedback(record)">
|
||||
<a-button type="link" size="small" danger>删除</a-button>
|
||||
</a-popconfirm>
|
||||
@@ -246,7 +248,12 @@
|
||||
</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="setDisplayNames" />
|
||||
<sz-dept-user-modal
|
||||
class="process-user-selector"
|
||||
v-model:value="subApproveUser"
|
||||
:disabled="savingSubApproveUser"
|
||||
@confirm="setDisplayNames"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -285,17 +292,17 @@
|
||||
import BgXiSpeakBPMFeedbackModal from './BgXiSpeakBPMFeedbackModal.vue';
|
||||
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
||||
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
|
||||
import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID, CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
|
||||
import {
|
||||
buildApproveReason,
|
||||
buildDeptHandlerFeedbackReason,
|
||||
buildDeptLeaderAssignReason,
|
||||
buildDeptLeaderDirectFeedbackReason,
|
||||
buildSuperviseConfirmAllReason,
|
||||
buildSuperviseCheckReason,
|
||||
buildJiJianCheckReason,
|
||||
normalizeDeptNames,
|
||||
} from '/@/composables/useDefaultApprovalReason';
|
||||
import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID, CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
|
||||
import {
|
||||
buildApproveReason,
|
||||
buildDeptHandlerFeedbackReason,
|
||||
buildDeptLeaderAssignReason,
|
||||
buildDeptLeaderDirectFeedbackReason,
|
||||
buildSuperviseConfirmAllReason,
|
||||
buildSuperviseCheckReason,
|
||||
buildJiJianCheckReason,
|
||||
normalizeDeptNames,
|
||||
} from '/@/composables/useDefaultApprovalReason';
|
||||
|
||||
const { isDisabledAuth, hasPermission, initBpmFormData } = usePermission();
|
||||
const userStore = useUserStore();
|
||||
@@ -500,7 +507,10 @@ import {
|
||||
}));
|
||||
|
||||
provide('extraVars', formScope);
|
||||
provide('flowVars', computed(() => props.formData?.vars || {}));
|
||||
provide(
|
||||
'flowVars',
|
||||
computed(() => props.formData?.vars || {})
|
||||
);
|
||||
provide('formDefaultReason', defaultHandleReason);
|
||||
provide('defaultCcUsers', defaultCcUsers);
|
||||
|
||||
@@ -542,7 +552,7 @@ import {
|
||||
try {
|
||||
// 默认抄送按分管所领导角色跨部门查询,与 bgpartymatter/bqtakepulse 保持一致
|
||||
const res = await defHttp.get({
|
||||
url: '/sys/user/queryUserRoleComponentData',
|
||||
url: '/sys/user/queryUserByRoleId',
|
||||
params: { roleId: CHARGE_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
||||
});
|
||||
const records = res?.records || res?.result?.records || [];
|
||||
@@ -601,7 +611,10 @@ import {
|
||||
const res = await getProcessVariable({ taskId, key: 'impl_dept_id', isLocal: true });
|
||||
const value = res?.result?.value ?? res?.value;
|
||||
if (value) {
|
||||
const result = String(value).split(',').map((s: string) => s.trim()).filter(Boolean);
|
||||
const result = String(value)
|
||||
.split(',')
|
||||
.map((s: string) => s.trim())
|
||||
.filter(Boolean);
|
||||
return result;
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -614,12 +627,18 @@ import {
|
||||
if (value) {
|
||||
const result = Array.isArray(value)
|
||||
? value.map((v: any) => String(v).trim()).filter(Boolean)
|
||||
: String(value).split(',').map((s: string) => s.trim()).filter(Boolean);
|
||||
: String(value)
|
||||
.split(',')
|
||||
.map((s: string) => s.trim())
|
||||
.filter(Boolean);
|
||||
return result;
|
||||
}
|
||||
// 最终 fallback 到主表已保存的牵头部门
|
||||
if (mainForm.implDept) {
|
||||
const result = String(mainForm.implDept).split(',').map((s: string) => s.trim()).filter(Boolean);
|
||||
const result = String(mainForm.implDept)
|
||||
.split(',')
|
||||
.map((s: string) => s.trim())
|
||||
.filter(Boolean);
|
||||
return result;
|
||||
}
|
||||
return [];
|
||||
@@ -793,7 +812,6 @@ import {
|
||||
.join(',');
|
||||
}
|
||||
|
||||
|
||||
function handleProcessSuccess() {
|
||||
emit('success');
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
:width="width"
|
||||
centered
|
||||
:footer="null"
|
||||
:maskClosable="false"
|
||||
:maskClosable="true"
|
||||
:bodyStyle="{ maxHeight: '70vh', overflowY: 'auto', padding: '16px 24px 20px' }"
|
||||
destroyOnClose
|
||||
>
|
||||
|
||||
@@ -128,14 +128,7 @@
|
||||
nodeType: [{ required: true, message: '请选择问题种类' }],
|
||||
problemName: [{ required: true, message: '请输入问题名称' }],
|
||||
pid: [
|
||||
{
|
||||
validator: async (_rule, value) => {
|
||||
if (showParentSelect.value && !value) {
|
||||
return Promise.reject('请选择上一级问题');
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
},
|
||||
{ required: true, message: '请选择上一级问题' },
|
||||
],
|
||||
});
|
||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
:width="width"
|
||||
centered
|
||||
:footer="null"
|
||||
:maskClosable="false"
|
||||
:maskClosable="true"
|
||||
:bodyStyle="{ maxHeight: '70vh', overflowY: 'auto', padding: '16px 24px 20px' }"
|
||||
destroyOnClose
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user