!157 style(bqtakepulse): 意见主题输入框改为整行放大显示
* style(bqtakepulse): 意见主题输入框改为整行放大显示 * fix(bpm): 首页待阅查看详情补传增补意见tab显示参数 * style(bpm): 办理界面抄送人选择框自适应宽度并支持展示更多 * feat(bpm): 各流程表单默认抄送统一按分管所领导角色查询 * fix(bpm): 首页待办办理弹窗标题回显业务标题
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:open="false"
|
:open="false"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
:maxTagCount="3"
|
:maxTagCount="maxTagCount"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@update:value="handleSelectRemove"
|
@update:value="handleSelectRemove"
|
||||||
@click="openModal()"
|
@click="openModal()"
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:open="false"
|
:open="false"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
:maxTagCount="3"
|
:maxTagCount="maxTagCount"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@update:value="handleSelectRemove"
|
@update:value="handleSelectRemove"
|
||||||
/>
|
/>
|
||||||
@@ -81,6 +81,7 @@ const props = withDefaults(
|
|||||||
title?: string;
|
title?: string;
|
||||||
hideTrigger?: boolean;
|
hideTrigger?: boolean;
|
||||||
triggerMode?: 'button' | 'input';
|
triggerMode?: 'button' | 'input';
|
||||||
|
maxTagCount?: number;
|
||||||
}>(),
|
}>(),
|
||||||
{
|
{
|
||||||
value: '',
|
value: '',
|
||||||
@@ -94,6 +95,7 @@ const props = withDefaults(
|
|||||||
title: '选择人员',
|
title: '选择人员',
|
||||||
hideTrigger: false,
|
hideTrigger: false,
|
||||||
triggerMode: 'button',
|
triggerMode: 'button',
|
||||||
|
maxTagCount: 3,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -286,7 +286,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, onMounted, reactive, ref, watch } from 'vue';
|
import { computed, onMounted, provide, reactive, ref, watch } from 'vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { getUserList, queryDepartTreeSync } from '/@/api/common/api';
|
import { getUserList, queryDepartTreeSync } from '/@/api/common/api';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
@@ -304,9 +304,6 @@
|
|||||||
PARTY_COMMITTEE_DEPT_ID,
|
PARTY_COMMITTEE_DEPT_ID,
|
||||||
PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID,
|
PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID,
|
||||||
CHARGE_LEADER_ROLE_ID,
|
CHARGE_LEADER_ROLE_ID,
|
||||||
SDW_LEADER_ROLE_ID,
|
|
||||||
SUOBAN_DEPT_ID,
|
|
||||||
MEASURE_RES_LEADER_ROLE_ID,
|
|
||||||
} from '/@/constant/supervision';
|
} from '/@/constant/supervision';
|
||||||
const { initBpmFormData } = usePermission();
|
const { initBpmFormData } = usePermission();
|
||||||
|
|
||||||
@@ -356,6 +353,8 @@
|
|||||||
const isEnd = ref(0);
|
const isEnd = ref(0);
|
||||||
const isFinish = ref('0');
|
const isFinish = ref('0');
|
||||||
const defaultCcUsers = ref<Array<{ username: string; realname: string }>>([]);
|
const defaultCcUsers = ref<Array<{ username: string; realname: string }>>([]);
|
||||||
|
// 办理内容组件通过 inject 读取默认抄送,需与 defaultCc 开关保持一致地提供
|
||||||
|
provide('defaultCcUsers', defaultCcUsers);
|
||||||
const lastGeneratedNumber = ref('');
|
const lastGeneratedNumber = ref('');
|
||||||
|
|
||||||
const mainForm = reactive<Record<string, any>>({
|
const mainForm = reactive<Record<string, any>>({
|
||||||
@@ -508,19 +507,13 @@
|
|||||||
|
|
||||||
async function fetchDefaultCcUsers() {
|
async function fetchDefaultCcUsers() {
|
||||||
try {
|
try {
|
||||||
const [res1, res2] = await Promise.all([
|
// 默认抄送按分管所领导角色跨部门查询,与台账分管所领导下拉逻辑一致
|
||||||
defHttp.get({
|
const res = await defHttp.get({
|
||||||
url: '/sys/user/queryUserRoleComponentData',
|
url: '/sys/user/queryUserRoleComponentData',
|
||||||
params: { departId: PARTY_COMMITTEE_DEPT_ID, roleId: SDW_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
params: { roleId: CHARGE_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
||||||
}),
|
});
|
||||||
defHttp.get({
|
const records = res?.records || res?.result?.records || [];
|
||||||
url: '/sys/user/queryUserRoleComponentData',
|
defaultCcUsers.value = records.sort((a, b) => (a.sortno ?? Infinity) - (b.sortno ?? Infinity));
|
||||||
params: { departId: SUOBAN_DEPT_ID, roleId: MEASURE_RES_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
const records1 = res1?.records || res1?.result?.records || [];
|
|
||||||
const records2 = res2?.records || res2?.result?.records || [];
|
|
||||||
defaultCcUsers.value = [...records1, ...records2];
|
|
||||||
} catch {
|
} catch {
|
||||||
defaultCcUsers.value = [];
|
defaultCcUsers.value = [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
</a-space>
|
</a-space>
|
||||||
</div>
|
</div>
|
||||||
<a-row class="base-info-row" :gutter="[12, 4]">
|
<a-row class="base-info-row" :gutter="[12, 4]">
|
||||||
<a-col :xs="24" :md="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="意见主题" name="title">
|
<a-form-item label="意见主题" name="title" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||||
<a-input v-model:value="mainForm.title" :disabled="mainDisabled" allow-clear />
|
<a-input v-model:value="mainForm.title" :disabled="mainDisabled" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -275,7 +275,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, onMounted, reactive, ref, watch } from 'vue';
|
import { computed, onMounted, provide, reactive, ref, watch } from 'vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { getUserList, queryDepartTreeSync } from '/@/api/common/api';
|
import { getUserList, queryDepartTreeSync } from '/@/api/common/api';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
@@ -295,9 +295,6 @@
|
|||||||
PARTY_COMMITTEE_DEPT_ID,
|
PARTY_COMMITTEE_DEPT_ID,
|
||||||
PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID,
|
PARTY_COMMITTEE_DEPT_ID as CHARGE_LEADER_DEPT_ID,
|
||||||
CHARGE_LEADER_ROLE_ID,
|
CHARGE_LEADER_ROLE_ID,
|
||||||
SDW_LEADER_ROLE_ID,
|
|
||||||
SUOBAN_DEPT_ID,
|
|
||||||
MEASURE_RES_LEADER_ROLE_ID,
|
|
||||||
} from '/@/constant/supervision';
|
} from '/@/constant/supervision';
|
||||||
|
|
||||||
const { initBpmFormData } = usePermission();
|
const { initBpmFormData } = usePermission();
|
||||||
@@ -348,6 +345,8 @@
|
|||||||
const isEnd = ref(0);
|
const isEnd = ref(0);
|
||||||
const isFinish = ref('0');
|
const isFinish = ref('0');
|
||||||
const defaultCcUsers = ref<Array<{ username: string; realname: string }>>([]);
|
const defaultCcUsers = ref<Array<{ username: string; realname: string }>>([]);
|
||||||
|
// 办理内容组件通过 inject 读取默认抄送,需与 defaultCc 开关保持一致地提供
|
||||||
|
provide('defaultCcUsers', defaultCcUsers);
|
||||||
|
|
||||||
const mainForm = reactive<Record<string, any>>({
|
const mainForm = reactive<Record<string, any>>({
|
||||||
id: '',
|
id: '',
|
||||||
@@ -457,19 +456,13 @@
|
|||||||
|
|
||||||
async function fetchDefaultCcUsers() {
|
async function fetchDefaultCcUsers() {
|
||||||
try {
|
try {
|
||||||
const [res1, res2] = await Promise.all([
|
// 默认抄送按分管所领导角色跨部门查询,与台账分管所领导下拉逻辑一致
|
||||||
defHttp.get({
|
const res = await defHttp.get({
|
||||||
url: '/sys/user/queryUserRoleComponentData',
|
url: '/sys/user/queryUserRoleComponentData',
|
||||||
params: { departId: PARTY_COMMITTEE_DEPT_ID, roleId: SDW_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
params: { roleId: CHARGE_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
||||||
}),
|
});
|
||||||
defHttp.get({
|
const records = res?.records || res?.result?.records || [];
|
||||||
url: '/sys/user/queryUserRoleComponentData',
|
defaultCcUsers.value = records.sort((a, b) => (a.sortno ?? Infinity) - (b.sortno ?? Infinity));
|
||||||
params: { departId: SUOBAN_DEPT_ID, roleId: MEASURE_RES_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
const records1 = res1?.records || res1?.result?.records || [];
|
|
||||||
const records2 = res2?.records || res2?.result?.records || [];
|
|
||||||
defaultCcUsers.value = [...records1, ...records2];
|
|
||||||
} catch {
|
} catch {
|
||||||
defaultCcUsers.value = [];
|
defaultCcUsers.value = [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,8 +47,16 @@
|
|||||||
<sz-dept-user-modal v-model:value="formData.proposer" />
|
<sz-dept-user-modal v-model:value="formData.proposer" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xs="24" :md="12">
|
<a-col :span="24">
|
||||||
<a-form-item label="意见主题" v-bind="validateInfos.title" id="BgTakepulseForm-title" name="title">
|
<a-form-item
|
||||||
|
class="full-width-aligned-form-item"
|
||||||
|
label="意见主题"
|
||||||
|
v-bind="validateInfos.title"
|
||||||
|
id="BgTakepulseForm-title"
|
||||||
|
name="title"
|
||||||
|
:labelCol="wideLabelCol"
|
||||||
|
:wrapperCol="wideWrapperCol"
|
||||||
|
>
|
||||||
<a-input v-model:value="formData.title" placeholder="请输入意见主题" allow-clear></a-input>
|
<a-input v-model:value="formData.title" placeholder="请输入意见主题" allow-clear></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|||||||
@@ -285,7 +285,7 @@
|
|||||||
import BgXiSpeakBPMFeedbackModal from './BgXiSpeakBPMFeedbackModal.vue';
|
import BgXiSpeakBPMFeedbackModal from './BgXiSpeakBPMFeedbackModal.vue';
|
||||||
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
||||||
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
|
import DeptRoleUserSelectRadioGroup from '/@/components/semri/userComponent/DeptRoleUserSelectRadioGroup.vue';
|
||||||
import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervision';
|
import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID, CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
|
||||||
import {
|
import {
|
||||||
buildApproveReason,
|
buildApproveReason,
|
||||||
buildDeptHandlerFeedbackReason,
|
buildDeptHandlerFeedbackReason,
|
||||||
@@ -540,9 +540,10 @@ import {
|
|||||||
|
|
||||||
async function fetchDefaultCcUsers() {
|
async function fetchDefaultCcUsers() {
|
||||||
try {
|
try {
|
||||||
|
// 默认抄送按分管所领导角色跨部门查询,与 bgpartymatter/bqtakepulse 保持一致
|
||||||
const res = await defHttp.get({
|
const res = await defHttp.get({
|
||||||
url: '/sys/user/queryUserRoleComponentData',
|
url: '/sys/user/queryUserRoleComponentData',
|
||||||
params: { departId: PARTY_COMMITTEE_DEPT_ID, roleId: SDW_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
params: { roleId: CHARGE_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
||||||
});
|
});
|
||||||
const records = res?.records || res?.result?.records || [];
|
const records = res?.records || res?.result?.records || [];
|
||||||
defaultCcUsers.value = records.sort((a, b) => (a.sortno ?? Infinity) - (b.sortno ?? Infinity));
|
defaultCcUsers.value = records.sort((a, b) => (a.sortno ?? Infinity) - (b.sortno ?? Infinity));
|
||||||
|
|||||||
@@ -182,7 +182,7 @@
|
|||||||
async function handleProcess(record) {
|
async function handleProcess(record) {
|
||||||
let { formData, formUrl } = await getTaskNodeInfo(record);
|
let { formData, formUrl } = await getTaskNodeInfo(record);
|
||||||
formData['PROCESS_TAB_TYPE'] = 'run';
|
formData['PROCESS_TAB_TYPE'] = 'run';
|
||||||
openHandleModal(true, { formData, formUrl, title: '流程办理' });
|
openHandleModal(true, { formData, formUrl, title: record.bpmBizTitle || '流程办理' });
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getTaskNodeInfo(record) {
|
async function getTaskNodeInfo(record) {
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
}
|
}
|
||||||
let { formData, formUrl } = await getTaskInfoForHistory(record);
|
let { formData, formUrl } = await getTaskInfoForHistory(record);
|
||||||
formData['PROCESS_TAB_TYPE'] = 'history';
|
formData['PROCESS_TAB_TYPE'] = 'history';
|
||||||
openHandleModal(true, { formData, formUrl, title: '流程历史' });
|
openHandleModal(true, { formData, formUrl, title: '流程历史', showSupplementApprovalOpinion: true });
|
||||||
if (record?.ccId) {
|
if (record?.ccId) {
|
||||||
await reloadCc();
|
await reloadCc();
|
||||||
await fetchCcTotal();
|
await fetchCcTotal();
|
||||||
|
|||||||
@@ -270,7 +270,7 @@
|
|||||||
import { saveBpmForm, setProcessVariable, specificProblemOptions } from '../DqInspectTask.api';
|
import { saveBpmForm, setProcessVariable, specificProblemOptions } from '../DqInspectTask.api';
|
||||||
import { list as progressList, deleteOne as progressDelete } from '../../inspectProgress/DqInspectProgress.api';
|
import { list as progressList, deleteOne as progressDelete } from '../../inspectProgress/DqInspectProgress.api';
|
||||||
import { usePermission } from '/@/hooks/web/usePermission';
|
import { usePermission } from '/@/hooks/web/usePermission';
|
||||||
import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervision';
|
import { CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
|
||||||
import { useSelectNameResolver } from '/@/composables/useSelectNameResolver';
|
import { useSelectNameResolver } from '/@/composables/useSelectNameResolver';
|
||||||
import { useSubApproveUserResolver } from '/@/composables/useSubApproveUserResolver';
|
import { useSubApproveUserResolver } from '/@/composables/useSubApproveUserResolver';
|
||||||
import { buildDeptLeaderAssignReason, normalizeDeptNames } from '/@/composables/useDefaultApprovalReason';
|
import { buildDeptLeaderAssignReason, normalizeDeptNames } from '/@/composables/useDefaultApprovalReason';
|
||||||
@@ -505,9 +505,10 @@
|
|||||||
|
|
||||||
async function fetchDefaultCcUsers() {
|
async function fetchDefaultCcUsers() {
|
||||||
try {
|
try {
|
||||||
|
// 默认抄送按分管所领导角色跨部门查询,与 bgpartymatter/bqtakepulse/bgxispeak 保持一致
|
||||||
const res = await defHttp.get({
|
const res = await defHttp.get({
|
||||||
url: '/sys/user/queryUserRoleComponentData',
|
url: '/sys/user/queryUserRoleComponentData',
|
||||||
params: { departId: PARTY_COMMITTEE_DEPT_ID, roleId: SDW_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
params: { roleId: CHARGE_LEADER_ROLE_ID, searchSecurityLevel: 5, pageNo: 1, pageSize: 999 },
|
||||||
});
|
});
|
||||||
const records = res?.records || res?.result?.records || [];
|
const records = res?.records || res?.result?.records || [];
|
||||||
defaultCcUsers.value = records.sort((a, b) => (a.sortno ?? Infinity) - (b.sortno ?? Infinity));
|
defaultCcUsers.value = records.sort((a, b) => (a.sortno ?? Infinity) - (b.sortno ?? Infinity));
|
||||||
|
|||||||
@@ -68,9 +68,10 @@
|
|||||||
<a-list-item style="line-height: 32px" v-show="checkedCc">
|
<a-list-item style="line-height: 32px" v-show="checkedCc">
|
||||||
<span>抄送给:</span>
|
<span>抄送给:</span>
|
||||||
<SzDeptUserModal
|
<SzDeptUserModal
|
||||||
style="display: inline-block; width: 500px"
|
style="display: inline-block; flex: 1; min-width: 500px; max-width: 100%"
|
||||||
triggerMode="button"
|
triggerMode="button"
|
||||||
title="选择抄送人"
|
title="选择抄送人"
|
||||||
|
:maxTagCount="10"
|
||||||
v-model:value="ccUserIds"
|
v-model:value="ccUserIds"
|
||||||
@confirm="handleSelectCcUser"
|
@confirm="handleSelectCcUser"
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user