装修功能测试中

This commit is contained in:
wuxw 2025-07-12 11:21:49 +08:00
parent dc3c5a73ca
commit 81ca23ff1b
4 changed files with 138 additions and 166 deletions

View File

@ -1,8 +1,8 @@
<template>
<el-dialog :title="$t('roomRenovationManage.add')" :visible.sync="visible" width="50%" @close="resetForm">
<el-dialog :title="$t('roomRenovationManage.add')" :visible.sync="visible" width="40%" @close="resetForm">
<el-form :model="form" ref="form" label-width="120px">
<el-form-item :label="$t('roomRenovationManage.room')" prop="roomName" required>
<el-input v-model.trim="form.roomName" :placeholder="$t('roomRenovationManage.roomNumberPlaceholder')"
<el-input v-model.trim="form.roomName" :placeholder="$t('roomRenovationManage.roomNumberPlaceholder')"
@blur="queryRoom" />
</el-form-item>
@ -31,7 +31,8 @@
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.renovationManager')" prop="personMain" required>
<el-input v-model.trim="form.personMain" :placeholder="$t('roomRenovationManage.renovationManagerPlaceholder')" />
<el-input v-model.trim="form.personMain"
:placeholder="$t('roomRenovationManage.renovationManagerPlaceholder')" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.managerPhone')" prop="personMainTel" required>
@ -57,6 +58,8 @@
<script>
import { addRoomRenovation } from '@/api/community/roomRenovationManageApi'
import { queryRooms } from '@/api/room/roomApi'
import { getCommunityId } from '@/api/community/communityApi'
export default {
name: 'AddRoomRenovation',
@ -95,14 +98,14 @@ export default {
personMainTel: '',
remark: '',
isPostpone: 'N',
communityId: this.getCommunityId()
communityId: getCommunityId()
}
this.$refs.form && this.$refs.form.resetFields()
},
async saveRoomRenovation() {
try {
this.form.communityId = this.getCommunityId()
this.form.communityId = getCommunityId()
await addRoomRenovation(this.form)
this.$message.success(this.$t('common.operationSuccess'))
this.visible = false
@ -118,6 +121,13 @@ export default {
try {
// API
const {rooms} = await queryRooms({ roomName: this.form.roomName,page:1,row:10,communityId:getCommunityId() })
if(rooms.length > 0){
this.form.personName = rooms[0].ownerName
this.form.personTel = rooms[0].link
this.form.roomId = rooms[0].roomId
}
// const roomInfo = await getRoomInfo({ roomName: this.form.roomName })
// this.form.personName = roomInfo.ownerName
// this.form.personTel = roomInfo.link
@ -127,4 +137,15 @@ export default {
}
}
}
</script>
</script>
<style scoped>
.el-date-editor{
width: 100%;
}
.el-date-editor.el-input{
width: 100%;
}
.el-form-item{
width: 95%;
}
</style>

View File

@ -1,130 +1,79 @@
<template>
<el-dialog
:title="$t('roomRenovationManage.modify')"
:visible.sync="visible"
width="50%"
@close="resetForm"
>
<el-dialog :title="$t('roomRenovationManage.modify')" :visible.sync="visible" width="40%" @close="resetForm">
<el-form :model="form" ref="form" label-width="120px">
<el-form-item :label="$t('roomRenovationManage.room')" prop="roomName">
<el-input
v-model.trim="form.roomName"
disabled
/>
<el-input v-model.trim="form.roomName" disabled />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.contactPerson')" prop="personName" required>
<el-input
v-model.trim="form.personName"
:placeholder="$t('roomRenovationManage.contactPersonPlaceholder')"
/>
<el-input v-model.trim="form.personName" :placeholder="$t('roomRenovationManage.contactPersonPlaceholder')" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.phone')" prop="personTel" required>
<el-input
v-model.trim="form.personTel"
:placeholder="$t('roomRenovationManage.phonePlaceholder')"
/>
<el-input v-model.trim="form.personTel" :placeholder="$t('roomRenovationManage.phonePlaceholder')" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.renovationStartTime')" prop="startTime" required>
<el-date-picker
v-model="form.startTime"
type="date"
:placeholder="$t('roomRenovationManage.startTimePlaceholder')"
value-format="yyyy-MM-dd"
/>
<el-date-picker v-model="form.startTime" type="date"
:placeholder="$t('roomRenovationManage.startTimePlaceholder')" value-format="yyyy-MM-dd" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.renovationEndTime')" prop="endTime" required>
<el-date-picker
v-model="form.endTime"
type="date"
:placeholder="$t('roomRenovationManage.endTimePlaceholder')"
value-format="yyyy-MM-dd"
/>
<el-date-picker v-model="form.endTime" type="date" :placeholder="$t('roomRenovationManage.endTimePlaceholder')"
value-format="yyyy-MM-dd" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.isPostponed')" prop="isPostpone" required>
<el-select v-model="form.isPostpone">
<el-option :label="$t('roomRenovationManage.yes')" value="Y" />
<el-option :label="$t('roomRenovationManage.no')" value="N" />
</el-select>
</el-form-item>
<el-form-item
v-if="form.isPostpone === 'Y'"
:label="$t('roomRenovationManage.postponeTime')"
prop="postponeTime"
>
<el-date-picker
v-model="form.postponeTime"
type="date"
:placeholder="$t('roomRenovationManage.endTimePlaceholder')"
value-format="yyyy-MM-dd"
/>
<el-form-item v-if="form.isPostpone === 'Y'" :label="$t('roomRenovationManage.postponeTime')" prop="postponeTime">
<el-date-picker v-model="form.postponeTime" type="date"
:placeholder="$t('roomRenovationManage.endTimePlaceholder')" value-format="yyyy-MM-dd" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.renovationCompany')" prop="renovationCompany" required>
<el-input
v-model.trim="form.renovationCompany"
:placeholder="$t('roomRenovationManage.renovationCompanyPlaceholder')"
/>
<el-input v-model.trim="form.renovationCompany"
:placeholder="$t('roomRenovationManage.renovationCompanyPlaceholder')" value-format="yyyy-MM-dd" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.renovationManager')" prop="personMain" required>
<el-input
v-model.trim="form.personMain"
:placeholder="$t('roomRenovationManage.renovationManagerPlaceholder')"
/>
<el-input v-model.trim="form.personMain"
:placeholder="$t('roomRenovationManage.renovationManagerPlaceholder')" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.managerPhone')" prop="personMainTel" required>
<el-input
v-model.trim="form.personMainTel"
:placeholder="$t('roomRenovationManage.managerPhonePlaceholder')"
/>
<el-input v-model.trim="form.personMainTel" :placeholder="$t('roomRenovationManage.managerPhonePlaceholder')" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.status')" prop="state" required>
<!-- <el-form-item :label="$t('roomRenovationManage.status')" prop="state" required>
<el-select v-model="form.state">
<el-option
v-for="(item, index) in states"
:key="index"
:label="item.name"
:value="item.statusCd"
/>
<el-option v-for="(item, index) in states" :key="index" :label="item.name" :value="item.statusCd" />
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item :label="$t('roomRenovationManage.isViolation')" prop="isViolation" required>
<el-select v-model="form.isViolation">
<el-option :label="$t('roomRenovationManage.yes')" value="Y" />
<el-option :label="$t('roomRenovationManage.no')" value="N" />
</el-select>
</el-form-item>
<el-form-item
v-if="form.isViolation === 'Y'"
:label="$t('roomRenovationManage.violationDesc')"
prop="violationDesc"
>
<el-input
v-model.trim="form.violationDesc"
type="textarea"
:placeholder="$t('roomRenovationManage.violationDescPlaceholder')"
/>
<el-form-item v-if="form.isViolation === 'Y'" :label="$t('roomRenovationManage.violationDesc')"
prop="violationDesc">
<el-input v-model.trim="form.violationDesc" type="textarea"
:placeholder="$t('roomRenovationManage.violationDescPlaceholder')" />
</el-form-item>
<el-form-item :label="$t('roomRenovationManage.remark')" prop="remark">
<el-input
v-model.trim="form.remark"
type="textarea"
:placeholder="$t('roomRenovationManage.remarkPlaceholder')"
/>
<el-input v-model.trim="form.remark" type="textarea"
:placeholder="$t('roomRenovationManage.remarkPlaceholder')" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="visible = false">
{{ $t('roomRenovationManage.cancel') }}
@ -138,7 +87,8 @@
<script>
import { updateRoomRenovation } from '@/api/community/roomRenovationManageApi'
import { getDict } from '@/api/community/communityApi'
import { dateFormat } from '@/utils/dateUtil'
export default {
name: 'EditRoomRenovation',
data() {
@ -179,9 +129,12 @@ export default {
...row,
communityId: this.getCommunityId()
}
this.form.startTime = dateFormat(this.form.startTime)
this.form.endTime = dateFormat(this.form.endTime)
this.visible = true
},
resetForm() {
this.form = {
rId: '',
@ -202,16 +155,16 @@ export default {
communityId: ''
}
},
async getDictData() {
try {
const res = await this.$store.dispatch('dict/getDict', 'room_renovation')
this.states = res.state || []
const res = await getDict('room_renovation','state')
this.states = res || []
} catch (error) {
console.error('获取字典数据失败:', error)
}
},
async editRoomRenovation() {
try {
await updateRoomRenovation(this.form)
@ -225,4 +178,15 @@ export default {
}
}
}
</script>
</script>
<style scoped>
.el-date-editor{
width: 100%;
}
.el-date-editor.el-input{
width: 100%;
}
.el-form-item{
width: 95%;
}
</style>

View File

@ -5,7 +5,8 @@
<div slot="header" class=" flex justify-between">
<span>{{ $t('roomRenovationManage.queryCondition') }}</span>
<el-button type="text" style="float: right; padding: 3px 0" @click="toggleMoreCondition">
{{ roomRenovationManageInfo.moreCondition ? $t('roomRenovationManage.hide') : $t('roomRenovationManage.more') }}
{{ roomRenovationManageInfo.moreCondition ? $t('roomRenovationManage.hide') : $t('roomRenovationManage.more')
}}
</el-button>
</div>
<div>
@ -109,40 +110,36 @@
</el-table-column>
<el-table-column prop="violationDesc" :label="$t('roomRenovationManage.violationDesc')" align="center" />
<el-table-column prop="remark" :label="$t('roomRenovationManage.remark')" align="center" />
<el-table-column :label="$t('roomRenovationManage.operation')" align="center" width="350">
<el-table-column :label="$t('roomRenovationManage.operation')" align="center" width="150">
<template slot-scope="scope">
<div v-if="scope.row.state === '1000'">
<el-button size="mini" @click="openRoomRenovationFee(scope.row)">
{{ $t('roomRenovationManage.fee') }}
</el-button>
</div>
<div v-if="scope.row.state === '1000' && scope.row.isViolation === 'N'">
<el-button size="mini" type="primary" @click="openToExamine(scope.row)">
{{ $t('roomRenovationManage.review') }}
</el-button>
</div>
<div v-if="scope.row.state === '3000' && scope.row.isViolation === 'N'">
<el-button size="mini" type="success" @click="openDecorationCompleted(scope.row)">
{{ $t('roomRenovationManage.completeRenovation') }}
</el-button>
</div>
<div v-if="scope.row.state === '4000' && scope.row.isViolation === 'N'">
<el-button size="mini" type="warning" @click="openDecorationAcceptanceModel(scope.row)">
{{ $t('roomRenovationManage.renovationAcceptance') }}
</el-button>
</div>
<div v-if="scope.row.state === '5000' || scope.row.state === '6000'">
<el-button size="mini" @click="openRoomRenovationDetail(scope.row)">
{{ $t('roomRenovationManage.acceptanceDetail') }}
</el-button>
</div>
<el-button size="mini" @click="openEditRoomRenovationModel(scope.row)">
<el-button v-if="scope.row.state === '1000'" size="mini" type="text"
@click="openRoomRenovationFee(scope.row)">
{{ $t('roomRenovationManage.fee') }}
</el-button>
<el-button size="mini" v-if="scope.row.state === '1000' && scope.row.isViolation === 'N'" type="text"
@click="openToExamine(scope.row)">
{{ $t('roomRenovationManage.review') }}
</el-button>
<el-button size="mini" v-if="scope.row.state === '3000' && scope.row.isViolation === 'N'" type="text"
@click="openDecorationCompleted(scope.row)">
{{ $t('roomRenovationManage.completeRenovation') }}
</el-button>
<el-button size="mini" v-if="scope.row.state === '4000' && scope.row.isViolation === 'N'" type="text"
@click="openDecorationAcceptanceModel(scope.row)">
{{ $t('roomRenovationManage.renovationAcceptance') }}
</el-button>
<el-button size="mini" v-if="scope.row.state === '5000' || scope.row.state === '6000'" type="text"
@click="openRoomRenovationDetail(scope.row)">
{{ $t('roomRenovationManage.acceptanceDetail') }}
</el-button>
<el-button size="mini" type="text" @click="openEditRoomRenovationModel(scope.row)">
{{ $t('roomRenovationManage.modify') }}
</el-button>
<el-button size="mini" type="danger" @click="openDeleteRoomRenovationModel(scope.row)">
<el-button size="mini" type="text" @click="openDeleteRoomRenovationModel(scope.row)">
{{ $t('roomRenovationManage.delete') }}
</el-button>
<el-button size="mini" @click="openRoomDecorationRecord(scope.row)">
<el-button size="mini" type="text" @click="openRoomDecorationRecord(scope.row)">
{{ $t('roomRenovationManage.trackRecord') }}
</el-button>
</template>
@ -150,9 +147,9 @@
</el-table>
<!-- 分页 -->
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.current"
:page-sizes="[10, 20, 50]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper"
:total="page.total" style="margin-top: 20px;" />
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="page.current" :page-sizes="[10, 20, 50]" :page-size="page.size"
layout="total, sizes, prev, pager, next, jumper" :total="page.total" style="margin-top: 20px;" />
</div>
</el-card>
@ -174,7 +171,7 @@ import RoomToExamine from '@/components/community/RoomToExamine'
import EditRoomRenovation from '@/components/community/EditRoomRenovation'
import DeleteRoomRenovation from '@/components/community/DeleteRoomRenovation'
import RoomRenovationCompleted from '@/components/community/RoomRenovationCompleted'
import {getDict} from '@/api/community/communityApi'
import { getDict } from '@/api/community/communityApi'
export default {
name: 'RoomRenovationManageList',
@ -220,7 +217,7 @@ export default {
//
async getDictData() {
try {
const res = await getDict('room_renovation','state')
const res = await getDict('room_renovation', 'state')
this.roomRenovationManageInfo.states = res || []
} catch (error) {
console.error('获取字典数据失败:', error)
@ -368,5 +365,14 @@ export default {
.clearfix:after {
clear: both;
}
.el-date-editor {
width: 100%;
}
.el-date-editor.el-input {
width: 100%;
}
}
</style>

View File

@ -1,10 +1,10 @@
<template>
<div>
<el-row :gutter="20">
<el-col :span="4">
<el-card class="border-radius">
<div class="treeview attendance-staff">
<ul class="list-group text-center border-radius">
<div class="padding">
<el-row :gutter="10">
<el-col :span="3">
<div class="list-group-border-radius">
<div class=" treeview">
<ul class="list-group text-center ">
<li v-for="(item, index) in states" :key="index" @click="swatchState(item)" :class="{
'vc-node-selected': conditions.state === item.state
}" class="list-group-item node-orgTree">
@ -12,9 +12,9 @@
</li>
</ul>
</div>
</el-card>
</div>
</el-col>
<el-col :span="20">
<el-col :span="21">
<el-row>
<el-col :span="24">
<el-card>
@ -51,7 +51,7 @@
</el-card>
</el-col>
</el-row>
<el-row>
<el-row class="margin-top">
<el-col :span="24">
<el-card>
<div slot="header" class="flex justify-between">
@ -269,25 +269,6 @@ export default {
border-radius: 4px;
}
.list-group {
padding: 0;
margin: 0;
list-style: none;
}
.list-group-item {
padding: 10px 15px;
margin-bottom: -1px;
background-color: #fff;
border: 1px solid #ddd;
cursor: pointer;
}
.list-group-item:hover,
.vc-node-selected {
background-color: #f5f7fa;
color: #409EFF;
}
.float-right {
float: right;