Merge branch 'refs/heads/master' into wsq-20260727

# Conflicts:
#	src/views/gh/improvementProposal/components/ImprovementProposalForm.vue
This commit is contained in:
王淑勤
2026-07-29 10:54:07 +08:00
8 changed files with 349 additions and 120 deletions
@@ -34,8 +34,8 @@
<a-input v-model:value="formData.applicantName" placeholder="请输入申请人姓名" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="团队名称" v-bind="validateInfos.teamName" id="ImprovementProposalForm-teamName" name="teamName" :labelCol="longLabelCol" :wrapperCol="longWrapperCol">
<a-col :span="12">
<a-form-item label="团队名称" v-bind="validateInfos.teamName" id="ImprovementProposalForm-teamName" name="teamName">
<a-input v-model:value="formData.teamName" placeholder="请输入团队名称" allow-clear ></a-input>
</a-form-item>
</a-col>
@@ -50,24 +50,24 @@
<a-textarea v-model:value="formData.improvementMethod" :rows="4" placeholder="请输入改善方法及措施" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="改善前情况描述" v-bind="validateInfos.beforeDesc" id="ImprovementProposalForm-beforeDesc" name="beforeDesc" :labelCol="longLabelCol" :wrapperCol="longWrapperCol">
<a-col :span="12">
<a-form-item label="改善前情况描述" v-bind="validateInfos.beforeDesc" id="ImprovementProposalForm-beforeDesc" name="beforeDesc" :labelCol="halfLabelCol" :wrapperCol="halfWrapperCol">
<a-textarea v-model:value="formData.beforeDesc" :rows="4" placeholder="请输入改善前情况描述" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="改善前图片" :labelCol="longLabelCol" :wrapperCol="longWrapperCol">
<SUploadFile ref="beforeFileRef" :bussiness-id="formData.proposalNo ? `${formData.proposalNo}:before` : ''" :multiple="true" :disabled="disabled" />
<a-col :span="12">
<a-form-item label="改善前图片" :labelCol="halfLabelCol" :wrapperCol="halfWrapperCol">
<SUploadFile ref="beforeFileRef" :bussiness-id="formData.id ? `${formData.id}:before` : ''" :multiple="true" :disabled="disabled" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="改善后情况描述" v-bind="validateInfos.afterDesc" id="ImprovementProposalForm-afterDesc" name="afterDesc" :labelCol="longLabelCol" :wrapperCol="longWrapperCol">
<a-col :span="12">
<a-form-item label="改善后情况描述" v-bind="validateInfos.afterDesc" id="ImprovementProposalForm-afterDesc" name="afterDesc" :labelCol="halfLabelCol" :wrapperCol="halfWrapperCol">
<a-textarea v-model:value="formData.afterDesc" :rows="4" placeholder="请输入改善后情况描述" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="改善后图片" :labelCol="longLabelCol" :wrapperCol="longWrapperCol">
<SUploadFile ref="afterFileRef" :bussiness-id="formData.proposalNo ? `${formData.proposalNo}:after` : ''" :multiple="true" :disabled="disabled" />
<a-col :span="12">
<a-form-item label="改善后图片" :labelCol="halfLabelCol" :wrapperCol="halfWrapperCol">
<SUploadFile ref="afterFileRef" :bussiness-id="formData.id ? `${formData.id}:after` : ''" :multiple="true" :disabled="disabled" />
</a-form-item>
</a-col>
<a-col :span="24">
@@ -204,19 +204,19 @@
};
const longLabelCol = {
xs: {span: 24},
sm: {span: 5},
sm: {span: 4},
};
const longWrapperCol = {
xs: {span: 24},
sm: {span: 16},
sm: {span: 20},
};
const halfLabelCol = {
xs: {span: 24},
sm: {span: 5},
sm: {span: 8},
};
const halfWrapperCol = {
xs: {span: 24},
sm: {span: 18},
sm: {span: 16},
};
const disabled = computed(()=>{
@@ -230,8 +230,8 @@
return props.formDisabled;
});
// 普通新增没有业务 ID,不展示评分投票子表;已有数据及流程表单正常展示
const showSubTables = computed(() => Boolean(formData.id || props.formData?.dataId));
// 子表由流程节点维护,普通新增、编辑和详情弹窗均不展示,避免误改评分投票数据
const showSubTables = computed(() => props.formBpm === true && Boolean(formData.id || props.formData?.dataId));
function getCurrentDate() {
const now = new Date();
@@ -330,12 +330,6 @@
improvementDeptScoreTable.dataSource = [...improvementDeptScoreDataList];
const improvementInstituteVoteDataList = await queryImprovementInstituteVoteListByMainId(row['id']);
improvementInstituteVoteTable.dataSource = [...improvementInstituteVoteDataList];
// 加载改善前/后图片文件列表
await nextTick();
if (formData.id) {
beforeFileRef.value?.loadFileList();
afterFileRef.value?.loadFileList();
}
}
}
@@ -360,11 +354,9 @@
async function edit(row) {
//主表数据
await queryMainData(row.id);
//子表数据
const improvementDeptScoreDataList = await queryImprovementDeptScoreListByMainId(row['id']);
improvementDeptScoreTable.dataSource = [...improvementDeptScoreDataList];
const improvementInstituteVoteDataList = await queryImprovementInstituteVoteListByMainId(row['id']);
improvementInstituteVoteTable.dataSource = [...improvementInstituteVoteDataList];
// 普通编辑不加载子表,并清理弹窗复用时可能残留的表格数据
improvementDeptScoreTable.dataSource = [];
improvementInstituteVoteTable.dataSource = [];
// 加载改善前/后图片文件列表
await nextTick();
if (formData.id) {
@@ -411,8 +403,8 @@
const mainData = await getFormData();
const isUpdate = Boolean(mainData.id);
const values = Object.assign({}, dbData, mainData);
// 新增提案只保存主表;已有提案编辑或流程提交时才采集子表数据
if (isUpdate) {
// 仅流程表单提交子表,普通编辑不能覆盖后续流程维护的评分和投票记录
if (isUpdate && showSubTables.value) {
const subData = await getSubFormAndTableData();
Object.assign(values, subData);
}