fix(fixcontact): 反馈弹窗计划完成时间必填、长文本换行显示与办理情况区按节点权限显隐
- 反馈弹窗:计划完成时间改为必填,三个长文本输入框自动增高换行,label 列宽调整避免标题换行 - 台账与办理情况表:计划完成情况/处理意见、承办情况/办结情况/实际完成情况列左对齐并自动换行显示全量内容 - 办理情况/反馈区显隐改由节点权限参数 showFeedbackInfo/showSelnextUser 等驱动 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -118,7 +118,7 @@
|
||||
|
||||
<a-divider />
|
||||
|
||||
<div class="feedback-header section-toolbar">
|
||||
<div class="feedback-header section-toolbar" v-if="showFeedbackInfo">
|
||||
<div class="section-title">办理情况</div>
|
||||
<a-space class="section-actions">
|
||||
<a-tooltip v-if="showAddFeedback" title="可以多次新增反馈">
|
||||
@@ -139,7 +139,7 @@
|
||||
</a-space>
|
||||
</div>
|
||||
<a-table
|
||||
v-if="showFeedbackDetail"
|
||||
v-if="showFeedbackInfo && showFeedbackDetail"
|
||||
rowKey="id"
|
||||
size="small"
|
||||
bordered
|
||||
@@ -181,6 +181,7 @@
|
||||
<TaskHandleInnerContent
|
||||
:form-data="formData"
|
||||
:claim="claim"
|
||||
:showSelnextUser="showSelnextUser"
|
||||
:beforeHandle="saveMainFormBeforeProcessHandle"
|
||||
@success="handleProcessSuccess"
|
||||
@claimSuccess="handleClaimSuccess"
|
||||
@@ -191,7 +192,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted, reactive, ref, watch } from 'vue';
|
||||
import { computed, h, onMounted, reactive, ref, watch } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { usePermission } from '/@/hooks/web/usePermission';
|
||||
@@ -251,15 +252,19 @@
|
||||
superviseCount: '',
|
||||
});
|
||||
|
||||
function renderWrappedCell({ text }: Recordable) {
|
||||
return h('div', { style: 'white-space: pre-wrap; word-break: break-word;' }, text ?? '');
|
||||
}
|
||||
|
||||
const feedbackBaseColumns = [
|
||||
{ title: '反馈部门', dataIndex: 'feedbackDept_dictText', align: 'center', width: 160 },
|
||||
{ title: '反馈人', dataIndex: 'feedbackUser_dictText', align: 'center', width: 120 },
|
||||
{ title: '计划完成时间', dataIndex: 'planFinishTime', align: 'center', width: 130, customRender: ({ text }) => (!text ? '' : String(text).slice(0, 10)) },
|
||||
{ title: '计划完成情况', dataIndex: 'planFinishStatus', align: 'center', width: 260 },
|
||||
{ title: '处理意见、承办情况', dataIndex: 'handleOpinion', align: 'center', width: 260 },
|
||||
{ title: '办结情况', dataIndex: 'finishStatus', align: 'center', width: 200 },
|
||||
{ title: '计划完成情况', dataIndex: 'planFinishStatus', align: 'left', width: 260, customRender: renderWrappedCell },
|
||||
{ title: '处理意见、承办情况', dataIndex: 'handleOpinion', align: 'left', width: 260, customRender: renderWrappedCell },
|
||||
{ title: '办结情况', dataIndex: 'finishStatus', align: 'left', width: 200, customRender: renderWrappedCell },
|
||||
{ title: '实际完成时间', dataIndex: 'actualFinishTime', align: 'center', width: 130, customRender: ({ text }) => (!text ? '' : String(text).slice(0, 10)) },
|
||||
{ title: '实际完成情况', dataIndex: 'actualFinishStatus', align: 'center', width: 200 },
|
||||
{ title: '实际完成情况', dataIndex: 'actualFinishStatus', align: 'left', width: 200, customRender: renderWrappedCell },
|
||||
{ title: '附件', dataIndex: 'id', key: 'attachments', align: 'left', width: 340 },
|
||||
];
|
||||
const feedbackActionColumn = { title: '操作', dataIndex: 'action', key: 'action', align: 'center', width: 120, fixed: 'right' };
|
||||
@@ -276,9 +281,21 @@
|
||||
}
|
||||
return props.formDisabled;
|
||||
});
|
||||
const showProcessHandle = computed(() => props.formBpm && props.formData?.PROCESS_TAB_TYPE === 'run' && !!props.formData?.taskId);
|
||||
const canManageFeedback = computed(() => props.formBpm && props.formData?.PROCESS_TAB_TYPE === 'run' && !!props.formData?.taskId);
|
||||
const showAddFeedback = computed(() => String(props.formData?.extendUrlParams?.addfeedback ?? '') === '1');
|
||||
const showProcessHandle = computed(() => {
|
||||
const explicit = props.formData?.extendUrlParams?.showProcessHandle;
|
||||
if (explicit === '0') return false;
|
||||
if (explicit === '1') return true;
|
||||
return props.formBpm && props.formData?.PROCESS_TAB_TYPE === 'run' && !!props.formData?.taskId;
|
||||
});
|
||||
const canManageFeedback = computed(() => {
|
||||
const explicit = props.formData?.extendUrlParams?.showEditFeedback ?? props.formData?.extendUrlParams?.editfeedback;
|
||||
if (explicit === '0') return false;
|
||||
if (explicit === '1') return true;
|
||||
return props.formBpm && props.formData?.PROCESS_TAB_TYPE === 'run' && !!props.formData?.taskId;
|
||||
});
|
||||
const showAddFeedback = computed(
|
||||
() => String(props.formData?.extendUrlParams?.showAddFeedback ?? props.formData?.extendUrlParams?.addfeedback ?? '') === '1'
|
||||
);
|
||||
|
||||
const processInfo = computed(() => ({
|
||||
taskId: props.formData?.taskId,
|
||||
@@ -294,6 +311,14 @@
|
||||
processDataId: props.formData?.processDataId,
|
||||
processTableName: props.formData?.processTableName,
|
||||
}));
|
||||
const showFeedbackInfo = computed(() => {
|
||||
const explicit = props.formData?.extendUrlParams?.showFeedbackInfo;
|
||||
if (explicit === '0') return false;
|
||||
if (explicit === '1') return true;
|
||||
const hasProcess = processInfo.value.taskId || processInfo.value.processInstanceId;
|
||||
return !!hasProcess;
|
||||
});
|
||||
const showSelnextUser = computed(() => String(props.formData?.extendUrlParams?.showSelnextUser ?? '') === '1');
|
||||
|
||||
onMounted(() => {
|
||||
initFormData();
|
||||
|
||||
Reference in New Issue
Block a user