Commit 0a41b92eb08e66d347f434f00daa147fc8a2d53d
1 parent
24d3590f
开发完成业务受理页面
Showing
37 changed files
with
3162 additions
and
5 deletions
src/api/fee/finishFeeApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | |
| 2 | + | |
| 3 | +export function finishFee(data) { | |
| 4 | + return new Promise((resolve, reject) => { | |
| 5 | + request({ | |
| 6 | + url: '/fee/finishFee', | |
| 7 | + method: 'post', | |
| 8 | + data | |
| 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 | + }) | |
| 19 | + }) | |
| 20 | +} | |
| 0 | 21 | \ No newline at end of file | ... | ... |
src/api/simplify/simplifyAcceptanceApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | |
| 2 | + | |
| 3 | +// 综合查询 | |
| 4 | +export function comprehensiveQuery(params) { | |
| 5 | + return new Promise((resolve, reject) => { | |
| 6 | + request({ | |
| 7 | + url: '/ownerApi/comprehensiveQuery', | |
| 8 | + method: 'get', | |
| 9 | + params | |
| 10 | + }).then(response => { | |
| 11 | + const res = response.data | |
| 12 | + if (res.code == 0) { | |
| 13 | + resolve(res) | |
| 14 | + } else { | |
| 15 | + reject(new Error(res.msg || '综合查询失败')) | |
| 16 | + } | |
| 17 | + }).catch(error => { | |
| 18 | + reject(error) | |
| 19 | + }) | |
| 20 | + }) | |
| 21 | +} | |
| 22 | + | |
| 23 | +// 查询押金费用 | |
| 24 | +export function queryFeeDeposit(params) { | |
| 25 | + return new Promise((resolve, reject) => { | |
| 26 | + request({ | |
| 27 | + url: '/fee.queryFeeDeposit', | |
| 28 | + method: 'get', | |
| 29 | + params | |
| 30 | + }).then(response => { | |
| 31 | + const res = response.data | |
| 32 | + if (res.code == 0) { | |
| 33 | + resolve(res) | |
| 34 | + } else { | |
| 35 | + reject(new Error(res.msg || '查询押金费用失败')) | |
| 36 | + } | |
| 37 | + }).catch(error => { | |
| 38 | + reject(error) | |
| 39 | + }) | |
| 40 | + }) | |
| 41 | +} | |
| 0 | 42 | \ No newline at end of file | ... | ... |
src/api/simplify/simplifyCarFeeApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | |
| 2 | + | |
| 3 | +export function listFee(params) { | |
| 4 | + return request({ | |
| 5 | + url: '/fee.listFee', | |
| 6 | + method: 'get', | |
| 7 | + params | |
| 8 | + }) | |
| 9 | +} | |
| 10 | + | |
| 11 | +export function queryOwnerCars(params) { | |
| 12 | + return request({ | |
| 13 | + url: '/owner.queryOwnerCars', | |
| 14 | + method: 'get', | |
| 15 | + params | |
| 16 | + }) | |
| 17 | +} | |
| 0 | 18 | \ No newline at end of file | ... | ... |
src/api/simplify/simplifyContractApi.js
0 → 100644
src/api/simplify/simplifyOwnerAccessContolApi.js
0 → 100644
src/api/simplify/simplifyOwnerCarApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | |
| 2 | + | |
| 3 | +export function queryOwnerCars(params) { | |
| 4 | + return request({ | |
| 5 | + url: '/owner.queryOwnerCars', | |
| 6 | + method: 'get', | |
| 7 | + params | |
| 8 | + }) | |
| 9 | +} | |
| 10 | + | |
| 11 | +export function deleteCarParkingSpace(data) { | |
| 12 | + return request({ | |
| 13 | + url: '/owner.deleteCarParkingSpace', | |
| 14 | + method: 'post', | |
| 15 | + data | |
| 16 | + }) | |
| 17 | +} | |
| 0 | 18 | \ No newline at end of file | ... | ... |
src/api/simplify/simplifyOwnerComplaintApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | |
| 2 | + | |
| 3 | +export function listComplaints(params) { | |
| 4 | + return request({ | |
| 5 | + url: '/complaint.listComplaints', | |
| 6 | + method: 'get', | |
| 7 | + params | |
| 8 | + }) | |
| 9 | +} | |
| 10 | + | |
| 11 | +export function listRunWorkflowImage(params) { | |
| 12 | + return request({ | |
| 13 | + url: '/workflow.listRunWorkflowImage', | |
| 14 | + method: 'get', | |
| 15 | + params | |
| 16 | + }) | |
| 17 | +} | |
| 0 | 18 | \ No newline at end of file | ... | ... |
src/api/simplify/simplifyOwnerMemberApi.js
0 → 100644
src/api/simplify/simplifyOwnerRepairApi.js
0 → 100644
src/api/simplify/simplifyOwnerTransactionCarApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | |
| 2 | + | |
| 3 | +export function listMachineTranslates(params) { | |
| 4 | + return request({ | |
| 5 | + url: '/machineTranslate.listMachineTranslates', | |
| 6 | + method: 'get', | |
| 7 | + params | |
| 8 | + }) | |
| 9 | +} | |
| 10 | + | |
| 11 | +export function queryOwnerCars(params) { | |
| 12 | + return request({ | |
| 13 | + url: '/owner.queryOwnerCars', | |
| 14 | + method: 'get', | |
| 15 | + params | |
| 16 | + }) | |
| 17 | +} | |
| 0 | 18 | \ No newline at end of file | ... | ... |
src/api/simplify/simplifyShopsHireLogApi.js
0 → 100644
src/components/fee/finishFee.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <el-dialog | |
| 3 | + :title="$t('finishFee.confirmOperation')" | |
| 4 | + :visible.sync="dialogVisible" | |
| 5 | + width="30%" | |
| 6 | + @close="closeFinishFeeModel" | |
| 7 | + > | |
| 8 | + <el-row> | |
| 9 | + <el-col :span="24" align="center"> | |
| 10 | + <p>{{ $t('finishFee.confirmFinishFee') }}</p> | |
| 11 | + </el-col> | |
| 12 | + </el-row> | |
| 13 | + <span slot="footer" class="dialog-footer"> | |
| 14 | + <el-button @click="closeFinishFeeModel">{{ $t('finishFee.cancel') }}</el-button> | |
| 15 | + <el-button type="primary" @click="finishFee">{{ $t('finishFee.confirm') }}</el-button> | |
| 16 | + </span> | |
| 17 | + </el-dialog> | |
| 18 | + </template> | |
| 19 | + | |
| 20 | + <script> | |
| 21 | + import { finishFee } from '@/api/fee/finishFeeApi' | |
| 22 | + import { getCommunityId } from '@/api/community/communityApi' | |
| 23 | + | |
| 24 | + export default { | |
| 25 | + name: 'FinishFee', | |
| 26 | + data() { | |
| 27 | + return { | |
| 28 | + dialogVisible: false, | |
| 29 | + finishFeeInfo: {}, | |
| 30 | + communityId: '' | |
| 31 | + } | |
| 32 | + }, | |
| 33 | + created() { | |
| 34 | + this.communityId = getCommunityId() | |
| 35 | + }, | |
| 36 | + methods: { | |
| 37 | + open(params) { | |
| 38 | + this.finishFeeInfo = params | |
| 39 | + this.dialogVisible = true | |
| 40 | + }, | |
| 41 | + closeFinishFeeModel() { | |
| 42 | + this.dialogVisible = false | |
| 43 | + }, | |
| 44 | + async finishFee() { | |
| 45 | + try { | |
| 46 | + const params = { | |
| 47 | + ...this.finishFeeInfo, | |
| 48 | + communityId: this.communityId | |
| 49 | + } | |
| 50 | + await finishFee(params) | |
| 51 | + this.$message.success(this.$t('finishFee.successMessage')) | |
| 52 | + this.closeFinishFeeModel() | |
| 53 | + this.$emit('success') | |
| 54 | + // Emit events to refresh related components | |
| 55 | + this.$bus.$emit('roomCreateFee:refresh') | |
| 56 | + this.$bus.$emit('listParkingSpaceFee:refresh') | |
| 57 | + this.$bus.$emit('simplifyRoomFee:refresh') | |
| 58 | + this.$bus.$emit('simplifyCarFee:refresh') | |
| 59 | + this.$bus.$emit('listContractFee:refresh') | |
| 60 | + this.$bus.$emit('contractDetailRoomFee:refresh') | |
| 61 | + this.$bus.$emit('ownerDetailRoomFee:refresh') | |
| 62 | + } catch (error) { | |
| 63 | + this.$message.error(error.message || this.$t('finishFee.errorMessage')) | |
| 64 | + } | |
| 65 | + } | |
| 66 | + } | |
| 67 | + } | |
| 68 | + </script> | |
| 0 | 69 | \ No newline at end of file | ... | ... |
src/components/report/InputSearchOwner.vue
| ... | ... | @@ -10,8 +10,9 @@ |
| 10 | 10 | <span class="separator">---</span> |
| 11 | 11 | <span>{{ item.link }}</span> |
| 12 | 12 | </div> |
| 13 | + | |
| 13 | 14 | </div> |
| 14 | - <el-button slot="reference" type="primary" icon="el-icon-search"></el-button> | |
| 15 | + <!-- <el-button slot="reference" type="primary" icon="el-icon-search"></el-button> --> | |
| 15 | 16 | </el-popover> |
| 16 | 17 | </div> |
| 17 | 18 | </template> | ... | ... |
src/components/simplify/simplifyCarFee.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <el-row class="margin-top"> | |
| 4 | + <el-col :span="4"> | |
| 5 | + <el-select v-model="simplifyCarFeeInfo.carId" @change="changeSimplifyCar"> | |
| 6 | + <el-option | |
| 7 | + v-for="(item,index) in simplifyCarFeeInfo.ownerCars" | |
| 8 | + :key="index" | |
| 9 | + :label="item.carNum" | |
| 10 | + :value="item.carId"> | |
| 11 | + </el-option> | |
| 12 | + </el-select> | |
| 13 | + </el-col> | |
| 14 | + <el-col :span="16"></el-col> | |
| 15 | + <el-col :span="4" v-if="simplifyCarFeeInfo.carId"> | |
| 16 | + <el-button type="primary" size="small" @click="_toBuyCarMonthCard"> | |
| 17 | + {{ $t('simplifyCarFee.buyMonthCard') }} | |
| 18 | + </el-button> | |
| 19 | + <el-button type="primary" size="small" @click="_openBatchPayCarFeeModal"> | |
| 20 | + {{ $t('simplifyCarFee.batchPayment') }} | |
| 21 | + </el-button> | |
| 22 | + <el-button type="primary" size="small" @click="_openSimplifyCarCreateFeeAddModal"> | |
| 23 | + {{ $t('simplifyCarFee.createFee') }} | |
| 24 | + </el-button> | |
| 25 | + </el-col> | |
| 26 | + </el-row> | |
| 27 | + | |
| 28 | + <el-table | |
| 29 | + :data="simplifyCarFeeInfo.fees" | |
| 30 | + style="width: 100%; margin-top: 10px" | |
| 31 | + border> | |
| 32 | + <el-table-column prop="feeName" :label="$t('simplifyCarFee.feeItem')" align="center"> | |
| 33 | + <template #default="{row}"> | |
| 34 | + <span class="hand" @click="_viewCarFeeConfig(row)">{{row.feeName}} | |
| 35 | + <i class="el-icon-info"></i> | |
| 36 | + </span> | |
| 37 | + </template> | |
| 38 | + </el-table-column> | |
| 39 | + <el-table-column prop="feeFlagName" :label="$t('simplifyCarFee.feeFlag')" align="center"></el-table-column> | |
| 40 | + <el-table-column prop="feeTypeCdName" :label="$t('simplifyCarFee.feeType')" align="center"></el-table-column> | |
| 41 | + <el-table-column prop="amountOwed" :label="$t('simplifyCarFee.amountReceivable')" align="center"></el-table-column> | |
| 42 | + <el-table-column prop="startTime" :label="$t('simplifyCarFee.accountingTime')" align="center"></el-table-column> | |
| 43 | + <el-table-column :label="$t('simplifyCarFee.receivablePeriod')" align="center"> | |
| 44 | + <template #default="{row}"> | |
| 45 | + {{_getEndTime(row)}}~<br />{{_getDeadlineTime(row)}} | |
| 46 | + </template> | |
| 47 | + </el-table-column> | |
| 48 | + <el-table-column :label="$t('simplifyCarFee.description')" align="center" width="150"> | |
| 49 | + <template #default="{row}"> | |
| 50 | + <div v-if="row.feeTypeCd == '888800010015' || row.feeTypeCd == '888800010016'"> | |
| 51 | + <div>{{ $t('simplifyCarFee.lastDegree') }}:{{row.preDegrees}}</div> | |
| 52 | + <div>{{ $t('simplifyCarFee.currentDegree') }}:{{row.curDegrees}}</div> | |
| 53 | + <div>{{ $t('simplifyCarFee.unitPrice') }}:{{row.squarePrice}}</div> | |
| 54 | + <div>{{ $t('simplifyCarFee.additionalFee') }}:{{row.additionalAmount}}</div> | |
| 55 | + </div> | |
| 56 | + <div v-else-if="row.feeTypeCd == '888800010017'"> | |
| 57 | + <div>{{ $t('simplifyCarFee.algorithm') }}:{{_getAttrValue(row.feeAttrs,'390005')}}</div> | |
| 58 | + <div>{{ $t('simplifyCarFee.usage') }}:{{_getAttrValue(row.feeAttrs,'390003')}}</div> | |
| 59 | + </div> | |
| 60 | + <div v-else> | |
| 61 | + <div>{{ $t('simplifyCarFee.unitPrice') }}:{{row.squarePrice}}</div> | |
| 62 | + <div>{{ $t('simplifyCarFee.fixedFee') }}:{{row.additionalAmount}}</div> | |
| 63 | + </div> | |
| 64 | + </template> | |
| 65 | + </el-table-column> | |
| 66 | + <el-table-column prop="stateName" :label="$t('simplifyCarFee.status')" align="center"></el-table-column> | |
| 67 | + <el-table-column :label="$t('simplifyCarFee.operation')" align="center"> | |
| 68 | + <template #default="{row}"> | |
| 69 | + <el-button type="text" v-if="row.state != '2009001' && hasPrivilege('502020082314267912')" @click="_simplifyCarPayFee(row)"> | |
| 70 | + {{ $t('simplifyCarFee.payment') }} | |
| 71 | + </el-button> | |
| 72 | + <el-button type="text" @click="_simplifyCarPayFeeHis(row)"> | |
| 73 | + {{ $t('simplifyCarFee.paymentHistory') }} | |
| 74 | + </el-button> | |
| 75 | + <el-dropdown> | |
| 76 | + <el-button type="text"> | |
| 77 | + {{ $t('simplifyCarFee.moreOperations') }}<i class="el-icon-arrow-down el-icon--right"></i> | |
| 78 | + </el-button> | |
| 79 | + <el-dropdown-menu slot="dropdown"> | |
| 80 | + <el-dropdown-item v-if="row.isDefault == 'F' && hasPrivilege('502020090604200029')" @click.native="_simplifyCarDeleteFee(row)"> | |
| 81 | + {{ $t('simplifyCarFee.cancelFee') }} | |
| 82 | + </el-dropdown-item> | |
| 83 | + <el-dropdown-item v-if="hasPrivilege('502021070488970005')" @click.native="_simplifyCarFinishFee(row)"> | |
| 84 | + {{ $t('simplifyCarFee.manualFinish') }} | |
| 85 | + </el-dropdown-item> | |
| 86 | + <el-dropdown-item v-if="row.state != '2009001' && hasPrivilege('502020090427190001')" @click.native="_simplifyCarEditFee(row)"> | |
| 87 | + {{ $t('simplifyCarFee.feeChange') }} | |
| 88 | + </el-dropdown-item> | |
| 89 | + <el-dropdown-item> | |
| 90 | + <a target="_blank" :href="'/#/pages/fee/feeDetail?feeId='+row.feeId"> | |
| 91 | + {{ $t('simplifyCarFee.details') }} | |
| 92 | + </a> | |
| 93 | + </el-dropdown-item> | |
| 94 | + </el-dropdown-menu> | |
| 95 | + </el-dropdown> | |
| 96 | + </template> | |
| 97 | + </el-table-column> | |
| 98 | + </el-table> | |
| 99 | + | |
| 100 | + <el-row> | |
| 101 | + <el-col :span="12"> | |
| 102 | + <div>{{ $t('simplifyCarFee.note1') }}</div> | |
| 103 | + <div>{{ $t('simplifyCarFee.note2') }}</div> | |
| 104 | + </el-col> | |
| 105 | + <el-col :span="6"> | |
| 106 | + <span>{{ $t('simplifyCarFee.arrearsSubtotal') }}:{{simplifyCarFeeInfo.totalAmount}}</span> | |
| 107 | + </el-col> | |
| 108 | + <el-col :span="6"> | |
| 109 | + <el-pagination | |
| 110 | + @current-change="handleCurrentChange" | |
| 111 | + :current-page="currentPage" | |
| 112 | + :page-size="pageSize" | |
| 113 | + layout="total, prev, pager, next" | |
| 114 | + :total="total"> | |
| 115 | + </el-pagination> | |
| 116 | + </el-col> | |
| 117 | + </el-row> | |
| 118 | + </div> | |
| 119 | +</template> | |
| 120 | + | |
| 121 | +<script> | |
| 122 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 123 | +import { listFee, queryOwnerCars } from '@/api/simplify/simplifyCarFeeApi' | |
| 124 | + | |
| 125 | +export default { | |
| 126 | + name: 'SimplifyCarFee', | |
| 127 | + data() { | |
| 128 | + return { | |
| 129 | + simplifyCarFeeInfo: { | |
| 130 | + fees: [], | |
| 131 | + ownerCars: [], | |
| 132 | + ownerId: '', | |
| 133 | + name: '', | |
| 134 | + carNum: '', | |
| 135 | + carId: '', | |
| 136 | + total: 0, | |
| 137 | + records: 1, | |
| 138 | + areaNum: '', | |
| 139 | + num: '', | |
| 140 | + parkingName: '', | |
| 141 | + totalAmount: 0.0 | |
| 142 | + }, | |
| 143 | + currentPage: 1, | |
| 144 | + pageSize: 10, | |
| 145 | + total: 0 | |
| 146 | + } | |
| 147 | + }, | |
| 148 | + created() { | |
| 149 | + this.communityId = getCommunityId() | |
| 150 | + this.initEvents() | |
| 151 | + }, | |
| 152 | + methods: { | |
| 153 | + initEvents() { | |
| 154 | + this.$on('switch', this.handleSwitch) | |
| 155 | + this.$on('notify', this.handleNotify) | |
| 156 | + }, | |
| 157 | + handleSwitch(param) { | |
| 158 | + if (param.ownerId == '') return | |
| 159 | + this.clearSimplifyCarFeeInfo() | |
| 160 | + Object.assign(this.simplifyCarFeeInfo, param) | |
| 161 | + this.listOwnerCar() | |
| 162 | + .then(() => { | |
| 163 | + this.listSimplifyCarFee(this.currentPage, this.pageSize) | |
| 164 | + }) | |
| 165 | + .catch(err => { | |
| 166 | + this.$message.error(err) | |
| 167 | + }) | |
| 168 | + }, | |
| 169 | + handleNotify() { | |
| 170 | + this.listSimplifyCarFee(this.currentPage, this.pageSize) | |
| 171 | + }, | |
| 172 | + handleCurrentChange(val) { | |
| 173 | + this.currentPage = val | |
| 174 | + this.listSimplifyCarFee(val, this.pageSize) | |
| 175 | + }, | |
| 176 | + listSimplifyCarFee(page, row) { | |
| 177 | + if (!this.simplifyCarFeeInfo.carId) return | |
| 178 | + | |
| 179 | + const params = { | |
| 180 | + page, | |
| 181 | + row, | |
| 182 | + communityId: this.communityId, | |
| 183 | + payerObjId: this.simplifyCarFeeInfo.carId | |
| 184 | + } | |
| 185 | + | |
| 186 | + listFee(params).then(res => { | |
| 187 | + this.simplifyCarFeeInfo.fees = res.data.fees | |
| 188 | + this.total = res.data.records | |
| 189 | + let totalAmount = 0.0 | |
| 190 | + res.data.fees.forEach(item => { | |
| 191 | + totalAmount += parseFloat(item.amountOwed) | |
| 192 | + }) | |
| 193 | + this.simplifyCarFeeInfo.totalAmount = totalAmount | |
| 194 | + }) | |
| 195 | + }, | |
| 196 | + listOwnerCar() { | |
| 197 | + return new Promise((resolve, reject) => { | |
| 198 | + const params = { | |
| 199 | + page: 1, | |
| 200 | + row: 50, | |
| 201 | + ownerId: this.simplifyCarFeeInfo.ownerId, | |
| 202 | + carTypeCd: '1001', | |
| 203 | + communityId: this.communityId | |
| 204 | + } | |
| 205 | + | |
| 206 | + queryOwnerCars(params).then(res => { | |
| 207 | + this.simplifyCarFeeInfo.ownerCars = res.data | |
| 208 | + if (res.data.length > 0) { | |
| 209 | + this.simplifyCarFeeInfo.carId = res.data[0].carId | |
| 210 | + this.simplifyCarFeeInfo.carNum = res.data[0].carNum | |
| 211 | + this.simplifyCarFeeInfo.num = res.data[0].num | |
| 212 | + this.simplifyCarFeeInfo.parkingName = `${res.data[0].areaNum}${this.$t('simplifyCarFee.parkingLot')}${res.data[0].num}${this.$t('simplifyCarFee.parkingSpace')}` | |
| 213 | + resolve(res.data) | |
| 214 | + } else { | |
| 215 | + reject(this.$t('simplifyCarFee.noParkingSpace')) | |
| 216 | + } | |
| 217 | + }).catch(err => { | |
| 218 | + reject(err) | |
| 219 | + }) | |
| 220 | + }) | |
| 221 | + }, | |
| 222 | + changeSimplifyCar() { | |
| 223 | + const car = this.simplifyCarFeeInfo.ownerCars.find(item => item.carId === this.simplifyCarFeeInfo.carId) | |
| 224 | + if (!car) return | |
| 225 | + | |
| 226 | + this.simplifyCarFeeInfo.carNum = car.carNum | |
| 227 | + this.simplifyCarFeeInfo.num = car.num | |
| 228 | + this.simplifyCarFeeInfo.parkingName = `${car.areaNum}${this.$t('simplifyCarFee.parkingLot')}${car.num}${this.$t('simplifyCarFee.parkingSpace')}` | |
| 229 | + this.listSimplifyCarFee(this.currentPage, this.pageSize) | |
| 230 | + }, | |
| 231 | + clearSimplifyCarFeeInfo() { | |
| 232 | + this.simplifyCarFeeInfo = { | |
| 233 | + fees: [], | |
| 234 | + ownerCars: [], | |
| 235 | + ownerId: '', | |
| 236 | + name: '', | |
| 237 | + carNum: '', | |
| 238 | + carId: '', | |
| 239 | + total: 0, | |
| 240 | + records: 1, | |
| 241 | + areaNum: '', | |
| 242 | + num: '', | |
| 243 | + parkingName: '', | |
| 244 | + totalAmount: 0.0 | |
| 245 | + } | |
| 246 | + }, | |
| 247 | + _getEndTime(fee) { | |
| 248 | + return fee.state == '2009001' ? '-' : fee.endTime | |
| 249 | + }, | |
| 250 | + _getDeadlineTime(fee) { | |
| 251 | + if (fee.amountOwed == 0 && fee.endTime == fee.deadlineTime) return '-' | |
| 252 | + if (fee.state == '2009001') return '-' | |
| 253 | + return fee.deadlineTime | |
| 254 | + }, | |
| 255 | + _getAttrValue(attrs, code) { | |
| 256 | + const attr = attrs.find(item => item.specCd === code) | |
| 257 | + return attr ? attr.value : '' | |
| 258 | + }, | |
| 259 | + _simplifyCarGetFeeOwnerInfo(attrs) { | |
| 260 | + const ownerName = this._getAttrValue(attrs, '390008') | |
| 261 | + const ownerLink = this._getAttrValue(attrs, '390009') | |
| 262 | + return `${this.$t('simplifyCarFee.owner')}:${ownerName},${this.$t('simplifyCarFee.phone')}:${ownerLink}` | |
| 263 | + }, | |
| 264 | + _simplifyCarPayFee(fee) { | |
| 265 | + this.$router.push(`/pages/property/payFeeOrder?feeId=${fee.feeId}`) | |
| 266 | + }, | |
| 267 | + _simplifyCarPayFeeHis(fee) { | |
| 268 | + this.$router.push(`/pages/property/propertyFee?${this.objToGetParam(fee)}`) | |
| 269 | + }, | |
| 270 | + _simplifyCarEditFee(fee) { | |
| 271 | + this.$emit('editFee', fee) | |
| 272 | + }, | |
| 273 | + _simplifyCarDeleteFee(fee) { | |
| 274 | + this.$emit('deleteFee', { | |
| 275 | + communityId: this.communityId, | |
| 276 | + feeId: fee.feeId | |
| 277 | + }) | |
| 278 | + }, | |
| 279 | + _openSimplifyCarCreateFeeAddModal() { | |
| 280 | + this.$emit('carCreateFeeAdd', { | |
| 281 | + isMore: false, | |
| 282 | + car: this.simplifyCarFeeInfo | |
| 283 | + }) | |
| 284 | + }, | |
| 285 | + _simplifyCarFinishFee(fee) { | |
| 286 | + this.$emit('finishFee', { | |
| 287 | + communityId: this.communityId, | |
| 288 | + feeId: fee.feeId | |
| 289 | + }) | |
| 290 | + }, | |
| 291 | + _toBuyCarMonthCard() { | |
| 292 | + this.$router.push(`/pages/fee/buyCarMonthCard?carNum=${this.simplifyCarFeeInfo.carNum}`) | |
| 293 | + }, | |
| 294 | + _openBatchPayCarFeeModal() { | |
| 295 | + this.$router.push(`/pages/property/batchPayFeeOrder?ownerId=${this.simplifyCarFeeInfo.ownerId}&payerObjType=6666`) | |
| 296 | + }, | |
| 297 | + _viewCarFeeConfig(fee) { | |
| 298 | + // Implement view fee config logic | |
| 299 | + console.log(fee) | |
| 300 | + } | |
| 301 | + } | |
| 302 | +} | |
| 303 | +</script> | |
| 304 | + | |
| 305 | +<style scoped> | |
| 306 | +.hand { | |
| 307 | + cursor: pointer; | |
| 308 | +} | |
| 309 | +.margin-top { | |
| 310 | + margin-top: 10px; | |
| 311 | +} | |
| 312 | +</style> | |
| 0 | 313 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyCarFeeDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-car-fee ref="simplifyCarFee"></simplify-car-fee> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyCarFee from '@/components/simplify/simplifyCarFee' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyCarFeeDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyCarFee | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyCarFee(params) { | |
| 15 | + this.$refs.simplifyCarFee.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyContract.vue
0 → 100644
| 1 | +<template> | |
| 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"> | |
| 6 | + <el-button type="primary" size="small" @click="_openAddContractModal"> | |
| 7 | + <i class="el-icon-plus"></i>{{$t('simplifyContract.draftContract')}} | |
| 8 | + </el-button> | |
| 9 | + </el-col> | |
| 10 | + </el-row> | |
| 11 | + <div class="margin-top"> | |
| 12 | + <el-table :data="contractInfo.contracts" border> | |
| 13 | + <el-table-column prop="contractName" :label="$t('simplifyContract.contractName')" align="center"></el-table-column> | |
| 14 | + <el-table-column prop="contractCode" :label="$t('simplifyContract.contractCode')" align="center"></el-table-column> | |
| 15 | + <el-table-column prop="parentContractCode" :label="$t('simplifyContract.parentContractCode')" align="center"> | |
| 16 | + <template slot-scope="scope"> | |
| 17 | + {{scope.row.parentContractCode || '-'}} | |
| 18 | + </template> | |
| 19 | + </el-table-column> | |
| 20 | + <el-table-column prop="contractTypeName" :label="$t('simplifyContract.contractType')" align="center"></el-table-column> | |
| 21 | + <el-table-column prop="startTime" :label="$t('simplifyContract.startTime')" align="center"></el-table-column> | |
| 22 | + <el-table-column prop="endTime" :label="$t('simplifyContract.endTime')" align="center"></el-table-column> | |
| 23 | + <el-table-column prop="stateName" :label="$t('simplifyContract.status')" align="center"></el-table-column> | |
| 24 | + <el-table-column :label="$t('simplifyContract.operation')" align="center" width="300"> | |
| 25 | + <template slot-scope="scope"> | |
| 26 | + <el-button size="mini" @click="_openContractFee(scope.row)">{{$t('simplifyContract.fee')}}</el-button> | |
| 27 | + <el-button size="mini" @click="_viewContract(scope.row)">{{$t('simplifyContract.view')}}</el-button> | |
| 28 | + <el-button size="mini" @click="_printContract(scope.row)">{{$t('simplifyContract.print')}}</el-button> | |
| 29 | + </template> | |
| 30 | + </el-table-column> | |
| 31 | + </el-table> | |
| 32 | + <el-pagination | |
| 33 | + @current-change="handleCurrentChange" | |
| 34 | + :current-page="currentPage" | |
| 35 | + :page-size="pageSize" | |
| 36 | + layout="total, prev, pager, next" | |
| 37 | + :total="total" | |
| 38 | + class="pagination" | |
| 39 | + ></el-pagination> | |
| 40 | + </div> | |
| 41 | + </div> | |
| 42 | +</template> | |
| 43 | + | |
| 44 | +<script> | |
| 45 | +import { queryContract } from '@/api/simplify/simplifyContractApi' | |
| 46 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 47 | + | |
| 48 | +export default { | |
| 49 | + name: 'SimplifyContract', | |
| 50 | + data() { | |
| 51 | + return { | |
| 52 | + contractInfo: { | |
| 53 | + ownerId: '', | |
| 54 | + ownerName: '', | |
| 55 | + contracts: [], | |
| 56 | + total: 0, | |
| 57 | + records: 1, | |
| 58 | + moreCondition: false, | |
| 59 | + contractId: '', | |
| 60 | + conditions: { | |
| 61 | + objId: '', | |
| 62 | + contractCode: '', | |
| 63 | + contractType: '' | |
| 64 | + } | |
| 65 | + }, | |
| 66 | + currentPage: 1, | |
| 67 | + pageSize: 10, | |
| 68 | + total: 0, | |
| 69 | + communityId: '' | |
| 70 | + } | |
| 71 | + }, | |
| 72 | + created() { | |
| 73 | + this.communityId = getCommunityId() | |
| 74 | + this.$on('switch', this.handleSwitch) | |
| 75 | + this.$on('notify', this.listContractInfo) | |
| 76 | + }, | |
| 77 | + methods: { | |
| 78 | + handleSwitch(params) { | |
| 79 | + if (!params.ownerId) return | |
| 80 | + this.clearContractInfoInfo() | |
| 81 | + Object.assign(this.contractInfo, params) | |
| 82 | + this.contractInfo.conditions.objId = params.ownerId | |
| 83 | + this.listContractInfo() | |
| 84 | + }, | |
| 85 | + async listContractInfo() { | |
| 86 | + try { | |
| 87 | + const params = { | |
| 88 | + ...this.contractInfo.conditions, | |
| 89 | + page: this.currentPage, | |
| 90 | + row: this.pageSize | |
| 91 | + } | |
| 92 | + const res = await queryContract(params) | |
| 93 | + this.contractInfo.contracts = res.data | |
| 94 | + this.total = res.data.total | |
| 95 | + } catch (error) { | |
| 96 | + console.error('Failed to load contracts:', error) | |
| 97 | + } | |
| 98 | + }, | |
| 99 | + _openAddContractModal() { | |
| 100 | + this.$router.push('/pages/admin/newContractManage') | |
| 101 | + }, | |
| 102 | + _printContract(contract) { | |
| 103 | + window.open(`/print.html#/pages/admin/printContract?contractTypeId=${contract.contractType}&contractId=${contract.contractId}`) | |
| 104 | + }, | |
| 105 | + _viewContract(contract) { | |
| 106 | + this.$router.push(`/pages/contract/contractDetail?contractId=${contract.contractId}`) | |
| 107 | + }, | |
| 108 | + clearContractInfoInfo() { | |
| 109 | + this.contractInfo = { | |
| 110 | + ownerId: '', | |
| 111 | + ownerName: '', | |
| 112 | + contracts: [], | |
| 113 | + total: 0, | |
| 114 | + records: 1, | |
| 115 | + moreCondition: false, | |
| 116 | + contractId: '', | |
| 117 | + conditions: { | |
| 118 | + contractName: '', | |
| 119 | + contractCode: '', | |
| 120 | + contractType: '' | |
| 121 | + } | |
| 122 | + } | |
| 123 | + }, | |
| 124 | + _openContractFee(contract) { | |
| 125 | + this.$router.push({ | |
| 126 | + path: '/pages/property/listContractFee', | |
| 127 | + query: { | |
| 128 | + contractId: contract.contractId, | |
| 129 | + contractCode: contract.contractCode | |
| 130 | + } | |
| 131 | + }) | |
| 132 | + }, | |
| 133 | + handleCurrentChange(val) { | |
| 134 | + this.currentPage = val | |
| 135 | + this.listContractInfo() | |
| 136 | + } | |
| 137 | + } | |
| 138 | +} | |
| 139 | +</script> | |
| 140 | + | |
| 141 | +<style scoped> | |
| 142 | +.margin-top { | |
| 143 | + margin-top: 15px; | |
| 144 | +} | |
| 145 | +.margin-top-lg { | |
| 146 | + margin-top: 20px; | |
| 147 | +} | |
| 148 | +.pagination { | |
| 149 | + margin-top: 15px; | |
| 150 | + text-align: right; | |
| 151 | +} | |
| 152 | +.text-right { | |
| 153 | + text-align: right; | |
| 154 | +} | |
| 155 | +</style> | |
| 0 | 156 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyContractDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-contract ref="simplifyContract"></simplify-contract> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyContract from '@/components/simplify/simplifyContract' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyContractDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyContract | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyContract(params) { | |
| 15 | + this.$refs.simplifyContract.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerAccessContol.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <el-table | |
| 4 | + :data="simplifyOwnerAccessContolInfo.machineTranslates" | |
| 5 | + style="width: 100%; margin-top: 10px" | |
| 6 | + border> | |
| 7 | + <el-table-column prop="typeCdName" :label="$t('simplifyOwnerAccessContol.objectType')" align="center"></el-table-column> | |
| 8 | + <el-table-column prop="objName" :label="$t('simplifyOwnerAccessContol.objectName')" align="center"></el-table-column> | |
| 9 | + <el-table-column prop="machineCmdName" :label="$t('simplifyOwnerAccessContol.command')" align="center"></el-table-column> | |
| 10 | + <el-table-column prop="stateName" :label="$t('simplifyOwnerAccessContol.status')" align="center"></el-table-column> | |
| 11 | + <el-table-column prop="remark" :label="$t('simplifyOwnerAccessContol.remark')" align="center"></el-table-column> | |
| 12 | + <el-table-column prop="updateTime" :label="$t('simplifyOwnerAccessContol.syncTime')" align="center"></el-table-column> | |
| 13 | + <el-table-column :label="$t('simplifyOwnerAccessContol.operation')" align="center"> | |
| 14 | + <template #default="{row}"> | |
| 15 | + <el-button | |
| 16 | + v-if="row.state != '20000'" | |
| 17 | + type="text" | |
| 18 | + @click="_openEditMachineTranslateModel(row)"> | |
| 19 | + {{ $t('simplifyOwnerAccessContol.resync') }} | |
| 20 | + </el-button> | |
| 21 | + </template> | |
| 22 | + </el-table-column> | |
| 23 | + </el-table> | |
| 24 | + | |
| 25 | + <el-pagination | |
| 26 | + @current-change="handleCurrentChange" | |
| 27 | + :current-page="currentPage" | |
| 28 | + :page-size="pageSize" | |
| 29 | + layout="total, prev, pager, next" | |
| 30 | + :total="total"> | |
| 31 | + </el-pagination> | |
| 32 | + | |
| 33 | + <edit-machine-translate ref="editMachineTranslate" @listMachineTranslate="listSimplifyOwnerAccessContol"></edit-machine-translate> | |
| 34 | + </div> | |
| 35 | +</template> | |
| 36 | + | |
| 37 | +<script> | |
| 38 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 39 | +import { listMachineTranslates } from '@/api/simplify/simplifyOwnerAccessContolApi' | |
| 40 | +import EditMachineTranslate from '@/components/machine/editMachineTranslate' | |
| 41 | + | |
| 42 | +export default { | |
| 43 | + name: 'SimplifyOwnerAccessContol', | |
| 44 | + components: { | |
| 45 | + EditMachineTranslate | |
| 46 | + }, | |
| 47 | + data() { | |
| 48 | + return { | |
| 49 | + simplifyOwnerAccessContolInfo: { | |
| 50 | + machineTranslates: [], | |
| 51 | + ownerId: '', | |
| 52 | + roomId: '', | |
| 53 | + total: 0, | |
| 54 | + records: 1 | |
| 55 | + }, | |
| 56 | + currentPage: 1, | |
| 57 | + pageSize: 10, | |
| 58 | + total: 0 | |
| 59 | + } | |
| 60 | + }, | |
| 61 | + created() { | |
| 62 | + this.communityId = getCommunityId() | |
| 63 | + this.initEvents() | |
| 64 | + }, | |
| 65 | + methods: { | |
| 66 | + initEvents() { | |
| 67 | + this.$on('switch', this.handleSwitch) | |
| 68 | + }, | |
| 69 | + handleSwitch(param) { | |
| 70 | + if (param.ownerId == '') return | |
| 71 | + this.clearSimplifyOwnerAccessContolInfo() | |
| 72 | + Object.assign(this.simplifyOwnerAccessContolInfo, param) | |
| 73 | + this.listSimplifyOwnerAccessContol(this.currentPage, this.pageSize) | |
| 74 | + }, | |
| 75 | + handleCurrentChange(val) { | |
| 76 | + this.currentPage = val | |
| 77 | + this.listSimplifyOwnerAccessContol(val, this.pageSize) | |
| 78 | + }, | |
| 79 | + listSimplifyOwnerAccessContol(page, row) { | |
| 80 | + const params = { | |
| 81 | + page, | |
| 82 | + row, | |
| 83 | + communityId: this.communityId, | |
| 84 | + objId: this.simplifyOwnerAccessContolInfo.ownerId, | |
| 85 | + typeCd: '8899' | |
| 86 | + } | |
| 87 | + | |
| 88 | + listMachineTranslates(params).then(res => { | |
| 89 | + this.simplifyOwnerAccessContolInfo.machineTranslates = res.machineTranslates | |
| 90 | + this.total = res.records | |
| 91 | + }) | |
| 92 | + }, | |
| 93 | + _openEditMachineTranslateModel(machineTranslate) { | |
| 94 | + this.$refs.editMachineTranslate.open(machineTranslate) | |
| 95 | + }, | |
| 96 | + clearSimplifyOwnerAccessContolInfo() { | |
| 97 | + this.simplifyOwnerAccessContolInfo = { | |
| 98 | + machineTranslates: [], | |
| 99 | + ownerId: '', | |
| 100 | + roomId: '' | |
| 101 | + } | |
| 102 | + } | |
| 103 | + } | |
| 104 | +} | |
| 105 | +</script> | |
| 106 | + | |
| 107 | +<style scoped> | |
| 108 | +</style> | |
| 0 | 109 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerAccessContolDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-owner-access-contol ref="simplifyOwnerAccessContol"></simplify-owner-access-contol> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyOwnerAccessContol from '@/components/simplify/simplifyOwnerAccessContol' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyOwnerAccessContolDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyOwnerAccessContol | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyOwnerAccessContol(params) { | |
| 15 | + this.$refs.simplifyOwnerAccessContol.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerCar.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <el-row class="margin-top"> | |
| 4 | + <el-col :span="20"></el-col> | |
| 5 | + <el-col :span="4" v-if="simplifyOwnerCarInfo.ownerId"> | |
| 6 | + <el-button type="primary" size="small" @click="_addOwnerCar"> | |
| 7 | + <i class="el-icon-plus"></i>{{ $t('simplifyOwnerCar.addCar') }} | |
| 8 | + </el-button> | |
| 9 | + </el-col> | |
| 10 | + </el-row> | |
| 11 | + | |
| 12 | + <el-table | |
| 13 | + :data="simplifyOwnerCarInfo.ownerCars" | |
| 14 | + style="width: 100%; margin-top: 10px" | |
| 15 | + border> | |
| 16 | + <el-table-column :label="$t('simplifyOwnerCar.plateNumber')" align="center"> | |
| 17 | + <template #default="{row}"> | |
| 18 | + <router-link :to="`/pages/car/carDetail?memberId=${row.memberId}`" target="_blank"> | |
| 19 | + {{row.carNum}} | |
| 20 | + </router-link> | |
| 21 | + </template> | |
| 22 | + </el-table-column> | |
| 23 | + <el-table-column prop="carBrand" :label="$t('simplifyOwnerCar.carBrand')" align="center"></el-table-column> | |
| 24 | + <el-table-column prop="carTypeName" :label="$t('simplifyOwnerCar.carType')" align="center"></el-table-column> | |
| 25 | + <el-table-column prop="carColor" :label="$t('simplifyOwnerCar.color')" align="center"></el-table-column> | |
| 26 | + <el-table-column :label="$t('simplifyOwnerCar.owner')" align="center"> | |
| 27 | + <template #default="{row}"> | |
| 28 | + {{row.ownerName}}({{row.link}}) | |
| 29 | + </template> | |
| 30 | + </el-table-column> | |
| 31 | + <el-table-column :label="$t('simplifyOwnerCar.parkingSpace')" align="center"> | |
| 32 | + <template #default="{row}"> | |
| 33 | + <span v-if="row.areaNum"> | |
| 34 | + {{row.areaNum}}{{$t('simplifyOwnerCar.parkingLot')}}{{row.num}}{{$t('simplifyOwnerCar.space')}} | |
| 35 | + </span> | |
| 36 | + <span v-else>{{ $t('simplifyOwnerCar.none') }}</span> | |
| 37 | + </template> | |
| 38 | + </el-table-column> | |
| 39 | + <el-table-column prop="startTime" :label="$t('simplifyOwnerCar.startTime')" align="center"></el-table-column> | |
| 40 | + <el-table-column prop="endTime" :label="$t('simplifyOwnerCar.endTime')" align="center"></el-table-column> | |
| 41 | + <el-table-column prop="stateName" :label="$t('simplifyOwnerCar.status')" align="center"></el-table-column> | |
| 42 | + <el-table-column :label="$t('simplifyOwnerCar.operation')" align="center"> | |
| 43 | + <template #default="{row}"> | |
| 44 | + <el-button | |
| 45 | + v-if="row.psId != '-1' && row.state == '1001'" | |
| 46 | + type="text" | |
| 47 | + @click="_deleteCarParkingSpace(row)"> | |
| 48 | + {{ $t('simplifyOwnerCar.releaseSpace') }} | |
| 49 | + </el-button> | |
| 50 | + <el-button | |
| 51 | + v-if="row.psId != '-1' && row.state == '3003'" | |
| 52 | + type="text" | |
| 53 | + @click="_addCarParkingSpace(row)"> | |
| 54 | + {{ $t('simplifyOwnerCar.renewSpace') }} | |
| 55 | + </el-button> | |
| 56 | + <el-button type="text" @click="_openEditOwnerCar(row)"> | |
| 57 | + {{ $t('simplifyOwnerCar.edit') }} | |
| 58 | + </el-button> | |
| 59 | + <el-button type="text" @click="_openDelOwnerCarModel(row)"> | |
| 60 | + {{ $t('simplifyOwnerCar.delete') }} | |
| 61 | + </el-button> | |
| 62 | + </template> | |
| 63 | + </el-table-column> | |
| 64 | + </el-table> | |
| 65 | + | |
| 66 | + <el-pagination | |
| 67 | + @current-change="handleCurrentChange" | |
| 68 | + :current-page="currentPage" | |
| 69 | + :page-size="pageSize" | |
| 70 | + layout="total, prev, pager, next" | |
| 71 | + :total="total"> | |
| 72 | + </el-pagination> | |
| 73 | + | |
| 74 | + <edit-car ref="editCar" @listOwnerCarData="listSimplifyOwnerCar"></edit-car> | |
| 75 | + <delete-owner-car ref="deleteOwnerCar" @listOwnerCarData="listSimplifyOwnerCar"></delete-owner-car> | |
| 76 | + </div> | |
| 77 | +</template> | |
| 78 | + | |
| 79 | +<script> | |
| 80 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 81 | +import { queryOwnerCars, deleteCarParkingSpace } from '@/api/simplify/simplifyOwnerCarApi' | |
| 82 | +import EditCar from '@/components/car/editCar' | |
| 83 | +import DeleteOwnerCar from '@/components/car/deleteOwnerCar' | |
| 84 | + | |
| 85 | +export default { | |
| 86 | + name: 'SimplifyOwnerCar', | |
| 87 | + components: { | |
| 88 | + EditCar, | |
| 89 | + DeleteOwnerCar | |
| 90 | + }, | |
| 91 | + data() { | |
| 92 | + return { | |
| 93 | + simplifyOwnerCarInfo: { | |
| 94 | + ownerCars: [], | |
| 95 | + ownerId: '', | |
| 96 | + ownerName: '', | |
| 97 | + total: 0, | |
| 98 | + records: 1 | |
| 99 | + }, | |
| 100 | + currentPage: 1, | |
| 101 | + pageSize: 10, | |
| 102 | + total: 0 | |
| 103 | + } | |
| 104 | + }, | |
| 105 | + created() { | |
| 106 | + this.communityId = getCommunityId() | |
| 107 | + this.initEvents() | |
| 108 | + }, | |
| 109 | + methods: { | |
| 110 | + initEvents() { | |
| 111 | + this.$on('switch', this.handleSwitch) | |
| 112 | + }, | |
| 113 | + handleSwitch(param) { | |
| 114 | + if (param.ownerId == '') return | |
| 115 | + this.clearSimplifyOwnerCarInfo() | |
| 116 | + Object.assign(this.simplifyOwnerCarInfo, param) | |
| 117 | + this.listSimplifyOwnerCar(this.currentPage, this.pageSize) | |
| 118 | + }, | |
| 119 | + handleCurrentChange(val) { | |
| 120 | + this.currentPage = val | |
| 121 | + this.listSimplifyOwnerCar(val, this.pageSize) | |
| 122 | + }, | |
| 123 | + listSimplifyOwnerCar(page, row) { | |
| 124 | + const params = { | |
| 125 | + page, | |
| 126 | + row, | |
| 127 | + communityId: this.communityId, | |
| 128 | + ownerId: this.simplifyOwnerCarInfo.ownerId, | |
| 129 | + carTypeCd: '1001' | |
| 130 | + } | |
| 131 | + | |
| 132 | + queryOwnerCars(params).then(res => { | |
| 133 | + this.simplifyOwnerCarInfo.ownerCars = res.data | |
| 134 | + this.total = res.records | |
| 135 | + }) | |
| 136 | + }, | |
| 137 | + _addOwnerCar() { | |
| 138 | + this.$router.push(`/pages/property/hireParkingSpace?ownerId=${this.simplifyOwnerCarInfo.ownerId}&ownerName=${this.simplifyOwnerCarInfo.ownerName}`) | |
| 139 | + }, | |
| 140 | + _openEditOwnerCar(car) { | |
| 141 | + this.$refs.editCar.open(car) | |
| 142 | + }, | |
| 143 | + _openDelOwnerCarModel(car) { | |
| 144 | + this.$refs.deleteOwnerCar.open(car) | |
| 145 | + }, | |
| 146 | + _deleteCarParkingSpace(car) { | |
| 147 | + deleteCarParkingSpace(car).then(() => { | |
| 148 | + this.$message.success(this.$t('simplifyOwnerCar.releaseSuccess')) | |
| 149 | + this.listSimplifyOwnerCar(this.currentPage, this.pageSize) | |
| 150 | + }).catch(err => { | |
| 151 | + this.$message.error(err) | |
| 152 | + }) | |
| 153 | + }, | |
| 154 | + _addCarParkingSpace(car) { | |
| 155 | + this.$router.push(`/pages/property/carAddParkingSpace?carId=${car.carId}`) | |
| 156 | + }, | |
| 157 | + clearSimplifyOwnerCarInfo() { | |
| 158 | + this.simplifyOwnerCarInfo = { | |
| 159 | + ownerCars: [], | |
| 160 | + ownerId: '', | |
| 161 | + ownerName: '' | |
| 162 | + } | |
| 163 | + } | |
| 164 | + } | |
| 165 | +} | |
| 166 | +</script> | |
| 167 | + | |
| 168 | +<style scoped> | |
| 169 | +.margin-top { | |
| 170 | + margin-top: 10px; | |
| 171 | +} | |
| 172 | +</style> | |
| 0 | 173 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerCarDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-owner-car ref="simplifyOwnerCar"></simplify-owner-car> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyOwnerCar from '@/components/simplify/simplifyOwnerCar' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyOwnerCarDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyOwnerCar | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyOwnerCar(params) { | |
| 15 | + this.$refs.simplifyOwnerCar.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerComplaint.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <el-row class="margin-top"> | |
| 4 | + <el-col :span="20"></el-col> | |
| 5 | + <el-col :span="4" v-if="simplifyOwnerComplaintInfo.roomId != ''"> | |
| 6 | + <el-button type="primary" size="small" @click="_openAddComplaintModal"> | |
| 7 | + <i class="el-icon-plus"></i>{{ $t('simplifyOwnerComplaint.complaint') }} | |
| 8 | + </el-button> | |
| 9 | + </el-col> | |
| 10 | + </el-row> | |
| 11 | + | |
| 12 | + <el-table :data="simplifyOwnerComplaintInfo.complaints" style="width: 100%; margin-top: 10px" border> | |
| 13 | + <el-table-column prop="typeCdName" :label="$t('simplifyOwnerComplaint.complaintType')" | |
| 14 | + align="center"></el-table-column> | |
| 15 | + <el-table-column :label="$t('simplifyOwnerComplaint.house')" align="center"> | |
| 16 | + <template #default="{ row }"> | |
| 17 | + {{ row.floorNum }}{{ $t('simplifyOwnerComplaint.building') }}{{ row.unitNum }}{{ $t('simplifyOwnerComplaint.unit') }}{{ row.roomNum }}{{ $t('simplifyOwnerComplaint.room') }} | |
| 18 | + </template> | |
| 19 | + </el-table-column> | |
| 20 | + <el-table-column prop="complaintName" :label="$t('simplifyOwnerComplaint.complainant')" | |
| 21 | + align="center"></el-table-column> | |
| 22 | + <el-table-column prop="tel" :label="$t('simplifyOwnerComplaint.complainantPhone')" | |
| 23 | + align="center"></el-table-column> | |
| 24 | + <el-table-column prop="stateName" :label="$t('simplifyOwnerComplaint.complaintStatus')" | |
| 25 | + align="center"></el-table-column> | |
| 26 | + <el-table-column prop="currentUserName" :label="$t('simplifyOwnerComplaint.handler')" align="center"> | |
| 27 | + <template #default="{ row }"> | |
| 28 | + {{ row.currentUserName == '' ? $t('simplifyOwnerComplaint.none') : row.currentUserName }} | |
| 29 | + </template> | |
| 30 | + </el-table-column> | |
| 31 | + <el-table-column prop="currentUserTel" :label="$t('simplifyOwnerComplaint.handlerPhone')" align="center"> | |
| 32 | + <template #default="{ row }"> | |
| 33 | + {{ row.currentUserTel == '' ? $t('simplifyOwnerComplaint.none') : row.currentUserTel }} | |
| 34 | + </template> | |
| 35 | + </el-table-column> | |
| 36 | + <el-table-column :label="$t('simplifyOwnerComplaint.operation')" align="center"> | |
| 37 | + <template #default="{ row }"> | |
| 38 | + <el-button type="text" @click="_openComplaintDetailModel(row)"> | |
| 39 | + {{ $t('simplifyOwnerComplaint.details') }} | |
| 40 | + </el-button> | |
| 41 | + <el-button type="text" @click="_openRunWorkflowImage(row)"> | |
| 42 | + {{ $t('simplifyOwnerComplaint.flowChart') }} | |
| 43 | + </el-button> | |
| 44 | + </template> | |
| 45 | + </el-table-column> | |
| 46 | + </el-table> | |
| 47 | + | |
| 48 | + <el-pagination @current-change="handleCurrentChange" :current-page="currentPage" :page-size="pageSize" | |
| 49 | + layout="total, prev, pager, next" :total="total"> | |
| 50 | + </el-pagination> | |
| 51 | + | |
| 52 | + <complaint-detail ref="complaintDetail"></complaint-detail> | |
| 53 | + <view-image ref="viewImage"></view-image> | |
| 54 | + </div> | |
| 55 | +</template> | |
| 56 | + | |
| 57 | +<script> | |
| 58 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 59 | +import { listComplaints, listRunWorkflowImage } from '@/api/simplify/simplifyOwnerComplaintApi' | |
| 60 | +import ComplaintDetail from '@/components/oa/complaintDetail' | |
| 61 | +import ViewImage from '@/components/system/viewImage' | |
| 62 | + | |
| 63 | +export default { | |
| 64 | + name: 'SimplifyOwnerComplaint', | |
| 65 | + components: { | |
| 66 | + ComplaintDetail, | |
| 67 | + ViewImage | |
| 68 | + }, | |
| 69 | + data() { | |
| 70 | + return { | |
| 71 | + simplifyOwnerComplaintInfo: { | |
| 72 | + complaints: [], | |
| 73 | + ownerId: '', | |
| 74 | + roomId: '', | |
| 75 | + roomName: '', | |
| 76 | + total: 0, | |
| 77 | + records: 1 | |
| 78 | + }, | |
| 79 | + currentPage: 1, | |
| 80 | + pageSize: 10, | |
| 81 | + total: 0 | |
| 82 | + } | |
| 83 | + }, | |
| 84 | + created() { | |
| 85 | + this.communityId = getCommunityId() | |
| 86 | + this.initEvents() | |
| 87 | + }, | |
| 88 | + methods: { | |
| 89 | + initEvents() { | |
| 90 | + this.$on('switch', this.handleSwitch) | |
| 91 | + }, | |
| 92 | + handleSwitch(param) { | |
| 93 | + if (param.roomId == '') return | |
| 94 | + this.clearSimplifyOwnerComplaintInfo() | |
| 95 | + Object.assign(this.simplifyOwnerComplaintInfo, param) | |
| 96 | + this.listSimplifyOwnerComplaint(this.currentPage, this.pageSize) | |
| 97 | + }, | |
| 98 | + handleCurrentChange(val) { | |
| 99 | + this.currentPage = val | |
| 100 | + this.listSimplifyOwnerComplaint(val, this.pageSize) | |
| 101 | + }, | |
| 102 | + listSimplifyOwnerComplaint(page, row) { | |
| 103 | + const params = { | |
| 104 | + page, | |
| 105 | + row, | |
| 106 | + communityId: this.communityId, | |
| 107 | + roomId: this.simplifyOwnerComplaintInfo.roomId | |
| 108 | + } | |
| 109 | + | |
| 110 | + listComplaints(params).then(res => { | |
| 111 | + this.simplifyOwnerComplaintInfo.complaints = res.complaints | |
| 112 | + this.total = res.records | |
| 113 | + }) | |
| 114 | + }, | |
| 115 | + _openComplaintDetailModel(complaint) { | |
| 116 | + this.$refs.complaintDetail.open(complaint) | |
| 117 | + }, | |
| 118 | + _openRunWorkflowImage(complaint) { | |
| 119 | + const params = { | |
| 120 | + communityId: this.communityId, | |
| 121 | + businessKey: complaint.complaintId | |
| 122 | + } | |
| 123 | + | |
| 124 | + listRunWorkflowImage(params).then(res => { | |
| 125 | + if (res.code == 0) { | |
| 126 | + this.$refs.viewImage.show({ | |
| 127 | + url: `data:image/png;base64,${res.data}` | |
| 128 | + }) | |
| 129 | + } else { | |
| 130 | + this.$message.error(res.msg) | |
| 131 | + } | |
| 132 | + }) | |
| 133 | + }, | |
| 134 | + clearSimplifyOwnerComplaintInfo() { | |
| 135 | + this.simplifyOwnerComplaintInfo = { | |
| 136 | + complaints: [], | |
| 137 | + ownerId: '', | |
| 138 | + roomId: '', | |
| 139 | + roomName: '' | |
| 140 | + } | |
| 141 | + }, | |
| 142 | + _openAddComplaintModal() { | |
| 143 | + this.$router.push(`/pages/common/addRoomComplaint?roomId=${this.simplifyOwnerComplaintInfo.roomId}`) | |
| 144 | + } | |
| 145 | + } | |
| 146 | +} | |
| 147 | +</script> | |
| 148 | + | |
| 149 | +<style scoped> | |
| 150 | +.margin-top { | |
| 151 | + margin-top: 10px; | |
| 152 | +} | |
| 153 | +</style> | |
| 0 | 154 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerComplaintDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-owner-complaint ref="simplifyOwnerComplaint"></simplify-owner-complaint> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyOwnerComplaint from '@/components/simplify/simplifyOwnerComplaint' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyOwnerComplaintDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyOwnerComplaint | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyOwnerComplaint(params) { | |
| 15 | + this.$refs.simplifyOwnerComplaint.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerMember.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <el-row class="margin-top"> | |
| 4 | + <el-col :span="20"></el-col> | |
| 5 | + <el-col :span="4" v-if="simplifyOwnerMemberInfo.ownerId"> | |
| 6 | + <el-button type="primary" size="small" @click="openAddMemberModel"> | |
| 7 | + <i class="el-icon-plus"></i>{{ $t('simplifyOwnerMember.addMember') }} | |
| 8 | + </el-button> | |
| 9 | + </el-col> | |
| 10 | + </el-row> | |
| 11 | + | |
| 12 | + <el-table | |
| 13 | + :data="simplifyOwnerMemberInfo.members" | |
| 14 | + style="width: 100%; margin-top: 10px" | |
| 15 | + border> | |
| 16 | + <el-table-column prop="memberId" :label="$t('simplifyOwnerMember.memberId')" align="center"></el-table-column> | |
| 17 | + <el-table-column prop="name" :label="$t('simplifyOwnerMember.name')" align="center"></el-table-column> | |
| 18 | + <el-table-column prop="sex" :label="$t('simplifyOwnerMember.gender')" align="center"> | |
| 19 | + <template #default="{row}"> | |
| 20 | + {{row.sex == 0 ? $t('simplifyOwnerMember.male') : $t('simplifyOwnerMember.female')}} | |
| 21 | + </template> | |
| 22 | + </el-table-column> | |
| 23 | + <el-table-column prop="ownerTypeName" :label="$t('simplifyOwnerMember.type')" align="center"></el-table-column> | |
| 24 | + <el-table-column prop="idCard" :label="$t('simplifyOwnerMember.idCard')" align="center"></el-table-column> | |
| 25 | + <el-table-column prop="link" :label="$t('simplifyOwnerMember.contact')" align="center"></el-table-column> | |
| 26 | + <el-table-column prop="userName" :label="$t('simplifyOwnerMember.creator')" align="center"></el-table-column> | |
| 27 | + <el-table-column prop="remark" :label="$t('simplifyOwnerMember.remark')" align="center"></el-table-column> | |
| 28 | + <el-table-column | |
| 29 | + v-for="(item,index) in simplifyOwnerMemberInfo.listColumns" | |
| 30 | + :key="index" | |
| 31 | + :label="item" | |
| 32 | + align="center"> | |
| 33 | + <template #default="{row}"> | |
| 34 | + {{row.listValues[index]}} | |
| 35 | + </template> | |
| 36 | + </el-table-column> | |
| 37 | + <el-table-column :label="$t('simplifyOwnerMember.operation')" align="center"> | |
| 38 | + <template #default="{row}"> | |
| 39 | + <el-button type="text" @click="_openEditOwnerModel(row)"> | |
| 40 | + {{ $t('simplifyOwnerMember.edit') }} | |
| 41 | + </el-button> | |
| 42 | + <el-button type="text" @click="_openDeleteOwnerModel(row)"> | |
| 43 | + {{ $t('simplifyOwnerMember.delete') }} | |
| 44 | + </el-button> | |
| 45 | + </template> | |
| 46 | + </el-table-column> | |
| 47 | + </el-table> | |
| 48 | + | |
| 49 | + <el-pagination | |
| 50 | + @current-change="handleCurrentChange" | |
| 51 | + :current-page="currentPage" | |
| 52 | + :page-size="pageSize" | |
| 53 | + layout="total, prev, pager, next" | |
| 54 | + :total="total"> | |
| 55 | + </el-pagination> | |
| 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> | |
| 60 | + </div> | |
| 61 | +</template> | |
| 62 | + | |
| 63 | +<script> | |
| 64 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 65 | +import { queryOwnerMembers } from '@/api/simplify/simplifyOwnerMemberApi' | |
| 66 | +import AddOwnerMember from '@/components/owner/addOwnerMember' | |
| 67 | +import EditOwnerMember from '@/components/owner/editOwnerMember' | |
| 68 | +import DeleteOwner from '@/components/owner/deleteOwner' | |
| 69 | + | |
| 70 | +export default { | |
| 71 | + name: 'SimplifyOwnerMember', | |
| 72 | + components: { | |
| 73 | + AddOwnerMember, | |
| 74 | + EditOwnerMember, | |
| 75 | + DeleteOwner | |
| 76 | + }, | |
| 77 | + data() { | |
| 78 | + return { | |
| 79 | + simplifyOwnerMemberInfo: { | |
| 80 | + members: [], | |
| 81 | + ownerId: '', | |
| 82 | + total: 0, | |
| 83 | + records: 1, | |
| 84 | + listColumns: [] | |
| 85 | + }, | |
| 86 | + currentPage: 1, | |
| 87 | + pageSize: 10, | |
| 88 | + total: 0 | |
| 89 | + } | |
| 90 | + }, | |
| 91 | + created() { | |
| 92 | + this.communityId = getCommunityId() | |
| 93 | + this.getSimplifyOwnerMemberColumns() | |
| 94 | + this.initEvents() | |
| 95 | + }, | |
| 96 | + methods: { | |
| 97 | + initEvents() { | |
| 98 | + this.$on('switch', this.handleSwitch) | |
| 99 | + }, | |
| 100 | + handleSwitch(param) { | |
| 101 | + if (param.ownerId == '') return | |
| 102 | + this.clearSimplifyOwnerMemberInfo() | |
| 103 | + Object.assign(this.simplifyOwnerMemberInfo, param) | |
| 104 | + this.listSimplifyOwnerMember(this.currentPage, this.pageSize) | |
| 105 | + }, | |
| 106 | + handleCurrentChange(val) { | |
| 107 | + this.currentPage = val | |
| 108 | + this.listSimplifyOwnerMember(val, this.pageSize) | |
| 109 | + }, | |
| 110 | + listSimplifyOwnerMember(page, rows) { | |
| 111 | + const params = { | |
| 112 | + page, | |
| 113 | + row: rows, | |
| 114 | + ownerId: this.simplifyOwnerMemberInfo.ownerId, | |
| 115 | + communityId: this.communityId | |
| 116 | + } | |
| 117 | + | |
| 118 | + queryOwnerMembers(params).then(res => { | |
| 119 | + this.simplifyOwnerMemberInfo.members = res.data | |
| 120 | + this.dealSimplifyOwnerMemberAttr(res.data) | |
| 121 | + this.total = res.records | |
| 122 | + }) | |
| 123 | + }, | |
| 124 | + openAddMemberModel() { | |
| 125 | + this.$refs.addOwnerMember.open({ownerId: this.simplifyOwnerMemberInfo.ownerId}) | |
| 126 | + }, | |
| 127 | + _openDeleteOwnerModel(member) { | |
| 128 | + member.ownerId = this.simplifyOwnerMemberInfo.ownerId | |
| 129 | + this.$refs.deleteOwner.open(member) | |
| 130 | + }, | |
| 131 | + _openEditOwnerModel(member) { | |
| 132 | + member.ownerId = this.simplifyOwnerMemberInfo.ownerId | |
| 133 | + this.$refs.editOwnerMember.open(member) | |
| 134 | + }, | |
| 135 | + clearSimplifyOwnerMemberInfo() { | |
| 136 | + const listColumns = this.simplifyOwnerMemberInfo.listColumns | |
| 137 | + this.simplifyOwnerMemberInfo = { | |
| 138 | + members: [], | |
| 139 | + ownerId: '', | |
| 140 | + listColumns | |
| 141 | + } | |
| 142 | + }, | |
| 143 | + dealSimplifyOwnerMemberAttr(owners) { | |
| 144 | + owners.forEach(item => { | |
| 145 | + this.getSimplifyOwnerMemberColumnsValue(item) | |
| 146 | + }) | |
| 147 | + }, | |
| 148 | + getSimplifyOwnerMemberColumnsValue(owner) { | |
| 149 | + owner.listValues = [] | |
| 150 | + if (!owner.ownerAttrDtos || owner.ownerAttrDtos.length < 1) { | |
| 151 | + this.simplifyOwnerMemberInfo.listColumns.forEach(() => { | |
| 152 | + owner.listValues.push('') | |
| 153 | + }) | |
| 154 | + return | |
| 155 | + } | |
| 156 | + | |
| 157 | + this.simplifyOwnerMemberInfo.listColumns.forEach(value => { | |
| 158 | + let tmpValue = '' | |
| 159 | + owner.ownerAttrDtos.forEach(attrItem => { | |
| 160 | + if (value == attrItem.specName) { | |
| 161 | + tmpValue = attrItem.valueName | |
| 162 | + } | |
| 163 | + }) | |
| 164 | + owner.listValues.push(tmpValue) | |
| 165 | + }) | |
| 166 | + }, | |
| 167 | + getSimplifyOwnerMemberColumns() { | |
| 168 | + this.simplifyOwnerMemberInfo.listColumns = [] | |
| 169 | + // Implement get attr spec logic | |
| 170 | + } | |
| 171 | + } | |
| 172 | +} | |
| 173 | +</script> | |
| 174 | + | |
| 175 | +<style scoped> | |
| 176 | +.margin-top { | |
| 177 | + margin-top: 10px; | |
| 178 | +} | |
| 179 | +</style> | |
| 0 | 180 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerMemberDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-owner-member ref="simplifyOwnerMember"></simplify-owner-member> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyOwnerMember from '@/components/simplify/simplifyOwnerMember' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyOwnerMemberDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyOwnerMember | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyOwnerMember(params) { | |
| 15 | + this.$refs.simplifyOwnerMember.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerRepair.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <el-row class="margin-top"> | |
| 4 | + <el-col :span="20"></el-col> | |
| 5 | + <el-col :span="4" v-if="simplifyOwnerRepairInfo.roomId != ''"> | |
| 6 | + <el-button type="primary" size="small" @click="_openAddOwnerRepairModal"> | |
| 7 | + <i class="el-icon-plus"></i>{{ $t('simplifyOwnerRepair.phoneRepair') }} | |
| 8 | + </el-button> | |
| 9 | + </el-col> | |
| 10 | + </el-row> | |
| 11 | + | |
| 12 | + <el-table | |
| 13 | + :data="simplifyOwnerRepairInfo.repairs" | |
| 14 | + style="width: 100%; margin-top: 10px" | |
| 15 | + border> | |
| 16 | + <el-table-column prop="repairId" :label="$t('simplifyOwnerRepair.workOrderCode')" align="center"></el-table-column> | |
| 17 | + <el-table-column prop="repairObjName" :label="$t('simplifyOwnerRepair.location')" align="center"></el-table-column> | |
| 18 | + <el-table-column prop="repairTypeName" :label="$t('simplifyOwnerRepair.repairType')" align="center"></el-table-column> | |
| 19 | + <el-table-column prop="repairName" :label="$t('simplifyOwnerRepair.reporter')" align="center"></el-table-column> | |
| 20 | + <el-table-column prop="tel" :label="$t('simplifyOwnerRepair.contact')" align="center"></el-table-column> | |
| 21 | + <el-table-column prop="appointmentTime" :label="$t('simplifyOwnerRepair.appointmentTime')" align="center"></el-table-column> | |
| 22 | + <el-table-column prop="stateName" :label="$t('simplifyOwnerRepair.status')" align="center"></el-table-column> | |
| 23 | + <el-table-column :label="$t('simplifyOwnerRepair.operation')" align="center"> | |
| 24 | + <template #default="{row}"> | |
| 25 | + <el-button type="text" @click="_openRepairDetail(row)"> | |
| 26 | + {{ $t('simplifyOwnerRepair.details') }} | |
| 27 | + </el-button> | |
| 28 | + </template> | |
| 29 | + </el-table-column> | |
| 30 | + </el-table> | |
| 31 | + | |
| 32 | + <el-pagination | |
| 33 | + @current-change="handleCurrentChange" | |
| 34 | + :current-page="currentPage" | |
| 35 | + :page-size="pageSize" | |
| 36 | + layout="total, prev, pager, next" | |
| 37 | + :total="total"> | |
| 38 | + </el-pagination> | |
| 39 | + </div> | |
| 40 | +</template> | |
| 41 | + | |
| 42 | +<script> | |
| 43 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 44 | +import { listOwnerRepairs } from '@/api/simplify/simplifyOwnerRepairApi' | |
| 45 | + | |
| 46 | +export default { | |
| 47 | + name: 'SimplifyOwnerRepair', | |
| 48 | + data() { | |
| 49 | + return { | |
| 50 | + simplifyOwnerRepairInfo: { | |
| 51 | + repairs: [], | |
| 52 | + ownerId: '', | |
| 53 | + roomId: '', | |
| 54 | + total: 0, | |
| 55 | + records: 1, | |
| 56 | + roomName: '' | |
| 57 | + }, | |
| 58 | + currentPage: 1, | |
| 59 | + pageSize: 10, | |
| 60 | + total: 0 | |
| 61 | + } | |
| 62 | + }, | |
| 63 | + created() { | |
| 64 | + this.communityId = getCommunityId() | |
| 65 | + this.initEvents() | |
| 66 | + }, | |
| 67 | + methods: { | |
| 68 | + initEvents() { | |
| 69 | + this.$on('switch', this.handleSwitch) | |
| 70 | + }, | |
| 71 | + handleSwitch(param) { | |
| 72 | + if (param.roomId == '') return | |
| 73 | + this.clearSimplifyOwnerRepairInfo() | |
| 74 | + Object.assign(this.simplifyOwnerRepairInfo, param) | |
| 75 | + this.listSimplifyOwnerRepair(this.currentPage, this.pageSize) | |
| 76 | + }, | |
| 77 | + handleCurrentChange(val) { | |
| 78 | + this.currentPage = val | |
| 79 | + this.listSimplifyOwnerRepair(val, this.pageSize) | |
| 80 | + }, | |
| 81 | + listSimplifyOwnerRepair(page, row) { | |
| 82 | + const params = { | |
| 83 | + page, | |
| 84 | + row, | |
| 85 | + communityId: this.communityId, | |
| 86 | + repairObjId: this.simplifyOwnerRepairInfo.roomId | |
| 87 | + } | |
| 88 | + | |
| 89 | + listOwnerRepairs(params).then(res => { | |
| 90 | + this.simplifyOwnerRepairInfo.repairs = res.data | |
| 91 | + this.total = res.records | |
| 92 | + }) | |
| 93 | + }, | |
| 94 | + _openRepairDetail(repairPool) { | |
| 95 | + this.$router.push(`/pages/property/ownerRepairDetail?repairId=${repairPool.repairId}`) | |
| 96 | + }, | |
| 97 | + clearSimplifyOwnerRepairInfo() { | |
| 98 | + this.simplifyOwnerRepairInfo = { | |
| 99 | + repairs: [], | |
| 100 | + ownerId: '', | |
| 101 | + roomId: '', | |
| 102 | + total: 0, | |
| 103 | + records: 1, | |
| 104 | + roomName: '' | |
| 105 | + } | |
| 106 | + }, | |
| 107 | + _openAddOwnerRepairModal() { | |
| 108 | + this.$router.push(`/pages/common/addRoomRepair?roomId=${this.simplifyOwnerRepairInfo.roomId}&roomName=${this.simplifyOwnerRepairInfo.roomName}`) | |
| 109 | + } | |
| 110 | + } | |
| 111 | +} | |
| 112 | +</script> | |
| 113 | + | |
| 114 | +<style scoped> | |
| 115 | +.margin-top { | |
| 116 | + margin-top: 10px; | |
| 117 | +} | |
| 118 | +</style> | |
| 0 | 119 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerRepairDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-owner-repair ref="simplifyOwnerRepair"></simplify-owner-repair> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyOwnerRepair from '@/components/simplify/simplifyOwnerRepair' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyOwnerRepairDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyOwnerRepair | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyOwnerRepair(params) { | |
| 15 | + this.$refs.simplifyOwnerRepair.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerTransactionCar.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <el-row class="margin-top"> | |
| 4 | + <el-col :span="4"> | |
| 5 | + <el-select v-model="simplifyOwnerTransactionCarInfo.carId" @change="changeTransactionCar"> | |
| 6 | + <el-option | |
| 7 | + v-for="(item,index) in simplifyOwnerTransactionCarInfo.ownerCars" | |
| 8 | + :key="index" | |
| 9 | + :label="item.carNum" | |
| 10 | + :value="item.carId" | |
| 11 | + ></el-option> | |
| 12 | + </el-select> | |
| 13 | + </el-col> | |
| 14 | + <el-col :span="20"></el-col> | |
| 15 | + </el-row> | |
| 16 | + <div> | |
| 17 | + <el-table | |
| 18 | + :data="simplifyOwnerTransactionCarInfo.machineTranslates" | |
| 19 | + style="margin-top:10px" | |
| 20 | + border | |
| 21 | + > | |
| 22 | + <el-table-column prop="machineTranslateId" :label="$t('simplifyOwnerTransactionCar.syncId')" align="center"></el-table-column> | |
| 23 | + <el-table-column prop="typeCdName" :label="$t('simplifyOwnerTransactionCar.objectType')" align="center"></el-table-column> | |
| 24 | + <el-table-column prop="objName" :label="$t('simplifyOwnerTransactionCar.objectName')" align="center"></el-table-column> | |
| 25 | + <el-table-column prop="machineCmdName" :label="$t('simplifyOwnerTransactionCar.command')" 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> | |
| 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"> | |
| 30 | + <template slot-scope="scope"> | |
| 31 | + <el-button | |
| 32 | + size="mini" | |
| 33 | + @click="_openEditCarTranslateModel(scope.row)" | |
| 34 | + >{{$t('simplifyOwnerTransactionCar.resync')}}</el-button> | |
| 35 | + </template> | |
| 36 | + </el-table-column> | |
| 37 | + </el-table> | |
| 38 | + <el-pagination | |
| 39 | + @current-change="handleCurrentChange" | |
| 40 | + :current-page="currentPage" | |
| 41 | + :page-size="pageSize" | |
| 42 | + layout="total, prev, pager, next" | |
| 43 | + :total="total" | |
| 44 | + class="pagination" | |
| 45 | + ></el-pagination> | |
| 46 | + </div> | |
| 47 | + </div> | |
| 48 | +</template> | |
| 49 | + | |
| 50 | +<script> | |
| 51 | +import { listMachineTranslates, queryOwnerCars } from '@/api/simplify/simplifyOwnerTransactionCarApi' | |
| 52 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 53 | + | |
| 54 | +export default { | |
| 55 | + name: 'SimplifyOwnerTransactionCar', | |
| 56 | + data() { | |
| 57 | + return { | |
| 58 | + simplifyOwnerTransactionCarInfo: { | |
| 59 | + machineTranslates: [], | |
| 60 | + ownerId: '', | |
| 61 | + carId: '', | |
| 62 | + ownerCars: [] | |
| 63 | + }, | |
| 64 | + currentPage: 1, | |
| 65 | + pageSize: 10, | |
| 66 | + total: 0, | |
| 67 | + communityId: '' | |
| 68 | + } | |
| 69 | + }, | |
| 70 | + created() { | |
| 71 | + this.communityId = getCommunityId() | |
| 72 | + this.$on('switch', this.handleSwitch) | |
| 73 | + this.$on('listMachineTranslate', this.listMachineTranslates) | |
| 74 | + }, | |
| 75 | + methods: { | |
| 76 | + handleSwitch(params) { | |
| 77 | + if (!params.ownerId) return | |
| 78 | + this.clearSimplifyOwnerTransactionCarInfo() | |
| 79 | + Object.assign(this.simplifyOwnerTransactionCarInfo, params) | |
| 80 | + this.listTransactionOwnerCar().then(() => { | |
| 81 | + this.listMachineTranslates() | |
| 82 | + }) | |
| 83 | + }, | |
| 84 | + async listMachineTranslates() { | |
| 85 | + try { | |
| 86 | + const params = { | |
| 87 | + page: this.currentPage, | |
| 88 | + row: this.pageSize, | |
| 89 | + communityId: this.communityId, | |
| 90 | + objId: this.simplifyOwnerTransactionCarInfo.carId, | |
| 91 | + typeCd: '4455' | |
| 92 | + } | |
| 93 | + const res = await listMachineTranslates(params) | |
| 94 | + this.simplifyOwnerTransactionCarInfo.machineTranslates = res.data.machineTranslates | |
| 95 | + this.total = res.data.total | |
| 96 | + } catch (error) { | |
| 97 | + console.error('Failed to load machine translates:', error) | |
| 98 | + } | |
| 99 | + }, | |
| 100 | + async listTransactionOwnerCar() { | |
| 101 | + try { | |
| 102 | + const params = { | |
| 103 | + page: 1, | |
| 104 | + row: 50, | |
| 105 | + ownerId: this.simplifyOwnerTransactionCarInfo.ownerId, | |
| 106 | + communityId: this.communityId | |
| 107 | + } | |
| 108 | + const res = await queryOwnerCars(params) | |
| 109 | + this.simplifyOwnerTransactionCarInfo.ownerCars = res.data | |
| 110 | + if (res.data.length > 0) { | |
| 111 | + this.simplifyOwnerTransactionCarInfo.carId = res.data[0].carId | |
| 112 | + } | |
| 113 | + } catch (error) { | |
| 114 | + console.error('Failed to load owner cars:', error) | |
| 115 | + } | |
| 116 | + }, | |
| 117 | + changeTransactionCar() { | |
| 118 | + const car = this.simplifyOwnerTransactionCarInfo.ownerCars.find( | |
| 119 | + item => item.carId === this.simplifyOwnerTransactionCarInfo.carId | |
| 120 | + ) | |
| 121 | + if (!car) return | |
| 122 | + this.listMachineTranslates() | |
| 123 | + }, | |
| 124 | + clearSimplifyOwnerTransactionCarInfo() { | |
| 125 | + this.simplifyOwnerTransactionCarInfo = { | |
| 126 | + machineTranslates: [], | |
| 127 | + ownerId: '', | |
| 128 | + carId: '', | |
| 129 | + ownerCars: [] | |
| 130 | + } | |
| 131 | + }, | |
| 132 | + handleCurrentChange(val) { | |
| 133 | + this.currentPage = val | |
| 134 | + this.listMachineTranslates() | |
| 135 | + }, | |
| 136 | + _openEditCarTranslateModel(machineTranslate) { | |
| 137 | + this.$emit('edit-machine-translate', machineTranslate) | |
| 138 | + } | |
| 139 | + } | |
| 140 | +} | |
| 141 | +</script> | |
| 142 | + | |
| 143 | +<style scoped> | |
| 144 | +.margin-top { | |
| 145 | + margin-top: 15px; | |
| 146 | +} | |
| 147 | +.pagination { | |
| 148 | + margin-top: 15px; | |
| 149 | + text-align: right; | |
| 150 | +} | |
| 151 | +</style> | |
| 0 | 152 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyOwnerTransactionCarDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-owner-transaction-car ref="simplifyOwnerTransactionCar"></simplify-owner-transaction-car> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyOwnerTransactionCar from '@/components/simplify/simplifyOwnerTransactionCar' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyOwnerTransactionCarDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyOwnerTransactionCar | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyOwnerTransactionCar(params) { | |
| 15 | + this.$refs.simplifyOwnerTransactionCar.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyShopsHireLog.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div> | |
| 3 | + <el-table :data="simplifyShopsHireLogInfo.owners" style="margin-top:10px" border> | |
| 4 | + <el-table-column prop="name" :label="$t('simplifyShopsHireLog.ownerName')" align="center"></el-table-column> | |
| 5 | + <el-table-column prop="link" :label="$t('simplifyShopsHireLog.ownerPhone')" align="center"></el-table-column> | |
| 6 | + <el-table-column prop="startTime" :label="$t('simplifyShopsHireLog.startTime')" align="center"></el-table-column> | |
| 7 | + <el-table-column prop="endTime" :label="$t('simplifyShopsHireLog.endTime')" align="center"></el-table-column> | |
| 8 | + <el-table-column prop="createTime" :label="$t('simplifyShopsHireLog.createTime')" align="center"></el-table-column> | |
| 9 | + <el-table-column :label="$t('simplifyShopsHireLog.operation')" align="center"> | |
| 10 | + <template slot-scope="scope"> | |
| 11 | + <el-button size="mini" @click="_openShopsOwnerFee(scope.row)">{{$t('simplifyShopsHireLog.viewFee')}}</el-button> | |
| 12 | + </template> | |
| 13 | + </el-table-column> | |
| 14 | + </el-table> | |
| 15 | + <el-pagination | |
| 16 | + @current-change="handleCurrentChange" | |
| 17 | + :current-page="currentPage" | |
| 18 | + :page-size="pageSize" | |
| 19 | + layout="total, prev, pager, next" | |
| 20 | + :total="total" | |
| 21 | + class="pagination" | |
| 22 | + ></el-pagination> | |
| 23 | + </div> | |
| 24 | +</template> | |
| 25 | + | |
| 26 | +<script> | |
| 27 | +import { queryShopsHireLog } from '@/api/simplify/simplifyShopsHireLogApi' | |
| 28 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 29 | + | |
| 30 | +export default { | |
| 31 | + name: 'SimplifyShopsHireLog', | |
| 32 | + data() { | |
| 33 | + return { | |
| 34 | + simplifyShopsHireLogInfo: { | |
| 35 | + owners: [], | |
| 36 | + ownerId: '', | |
| 37 | + roomId: '' | |
| 38 | + }, | |
| 39 | + currentPage: 1, | |
| 40 | + pageSize: 10, | |
| 41 | + total: 0, | |
| 42 | + communityId: '' | |
| 43 | + } | |
| 44 | + }, | |
| 45 | + created() { | |
| 46 | + this.communityId = getCommunityId() | |
| 47 | + this.$on('switch', this.handleSwitch) | |
| 48 | + this.$on('listMachineTranslate', this.listShopsHireLog) | |
| 49 | + }, | |
| 50 | + methods: { | |
| 51 | + handleSwitch(params) { | |
| 52 | + if (!params.roomId) return | |
| 53 | + this.clearSimplifyShopsHireLogInfo() | |
| 54 | + Object.assign(this.simplifyShopsHireLogInfo, params) | |
| 55 | + this.listShopsHireLog() | |
| 56 | + }, | |
| 57 | + async listShopsHireLog() { | |
| 58 | + try { | |
| 59 | + const params = { | |
| 60 | + page: this.currentPage, | |
| 61 | + row: this.pageSize, | |
| 62 | + communityId: this.communityId, | |
| 63 | + roomId: this.simplifyShopsHireLogInfo.roomId | |
| 64 | + } | |
| 65 | + const res = await queryShopsHireLog(params) | |
| 66 | + this.simplifyShopsHireLogInfo.owners = res.data | |
| 67 | + this.total = res.data.total | |
| 68 | + } catch (error) { | |
| 69 | + console.error('Failed to load shops hire log:', error) | |
| 70 | + } | |
| 71 | + }, | |
| 72 | + _openShopsOwnerFee(owner) { | |
| 73 | + this.$router.push({ | |
| 74 | + path: '/pages/property/listRoomFee', | |
| 75 | + query: { | |
| 76 | + roomId: owner.roomId, | |
| 77 | + ownerId: owner.ownerId, | |
| 78 | + hireOwnerFee: 1 | |
| 79 | + } | |
| 80 | + }) | |
| 81 | + }, | |
| 82 | + clearSimplifyShopsHireLogInfo() { | |
| 83 | + this.simplifyShopsHireLogInfo = { | |
| 84 | + owners: [], | |
| 85 | + ownerId: '', | |
| 86 | + roomId: '' | |
| 87 | + } | |
| 88 | + }, | |
| 89 | + handleCurrentChange(val) { | |
| 90 | + this.currentPage = val | |
| 91 | + this.listShopsHireLog() | |
| 92 | + } | |
| 93 | + } | |
| 94 | +} | |
| 95 | +</script> | |
| 96 | + | |
| 97 | +<style scoped> | |
| 98 | +.pagination { | |
| 99 | + margin-top: 15px; | |
| 100 | + text-align: right; | |
| 101 | +} | |
| 102 | +</style> | |
| 0 | 103 | \ No newline at end of file | ... | ... |
src/components/simplify/simplifyShopsHireLogDemo.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <simplify-shops-hire-log ref="simplifyShopsHireLog"></simplify-shops-hire-log> | |
| 3 | +</template> | |
| 4 | + | |
| 5 | +<script> | |
| 6 | +import SimplifyShopsHireLog from '@/components/simplify/simplifyShopsHireLog' | |
| 7 | + | |
| 8 | +export default { | |
| 9 | + name: 'SimplifyShopsHireLogDemo', | |
| 10 | + components: { | |
| 11 | + SimplifyShopsHireLog | |
| 12 | + }, | |
| 13 | + methods: { | |
| 14 | + openSimplifyShopsHireLog(params) { | |
| 15 | + this.$refs.simplifyShopsHireLog.$emit('switch', params) | |
| 16 | + } | |
| 17 | + } | |
| 18 | +} | |
| 19 | +</script> | |
| 0 | 20 | \ No newline at end of file | ... | ... |
src/i18n/feeI18n.js
| ... | ... | @@ -26,6 +26,7 @@ import { messages as feeSummaryMessages } from '../views/fee/feeSummaryLang' |
| 26 | 26 | import { messages as roomCreateFeeMessages } from '../views/fee/roomCreateFeeLang.js' |
| 27 | 27 | import { messages as propertyFeeMessages } from '../views/fee/propertyFeeLang' |
| 28 | 28 | import { messages as batchPayFeeOrderMessages } from '../views/fee/batchPayFeeOrderLang' |
| 29 | +import { messages as simplifyAcceptanceMessages } from '../views/simplify/simplifyAcceptanceLang.js' | |
| 29 | 30 | |
| 30 | 31 | export const messages = { |
| 31 | 32 | en: { |
| ... | ... | @@ -57,6 +58,7 @@ export const messages = { |
| 57 | 58 | ...roomCreateFeeMessages.en, |
| 58 | 59 | ...propertyFeeMessages.en, |
| 59 | 60 | ...batchPayFeeOrderMessages.en, |
| 61 | + ...simplifyAcceptanceMessages.en, | |
| 60 | 62 | }, |
| 61 | 63 | zh: { |
| 62 | 64 | ...contractCreateFeeMessages.zh, |
| ... | ... | @@ -87,5 +89,6 @@ export const messages = { |
| 87 | 89 | ...roomCreateFeeMessages.zh, |
| 88 | 90 | ...propertyFeeMessages.zh, |
| 89 | 91 | ...batchPayFeeOrderMessages.zh, |
| 92 | + ...simplifyAcceptanceMessages.zh, | |
| 90 | 93 | } |
| 91 | 94 | } |
| 92 | 95 | \ No newline at end of file | ... | ... |
src/router/feeRouter.js
| ... | ... | @@ -120,9 +120,13 @@ export default [ |
| 120 | 120 | component: () => import('@/views/fee/propertyFeeList.vue') |
| 121 | 121 | }, |
| 122 | 122 | { |
| 123 | - path:'/views/fee/batchPayFeeOrder', | |
| 124 | - name:'/views/fee/batchPayFeeOrder', | |
| 123 | + path: '/views/fee/batchPayFeeOrder', | |
| 124 | + name: '/views/fee/batchPayFeeOrder', | |
| 125 | 125 | component: () => import('@/views/fee/batchPayFeeOrderList.vue') |
| 126 | - }, | |
| 127 | - | |
| 126 | + }, | |
| 127 | + { | |
| 128 | + path: '/pages/property/simplifyAcceptance', | |
| 129 | + name: '/pages/property/simplifyAcceptance', | |
| 130 | + component: () => import('@/views/simplify/simplifyAcceptanceList.vue') | |
| 131 | + }, | |
| 128 | 132 | ] |
| 129 | 133 | \ No newline at end of file | ... | ... |
src/views/simplify/simplifyAcceptanceLang.js
0 → 100644
| 1 | +export const messages = { | |
| 2 | + en: { | |
| 3 | + simplifyAcceptance: { | |
| 4 | + houseNumber: 'House Number', | |
| 5 | + ownerName: 'Owner Name', | |
| 6 | + ownerPhone: 'Owner Phone', | |
| 7 | + ownerIdCard: 'Owner ID Card', | |
| 8 | + licensePlate: 'License Plate', | |
| 9 | + memberName: 'Member Name', | |
| 10 | + memberPhone: 'Member Phone', | |
| 11 | + memberIdCard: 'Member ID Card', | |
| 12 | + shopNumber: 'Shop Number', | |
| 13 | + contractNumber: 'Contract Number', | |
| 14 | + search: 'Search', | |
| 15 | + selectHouse: 'Select House', | |
| 16 | + moreOperations: 'More Operations', | |
| 17 | + handover: 'Handover', | |
| 18 | + exitRoom: 'Exit Room', | |
| 19 | + ownerId: 'Owner ID:', | |
| 20 | + ownerNameLabel: 'Owner Name:', | |
| 21 | + contactPhone: 'Contact Phone:', | |
| 22 | + idCard: 'ID Card:', | |
| 23 | + checkInDate: 'Check-in Date:', | |
| 24 | + gender: 'Gender:', | |
| 25 | + male: 'Male', | |
| 26 | + female: 'Female', | |
| 27 | + ownerRemark: 'Owner Remark:', | |
| 28 | + houseNumberLabel: 'House Number:', | |
| 29 | + shopNumberLabel: 'Shop Number:', | |
| 30 | + houseArea: 'House Area:', | |
| 31 | + houseType: 'House Type:', | |
| 32 | + layout: 'Layout:', | |
| 33 | + houseStatus: 'House Status:', | |
| 34 | + indoorArea: 'Indoor Area:', | |
| 35 | + rent: 'Rent:', | |
| 36 | + houseRemark: 'House Remark:', | |
| 37 | + accountBalance: 'Account Balance:', | |
| 38 | + preDeposit: 'Pre-deposit', | |
| 39 | + depositAmount: 'Deposit Amount:', | |
| 40 | + refundDeposit: 'Refund Deposit', | |
| 41 | + inputSearchCondition: 'Please enter search condition', | |
| 42 | + selectHouseFirst: 'Please select a house first', | |
| 43 | + houseNumberPlaceholder: 'Please enter house number like 1-1-1', | |
| 44 | + ownerNamePlaceholder: 'Please enter owner name', | |
| 45 | + ownerPhonePlaceholder: 'Please enter owner phone', | |
| 46 | + ownerIdCardPlaceholder: 'Please enter owner ID card', | |
| 47 | + licensePlatePlaceholder: 'Please enter license plate', | |
| 48 | + memberNamePlaceholder: 'Please enter member name', | |
| 49 | + memberPhonePlaceholder: 'Please enter member phone', | |
| 50 | + memberIdCardPlaceholder: 'Please enter member ID card', | |
| 51 | + shopNumberPlaceholder: 'Please enter shop number like 1-1', | |
| 52 | + contractNumberPlaceholder: 'Please enter contract number', | |
| 53 | + houseFee: 'House Fee', | |
| 54 | + parkingFee: 'Parking Fee', | |
| 55 | + paymentHistory: 'Payment History', | |
| 56 | + house: 'House', | |
| 57 | + contract: 'Contract', | |
| 58 | + familyMember: 'Family Member', | |
| 59 | + vehicle: 'Vehicle', | |
| 60 | + paymentReminder: 'Payment Reminder', | |
| 61 | + ownerFeedback: 'Owner Feedback', | |
| 62 | + repairOrder: 'Repair Order', | |
| 63 | + complaintOrder: 'Complaint Order', | |
| 64 | + ownerSync: 'Owner Sync', | |
| 65 | + vehicleSync: 'Vehicle Sync', | |
| 66 | + reprintReceipt: 'Reprint Receipt', | |
| 67 | + historyOwner: 'History Owner', | |
| 68 | + meterReadingRecord: 'Meter Reading Record' | |
| 69 | + }, | |
| 70 | + finishFee: { | |
| 71 | + confirmOperation: 'Please confirm your operation', | |
| 72 | + confirmFinishFee: 'Confirm to finish the fee? Once finished, it cannot be re-enabled. Please operate carefully!', | |
| 73 | + cancel: 'Cancel', | |
| 74 | + confirm: 'Confirm', | |
| 75 | + successMessage: 'Fee finished successfully', | |
| 76 | + errorMessage: 'Failed to finish fee' | |
| 77 | + }, | |
| 78 | + simplifyCarFee: { | |
| 79 | + buyMonthCard: 'Buy Monthly Card', | |
| 80 | + batchPayment: 'Batch Payment', | |
| 81 | + createFee: 'Create Fee', | |
| 82 | + feeItem: 'Fee Item', | |
| 83 | + feeFlag: 'Fee Flag', | |
| 84 | + feeType: 'Fee Type', | |
| 85 | + amountReceivable: 'Amount Receivable', | |
| 86 | + accountingTime: 'Accounting Time', | |
| 87 | + receivablePeriod: 'Receivable Period', | |
| 88 | + description: 'Description', | |
| 89 | + status: 'Status', | |
| 90 | + operation: 'Operation', | |
| 91 | + lastDegree: 'Last Degree', | |
| 92 | + currentDegree: 'Current Degree', | |
| 93 | + unitPrice: 'Unit Price', | |
| 94 | + additionalFee: 'Additional Fee', | |
| 95 | + algorithm: 'Algorithm', | |
| 96 | + usage: 'Usage', | |
| 97 | + fixedFee: 'Fixed Fee', | |
| 98 | + payment: 'Payment', | |
| 99 | + paymentHistory: 'Payment History', | |
| 100 | + moreOperations: 'More Operations', | |
| 101 | + cancelFee: 'Cancel Fee', | |
| 102 | + manualFinish: 'Manual Finish', | |
| 103 | + feeChange: 'Fee Change', | |
| 104 | + details: 'Details', | |
| 105 | + note1: 'Note: "-" in receivable end time means not yet receivable or payment has ended', | |
| 106 | + note2: 'Amount receivable -1 generally means there is an error in the fee item formula setting, please check', | |
| 107 | + arrearsSubtotal: 'Arrears Subtotal', | |
| 108 | + parkingLot: ' Parking Lot ', | |
| 109 | + parkingSpace: ' Parking Space', | |
| 110 | + owner: 'Owner', | |
| 111 | + phone: 'Phone' | |
| 112 | + }, | |
| 113 | + simplifyContract: { | |
| 114 | + contractName: 'Contract Name', | |
| 115 | + contractCode: 'Contract Code', | |
| 116 | + parentContractCode: 'Parent Contract Code', | |
| 117 | + contractType: 'Contract Type', | |
| 118 | + startTime: 'Start Time', | |
| 119 | + endTime: 'End Time', | |
| 120 | + status: 'Status', | |
| 121 | + operation: 'Operation', | |
| 122 | + fee: 'Fee', | |
| 123 | + view: 'View', | |
| 124 | + print: 'Print', | |
| 125 | + draftContract: 'Draft Contract' | |
| 126 | + }, | |
| 127 | + simplifyOwnerMember: { | |
| 128 | + addMember: 'Add Member', | |
| 129 | + memberId: 'Member ID', | |
| 130 | + name: 'Name', | |
| 131 | + gender: 'Gender', | |
| 132 | + male: 'Male', | |
| 133 | + female: 'Female', | |
| 134 | + type: 'Type', | |
| 135 | + idCard: 'ID Card', | |
| 136 | + contact: 'Contact', | |
| 137 | + creator: 'Creator', | |
| 138 | + remark: 'Remark', | |
| 139 | + operation: 'Operation', | |
| 140 | + edit: 'Edit', | |
| 141 | + delete: 'Delete' | |
| 142 | + }, | |
| 143 | + simplifyOwnerCar: { | |
| 144 | + addCar: 'Add Vehicle', | |
| 145 | + plateNumber: 'Plate Number', | |
| 146 | + carBrand: 'Car Brand', | |
| 147 | + carType: 'Car Type', | |
| 148 | + color: 'Color', | |
| 149 | + owner: 'Owner', | |
| 150 | + parkingSpace: 'Parking Space', | |
| 151 | + startTime: 'Start Time', | |
| 152 | + endTime: 'End Time', | |
| 153 | + status: 'Status', | |
| 154 | + operation: 'Operation', | |
| 155 | + releaseSpace: 'Release Space', | |
| 156 | + renewSpace: 'Renew Space', | |
| 157 | + edit: 'Edit', | |
| 158 | + delete: 'Delete', | |
| 159 | + parkingLot: 'Parking Lot', | |
| 160 | + space: 'Space', | |
| 161 | + none: 'None' | |
| 162 | + }, | |
| 163 | + simplifyOwnerRepair: { | |
| 164 | + phoneRepair: 'Phone Repair', | |
| 165 | + workOrderCode: 'Work Order Code', | |
| 166 | + location: 'Location', | |
| 167 | + repairType: 'Repair Type', | |
| 168 | + reporter: 'Reporter', | |
| 169 | + contact: 'Contact', | |
| 170 | + appointmentTime: 'Appointment Time', | |
| 171 | + status: 'Status', | |
| 172 | + operation: 'Operation', | |
| 173 | + details: 'Details' | |
| 174 | + }, | |
| 175 | + simplifyOwnerComplaint: { | |
| 176 | + complaint: 'Complaint', | |
| 177 | + complaintType: 'Complaint Type', | |
| 178 | + house: 'House', | |
| 179 | + building: 'Building', | |
| 180 | + unit: 'Unit', | |
| 181 | + room: 'Room', | |
| 182 | + complainant: 'Complainant', | |
| 183 | + complainantPhone: 'Complainant Phone', | |
| 184 | + complaintStatus: 'Complaint Status', | |
| 185 | + handler: 'Handler', | |
| 186 | + handlerPhone: 'Handler Phone', | |
| 187 | + operation: 'Operation', | |
| 188 | + details: 'Details', | |
| 189 | + flowChart: 'Flow Chart', | |
| 190 | + none: 'None' | |
| 191 | + }, | |
| 192 | + simplifyOwnerAccessContol: { | |
| 193 | + objectType: 'Object Type', | |
| 194 | + objectName: 'Object Name', | |
| 195 | + command: 'Command', | |
| 196 | + status: 'Status', | |
| 197 | + remark: 'Remark', | |
| 198 | + syncTime: 'Sync Time', | |
| 199 | + operation: 'Operation', | |
| 200 | + resync: 'Resync' | |
| 201 | + }, | |
| 202 | + simplifyOwnerTransactionCar: { | |
| 203 | + syncId: 'Sync ID', | |
| 204 | + objectType: 'Object Type', | |
| 205 | + objectName: 'Object Name', | |
| 206 | + command: 'Command', | |
| 207 | + status: 'Status', | |
| 208 | + remark: 'Remark', | |
| 209 | + syncTime: 'Sync Time', | |
| 210 | + operation: 'Operation', | |
| 211 | + resync: 'Resync' | |
| 212 | + }, | |
| 213 | + simplifyShopsHireLog: { | |
| 214 | + ownerName: 'Owner Name', | |
| 215 | + ownerPhone: 'Owner Phone', | |
| 216 | + startTime: 'Start Time', | |
| 217 | + endTime: 'End Time', | |
| 218 | + createTime: 'Create Time', | |
| 219 | + operation: 'Operation', | |
| 220 | + viewFee: 'View Fee' | |
| 221 | + } | |
| 222 | + }, | |
| 223 | + zh: { | |
| 224 | + simplifyAcceptance: { | |
| 225 | + houseNumber: '房屋号', | |
| 226 | + ownerName: '业主姓名', | |
| 227 | + ownerPhone: '业主电话', | |
| 228 | + ownerIdCard: '业主身份证', | |
| 229 | + licensePlate: '车牌号', | |
| 230 | + memberName: '成员姓名', | |
| 231 | + memberPhone: '成员手机号', | |
| 232 | + memberIdCard: '成员身份证', | |
| 233 | + shopNumber: '商铺号', | |
| 234 | + contractNumber: '合同号', | |
| 235 | + search: '查询', | |
| 236 | + selectHouse: '选择房屋', | |
| 237 | + moreOperations: '更多操作', | |
| 238 | + handover: '交房', | |
| 239 | + exitRoom: '退房', | |
| 240 | + ownerId: '业主编号:', | |
| 241 | + ownerNameLabel: '业主名称:', | |
| 242 | + contactPhone: '联系电话:', | |
| 243 | + idCard: '身份证:', | |
| 244 | + checkInDate: '入住日期:', | |
| 245 | + gender: '性别:', | |
| 246 | + male: '男', | |
| 247 | + female: '女', | |
| 248 | + ownerRemark: '业主备注:', | |
| 249 | + houseNumberLabel: '房屋编号:', | |
| 250 | + shopNumberLabel: '商铺编号:', | |
| 251 | + houseArea: '房屋面积:', | |
| 252 | + houseType: '房屋类型:', | |
| 253 | + layout: '户型:', | |
| 254 | + houseStatus: '房屋状态:', | |
| 255 | + indoorArea: '室内面积:', | |
| 256 | + rent: '租金:', | |
| 257 | + houseRemark: '房屋备注:', | |
| 258 | + accountBalance: '账户余额:', | |
| 259 | + preDeposit: '预存', | |
| 260 | + depositAmount: '押金金额:', | |
| 261 | + refundDeposit: '退押金', | |
| 262 | + inputSearchCondition: '请输入查询条件', | |
| 263 | + selectHouseFirst: '请先选择房屋', | |
| 264 | + houseNumberPlaceholder: '请输入房屋编号 楼栋-单元-房屋 如1-1-1', | |
| 265 | + ownerNamePlaceholder: '请输入业主名称', | |
| 266 | + ownerPhonePlaceholder: '请输入业主手机号', | |
| 267 | + ownerIdCardPlaceholder: '请输入业主身份证', | |
| 268 | + licensePlatePlaceholder: '请输入业主车牌号', | |
| 269 | + memberNamePlaceholder: '请输入家庭成员名称', | |
| 270 | + memberPhonePlaceholder: '请输入家庭成员电话', | |
| 271 | + memberIdCardPlaceholder: '请输入家庭成员身份证', | |
| 272 | + shopNumberPlaceholder: '请输入商铺编号 楼栋-商铺 如1-1', | |
| 273 | + contractNumberPlaceholder: '请输入合同号', | |
| 274 | + houseFee: '房屋费用', | |
| 275 | + parkingFee: '停车费用', | |
| 276 | + paymentHistory: '缴费历史', | |
| 277 | + house: '房屋', | |
| 278 | + contract: '合同', | |
| 279 | + familyMember: '家庭成员', | |
| 280 | + vehicle: '车辆', | |
| 281 | + paymentReminder: '催缴', | |
| 282 | + ownerFeedback: '业主反馈', | |
| 283 | + repairOrder: '报修单', | |
| 284 | + complaintOrder: '投诉单', | |
| 285 | + ownerSync: '业主同步', | |
| 286 | + vehicleSync: '车辆同步', | |
| 287 | + reprintReceipt: '补打收据', | |
| 288 | + historyOwner: '历史业主', | |
| 289 | + meterReadingRecord: '抄表记录' | |
| 290 | + }, | |
| 291 | + finishFee: { | |
| 292 | + confirmOperation: '请确认您的操作', | |
| 293 | + confirmFinishFee: '确定结束费用?结束后无法重新启用,请谨慎操作!', | |
| 294 | + cancel: '点错了', | |
| 295 | + confirm: '结束费用', | |
| 296 | + successMessage: '结束费用成功', | |
| 297 | + errorMessage: '结束费用失败' | |
| 298 | + }, | |
| 299 | + simplifyCarFee: { | |
| 300 | + buyMonthCard: '买月卡', | |
| 301 | + batchPayment: '批量缴费', | |
| 302 | + createFee: '创建费用', | |
| 303 | + feeItem: '费用项目', | |
| 304 | + feeFlag: '费用标识', | |
| 305 | + feeType: '费用类型', | |
| 306 | + amountReceivable: '应收金额', | |
| 307 | + accountingTime: '建账时间', | |
| 308 | + receivablePeriod: '应收时间段', | |
| 309 | + description: '说明', | |
| 310 | + status: '状态', | |
| 311 | + operation: '操作', | |
| 312 | + lastDegree: '上期度数', | |
| 313 | + currentDegree: '本期度数', | |
| 314 | + unitPrice: '单价', | |
| 315 | + additionalFee: '附加费', | |
| 316 | + algorithm: '算法', | |
| 317 | + usage: '用量', | |
| 318 | + fixedFee: '固定费', | |
| 319 | + payment: '缴费', | |
| 320 | + paymentHistory: '缴费历史', | |
| 321 | + moreOperations: '更多操作', | |
| 322 | + cancelFee: '取消费用', | |
| 323 | + manualFinish: '手工结束', | |
| 324 | + feeChange: '费用变更', | |
| 325 | + details: '详情', | |
| 326 | + note1: '注意: 应收结束时间 "-" 表示未到应收时间 或 收费已结束', | |
| 327 | + note2: '应收金额 为-1 一般为费用项公式设置出错请检查', | |
| 328 | + arrearsSubtotal: '欠费小计', | |
| 329 | + parkingLot: '车场', | |
| 330 | + parkingSpace: '车位', | |
| 331 | + owner: '业主', | |
| 332 | + phone: '电话' | |
| 333 | + }, | |
| 334 | + simplifyContract: { | |
| 335 | + contractName: '合同名称', | |
| 336 | + contractCode: '合同编号', | |
| 337 | + parentContractCode: '父合同编号', | |
| 338 | + contractType: '合同类型', | |
| 339 | + startTime: '开始时间', | |
| 340 | + endTime: '结束时间', | |
| 341 | + status: '状态', | |
| 342 | + operation: '操作', | |
| 343 | + fee: '费用', | |
| 344 | + view: '查看', | |
| 345 | + print: '打印', | |
| 346 | + draftContract: '起草合同' | |
| 347 | + }, | |
| 348 | + simplifyOwnerMember: { | |
| 349 | + addMember: '添加成员', | |
| 350 | + memberId: '成员ID', | |
| 351 | + name: '名称', | |
| 352 | + gender: '性别', | |
| 353 | + male: '男', | |
| 354 | + female: '女', | |
| 355 | + type: '类型', | |
| 356 | + idCard: '身份证', | |
| 357 | + contact: '联系方式', | |
| 358 | + creator: '创建员工', | |
| 359 | + remark: '备注', | |
| 360 | + operation: '操作', | |
| 361 | + edit: '修改', | |
| 362 | + delete: '删除' | |
| 363 | + }, | |
| 364 | + simplifyOwnerCar: { | |
| 365 | + addCar: '添加车辆', | |
| 366 | + plateNumber: '车牌号', | |
| 367 | + carBrand: '车辆品牌', | |
| 368 | + carType: '车辆类型', | |
| 369 | + color: '颜色', | |
| 370 | + owner: '业主', | |
| 371 | + parkingSpace: '车位', | |
| 372 | + startTime: '起租时间', | |
| 373 | + endTime: '截止时间', | |
| 374 | + status: '状态', | |
| 375 | + operation: '操作', | |
| 376 | + releaseSpace: '释放车位', | |
| 377 | + renewSpace: '续租车位', | |
| 378 | + edit: '修改', | |
| 379 | + delete: '删除', | |
| 380 | + parkingLot: '车场', | |
| 381 | + space: '车位', | |
| 382 | + none: '无' | |
| 383 | + }, | |
| 384 | + simplifyOwnerRepair: { | |
| 385 | + phoneRepair: '电话报修', | |
| 386 | + workOrderCode: '工单编码', | |
| 387 | + location: '位置', | |
| 388 | + repairType: '报修类型', | |
| 389 | + reporter: '报修人', | |
| 390 | + contact: '联系方式', | |
| 391 | + appointmentTime: '预约时间', | |
| 392 | + status: '状态', | |
| 393 | + operation: '操作', | |
| 394 | + details: '详情' | |
| 395 | + }, | |
| 396 | + simplifyOwnerComplaint: { | |
| 397 | + complaint: '投诉', | |
| 398 | + complaintType: '投诉类型', | |
| 399 | + house: '房屋', | |
| 400 | + building: '号楼', | |
| 401 | + unit: '单元', | |
| 402 | + room: '室', | |
| 403 | + complainant: '投诉人', | |
| 404 | + complainantPhone: '投诉人电话', | |
| 405 | + complaintStatus: '投诉状态', | |
| 406 | + handler: '处理人', | |
| 407 | + handlerPhone: '处理电话', | |
| 408 | + operation: '操作', | |
| 409 | + details: '详情', | |
| 410 | + flowChart: '流程图', | |
| 411 | + none: '无' | |
| 412 | + }, | |
| 413 | + simplifyOwnerAccessContol: { | |
| 414 | + objectType: '对象类型', | |
| 415 | + objectName: '对象名称', | |
| 416 | + command: '指令', | |
| 417 | + status: '状态', | |
| 418 | + remark: '说明', | |
| 419 | + syncTime: '同步时间', | |
| 420 | + operation: '操作', | |
| 421 | + resync: '重新同步' | |
| 422 | + }, | |
| 423 | + simplifyOwnerTransactionCar: { | |
| 424 | + syncId: '同步ID', | |
| 425 | + objectType: '对象类型', | |
| 426 | + objectName: '对象名称', | |
| 427 | + command: '指令', | |
| 428 | + status: '状态', | |
| 429 | + remark: '说明', | |
| 430 | + syncTime: '同步时间', | |
| 431 | + operation: '操作', | |
| 432 | + resync: '重新同步' | |
| 433 | + }, | |
| 434 | + simplifyShopsHireLog: { | |
| 435 | + ownerName: '业主名称', | |
| 436 | + ownerPhone: '业主电话', | |
| 437 | + startTime: '开始时间', | |
| 438 | + endTime: '结束时间', | |
| 439 | + createTime: '创建时间', | |
| 440 | + operation: '操作', | |
| 441 | + viewFee: '查看费用' | |
| 442 | + } | |
| 443 | + } | |
| 444 | +} | |
| 0 | 445 | \ No newline at end of file | ... | ... |
src/views/simplify/simplifyAcceptanceList.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <div class="white-bg padding-top-lg"> | |
| 3 | + <div class="margin-top padding-bottom-lg flex justify-center"> | |
| 4 | + <div class="search-switch"> | |
| 5 | + <el-select v-model="simplifyAcceptanceInfo.searchType" @change="_changeSearchType"> | |
| 6 | + <el-option value="1" :label="$t('simplifyAcceptance.houseNumber')"></el-option> | |
| 7 | + <el-option value="2" :label="$t('simplifyAcceptance.ownerName')"></el-option> | |
| 8 | + <el-option value="3" :label="$t('simplifyAcceptance.ownerPhone')"></el-option> | |
| 9 | + <el-option value="4" :label="$t('simplifyAcceptance.ownerIdCard')"></el-option> | |
| 10 | + <el-option value="5" :label="$t('simplifyAcceptance.licensePlate')"></el-option> | |
| 11 | + <el-option value="6" :label="$t('simplifyAcceptance.memberName')"></el-option> | |
| 12 | + <el-option value="7" :label="$t('simplifyAcceptance.memberPhone')"></el-option> | |
| 13 | + <el-option value="8" :label="$t('simplifyAcceptance.memberIdCard')"></el-option> | |
| 14 | + <el-option value="9" :label="$t('simplifyAcceptance.shopNumber')"></el-option> | |
| 15 | + <el-option value="10" :label="$t('simplifyAcceptance.contractNumber')"></el-option> | |
| 16 | + </el-select> | |
| 17 | + </div> | |
| 18 | + <div class="search-input"> | |
| 19 | + <el-input :placeholder="$t(simplifyAcceptanceInfo.searchPlaceholder)" | |
| 20 | + v-model="simplifyAcceptanceInfo.searchValue" @input="_simplifyInputOwner" | |
| 21 | + @keyup.enter.native="_doSearch"></el-input> | |
| 22 | + <input-search-owner ref="inputSearchOwner"></input-search-owner> | |
| 23 | + <input-search-room ref="inputSearchRoom"></input-search-room> | |
| 24 | + </div> | |
| 25 | + <div> | |
| 26 | + <el-button type="primary" @click="_doSearch"> | |
| 27 | + <i class="el-icon-search"></i> | |
| 28 | + <span>{{ $t('simplifyAcceptance.search') }}</span> | |
| 29 | + </el-button> | |
| 30 | + </div> | |
| 31 | + <div class="padding-lr-0 margin-left-sm" v-if="simplifyAcceptanceInfo.searchType == '1'"> | |
| 32 | + <el-button type="primary" @click="_simplifyAcceptanceChooseRoom"> | |
| 33 | + <i class="el-icon-plus"></i> | |
| 34 | + <span>{{ $t('simplifyAcceptance.selectHouse') }}</span> | |
| 35 | + </el-button> | |
| 36 | + </div> | |
| 37 | + <div class="padding-lr-0 margin-left-sm"> | |
| 38 | + <el-dropdown> | |
| 39 | + <el-button type="primary"> | |
| 40 | + {{ $t('simplifyAcceptance.moreOperations') }}<i class="el-icon-arrow-down el-icon--right"></i> | |
| 41 | + </el-button> | |
| 42 | + <el-dropdown-menu slot="dropdown"> | |
| 43 | + <el-dropdown-item @click.native="_handover">{{ $t('simplifyAcceptance.handover') }}</el-dropdown-item> | |
| 44 | + <el-dropdown-item @click.native="_simplifyOwnerExitRoom">{{ $t('simplifyAcceptance.exitRoom') | |
| 45 | + }}</el-dropdown-item> | |
| 46 | + </el-dropdown-menu> | |
| 47 | + </el-dropdown> | |
| 48 | + </div> | |
| 49 | + </div> | |
| 50 | + <divider /> | |
| 51 | + <div class="padding margin-top-xs text-left"> | |
| 52 | + <div> | |
| 53 | + <div class="text-center vc-float-left" style="width: 150px;" v-if="simplifyAcceptanceInfo.ownerPhoto"> | |
| 54 | + <img width="120px" height="140px" class="border-radius" :src="simplifyAcceptanceInfo.ownerPhoto" | |
| 55 | + @error="errorLoadImg" /> | |
| 56 | + </div> | |
| 57 | + <div class="text-center vc-float-left" style="width: 150px;" v-else> | |
| 58 | + <img width="120px" height="140px" class="border-radius" src="/img/noPhoto.jpg" /> | |
| 59 | + </div> | |
| 60 | + <div class="simplify-acceptance margin-bottom"> | |
| 61 | + <el-row> | |
| 62 | + <el-col :span="6"> | |
| 63 | + <div class="form-group"> | |
| 64 | + <label class="col-form-label">{{ $t('simplifyAcceptance.ownerId') }}</label> | |
| 65 | + <label>{{ simplifyAcceptanceInfo.ownerId }}</label> | |
| 66 | + </div> | |
| 67 | + </el-col> | |
| 68 | + <el-col :span="6"> | |
| 69 | + <div class="form-group"> | |
| 70 | + <label class="col-form-label">{{ $t('simplifyAcceptance.ownerName') }}</label> | |
| 71 | + <label> | |
| 72 | + <a target="_blank" :href="'/#/pages/owner/ownerDetail?ownerId=' + simplifyAcceptanceInfo.ownerId"> | |
| 73 | + {{ simplifyAcceptanceInfo.name }} | |
| 74 | + </a> | |
| 75 | + </label> | |
| 76 | + </div> | |
| 77 | + </el-col> | |
| 78 | + <el-col :span="6"> | |
| 79 | + <div class="form-group"> | |
| 80 | + <label class="col-form-label">{{ $t('simplifyAcceptance.contactPhone') }}</label> | |
| 81 | + <label>{{ simplifyAcceptanceInfo.link }}</label> | |
| 82 | + </div> | |
| 83 | + </el-col> | |
| 84 | + <el-col :span="6"> | |
| 85 | + <div class="form-group"> | |
| 86 | + <label class="col-form-label">{{ $t('simplifyAcceptance.idCard') }}</label> | |
| 87 | + <label>{{ simplifyAcceptanceInfo.idCard }}</label> | |
| 88 | + </div> | |
| 89 | + </el-col> | |
| 90 | + | |
| 91 | + <el-col :span="6"> | |
| 92 | + <div class="form-group"> | |
| 93 | + <label class="col-form-label">{{ $t('simplifyAcceptance.checkInDate') }}</label> | |
| 94 | + <label>{{ simplifyAcceptanceInfo.createTime }}</label> | |
| 95 | + </div> | |
| 96 | + </el-col> | |
| 97 | + <el-col :span="6"> | |
| 98 | + <div class="form-group"> | |
| 99 | + <label class="col-form-label">{{ $t('simplifyAcceptance.gender') }}</label> | |
| 100 | + <label> | |
| 101 | + {{ simplifyAcceptanceInfo.sex == '0' ? $t('simplifyAcceptance.male') : | |
| 102 | + (simplifyAcceptanceInfo.sex == '1' ? $t('simplifyAcceptance.female') : '') }} | |
| 103 | + </label> | |
| 104 | + </div> | |
| 105 | + </el-col> | |
| 106 | + <el-col :span="12"> | |
| 107 | + <div class="form-group"> | |
| 108 | + <label class="col-form-label">{{ $t('simplifyAcceptance.ownerRemark') }}</label> | |
| 109 | + <label class="fix-width" :title="simplifyAcceptanceInfo.ownerRemark"> | |
| 110 | + {{ simplifyAcceptanceInfo.ownerRemark }} | |
| 111 | + </label> | |
| 112 | + </div> | |
| 113 | + </el-col> | |
| 114 | + | |
| 115 | + <el-col :span="6" v-if="simplifyAcceptanceInfo.roomType == '1010301'"> | |
| 116 | + <div class="form-group"> | |
| 117 | + <label class="col-form-label">{{ $t('simplifyAcceptance.houseNumber') }}</label> | |
| 118 | + <label> | |
| 119 | + {{ simplifyAcceptanceInfo.floorNum }}-{{ simplifyAcceptanceInfo.unitNum }}-{{ | |
| 120 | + simplifyAcceptanceInfo.roomNum }} | |
| 121 | + </label> | |
| 122 | + </div> | |
| 123 | + </el-col> | |
| 124 | + <el-col :span="6" v-else> | |
| 125 | + <div class="form-group"> | |
| 126 | + <label class="col-form-label">{{ $t('simplifyAcceptance.shopNumber') }}</label> | |
| 127 | + <label>{{ simplifyAcceptanceInfo.floorNum }}-{{ simplifyAcceptanceInfo.roomNum }}</label> | |
| 128 | + </div> | |
| 129 | + </el-col> | |
| 130 | + <el-col :span="6"> | |
| 131 | + <div class="form-group"> | |
| 132 | + <label class="col-form-label">{{ $t('simplifyAcceptance.houseArea') }}</label> | |
| 133 | + <label>{{ simplifyAcceptanceInfo.builtUpArea }}</label> | |
| 134 | + </div> | |
| 135 | + </el-col> | |
| 136 | + <el-col :span="6"> | |
| 137 | + <div class="form-group"> | |
| 138 | + <label class="col-form-label">{{ $t('simplifyAcceptance.houseType') }}</label> | |
| 139 | + <label>{{ simplifyAcceptanceInfo.roomSubTypeName }}</label> | |
| 140 | + </div> | |
| 141 | + </el-col> | |
| 142 | + <el-col :span="6"> | |
| 143 | + <div class="form-group"> | |
| 144 | + <label class="col-form-label">{{ $t('simplifyAcceptance.layout') }}</label> | |
| 145 | + <label>{{ simplifyAcceptanceInfo.apartmentName }}</label> | |
| 146 | + </div> | |
| 147 | + </el-col> | |
| 148 | + | |
| 149 | + <el-col :span="6"> | |
| 150 | + <div class="form-group"> | |
| 151 | + <label class="col-form-label">{{ $t('simplifyAcceptance.houseStatus') }}</label> | |
| 152 | + <label>{{ simplifyAcceptanceInfo.stateName }}</label> | |
| 153 | + </div> | |
| 154 | + </el-col> | |
| 155 | + <el-col :span="6"> | |
| 156 | + <div class="form-group"> | |
| 157 | + <label class="col-form-label">{{ $t('simplifyAcceptance.indoorArea') }}</label> | |
| 158 | + <label>{{ simplifyAcceptanceInfo.roomArea }}</label> | |
| 159 | + </div> | |
| 160 | + </el-col> | |
| 161 | + <el-col :span="6" v-if="simplifyAcceptanceInfo.roomSubType && simplifyAcceptanceInfo.roomSubType != '110'"> | |
| 162 | + <div class="form-group"> | |
| 163 | + <label class="col-form-label">{{ $t('simplifyAcceptance.rent') }}</label> | |
| 164 | + <label>{{ simplifyAcceptanceInfo.roomRent }}</label> | |
| 165 | + </div> | |
| 166 | + </el-col> | |
| 167 | + <el-col :span="6"> | |
| 168 | + <div class="form-group"> | |
| 169 | + <label class="col-form-label">{{ $t('simplifyAcceptance.houseRemark') }}</label> | |
| 170 | + <label class="fix-width" :title="simplifyAcceptanceInfo.roomRemark"> | |
| 171 | + {{ simplifyAcceptanceInfo.roomRemark }} | |
| 172 | + </label> | |
| 173 | + </div> | |
| 174 | + </el-col> | |
| 175 | + | |
| 176 | + <el-col :span="6"> | |
| 177 | + <div class="form-group"> | |
| 178 | + <label class="col-form-label">{{ $t('simplifyAcceptance.accountBalance') }}</label> | |
| 179 | + <label> | |
| 180 | + <span v-if="simplifyAcceptanceInfo.acctAmount"> | |
| 181 | + {{ simplifyAcceptanceInfo.acctAmount }}( | |
| 182 | + <a target="_blank" v-if="hasPrivilege('502023032809461736')" | |
| 183 | + :href="'/#/pages/owner/ownerDetail?ownerId=' + simplifyAcceptanceInfo.ownerId + '¤tTab=ownerDetailAccount'"> | |
| 184 | + {{ $t('simplifyAcceptance.preDeposit') }} | |
| 185 | + </a> | |
| 186 | + ) | |
| 187 | + </span> | |
| 188 | + </label> | |
| 189 | + </div> | |
| 190 | + </el-col> | |
| 191 | + <el-col :span="6" v-if="simplifyAcceptanceInfo.roomId"> | |
| 192 | + <div class="form-group"> | |
| 193 | + <label class="col-form-label">{{ $t('simplifyAcceptance.depositAmount') }}</label> | |
| 194 | + <label> | |
| 195 | + {{ simplifyAcceptanceInfo.depositAmount }} | |
| 196 | + (<a href="javascript:void(0)" @click="_toRefundDepositFee">{{ $t('simplifyAcceptance.refundDeposit') | |
| 197 | + }}</a>) | |
| 198 | + </label> | |
| 199 | + </div> | |
| 200 | + </el-col> | |
| 201 | + </el-row> | |
| 202 | + </div> | |
| 203 | + </div> | |
| 204 | + <divider /> | |
| 205 | + <div class="margin-top"> | |
| 206 | + <el-tabs v-model="simplifyAcceptanceInfo._currentTab" | |
| 207 | + @tab-click="changeTab(simplifyAcceptanceInfo._currentTab)"> | |
| 208 | + <el-tab-pane :label="$t('simplifyAcceptance.houseFee')" name="simplifyRoomFee"> | |
| 209 | + <simplify-room-fee ref="simplifyRoomFee"></simplify-room-fee> | |
| 210 | + </el-tab-pane> | |
| 211 | + <el-tab-pane :label="$t('simplifyAcceptance.parkingFee')" name="simplifyCarFee"> | |
| 212 | + <simplify-car-fee ref="simplifyCarFee"></simplify-car-fee> | |
| 213 | + </el-tab-pane> | |
| 214 | + <el-tab-pane :label="$t('simplifyAcceptance.paymentHistory')" name="simplifyHisFee"> | |
| 215 | + <simplify-his-fee ref="simplifyHisFee"></simplify-his-fee> | |
| 216 | + </el-tab-pane> | |
| 217 | + <el-tab-pane :label="$t('simplifyAcceptance.house')" name="simplifyOwnerRooms"> | |
| 218 | + <simplify-owner-rooms ref="simplifyOwnerRooms"></simplify-owner-rooms> | |
| 219 | + </el-tab-pane> | |
| 220 | + <el-tab-pane :label="$t('simplifyAcceptance.contract')" name="simplifyContract"> | |
| 221 | + <simplify-contract ref="simplifyContract"></simplify-contract> | |
| 222 | + </el-tab-pane> | |
| 223 | + <el-tab-pane :label="$t('simplifyAcceptance.familyMember')" name="simplifyOwnerMember"> | |
| 224 | + <simplify-owner-member ref="simplifyOwnerMember"></simplify-owner-member> | |
| 225 | + </el-tab-pane> | |
| 226 | + <el-tab-pane :label="$t('simplifyAcceptance.vehicle')" name="simplifyOwnerCar"> | |
| 227 | + <simplify-owner-car ref="simplifyOwnerCar"></simplify-owner-car> | |
| 228 | + </el-tab-pane> | |
| 229 | + <el-tab-pane :label="$t('simplifyAcceptance.paymentReminder')" name="simplifyCallable"> | |
| 230 | + <simplify-callable ref="simplifyCallable"></simplify-callable> | |
| 231 | + </el-tab-pane> | |
| 232 | + <el-tab-pane :label="$t('simplifyAcceptance.ownerFeedback')" name="simplifyNotepad"> | |
| 233 | + <a href="javascript:void(0)" @click="_toSimplifyNotepadPage">{{ $t('simplifyAcceptance.ownerFeedback') | |
| 234 | + }}</a> | |
| 235 | + </el-tab-pane> | |
| 236 | + <el-tab-pane :label="$t('simplifyAcceptance.repairOrder')" name="simplifyOwnerRepair"> | |
| 237 | + <simplify-owner-repair ref="simplifyOwnerRepair"></simplify-owner-repair> | |
| 238 | + </el-tab-pane> | |
| 239 | + <el-tab-pane :label="$t('simplifyAcceptance.complaintOrder')" name="simplifyOwnerComplaint"> | |
| 240 | + <simplify-owner-complaint ref="simplifyOwnerComplaint"></simplify-owner-complaint> | |
| 241 | + </el-tab-pane> | |
| 242 | + <el-tab-pane :label="$t('simplifyAcceptance.ownerSync')" name="simplifyOwnerAccessContol"> | |
| 243 | + <simplify-owner-access-contol ref="simplifyOwnerAccessContol"></simplify-owner-access-contol> | |
| 244 | + </el-tab-pane> | |
| 245 | + <el-tab-pane :label="$t('simplifyAcceptance.vehicleSync')" name="simplifyOwnerTransactionCar"> | |
| 246 | + <simplify-owner-transaction-car ref="simplifyOwnerTransactionCar"></simplify-owner-transaction-car> | |
| 247 | + </el-tab-pane> | |
| 248 | + <el-tab-pane v-if="hasPrivilege('502020092373407363')" :label="$t('simplifyAcceptance.reprintReceipt')" | |
| 249 | + name="simplifyFeeReceipt"> | |
| 250 | + <simplify-fee-receipt ref="simplifyFeeReceipt"></simplify-fee-receipt> | |
| 251 | + </el-tab-pane> | |
| 252 | + <el-tab-pane :label="$t('simplifyAcceptance.historyOwner')" name="simplifyShopsHireLog"> | |
| 253 | + <simplify-shops-hire-log ref="simplifyShopsHireLog"></simplify-shops-hire-log> | |
| 254 | + </el-tab-pane> | |
| 255 | + <el-tab-pane :label="$t('simplifyAcceptance.meterReadingRecord')" name="simplifyMeterWaterLog"> | |
| 256 | + <simplify-meter-water-log ref="simplifyMeterWaterLog"></simplify-meter-water-log> | |
| 257 | + </el-tab-pane> | |
| 258 | + </el-tabs> | |
| 259 | + </div> | |
| 260 | + </div> | |
| 261 | + | |
| 262 | + <delete-fee ref="deleteFee"></delete-fee> | |
| 263 | + <edit-fee ref="editFee"></edit-fee> | |
| 264 | + <finish-fee ref="finishFee"></finish-fee> | |
| 265 | + <room-create-fee-add ref="roomCreateFeeAdd"></room-create-fee-add> | |
| 266 | + <car-create-fee-add ref="carCreateFeeAdd"></car-create-fee-add> | |
| 267 | + <add-meter-water ref="addMeterWater"></add-meter-water> | |
| 268 | + <add-proxy-fee ref="addProxyFee"></add-proxy-fee> | |
| 269 | + <search-room ref="searchRoom" emit-choose-room="simplifyAcceptance" emit-load-data="list" :room-flag="1" | |
| 270 | + :show-search-condition="false"></search-room> | |
| 271 | + <edit-machine-translate ref="editMachineTranslate"></edit-machine-translate> | |
| 272 | + </div> | |
| 273 | +</template> | |
| 274 | + | |
| 275 | +<script> | |
| 276 | +import { getCommunityId } from '@/api/community/communityApi' | |
| 277 | +import { comprehensiveQuery, queryFeeDeposit } from '@/api/simplify/simplifyAcceptanceApi' | |
| 278 | +import SimplifyRoomFee from '@/components/fee/simplifyRoomFee' | |
| 279 | +import SimplifyCarFee from '@/components/simplify/simplifyCarFee' | |
| 280 | +import SimplifyHisFee from '@/components/fee/simplifyHisFee' | |
| 281 | +import SimplifyOwnerRooms from '@/components/fee/simplifyOwnerRooms' | |
| 282 | +import SimplifyContract from '@/components/simplify/simplifyContract' | |
| 283 | +import SimplifyOwnerMember from '@/components/simplify/simplifyOwnerMember' | |
| 284 | +import SimplifyOwnerCar from '@/components/simplify/simplifyOwnerCar' | |
| 285 | +import SimplifyCallable from '@/components/fee/simplifyCallable' | |
| 286 | +import SimplifyOwnerRepair from '@/components/simplify/simplifyOwnerRepair' | |
| 287 | +import SimplifyOwnerComplaint from '@/components/simplify/simplifyOwnerComplaint' | |
| 288 | +import SimplifyOwnerAccessContol from '@/components/simplify/simplifyOwnerAccessContol' | |
| 289 | +import SimplifyOwnerTransactionCar from '@/components/simplify/simplifyOwnerTransactionCar' | |
| 290 | +import SimplifyFeeReceipt from '@/components/fee/simplifyFeeReceipt' | |
| 291 | +import SimplifyShopsHireLog from '@/components/simplify/simplifyShopsHireLog' | |
| 292 | +import SimplifyMeterWaterLog from '@/components/fee/simplifyMeterWaterLog' | |
| 293 | +import DeleteFee from '@/components/fee/deleteFee' | |
| 294 | +import EditFee from '@/components/fee/editFee' | |
| 295 | +import FinishFee from '@/components/fee/finishFee' | |
| 296 | +import RoomCreateFeeAdd from '@/components/fee/roomCreateFeeAdd' | |
| 297 | +import CarCreateFeeAdd from '@/components/fee/carCreateFeeAdd' | |
| 298 | +import AddMeterWater from '@/components/fee/addMeterWater' | |
| 299 | +import AddProxyFee from '@/components/fee/addProxyFee' | |
| 300 | +import SearchRoom from '@/components/room/searchRoom' | |
| 301 | +import EditMachineTranslate from '@/components/machine/editMachineTranslate' | |
| 302 | +import InputSearchOwner from '@/components/report/InputSearchOwner' | |
| 303 | +import InputSearchRoom from '@/components/fee/inputSearchRoom' | |
| 304 | +import divider from '@/components/system/divider' | |
| 305 | + | |
| 306 | +export default { | |
| 307 | + name: 'SimplifyAcceptanceList', | |
| 308 | + components: { | |
| 309 | + SimplifyRoomFee, | |
| 310 | + SimplifyCarFee, | |
| 311 | + SimplifyHisFee, | |
| 312 | + SimplifyOwnerRooms, | |
| 313 | + SimplifyContract, | |
| 314 | + SimplifyOwnerMember, | |
| 315 | + SimplifyOwnerCar, | |
| 316 | + SimplifyCallable, | |
| 317 | + SimplifyOwnerRepair, | |
| 318 | + SimplifyOwnerComplaint, | |
| 319 | + SimplifyOwnerAccessContol, | |
| 320 | + SimplifyOwnerTransactionCar, | |
| 321 | + SimplifyFeeReceipt, | |
| 322 | + SimplifyShopsHireLog, | |
| 323 | + SimplifyMeterWaterLog, | |
| 324 | + DeleteFee, | |
| 325 | + EditFee, | |
| 326 | + FinishFee, | |
| 327 | + RoomCreateFeeAdd, | |
| 328 | + CarCreateFeeAdd, | |
| 329 | + AddMeterWater, | |
| 330 | + AddProxyFee, | |
| 331 | + SearchRoom, | |
| 332 | + EditMachineTranslate, | |
| 333 | + InputSearchOwner, | |
| 334 | + InputSearchRoom, | |
| 335 | + divider | |
| 336 | + }, | |
| 337 | + data() { | |
| 338 | + return { | |
| 339 | + DEFAULT_PAGE: 1, | |
| 340 | + DEFAULT_ROWS: 10, | |
| 341 | + TEMP_SEARCH: 'simplifyAcceptanceSearch', | |
| 342 | + simplifyAcceptanceInfo: { | |
| 343 | + searchType: '1', | |
| 344 | + searchValue: '', | |
| 345 | + searchPlaceholder: 'simplifyAcceptance.houseNumberPlaceholder', | |
| 346 | + ownerPhoto: '', | |
| 347 | + _currentTab: 'simplifyRoomFee', | |
| 348 | + roomId: '', | |
| 349 | + ownerId: '', | |
| 350 | + ownerRemark: '', | |
| 351 | + roomRemark: '', | |
| 352 | + name: '', | |
| 353 | + idCard: '', | |
| 354 | + link: '', | |
| 355 | + createTime: '', | |
| 356 | + apartmentName: '', | |
| 357 | + floorNum: '', | |
| 358 | + unitNum: '', | |
| 359 | + roomNum: '', | |
| 360 | + builtUpArea: '', | |
| 361 | + feeCoefficient: '', | |
| 362 | + stateName: '', | |
| 363 | + roomName: '', | |
| 364 | + roomType: '', | |
| 365 | + roomSubTypeName: '', | |
| 366 | + roomSubType: '', | |
| 367 | + roomArea: '', | |
| 368 | + sex: '', | |
| 369 | + roomRent: '', | |
| 370 | + acctAmount: '', | |
| 371 | + depositAmount: '0', | |
| 372 | + timer: {} | |
| 373 | + }, | |
| 374 | + communityId: '' | |
| 375 | + } | |
| 376 | + }, | |
| 377 | + created() { | |
| 378 | + this.communityId = getCommunityId() | |
| 379 | + this._initMethod() | |
| 380 | + | |
| 381 | + }, | |
| 382 | + methods: { | |
| 383 | + _initMethod() { | |
| 384 | + if (!this.$route.query.isBack) { | |
| 385 | + return | |
| 386 | + } | |
| 387 | + // 检查是否有缓存数据 | |
| 388 | + let _tempData = localStorage.getItem(this.TEMP_SEARCH) | |
| 389 | + if (_tempData == null) { | |
| 390 | + return | |
| 391 | + } | |
| 392 | + _tempData = JSON.parse(_tempData) | |
| 393 | + this.simplifyAcceptanceInfo.searchType = _tempData.searchType | |
| 394 | + this.simplifyAcceptanceInfo.searchValue = _tempData.searchValue | |
| 395 | + this.simplifyAcceptanceInfo.searchPlaceholder = _tempData.searchPlaceholder | |
| 396 | + this._doSearch() | |
| 397 | + }, | |
| 398 | + _changeSearchType() { | |
| 399 | + switch (this.simplifyAcceptanceInfo.searchType) { | |
| 400 | + case '1': | |
| 401 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.houseNumberPlaceholder' | |
| 402 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 403 | + break | |
| 404 | + case '2': | |
| 405 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.ownerNamePlaceholder' | |
| 406 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 407 | + break | |
| 408 | + case '3': | |
| 409 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.ownerPhonePlaceholder' | |
| 410 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 411 | + break | |
| 412 | + case '4': | |
| 413 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.ownerIdCardPlaceholder' | |
| 414 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 415 | + break | |
| 416 | + case '5': | |
| 417 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.licensePlatePlaceholder' | |
| 418 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 419 | + break | |
| 420 | + case '6': | |
| 421 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.memberNamePlaceholder' | |
| 422 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 423 | + break | |
| 424 | + case '7': | |
| 425 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.memberPhonePlaceholder' | |
| 426 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 427 | + break | |
| 428 | + case '8': | |
| 429 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.memberIdCardPlaceholder' | |
| 430 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 431 | + break | |
| 432 | + case '9': | |
| 433 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.shopNumberPlaceholder' | |
| 434 | + break | |
| 435 | + case '10': | |
| 436 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.contractNumberPlaceholder' | |
| 437 | + break | |
| 438 | + default: | |
| 439 | + this.simplifyAcceptanceInfo.searchPlaceholder = 'simplifyAcceptance.houseNumberPlaceholder' | |
| 440 | + this.simplifyAcceptanceInfo.searchValue = "" | |
| 441 | + } | |
| 442 | + }, | |
| 443 | + async _doSearch() { | |
| 444 | + if (!this.simplifyAcceptanceInfo.searchValue) { | |
| 445 | + this.$message.warning(this.$t('simplifyAcceptance.inputSearchCondition')) | |
| 446 | + return | |
| 447 | + } | |
| 448 | + // 清理信息 | |
| 449 | + this._clearData() | |
| 450 | + try { | |
| 451 | + const res = await comprehensiveQuery({ | |
| 452 | + searchType: this.simplifyAcceptanceInfo.searchType, | |
| 453 | + searchValue: this.simplifyAcceptanceInfo.searchValue, | |
| 454 | + communityId: this.communityId | |
| 455 | + }) | |
| 456 | + | |
| 457 | + if (res.code != 0) { | |
| 458 | + this.$message.error(res.msg) | |
| 459 | + return | |
| 460 | + } | |
| 461 | + | |
| 462 | + this.saveTempSearchData() | |
| 463 | + const _owner = res.data | |
| 464 | + Object.assign(this.simplifyAcceptanceInfo, _owner) | |
| 465 | + this.simplifyAcceptanceInfo.ownerRemark = _owner.remark | |
| 466 | + this.simplifyAcceptanceInfo.ownerPhoto = _owner.faceUrl | |
| 467 | + | |
| 468 | + if (!Object.prototype.hasOwnProperty.call(_owner, 'rooms')) { | |
| 469 | + return | |
| 470 | + } | |
| 471 | + | |
| 472 | + const _rooms = _owner.rooms | |
| 473 | + if (_rooms.length > 1) { | |
| 474 | + this.$refs.searchRoom.$emit('showOwnerRooms', _rooms) | |
| 475 | + return | |
| 476 | + } | |
| 477 | + | |
| 478 | + Object.assign(this.simplifyAcceptanceInfo, _rooms[0]) | |
| 479 | + this.simplifyAcceptanceInfo.roomRemark = _rooms[0].remark | |
| 480 | + this.simplifyAcceptanceInfo.roomName = _rooms[0].floorNum + '栋' + _rooms[0].unitNum + '单元' + _rooms[0].roomNum + '室' | |
| 481 | + this.$refs.simplifyRoomFee.$emit('switch', this.simplifyAcceptanceInfo) | |
| 482 | + | |
| 483 | + // 计算押金 | |
| 484 | + this.computeDeposit() | |
| 485 | + } catch (error) { | |
| 486 | + console.error('请求失败:', error) | |
| 487 | + } | |
| 488 | + }, | |
| 489 | + saveTempSearchData() { | |
| 490 | + const _searchType = this.simplifyAcceptanceInfo.searchType | |
| 491 | + const _searchValue = this.simplifyAcceptanceInfo.searchValue | |
| 492 | + const _searchPlaceholder = this.simplifyAcceptanceInfo.searchPlaceholder | |
| 493 | + // 缓存起来 | |
| 494 | + localStorage.setItem(this.TEMP_SEARCH, JSON.stringify({ | |
| 495 | + searchType: _searchType, | |
| 496 | + searchValue: _searchValue, | |
| 497 | + searchPlaceholder: _searchPlaceholder | |
| 498 | + })) | |
| 499 | + }, | |
| 500 | + changeTab(tab) { | |
| 501 | + this.simplifyAcceptanceInfo._currentTab = tab | |
| 502 | + setTimeout(() => { | |
| 503 | + if (this.$refs[tab]) { | |
| 504 | + if (tab === 'ownerDetailAccount' || tab === 'ownerDetailAccountReceipt') { | |
| 505 | + this.$refs[tab].open(this.simplifyAcceptanceInfo.ownerId, this.simplifyAcceptanceInfo.ownerName, this.simplifyAcceptanceInfo.roomId) | |
| 506 | + return; | |
| 507 | + } | |
| 508 | + this.$refs[tab].open({ | |
| 509 | + ownerId: this.simplifyAcceptanceInfo.ownerId, | |
| 510 | + ownerName: this.simplifyAcceptanceInfo.ownerName, | |
| 511 | + roomId: this.simplifyAcceptanceInfo.roomId, | |
| 512 | + roomName: this.simplifyAcceptanceInfo.roomName | |
| 513 | + }) | |
| 514 | + } | |
| 515 | + }, 1000); | |
| 516 | + | |
| 517 | + }, | |
| 518 | + _toSimplifyNotepadPage() { | |
| 519 | + if (!this.simplifyAcceptanceInfo.ownerId) { | |
| 520 | + this.$message.warning(this.$t('simplifyAcceptance.selectHouseFirst')) | |
| 521 | + return | |
| 522 | + } | |
| 523 | + this.$router.push({ | |
| 524 | + path: '/pages/property/simplifyNotepadManage', | |
| 525 | + query: { | |
| 526 | + roomId: this.simplifyAcceptanceInfo.roomId, | |
| 527 | + ownerId: this.simplifyAcceptanceInfo.ownerId | |
| 528 | + } | |
| 529 | + }) | |
| 530 | + }, | |
| 531 | + errorLoadImg() { | |
| 532 | + this.simplifyAcceptanceInfo.ownerPhoto = "/img/noPhoto.jpg" | |
| 533 | + }, | |
| 534 | + _clearData() { | |
| 535 | + const _searchType = this.simplifyAcceptanceInfo.searchType | |
| 536 | + const _searchValue = this.simplifyAcceptanceInfo.searchValue | |
| 537 | + const _searchPlaceholder = this.simplifyAcceptanceInfo.searchPlaceholder | |
| 538 | + this.simplifyAcceptanceInfo = { | |
| 539 | + searchType: _searchType, | |
| 540 | + searchValue: _searchValue, | |
| 541 | + searchPlaceholder: _searchPlaceholder, | |
| 542 | + ownerPhoto: '', | |
| 543 | + _currentTab: 'simplifyRoomFee', | |
| 544 | + roomId: '', | |
| 545 | + ownerId: '', | |
| 546 | + name: '', | |
| 547 | + idCard: '', | |
| 548 | + link: '', | |
| 549 | + createTime: '', | |
| 550 | + apartmentName: '', | |
| 551 | + floorNum: '', | |
| 552 | + unitNum: '', | |
| 553 | + roomNum: '', | |
| 554 | + builtUpArea: '', | |
| 555 | + feeCoefficient: '', | |
| 556 | + stateName: '', | |
| 557 | + roomName: '', | |
| 558 | + sex: '', | |
| 559 | + ownerRemark: '', | |
| 560 | + roomRemark: '', | |
| 561 | + roomType: '', | |
| 562 | + roomSubTypeName: '', | |
| 563 | + roomSubType: '', | |
| 564 | + roomArea: '', | |
| 565 | + roomRent: '', | |
| 566 | + acctAmount: '', | |
| 567 | + depositAmount: '0', | |
| 568 | + } | |
| 569 | + this.changeTab('simplifyRoomFee') | |
| 570 | + }, | |
| 571 | + _simplifyAcceptanceChooseRoom() { | |
| 572 | + this.$refs.searchRoom.$emit('openRoomTree', { | |
| 573 | + callName: 'simplifyAcceptance' | |
| 574 | + }) | |
| 575 | + }, | |
| 576 | + _handover() { | |
| 577 | + this.$router.push('/pages/property/handover') | |
| 578 | + }, | |
| 579 | + _simplifyOwnerExitRoom() { | |
| 580 | + this.$router.push('/pages/property/ownerExitRoom') | |
| 581 | + }, | |
| 582 | + _simplifyInputOwner() { | |
| 583 | + if (this.simplifyAcceptanceInfo.searchType != "2" && | |
| 584 | + this.simplifyAcceptanceInfo.searchType != "6" && | |
| 585 | + this.simplifyAcceptanceInfo.searchType != "1") { | |
| 586 | + return | |
| 587 | + } | |
| 588 | + | |
| 589 | + if (this.simplifyAcceptanceInfo.timer) { | |
| 590 | + clearTimeout(this.simplifyAcceptanceInfo.timer) | |
| 591 | + } | |
| 592 | + | |
| 593 | + if (this.simplifyAcceptanceInfo.searchType == "1") { | |
| 594 | + this.simplifyAcceptanceInfo.timer = setTimeout(() => { | |
| 595 | + this.$refs.inputSearchRoom.$emit('searchRoom', { | |
| 596 | + callComponent: 'simplifyAcceptance', | |
| 597 | + roomName: this.simplifyAcceptanceInfo.searchValue | |
| 598 | + }) | |
| 599 | + }, 1500) | |
| 600 | + return | |
| 601 | + } | |
| 602 | + | |
| 603 | + const _ownerTypeCd = this.simplifyAcceptanceInfo.searchType == "2" ? '1001' : '1002,1003,1005' | |
| 604 | + this.simplifyAcceptanceInfo.timer = setTimeout(() => { | |
| 605 | + this.$refs.inputSearchOwner.$emit('searchOwner', { | |
| 606 | + callComponent: 'simplifyAcceptance', | |
| 607 | + ownerTypeCd: _ownerTypeCd, | |
| 608 | + ownerName: this.simplifyAcceptanceInfo.searchValue | |
| 609 | + }) | |
| 610 | + }, 1500) | |
| 611 | + }, | |
| 612 | + _toRefundDepositFee() { | |
| 613 | + const _roomId = this.simplifyAcceptanceInfo.roomId | |
| 614 | + const _ownerId = this.simplifyAcceptanceInfo.ownerId | |
| 615 | + this.$router.push({ | |
| 616 | + path: '/pages/fee/refundDepositFee', | |
| 617 | + query: { | |
| 618 | + roomId: _roomId, | |
| 619 | + ownerId: _ownerId | |
| 620 | + } | |
| 621 | + }) | |
| 622 | + }, | |
| 623 | + async computeDeposit() { | |
| 624 | + const param = { | |
| 625 | + page: 1, | |
| 626 | + row: 100, | |
| 627 | + payerObjId: this.simplifyAcceptanceInfo.roomId, | |
| 628 | + ownerId: this.simplifyAcceptanceInfo.ownerId, | |
| 629 | + communityId: this.communityId, | |
| 630 | + state: '1400', | |
| 631 | + } | |
| 632 | + | |
| 633 | + this.simplifyAcceptanceInfo.depositAmount = '0' | |
| 634 | + | |
| 635 | + try { | |
| 636 | + const res = await queryFeeDeposit(param) | |
| 637 | + if (res.code != 0) { | |
| 638 | + return | |
| 639 | + } | |
| 640 | + | |
| 641 | + if (!res.data || res.data.length < 1) { | |
| 642 | + return | |
| 643 | + } | |
| 644 | + | |
| 645 | + let _dispositAmount = 0 | |
| 646 | + res.data.forEach(_data => { | |
| 647 | + _dispositAmount += parseFloat(_data.receivedAmount) | |
| 648 | + }) | |
| 649 | + this.simplifyAcceptanceInfo.depositAmount = _dispositAmount.toFixed(2) | |
| 650 | + } catch (error) { | |
| 651 | + console.error('请求失败:', error) | |
| 652 | + } | |
| 653 | + } | |
| 654 | + } | |
| 655 | +} | |
| 656 | +</script> | |
| 657 | + | |
| 658 | +<style scoped> | |
| 659 | +.white-bg { | |
| 660 | + background-color: #fff; | |
| 661 | +} | |
| 662 | + | |
| 663 | +.padding-top-lg { | |
| 664 | + padding-top: 20px; | |
| 665 | +} | |
| 666 | + | |
| 667 | +.margin-top { | |
| 668 | + margin-top: 15px; | |
| 669 | +} | |
| 670 | + | |
| 671 | +.padding-bottom-lg { | |
| 672 | + padding-bottom: 20px; | |
| 673 | +} | |
| 674 | + | |
| 675 | +.text-center { | |
| 676 | + text-align: center; | |
| 677 | +} | |
| 678 | + | |
| 679 | +.padding-lr-0 { | |
| 680 | + padding-left: 0; | |
| 681 | + padding-right: 0; | |
| 682 | +} | |
| 683 | + | |
| 684 | +.margin-left-xs { | |
| 685 | + margin-left: 5px; | |
| 686 | +} | |
| 687 | + | |
| 688 | +.margin-left-sm { | |
| 689 | + margin-left: 10px; | |
| 690 | +} | |
| 691 | + | |
| 692 | + | |
| 693 | +.padding { | |
| 694 | + padding: 15px; | |
| 695 | +} | |
| 696 | + | |
| 697 | +.vc-float-left { | |
| 698 | + float: left; | |
| 699 | +} | |
| 700 | + | |
| 701 | +.border-radius { | |
| 702 | + border-radius: 4px; | |
| 703 | +} | |
| 704 | + | |
| 705 | +.fix-width { | |
| 706 | + display: inline-block; | |
| 707 | + max-width: 200px; | |
| 708 | + overflow: hidden; | |
| 709 | + text-overflow: ellipsis; | |
| 710 | + white-space: nowrap; | |
| 711 | +} | |
| 712 | + | |
| 713 | +.simplify-acceptance { | |
| 714 | + margin-left: 160px; | |
| 715 | +} | |
| 716 | + | |
| 717 | +.margin-bottom { | |
| 718 | + margin-bottom: 15px; | |
| 719 | +} | |
| 720 | + | |
| 721 | +.search-input { | |
| 722 | + width: 600px; | |
| 723 | +} | |
| 724 | + | |
| 725 | +.search-switch { | |
| 726 | + width: 150px; | |
| 727 | +} | |
| 728 | + | |
| 729 | +.form-group { | |
| 730 | + margin-bottom: 20px; | |
| 731 | +} | |
| 732 | +</style> | |
| 0 | 733 | \ No newline at end of file | ... | ... |
src/views/simplify/simplifyCarFeeLang.js
0 → 100644
| 1 | +export default { | |
| 2 | + en: { | |
| 3 | + simplifyCarFee: { | |
| 4 | + buyMonthCard: 'Buy Monthly Card', | |
| 5 | + batchPayment: 'Batch Payment', | |
| 6 | + createFee: 'Create Fee', | |
| 7 | + feeItem: 'Fee Item', | |
| 8 | + feeFlag: 'Fee Flag', | |
| 9 | + feeType: 'Fee Type', | |
| 10 | + amountReceivable: 'Amount Receivable', | |
| 11 | + accountingTime: 'Accounting Time', | |
| 12 | + receivablePeriod: 'Receivable Period', | |
| 13 | + description: 'Description', | |
| 14 | + status: 'Status', | |
| 15 | + operation: 'Operation', | |
| 16 | + lastDegree: 'Last Degree', | |
| 17 | + currentDegree: 'Current Degree', | |
| 18 | + unitPrice: 'Unit Price', | |
| 19 | + additionalFee: 'Additional Fee', | |
| 20 | + algorithm: 'Algorithm', | |
| 21 | + usage: 'Usage', | |
| 22 | + fixedFee: 'Fixed Fee', | |
| 23 | + payment: 'Payment', | |
| 24 | + paymentHistory: 'Payment History', | |
| 25 | + moreOperations: 'More Operations', | |
| 26 | + cancelFee: 'Cancel Fee', | |
| 27 | + manualFinish: 'Manual Finish', | |
| 28 | + feeChange: 'Fee Change', | |
| 29 | + details: 'Details', | |
| 30 | + note1: 'Note: "-" in receivable end time means not yet receivable or payment has ended', | |
| 31 | + note2: 'Amount receivable -1 generally means there is an error in the fee item formula setting, please check', | |
| 32 | + arrearsSubtotal: 'Arrears Subtotal', | |
| 33 | + parkingLot: ' Parking Lot ', | |
| 34 | + parkingSpace: ' Parking Space', | |
| 35 | + owner: 'Owner', | |
| 36 | + phone: 'Phone' | |
| 37 | + } | |
| 38 | + }, | |
| 39 | + zh: { | |
| 40 | + simplifyCarFee: { | |
| 41 | + buyMonthCard: '买月卡', | |
| 42 | + batchPayment: '批量缴费', | |
| 43 | + createFee: '创建费用', | |
| 44 | + feeItem: '费用项目', | |
| 45 | + feeFlag: '费用标识', | |
| 46 | + feeType: '费用类型', | |
| 47 | + amountReceivable: '应收金额', | |
| 48 | + accountingTime: '建账时间', | |
| 49 | + receivablePeriod: '应收时间段', | |
| 50 | + description: '说明', | |
| 51 | + status: '状态', | |
| 52 | + operation: '操作', | |
| 53 | + lastDegree: '上期度数', | |
| 54 | + currentDegree: '本期度数', | |
| 55 | + unitPrice: '单价', | |
| 56 | + additionalFee: '附加费', | |
| 57 | + algorithm: '算法', | |
| 58 | + usage: '用量', | |
| 59 | + fixedFee: '固定费', | |
| 60 | + payment: '缴费', | |
| 61 | + paymentHistory: '缴费历史', | |
| 62 | + moreOperations: '更多操作', | |
| 63 | + cancelFee: '取消费用', | |
| 64 | + manualFinish: '手工结束', | |
| 65 | + feeChange: '费用变更', | |
| 66 | + details: '详情', | |
| 67 | + note1: '注意: 应收结束时间 "-" 表示未到应收时间 或 收费已结束', | |
| 68 | + note2: '应收金额 为-1 一般为费用项公式设置出错请检查', | |
| 69 | + arrearsSubtotal: '欠费小计', | |
| 70 | + parkingLot: '车场', | |
| 71 | + parkingSpace: '车位', | |
| 72 | + owner: '业主', | |
| 73 | + phone: '电话' | |
| 74 | + } | |
| 75 | + } | |
| 76 | +} | |
| 0 | 77 | \ No newline at end of file | ... | ... |
src/views/simplify/simplifyContractLang.js
0 → 100644
| 1 | +export const messages = { | |
| 2 | + en: { | |
| 3 | + simplifyContract: { | |
| 4 | + contractName: 'Contract Name', | |
| 5 | + contractCode: 'Contract Code', | |
| 6 | + parentContractCode: 'Parent Contract Code', | |
| 7 | + contractType: 'Contract Type', | |
| 8 | + startTime: 'Start Time', | |
| 9 | + endTime: 'End Time', | |
| 10 | + status: 'Status', | |
| 11 | + operation: 'Operation', | |
| 12 | + fee: 'Fee', | |
| 13 | + view: 'View', | |
| 14 | + print: 'Print', | |
| 15 | + draftContract: 'Draft Contract' | |
| 16 | + } | |
| 17 | + }, | |
| 18 | + zh: { | |
| 19 | + simplifyContract: { | |
| 20 | + contractName: '合同名称', | |
| 21 | + contractCode: '合同编号', | |
| 22 | + parentContractCode: '父合同编号', | |
| 23 | + contractType: '合同类型', | |
| 24 | + startTime: '开始时间', | |
| 25 | + endTime: '结束时间', | |
| 26 | + status: '状态', | |
| 27 | + operation: '操作', | |
| 28 | + fee: '费用', | |
| 29 | + view: '查看', | |
| 30 | + print: '打印', | |
| 31 | + draftContract: '起草合同' | |
| 32 | + } | |
| 33 | + } | |
| 34 | +} | |
| 0 | 35 | \ No newline at end of file | ... | ... |