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 \ No newline at end of file 40 \ No newline at end of file
src/api/owner/ownerApi.js
@@ -132,9 +132,9 @@ export function getAttrSpec(specCd) { @@ -132,9 +132,9 @@ export function getAttrSpec(specCd) {
132 export function getAttrValue(specCd) { 132 export function getAttrValue(specCd) {
133 return new Promise((resolve, reject) => { 133 return new Promise((resolve, reject) => {
134 request({ 134 request({
135 - url: '/attrValue.listAttrValues', 135 + url: '/attrValue/queryAttrValue',
136 method: 'get', 136 method: 'get',
137 - params: { specCd, communityId: getCommunityId() } 137 + params: { specCd, communityId: getCommunityId(), page: 1, row: 100 }
138 }).then(response => { 138 }).then(response => {
139 const res = response.data 139 const res = response.data
140 if (res.code == 0) { 140 if (res.code == 0) {
src/api/simplify/simplifyOwnerAccessContolApi.js
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 export function listMachineTranslates(params) { 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 \ No newline at end of file 18 \ No newline at end of file
src/api/simplify/simplifyOwnerCarApi.js
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 export function queryOwnerCars(params) { 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 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 export function listComplaints(params) { 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 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 export function queryOwnerMembers(params) { 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 \ No newline at end of file 22 \ No newline at end of file
src/api/simplify/simplifyOwnerRepairApi.js
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 export function listOwnerRepairs(params) { 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 \ No newline at end of file 21 \ No newline at end of file
src/api/simplify/simplifyOwnerTransactionCarApi.js
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 export function listMachineTranslates(params) { 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 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 export function queryShopsHireLog(params) { 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 \ No newline at end of file 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 \ No newline at end of file 34 \ No newline at end of file
src/components/fee/printOwnFee.vue
@@ -60,7 +60,7 @@ export default { @@ -60,7 +60,7 @@ export default {
60 this.visible = false 60 this.visible = false
61 }, 61 },
62 _openPrintOweFeePage() { 62 _openPrintOweFeePage() {
63 - window.open(`/#/pages/property/printOweFee?payObjId=${this.printOwnFeeInfo.payObjId 63 + window.open(`/#/views/fee/printOweFee?payObjId=${this.printOwnFeeInfo.payObjId
64 }&payObjType=${this.printOwnFeeInfo.payObjType 64 }&payObjType=${this.printOwnFeeInfo.payObjType
65 }&payObjName=${encodeURIComponent(this.printOwnFeeInfo.payObjName) 65 }&payObjName=${encodeURIComponent(this.printOwnFeeInfo.payObjName)
66 }&targetEndTime=${this.printOwnFeeInfo.targetEndTime}`) 66 }&targetEndTime=${this.printOwnFeeInfo.targetEndTime}`)
src/components/fee/simplifyCallable.vue
@@ -153,7 +153,7 @@ export default { @@ -153,7 +153,7 @@ export default {
153 } 153 }
154 }, 154 },
155 _printOwnOrder() { 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 _openWritePrintOweFeeCallableModal() { 158 _openWritePrintOweFeeCallableModal() {
159 if (!this.simplifyCallableInfo.roomId) { 159 if (!this.simplifyCallableInfo.roomId) {
@@ -166,7 +166,7 @@ export default { @@ -166,7 +166,7 @@ export default {
166 }) 166 })
167 }, 167 },
168 _openAddOweFeeCallableModal() { 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 _openDeleteOweFeeCallableModel(oweFeeCallable) { 171 _openDeleteOweFeeCallableModel(oweFeeCallable) {
172 this.$refs.deleteOweFeeCallable.open(oweFeeCallable) 172 this.$refs.deleteOweFeeCallable.open(oweFeeCallable)
src/components/fee/simplifyMeterWaterLog.vue
@@ -9,9 +9,9 @@ @@ -9,9 +9,9 @@
9 </el-select> 9 </el-select>
10 </el-col> 10 </el-col>
11 <el-col :span="20" class="text-right" v-if="simplifyMeterWaterFeeInfo.roomId"> 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 <i class="el-icon-plus"></i> {{ $t('simplifyMeterWaterLog.addMeterReading') }} 13 <i class="el-icon-plus"></i> {{ $t('simplifyMeterWaterLog.addMeterReading') }}
14 - </el-button> 14 + </el-button> -->
15 </el-col> 15 </el-col>
16 </el-row> 16 </el-row>
17 17
src/components/owner/addOwnerMember.vue
@@ -211,11 +211,11 @@ export default { @@ -211,11 +211,11 @@ export default {
211 this.addOwnerMemberInfo.attrs = [] 211 this.addOwnerMemberInfo.attrs = []
212 const { data } = await getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr' }) 212 const { data } = await getAttrSpecList({ page: 1, row: 100, tableName: 'building_owner_attr' })
213 for (const attr of data) { 213 for (const attr of data) {
214 - if (attr.specType === '3344') { 214 + attr.value = ''
  215 + if (attr.specShow == 'Y') {
215 attr.values = await getAttrValue(attr.specCd) 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,7 +228,7 @@ export default {
228 this.$message.warning(this.$t('ownerDetailRoomFee.selectRoom')) 228 this.$message.warning(this.$t('ownerDetailRoomFee.selectRoom'))
229 return 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 _openRoomsCreateFeeModal() { 233 _openRoomsCreateFeeModal() {
234 this.$refs.roomsCreateFee.open({ 234 this.$refs.roomsCreateFee.open({
src/components/simplify/simplifyCarFee.vue
@@ -178,7 +178,8 @@ export default { @@ -178,7 +178,8 @@ export default {
178 this.listSimplifyCarFee(this.currentPage, this.pageSize) 178 this.listSimplifyCarFee(this.currentPage, this.pageSize)
179 }) 179 })
180 .catch(err => { 180 .catch(err => {
181 - this.$message.error(err) 181 + console.log(err)
  182 + //this.$message.error(err)
182 }) 183 })
183 }, 184 },
184 handleNotify() { 185 handleNotify() {
src/components/simplify/simplifyContract.vue
1 <template> 1 <template>
2 <div> 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 <el-button type="primary" size="small" @click="_openAddContractModal"> 6 <el-button type="primary" size="small" @click="_openAddContractModal">
7 <i class="el-icon-plus"></i>{{$t('simplifyContract.draftContract')}} 7 <i class="el-icon-plus"></i>{{$t('simplifyContract.draftContract')}}
8 </el-button> 8 </el-button>
9 - </el-col>  
10 - </el-row> 9 + </div>
  10 + </div>
11 <div class="margin-top"> 11 <div class="margin-top">
12 <el-table :data="contractInfo.contracts" border> 12 <el-table :data="contractInfo.contracts" border>
13 <el-table-column prop="contractName" :label="$t('simplifyContract.contractName')" align="center"></el-table-column> 13 <el-table-column prop="contractName" :label="$t('simplifyContract.contractName')" align="center"></el-table-column>
@@ -71,10 +71,11 @@ export default { @@ -71,10 +71,11 @@ export default {
71 }, 71 },
72 created() { 72 created() {
73 this.communityId = getCommunityId() 73 this.communityId = getCommunityId()
74 - this.$on('switch', this.handleSwitch)  
75 - this.$on('notify', this.listContractInfo)  
76 }, 74 },
77 methods: { 75 methods: {
  76 + open(params) {
  77 + this.handleSwitch(params)
  78 + },
78 handleSwitch(params) { 79 handleSwitch(params) {
79 if (!params.ownerId) return 80 if (!params.ownerId) return
80 this.clearContractInfoInfo() 81 this.clearContractInfoInfo()
src/components/simplify/simplifyOwnerAccessContol.vue
@@ -60,11 +60,10 @@ export default { @@ -60,11 +60,10 @@ export default {
60 }, 60 },
61 created() { 61 created() {
62 this.communityId = getCommunityId() 62 this.communityId = getCommunityId()
63 - this.initEvents()  
64 }, 63 },
65 methods: { 64 methods: {
66 - initEvents() {  
67 - this.$on('switch', this.handleSwitch) 65 + open(param) {
  66 + this.handleSwitch(param)
68 }, 67 },
69 handleSwitch(param) { 68 handleSwitch(param) {
70 if (param.ownerId == '') return 69 if (param.ownerId == '') return
src/components/simplify/simplifyOwnerCar.vue
1 <template> 1 <template>
2 <div> 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 <el-button type="primary" size="small" @click="_addOwnerCar"> 6 <el-button type="primary" size="small" @click="_addOwnerCar">
7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerCar.addCar') }} 7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerCar.addCar') }}
8 </el-button> 8 </el-button>
9 - </el-col>  
10 - </el-row> 9 + </div>
  10 + </div>
11 11
12 <el-table 12 <el-table
13 :data="simplifyOwnerCarInfo.ownerCars" 13 :data="simplifyOwnerCarInfo.ownerCars"
@@ -104,11 +104,10 @@ export default { @@ -104,11 +104,10 @@ export default {
104 }, 104 },
105 created() { 105 created() {
106 this.communityId = getCommunityId() 106 this.communityId = getCommunityId()
107 - this.initEvents()  
108 }, 107 },
109 methods: { 108 methods: {
110 - initEvents() {  
111 - this.$on('switch', this.handleSwitch) 109 + open(param) {
  110 + this.handleSwitch(param)
112 }, 111 },
113 handleSwitch(param) { 112 handleSwitch(param) {
114 if (param.ownerId == '') return 113 if (param.ownerId == '') return
@@ -135,7 +134,7 @@ export default { @@ -135,7 +134,7 @@ export default {
135 }) 134 })
136 }, 135 },
137 _addOwnerCar() { 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 _openEditOwnerCar(car) { 139 _openEditOwnerCar(car) {
141 this.$refs.editCar.open(car) 140 this.$refs.editCar.open(car)
src/components/simplify/simplifyOwnerComplaint.vue
1 <template> 1 <template>
2 <div> 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 <el-button type="primary" size="small" @click="_openAddComplaintModal"> 6 <el-button type="primary" size="small" @click="_openAddComplaintModal">
7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerComplaint.complaint') }} 7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerComplaint.complaint') }}
8 </el-button> 8 </el-button>
9 - </el-col>  
10 - </el-row> 9 + </div>
  10 + </div>
11 11
12 <el-table :data="simplifyOwnerComplaintInfo.complaints" style="width: 100%; margin-top: 10px" border> 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 align="center"></el-table-column> 14 align="center"></el-table-column>
15 <el-table-column :label="$t('simplifyOwnerComplaint.house')" align="center"> 15 <el-table-column :label="$t('simplifyOwnerComplaint.house')" align="center">
16 <template #default="{ row }"> 16 <template #default="{ row }">
17 - {{ row.floorNum }}{{ $t('simplifyOwnerComplaint.building') }}{{ row.unitNum }}{{ $t('simplifyOwnerComplaint.unit') }}{{ row.roomNum }}{{ $t('simplifyOwnerComplaint.room') }} 17 + {{ row.roomName }}
18 </template> 18 </template>
19 </el-table-column> 19 </el-table-column>
20 <el-table-column prop="complaintName" :label="$t('simplifyOwnerComplaint.complainant')" 20 <el-table-column prop="complaintName" :label="$t('simplifyOwnerComplaint.complainant')"
@@ -83,11 +83,11 @@ export default { @@ -83,11 +83,11 @@ export default {
83 }, 83 },
84 created() { 84 created() {
85 this.communityId = getCommunityId() 85 this.communityId = getCommunityId()
86 - this.initEvents() 86 +
87 }, 87 },
88 methods: { 88 methods: {
89 - initEvents() {  
90 - this.$on('switch', this.handleSwitch) 89 + open(param) {
  90 + this.handleSwitch(param)
91 }, 91 },
92 handleSwitch(param) { 92 handleSwitch(param) {
93 if (param.roomId == '') return 93 if (param.roomId == '') return
@@ -108,7 +108,7 @@ export default { @@ -108,7 +108,7 @@ export default {
108 } 108 }
109 109
110 listComplaints(params).then(res => { 110 listComplaints(params).then(res => {
111 - this.simplifyOwnerComplaintInfo.complaints = res.complaints 111 + this.simplifyOwnerComplaintInfo.complaints = res.data
112 this.total = res.records 112 this.total = res.records
113 }) 113 })
114 }, 114 },
@@ -140,7 +140,7 @@ export default { @@ -140,7 +140,7 @@ export default {
140 } 140 }
141 }, 141 },
142 _openAddComplaintModal() { 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 <template> 1 <template>
2 <div> 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 <el-button type="primary" size="small" @click="openAddMemberModel"> 6 <el-button type="primary" size="small" @click="openAddMemberModel">
7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerMember.addMember') }} 7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerMember.addMember') }}
8 </el-button> 8 </el-button>
9 - </el-col>  
10 - </el-row> 9 + </div>
  10 + </div>
11 11
12 <el-table 12 <el-table
13 :data="simplifyOwnerMemberInfo.members" 13 :data="simplifyOwnerMemberInfo.members"
@@ -54,9 +54,9 @@ @@ -54,9 +54,9 @@
54 :total="total"> 54 :total="total">
55 </el-pagination> 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 </div> 60 </div>
61 </template> 61 </template>
62 62
@@ -91,11 +91,11 @@ export default { @@ -91,11 +91,11 @@ export default {
91 created() { 91 created() {
92 this.communityId = getCommunityId() 92 this.communityId = getCommunityId()
93 this.getSimplifyOwnerMemberColumns() 93 this.getSimplifyOwnerMemberColumns()
94 - this.initEvents() 94 +
95 }, 95 },
96 methods: { 96 methods: {
97 - initEvents() {  
98 - this.$on('switch', this.handleSwitch) 97 + open(param) {
  98 + this.handleSwitch(param)
99 }, 99 },
100 handleSwitch(param) { 100 handleSwitch(param) {
101 if (param.ownerId == '') return 101 if (param.ownerId == '') return
@@ -117,7 +117,7 @@ export default { @@ -117,7 +117,7 @@ export default {
117 117
118 queryOwnerMembers(params).then(res => { 118 queryOwnerMembers(params).then(res => {
119 this.simplifyOwnerMemberInfo.members = res.data 119 this.simplifyOwnerMemberInfo.members = res.data
120 - this.dealSimplifyOwnerMemberAttr(res.data) 120 + this.dealSimplifyOwnerMemberAttr(res)
121 this.total = res.records 121 this.total = res.records
122 }) 122 })
123 }, 123 },
src/components/simplify/simplifyOwnerRepair.vue
1 <template> 1 <template>
2 <div> 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 <el-button type="primary" size="small" @click="_openAddOwnerRepairModal"> 6 <el-button type="primary" size="small" @click="_openAddOwnerRepairModal">
7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerRepair.phoneRepair') }} 7 <i class="el-icon-plus"></i>{{ $t('simplifyOwnerRepair.phoneRepair') }}
8 </el-button> 8 </el-button>
9 - </el-col>  
10 - </el-row> 9 + </div>
  10 + </div>
11 11
12 <el-table 12 <el-table
13 :data="simplifyOwnerRepairInfo.repairs" 13 :data="simplifyOwnerRepairInfo.repairs"
@@ -62,11 +62,10 @@ export default { @@ -62,11 +62,10 @@ export default {
62 }, 62 },
63 created() { 63 created() {
64 this.communityId = getCommunityId() 64 this.communityId = getCommunityId()
65 - this.initEvents()  
66 }, 65 },
67 methods: { 66 methods: {
68 - initEvents() {  
69 - this.$on('switch', this.handleSwitch) 67 + open(param) {
  68 + this.handleSwitch(param)
70 }, 69 },
71 handleSwitch(param) { 70 handleSwitch(param) {
72 if (param.roomId == '') return 71 if (param.roomId == '') return
@@ -92,7 +91,7 @@ export default { @@ -92,7 +91,7 @@ export default {
92 }) 91 })
93 }, 92 },
94 _openRepairDetail(repairPool) { 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 clearSimplifyOwnerRepairInfo() { 96 clearSimplifyOwnerRepairInfo() {
98 this.simplifyOwnerRepairInfo = { 97 this.simplifyOwnerRepairInfo = {
@@ -105,7 +104,7 @@ export default { @@ -105,7 +104,7 @@ export default {
105 } 104 }
106 }, 105 },
107 _openAddOwnerRepairModal() { 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,14 +26,14 @@
26 <el-table-column prop="stateName" :label="$t('simplifyOwnerTransactionCar.status')" align="center"></el-table-column> 26 <el-table-column prop="stateName" :label="$t('simplifyOwnerTransactionCar.status')" align="center"></el-table-column>
27 <el-table-column prop="remark" :label="$t('simplifyOwnerTransactionCar.remark')" align="center" width="80px"></el-table-column> 27 <el-table-column prop="remark" :label="$t('simplifyOwnerTransactionCar.remark')" align="center" width="80px"></el-table-column>
28 <el-table-column prop="updateTime" :label="$t('simplifyOwnerTransactionCar.syncTime')" align="center"></el-table-column> 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 <template slot-scope="scope"> 30 <template slot-scope="scope">
31 <el-button 31 <el-button
32 size="mini" 32 size="mini"
33 @click="_openEditCarTranslateModel(scope.row)" 33 @click="_openEditCarTranslateModel(scope.row)"
34 >{{$t('simplifyOwnerTransactionCar.resync')}}</el-button> 34 >{{$t('simplifyOwnerTransactionCar.resync')}}</el-button>
35 </template> 35 </template>
36 - </el-table-column> 36 + </el-table-column> -->
37 </el-table> 37 </el-table>
38 <el-pagination 38 <el-pagination
39 @current-change="handleCurrentChange" 39 @current-change="handleCurrentChange"
@@ -69,10 +69,11 @@ export default { @@ -69,10 +69,11 @@ export default {
69 }, 69 },
70 created() { 70 created() {
71 this.communityId = getCommunityId() 71 this.communityId = getCommunityId()
72 - this.$on('switch', this.handleSwitch)  
73 - this.$on('listMachineTranslate', this.listMachineTranslates)  
74 }, 72 },
75 methods: { 73 methods: {
  74 + open(params) {
  75 + this.handleSwitch(params)
  76 + },
76 handleSwitch(params) { 77 handleSwitch(params) {
77 if (!params.ownerId) return 78 if (!params.ownerId) return
78 this.clearSimplifyOwnerTransactionCarInfo() 79 this.clearSimplifyOwnerTransactionCarInfo()
@@ -91,8 +92,8 @@ export default { @@ -91,8 +92,8 @@ export default {
91 typeCd: '4455' 92 typeCd: '4455'
92 } 93 }
93 const res = await listMachineTranslates(params) 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 } catch (error) { 97 } catch (error) {
97 console.error('Failed to load machine translates:', error) 98 console.error('Failed to load machine translates:', error)
98 } 99 }
src/components/simplify/simplifyShopsHireLog.vue
@@ -44,10 +44,11 @@ export default { @@ -44,10 +44,11 @@ export default {
44 }, 44 },
45 created() { 45 created() {
46 this.communityId = getCommunityId() 46 this.communityId = getCommunityId()
47 - this.$on('switch', this.handleSwitch)  
48 - this.$on('listMachineTranslate', this.listShopsHireLog)  
49 }, 47 },
50 methods: { 48 methods: {
  49 + open(params) {
  50 + this.handleSwitch(params)
  51 + },
51 handleSwitch(params) { 52 handleSwitch(params) {
52 if (!params.roomId) return 53 if (!params.roomId) return
53 this.clearSimplifyShopsHireLogInfo() 54 this.clearSimplifyShopsHireLogInfo()
@@ -71,7 +72,7 @@ export default { @@ -71,7 +72,7 @@ export default {
71 }, 72 },
72 _openShopsOwnerFee(owner) { 73 _openShopsOwnerFee(owner) {
73 this.$router.push({ 74 this.$router.push({
74 - path: '/pages/property/listRoomFee', 75 + path: '/views/owner/ownerDetail',
75 query: { 76 query: {
76 roomId: owner.roomId, 77 roomId: owner.roomId,
77 ownerId: owner.ownerId, 78 ownerId: owner.ownerId,
src/i18n/feeI18n.js
@@ -37,6 +37,7 @@ import { messages as roomCreatePayFeeMessages } from &#39;../views/fee/roomCreatePay @@ -37,6 +37,7 @@ import { messages as roomCreatePayFeeMessages } from &#39;../views/fee/roomCreatePay
37 import { messages as printAccountReceiptMessages } from '../views/account/printAccountReceiptLang' 37 import { messages as printAccountReceiptMessages } from '../views/account/printAccountReceiptLang'
38 import { messages as printSmallAccountReceiptMessages } from '../views/account/printSmallAccountReceiptLang' 38 import { messages as printSmallAccountReceiptMessages } from '../views/account/printSmallAccountReceiptLang'
39 import { messages as listApplyRoomDiscountRecordDetailsMessages } from '../views/fee/listApplyRoomDiscountRecordDetailsLang' 39 import { messages as listApplyRoomDiscountRecordDetailsMessages } from '../views/fee/listApplyRoomDiscountRecordDetailsLang'
  40 +import { messages as roomOweFeeCallableMessages } from '../views/fee/roomOweFeeCallableLang'
40 41
41 export const messages = { 42 export const messages = {
42 en: { 43 en: {
@@ -79,6 +80,7 @@ export const messages = { @@ -79,6 +80,7 @@ export const messages = {
79 ...printAccountReceiptMessages.en, 80 ...printAccountReceiptMessages.en,
80 ...printSmallAccountReceiptMessages.en, 81 ...printSmallAccountReceiptMessages.en,
81 ...listApplyRoomDiscountRecordDetailsMessages.en, 82 ...listApplyRoomDiscountRecordDetailsMessages.en,
  83 + ...roomOweFeeCallableMessages.en,
82 }, 84 },
83 zh: { 85 zh: {
84 ...contractCreateFeeMessages.zh, 86 ...contractCreateFeeMessages.zh,
@@ -120,5 +122,6 @@ export const messages = { @@ -120,5 +122,6 @@ export const messages = {
120 ...printAccountReceiptMessages.zh, 122 ...printAccountReceiptMessages.zh,
121 ...printSmallAccountReceiptMessages.zh, 123 ...printSmallAccountReceiptMessages.zh,
122 ...listApplyRoomDiscountRecordDetailsMessages.zh, 124 ...listApplyRoomDiscountRecordDetailsMessages.zh,
  125 + ...roomOweFeeCallableMessages.zh,
123 } 126 }
124 } 127 }
125 \ No newline at end of file 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 +6,7 @@ import { messages as editItemReleaseViewMessages } from &#39;../views/work/editItemR
6 import { messages as itemReleaseDetailMessages } from '../views/work/itemReleaseDetailLang' 6 import { messages as itemReleaseDetailMessages } from '../views/work/itemReleaseDetailLang'
7 import { messages as printRepairDetailMessages } from '../views/work/printRepairDetailLang' 7 import { messages as printRepairDetailMessages } from '../views/work/printRepairDetailLang'
8 import { messages as finishRepairMessages } from '../views/work/finishRepairLang' 8 import { messages as finishRepairMessages } from '../views/work/finishRepairLang'
  9 +import { messages as addRoomRepairMessages } from '../views/work/addRoomRepairLang'
9 export const messages = { 10 export const messages = {
10 zh: { 11 zh: {
11 ...itemReleaseTypeManageMessages.zh, 12 ...itemReleaseTypeManageMessages.zh,
@@ -15,6 +16,7 @@ export const messages = { @@ -15,6 +16,7 @@ export const messages = {
15 ...itemReleaseDetailMessages.zh, 16 ...itemReleaseDetailMessages.zh,
16 ...printRepairDetailMessages.zh, 17 ...printRepairDetailMessages.zh,
17 ...finishRepairMessages.zh, 18 ...finishRepairMessages.zh,
  19 + ...addRoomRepairMessages.zh,
18 }, 20 },
19 en: { 21 en: {
20 ...itemReleaseTypeManageMessages.en, 22 ...itemReleaseTypeManageMessages.en,
@@ -24,5 +26,6 @@ export const messages = { @@ -24,5 +26,6 @@ export const messages = {
24 ...itemReleaseDetailMessages.en, 26 ...itemReleaseDetailMessages.en,
25 ...printRepairDetailMessages.en, 27 ...printRepairDetailMessages.en,
26 ...finishRepairMessages.en, 28 ...finishRepairMessages.en,
  29 + ...addRoomRepairMessages.en,
27 } 30 }
28 } 31 }
29 \ No newline at end of file 32 \ No newline at end of file
src/router/feeRouter.js
@@ -170,5 +170,9 @@ export default [ @@ -170,5 +170,9 @@ export default [
170 component: () => import('@/views/fee/listApplyRoomDiscountRecordDetailsList.vue') 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 \ No newline at end of file 179 \ No newline at end of file
src/router/workRouter.js
@@ -29,4 +29,9 @@ export default [ @@ -29,4 +29,9 @@ export default [
29 name:'/views/work/finishRepair', 29 name:'/views/work/finishRepair',
30 component: () => import('@/views/work/finishRepairList.vue') 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 \ No newline at end of file 38 \ No newline at end of file
src/views/car/hireParkingSpaceList.vue
@@ -174,6 +174,11 @@ export default { @@ -174,6 +174,11 @@ export default {
174 }, 174 },
175 async created() { 175 async created() {
176 await this.initData() 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 methods: { 183 methods: {
179 async initData() { 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 \ No newline at end of file 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 \ No newline at end of file 160 \ No newline at end of file
src/views/oa/addComplaintList.vue
1 <template> 1 <template>
2 <div class="add-complaint-container"> 2 <div class="add-complaint-container">
3 <el-card class="box-card"> 3 <el-card class="box-card">
4 - <div slot="header" class="clearfix"> 4 + <div slot="header" class="flex justify-between">
5 <span>{{ $t('addComplaint.title') }}</span> 5 <span>{{ $t('addComplaint.title') }}</span>
6 </div> 6 </div>
7 <el-form ref="form" :model="addComplaintInfo" :rules="rules" label-width="120px"> 7 <el-form ref="form" :model="addComplaintInfo" :rules="rules" label-width="120px">
@@ -104,6 +104,11 @@ export default { @@ -104,6 +104,11 @@ export default {
104 components: { roomTree }, 104 components: { roomTree },
105 created() { 105 created() {
106 this.communityId = getCommunityId() 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 this.listComplaintTypes() 112 this.listComplaintTypes()
108 }, 113 },
109 methods: { 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 \ No newline at end of file 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 \ No newline at end of file 185 \ No newline at end of file