From fd9a6bc8cf6b5d28566fbb3f083368d30347e442 Mon Sep 17 00:00:00 2001
From: cody <648753004@qq.com>
Date: Sat, 22 Nov 2025 15:05:34 +0800
Subject: [PATCH] 1
---
src/views/lease/detailLease.vue | 5 +++
src/views/lease/index.vue | 5 ++-
src/views/lease/leaseLog.vue | 66 ++++++++++++++++++++++++++-------
3 files changed, 62 insertions(+), 14 deletions(-)
diff --git a/src/views/lease/detailLease.vue b/src/views/lease/detailLease.vue
index 53bc27c..cacb71d 100644
--- a/src/views/lease/detailLease.vue
+++ b/src/views/lease/detailLease.vue
@@ -624,6 +624,11 @@ export default {
},
contentFormat() {
return function (i) {
+ // 特殊处理出租方字段:如果chuzufang为空,则显示department?.name
+ if (i.field === 'chuzufang') {
+ return this.detail[i.field] || this.detail['department']?.name || '';
+ }
+
let { _relations } = i;
if (_relations && _relations.link_table_name) {
if (
diff --git a/src/views/lease/index.vue b/src/views/lease/index.vue
index fd6268c..3d9844f 100644
--- a/src/views/lease/index.vue
+++ b/src/views/lease/index.vue
@@ -429,7 +429,10 @@ export default {
} else {
myAsset = row
}
- data.push([...myRow,myAsset.name||myAssetLink.name,myAssetLink.chuzumianji,myAssetLink.xiangxiweizhi])
+ // 资产名称添加【土地】或【房产】标识
+ const assetType = myAssetLink.land_id ? '【土地】' : '【房产】'
+ const assetName = myAsset.name || myAssetLink.name || ''
+ data.push([...myRow, `${assetType}${assetName}`, myAssetLink.chuzumianji, myAssetLink.xiangxiweizhi])
}
if (headers.length > 0) {
for (let q = 0;q < headers.length;q ++) {
diff --git a/src/views/lease/leaseLog.vue b/src/views/lease/leaseLog.vue
index 4318c19..e82f65b 100644
--- a/src/views/lease/leaseLog.vue
+++ b/src/views/lease/leaseLog.vue
@@ -206,6 +206,12 @@
+
@@ -222,13 +228,6 @@
>导入
-
-
-
@@ -325,18 +324,59 @@ export default {
},
async exportExcel(sheetName) {
+ let filterTableColumns = this.$refs['xyTable']?.tableFormat || []
const res = await index(
Object.assign(this.select, { page: 1, page_size: 9999 })
);
if (res.data) {
- let headers = this.form.map((i) => {
+ let headers = filterTableColumns.filter(i => !!i.prop).map((i) => {
return {
- key: i.field,
- title: i.name,
+ key: i.prop,
+ title: i.label,
};
});
- const data = res.data.map((row) =>
- headers.map((header) => row[header.key])
+ const data = res.data.map((row, rindex) =>
+ headers.map((header) => {
+ const i = this.form.find(i => i.field === header.key)
+ // 处理选择项(select_item)
+ if (
+ i &&
+ i.select_item &&
+ typeof i.select_item === "object" &&
+ !(i.select_item instanceof Array)
+ ) {
+ let keys = Object.keys(i.select_item);
+ let paramMap = new Map();
+ keys.forEach((key) => {
+ paramMap.set(i.select_item[key], key);
+ });
+ return paramMap.get(row[i.field]?.toString()) || row[i.field];
+ }
+ // 处理关联数据(_relations)
+ if (i && i._relations) {
+ let { link_relation, foreign_key, link_with_name } = i._relations;
+ if (link_relation === "newHasOne" || link_relation === "hasOne") {
+ return row[link_with_name]?.original_name || row[link_with_name]?.name ||
+ row[link_with_name]?.no ||
+ row[link_with_name]?.value || ''
+ }
+
+ if (link_relation === "hasMany" || link_relation === "newHasMany") {
+ return row[link_with_name]?.map((o) => (
+ o?.name ||
+ o?.no ||
+ o?.value ||
+ o?.biaoti ||
+ o?.mingcheng
+ )).join(', ') || ''
+ }
+ }
+ // 处理格式化器(formatter)
+ if (this.table.find(i => i.prop === header.key)?.formatter) {
+ return this.table.find(i => i.prop === header.key).formatter(row, {}, row[header.key], rindex)
+ }
+ return row[header.key] || ''
+ })
);
data.unshift(headers.map((header) => header.title));
const wb = XLSX.utils.book_new();
@@ -349,7 +389,7 @@ export default {
});
saveAs(
new Blob([wbout], { type: "application/octet-stream" }),
- `${sheetName}.xlsx`
+ `租赁合同变更记录_${sheetName}.xlsx`
);
}
},