Commit 0a41b92eb08e66d347f434f00daa147fc8a2d53d

Authored by wuxw
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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 18 \ No newline at end of file
src/api/simplify/simplifyContractApi.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +export function queryContract(params) {
  4 + return request({
  5 + url: '/contract/queryContract',
  6 + method: 'get',
  7 + params
  8 + })
  9 +}
0 \ No newline at end of file 10 \ No newline at end of file
src/api/simplify/simplifyOwnerAccessContolApi.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 +}
0 \ No newline at end of file 10 \ No newline at end of file
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 \ No newline at end of file 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 \ No newline at end of file 18 \ No newline at end of file
src/api/simplify/simplifyOwnerMemberApi.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +export function queryOwnerMembers(params) {
  4 + return request({
  5 + url: '/owner.queryOwnerMembers',
  6 + method: 'get',
  7 + params
  8 + })
  9 +}
0 \ No newline at end of file 10 \ No newline at end of file
src/api/simplify/simplifyOwnerRepairApi.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +export function listOwnerRepairs(params) {
  4 + return request({
  5 + url: '/ownerRepair.listOwnerRepairs',
  6 + method: 'get',
  7 + params
  8 + })
  9 +}
0 \ No newline at end of file 10 \ No newline at end of file
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 \ No newline at end of file 18 \ No newline at end of file
src/api/simplify/simplifyShopsHireLogApi.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +export function queryShopsHireLog(params) {
  4 + return request({
  5 + url: '/ownerApi/queryShopsHireLog',
  6 + method: 'get',
  7 + params
  8 + })
  9 +}
0 \ No newline at end of file 10 \ No newline at end of file
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 \ No newline at end of file 69 \ No newline at end of file
src/components/report/InputSearchOwner.vue
@@ -10,8 +10,9 @@ @@ -10,8 +10,9 @@
10 <span class="separator">---</span> 10 <span class="separator">---</span>
11 <span>{{ item.link }}</span> 11 <span>{{ item.link }}</span>
12 </div> 12 </div>
  13 +
13 </div> 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 </el-popover> 16 </el-popover>
16 </div> 17 </div>
17 </template> 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 20 \ No newline at end of file
src/i18n/feeI18n.js
@@ -26,6 +26,7 @@ import { messages as feeSummaryMessages } from &#39;../views/fee/feeSummaryLang&#39; @@ -26,6 +26,7 @@ import { messages as feeSummaryMessages } from &#39;../views/fee/feeSummaryLang&#39;
26 import { messages as roomCreateFeeMessages } from '../views/fee/roomCreateFeeLang.js' 26 import { messages as roomCreateFeeMessages } from '../views/fee/roomCreateFeeLang.js'
27 import { messages as propertyFeeMessages } from '../views/fee/propertyFeeLang' 27 import { messages as propertyFeeMessages } from '../views/fee/propertyFeeLang'
28 import { messages as batchPayFeeOrderMessages } from '../views/fee/batchPayFeeOrderLang' 28 import { messages as batchPayFeeOrderMessages } from '../views/fee/batchPayFeeOrderLang'
  29 +import { messages as simplifyAcceptanceMessages } from '../views/simplify/simplifyAcceptanceLang.js'
29 30
30 export const messages = { 31 export const messages = {
31 en: { 32 en: {
@@ -57,6 +58,7 @@ export const messages = { @@ -57,6 +58,7 @@ export const messages = {
57 ...roomCreateFeeMessages.en, 58 ...roomCreateFeeMessages.en,
58 ...propertyFeeMessages.en, 59 ...propertyFeeMessages.en,
59 ...batchPayFeeOrderMessages.en, 60 ...batchPayFeeOrderMessages.en,
  61 + ...simplifyAcceptanceMessages.en,
60 }, 62 },
61 zh: { 63 zh: {
62 ...contractCreateFeeMessages.zh, 64 ...contractCreateFeeMessages.zh,
@@ -87,5 +89,6 @@ export const messages = { @@ -87,5 +89,6 @@ export const messages = {
87 ...roomCreateFeeMessages.zh, 89 ...roomCreateFeeMessages.zh,
88 ...propertyFeeMessages.zh, 90 ...propertyFeeMessages.zh,
89 ...batchPayFeeOrderMessages.zh, 91 ...batchPayFeeOrderMessages.zh,
  92 + ...simplifyAcceptanceMessages.zh,
90 } 93 }
91 } 94 }
92 \ No newline at end of file 95 \ No newline at end of file
src/router/feeRouter.js
@@ -120,9 +120,13 @@ export default [ @@ -120,9 +120,13 @@ export default [
120 component: () => import('@/views/fee/propertyFeeList.vue') 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 component: () => import('@/views/fee/batchPayFeeOrderList.vue') 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 \ No newline at end of file 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 \ No newline at end of file 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 + '&currentTab=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 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 35 \ No newline at end of file