diff --git a/package.json b/package.json index 5722ed5..b551c37 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,11 @@ "vuedraggable": "^2.24.3", "vuex": "3.1.0", "xlsx": "^0.18.5", - "xlsx-js-style": "^1.2.0" + "xlsx-js-style": "^1.2.0", + "@vue-office/docx": "^1.6.2", + "@vue-office/excel": "^1.7.11", + "@vue-office/pdf": "^2.0.2", + "@vue/composition-api": "^1.7.2" }, "devDependencies": { "@vue/cli-plugin-babel": "4.4.4", diff --git a/src/components/onlineFile/onlineFile.vue b/src/components/onlineFile/onlineFile.vue index d8c33e4..11f40d2 100644 --- a/src/components/onlineFile/onlineFile.vue +++ b/src/components/onlineFile/onlineFile.vue @@ -29,10 +29,14 @@ export default { }, methods: { open(url) { - this.codeUri = `${process.env.VUE_APP_PREVIEW}?url=${encodeURIComponent( - new Buffer(url).toString("base64") - )}`; - this.showModal = true; + const resolve = this.$router.resolve({ + path: '/preview', + query: { + url + } + }) + this.codeUri = resolve.href + this.showModal = true } }, computed: {}, diff --git a/src/router/index.js b/src/router/index.js index ab3559a..8f4e207 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -31,6 +31,11 @@ import Layout from '@/layout' * all roles can be accessed */ export const constantRoutes = [ + { + path: '/preview', + component: () => import('@/views/preview'), + hidden: true + }, { path: '/login', component: () => import('@/views/login/index'), diff --git a/src/views/lease/index.vue b/src/views/lease/index.vue index c18c2fd..fd6268c 100644 --- a/src/views/lease/index.vue +++ b/src/views/lease/index.vue @@ -426,8 +426,10 @@ export default { myAsset = row['land'].find(k => k.id === myAssetLink.land_id) } else if (myAssetLink.house_id) { myAsset = row['houses'].find(k => k.id === myAssetLink.house_id) + } else { + myAsset = row } - data.push([...myRow,myAsset.name,myAssetLink.chuzumianji]) + data.push([...myRow,myAsset.name||myAssetLink.name,myAssetLink.chuzumianji,myAssetLink.xiangxiweizhi]) } if (headers.length > 0) { for (let q = 0;q < headers.length;q ++) { @@ -455,6 +457,9 @@ export default { headers.push({ title: '出租面积' }) + headers.push({ + title: '详细位置' + }) data.unshift(headers.map((header) => header.title)); const wb = XLSX.utils.book_new(); const ws = XLSX.utils.aoa_to_sheet(data); @@ -663,12 +668,9 @@ export default { ) ); }); - this.table.unshift({ - prop: 'department_id', - width: 120, - label: '出租方', - formatter: (row, column, cellValue, index) => row['department']?.name - }) + if (this.table.find(row => row.prop === 'chuzufang')) { + this.table.find(row => row.prop === 'chuzufang').formatter = (row, column, cellValue, index) => row['chuzufang'] ? row['chuzufang'] : row['department']?.name + } this.table.unshift( { label: "资产", prop: 'assets', diff --git a/src/views/preview/index.vue b/src/views/preview/index.vue new file mode 100644 index 0000000..0c71de3 --- /dev/null +++ b/src/views/preview/index.vue @@ -0,0 +1,85 @@ + + + + +