From 2547698d2681dd5cdeb42982a5cf0c585896f75d Mon Sep 17 00:00:00 2001
From: xy <271556543@qq.com>
Date: Fri, 6 Sep 2024 18:04:49 +0800
Subject: [PATCH] daochu
---
src/views/assets/component/addHandles.vue | 18 ++++-
src/views/assets/handle.vue | 52 +++++++++++++-
src/views/assets/handleSign.vue | 17 +++++
src/views/assets/house.vue | 76 +++++++++++++-------
src/views/assets/land.vue | 84 ++++++++++++++---------
src/views/component/table.vue | 40 ++++++++++-
src/views/lease/index.vue | 43 +++++++++++-
src/views/statics/lease.vue | 2 +-
8 files changed, 265 insertions(+), 67 deletions(-)
diff --git a/src/views/assets/component/addHandles.vue b/src/views/assets/component/addHandles.vue
index 5d70fd4..23c18eb 100644
--- a/src/views/assets/component/addHandles.vue
+++ b/src/views/assets/component/addHandles.vue
@@ -93,13 +93,23 @@ export default {
},
{
"prop": "shijimianji",
- "label": "实际面积(m²)",
+ "label": "调整前面积(m²)",
"width": 0,
"align": "center"
},
+ {
+ "prop": "_bencizhengshoumianji",
+ "label": "本次征收面积(m²)",
+ "width": 170,
+ customFn: row => {
+ return (
+
+ )
+ }
+ },
{
"prop": "_zichanshengyumianji",
- "label": "资产剩余面积(m²)",
+ "label": "调整后面积(m²)",
"width": 170,
customFn: row => {
return (
@@ -369,6 +379,7 @@ export default {
zichanweizhi: row.zichanweizhi,
shijimianji: row.shijimianji,
_zichanshengyumianji: 0,
+ _bencizhengshoumianji: 0,
_relation_id: "",
})
} else {
@@ -550,6 +561,7 @@ export default {
zichanweizhi: row.zichanweizhi,
shijimianji: row.shijimianji,
_zichanshengyumianji: 0,
+ _bencizhengshoumianji: 0,
_relation_id: "",
land_id: row.land_id
})
@@ -680,6 +692,7 @@ export default {
zichanweizhi: land.zichanweizhi,
shijimianji: land.shijimianji,
_zichanshengyumianji: item.zichanshengyumianji||0,
+ _bencizhengshoumianji: item.bencizhengshoumianji||0,
_relation_id: item.id,
});
}
@@ -693,6 +706,7 @@ export default {
zichanweizhi: house.zichanweizhi,
shijimianji: house.shijimianji,
_zichanshengyumianji: item.zichanshengyumianji||0,
+ _bencizhengshoumianji: item.bencizhengshoumianji||0,
_relation_id: item.id,
land_id: house.land_id,
});
diff --git a/src/views/assets/handle.vue b/src/views/assets/handle.vue
index fd3fcf1..7ba5363 100644
--- a/src/views/assets/handle.vue
+++ b/src/views/assets/handle.vue
@@ -344,18 +344,66 @@ 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 = this.form.filter(i => filterTableColumns.find(j => j.prop === i.field)).map((i) => {
return {
key: i.field,
title: i.name,
};
});
+ if(filterTableColumns.find(j => j.prop === 'assets')) {
+ headers.unshift({
+ key: 'assets',
+ title: '资产'
+ })
+ }
const data = res.data.map((row) =>
- headers.map((header) => row[header.key])
+ headers.map((header) => {
+ if(header.key === 'assets') {
+ return row.asset_handles_to_assets?.map(i => (i.land_id ? '【土地】' : '【房产】')+(i.lands?.name || i.house?.name)).toString()
+ }
+ const i = this.form.find(i => i.field === header.key)
+ //if (i.edit_input === 'file' || i.edit_input === 'files') return ''
+ // if (
+ // 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());
+ // }
+ if (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
+ )).toString()
+ }
+ }
+
+ if (this.table.find(i => i.prop === header.key)?.formatter) {
+ return this.table.find(i => i.prop === header.key).formatter(row, {}, row[header.key])
+ }
+ return row[header.key]
+ })
);
data.unshift(headers.map((header) => header.title));
const wb = XLSX.utils.book_new();
diff --git a/src/views/assets/handleSign.vue b/src/views/assets/handleSign.vue
index 2b2d035..3bddad8 100644
--- a/src/views/assets/handleSign.vue
+++ b/src/views/assets/handleSign.vue
@@ -137,6 +137,16 @@ export default {
width: 0,
align: "center",
},
+ {
+ "prop": "_bencizhengshoumianji",
+ "label": "本次征收面积(m²)",
+ "width": 170,
+ customFn: row => {
+ return (
+
+ )
+ }
+ },
{
prop: "_zichanshengyumianji",
label: "资产剩余面积(m²)",
@@ -415,6 +425,7 @@ export default {
zichanweizhi: row.zichanweizhi,
shijimianji: row.shijimianji,
_zichanshengyumianji: 0,
+ _bencizhengshoumianji: 0,
_relation_id: "",
})
} else {
@@ -602,6 +613,7 @@ export default {
zuoluo: row.zuoluo,
zichanweizhi: row.zichanweizhi,
shijimianji: row.shijimianji,
+ _bencizhengshoumianji: 0,
_zichanshengyumianji: 0,
_relation_id: "",
land_id: row.land_id
@@ -732,6 +744,7 @@ export default {
zichanweizhi: land.zichanweizhi,
shijimianji: land.shijimianji,
_zichanshengyumianji: item.zichanshengyumianji,
+ _bencizhengshoumianji: item.bencizhengshoumianji,
_relation_id: item.id,
});
}
@@ -745,6 +758,7 @@ export default {
zichanweizhi: house.zichanweizhi,
shijimianji: house.shijimianji,
_zichanshengyumianji: item.zichanshengyumianji,
+ _bencizhengshoumianji: item.bencizhengshoumianji,
_relation_id: item.id,
_TAG_: "house",
land_id: house.land_id
@@ -787,6 +801,7 @@ export default {
land_id: !item.hasOwnProperty("land_id") ? item.id : "",
house_id: item.hasOwnProperty("land_id") ? item.id : "",
zichanshengyumianji: item._zichanshengyumianji,
+ bencizhengshoumianji: item._bencizhengshoumianji,
handle_sign_id: res.id
}));
let hisEvolutionsAssetsData = this.nowAssets.map(item => ({
@@ -919,6 +934,7 @@ export default {
zichanweizhi: land.zichanweizhi,
shijimianji: land.shijimianji,
_zichanshengyumianji: item.zichanshengyumianji||0,
+ _bencizhengshoumianji: item.bencizhengshoumianji||0,
_relation_id: item.id,
ORIGINAL_DATA: land,
});
@@ -933,6 +949,7 @@ export default {
zichanweizhi: house.zichanweizhi,
shijimianji: house.shijimianji,
_zichanshengyumianji: item.zichanshengyumianji||0,
+ _bencizhengshoumianji: item.bencizhengshoumianji||0,
_relation_id: item.id,
land_id: house.land_id,
ORIGINAL_DATA: house,
diff --git a/src/views/assets/house.vue b/src/views/assets/house.vue
index be96705..206b828 100644
--- a/src/views/assets/house.vue
+++ b/src/views/assets/house.vue
@@ -436,18 +436,57 @@ 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 = this.form.filter(i => filterTableColumns.find(j => j.prop === i.field)).map((i) => {
return {
key: i.field,
title: i.name,
};
});
const data = res.data.map((row) =>
- headers.map((header) => row[header.key])
+ headers.map((header) => {
+ const i = this.form.find(i => i.field === header.key)
+ //if (i.edit_input === 'file' || i.edit_input === 'files') return ''
+ // if (
+ // 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());
+ // }
+ if (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
+ )).toString()
+ }
+ }
+
+ if (this.table.find(i => i.prop === header.key)?.formatter) {
+ return this.table.find(i => i.prop === header.key).formatter(row, {}, row[header.key])
+ }
+ return row[header.key]
+ })
);
data.unshift(headers.map((header) => header.title));
const wb = XLSX.utils.book_new();
@@ -582,13 +621,13 @@ export default {
!(i.select_item instanceof Array)
) {
let keys = Object.keys(i.select_item);
- linkOb.customFn = (row) => {
+ linkOb.formatter = (row) => {
let paramMap = new Map();
keys.forEach((key) => {
paramMap.set(i.select_item[key], key);
});
- return {paramMap.get(row[i.field]?.toString())};
+ return paramMap.get(row[i.field]?.toString());
};
}
if (i._relations) {
@@ -681,30 +720,15 @@ export default {
// break;
case "bufuqingkuang":
this.table.push({
+ prop: i.field,
label: i.name,
width: i.width,
- customFn: (row) => {
- return (
-
- {row.tudiquanshuren !== row.quanliren ||
- row.dengjimianji !== row.shijimianji ? (
-
-
- {row.tudiquanshuren !== row.quanliren
- ? "权利人名称不符"
- : ""}
-
-
- {row.dengjimianji !== row.shijimianji
- ? "登记面积不符"
- : ""}
-
-
- ) : (
-
无
- )}
-
- );
+ formatter: (row, column, cellValue, index) => {
+ let text = "";
+ text += row.tudiquanshuren !== row.quanliren ? "权利人名称不符" : ""
+ text += text ? "," : ""
+ text += row.dengjimianji !== row.shijimianji ? "登记面积不符": ""
+ return text || "无"
},
});
break;
diff --git a/src/views/assets/land.vue b/src/views/assets/land.vue
index 87f0058..db5d1e0 100644
--- a/src/views/assets/land.vue
+++ b/src/views/assets/land.vue
@@ -244,7 +244,6 @@
:btn-width="360"
:auths="auths_auth_mixin"
:delay-req="true"
- :row-style="rowStyle"
:destroy-action="destroy"
ref="xyTable"
:border="true"
@@ -416,18 +415,57 @@ 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 = this.form.filter(i => filterTableColumns.find(j => j.prop === i.field)).map((i) => {
return {
key: i.field,
title: i.name,
};
});
const data = res.data.map((row) =>
- headers.map((header) => row[header.key])
+ headers.map((header) => {
+ const i = this.form.find(i => i.field === header.key)
+ //if (i.edit_input === 'file' || i.edit_input === 'files') return ''
+ // if (
+ // 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());
+ // }
+ if (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
+ )).toString()
+ }
+ }
+
+ if (this.table.find(i => i.prop === header.key)?.formatter) {
+ return this.table.find(i => i.prop === header.key).formatter(row, {}, row[header.key])
+ }
+ return row[header.key]
+ })
);
data.unshift(headers.map((header) => header.title));
const wb = XLSX.utils.book_new();
@@ -559,13 +597,13 @@ export default {
!(i.select_item instanceof Array)
) {
let keys = Object.keys(i.select_item);
- linkOb.customFn = (row) => {
+ linkOb.formatter = (row) => {
let paramMap = new Map();
keys.forEach((key) => {
paramMap.set(i.select_item[key], key);
});
- return {paramMap.get(row[i.field]?.toString())};
+ return paramMap.get(row[i.field]?.toString());
};
}
if (i._relations) {
@@ -670,41 +708,23 @@ export default {
break;
case "fangchanzhuangtai":
this.table.push({
+ prop: i.field,
label: i.name,
width: i.width,
- customFn:row => {
- return (
- { row.id_house_properties_land_id_relation?.land_id === row.id ? '房地权属合一' : '房地权属分离' }
- )
- }
+ formatter: (row, column, cellValue, index) => (row.id_house_properties_land_id_relation?.land_id === row.id ? '房地权属合一' : '房地权属分离'),
})
break;
case "bufuqingkuang":
this.table.push({
+ prop: i.field,
label: i.name,
width: i.width,
- customFn: (row) => {
- return (
-
- {row.tudiquanshuren !== row.quanliren ||
- row.dengjimianji !== row.shijimianji ? (
-
-
- {row.tudiquanshuren !== row.quanliren
- ? "权利人名称不符"
- : ""}
-
-
- {row.dengjimianji !== row.shijimianji
- ? "登记面积不符"
- : ""}
-
-
- ) : (
-
无
- )}
-
- );
+ formatter: (row, column, cellValue, index) => {
+ let text = "";
+ text += row.tudiquanshuren !== row.quanliren ? "权利人名称不符" : ""
+ text += text ? "," : ""
+ text += row.dengjimianji !== row.shijimianji ? "登记面积不符": ""
+ return text || "无"
},
});
break;
diff --git a/src/views/component/table.vue b/src/views/component/table.vue
index 034606d..826ba0a 100644
--- a/src/views/component/table.vue
+++ b/src/views/component/table.vue
@@ -353,18 +353,54 @@ 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 = this.form.filter(i => filterTableColumns.find(j => j.prop === i.field)).map((i) => {
return {
key: i.field,
title: i.name,
};
});
const data = res.data.map((row) =>
- headers.map((header) => row[header.key])
+ headers.map((header) => {
+ const i = this.form.find(i => i.field === header.key)
+ //if (i.edit_input === 'file' || i.edit_input === 'files') return ''
+ if (
+ 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());
+ }
+ if (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
+ )).toString()
+ }
+ }
+
+ return row[header.key]
+ })
);
data.unshift(headers.map((header) => header.title));
const wb = XLSX.utils.book_new();
diff --git a/src/views/lease/index.vue b/src/views/lease/index.vue
index 12fd868..afdc17f 100644
--- a/src/views/lease/index.vue
+++ b/src/views/lease/index.vue
@@ -365,18 +365,57 @@ 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 = this.form.filter(i => filterTableColumns.find(j => j.prop === i.field)).map((i) => {
return {
key: i.field,
title: i.name,
};
});
const data = res.data.map((row) =>
- headers.map((header) => row[header.key])
+ headers.map((header) => {
+ const i = this.form.find(i => i.field === header.key)
+ //if (i.edit_input === 'file' || i.edit_input === 'files') return ''
+ // if (
+ // 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());
+ // }
+ if (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
+ )).toString()
+ }
+ }
+
+ if (this.table.find(i => i.prop === header.key)?.formatter) {
+ return this.table.find(i => i.prop === header.key).formatter(row, {}, row[header.key])
+ }
+ return row[header.key]
+ })
);
data.unshift(headers.map((header) => header.title));
const wb = XLSX.utils.book_new();
diff --git a/src/views/statics/lease.vue b/src/views/statics/lease.vue
index a69e799..9fa8056 100644
--- a/src/views/statics/lease.vue
+++ b/src/views/statics/lease.vue
@@ -236,7 +236,7 @@ export default {
this.spanArr.push(1);
this.pos = i;
}
- if(temp[i].land_id ? (temp[i].land_id_lands_id_relation.area === temp[i - 1].land_id_lands_id_relation?.area) : (temp[i].house_id_houses_id_relation.area === temp[i - 1].house_id_houses_id_relation?.area)){
+ if(temp[i].land_id ? (temp[i].land_id_lands_id_relation?.area === temp[i - 1].land_id_lands_id_relation?.area) : (temp[i].house_id_houses_id_relation?.area === temp[i - 1].house_id_houses_id_relation?.area)){
this.spanArr1[this.pos1] += 1;
this.spanArr1.push(0)
}else{