diff --git a/src/modules/knowledge/views/book/index.vue b/src/modules/knowledge/views/book/index.vue
index ae630d9..3e0ec4b 100644
--- a/src/modules/knowledge/views/book/index.vue
+++ b/src/modules/knowledge/views/book/index.vue
@@ -16,7 +16,7 @@
tips="请按照模板填写书籍信息,名称为必填项"
/>
-
+
{
+ const cols: any[] = Table.value?.columns ? [...Table.value.columns] : [];
+ const base = cols.filter((e: any) => !['selection', 'expand', 'index', 'op'].includes(e.type));
+
+ // 为 cover 列添加 formatter(导出时 render 不会被调用,需要 formatter 将数组转为文本)
+ const coverCol = base.find((e: any) => e.prop === 'cover');
+ if (coverCol) {
+ coverCol.formatter = (_row: any, _col: any, value: any) => {
+ if (Array.isArray(value)) {
+ return value.join(', ');
+ }
+ if (typeof value === 'string') {
+ try {
+ const parsed = JSON.parse(value);
+ return Array.isArray(parsed) ? parsed.join(', ') : value;
+ } catch {
+ return value;
+ }
+ }
+ return String(value || '');
+ };
+ }
+
+ base.push(
+ { label: '内容简介', prop: 'synopsis', minWidth: 300 },
+ { label: '背景故事', prop: 'backgroundStory', minWidth: 300 },
+ { label: '标签', prop: 'tags', minWidth: 150 },
+ { label: '更新时间', prop: 'updateTime', minWidth: 170 }
+ );
+
+ return base;
+});
+
// cl-upsert 配置 - 新增/编辑表单
const Upsert = useUpsert({
dialog: {