!112 refactor(bg): 年份字段从字典组件替换为年份选择器

* refactor(bg): 年份字段从字典组件替换为年份选择器
* feat(bpm): 待办/已办/待阅/已阅弹窗标题改为业务标题
* feat(bpmform): 反馈新增时计划完成目标/日期必填可编辑,编辑时禁用并提示
* style(bpmform): 统一表单标签宽度和对齐,清理调试代码
* feat(bg): 再次发起督办弹窗标题显示中文数字督办次数
* style(bpmform): 新增反馈按钮添加悬浮提示"可以多次新增反馈"
This commit is contained in:
wsm
2026-07-24 03:16:38 +00:00
parent fd66dac804
commit 11f6ba3961
12 changed files with 136 additions and 52 deletions
@@ -39,14 +39,18 @@
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :span="24">
<a-form-item label="计划完成目标" name="planExect" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="formData.planExect" :rows="3" allow-clear />
</a-form-item>
<a-tooltip :title="isEdit ? '' : '该信息后续不可编辑,请谨慎填写'">
<a-form-item label="计划完成目标" name="planExect" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="formData.planExect" :rows="3" :disabled="isEdit" allow-clear />
</a-form-item>
</a-tooltip>
</a-col>
<a-col :span="12">
<a-form-item label="计划完成日期" name="planTime">
<a-date-picker v-model:value="formData.planTime" value-format="YYYY-MM-DD" style="width: 100%" allow-clear />
</a-form-item>
<a-tooltip :title="isEdit ? '' : '该信息后续不可编辑,请谨慎填写'">
<a-form-item label="计划完成日期" name="planTime">
<a-date-picker v-model:value="formData.planTime" value-format="YYYY-MM-DD" style="width: 100%" :disabled="isEdit" allow-clear />
</a-form-item>
</a-tooltip>
</a-col>
<a-col :span="12">
<a-form-item label="完成状态" name="bpmStatus">
@@ -55,7 +59,7 @@
</a-col>
<a-col :span="12">
<a-form-item label="实际完成日期" name="actualTime">
<a-date-picker v-model:value="formData.actualTime" value-format="YYYY-MM-DD" placeholder="请选择实际完成日期" style="width: 100%" allow-clear />
<a-date-picker v-model:value="formData.actualTime" value-format="YYYY-MM-DD" placeholder="请选择实际完成日期" style="width: 100%" :disabled="isEdit" allow-clear />
</a-form-item>
</a-col>
<a-col :span="24">
@@ -97,6 +101,7 @@
const visible = ref(false);
const saving = ref(false);
const isEdit = ref(false);
const modalTitle = ref('新增反馈');
const formRef = ref();
const uploadFileRef = ref<InstanceType<typeof SUploadFile> | null>(null);
@@ -122,7 +127,10 @@
mainId: '',
});
const formRules = {};
const formRules = {
planExect: [{ required: true, message: '请输入计划完成目标' }],
planTime: [{ required: true, message: '请选择计划完成日期' }],
};
function resetForm(mainId = '', bpmProcessId = '') {
Object.keys(formData).forEach((key) => {
@@ -138,6 +146,7 @@
resetForm(mainId, bpmProcessId);
uploadSecretLevel.value = normalizeSecretLevel(secretLevel);
if (record?.id) {
isEdit.value = true;
modalTitle.value = '编辑反馈';
Object.keys(formData).forEach((key) => {
if (Object.prototype.hasOwnProperty.call(record, key)) {
@@ -147,6 +156,7 @@
formData.mainId = formData.mainId || mainId;
formData.bpmProcessId = formData.bpmProcessId || bpmProcessId;
} else {
isEdit.value = false;
modalTitle.value = '新增反馈';
// 新增反馈默认按“已完成”处理,时间取打开弹窗时刻,编辑已有记录不覆盖。
formData.bpmStatus = DEFAULT_COMPLETED_STATUS;