diff --git a/src/views/lease/component/addLet.vue b/src/views/lease/component/addLet.vue index abd4c79..5134146 100644 --- a/src/views/lease/component/addLet.vue +++ b/src/views/lease/component/addLet.vue @@ -111,9 +111,44 @@ export default { customFn: (row) => row.id ? ( {row.name} - ) : ( - - ), + ) : ( { + return `${item.hasOwnProperty('land_id') ? '房产' : '土地'}-${item.name}` + } + }} + fetch-suggestions={ + (qs,cb) => { + const assets = [...this.assets.lands,...this.assets.houses]; + let results = qs ? assets.filter(asset => { + let text = asset.name + asset.zuoluo + return text?.toLowerCase()?.indexOf(qs.toLowerCase()) !== -1 + }) : assets; + // 调用 callback 返回建议列表的数据 + cb(results); + } + } + on={{ + select: item => { + if (item.hasOwnProperty('land_id')) { + row.id = item.id + row.land_id = item.land_id + } else { + row.id = item.id + } + }, + change: e => { + if (!e.trim()) { + row.id = '' + delete row.land_id + } + } + }}> + ), }, { prop: "type", @@ -135,7 +170,7 @@ export default { { prop: "zuoluo", label: "坐落", - width: 160, + width: 220, align: "left", customFn: (row) => row.id ? ( @@ -147,7 +182,7 @@ export default { { prop: "xiangxiweizhi", label: "详细位置", - width: 180, + width: 220, customFn: (row) => { return ( { return (
@@ -626,6 +662,10 @@ export default { }, data() { return { + assets: { + lands: [], + houses: [] + }, wxAreas: new Map(), nowAssets: [], houseDialog: false, @@ -654,6 +694,30 @@ export default { }; }, methods: { + getAssets() { + Promise.all([ + index({ + table_name: "houses", + page: 1, + page_size: 999, + filter: [], + is_more_auth: 1 + },false), + index({ + table_name: "lands", + page: 1, + page_size: 999, + filter: [], + is_more_auth: 1 + }) + ]).then(res => { + const [houses,lands] = res; + this.assets = { + lands: lands.data, + houses: houses.data + } + }) + }, async getWxAreas () { try { const res = await customFormFieldShow({ id: 120 }) @@ -724,6 +788,7 @@ export default { name: land.name, zuoluo: land.zuoluo, shijimianji: land.shijimianji, + let_id: item.let_id, _chuzumianji: item.chuzumianji, _name: item.name, _biaodileixing: item.biaodileixing, @@ -741,6 +806,7 @@ export default { name: house.name, zuoluo: house.zuoluo, shijimianji: house.shijimianji, + let_id: item.let_id, _name: item.name, _zuoluo: item.zuoluo, _biaodileixing: item.biaodileixing, @@ -757,6 +823,7 @@ export default { name: item.name, zuoluo: item.zuoluo, shijimianji: item.shijimianji, + let_id: item.let_id, _name: item.name, _zuoluo: item.zuoluo, _biaodileixing: item.biaodileixing, @@ -784,35 +851,40 @@ export default { }); } - // this.form.id_leases_to_assets_lease_id_relation = []; - // this.selectedHouses?.forEach(i => { - // this.form.id_leases_to_assets_lease_id_relation.push({ - // house_id: i.id, - // lease_id: this.id, - // chuzumianji: i._chuzumianji - // }) - // }) - // this.selectedLands?.forEach(i => { - // this.form.id_leases_to_assets_lease_id_relation.push({ - // land_id: i.id, - // lease_id: this.id, - // chuzumianji: i._chuzumianji - // }) - // }) - // this.form.id_lease_plans_lease_id_relation = this.leasePlans; + if (this.type !== "add") { + this.form['id_lets_to_assets_let_id_relation'] = this.nowAssets.map((item) => ({ + id: item._relation_id, + land_id: !item.hasOwnProperty("land_id") ? item.id : "", + house_id: item.hasOwnProperty("land_id") ? item.id : "", + name: item._name, + zuoluo: item._zuoluo, + xiangxiweizhi: item._xiangxiweizhi, + biaodileixing: item._relation_i + ? item.hasOwnProperty("land_id") + ? "房产" + : "土地" + : item._biaodileixing, + shijimianji: item._shijimianji, + chuzumianji: item._chuzumianji, + let_id: item.let_id, + })) + } save(Object.assign(this.form, { table_name: "lets" })).then((res) => { + if (!!this.$route.query.leaseId) { + save({ table_name: 'leases', id: this.$route.query.leaseId, let_id: res.id }) + } if (this.type !== "add") { - Promise.all( - this.originalForm.id_lets_to_assets_let_id_relation?.map((i) => - destroy( - { - id: i.id, - table_name: "lets_to_assets", - }, - false - ) - ) - ); + // Promise.all( + // this.originalForm.id_lets_to_assets_let_id_relation?.map((i) => + // destroy( + // { + // id: i.id, + // table_name: "lets_to_assets", + // }, + // false + // ) + // ) + // ); } let leaseToAssetsData = this.nowAssets.map((item) => ({ id: item._relation_id, @@ -909,6 +981,7 @@ export default { }, }, created() { + this.getAssets() this.getWxAreas() this.id = this.$route.query.letId; this.type = this.$route.query.type; @@ -917,6 +990,69 @@ export default { if (this.type === "editor" || this.type === "change") { this.$nextTick(() => this.getDetail()); + } else { + if (!!this.$route.query.leaseId) { + show({ id: this.$route.query.leaseId, table_name: "leases" }).then( + (leaseDetail) => { + leaseDetail?.id_leases_to_assets_lease_id_relation?.forEach((item) => { + if (item.land_id) { + let land = leaseDetail.land.find(j => j.id === item.land_id); + if (land) { + this.nowAssets.push({ + id: land.id, + name: land.name, + zuoluo: land.zuoluo, + zichanweizhi: land.zichanweizhi, + shijimianji: land.shijimianji, + _name: land.name, + _zuoluo: land.zuoluo, + _shijimianji: land._shijimianji, + _xiangxiweizhi: item.xiangxiweizhi, + _chuzumianji: item.chuzumianji || 0, + ORIGINAL_DATA: land, + _relation_id: item.id, + }); + } + } else if (item.house_id) { + let house = leaseDetail.houses.find(j => j.id === item.house_id); + if (house) { + this.nowAssets.push({ + id: house.id, + name: house.name, + zuoluo: house.zuoluo, + zichanweizhi: house.zichanweizhi, + shijimianji: house.shijimianji, + _name: house.name, + _zuoluo: house.zuoluo, + _shijimianji: house._shijimianji, + _xiangxiweizhi: item.xiangxiweizhi, + _chuzumianji: item.chuzumianji || 0, + _relation_id: item.id, + ORIGINAL_DATA: house, + land_id: house.land_id, + }); + } + } else { + this.nowAssets.push({ + id: "", + biaodileixing: item.biaodileixing, + name: item.name, + zuoluo: item.zuoluo, + zichanweizhi: item.zichanweizhi, + shijimianji: item.shijimianji, + _name: item.name, + _zuoluo: item.zuoluo, + _biaodileixing: item.biaodileixing, + _shijimianji: item.shijimianji, + _xiangxiweizhi: item.xiangxiweizhi, + _chuzumianji: item.chuzumianji || 0, + _relation_id: item.id, + }); + } + }); + } + ); + } } }); }, diff --git a/src/views/lease/index.vue b/src/views/lease/index.vue index 056fa67..ebe691b 100644 --- a/src/views/lease/index.vue +++ b/src/views/lease/index.vue @@ -243,7 +243,7 @@
+ @@ -659,6 +663,73 @@ export default { ) ); }); + this.table.unshift( { + label: "资产", + prop: 'assets', + width: 300, + align: 'left', + customFn: row => { + let tags = row.id_leases_to_assets_lease_id_relation?.slice(0,1)?.map(i => { + let asset = i.house_id ? row.houses.find(j => j.id === i.house_id) : row.land.find(j => j.id === i.land_id) + return ({(i.land_id ? '【土地】' : '【房产】')+(asset?.name || i.name || " ")}) + + }) + return ( +
+ { + tags.slice(0, 1) + } + + 0 ? "inline" : "none", + }}>更多 +
+ { + let asset = myRow.house_id ? row.houses.find(j => j.id === myRow.house_id) : row.land.find(j => j.id === myRow.land_id) + return h('span', (asset?.name || myRow.name || " ")) + } + }, + { + title: '坐落', + key: 'zuoluo', + minWidth: 200, + render: (h, { row: myRow }) => { + let asset = myRow.house_id ? row.houses.find(j => j.id === myRow.house_id) : row.land.find(j => j.id === myRow.land_id) + return h('span', (asset?.zuoluo || myRow.zuoluo || " ")) + } + }, + { + title: '详细位置', + key: 'xiangxiweizhi', + minWidth: 200 + }, + { + title: '出租面积(m²)', + key: 'chuzumianji', + width: 180, + render: (h, { row: myRow }) => { + let asset = myRow.house_id ? row.houses.find(j => j.id === myRow.house_id) : row.land.find(j => j.id === myRow.land_id) + return h('span', (asset?.chuzumianji || myRow.chuzumianji || " ")) + } + }, + ]}> +
+
+
+
+ ) + } + }) this.table.unshift({ prop: "", width: 60, diff --git a/src/views/lease/sign.vue b/src/views/lease/sign.vue index cf38194..ad34051 100644 --- a/src/views/lease/sign.vue +++ b/src/views/lease/sign.vue @@ -209,13 +209,13 @@ export default { { prop: "zuoluo", label: "坐落", - width: 160, + width: 220, align: "left", }, { prop: "xiangxiweizhi", label: "详细位置", - width: 180, + width: 220, align: "left", }, { @@ -392,7 +392,7 @@ export default { align: "left", customFn: row => ( row.id ? - ({ row.name }) : + ({ row._name }) : ( { const assets = [...this.assets.lands,...this.assets.houses]; - let results = qs ? assets.filter(asset => asset.name?.toLowerCase()?.indexOf(qs.toLowerCase()) === 0) : assets; + let results = qs ? assets.filter(asset => { + let text = asset.name + asset.zuoluo + return text?.toLowerCase()?.indexOf(qs.toLowerCase()) !== -1 + }) : assets; // 调用 callback 返回建议列表的数据 cb(results); } @@ -414,15 +417,16 @@ export default { on={{ select: item => { if (item.hasOwnProperty('land_id')) { - row.house_id = item.id + row.id = item.id + row.land_id = item.land_id } else { - row.land_id = item.id + row.id = item.id } }, change: e => { if (!e.trim()) { - row.land_id = '' - row.house_id = '' + row.id = '' + delete row.land_id } } }}> @@ -443,7 +447,7 @@ export default { { prop: "zuoluo", label: "坐落", - width: 160, + width: 220, align: "left", customFn: row => ( row.id ? @@ -454,7 +458,7 @@ export default { { prop: "xiangxiweizhi", label: "详细位置", - width: 180, + width: 220, customFn: (row) => { return ( { return ( @@ -713,7 +717,7 @@ export default { { prop: "zuoluo", label: "坐落", - width: 160, + width: 220, align: "left", customFn: row => { let findId = row.land_id || row.house_id; @@ -725,7 +729,7 @@ export default { { prop: "xiangxiweizhi", label: "详细位置", - width: 180, + width: 220, align: "left" }, {