!12 fix(xispeak): 修复反馈信息展示和交互问题

Merge pull request !12 from new_new_new/feature/20260525
This commit is contained in:
new_new_new
2026-05-26 06:27:39 +00:00
committed by Gitee
9 changed files with 326 additions and 167 deletions
+1
View File
@@ -22,6 +22,7 @@ pnpm-debug.log*
# Editor directories and files
.idea
.claude
.svn
# .vscode
*.java
+71 -3
View File
@@ -2,21 +2,25 @@
## 控制模型
- 默认全关,逐级显式通过 `extendUrlParams``=1` 开启
- `showBaseInfo` 默认开启(向后兼容),其余默认全关,逐级显式通过 `extendUrlParams``=1` 开启
- 上级未开启时,下级传参不生效
- 每个 UI 元素只受一个属性控制
## 控制树
```
showProcessHandle → 流程办理区域
showBaseInfo → 基础信息区域(表单 + 字段)
└── baseInfoReadonly → 基础信息字段是否只读(showBaseInfo=1 时生效)
showProcessHandle → 流程办理区域
└── showSubApproveUser → 是否办结 + 部门经办人选人
showFeedbackInfo → 反馈信息区域(表格 + 表头)
showFeedbackInfo → 反馈信息区域(表格 + 表头)
├── showAddFeedback → 新增反馈按钮
├── showEditFeedback → 编辑/删除操作列
├── showDeptFeedback → 按部门过滤反馈数据
└── showJiJianFields → 纪检字段列(检查情况/监督意见/措施数量)
└── jiJianFieldsReadonly → 纪检字段可见但不可编辑
```
## 节点权限配置
@@ -29,6 +33,8 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
### 节点: <督办部门经办人发起流程>
* taskDefKey: `<Task_00v3pcv>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `0` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `0` —— 反馈信息区域
@@ -36,12 +42,15 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1
---
### 节点: <督办部门负责人审批>
* taskDefKey: `<Task_0zmn6ik>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `0` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `0` —— 反馈信息区域
@@ -49,11 +58,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1
---
### 节点: <所党委审批>
* taskDefKey: `<Task_15sm4w5>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `0` —— 反馈信息区域
@@ -61,11 +73,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1
---
### 节点: <收集流程部门负责人接受任务并分配>
* taskDefKey: `<Task_1v9ce78>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `1` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `0` —— 反馈信息区域
@@ -73,11 +88,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showSubApproveUser=1
---
### 节点: <收集流程门经办人填写>
* taskDefKey: `<Task_0jrgrzs>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -85,11 +103,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `1` —— 编辑/删除操作列
* **showDeptFeedback** `1` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showDeptFeedback=1
---
### 节点: <收集流程部门负责人审批>
* taskDefKey: `<Task_0mf32ge>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -97,11 +118,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `1` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showDeptFeedback=1
---
### 节点: <收集流程督办发起人确认部门经办人填写内容>
* taskDefKey: `<Task_1w4vxgc>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -109,12 +133,15 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=0&showProcessHandle=1&showFeedbackInfo=1
---
### 节点: <反馈流程部门经办人填写反馈情况>
* taskDefKey: `<Task_08zb04x>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -122,11 +149,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `1` —— 编辑/删除操作列
* **showDeptFeedback** `1` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showDeptFeedback=1
---
### 节点: <反馈流程部门负责人审批>
* taskDefKey: `<Task_04bazej>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -134,11 +164,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `1` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showDeptFeedback=1
---
### 节点: <反馈流程督办经办人核查>
* taskDefKey: `<Task_175afz2>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -146,12 +179,15 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1
---
### 节点: <反馈流程督办部门负责人审批>
* taskDefKey: `<Task_00i7rrp>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -159,11 +195,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `0` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1
---
### 节点: <反馈流程纪检经办人监察>
* taskDefKey: `<Task_1wfkrvj>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -171,11 +210,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `1` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1&jiJianFieldsReadonly=1
---
### 节点: <反馈流程纪检负责人审批>
* taskDefKey: `<Task_1ogk921>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -183,11 +225,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&showJiJianFields=1&jiJianFieldsReadonly=1
---
### 节点: <督办部门经办人确认全部反馈事项>
* taskDefKey: `<Task_0bj578x>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -195,11 +240,14 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1&jiJianFieldsReadonly=1
---
## 习讲话经办人反馈流程
### 节点: <部门经办人反馈完成情况>
* taskDefKey: `<Task_12vdqzv>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -207,11 +255,15 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `1` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* **jiJianFieldsReadonly** `1` —— 纪检字段可见但不可编辑
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showAddFeedback=1&showEditFeedback=1&showJiJianFields=1&jiJianFieldsReadonly=1
---
### 节点: <部门负责人审批>
* taskDefKey: `<Task_06di2wf>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -219,11 +271,15 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* **jiJianFieldsReadonly** `1` —— 纪检字段可见但不可编辑
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1&jiJianFieldsReadonly=1
---
### 节点: <督办经办人核查>
* taskDefKey: `<Task_13olnz1>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `0` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -231,11 +287,15 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* **jiJianFieldsReadonly** `1` —— 纪检字段可见但不可编辑
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1&jiJianFieldsReadonly=1
---
### 节点: <督办部门负责人审批>
* taskDefKey: `<Task_1l650tz>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `0` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -243,11 +303,15 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* **jiJianFieldsReadonly** `1` —— 纪检字段可见但不可编辑
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1&jiJianFieldsReadonly=1
---
### 节点: <纪检经办人监察>
* taskDefKey: `<Task_0bahwr8>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `1` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -255,12 +319,15 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `1` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo-1&showEditFeedback=1&showJiJianFields=1
---
### 节点: <纪检负责人审批>
* taskDefKey: `<Task_005iiwi>`
* **showBaseInfo** `1` —— 基础信息区域
* **baseInfoReadonly** `0` —— 基础信息只读
* **showProcessHandle** `1` —— 流程办理区域
* **showSubApproveUser** `0` —— 是否办结 + 部门经办人
* **showFeedbackInfo** `1` —— 反馈信息区域
@@ -268,4 +335,5 @@ showFeedbackInfo → 反馈信息区域(表格 + 表头)
* **showEditFeedback** `0` —— 编辑/删除操作列
* **showDeptFeedback** `0` —— 按部门过滤反馈
* **showJiJianFields** `1` —— 纪检字段列
* bg/xispeak/components/BgXiSpeakBPMForm?edit=1&showProcessHandle=1&showFeedbackInfo=1&showJiJianFields=1
---
+4
View File
@@ -185,6 +185,10 @@ export const withDrawXiSpeak = (params) => {
return defHttp.post({ url: '/bg/xispeak/bgXiSpeak/withDrawXiSpeak', params }, { joinParamsToUrl: true, isTransformResponse: false });
};
export const deleteSingleProcess = (params) => {
return defHttp.post({ url: '/tasktask/taskTask/deleteSingleProcess', params }, { joinParamsToUrl: true, isTransformResponse: false });
};
/**
* 批量查询反馈统计数量(每个 xispeak 下的 feedback 总条数和已闭环数)
* @param params { ids: "id1,id2,id3" }
+4 -3
View File
@@ -83,6 +83,7 @@
updateLaunchType,
saveOrUpdateDict,
withDrawXiSpeak,
deleteSingleProcess,
getRootListWithDept,
bgXiSpeakFeedbackList,
} from './BgXiSpeak.api';
@@ -597,7 +598,7 @@
}
async function handleDeleteProcess(processRecord, reload) {
const res = await withDrawXiSpeak({ id: currentBusinessId.value });
const res = await deleteSingleProcess({ processInstId: processRecord.processInstId });
if (res.success) {
createMessage.success(res.message || '删除流程成功');
await reload();
@@ -680,7 +681,7 @@
deptLeaderId: deptId,
deptHandlerName: deptHandlerMap.get(deptId) || '',
requireFinishDate: formatDate(record.time, 'YYYY-MM-DD'),
deadline: record.deadline || formatDate(record.time, 'YYYY-MM-DD HH:mm:ss'),
deadline: record.deadline || formatDate(record.time, 'YYYY-MM-DD'),
},
};
@@ -717,7 +718,7 @@
deptId: options.deptId || record.implDept,
deptLeaderId: record.responsiblePerson,
requireFinishDate: formatDate(record.time, 'YYYY-MM-DD'),
deadline: record.deadline || formatDate(record.time, 'YYYY-MM-DD HH:mm:ss'),
deadline: record.deadline || formatDate(record.time, 'YYYY-MM-DD'),
},
};
@@ -17,8 +17,8 @@
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="反馈人" name="responPersonid">
<j-select-user v-model:value="formData.responPersonid" allow-clear @change="handleUserChange" />
<a-form-item label="反馈人">
<a-input :value="formData.responPersonname" disabled placeholder="自动填充当前用户" />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
@@ -70,17 +70,17 @@
<!-- </a-col>-->
<a-col v-if="showJiJianFields" :span="12">
<a-form-item label="检查情况(纪检)" name="checkStatus">
<a-input v-model:value="formData.checkStatus" placeholder="填写监督检查情况,成果是否完整,符合,时间是否按时等" allow-clear />
<a-input v-model:value="formData.checkStatus" placeholder="填写监督检查情况,成果是否完整,符合,时间是否按时等" :disabled="jiJianFieldsReadonly" allow-clear />
</a-form-item>
</a-col>
<a-col v-if="showJiJianFields" :span="24">
<a-form-item label="监督意见(纪检)" name="inspectionAdvice" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="formData.inspectionAdvice" placeholder="是否通过审核" :rows="3" allow-clear />
<a-textarea v-model:value="formData.inspectionAdvice" placeholder="是否通过审核" :rows="3" :disabled="jiJianFieldsReadonly" allow-clear />
</a-form-item>
</a-col>
<a-col v-if="showJiJianFields" :span="12">
<a-form-item label="措施数量(纪检)" name="measureNum">
<a-input-number v-model:value="formData.measureNum" placeholder="填写本条举措设计的措施数量" style="width: 100%" allow-clear />
<a-input-number v-model:value="formData.measureNum" placeholder="填写本条举措设计的措施数量" style="width: 100%" :disabled="jiJianFieldsReadonly" allow-clear />
</a-form-item>
</a-col>
<a-col :span="24">
@@ -108,12 +108,12 @@
import { buildUUID } from '/@/utils/uuid';
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.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';
const emit = defineEmits(['success']);
const props = defineProps({
showJiJianFields: { type: Boolean, default: false },
jiJianFieldsReadonly: { type: Boolean, default: false },
});
const { createMessage } = useMessage();
const userStore = useUserStore();
@@ -240,12 +240,6 @@
}
}
function handleUserChange(value, row) {
if (row) {
formData.responPersonname = row.realname || row.name || '';
}
}
function handleCancel() {
visible.value = false;
}
@@ -70,11 +70,11 @@
<j-select-dept v-model:value="mainForm.implDept" :disabled="mainDisabled" :multiple="true" checkStrictly allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="落实方案" name="implPlan">
<a-input v-model:value="mainForm.implPlan" :disabled="mainDisabled" allow-clear />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="落实方案" name="implPlan">-->
<!-- <a-input v-model:value="mainForm.implPlan" :disabled="mainDisabled" allow-clear />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="12">
<a-form-item label="贯彻落实措施" name="implMeasures">
<a-input v-model:value="mainForm.implMeasures" :disabled="mainDisabled" allow-clear />
@@ -102,6 +102,7 @@
dictCode="db_status"
placeholder="请选择完成状态"
type="radio"
:stringToNumber="true"
:disabled="mainDisabled"
/>
</a-form-item>
@@ -110,8 +111,7 @@
<a-form-item label="截止日期" name="deadline">
<a-date-picker
v-model:value="mainForm.deadline"
value-format="YYYY-MM-DD HH:mm:ss"
:show-time="true"
value-format="YYYY-MM-DD"
:disabled="mainDisabled"
style="width: 100%"
allow-clear
@@ -123,14 +123,14 @@
<a-input v-model:value="mainForm.reportFeedbackStatus" :disabled="mainDisabled" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="是否存在完成风险" name="isCompletionRisk">
<a-radio-group v-model:value="mainForm.isCompletionRisk" :disabled="mainDisabled">
<a-radio :value="0">不存在</a-radio>
<a-radio :value="1">存在</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="是否存在完成风险" name="isCompletionRisk">-->
<!-- <a-radio-group v-model:value="mainForm.isCompletionRisk" :disabled="mainDisabled">-->
<!-- <a-radio :value="0">不存在</a-radio>-->
<!-- <a-radio :value="1">存在</a-radio>-->
<!-- </a-radio-group>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="12">
<a-form-item label="是否需要督办领导" name="needSdwApproval">
<a-radio-group v-model:value="mainForm.needSdwApproval" :disabled="mainDisabled">
@@ -144,34 +144,34 @@
<j-select-user v-model:value="mainForm.sdwLeaderList" :disabled="mainDisabled" :multiple="true" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="拖期风险应对措施" name="delayRiskMitigation">
<a-input v-model:value="mainForm.delayRiskMitigation" :disabled="mainDisabled" allow-clear />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="拖期风险应对措施" name="delayRiskMitigation">-->
<!-- <a-input v-model:value="mainForm.delayRiskMitigation" :disabled="mainDisabled" allow-clear />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="12">
<a-form-item label="督办次数" name="supervisionCount">
<a-input-number v-model:value="mainForm.supervisionCount" :disabled="mainDisabled" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="父级节点" name="pid">
<j-tree-select
v-model:value="mainForm.pid"
dict="bg_xi_speak,impl_status,id"
pidField="pid"
pidValue="0"
hasChildField="has_child"
:disabled="mainDisabled"
allow-clear
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="落实情况" name="implStatus">
<a-textarea v-model:value="mainForm.implStatus" :auto-size="{ minRows: 1, maxRows: 7 }" :disabled="mainDisabled" allow-clear />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="父级节点" name="pid">-->
<!-- <j-tree-select-->
<!-- v-model:value="mainForm.pid"-->
<!-- dict="bg_xi_speak,impl_status,id"-->
<!-- pidField="pid"-->
<!-- pidValue="0"-->
<!-- hasChildField="has_child"-->
<!-- :disabled="mainDisabled"-->
<!-- allow-clear-->
<!-- />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <a-form-item label="落实情况" name="implStatus">-->
<!-- <a-textarea v-model:value="mainForm.implStatus" :auto-size="{ minRows: 1, maxRows: 7 }" :disabled="mainDisabled" allow-clear />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
</template>
</a-row>
</a-form>
@@ -197,16 +197,17 @@
</a-space>
</div>
<a-table
v-if="showFeedbackInfo"
v-if="showFeedbackInfo && showFeedbackDetail"
rowKey="id"
size="small"
bordered
:columns="feedbackColumns"
:data-source="feedbackList"
:pagination="false"
:scroll="{ x: 2080 }"
:scroll="{ x: 1980 }"
>
<template #bodyCell="{ column, record }">
<template #bodyCell="{ column, record, index }">
<template v-if="column.key === 'seq'">{{ index + 1 }}</template>
<template v-if="column.key === 'attachments'">
<SUploadFile v-if="record.id" class="feedback-attachment-list" :bussiness-id="record.id" :disabled="true" :multiple="true" />
<span v-else>-</span>
@@ -220,9 +221,15 @@
</template>
</a-table>
<BgXiSpeakBPMFeedbackModal ref="feedbackModalRef" :showJiJianFields="showJiJianFields" @success="loadFeedbackList" />
<BgXiSpeakBPMFeedbackModal
ref="feedbackModalRef"
:showJiJianFields="showJiJianFields"
:jiJianFieldsReadonly="jiJianFieldsReadonly"
@success="loadFeedbackList"
/>
<template v-if="showProcessHandle">
<a-divider />
<div class="process-header section-toolbar">
<div class="section-title">流程办理</div>
@@ -343,15 +350,15 @@
const feedbackColumns = computed(() => {
const cols: any[] = [
{ title: '序号', dataIndex: 'num', align: 'center', width: 60 },
{ title: '序号', key: 'seq', align: 'center', width: 60 },
{ title: '反馈部门名称', dataIndex: 'responDeptname', align: 'center', width: 140 },
{ title: '反馈人姓名', dataIndex: 'responPersonname', align: 'center', width: 120 },
{ title: '措施内容', dataIndex: 'method', align: 'left', width: 200 },
{ title: '完成状态', dataIndex: 'completionStatus_dictText', align: 'center', width: 100 },
{ title: '是否有报送上级报告', dataIndex: 'isReportedToHigher_dictText', align: 'center', width: 140 },
{ title: '进展情况', dataIndex: 'progress', align: 'left', width: 200 },
{ title: '落实情况', dataIndex: 'implStatus', align: 'left', width: 200 },
{ title: '附件', dataIndex: 'id', key: 'attachments', align: 'left', width: 340 },
// { title: '落实情况', dataIndex: 'implStatus', align: 'left', width: 200 },
{ title: '附件', dataIndex: 'id', key: 'attachments', align: 'left', width: 280 },
];
if (showJiJianFields.value) {
cols.push(
@@ -387,9 +394,11 @@
if (explicit === '0') return false;
if (explicit === '1') return true;
// 未显式设置时,任一子属性开启则自动显示反馈区域
return String(p?.showAddFeedback ?? p?.addfeedback ?? '') === '1'
|| String(p?.showEditFeedback ?? p?.editfeedback ?? '') === '1'
|| String(p?.showDeptFeedback ?? p?.deptfeedback ?? '') === '1';
return (
String(p?.showAddFeedback ?? p?.addfeedback ?? '') === '1' ||
String(p?.showEditFeedback ?? p?.editfeedback ?? '') === '1' ||
String(p?.showDeptFeedback ?? p?.deptfeedback ?? '') === '1'
);
});
const showEditFeedback = computed(
() => String(props.formData?.extendUrlParams?.showEditFeedback ?? props.formData?.extendUrlParams?.editfeedback ?? '') === '1'
@@ -398,6 +407,7 @@
() => String(props.formData?.extendUrlParams?.showDeptFeedback ?? props.formData?.extendUrlParams?.deptfeedback ?? '') === '1'
);
const showJiJianFields = computed(() => String(props.formData?.extendUrlParams?.showJiJianFields ?? '') === '1');
const jiJianFieldsReadonly = computed(() => String(props.formData?.extendUrlParams?.jiJianFieldsReadonly ?? '') === '1');
const showDeptFields = computed(() => String(props.formData?.extendUrlParams?.deptfields ?? '') === '1');
const showSubApproveUser = computed(
() => String(props.formData?.extendUrlParams?.showSubApproveUser ?? props.formData?.extendUrlParams?.selectuser ?? '') === '1'
@@ -438,7 +448,7 @@
if (!dataId) {
return;
}
showBaseInfoDetail.value = false;
showBaseInfoDetail.value = true;
loading.value = true;
try {
const data = await defHttp.get({ url: queryByIdUrl, params: { id: dataId } });
@@ -713,6 +723,7 @@
}
:deep(.ant-input),
:deep(.ant-input-number),
:deep(.ant-picker),
:deep(.ant-select-selector) {
min-height: 30px;
@@ -730,6 +741,9 @@
:deep(.ant-input-outlined[disabled]),
:deep(.ant-input-outlined.ant-input-disabled),
:deep(textarea.ant-input[disabled]),
:deep(.ant-input-number-disabled),
:deep(.ant-input-number-disabled:hover),
:deep(.ant-input-number-disabled:focus),
:deep(.ant-picker-disabled),
:deep(.ant-select-disabled .ant-select-selector) {
background: transparent !important;
@@ -743,6 +757,7 @@
:deep(.ant-input[disabled]),
:deep(.ant-input-disabled),
:deep(.ant-input-affix-wrapper-disabled),
:deep(.ant-input-number-disabled),
:deep(textarea.ant-input[disabled]) {
padding-left: 0 !important;
padding-right: 0 !important;
@@ -754,6 +769,13 @@
cursor: default !important;
}
:deep(.ant-input-number-disabled .ant-input-number-input) {
background: transparent !important;
color: #1f2937 !important;
-webkit-text-fill-color: #1f2937 !important;
cursor: default !important;
}
:deep(.ant-input[disabled]::placeholder),
:deep(.ant-input-disabled::placeholder),
:deep(.ant-input-affix-wrapper-disabled .ant-input::placeholder) {
@@ -788,9 +810,23 @@
:deep(.ant-picker-disabled .ant-picker-suffix),
:deep(.ant-input-disabled .ant-input-clear-icon),
:deep(.ant-input-affix-wrapper-disabled .ant-input-clear-icon),
:deep(.ant-input-number-disabled .ant-input-number-handler-wrap),
:deep(.ant-select-disabled .ant-select-clear) {
display: none;
}
:deep(.ant-radio-wrapper-disabled) {
color: #1f2937 !important;
cursor: default !important;
}
:deep(.ant-radio-wrapper-disabled:not(.ant-radio-wrapper-checked)) {
display: none;
}
:deep(.ant-radio-disabled .ant-radio-inner) {
display: none;
}
}
.feedback-header {
@@ -820,11 +856,13 @@
}
.feedback-attachment-list {
min-width: 300px;
min-width: 240px;
:deep(.file-list-wrapper) {
min-height: auto;
padding: 8px;
min-height: 36px;
max-height: 130px;
overflow-y: auto;
padding: 4px 8px;
}
:deep(.file-list-header) {
@@ -839,6 +877,18 @@
:deep(.ant-empty) {
margin: 0;
padding: 4px 0;
.ant-empty-image {
display: none;
}
.ant-empty-description {
font-size: 12px;
color: #999;
padding: 0;
margin: 0;
}
}
}
</style>
@@ -1,7 +1,7 @@
<template>
<j-modal
:title="title"
:width="900"
:width="1300"
:visible="visible"
:okButtonProps="{ class: { 'jee-hidden': true } }"
@cancel="handleCancel"
@@ -20,7 +20,20 @@
:loading="loading"
:pagination="false"
:bordered="false"
/>
>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'attachments'">
<SUploadFile
v-if="record.id"
class="feedback-view-attachment-list"
:bussiness-id="record.id"
:disabled="true"
:multiple="true"
/>
<span v-else>-</span>
</template>
</template>
</BasicTable>
</j-modal>
</template>
@@ -29,6 +42,7 @@
import { BasicTable } from '/@/components/Table';
import type { BasicColumn } from '/@/components/Table';
import JModal from '/@/components/Modal/src/JModal/JModal.vue';
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
import { bgXiSpeakFeedbackList } from '../BgXiSpeak.api';
const visible = ref(false);
@@ -67,6 +81,33 @@
align: 'center',
width: 120,
},
{
title: '检查情况(纪检)',
dataIndex: 'checkStatus',
align: 'left',
ellipsis: true,
width: 140,
},
{
title: '监督意见(纪检)',
dataIndex: 'inspectionAdvice',
align: 'left',
ellipsis: true,
width: 140,
},
{
title: '措施数量(纪检)',
dataIndex: 'measureNum',
align: 'center',
width: 100,
},
{
title: '附件',
dataIndex: 'id',
key: 'attachments',
align: 'left',
width: 280,
},
];
const title = computed(() => {
@@ -98,3 +139,41 @@
defineExpose({ open });
</script>
<style lang="less" scoped>
.feedback-view-attachment-list {
min-width: 240px;
:deep(.file-list-wrapper) {
min-height: 40px;
max-height: 120px;
padding: 4px 8px;
}
:deep(.file-list-header) {
margin-bottom: 6px;
padding-bottom: 6px;
}
:deep(.file-list .file-item) {
padding: 8px;
margin-bottom: 6px;
}
:deep(.ant-empty) {
margin: 0;
padding: 4px 0;
.ant-empty-image {
display: none;
}
.ant-empty-description {
font-size: 12px;
color: #999;
padding: 0;
margin: 0;
}
}
}
</style>
@@ -2,16 +2,20 @@
<a-spin :spinning="confirmLoading">
<JFormContainer :disabled="disabled">
<template #detail>
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="BgXiSpeakForm">
<a-row>
<a-col :span="12">
<a-form ref="formRef" class="antd-modal-form" labelAlign="left" :labelCol="labelCol" :wrapperCol="wrapperCol" name="BgXiSpeakForm">
<!-- 基本信息 -->
<a-divider orientation="left" plain>基本信息</a-divider>
<a-row :gutter="[16, 0]">
<a-col :span="24">
<a-form-item
label="习近平总书记重要讲话指示批示情况"
label="重要讲话指示批示"
v-bind="validateInfos.speakStatus"
id="BgXiSpeakForm-speakStatus"
name="speakStatus"
:labelCol="{ xs: { span: 24 }, sm: { span: 3 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 21 } }"
>
<a-textarea v-model:value="formData.speakStatus" :rows="4" placeholder="请输入习近平总书记重要讲话指示批示情况" allow-clear />
<a-textarea v-model:value="formData.speakStatus" :rows="3" placeholder="请输入习近平总书记重要讲话指示批示情况" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
@@ -25,7 +29,7 @@
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="学习传达研究部署情况" v-bind="validateInfos.status" id="BgXiSpeakForm-status" name="status">
<a-form-item label="学习传达研究部署" v-bind="validateInfos.status" id="BgXiSpeakForm-status" name="status">
<a-input v-model:value="formData.status" placeholder="请输入学习传达研究部署情况" allow-clear></a-input>
</a-form-item>
</a-col>
@@ -39,11 +43,6 @@
<j-select-user v-model:value="formData.responsiblePerson" placeholder="请从所党委选择责任人" allow-clear />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="落实方案" v-bind="validateInfos.implPlan" id="BgXiSpeakForm-implPlan" name="implPlan">-->
<!-- <a-input v-model:value="formData.implPlan" placeholder="请输入落实方案" allow-clear></a-input>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="12">
<a-form-item label="牵头部门" v-bind="validateInfos.implDept" id="BgXiSpeakForm-implDept" name="implDept">
<j-select-dept v-model:value="formData.implDept" :multiple="true" placeholder="请选择牵头部门" checkStrictly allow-clear />
@@ -55,22 +54,12 @@
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
label="会议决策数"
v-bind="validateInfos.numberOfResolutions"
id="BgXiSpeakForm-numberOfResolutions"
name="numberOfResolutions"
>
<a-form-item label="会议决策数" v-bind="validateInfos.numberOfResolutions" id="BgXiSpeakForm-numberOfResolutions" name="numberOfResolutions">
<a-input-number v-model:value="formData.numberOfResolutions" placeholder="请输入会议决策数" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
label="是否需要所党委督办领导"
v-bind="validateInfos.needSdwApproval"
id="BgXiSpeakForm-needSdwApproval"
name="needSdwApproval"
>
<a-form-item label="是否需要督办领导" v-bind="validateInfos.needSdwApproval" id="BgXiSpeakForm-needSdwApproval" name="needSdwApproval">
<a-radio-group v-model:value="formData.needSdwApproval">
<a-radio :value="1"></a-radio>
<a-radio :value="0"></a-radio>
@@ -78,100 +67,50 @@
</a-form-item>
</a-col>
<a-col v-if="formData.needSdwApproval === 1" :span="12">
<a-form-item label="所党委督办领导列表" v-bind="validateInfos.sdwLeaderList" id="BgXiSpeakForm-sdwLeaderList" name="sdwLeaderList">
<a-form-item label="督办领导列表" v-bind="validateInfos.sdwLeaderList" id="BgXiSpeakForm-sdwLeaderList" name="sdwLeaderList">
<j-select-user v-model:value="formData.sdwLeaderList" :multiple="true" allow-clear placeholder="请选择督办领导" />
</a-form-item>
</a-col>
</a-row>
<!-- 状态与统计 -->
<a-divider orientation="left" plain>状态与统计</a-divider>
<a-row :gutter="[16, 0]">
<a-col :span="12">
<a-form-item label="指定落实措施条数" v-bind="validateInfos.implCount" id="BgXiSpeakForm-implCount" name="implCount">
<a-input-number
v-model:value="formData.implCount"
placeholder="指定落实措施条数无需输入,每增加一条反馈数量加1"
style="width: 100%"
/>
<a-input-number v-model:value="formData.implCount" placeholder="每增加一条反馈数量加1" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="措施已闭环数量" v-bind="validateInfos.closedCount" id="BgXiSpeakForm-closedCount" name="closedCount">
<a-input-number v-model:value="formData.closedCount" placeholder="措施已闭环数量无需输入,每一个牵头部门完成反馈全流程增加相应反馈数量" style="width: 100%" />
<a-input-number v-model:value="formData.closedCount" placeholder="完成反馈全流程增加" style="width: 100%" />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="落实情况" v-bind="validateInfos.implStatus" id="BgXiSpeakForm-implStatus" name="implStatus">-->
<!-- <a-textarea v-model:value="formData.implStatus" :rows="4" placeholder="请输入" allow-clear />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="12">
<a-form-item
label="报告反馈情况"
v-bind="validateInfos.reportFeedbackStatus"
id="BgXiSpeakForm-reportFeedbackStatus"
name="reportFeedbackStatus"
>
<a-form-item label="报告反馈情况" v-bind="validateInfos.reportFeedbackStatus" id="BgXiSpeakForm-reportFeedbackStatus" name="reportFeedbackStatus">
<a-input v-model:value="formData.reportFeedbackStatus" placeholder="请输入" allow-clear></a-input>
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="是否存在完成风险" id="BgXiSpeakForm-isCompletionRisk" name="isCompletionRisk">-->
<!-- <a-radio-group v-model:value="formData.isCompletionRisk">-->
<!-- <a-radio :value="0">不存在</a-radio>-->
<!-- <a-radio :value="1">存在</a-radio>-->
<!-- </a-radio-group>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="12">
<a-form-item label="完成状态" v-bind="validateInfos.completionStatus" id="BgXiSpeakForm-completionStatus" name="completionStatus">
<JDictSelectTag v-model:value="formData.completionStatus" dictCode="db_status" placeholder="请选择完成状态" type="radio" />
<JDictSelectTag v-model:value="formData.completionStatus" dictCode="db_status" placeholder="请选择完成状态" type="radio" :stringToNumber="true" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="截止日期" v-bind="validateInfos.deadline" id="BgXiSpeakForm-deadline" name="deadline">
<a-date-picker
placeholder="请选择截止日期"
v-model:value="formData.deadline"
value-format="YYYY-MM-DD HH:mm:ss"
:show-time="true"
style="width: 100%"
allow-clear
/>
<a-date-picker placeholder="请选择截止日期" v-model:value="formData.deadline" value-format="YYYY-MM-DD" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item-->
<!-- label="拖期风险应对措施"-->
<!-- v-bind="validateInfos.delayRiskMitigation"-->
<!-- id="BgXiSpeakForm-delayRiskMitigation"-->
<!-- name="delayRiskMitigation"-->
<!-- >-->
<!-- <a-input v-model:value="formData.delayRiskMitigation" placeholder="请输入" allow-clear></a-input>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="12">
<a-form-item label="督办次数" v-bind="validateInfos.supervisionCount" id="BgXiSpeakForm-supervisionCount" name="supervisionCount">
<a-input-number
v-model:value="formData.supervisionCount"
placeholder="督办次数无需输入,每次发起督办流程自动加1"
style="width: 100%"
/>
<a-input-number v-model:value="formData.supervisionCount" placeholder="每次发起督办流程自动加1" style="width: 100%" />
</a-form-item>
</a-col>
<!-- <a-col :span="12">-->
<!-- <a-form-item label="父级节点" v-bind="validateInfos.pid" id="BgXiSpeakForm-pid" name="pid">-->
<!-- <j-tree-select-->
<!-- v-model:value="formData.pid"-->
<!-- dict="bg_xi_speak,impl_status,id"-->
<!-- pidField="pid"-->
<!-- pidValue="0"-->
<!-- hasChildField="has_child"-->
<!-- :disabled="disabled"-->
<!-- />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col v-if="showFlowSubmitButton" :span="24" style="width: 100%; text-align: center">
<a-button preIcon="ant-design:check-outlined" style="width: 126px" type="primary" @click="submitForm"> </a-button>
</a-col>
</a-row>
<a-col v-if="showFlowSubmitButton" :span="24" style="width: 100%; text-align: center; margin-top: 16px;">
<a-button preIcon="ant-design:check-outlined" style="width: 126px" type="primary" @click="submitForm"> </a-button>
</a-col>
</a-form>
</template>
</JFormContainer>
@@ -231,8 +170,8 @@
});
const { createMessage } = useMessage();
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 6 } });
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 18 } });
const confirmLoading = ref<boolean>(false);
const validatorRules = reactive({
@@ -286,7 +225,8 @@
return false;
});
function add(obj = {}) {
async function add(obj = {}) {
treeData.value = await loadTreeData({ async: false, pcode: '' });
edit(obj);
}
@@ -294,12 +234,22 @@
nextTick(async () => {
resetFields();
expandedRowKeys.value = [];
treeData.value = await loadTreeData({ async: false, pcode: '' });
// 非BPM模式且有ID时,从API查询完整数据,避免列表行数据不完整导致字段不显示
let data = record;
if (record.id && !props.formBpm) {
try {
const res = await defHttp.get({ url: queryByIdUrl, params: { id: record.id } });
data = res || record;
} catch {
data = record;
}
}
const tmpData = {};
Object.keys(formData).forEach((key) => {
if (record.hasOwnProperty(key)) {
tmpData[key] = record[key] === null ? (key === 'needSdwApproval' ? 0 : '') : record[key];
if (data.hasOwnProperty(key)) {
tmpData[key] = data[key] === null ? (key === 'needSdwApproval' ? 0 : '') : data[key];
}
});
@@ -376,5 +326,17 @@
<style lang="less" scoped>
.antd-modal-form {
padding: 14px;
:deep(.ant-form-item-label) {
overflow: visible;
white-space: normal;
text-overflow: unset;
text-align: left;
> label {
justify-content: flex-start;
width: 100%;
}
}
}
</style>
@@ -16,7 +16,7 @@
const { createMessage } = useMessage();
const title = ref<string>('');
const width = ref<number>(800);
const width = ref<number>(1400);
const visible = ref<boolean>(false);
const disableSubmit = ref<boolean>(false);
const registerForm = ref();