能正确显示反馈信息,并且能够显示树形表单,不过树形表单没有缩进,需继续修改

This commit is contained in:
wsm
2026-05-13 14:44:16 +08:00
parent 5b4fae7c43
commit c4410d305e
5 changed files with 648 additions and 87 deletions
@@ -119,6 +119,11 @@
>
<div class="section-title">新增反馈</div>
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="序号" name="num">
<a-input-number v-model:value="feedbackForm.num" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="反馈部门id" name="responDeptid">
<a-input v-model:value="feedbackForm.responDeptid" allow-clear />
@@ -139,14 +144,88 @@
<a-input v-model:value="feedbackForm.responPersonname" allow-clear />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="措施内容" name="method" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="feedbackForm.method" :rows="3" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="完成期限" name="deadline">
<a-date-picker v-model:value="feedbackForm.deadline" value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="成果形式" name="outcomeForm">
<a-input v-model:value="feedbackForm.outcomeForm" allow-clear />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="进展情况" name="progress" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="feedbackForm.progress" :rows="3" allow-clear />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="落实情况" name="implStatus" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="feedbackForm.implStatus" :rows="3" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="完成状态" name="completionStatus">
<a-input v-model:value="feedbackForm.completionStatus" allow-clear />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="落实情况" name="implStatus" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="feedbackForm.implStatus" :rows="3" allow-clear />
<a-form-item label="落实计划" name="completionPlan" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="feedbackForm.completionPlan" :rows="3" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="总措施号" name="sumMethodNum">
<a-input v-model:value="feedbackForm.sumMethodNum" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="检查情况" name="checkStatus">
<a-input v-model:value="feedbackForm.checkStatus" allow-clear />
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="监督意见" name="inspectionAdvice" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
<a-textarea v-model:value="feedbackForm.inspectionAdvice" :rows="3" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="措施数量" name="measureNum">
<a-input-number v-model:value="feedbackForm.measureNum" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="发起类型" name="launchType">
<a-select v-model:value="feedbackForm.launchType" placeholder="请选择发起类型" allow-clear>
<a-select-option :value="0">立即发起</a-select-option>
<a-select-option :value="1">周期发起</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="周期类型" name="intervalType">
<a-select v-model:value="feedbackForm.intervalType" placeholder="请选择周期类型" allow-clear>
<a-select-option :value="1"></a-select-option>
<a-select-option :value="2"></a-select-option>
<a-select-option :value="3">两周</a-select-option>
<a-select-option :value="4"></a-select-option>
<a-select-option :value="5"></a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="周期任务数量" name="startCount">
<a-input-number v-model:value="feedbackForm.startCount" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="周期开始时间" name="startTime">
<a-date-picker v-model:value="feedbackForm.startTime" showTime value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" placeholder="请选择周期开始时间" allow-clear />
</a-form-item>
</a-col>
</a-row>
@@ -258,7 +337,21 @@
responPersonname: '',
implStatus: '',
completionStatus: '',
completionPlan: '',
mainId: '',
num: undefined,
method: '',
deadline: '',
outcomeForm: '',
progress: '',
sumMethodNum: '',
checkStatus: '',
inspectionAdvice: '',
measureNum: undefined,
launchType: undefined,
intervalType: undefined,
startCount: undefined,
startTime: '',
});
const feedbackRules = {
@@ -266,10 +359,76 @@
};
const feedbackColumns = [
{ title: '反馈部门名称', dataIndex: 'responDeptname', align: 'center', width: 160 },
{ title: '反馈人姓名', dataIndex: 'responPersonname', align: 'center', width: 140 },
{ title: '落实情况', dataIndex: 'implStatus', align: 'left', width: 280 },
{ title: '完成状态', dataIndex: 'completionStatus', align: 'center', width: 120 },
{ title: '序号', dataIndex: 'num', align: 'center', width: 60 },
{ title: '反馈部门名称', dataIndex: 'responDeptname', align: 'center', width: 120 },
{ title: '反馈人姓名', dataIndex: 'responPersonname', align: 'center', width: 100 },
{ title: '措施内容', dataIndex: 'method', align: 'left', width: 200 },
{
title: '完成期限',
dataIndex: 'deadline',
align: 'center',
width: 120,
customRender: ({ text }) => {
if (!text) return '';
if (text instanceof Date) {
const y = text.getFullYear();
const m = String(text.getMonth() + 1).padStart(2, '0');
const d = String(text.getDate()).padStart(2, '0');
return `${y}-${m}-${d}`;
}
return String(text).substr(0, 10);
},
},
{ title: '成果形式', dataIndex: 'outcomeForm', align: 'center', width: 100 },
{ title: '进展情况', dataIndex: 'progress', align: 'left', width: 200 },
{ title: '落实情况', dataIndex: 'implStatus', align: 'left', width: 200 },
{ title: '完成状态', dataIndex: 'completionStatus', align: 'center', width: 100 },
{ title: '落实计划', dataIndex: 'completionPlan', align: 'left', width: 200 },
{ title: '总措施号', dataIndex: 'sumMethodNum', align: 'center', width: 100 },
{ title: '检查情况', dataIndex: 'checkStatus', align: 'center', width: 120 },
{ title: '监督意见', dataIndex: 'inspectionAdvice', align: 'left', width: 200 },
{ title: '措施数量', dataIndex: 'measureNum', align: 'center', width: 80 },
{
title: '发起类型',
dataIndex: 'launchType',
align: 'center',
width: 100,
customRender: ({ text }) => {
if (text === 0) return '立即发起';
if (text === 1) return '周期发起';
return text || '';
},
},
{
title: '周期类型',
dataIndex: 'intervalType',
align: 'center',
width: 80,
customRender: ({ text }) => {
const map = { 1: '日', 2: '周', 3: '两周', 4: '月', 5: '季' };
return map[text] || text || '';
},
},
{ title: '周期任务数量', dataIndex: 'startCount', align: 'center', width: 100 },
{
title: '周期开始时间',
dataIndex: 'startTime',
align: 'center',
width: 160,
customRender: ({ text }) => {
if (!text) return '';
if (text instanceof Date) {
const y = text.getFullYear();
const m = String(text.getMonth() + 1).padStart(2, '0');
const d = String(text.getDate()).padStart(2, '0');
const h = String(text.getHours()).padStart(2, '0');
const min = String(text.getMinutes()).padStart(2, '0');
const s = String(text.getSeconds()).padStart(2, '0');
return `${y}-${m}-${d} ${h}:${min}:${s}`;
}
return String(text);
},
},
];
const mainDisabled = computed(() => {
@@ -383,7 +542,11 @@
function resetFeedbackForm() {
Object.keys(feedbackForm).forEach((key) => {
feedbackForm[key] = '';
if (key === 'num' || key === 'measureNum' || key === 'launchType' || key === 'intervalType' || key === 'startCount') {
feedbackForm[key] = undefined;
} else {
feedbackForm[key] = '';
}
});
feedbackForm.mainId = mainForm.id;
nextTick(() => feedbackFormRef.value?.clearValidate?.());