树形表单修改,反馈信息独立,反馈弹窗内容修改

This commit is contained in:
wsm
2026-05-19 20:24:33 +08:00
parent 6c69a88840
commit bae3cef80d
2 changed files with 51 additions and 50 deletions
+50 -49
View File
@@ -38,53 +38,51 @@
</template>
<!--字段回显插槽-->
<template v-slot:bodyCell="{ column, record, index, text }"> </template>
<!--嵌套子表-->
<template #expandedRowRender="{ record }">
<div class="feedback-expand-table" v-if="selectedFeedbackId === record.id">
<div class="feedback-expand-header">
<div class="feedback-expand-title">
<span class="feedback-expand-icon">
<Icon icon="ant-design:message-outlined" />
</span>
<span>反馈信息</span>
<a-tag class="feedback-expand-count" color="processing">
{{ getFeedbackTableLoading(record) ? '加载中' : `${getFeedbackCount(record)}` }}
</a-tag>
</div>
<div class="feedback-expand-actions">
<a-button type="link" size="small" @click="handleCloseFeedback">收起</a-button>
</div>
</div>
<BasicTable
class="feedback-inner-table"
bordered
size="small"
rowKey="id"
:canResize="false"
:showIndexColumn="false"
:showActionColumn="false"
:showTableSetting="false"
:clickToRowSelect="false"
:columns="feedbackExpandColumns"
:dataSource="getFeedbackTableData(record)"
:loading="getFeedbackTableLoading(record)"
:pagination="false"
:scroll="{ x: 1220 }"
>
<template #feedbackAttachments="{ record: feedbackRecord }">
<SUploadFile
v-if="feedbackRecord.id"
class="feedback-attachment-list"
:bussiness-id="feedbackRecord.id"
:disabled="true"
:multiple="true"
/>
<span v-else>-</span>
</template>
</BasicTable>
</div>
</template>
</BasicTable>
<div v-if="selectedFeedbackId" class="feedback-standalone-panel">
<div class="feedback-expand-header">
<div class="feedback-expand-title">
<span class="feedback-expand-icon">
<Icon icon="ant-design:message-outlined" />
</span>
<span>反馈信息</span>
<a-tag class="feedback-expand-count" color="processing">
{{ getFeedbackTableLoading(selectedFeedbackRecord) ? '加载中' : `${getFeedbackCount(selectedFeedbackRecord)}` }}
</a-tag>
</div>
<div class="feedback-expand-actions">
<a-button type="link" size="small" @click="handleCloseFeedback">收起反馈信息</a-button>
</div>
</div>
<BasicTable
class="feedback-inner-table"
bordered
size="small"
rowKey="id"
:canResize="false"
:showIndexColumn="false"
:showActionColumn="false"
:showTableSetting="false"
:clickToRowSelect="false"
:columns="feedbackExpandColumns"
:dataSource="getFeedbackTableData(selectedFeedbackRecord)"
:loading="getFeedbackTableLoading(selectedFeedbackRecord)"
:pagination="false"
:scroll="{ x: 1220 }"
>
<template #feedbackAttachments="{ record: feedbackRecord }">
<SUploadFile
v-if="feedbackRecord.id"
class="feedback-attachment-list"
:bussiness-id="feedbackRecord.id"
:disabled="true"
:multiple="true"
/>
<span v-else>-</span>
</template>
</BasicTable>
</div>
<!-- 表单区域 -->
<BgXiSpeakModal ref="registerModal" @success="handleSuccess"></BgXiSpeakModal>
<!-- 审批记录 -->
@@ -193,6 +191,10 @@
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { rowSelection, selectedRowKeys }] =
tableContext;
const selectedFeedbackRecord = computed(() => {
if (!selectedFeedbackId.value) return {};
return findTableDataRecord(selectedFeedbackId.value) || { id: selectedFeedbackId.value };
});
const mainId = computed(() => (unref(selectedRowKeys).length > 0 ? unref(selectedRowKeys)[0] : ''));
provide('mainId', mainId);
@@ -310,7 +312,6 @@
async function handleExpand(expanded, record) {
if (expanded) {
expandedRowKeys.value.push(record.id);
// 懒加载子节点
if (record.children && record.children.length > 0 && record.children[0].isLoading) {
let result = await getChildList({ pid: record.id });
result = result.records ? result.records : result;
@@ -758,8 +759,8 @@
</script>
<style lang="less" scoped>
.feedback-expand-table {
margin: 4px 10px 12px 42px;
.feedback-standalone-panel {
margin: 12px 0;
padding: 12px 14px 14px;
background: #f6fbff;
border: 1px solid #d6e8ff;
@@ -13,7 +13,7 @@
<a-form-item>
<a-radio-group v-model:value="feedbackRightNow">
<a-space direction="vertical">
<a-radio :value="1">督办计划收集流程结束后需要立即反馈</a-radio>
<a-radio :value="1">落实措施收集流程结束后需要立即反馈</a-radio>
<a-radio :value="0">无需立即反馈</a-radio>
</a-space>
</a-radio-group>