cody 2 weeks ago
parent 46b3f974a6
commit fd9a6bc8cf

@ -624,6 +624,11 @@ export default {
}, },
contentFormat() { contentFormat() {
return function (i) { return function (i) {
// chuzufangdepartment?.name
if (i.field === 'chuzufang') {
return this.detail[i.field] || this.detail['department']?.name || '';
}
let { _relations } = i; let { _relations } = i;
if (_relations && _relations.link_table_name) { if (_relations && _relations.link_table_name) {
if ( if (

@ -429,7 +429,10 @@ export default {
} else { } else {
myAsset = row 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) { if (headers.length > 0) {
for (let q = 0;q < headers.length;q ++) { for (let q = 0;q < headers.length;q ++) {

@ -206,6 +206,12 @@
</div> </div>
</template> </template>
</xy-selectors> </xy-selectors>
<Button
style="margin-left: 10px"
type="primary"
@click="exportExcel(new Date().getTime().toString())"
>导出</Button
>
</div> </div>
</template> </template>
<template #create> <template #create>
@ -222,13 +228,6 @@
>导入</Button >导入</Button
> >
</template> </template>
<template #export>
<Button
type="primary"
@click="exportExcel(new Date().getTime().toString())"
>导出</Button
>
</template>
</header-content> </header-content>
</slot> </slot>
</LxHeader> </LxHeader>
@ -325,18 +324,59 @@ export default {
}, },
async exportExcel(sheetName) { async exportExcel(sheetName) {
let filterTableColumns = this.$refs['xyTable']?.tableFormat || []
const res = await index( const res = await index(
Object.assign(this.select, { page: 1, page_size: 9999 }) Object.assign(this.select, { page: 1, page_size: 9999 })
); );
if (res.data) { if (res.data) {
let headers = this.form.map((i) => { let headers = filterTableColumns.filter(i => !!i.prop).map((i) => {
return { return {
key: i.field, key: i.prop,
title: i.name, title: i.label,
}; };
}); });
const data = res.data.map((row) => const data = res.data.map((row, rindex) =>
headers.map((header) => row[header.key]) 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)); data.unshift(headers.map((header) => header.title));
const wb = XLSX.utils.book_new(); const wb = XLSX.utils.book_new();
@ -349,7 +389,7 @@ export default {
}); });
saveAs( saveAs(
new Blob([wbout], { type: "application/octet-stream" }), new Blob([wbout], { type: "application/octet-stream" }),
`${sheetName}.xlsx` `租赁合同变更记录_${sheetName}.xlsx`
); );
} }
}, },

Loading…
Cancel
Save