Commit 92c405db9800fc3560b10fc9039e8edf267ed05c
1 parent
b96589a4
优化业务受理中部分选项打不开bug
Showing
34 changed files
with
682 additions
and
104 deletions
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
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 '../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 '../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 | ... | ... |