优化代码

This commit is contained in:
wuxw 2025-07-14 09:38:23 +08:00
parent 8e80e9f4df
commit ac99dc052e
12 changed files with 86 additions and 236 deletions

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
export function importData(data) {
return new Promise((resolve, reject) => {
request({
url: '/assetImport/importData',
url: '/callComponent/upload/assetImport/importData',
method: 'post',
data,
headers: {

View File

@ -37,7 +37,7 @@ export function queryImportFee(params) {
export function importRoomFeeData(formData) {
return new Promise((resolve, reject) => {
request({
url: '/assetImport/importData',
url: '/callComponent/upload/assetImport/importData',
method: 'post',
data: formData,
headers: {
@ -73,7 +73,7 @@ export function downloadImportTemplate(params) {
}).then(response => {
const res = response.data
if (res.code === 0) {
resolve(res.data)
resolve(res)
} else {
reject(new Error(res.msg))
}

View File

@ -8,7 +8,7 @@ import request from '@/utils/request'
export function importData(formData) {
return new Promise((resolve, reject) => {
request({
url: '/assetImport/importData',
url: '/callComponent/upload/assetImport/importData',
method: 'post',
data: formData,
headers: {

View File

@ -1,6 +1,6 @@
<template>
<el-dialog :title="$t('floorShare.addTitle')" :visible.sync="dialogVisible" width="50%" @close="handleClose">
<el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="right">
<el-dialog :title="$t('floorShare.addTitle')" :visible.sync="dialogVisible" width="40%" @close="handleClose">
<el-form ref="form" :model="form" :rules="rules" label-width="120px" class="text-left" label-position="right">
<el-form-item :label="$t('floorShare.floor')" prop="floorNum">
<el-input v-model="form.floorNum" disabled />
</el-form-item>

View File

@ -1,53 +1,20 @@
<template>
<el-dialog
:title="$t('audit.title')"
:visible.sync="visible"
width="50%"
@close="handleClose"
>
<el-form
ref="form"
:model="formData"
label-width="120px"
label-position="right"
>
<el-form-item
:label="$t('audit.form.state')"
prop="state"
:rules="[
{ required: true, message: $t('audit.rules.stateRequired'), trigger: 'change' }
]"
>
<el-select
v-model="formData.state"
:placeholder="$t('audit.placeholder.state')"
style="width:100%"
@change="handleStateChange"
>
<el-option
:label="$t('audit.state.agree')"
value="1100"
/>
<el-option
:label="$t('audit.state.reject')"
value="1200"
/>
<el-dialog :title="$t('audit.title')" :visible.sync="visible" width="50%" @close="handleClose">
<el-form ref="form" :model="formData" label-width="120px" label-position="right">
<el-form-item :label="$t('audit.form.state')" prop="state" :rules="[
{ required: true, message: $t('audit.rules.stateRequired'), trigger: 'change' }
]">
<el-select v-model="formData.state" :placeholder="$t('audit.placeholder.state')" style="width:100%"
@change="handleStateChange">
<el-option :label="$t('audit.state.agree')" value="1100" />
<el-option :label="$t('audit.state.reject')" value="1200" />
</el-select>
</el-form-item>
<el-form-item
:label="$t('audit.form.remark')"
prop="remark"
:rules="[
{ required: true, message: $t('audit.rules.remarkRequired'), trigger: 'blur' },
{ max: 200, message: $t('audit.rules.remarkMaxLength'), trigger: 'blur' }
]"
>
<el-input
v-model="formData.remark"
type="textarea"
:rows="3"
:placeholder="$t('audit.placeholder.remark')"
/>
<el-form-item :label="$t('audit.form.remark')" prop="remark" :rules="[
{ required: true, message: $t('audit.rules.remarkRequired'), trigger: 'blur' },
{ max: 200, message: $t('audit.rules.remarkMaxLength'), trigger: 'blur' }
]">
<el-input v-model="formData.remark" type="textarea" :rows="3" :placeholder="$t('audit.placeholder.remark')" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -100,7 +67,7 @@ export default {
if (this.formData.state === '1200') {
this.formData.remark = `${this.$t('audit.state.reject')}:${this.formData.remark}`
}
this.$emit('success', this.formData)
this.$emit('notifyAuditInfo', this.formData)
this.visible = false
}
})

View File

@ -1,76 +1,29 @@
<template>
<el-dialog
:title="$t('importRoomFee.title')"
:visible.sync="visible"
width="50%"
@close="handleClose"
>
<el-form
ref="form"
:model="form"
label-width="120px"
label-position="right"
>
<el-form-item
:label="$t('importRoomFee.form.feeTypeCd')"
prop="feeTypeCd"
:rules="[
{ required: true, message: $t('importRoomFee.rules.feeTypeCdRequired'), trigger: 'change' }
]"
>
<el-select
v-model="form.feeTypeCd"
:placeholder="$t('importRoomFee.placeholder.feeTypeCd')"
style="width:100%"
@change="handleFeeTypeChange"
>
<el-option
v-for="item in feeTypeCds"
:key="item.statusCd"
:label="item.name"
:value="item.statusCd"
/>
<el-dialog :title="$t('importRoomFee.title')" :visible.sync="visible" width="50%" @close="handleClose">
<el-form ref="form" :model="form" label-width="120px" class="text-left" label-position="right">
<el-form-item :label="$t('importRoomFee.form.feeTypeCd')" prop="feeTypeCd" :rules="[
{ required: true, message: $t('importRoomFee.rules.feeTypeCdRequired'), trigger: 'change' }
]">
<el-select v-model="form.feeTypeCd" :placeholder="$t('importRoomFee.placeholder.feeTypeCd')" style="width:100%"
@change="handleFeeTypeChange">
<el-option v-for="item in feeTypeCds" :key="item.statusCd" :label="item.name" :value="item.statusCd" />
</el-select>
</el-form-item>
<el-form-item
:label="$t('importRoomFee.form.objType')"
prop="objType"
:rules="[
{ required: true, message: $t('importRoomFee.rules.objTypeRequired'), trigger: 'change' }
]"
>
<el-select
v-model="form.objType"
:placeholder="$t('importRoomFee.placeholder.objType')"
style="width:100%"
>
<el-option
:label="$t('importRoomFee.options.room')"
value="3333"
/>
<el-option
:label="$t('importRoomFee.options.parking')"
value="6666"
/>
<el-form-item :label="$t('importRoomFee.form.objType')" prop="objType" :rules="[
{ required: true, message: $t('importRoomFee.rules.objTypeRequired'), trigger: 'change' }
]">
<el-select v-model="form.objType" :placeholder="$t('importRoomFee.placeholder.objType')" style="width:100%">
<el-option :label="$t('importRoomFee.options.room')" value="3333" />
<el-option :label="$t('importRoomFee.options.parking')" value="6666" />
</el-select>
</el-form-item>
<el-form-item
:label="$t('importRoomFee.form.file')"
prop="file"
:rules="[
{ required: true, message: $t('importRoomFee.rules.fileRequired'), trigger: 'change' }
]"
>
<el-upload
ref="upload"
:auto-upload="false"
:limit="1"
:on-change="handleFileChange"
:on-remove="handleFileRemove"
accept=".xls,.xlsx"
>
<el-form-item :label="$t('importRoomFee.form.file')" prop="file" :rules="[
{ required: true, message: $t('importRoomFee.rules.fileRequired'), trigger: 'change' }
]">
<el-upload ref="upload" :auto-upload="false" :limit="1" action="" :on-change="handleFileChange"
:on-remove="handleFileRemove" accept=".xls,.xlsx">
<el-button size="small" type="primary">
{{ $t('importRoomFee.button.selectFile') }}
</el-button>
@ -95,11 +48,7 @@
<el-button @click="visible = false">
{{ $t('common.cancel') }}
</el-button>
<el-button
type="primary"
:loading="loading"
@click="handleSubmit"
>
<el-button type="primary" :loading="loading" @click="handleSubmit">
{{ $t('common.confirm') }}
</el-button>
</div>
@ -164,14 +113,14 @@ export default {
formData.append('objType', this.form.objType)
formData.append('importAdapt', 'importRoomFee')
await importRoomFeeData(formData)
await importRoomFeeData(formData)
this.$message.success(this.$t('importRoomFee.message.importSuccess'))
this.$emit('success')
this.visible = false
})
} catch (error) {
console.error('导入失败:', error)
this.$message.error(error.message || this.$t('importRoomFee.message.importFailed'))
this.$message.error(error.response.data)
} finally {
this.loading = false
}
@ -183,7 +132,11 @@ export default {
objType: this.form.objType,
pagePath: 'exportFeeImportTemplate'
}
await downloadImportTemplate(params)
const res = await downloadImportTemplate(params)
if (res.code === 0) {
this.visible = false
this.$router.push('/pages/property/downloadTempFile?tab=下载中心')
}
this.$message.success(this.$t('importRoomFee.message.downloadSuccess'))
} catch (error) {
console.error('下载模板失败:', error)

View File

@ -1,60 +1,38 @@
<template>
<el-dialog
:title="$t('returnPayFee.fillRefundReason')"
:visible.sync="visible"
width="50%"
@close="handleClose"
>
<el-form
ref="form"
:model="formData"
label-width="120px"
label-position="left"
>
<el-dialog :title="$t('returnPayFee.fillRefundReason')" :visible.sync="visible" width="50%" @close="handleClose">
<el-form ref="form" :model="formData" label-width="120px" label-position="left">
<el-form-item :label="$t('returnPayFee.payment') + 'ID'">
<el-input v-model="formData.detailId" readonly />
</el-form-item>
<el-form-item :label="$t('returnPayFee.cycle') + $t('returnPayFee.monthUnit')">
<el-input v-model="formData.cycles" readonly />
</el-form-item>
<el-form-item :label="$t('returnPayFee.receivableAmount')">
<el-input v-model="formData.receivableAmount" readonly />
</el-form-item>
<el-form-item :label="$t('returnPayFee.receivedAmount')">
<el-input v-model="formData.receivedAmount" readonly />
</el-form-item>
<el-form-item :label="$t('returnPayFee.paymentTime')">
<el-input v-model="formData.payTime" readonly />
</el-form-item>
<el-form-item
:label="$t('returnPayFee.refundReason')"
prop="reason"
:rules="[
{ required: true, message: $t('returnPayFee.reasonRequired'), trigger: 'blur' },
{ max: 200, message: $t('returnPayFee.reasonMaxLength'), trigger: 'blur' }
]"
>
<el-input
v-model="formData.reason"
type="textarea"
:rows="3"
:placeholder="$t('returnPayFee.reasonPlaceholder')"
/>
<el-form-item :label="$t('returnPayFee.refundReason')" prop="reason" :rules="[
{ required: true, message: $t('returnPayFee.reasonRequired'), trigger: 'blur' },
{ max: 200, message: $t('returnPayFee.reasonMaxLength'), trigger: 'blur' }
]">
<el-input v-model="formData.reason" type="textarea" :rows="3"
:placeholder="$t('returnPayFee.reasonPlaceholder')" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ $t('common.cancel') }}</el-button>
<el-button
type="primary"
@click="submitReturnPayFee"
:loading="loading"
>
<el-button type="primary" @click="submitReturnPayFee" :loading="loading">
{{ $t('returnPayFee.submitRefund') }}
</el-button>
</span>
@ -88,6 +66,7 @@ export default {
open(data) {
this.resetForm()
Object.assign(this.formData, data)
this.formData.payTime = data.createTime
this.visible = true
},
resetForm() {
@ -115,7 +94,7 @@ export default {
this.loading = true
await saveReturnPayFee(this.formData)
this.$message.success(this.$t('common.operateSuccess'))
this.visible = false
this.$emit('success')

View File

@ -6,7 +6,7 @@
</el-col>
<el-col :span="20">
<el-card class="box-card">
<div slot="header" class="clearfix">
<div slot="header" class="flex justify-between">
<span>{{ $t('floorShare.title') }}</span>
<el-button v-if="floorShareInfo.conditions.floorId" type="primary" size="small" style="float: right;"
@click="openAddFloorShareModal">

View File

@ -88,7 +88,7 @@
</el-card>
<!-- 子组件 -->
<return-pay-fee ref="returnPayFee" />
<return-pay-fee ref="returnPayFee" @success="queryFeeDetailMethod" />
<view-fee-detail-discount ref="viewFeeDetailDiscount" />
</div>

View File

@ -7,24 +7,13 @@
</div>
<el-row :gutter="20">
<el-col :span="6">
<el-input
v-model="searchForm.importFeeId"
:placeholder="$t('roomFeeImport.search.importFeeId')"
clearable
/>
<el-input v-model="searchForm.importFeeId" :placeholder="$t('roomFeeImport.search.importFeeId')" clearable />
</el-col>
<el-col :span="6">
<el-select
v-model="searchForm.feeTypeCd"
:placeholder="$t('roomFeeImport.search.feeTypeCd')"
style="width:100%"
>
<el-option
v-for="item in filteredFeeTypeCds"
:key="item.statusCd"
:label="item.name"
:value="item.statusCd"
/>
<el-select v-model="searchForm.feeTypeCd" :placeholder="$t('roomFeeImport.search.feeTypeCd')"
style="width:100%">
<el-option v-for="item in filteredFeeTypeCds" :key="item.statusCd" :label="item.name"
:value="item.statusCd" />
</el-select>
</el-col>
<el-col :span="6">
@ -39,66 +28,28 @@
<el-card class="table-card">
<div slot="header" class="flex justify-between">
<span>{{ $t('roomFeeImport.table.title') }}</span>
<el-button
type="primary"
style="float: right;"
@click="handleImport"
>
<el-button type="primary" style="float: right;" @click="handleImport">
{{ $t('roomFeeImport.button.import') }}
</el-button>
</div>
<el-table
:data="tableData"
border
style="width: 100%"
v-loading="loading"
>
<el-table-column
prop="importFeeId"
:label="$t('roomFeeImport.table.importFeeId')"
align="center"
/>
<el-table-column
prop="feeTypeCdName"
:label="$t('roomFeeImport.table.feeTypeCd')"
align="center"
/>
<el-table-column
prop="createTime"
:label="$t('roomFeeImport.table.createTime')"
align="center"
/>
<el-table-column
prop="remark"
:label="$t('roomFeeImport.table.remark')"
align="center"
/>
<el-table-column
:label="$t('common.operation')"
align="center"
width="150"
>
<el-table :data="tableData" border style="width: 100%" v-loading="loading">
<el-table-column prop="importFeeId" :label="$t('roomFeeImport.table.importFeeId')" align="center" />
<el-table-column prop="feeTypeCdName" :label="$t('roomFeeImport.table.feeTypeCd')" align="center" />
<el-table-column prop="createTime" :label="$t('roomFeeImport.table.createTime')" align="center" />
<el-table-column prop="remark" :label="$t('roomFeeImport.table.remark')" align="center" />
<el-table-column :label="$t('common.operation')" align="center" width="150">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleDetail(scope.row)"
>
<el-button size="mini" @click="handleDetail(scope.row)">
{{ $t('common.detail') }}
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="pagination.current"
:page-sizes="[10, 20, 30, 50]"
:page-size="pagination.size"
:total="pagination.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<el-pagination :current-page="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size"
:total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
@current-change="handleCurrentChange" />
</el-card>
<!-- 导入组件 -->

View File

@ -113,7 +113,7 @@ export default {
},
handleDetail(row) {
this.$router.push({
path: '/fee/feeDetail',
path: '/views/fee/feeDetail',
query: { feeId: row.feeId }
})
},

View File

@ -13,7 +13,7 @@
</el-col>
<el-col :span="20">
<el-card>
<div slot="header" class="clearfix">
<div slot="header" class="flex justify-between">
<span>{{ $t('shareReading.search.title') }}</span>
</div>
<div class="search-wrapper">
@ -43,7 +43,7 @@
</el-card>
<el-card class="mt-20">
<div slot="header" class="clearfix">
<div slot="header" class="flex justify-between">
<span>{{ $t('shareReading.list.title') }}</span>
<el-button type="primary" size="small" style="float:right" @click="_openAddShareReadingModal">
{{ $t('shareReading.list.addReading') }}