Commit 20ddb87696df1baf8b8917adcf1a7ff6d9c17672

Authored by wuxw
1 parent 8fc7c791

优化房屋产权

src/components/car/floorUnitTree.vue deleted
1   -<template>
2   - <el-card class="tree-card">
3   - <el-tree
4   - ref="tree"
5   - :data="treeData"
6   - :props="defaultProps"
7   - node-key="id"
8   - :default-expanded-keys="expandedKeys"
9   - :highlight-current="true"
10   - @node-click="handleNodeClick"
11   - >
12   - <template #default="{ node, data }">
13   - <span class="custom-tree-node">
14   - <img :src="data.icon" class="tree-icon" v-if="data.icon">
15   - <span>{{ node.label }}</span>
16   - </span>
17   - </template>
18   - </el-tree>
19   - <div v-if="!treeData || treeData.length === 0" class="no-data">
20   - {{ $t('floorUnitTree.noBuilding') }}
21   - </div>
22   - </el-card>
23   -</template>
24   -
25   -<script>
26   -import { queryFloorAndUnits } from '@/api/car/carStructureApi'
27   -import { getCommunityId } from '@/api/community/communityApi'
28   -
29   -export default {
30   - name: 'FloorUnitTree',
31   - props: {
32   - floorId: {
33   - type: String,
34   - default: ''
35   - }
36   - },
37   - data() {
38   - return {
39   - treeData: [],
40   - defaultProps: {
41   - children: 'children',
42   - label: 'text'
43   - },
44   - expandedKeys: [],
45   - communityId: ''
46   - }
47   - },
48   - watch: {
49   - floorId(newVal) {
50   - this.$nextTick(() => {
51   - if (newVal) {
52   - const node = this.$refs.tree.getNode('f_' + newVal)
53   - if (node) {
54   - this.$refs.tree.setCurrentKey(node.key)
55   - }
56   - }
57   - })
58   - }
59   - },
60   - created() {
61   - this.communityId = getCommunityId()
62   - this.loadFloorAndUnits()
63   - },
64   - methods: {
65   - async loadFloorAndUnits() {
66   - try {
67   - const params = {
68   - communityId: this.communityId
69   - }
70   - const data = await queryFloorAndUnits(params)
71   - this.treeData = this.formatTreeData(data)
72   - this.setDefaultExpanded()
73   - } catch (error) {
74   - this.$message.error(this.$t('floorUnitTree.fetchError'))
75   - }
76   - },
77   - formatTreeData(data) {
78   - const formattedData = []
79   - const floorMap = {}
80   -
81   - // First pass: create floor nodes
82   - data.forEach(item => {
83   - if (!floorMap[item.floorId]) {
84   - floorMap[item.floorId] = {
85   - id: 'f_' + item.floorId,
86   - floorId: item.floorId,
87   - floorNum: item.floorNum,
88   - icon: require('@/assets/img/floor.png'),
89   - text: `${item.floorNum}${this.$t('floorUnitTree.building')}(${item.floorName})`,
90   - children: []
91   - }
92   - formattedData.push(floorMap[item.floorId])
93   - }
94   -
95   - // Add unit if it exists and not '0'
96   - if (item.unitId && item.unitNum !== '0') {
97   - floorMap[item.floorId].children.push({
98   - id: 'u_' + item.unitId,
99   - unitId: item.unitId,
100   - text: `${item.unitNum}${this.$t('floorUnitTree.unit')}`,
101   - icon: require('@/assets/img/unit.png')
102   - })
103   - }
104   - })
105   -
106   - return formattedData
107   - },
108   - setDefaultExpanded() {
109   - if (this.treeData.length > 0) {
110   - this.expandedKeys = [this.treeData[0].id]
111   - }
112   - },
113   - handleNodeClick(data) {
114   - if (data.id.startsWith('f_')) {
115   - this.$emit('switchFloor', { floorId: data.floorId })
116   - } else if (data.id.startsWith('u_')) {
117   - this.$emit('switchUnit', { unitId: data.unitId })
118   - }
119   - },
120   - refreshTree(params) {
121   - if (params && params.floorId) {
122   - this.floorId = params.floorId
123   - }
124   - this.loadFloorAndUnits()
125   - }
126   - }
127   -}
128   -</script>
129   -
130   -<style lang="scss" scoped>
131   -.tree-card {
132   - height: 100%;
133   -
134   - .custom-tree-node {
135   - display: flex;
136   - align-items: center;
137   - }
138   -
139   - .tree-icon {
140   - width: 16px;
141   - height: 16px;
142   - margin-right: 5px;
143   - }
144   -
145   - .no-data {
146   - padding: 10px;
147   - text-align: center;
148   - color: #909399;
149   - }
150   -}
151   -</style>
152 0 \ No newline at end of file
src/components/room/editPropertyRightRegistrationDetail.vue
... ... @@ -114,30 +114,32 @@ export default {
114 114 this.visible = true
115 115 },
116 116 loadPhotos() {
  117 + setTimeout(() => {
117 118 if (this.editPropertyRightRegistrationDetailInfo.securities === '001' && this.editPropertyRightRegistrationDetailInfo.idCardUrl) {
118   - const urls = this.editPropertyRightRegistrationDetailInfo.idCardUrl.trim()
  119 + const urls = this.editPropertyRightRegistrationDetailInfo.idCardUrl
119 120 if (urls) {
120 121 this.$refs.idCardUpload.setImages(urls.split(','))
121 122 }
122 123 }
123 124 if (this.editPropertyRightRegistrationDetailInfo.securities === '002' && this.editPropertyRightRegistrationDetailInfo.housePurchaseUrl) {
124   - const urls = this.editPropertyRightRegistrationDetailInfo.housePurchaseUrl.trim()
  125 + const urls = this.editPropertyRightRegistrationDetailInfo.housePurchaseUrl
125 126 if (urls) {
126 127 this.$refs.housePurchaseUpload.setImages(urls.split(','))
127 128 }
128 129 }
129 130 if (this.editPropertyRightRegistrationDetailInfo.securities === '003' && this.editPropertyRightRegistrationDetailInfo.repairUrl) {
130   - const urls = this.editPropertyRightRegistrationDetailInfo.repairUrl.trim()
  131 + const urls = this.editPropertyRightRegistrationDetailInfo.repairUrl
131 132 if (urls) {
132 133 this.$refs.repairUpload.setImages(urls.split(','))
133 134 }
134 135 }
135 136 if (this.editPropertyRightRegistrationDetailInfo.securities === '004' && this.editPropertyRightRegistrationDetailInfo.deedTaxUrl) {
136   - const urls = this.editPropertyRightRegistrationDetailInfo.deedTaxUrl.trim()
  137 + const urls = this.editPropertyRightRegistrationDetailInfo.deedTaxUrl
137 138 if (urls) {
138   - this.$refs.deedTaxUpload.setImages(urls.split(','))
  139 + this.$refs.deedTaxUpload.setImages(urls.split(','))
  140 + }
139 141 }
140   - }
  142 + }, 1000)
141 143 },
142 144 handleIdCardImageChange(photos) {
143 145 this.editPropertyRightRegistrationDetailInfo.idCardPhotos = photos
... ...
src/components/room/floorUnitTree.vue
... ... @@ -48,6 +48,13 @@ export default {
48 48 refreshTree(param) {
49 49 this.handleRefreshTree(param)
50 50 },
  51 + selectFirstUnit(){
  52 + if(this.treeData.length > 0){
  53 + this.handleNodeClick(this.treeData[0].children[0])
  54 + // 并且展开
  55 +
  56 + }
  57 + },
51 58 handleRefreshTree(param) {
52 59 if (param) {
53 60 this.currentFloorId = param.floorId
... ...
src/views/car/carStructureList.vue
... ... @@ -46,6 +46,9 @@ export default {
46 46 },
47 47 created() {
48 48 this.communityId = getCommunityId()
  49 + setTimeout(() => {
  50 + this.$refs.floorUnitTree.selectFirstUnit()
  51 + }, 1000)
49 52 },
50 53 methods: {
51 54 switchFloorUnit(data) {
... ...
src/views/room/listPropertyRightRegistrationDetailList.vue
1 1 <template>
2 2 <div class="property-right-detail-container">
3 3 <el-card class="box-card">
4   - <div slot="header" class="clearfix">
5   - <div class="card-header">
  4 + <div slot="header" class="flex justify-between">
6 5 <div>
7 6 <span>{{ listPropertyRightRegistrationDetailInfo.conditions.floorNum }}-{{
8 7 listPropertyRightRegistrationDetailInfo.conditions.unitNum }}-{{
... ... @@ -15,7 +14,7 @@
15 14 <span>{{ $t('common.back') }}</span>
16 15 </el-button>
17 16 </div>
18   - </div>
  17 +
19 18 </div>
20 19  
21 20 <el-table :data="listPropertyRightRegistrationDetailInfo.propertyRightRegistrationDetails" border
... ...
src/views/room/propertyRightRegistrationManageList.vue
... ... @@ -305,7 +305,7 @@ export default {
305 305  
306 306 <style lang="scss" scoped>
307 307 .property-right-registration-container {
308   - padding: 0;
  308 + padding: 10px;
309 309 margin: 0;
310 310  
311 311 .search-wrapper {
... ...
src/views/room/roomStructureList.vue
... ... @@ -70,6 +70,9 @@ export default {
70 70 },
71 71 created() {
72 72 this.communityId = getCommunityId()
  73 + setTimeout(() => {
  74 + this.$refs.floorUnitTree.selectFirstUnit()
  75 + }, 1500)
73 76 },
74 77 methods: {
75 78 handleSwitchUnit(params) {
... ...