架构化审批表单控制权限,添加xispeak审批节点的控制权限说明,修改反馈表单查看格式,修改树形表单实现正确的折叠效果,实现反馈表单的必填字段校验

This commit is contained in:
wsm
2026-05-22 16:25:56 +08:00
parent 3164645b19
commit f13064784b
10 changed files with 648 additions and 334 deletions
@@ -0,0 +1,100 @@
<template>
<j-modal
:title="title"
:width="900"
:visible="visible"
:okButtonProps="{ class: { 'jee-hidden': true } }"
@cancel="handleCancel"
cancelText="关闭"
>
<BasicTable
size="small"
rowKey="id"
:canResize="false"
:showIndexColumn="false"
:showActionColumn="false"
:showTableSetting="false"
:clickToRowSelect="false"
:columns="columns"
:dataSource="feedbackTableData"
:loading="loading"
:pagination="false"
:bordered="false"
/>
</j-modal>
</template>
<script lang="ts" setup>
import { ref, computed, defineExpose } from 'vue';
import { BasicTable } from '/@/components/Table';
import type { BasicColumn } from '/@/components/Table';
import JModal from '/@/components/Modal/src/JModal/JModal.vue';
import { bgXiSpeakFeedbackList } from '../BgXiSpeak.api';
const visible = ref(false);
const loading = ref(false);
const feedbackTableData = ref<Recordable[]>([]);
const currentRecord = ref<Recordable>({});
const columns: BasicColumn[] = [
{
title: '反馈人',
dataIndex: 'responPersonname',
align: 'center',
width: 100,
},
{
title: '反馈部门',
dataIndex: 'responDeptname',
align: 'center',
width: 140,
},
{
title: '反馈措施',
dataIndex: 'method',
align: 'left',
ellipsis: true,
},
{
title: '完成状态',
dataIndex: 'completionStatus_dictText',
align: 'center',
width: 100,
},
{
title: '成果形式',
dataIndex: 'outcomeForm',
align: 'center',
width: 120,
},
];
const title = computed(() => {
const count = loading.value ? '加载中' : `${feedbackTableData.value.length}`;
return `反馈信息(${count}`;
});
async function open(record: Recordable) {
currentRecord.value = record;
visible.value = true;
loading.value = true;
try {
const res = await bgXiSpeakFeedbackList({
mainId: record.id,
pageNo: 1,
pageSize: 9999,
column: 'createTime',
order: 'desc',
});
feedbackTableData.value = Array.isArray(res) ? res : res?.records || [];
} finally {
loading.value = false;
}
}
function handleCancel() {
visible.value = false;
}
defineExpose({ open });
</script>