diff --git a/src/views/bg/fixcontact/FixedContact20260730.api.ts b/src/views/bg/fixcontact/FixedContact20260730.api.ts index 0ca83a9..2f936e5 100644 --- a/src/views/bg/fixcontact/FixedContact20260730.api.ts +++ b/src/views/bg/fixcontact/FixedContact20260730.api.ts @@ -79,3 +79,19 @@ export const setBpmVariableLocal = (params) => { export const withDrawFixContact = (params) => { return defHttp.post({ url: '/bg/fixcontact/fixedContact20260730/withDrawFixContact', params }, { joinParamsToUrl: true, isTransformResponse: false }); }; + +export const saveSubApprove = (params) => { + return defHttp.post({ url: '/bg/fixcontact/fixedContact20260730/saveSubApprove', params }, { isTransformResponse: false }); +}; + +export const setProcessVariable = (params) => { + return defHttp.post({ url: '/act/process/setProcessVariable', params }, { isTransformResponse: false }); +}; + +/** + * 获取流程变量(支持局部变量查询),从task执行实例向上精准查找 + * @param params { taskId, key, isLocal } + */ +export const getProcessVariable = (params: { taskId: string; key: string; isLocal?: boolean }) => { + return defHttp.get({ url: '/act/process/extActProcessNode/getVariable', params }); +}; diff --git a/src/views/bg/fixcontact/FixedContact20260730.data.ts b/src/views/bg/fixcontact/FixedContact20260730.data.ts index 2a8d73d..4445e23 100644 --- a/src/views/bg/fixcontact/FixedContact20260730.data.ts +++ b/src/views/bg/fixcontact/FixedContact20260730.data.ts @@ -1,5 +1,10 @@ +import { h } from 'vue'; import { BasicColumn } from '/@/components/Table'; +function renderWrappedText({ text }: any) { + return h('div', { style: 'white-space: pre-wrap; word-break: break-word;' }, text ?? ''); +} + export const columns: BasicColumn[] = [ { title: '序号', @@ -86,21 +91,24 @@ export const fixedContactFeedbackColumns: BasicColumn[] = [ }, { title: '计划完成情况', - align: 'center', + align: 'left', dataIndex: 'planFinishStatus', width: 160, + customRender: renderWrappedText, }, { title: '处理意见、承办情况', - align: 'center', + align: 'left', dataIndex: 'handleOpinion', width: 200, + customRender: renderWrappedText, }, { title: '办结情况', - align: 'center', + align: 'left', dataIndex: 'finishStatus', width: 160, + customRender: renderWrappedText, }, { title: '实际完成时间', @@ -114,20 +122,21 @@ export const fixedContactFeedbackColumns: BasicColumn[] = [ }, { title: '实际完成情况', - align: 'center', + align: 'left', dataIndex: 'actualFinishStatus', width: 160, + customRender: renderWrappedText, }, { title: '反馈人', align: 'center', - dataIndex: 'feedbackUser_dictText', + dataIndex: 'feedbackUserName', width: 110, }, { title: '反馈部门', align: 'center', - dataIndex: 'feedbackDept_dictText', + dataIndex: 'feedbackDeptName', width: 150, }, ]; diff --git a/src/views/bg/fixcontact/components/FixedContact20260730BPMFeedbackModal.vue b/src/views/bg/fixcontact/components/FixedContact20260730BPMFeedbackModal.vue index 3638666..7cbeb6f 100644 --- a/src/views/bg/fixcontact/components/FixedContact20260730BPMFeedbackModal.vue +++ b/src/views/bg/fixcontact/components/FixedContact20260730BPMFeedbackModal.vue @@ -28,23 +28,23 @@ - + - + - + - + @@ -87,10 +87,11 @@ const formRef = ref(); const uploadFileRef = ref | null>(null); const uploadKey = ref(0); + const subProcessDeptId = ref(''); const labelCol = { xs: { span: 24 }, sm: { span: 7 } }; const wrapperCol = { xs: { span: 24 }, sm: { span: 17 } }; - const wideLabelCol = { xs: { span: 24 }, sm: { span: 3 } }; - const wideWrapperCol = { xs: { span: 24 }, sm: { span: 21 } }; + const wideLabelCol = { xs: { span: 24 }, sm: { span: 5 } }; + const wideWrapperCol = { xs: { span: 24 }, sm: { span: 19 } }; const feedbackSaveUrl = '/bg/fixcontact/fixedContact20260730/addFixedContactFeedback20260730'; const feedbackEditUrl = '/bg/fixcontact/fixedContact20260730/editFixedContactFeedback20260730'; @@ -110,21 +111,23 @@ }); const formRules = { + planFinishTime: [{ required: true, message: '请选择计划完成时间' }], planFinishStatus: [{ required: true, message: '请输入计划完成情况' }], }; - function resetForm(mainId = '', bpmProcessId = '') { + function resetForm(mainId = '', bpmProcessId = '', deptId = '') { Object.keys(formData).forEach((key) => { formData[key] = ''; }); formData.fixedContact20260730Id = mainId; formData.bpmProcessId = bpmProcessId; + subProcessDeptId.value = deptId; uploadKey.value += 1; nextTick(() => formRef.value?.clearValidate?.()); } - function open(mainId: string, bpmProcessId = '', record?: Record) { - resetForm(mainId, bpmProcessId); + function open(mainId: string, bpmProcessId = '', deptId = '', record?: Record) { + resetForm(mainId, bpmProcessId, deptId); if (record?.id) { isEdit.value = true; modalTitle.value = '编辑反馈'; @@ -157,9 +160,8 @@ const userInfo = (userStore.getUserInfo || {}) as Record; formData.feedbackUser = userInfo.id || userInfo.userId || ''; const loginDepart = getCurrentLoginDepart(); - if (loginDepart) { - formData.feedbackDept = loginDepart.id || ''; - } + // 反馈部门存当前子流程范围(impl_dept_id),供子流程内按范围过滤;非子流程节点回退到登录人部门 + formData.feedbackDept = subProcessDeptId.value || loginDepart?.id || ''; } function handleCancel() { @@ -206,5 +208,9 @@ diff --git a/src/views/bg/fixcontact/components/FixedContact20260730BPMForm.vue b/src/views/bg/fixcontact/components/FixedContact20260730BPMForm.vue index ade3dc3..484da3b 100644 --- a/src/views/bg/fixcontact/components/FixedContact20260730BPMForm.vue +++ b/src/views/bg/fixcontact/components/FixedContact20260730BPMForm.vue @@ -118,7 +118,7 @@ - + + + + + + 否(分配部门经办人) + 是(办结) + + + + + + + + + + + + + + + + 否(不需要) + 是(需要所领导审批) + + + + + + + + + +