Commit 92c405db9800fc3560b10fc9039e8edf267ed05c

Authored by wuxw
1 parent b96589a4

优化业务受理中部分选项打不开bug

src/api/fee/roomOweFeeCallableApi.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +/**
  4 + * 保存催缴欠费信息
  5 + * @param {Object} data
  6 + * @returns {Promise}
  7 + */
  8 +export function saveOweFeeCallable(data) {
  9 + return new Promise((resolve, reject) => {
  10 + request({
  11 + url: '/oweFeeCallable.saveOweFeeCallable',
  12 + method: 'post',
  13 + data
  14 + }).then(response => {
  15 + resolve(response.data)
  16 + }).catch(error => {
  17 + reject(error)
  18 + })
  19 + })
  20 +}
  21 +
  22 +/**
  23 + * 获取欠费列表
  24 + * @param {Object} params
  25 + * @returns {Promise}
  26 + */
  27 +export function listFee(params) {
  28 + return new Promise((resolve, reject) => {
  29 + request({
  30 + url: '/fee.listFee',
  31 + method: 'get',
  32 + params
  33 + }).then(response => {
  34 + resolve(response.data)
  35 + }).catch(error => {
  36 + reject(error)
  37 + })
  38 + })
  39 +}
0 40 \ No newline at end of file
... ...
src/api/owner/ownerApi.js
... ... @@ -132,9 +132,9 @@ export function getAttrSpec(specCd) {
132 132 export function getAttrValue(specCd) {
133 133 return new Promise((resolve, reject) => {
134 134 request({
135   - url: '/attrValue.listAttrValues',
  135 + url: '/attrValue/queryAttrValue',
136 136 method: 'get',
137   - params: { specCd, communityId: getCommunityId() }
  137 + params: { specCd, communityId: getCommunityId(), page: 1, row: 100 }
138 138 }).then(response => {
139 139 const res = response.data
140 140 if (res.code == 0) {
... ...
src/api/simplify/simplifyOwnerAccessContolApi.js
1 1 import request from '@/utils/request'
2 2  
3 3 export function listMachineTranslates(params) {
4   - return request({
5   - url: '/machineTranslate.listMachineTranslates',
6   - method: 'get',
7   - params
  4 + return new Promise((resolve, reject) => {
  5 + request({
  6 + url: '/machineTranslate.listMachineTranslates',
  7 + method: 'get',
  8 + params
  9 + }).then(response => {
  10 + const res = response.data
  11 + resolve(res)
  12 +
  13 + }).catch(error => {
  14 + reject(error)
  15 + })
8 16 })
9 17 }
10 18 \ No newline at end of file
... ...
src/api/simplify/simplifyOwnerCarApi.js
1 1 import request from '@/utils/request'
2 2  
3 3 export function queryOwnerCars(params) {
4   - return request({
5   - url: '/owner.queryOwnerCars',
6   - method: 'get',
7   - params
  4 + return new Promise((resolve, reject) => {
  5 + request({
  6 + url: '/owner.queryOwnerCars',
  7 + method: 'get',
  8 + params
  9 + }).then(response => {
  10 + const res = response.data
  11 + if (res.code == 0) {
  12 + resolve(res)
  13 + } else {
  14 + reject(new Error(res.msg || '查询业主车辆失败'))
  15 + }
  16 + }).catch(error => {
  17 + reject(error)
  18 + })
8 19 })
9 20 }
10 21  
... ...
src/api/simplify/simplifyOwnerComplaintApi.js
1 1 import request from '@/utils/request'
2 2  
3 3 export function listComplaints(params) {
4   - return request({
5   - url: '/complaint.listComplaints',
6   - method: 'get',
7   - params
  4 + return new Promise((resolve, reject) => {
  5 + request({
  6 + url: '/complaint.listComplaints',
  7 + method: 'get',
  8 + params
  9 + }).then(response => {
  10 + const res = response.data
  11 + if (res.code == 0) {
  12 + resolve(res)
  13 + } else {
  14 + reject(new Error(res.msg || '查询业主投诉失败'))
  15 + }
  16 + }).catch(error => {
  17 + reject(error)
  18 + })
8 19 })
9 20 }
10 21  
... ...
src/api/simplify/simplifyOwnerMemberApi.js
1 1 import request from '@/utils/request'
2 2  
3 3 export function queryOwnerMembers(params) {
4   - return request({
5   - url: '/owner.queryOwnerMembers',
6   - method: 'get',
7   - params
  4 + return new Promise((resolve, reject) => {
  5 + request({
  6 + url: '/owner.queryOwnerMembers',
  7 + method: 'get',
  8 + params
  9 + }).then(response => {
  10 + const res = response.data
  11 + if (res.code == 0) {
  12 + resolve(res)
  13 + } else {
  14 + reject(new Error(res.msg || '查询业主成员失败'))
  15 + }
  16 + }).catch(error => {
  17 + reject(error)
  18 + })
8 19 })
  20 +
9 21 }
10 22 \ No newline at end of file
... ...
src/api/simplify/simplifyOwnerRepairApi.js
1 1 import request from '@/utils/request'
2 2  
3 3 export function listOwnerRepairs(params) {
4   - return request({
5   - url: '/ownerRepair.listOwnerRepairs',
6   - method: 'get',
7   - params
  4 + return new Promise((resolve, reject) => {
  5 + request({
  6 + url: '/ownerRepair.listOwnerRepairs',
  7 + method: 'get',
  8 + params
  9 + }).then(response => {
  10 + const res = response.data
  11 + if (res.code == 0) {
  12 + resolve(res)
  13 + } else {
  14 + reject(new Error(res.msg || '查询业主维修失败'))
  15 + }
  16 + }).catch(error => {
  17 + reject(error)
  18 + })
8 19 })
9 20 }
10 21 \ No newline at end of file
... ...
src/api/simplify/simplifyOwnerTransactionCarApi.js
1 1 import request from '@/utils/request'
2 2  
3 3 export function listMachineTranslates(params) {
4   - return request({
5   - url: '/machineTranslate.listMachineTranslates',
6   - method: 'get',
7   - params
  4 + return new Promise((resolve, reject) => {
  5 + request({
  6 + url: '/machineTranslate.listMachineTranslates',
  7 + method: 'get',
  8 + params
  9 + }).then(response => {
  10 + const res = response.data
  11 + resolve(res)
  12 + }).catch(error => {
  13 + reject(error)
  14 + })
8 15 })
9 16 }
10 17  
... ...
src/api/simplify/simplifyShopsHireLogApi.js
1 1 import request from '@/utils/request'
2 2  
3 3 export function queryShopsHireLog(params) {
4   - return request({
5   - url: '/ownerApi/queryShopsHireLog',
6   - method: 'get',
7   - params
  4 + return new Promise((resolve, reject) => {
  5 + request({
  6 + url: '/ownerApi/queryShopsHireLog',
  7 + method: 'get',
  8 + params
  9 + }).then(response => {
  10 + const res = response.data
  11 + if (res.code == 0) {
  12 + resolve(res)
  13 + } else {
  14 + reject(new Error(res.msg || '查询业主租赁记录失败'))
  15 + }
  16 + }).catch(error => {
  17 + reject(error)
  18 + })
8 19 })
9 20 }
10 21 \ No newline at end of file
... ...
src/api/work/addRoomRepairApi.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +// 保存业主报修信息
  4 +export function saveOwnerRepair(data) {
  5 + return new Promise((resolve, reject) => {
  6 + request({
  7 + url: '/ownerRepair.saveOwnerRepair',
  8 + method: 'post',
  9 + data
  10 + }).then(response => {
  11 + const res = response.data
  12 + resolve(res)
  13 + }).catch(error => {
  14 + reject(error)
  15 + })
  16 + })
  17 +}
  18 +
  19 +// 获取报修设置列表
  20 +export function listRepairSettings(params) {
  21 + return new Promise((resolve, reject) => {
  22 + request({
  23 + url: '/repair.listRepairSettings',
  24 + method: 'get',
  25 + params
  26 + }).then(response => {
  27 + const res = response.data
  28 + resolve(res)
  29 + }).catch(error => {
  30 + reject(error)
  31 + })
  32 + })
  33 +}
0 34 \ No newline at end of file
... ...
src/components/fee/printOwnFee.vue
... ... @@ -60,7 +60,7 @@ export default {
60 60 this.visible = false
61 61 },
62 62 _openPrintOweFeePage() {
63   - window.open(`/#/pages/property/printOweFee?payObjId=${this.printOwnFeeInfo.payObjId
  63 + window.open(`/#/views/fee/printOweFee?payObjId=${this.printOwnFeeInfo.payObjId
64 64 }&payObjType=${this.printOwnFeeInfo.payObjType
65 65 }&payObjName=${encodeURIComponent(this.printOwnFeeInfo.payObjName)
66 66 }&targetEndTime=${this.printOwnFeeInfo.targetEndTime}`)
... ...
src/components/fee/simplifyCallable.vue
... ... @@ -153,7 +153,7 @@ export default {
153 153 }
154 154 },
155 155 _printOwnOrder() {
156   - window.open(`/#/pages/property/printOweFee?payObjId=${this.simplifyCallableInfo.roomId}&payObjType=3333&payObjName=${this.simplifyCallableInfo.roomName}`)
  156 + window.open(`/#/views/fee/printOweFee?payObjId=${this.simplifyCallableInfo.roomId}&payObjType=3333&payObjName=${this.simplifyCallableInfo.roomName}`)
157 157 },
158 158 _openWritePrintOweFeeCallableModal() {
159 159 if (!this.simplifyCallableInfo.roomId) {
... ... @@ -166,7 +166,7 @@ export default {
166 166 })
167 167 },
168 168 _openAddOweFeeCallableModal() {
169   - this.$router.push(`/fee/roomOweFeeCallable?roomId=${this.simplifyCallableInfo.roomId}`)
  169 + this.$router.push(`/views/fee/roomOweFeeCallable?roomId=${this.simplifyCallableInfo.roomId}`)
170 170 },
171 171 _openDeleteOweFeeCallableModel(oweFeeCallable) {
172 172 this.$refs.deleteOweFeeCallable.open(oweFeeCallable)
... ...
src/components/fee/simplifyMeterWaterLog.vue
... ... @@ -9,9 +9,9 @@
9 9 </el-select>
10 10 </el-col>
11 11 <el-col :span="20" class="text-right" v-if="simplifyMeterWaterFeeInfo.roomId">
12   - <el-button type="primary" size="small" style="margin-left:10px" @click="_openAddMeterWaterModal()">
  12 + <!-- <el-button type="primary" size="small" style="margin-left:10px" @click="_openAddMeterWaterModal()">
13 13 <i class="el-icon-plus"></i> {{ $t('simplifyMeterWaterLog.addMeterReading') }}
14   - </el-button>
  14 + </el-button> -->
15 15 </el-col>
16 16 </el-row>
17 17  
... ...
src/components/owner/addOwnerMember.vue
... ... @@ -211,11 +211,11 @@ export default {
211 211 this.addOwnerMemberInfo.attrs = []
212 212 const { data } = await getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr' })
213 213 for (const attr of data) {
214   - if (attr.specType === '3344') {
  214 + attr.value = ''
  215 + if (attr.specShow == 'Y') {
215 216 attr.values = await getAttrValue(attr.specCd)
216   - attr.value = ''
  217 + this.addOwnerMemberInfo.attrs.push(attr)
217 218 }
218   - this.addOwnerMemberInfo.attrs.push(attr)
219 219  
220 220 }
221 221 },
... ...
src/components/owner/ownerDetailRoomFee.vue
... ... @@ -228,7 +228,7 @@ export default {
228 228 this.$message.warning(this.$t('ownerDetailRoomFee.selectRoom'))
229 229 return
230 230 }
231   - window.open(`/#/pages/property/printOweFee?payObjId=${_ids.join(',')}&payObjType=3333&payObjName=`)
  231 + window.open(`/#/views/fee/printOweFee?payObjId=${_ids.join(',')}&payObjType=3333&payObjName=`)
232 232 },
233 233 _openRoomsCreateFeeModal() {
234 234 this.$refs.roomsCreateFee.open({
... ...
src/components/simplify/simplifyCarFee.vue
... ... @@ -178,7 +178,8 @@ export default {
178 178 this.listSimplifyCarFee(this.currentPage, this.pageSize)
179 179 })
180 180 .catch(err => {
181   - this.$message.error(err)
  181 + console.log(err)
  182 + //this.$message.error(err)
182 183 })
183 184 },
184 185 handleNotify() {
... ...
src/components/simplify/simplifyContract.vue
1 1 <template>
2 2 <div>
3   - <el-row class="margin-top-lg">
4   - <el-col :span="12"></el-col>
5   - <el-col :span="12" class="text-right" v-if="contractInfo.ownerId">
  3 + <div class="flex justify-between">
  4 + <div></div>
  5 + <div class="text-right" v-if="contractInfo.ownerId">
6 6 <el-button type="primary" size="small" @click="_openAddContractModal">
7 7 <i class="el-icon-plus"></i>{{$t('simplifyContract.draftContract')}}
8 8 </el-button>
9   - </el-col>
10   - </el-row>
  9 + </div>
  10 + </div>
11 11 <div class="margin-top">
12 12 <el-table :data="contractInfo.contracts" border>
13 13 <el-table-column prop="contractName" :label="$t('simplifyContract.contractName')" align="center"></el-table-column>
... ... @@ -71,10 +71,11 @@ export default {
71 71 },
72 72 created() {
73 73 this.communityId = getCommunityId()
74   - this.$on('switch', this.handleSwitch)
75   - this.$on('notify', this.listContractInfo)
76 74 },
77 75 methods: {
  76 + open(params) {
  77 + this.handleSwitch(params)
  78 + },
78 79 handleSwitch(params) {
79 80 if (!params.ownerId) return
80 81 this.clearContractInfoInfo()
... ...
src/components/simplify/simplifyOwnerAccessContol.vue
... ... @@ -60,11 +60,10 @@ export default {
60 60 },
61 61 created() {
62 62 this.communityId = getCommunityId()
63   - this.initEvents()
64 63 },
65 64 methods: {
66   - initEvents() {
67   - this.$on('switch', this.handleSwitch)
  65 + open(param) {
  66 + this.handleSwitch(param)
68 67 },
69 68 handleSwitch(param) {
70 69 if (param.ownerId == '') return
... ...
src/components/simplify/simplifyOwnerCar.vue
1 1 <template>
2 2 <div>
3   - <el-row class="margin-top">
4   - <el-col :span="20"></el-col>
5   - <el-col :span="4" v-if="simplifyOwnerCarInfo.ownerId">
  3 + <div class="flex justify-between">
  4 + <div></div>
  5 + <div v-if="simplifyOwnerCarInfo.ownerId">
6 6 <el-button type="primary" size="small" @click="_addOwnerCar">
7 7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerCar.addCar') }}
8 8 </el-button>
9   - </el-col>
10   - </el-row>
  9 + </div>
  10 + </div>
11 11  
12 12 <el-table
13 13 :data="simplifyOwnerCarInfo.ownerCars"
... ... @@ -104,11 +104,10 @@ export default {
104 104 },
105 105 created() {
106 106 this.communityId = getCommunityId()
107   - this.initEvents()
108 107 },
109 108 methods: {
110   - initEvents() {
111   - this.$on('switch', this.handleSwitch)
  109 + open(param) {
  110 + this.handleSwitch(param)
112 111 },
113 112 handleSwitch(param) {
114 113 if (param.ownerId == '') return
... ... @@ -135,7 +134,7 @@ export default {
135 134 })
136 135 },
137 136 _addOwnerCar() {
138   - this.$router.push(`/pages/property/hireParkingSpace?ownerId=${this.simplifyOwnerCarInfo.ownerId}&ownerName=${this.simplifyOwnerCarInfo.ownerName}`)
  137 + this.$router.push(`/views/car/hireParkingSpace?ownerId=${this.simplifyOwnerCarInfo.ownerId}&ownerName=${this.simplifyOwnerCarInfo.ownerName}`)
139 138 },
140 139 _openEditOwnerCar(car) {
141 140 this.$refs.editCar.open(car)
... ...
src/components/simplify/simplifyOwnerComplaint.vue
1 1 <template>
2 2 <div>
3   - <el-row class="margin-top">
4   - <el-col :span="20"></el-col>
5   - <el-col :span="4" v-if="simplifyOwnerComplaintInfo.roomId != ''">
  3 + <div class="flex justify-between">
  4 + <div></div>
  5 + <div v-if="simplifyOwnerComplaintInfo.roomId != ''">
6 6 <el-button type="primary" size="small" @click="_openAddComplaintModal">
7 7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerComplaint.complaint') }}
8 8 </el-button>
9   - </el-col>
10   - </el-row>
  9 + </div>
  10 + </div>
11 11  
12 12 <el-table :data="simplifyOwnerComplaintInfo.complaints" style="width: 100%; margin-top: 10px" border>
13   - <el-table-column prop="typeCdName" :label="$t('simplifyOwnerComplaint.complaintType')"
  13 + <el-table-column prop="typeName" :label="$t('simplifyOwnerComplaint.complaintType')"
14 14 align="center"></el-table-column>
15 15 <el-table-column :label="$t('simplifyOwnerComplaint.house')" align="center">
16 16 <template #default="{ row }">
17   - {{ row.floorNum }}{{ $t('simplifyOwnerComplaint.building') }}{{ row.unitNum }}{{ $t('simplifyOwnerComplaint.unit') }}{{ row.roomNum }}{{ $t('simplifyOwnerComplaint.room') }}
  17 + {{ row.roomName }}
18 18 </template>
19 19 </el-table-column>
20 20 <el-table-column prop="complaintName" :label="$t('simplifyOwnerComplaint.complainant')"
... ... @@ -83,11 +83,11 @@ export default {
83 83 },
84 84 created() {
85 85 this.communityId = getCommunityId()
86   - this.initEvents()
  86 +
87 87 },
88 88 methods: {
89   - initEvents() {
90   - this.$on('switch', this.handleSwitch)
  89 + open(param) {
  90 + this.handleSwitch(param)
91 91 },
92 92 handleSwitch(param) {
93 93 if (param.roomId == '') return
... ... @@ -108,7 +108,7 @@ export default {
108 108 }
109 109  
110 110 listComplaints(params).then(res => {
111   - this.simplifyOwnerComplaintInfo.complaints = res.complaints
  111 + this.simplifyOwnerComplaintInfo.complaints = res.data
112 112 this.total = res.records
113 113 })
114 114 },
... ... @@ -140,7 +140,7 @@ export default {
140 140 }
141 141 },
142 142 _openAddComplaintModal() {
143   - this.$router.push(`/pages/common/addRoomComplaint?roomId=${this.simplifyOwnerComplaintInfo.roomId}`)
  143 + this.$router.push(`/views/oa/addComplaint?roomId=${this.simplifyOwnerComplaintInfo.roomId}&roomName=${this.simplifyOwnerComplaintInfo.roomName}`)
144 144 }
145 145 }
146 146 }
... ...
src/components/simplify/simplifyOwnerMember.vue
1 1 <template>
2 2 <div>
3   - <el-row class="margin-top">
4   - <el-col :span="20"></el-col>
5   - <el-col :span="4" v-if="simplifyOwnerMemberInfo.ownerId">
  3 + <div class="flex justify-between">
  4 + <div></div>
  5 + <div v-if="simplifyOwnerMemberInfo.ownerId">
6 6 <el-button type="primary" size="small" @click="openAddMemberModel">
7 7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerMember.addMember') }}
8 8 </el-button>
9   - </el-col>
10   - </el-row>
  9 + </div>
  10 + </div>
11 11  
12 12 <el-table
13 13 :data="simplifyOwnerMemberInfo.members"
... ... @@ -54,9 +54,9 @@
54 54 :total="total">
55 55 </el-pagination>
56 56  
57   - <add-owner-member ref="addOwnerMember" @listOwnerData="listSimplifyOwnerMember"></add-owner-member>
58   - <edit-owner-member ref="editOwnerMember" @listOwnerData="listSimplifyOwnerMember"></edit-owner-member>
59   - <delete-owner ref="deleteOwner" @listOwnerData="listSimplifyOwnerMember"></delete-owner>
  57 + <add-owner-member ref="addOwnerMember" @success="listSimplifyOwnerMember"></add-owner-member>
  58 + <edit-owner-member ref="editOwnerMember" @success="listSimplifyOwnerMember"></edit-owner-member>
  59 + <delete-owner ref="deleteOwner" @success="listSimplifyOwnerMember"></delete-owner>
60 60 </div>
61 61 </template>
62 62  
... ... @@ -91,11 +91,11 @@ export default {
91 91 created() {
92 92 this.communityId = getCommunityId()
93 93 this.getSimplifyOwnerMemberColumns()
94   - this.initEvents()
  94 +
95 95 },
96 96 methods: {
97   - initEvents() {
98   - this.$on('switch', this.handleSwitch)
  97 + open(param) {
  98 + this.handleSwitch(param)
99 99 },
100 100 handleSwitch(param) {
101 101 if (param.ownerId == '') return
... ... @@ -117,7 +117,7 @@ export default {
117 117  
118 118 queryOwnerMembers(params).then(res => {
119 119 this.simplifyOwnerMemberInfo.members = res.data
120   - this.dealSimplifyOwnerMemberAttr(res.data)
  120 + this.dealSimplifyOwnerMemberAttr(res)
121 121 this.total = res.records
122 122 })
123 123 },
... ...
src/components/simplify/simplifyOwnerRepair.vue
1 1 <template>
2 2 <div>
3   - <el-row class="margin-top">
4   - <el-col :span="20"></el-col>
5   - <el-col :span="4" v-if="simplifyOwnerRepairInfo.roomId != ''">
  3 + <div class="flex justify-between">
  4 + <div></div>
  5 + <div v-if="simplifyOwnerRepairInfo.roomId != ''">
6 6 <el-button type="primary" size="small" @click="_openAddOwnerRepairModal">
7 7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerRepair.phoneRepair') }}
8 8 </el-button>
9   - </el-col>
10   - </el-row>
  9 + </div>
  10 + </div>
11 11  
12 12 <el-table
13 13 :data="simplifyOwnerRepairInfo.repairs"
... ... @@ -62,11 +62,10 @@ export default {
62 62 },
63 63 created() {
64 64 this.communityId = getCommunityId()
65   - this.initEvents()
66 65 },
67 66 methods: {
68   - initEvents() {
69   - this.$on('switch', this.handleSwitch)
  67 + open(param) {
  68 + this.handleSwitch(param)
70 69 },
71 70 handleSwitch(param) {
72 71 if (param.roomId == '') return
... ... @@ -92,7 +91,7 @@ export default {
92 91 })
93 92 },
94 93 _openRepairDetail(repairPool) {
95   - this.$router.push(`/pages/property/ownerRepairDetail?repairId=${repairPool.repairId}`)
  94 + this.$router.push(`/views/work/repairDetail?repairId=${repairPool.repairId}`)
96 95 },
97 96 clearSimplifyOwnerRepairInfo() {
98 97 this.simplifyOwnerRepairInfo = {
... ... @@ -105,7 +104,7 @@ export default {
105 104 }
106 105 },
107 106 _openAddOwnerRepairModal() {
108   - this.$router.push(`/pages/common/addRoomRepair?roomId=${this.simplifyOwnerRepairInfo.roomId}&roomName=${this.simplifyOwnerRepairInfo.roomName}`)
  107 + this.$router.push(`/views/work/addRoomRepair?roomId=${this.simplifyOwnerRepairInfo.roomId}&roomName=${this.simplifyOwnerRepairInfo.roomName}`)
109 108 }
110 109 }
111 110 }
... ...
src/components/simplify/simplifyOwnerTransactionCar.vue
... ... @@ -26,14 +26,14 @@
26 26 <el-table-column prop="stateName" :label="$t('simplifyOwnerTransactionCar.status')" align="center"></el-table-column>
27 27 <el-table-column prop="remark" :label="$t('simplifyOwnerTransactionCar.remark')" align="center" width="80px"></el-table-column>
28 28 <el-table-column prop="updateTime" :label="$t('simplifyOwnerTransactionCar.syncTime')" align="center"></el-table-column>
29   - <el-table-column :label="$t('simplifyOwnerTransactionCar.operation')" align="center">
  29 + <!-- <el-table-column :label="$t('simplifyOwnerTransactionCar.operation')" align="center">
30 30 <template slot-scope="scope">
31 31 <el-button
32 32 size="mini"
33 33 @click="_openEditCarTranslateModel(scope.row)"
34 34 >{{$t('simplifyOwnerTransactionCar.resync')}}</el-button>
35 35 </template>
36   - </el-table-column>
  36 + </el-table-column> -->
37 37 </el-table>
38 38 <el-pagination
39 39 @current-change="handleCurrentChange"
... ... @@ -69,10 +69,11 @@ export default {
69 69 },
70 70 created() {
71 71 this.communityId = getCommunityId()
72   - this.$on('switch', this.handleSwitch)
73   - this.$on('listMachineTranslate', this.listMachineTranslates)
74 72 },
75 73 methods: {
  74 + open(params) {
  75 + this.handleSwitch(params)
  76 + },
76 77 handleSwitch(params) {
77 78 if (!params.ownerId) return
78 79 this.clearSimplifyOwnerTransactionCarInfo()
... ... @@ -91,8 +92,8 @@ export default {
91 92 typeCd: '4455'
92 93 }
93 94 const res = await listMachineTranslates(params)
94   - this.simplifyOwnerTransactionCarInfo.machineTranslates = res.data.machineTranslates
95   - this.total = res.data.total
  95 + this.simplifyOwnerTransactionCarInfo.machineTranslates = res.machineTranslates
  96 + this.total = res.total
96 97 } catch (error) {
97 98 console.error('Failed to load machine translates:', error)
98 99 }
... ...
src/components/simplify/simplifyShopsHireLog.vue
... ... @@ -44,10 +44,11 @@ export default {
44 44 },
45 45 created() {
46 46 this.communityId = getCommunityId()
47   - this.$on('switch', this.handleSwitch)
48   - this.$on('listMachineTranslate', this.listShopsHireLog)
49 47 },
50 48 methods: {
  49 + open(params) {
  50 + this.handleSwitch(params)
  51 + },
51 52 handleSwitch(params) {
52 53 if (!params.roomId) return
53 54 this.clearSimplifyShopsHireLogInfo()
... ... @@ -71,7 +72,7 @@ export default {
71 72 },
72 73 _openShopsOwnerFee(owner) {
73 74 this.$router.push({
74   - path: '/pages/property/listRoomFee',
  75 + path: '/views/owner/ownerDetail',
75 76 query: {
76 77 roomId: owner.roomId,
77 78 ownerId: owner.ownerId,
... ...
src/i18n/feeI18n.js
... ... @@ -37,6 +37,7 @@ import { messages as roomCreatePayFeeMessages } from &#39;../views/fee/roomCreatePay
37 37 import { messages as printAccountReceiptMessages } from '../views/account/printAccountReceiptLang'
38 38 import { messages as printSmallAccountReceiptMessages } from '../views/account/printSmallAccountReceiptLang'
39 39 import { messages as listApplyRoomDiscountRecordDetailsMessages } from '../views/fee/listApplyRoomDiscountRecordDetailsLang'
  40 +import { messages as roomOweFeeCallableMessages } from '../views/fee/roomOweFeeCallableLang'
40 41  
41 42 export const messages = {
42 43 en: {
... ... @@ -79,6 +80,7 @@ export const messages = {
79 80 ...printAccountReceiptMessages.en,
80 81 ...printSmallAccountReceiptMessages.en,
81 82 ...listApplyRoomDiscountRecordDetailsMessages.en,
  83 + ...roomOweFeeCallableMessages.en,
82 84 },
83 85 zh: {
84 86 ...contractCreateFeeMessages.zh,
... ... @@ -120,5 +122,6 @@ export const messages = {
120 122 ...printAccountReceiptMessages.zh,
121 123 ...printSmallAccountReceiptMessages.zh,
122 124 ...listApplyRoomDiscountRecordDetailsMessages.zh,
  125 + ...roomOweFeeCallableMessages.zh,
123 126 }
124 127 }
125 128 \ No newline at end of file
... ...
src/i18n/workI18n.js
... ... @@ -6,6 +6,7 @@ import { messages as editItemReleaseViewMessages } from &#39;../views/work/editItemR
6 6 import { messages as itemReleaseDetailMessages } from '../views/work/itemReleaseDetailLang'
7 7 import { messages as printRepairDetailMessages } from '../views/work/printRepairDetailLang'
8 8 import { messages as finishRepairMessages } from '../views/work/finishRepairLang'
  9 +import { messages as addRoomRepairMessages } from '../views/work/addRoomRepairLang'
9 10 export const messages = {
10 11 zh: {
11 12 ...itemReleaseTypeManageMessages.zh,
... ... @@ -15,6 +16,7 @@ export const messages = {
15 16 ...itemReleaseDetailMessages.zh,
16 17 ...printRepairDetailMessages.zh,
17 18 ...finishRepairMessages.zh,
  19 + ...addRoomRepairMessages.zh,
18 20 },
19 21 en: {
20 22 ...itemReleaseTypeManageMessages.en,
... ... @@ -24,5 +26,6 @@ export const messages = {
24 26 ...itemReleaseDetailMessages.en,
25 27 ...printRepairDetailMessages.en,
26 28 ...finishRepairMessages.en,
  29 + ...addRoomRepairMessages.en,
27 30 }
28 31 }
29 32 \ No newline at end of file
... ...
src/router/feeRouter.js
... ... @@ -170,5 +170,9 @@ export default [
170 170 component: () => import('@/views/fee/listApplyRoomDiscountRecordDetailsList.vue')
171 171 },
172 172  
173   -
  173 + {
  174 + path:'/views/fee/roomOweFeeCallable',
  175 + name:'/views/fee/roomOweFeeCallable',
  176 + component: () => import('@/views/fee/roomOweFeeCallableList.vue')
  177 + },
174 178 ]
175 179 \ No newline at end of file
... ...
src/router/workRouter.js
... ... @@ -29,4 +29,9 @@ export default [
29 29 name:'/views/work/finishRepair',
30 30 component: () => import('@/views/work/finishRepairList.vue')
31 31 },
  32 + {
  33 + path:'/views/work/addRoomRepair',
  34 + name:'/views/work/addRoomRepair',
  35 + component: () => import('@/views/work/addRoomRepairList.vue')
  36 + },
32 37 ]
33 38 \ No newline at end of file
... ...
src/views/car/hireParkingSpaceList.vue
... ... @@ -174,6 +174,11 @@ export default {
174 174 },
175 175 async created() {
176 176 await this.initData()
  177 + const { ownerId, ownerName } = this.$route.query
  178 + if (ownerId) {
  179 + this.hireParkingSpaceInfo.ownerId = ownerId
  180 + this.hireParkingSpaceInfo.ownerName = ownerName
  181 + }
177 182 },
178 183 methods: {
179 184 async initData() {
... ...
src/views/fee/roomOweFeeCallableLang.js 0 → 100644
  1 +export const messages = {
  2 + en: {
  3 + roomOweFeeCallable: {
  4 + title: 'Urge Arrears',
  5 + callableWay: 'Urge Method',
  6 + selectCallableWay: 'Please select urge method',
  7 + callableFees: 'Urge Fees',
  8 + remark: 'Urge Remark',
  9 + inputRemark: 'Please input remark',
  10 + callableWayRequired: 'Urge method is required',
  11 + fetchFeeError: 'Failed to get fee list'
  12 + }
  13 + },
  14 + zh: {
  15 + roomOweFeeCallable: {
  16 + title: '催缴欠费',
  17 + callableWay: '催缴方式',
  18 + selectCallableWay: '请选择催缴方式',
  19 + callableFees: '催缴费用',
  20 + remark: '催缴说明',
  21 + inputRemark: '请输入备注',
  22 + callableWayRequired: '催缴方式不能为空',
  23 + fetchFeeError: '获取费用列表失败'
  24 + }
  25 + }
  26 +}
0 27 \ No newline at end of file
... ...
src/views/fee/roomOweFeeCallableList.vue 0 → 100644
  1 +<template>
  2 + <div class="room-owe-fee-callable-container">
  3 + <el-card class="box-card">
  4 + <div slot="header" class="flex justify-between">
  5 + <span>{{ $t('roomOweFeeCallable.title') }}</span>
  6 + </div>
  7 +
  8 + <el-row :gutter="20">
  9 + <el-col :span="24">
  10 + <el-form label-position="right" label-width="120px" class="text-left">
  11 + <el-form-item :label="$t('roomOweFeeCallable.callableWay')">
  12 + <el-select
  13 + v-model="roomOweFeeCallableInfo.callableWay"
  14 + style="width:100%"
  15 + :placeholder="$t('roomOweFeeCallable.selectCallableWay')">
  16 + <el-option
  17 + disabled
  18 + value=""
  19 + :label="$t('roomOweFeeCallable.selectCallableWay')"/>
  20 + <el-option
  21 + label="微信模板消息"
  22 + value="WECHAT"/>
  23 + <el-option
  24 + label="短信"
  25 + value="SMS"/>
  26 + </el-select>
  27 + </el-form-item>
  28 +
  29 + <el-form-item :label="$t('roomOweFeeCallable.callableFees')">
  30 + <el-checkbox-group v-model="roomOweFeeCallableInfo.feeIds">
  31 + <el-checkbox
  32 + v-for="(item,index) in roomOweFeeCallableInfo.fees"
  33 + :key="index"
  34 + :label="item.feeId">
  35 + {{item.feeName}}
  36 + </el-checkbox>
  37 + </el-checkbox-group>
  38 + </el-form-item>
  39 +
  40 + <el-form-item :label="$t('roomOweFeeCallable.remark')">
  41 + <el-input
  42 + type="textarea"
  43 + :rows="5"
  44 + v-model="roomOweFeeCallableInfo.remark"
  45 + :placeholder="$t('roomOweFeeCallable.inputRemark')">
  46 + </el-input>
  47 + </el-form-item>
  48 + </el-form>
  49 + </el-col>
  50 + </el-row>
  51 +
  52 + <div class="footer-buttons">
  53 + <el-button
  54 + type="primary"
  55 + @click="_saveOweFeeCallable">
  56 + <i class="el-icon-check"></i>
  57 + {{ $t('common.submit') }}
  58 + </el-button>
  59 + <el-button
  60 + type="warning"
  61 + @click="$router.go(-1)">
  62 + {{ $t('common.cancel') }}
  63 + </el-button>
  64 + </div>
  65 + </el-card>
  66 + </div>
  67 +</template>
  68 +
  69 +<script>
  70 +import { saveOweFeeCallable, listFee } from '@/api/fee/roomOweFeeCallableApi'
  71 +import { getCommunityId } from '@/api/community/communityApi'
  72 +
  73 +export default {
  74 + name: 'RoomOweFeeCallableList',
  75 + data() {
  76 + return {
  77 + roomOweFeeCallableInfo: {
  78 + callableWay: '',
  79 + remark: '',
  80 + communityId: '',
  81 + feeIds: [],
  82 + roomId: '',
  83 + roomIds: [],
  84 + fees: []
  85 + }
  86 + }
  87 + },
  88 + created() {
  89 + this.roomOweFeeCallableInfo.communityId = getCommunityId()
  90 + this.roomOweFeeCallableInfo.roomId = this.$route.query.roomId
  91 + this.roomOweFeeCallableInfo.roomIds.push(this.$route.query.roomId)
  92 + this._loadRoomOweFees()
  93 + },
  94 + methods: {
  95 + roomOweFeeCallableValidate() {
  96 + if (!this.roomOweFeeCallableInfo.callableWay) {
  97 + this.$message.error(this.$t('roomOweFeeCallable.callableWayRequired'))
  98 + return false
  99 + }
  100 + return true
  101 + },
  102 + async _saveOweFeeCallable() {
  103 + if (!this.roomOweFeeCallableValidate()) {
  104 + return
  105 + }
  106 +
  107 + try {
  108 + const res = await saveOweFeeCallable(this.roomOweFeeCallableInfo)
  109 + if (res.code === 0) {
  110 + this.$message.success(this.$t('common.submitSuccess'))
  111 + this.$router.go(-1)
  112 + } else {
  113 + this.$message.error(res.msg)
  114 + }
  115 + } catch (error) {
  116 + this.$message.error(this.$t('common.submitError'))
  117 + }
  118 + },
  119 + async _loadRoomOweFees() {
  120 + try {
  121 + const params = {
  122 + page: 1,
  123 + row: 100,
  124 + communityId: this.roomOweFeeCallableInfo.communityId,
  125 + payerObjId: this.roomOweFeeCallableInfo.roomId,
  126 + state: '2008001'
  127 + }
  128 + const { fees } = await listFee(params)
  129 + this.roomOweFeeCallableInfo.fees = fees || []
  130 + } catch (error) {
  131 + this.$message.error(this.$t('roomOweFeeCallable.fetchFeeError'))
  132 + }
  133 + }
  134 + }
  135 +}
  136 +</script>
  137 +
  138 +<style lang="scss" scoped>
  139 +.room-owe-fee-callable-container {
  140 + padding: 20px;
  141 +
  142 + .box-card {
  143 + margin-bottom: 20px;
  144 + }
  145 +
  146 + .footer-buttons {
  147 + text-align: right;
  148 + margin-top: 20px;
  149 +
  150 + .el-button {
  151 + margin-left: 10px;
  152 + }
  153 + }
  154 +
  155 + .el-checkbox {
  156 + margin-right: 15px;
  157 + }
  158 +}
  159 +</style>
0 160 \ No newline at end of file
... ...
src/views/oa/addComplaintList.vue
1 1 <template>
2 2 <div class="add-complaint-container">
3 3 <el-card class="box-card">
4   - <div slot="header" class="clearfix">
  4 + <div slot="header" class="flex justify-between">
5 5 <span>{{ $t('addComplaint.title') }}</span>
6 6 </div>
7 7 <el-form ref="form" :model="addComplaintInfo" :rules="rules" label-width="120px">
... ... @@ -104,6 +104,11 @@ export default {
104 104 components: { roomTree },
105 105 created() {
106 106 this.communityId = getCommunityId()
  107 + const { roomId,roomName } = this.$route.query
  108 + if (roomId) {
  109 + this.addComplaintInfo.roomId = roomId
  110 + this.addComplaintInfo.roomName = roomName
  111 + }
107 112 this.listComplaintTypes()
108 113 },
109 114 methods: {
... ...
src/views/work/addRoomRepairLang.js 0 → 100644
  1 +export const messages = {
  2 + en: {
  3 + addRoomRepair: {
  4 + title: 'Phone Repair',
  5 + repairType: 'Repair Type',
  6 + repairTypePlaceholder: 'Required, please select repair type',
  7 + repairName: 'Repairer',
  8 + repairNamePlaceholder: 'Required, please fill in the repairer',
  9 + tel: 'Contact',
  10 + telPlaceholder: 'Required, please fill in contact information',
  11 + appointmentTime: 'Appointment Time',
  12 + appointmentTimePlaceholder: 'Required, please fill in appointment time',
  13 + context: 'Repair Content',
  14 + contextPlaceholder: 'Required, please fill in repair content',
  15 + back: 'Back',
  16 + submit: 'Submit',
  17 + submitSuccess: 'Submitted successfully',
  18 + submitError: 'Submission failed'
  19 + }
  20 + },
  21 + zh: {
  22 + addRoomRepair: {
  23 + title: '电话报修',
  24 + repairType: '报修类型',
  25 + repairTypePlaceholder: '必填,请选择报修类型',
  26 + repairName: '报修人',
  27 + repairNamePlaceholder: '必填,请填写报修人',
  28 + tel: '联系方式',
  29 + telPlaceholder: '必填,请填写联系方式',
  30 + appointmentTime: '预约时间',
  31 + appointmentTimePlaceholder: '必填,请填写预约时间',
  32 + context: '报修内容',
  33 + contextPlaceholder: '必填,请填写报修内容',
  34 + back: '返回',
  35 + submit: '提交',
  36 + submitSuccess: '提交成功',
  37 + submitError: '提交失败'
  38 + }
  39 + }
  40 +}
0 41 \ No newline at end of file
... ...
src/views/work/addRoomRepairList.vue 0 → 100644
  1 +<template>
  2 + <div class="add-room-repair-container">
  3 + <el-card class="box-card">
  4 + <div slot="header" class="flex justify-between">
  5 + <span>{{ $t('addRoomRepair.title') }}</span>
  6 + </div>
  7 + <el-form ref="form" :model="addRoomRepairInfo" label-width="120px">
  8 + <el-row :gutter="20">
  9 + <el-col :span="24">
  10 + <el-form-item :label="$t('addRoomRepair.repairType')" prop="repairType">
  11 + <el-select
  12 + v-model="addRoomRepairInfo.repairType"
  13 + :placeholder="$t('addRoomRepair.repairTypePlaceholder')"
  14 + style="width:100%"
  15 + >
  16 + <el-option
  17 + v-for="(item,index) in addRoomRepairInfo.repairSettings"
  18 + :key="index"
  19 + :label="item.repairTypeName"
  20 + :value="item.repairType"
  21 + ></el-option>
  22 + </el-select>
  23 + </el-form-item>
  24 + </el-col>
  25 + </el-row>
  26 +
  27 + <el-row :gutter="20">
  28 + <el-col :span="24">
  29 + <el-form-item :label="$t('addRoomRepair.repairName')" prop="repairName">
  30 + <el-input
  31 + v-model="addRoomRepairInfo.repairName"
  32 + :placeholder="$t('addRoomRepair.repairNamePlaceholder')"
  33 + ></el-input>
  34 + </el-form-item>
  35 + </el-col>
  36 + </el-row>
  37 +
  38 + <el-row :gutter="20">
  39 + <el-col :span="24">
  40 + <el-form-item :label="$t('addRoomRepair.tel')" prop="tel">
  41 + <el-input
  42 + v-model="addRoomRepairInfo.tel"
  43 + type="number"
  44 + :placeholder="$t('addRoomRepair.telPlaceholder')"
  45 + ></el-input>
  46 + </el-form-item>
  47 + </el-col>
  48 + </el-row>
  49 +
  50 + <el-row :gutter="20">
  51 + <el-col :span="24">
  52 + <el-form-item :label="$t('addRoomRepair.appointmentTime')" prop="appointmentTime">
  53 + <el-date-picker
  54 + v-model="addRoomRepairInfo.appointmentTime"
  55 + type="datetime"
  56 + value-format="yyyy-MM-dd HH:mm:ss"
  57 + :placeholder="$t('addRoomRepair.appointmentTimePlaceholder')"
  58 + style="width:100%"
  59 + ></el-date-picker>
  60 + </el-form-item>
  61 + </el-col>
  62 + </el-row>
  63 +
  64 + <el-row :gutter="20">
  65 + <el-col :span="24">
  66 + <el-form-item :label="$t('addRoomRepair.context')" prop="context">
  67 + <el-input
  68 + type="textarea"
  69 + :rows="5"
  70 + v-model="addRoomRepairInfo.context"
  71 + :placeholder="$t('addRoomRepair.contextPlaceholder')"
  72 + ></el-input>
  73 + </el-form-item>
  74 + </el-col>
  75 + </el-row>
  76 +
  77 + <el-row :gutter="20">
  78 + <el-col :span="24" style="text-align: right;">
  79 + <el-button type="warning" @click="_goBack">{{ $t('addRoomRepair.back') }}</el-button>
  80 + <el-button type="primary" @click="saveOwnerRepairInfo">{{ $t('addRoomRepair.submit') }}</el-button>
  81 + </el-col>
  82 + </el-row>
  83 + </el-form>
  84 + </el-card>
  85 + </div>
  86 +</template>
  87 +
  88 +<script>
  89 +import { saveOwnerRepair, listRepairSettings } from '@/api/work/addRoomRepairApi'
  90 +import { getCommunityId } from '@/api/community/communityApi'
  91 +import { getDateStr } from '@/utils/dateUtil'
  92 +
  93 +export default {
  94 + name: 'AddRoomRepairList',
  95 + data() {
  96 + return {
  97 + addRoomRepairInfo: {
  98 + repairId: '',
  99 + repairType: '',
  100 + repairName: '',
  101 + tel: '',
  102 + appointmentTime: '',
  103 + context: '',
  104 + repairObjType: '004',
  105 + repairObjId: '',
  106 + repairObjName: '',
  107 + repairSettings: [],
  108 + communityId: ''
  109 + }
  110 + }
  111 + },
  112 + created() {
  113 + this._initAddOwnerRepairInfo()
  114 + this.addRoomRepairInfo.repairObjId = this.$route.query.roomId
  115 + this.addRoomRepairInfo.repairObjName = this.$route.query.roomName
  116 + this.addRoomRepairInfo.communityId = getCommunityId()
  117 + this._listRepairSettings(1, 50, 'F')
  118 +
  119 + },
  120 + methods: {
  121 + addOwnerRepairValidate() {
  122 + return this.$refs.form.validate()
  123 + },
  124 + async saveOwnerRepairInfo() {
  125 + try {
  126 + const valid = await this.addOwnerRepairValidate()
  127 + if (!valid) return
  128 +
  129 + const res = await saveOwnerRepair(this.addRoomRepairInfo)
  130 + if (res.code === 0) {
  131 + this.$message.success(this.$t('addRoomRepair.submitSuccess'))
  132 + this._goBack()
  133 + } else {
  134 + this.$message.error(res.msg)
  135 + }
  136 + } catch (error) {
  137 + this.$message.error(this.$t('addRoomRepair.submitError'))
  138 + }
  139 + },
  140 + _initAddOwnerRepairInfo() {
  141 + this.addRoomRepairInfo.appointmentTime = getDateStr()
  142 + },
  143 + async _listRepairSettings(page, rows, publicArea) {
  144 + try {
  145 + const params = {
  146 + page,
  147 + row: rows,
  148 + communityId: this.addRoomRepairInfo.communityId,
  149 + publicArea
  150 + }
  151 + const res = await listRepairSettings(params)
  152 + this.addRoomRepairInfo.repairSettings = res.data
  153 + } catch (error) {
  154 + console.error('获取报修设置失败:', error)
  155 + }
  156 + },
  157 + _goBack() {
  158 + this.$router.go(-1)
  159 + }
  160 + }
  161 +}
  162 +</script>
  163 +
  164 +<style lang="scss" scoped>
  165 +.add-room-repair-container {
  166 + padding: 20px;
  167 +
  168 + .box-card {
  169 + margin-bottom: 20px;
  170 + }
  171 +
  172 + .el-row {
  173 + margin-bottom: 20px;
  174 +
  175 + &:last-child {
  176 + margin-bottom: 0;
  177 + }
  178 + }
  179 +
  180 + .el-col {
  181 + width: 100%;
  182 + }
  183 +}
  184 +</style>
0 185 \ No newline at end of file
... ...