!153 fix(dq): 反馈弹窗进展状态字典改为 feedback_status

* fix(dq): 反馈弹窗进展状态字典改为 feedback_status
* fix(dq): 反馈弹窗整行字段输入框与半行字段左对齐
* style(bpm): 办理界面退回节点选择栏紧跟退回选项
* refactor(bpm): 办理界面去掉常用审批语下拉,同意退回并入处理意见
This commit is contained in:
wsm
2026-08-13 07:11:49 +00:00
parent 72666721af
commit 88da96a706
2 changed files with 19 additions and 50 deletions
@@ -29,7 +29,7 @@
</a-col>
<a-col :span="12">
<a-form-item label="进展状态" name="bpmStatus">
<JDictSelectTag v-model:value="formData.bpmStatus" dictCode="super_status" placeholder="请选择进展状态" type="select" :disabled="nonJiJianFieldsReadonly" allow-clear />
<JDictSelectTag v-model:value="formData.bpmStatus" dictCode="feedback_status" placeholder="请选择进展状态" type="select" :disabled="nonJiJianFieldsReadonly" allow-clear />
</a-form-item>
</a-col>
<a-col :span="24">
@@ -93,8 +93,8 @@
const formRef = ref();
const uploadFileRef = ref<InstanceType<typeof SUploadFile> | null>(null);
const uploadKey = ref(0);
const labelCol = { xs: { span: 24 }, sm: { span: 7 } };
const wrapperCol = { xs: { span: 24 }, sm: { span: 17 } };
const labelCol = { xs: { span: 24 }, sm: { span: 6 } };
const wrapperCol = { xs: { span: 24 }, sm: { span: 18 } };
const wideLabelCol = { xs: { span: 24 }, sm: { span: 3 } };
const wideWrapperCol = { xs: { span: 24 }, sm: { span: 21 } };
@@ -5,33 +5,21 @@
<a-list itemLayout="vertical">
<a-list-item>
<div style="width: 100%">
<div style="margin-bottom: 5px">
<div style="margin-bottom: 24px">
处理意见
<a-select
style="width: 300px"
placeholder="常用审批语"
:getPopupContainer="(target) => target.parentNode"
@change="changeReasonSelection"
>
<a-select-option v-for="(item, key) in remarksDictOptions" :key="key" :value="item.value">{{ item.text }}</a-select-option>
</a-select>
<a-radio-group style="margin-left: 16px" v-model:value="model.processModel">
<a-radio :checked="true" :value="1">同意</a-radio>
<a-radio :value="3" v-if="historyCount > 0 && allowReject">退回</a-radio>
<span v-show="model.processModel == 3" v-if="historyCount > 0">
<a-select v-model:value="model.rejectModelNode" :getPopupContainer="(target) => target?.parentNode" style="width: 250px; margin-left: 8px">
<template v-for="(item, index) in historyList">
<a-select-option v-if="item.NAME_ != currentTaskName" :value="item.TASK_DEF_KEY_">{{ item.NAME_ }}</a-select-option>
</template>
</a-select>
</span>
</a-radio-group>
</div>
<a-textarea :rows="3" v-model:value="model.reason" />
</div>
</a-list-item>
<!-- <a-list-item>-->
<!-- <j-upload text="添加文件" bizPath="bpm" :returnUrl="false" v-model:value="model.fileList"></j-upload>-->
<!-- </a-list-item>-->
<!-- 选择分支 -->
<a-list-item>
<div style="width: 100%">
<a-radio-group v-model:value="model.processModel">
<a-radio :checked="true" :value="1">同意</a-radio>
<!-- <a-radio :value="2">多分支模式</a-radio>-->
<a-radio :value="3" v-if="historyCount > 0 && allowReject">退回</a-radio>
</a-radio-group>
<span v-show="model.processModel == 2">
<span style="color: red">多分支模式默认执行所有分支</span>
@@ -39,17 +27,13 @@
<a-checkbox :checked="true" :value="item.nextnode">{{ item.Transition }}</a-checkbox>
</template>
</span>
<span v-show="model.processModel == 3" v-if="historyCount > 0">
<a-select v-model:value="model.rejectModelNode" :getPopupContainer="(target) => target?.parentNode" style="width: 250px">
<template v-for="(item, index) in historyList">
<a-select-option v-if="item.NAME_ != currentTaskName" :value="item.TASK_DEF_KEY_">{{ item.NAME_ }}</a-select-option>
</template>
</a-select>
</span>
</div>
</a-list-item>
<!-- <a-list-item>-->
<!-- <j-upload text="添加文件" bizPath="bpm" :returnUrl="false" v-model:value="model.fileList"></j-upload>-->
<!-- </a-list-item>-->
<!-- 下一步操作人 -->
<a-list-item class="flex-center" v-if="buttonStatus.selnextUserStatus || buttonStatus.ccStatus || allowAddSign || allowCounterSignAddUser">
<a-checkbox v-if="buttonStatus.selnextUserStatus" :checked="checkedNext" @change="handleCheckedNext">指定下一步操作人指定下一步会签人员</a-checkbox>
@@ -115,7 +99,6 @@
<script>
import { ref, reactive, computed, toRaw, unref, watch, watchEffect, inject } from 'vue';
import { initDictOptions } from '/@/utils/dict';
import { useMessage } from '/@/hooks/web/useMessage';
import { taskComplaint, taskComplete, beforeAddSignTask, afterAddSignTask, addMultiInstance} from "../task.handle.api";
import { useModal } from '/@/components/Modal';
@@ -215,7 +198,6 @@
* 转审(change-user)和添加审批人(add-user) 都需要选择用户,此处记录不同的类型
*/
const selectUserType = ref('');
const remarksDictOptions = ref([]);
const extraVars = inject('extraVars', ref({}));
const flowVars = inject('flowVars', ref({}));
const defaultCcUsers = inject('defaultCcUsers', ref([]));
@@ -349,10 +331,6 @@
{ immediate: true }
);
function changeReasonSelection(value) {
model.reason = value;
}
function handleProcessComplete(nextnode) {
if (!model.reason || model.reason.length == 0) {
//update-begin-author:taoyan date:2022-9-5 for: VUEN-2157 2. 意见允许为空
@@ -509,12 +487,6 @@
return result !== false;
}
async function initDict() {
const dictData = await initDictOptions('approval_remarks');
console.log('dic', dictData);
remarksDictOptions.value = dictData;
}
function handleSelectNextUser(arr) {
let { usernames, realnames } = getInfo(arr);
model.nextUserId = usernames.join(',');
@@ -540,13 +512,10 @@
realnames,
};
}
initDict();
return {
handleSelectNextUser,
handleSelectCcUser,
model,
remarksDictOptions,
changeReasonSelection,
historyCount,
checkedNext,