| | |
| | | # VUE_APP_API_URL = 'http://192.168.5.13/gateway_interface' |
| | | |
| | | # 任康 |
| | | VUE_APP_API_URL = 'http://192.168.0.133:10010' |
| | | # VUE_APP_API_URL = 'http://192.168.0.133:10010' |
| | | |
| | | # 萍姐 |
| | | # VUE_APP_API_URL = 'http://192.168.0.108:10010/' |
| | | |
| | | # 测试服务 |
| | | # VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface' |
| | | VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface' |
| | |
| | | :close-on-press-escape="false" |
| | | :wrapper-closable="false" |
| | | :append-to-body="true" |
| | | :destroy-on-close="true" |
| | | :modal="true" |
| | | @close="close" |
| | | > |
| | |
| | | <h2> |
| | | <i class="el-icon-s-unfold" v-if="menuData.collapse" @click="switchCollapseMenu(null)"></i> |
| | | <i class="el-icon-s-fold" v-else @click="switchCollapseMenu(null)"></i> |
| | | {{title}} |
| | | </h2> |
| | | <tagsview class="tags"></tagsview> |
| | | </div> |
| | |
| | | h2 { |
| | | flex-shrink: 0; |
| | | line-height: 48px; |
| | | width: 240px; |
| | | font-size: 19px; |
| | | color: #606263; |
| | | font-weight: normal; |
| | |
| | | } else { |
| | | this.$store.commit('pushtags', menuConfig) |
| | | } |
| | | // console.log(menuConfig.index); |
| | | return menuConfig.index |
| | | }, |
| | | // 默认展开的菜单index |
| | | defaultOpeneds() { |
| | | // return this.menuData.list.map(menu => menu.index) |
| | | |
| | | |
| | | return [this.menuData.list[0].index] |
| | | } |
| | | }, |
| | |
| | | }, |
| | | // 通过判断路由一致返回布尔值添加class,添加高亮效果 |
| | | isActive(route,params, index) { |
| | | const res =(route === this.$route.path && params== this.$route.query.param) |
| | | return res |
| | | // const res =(route === this.$route.path && params== this.$route.query.param) |
| | | return route === this.$route.path |
| | | }, |
| | | scrollToStart() { |
| | | const tagsDiv = document.getElementById('tags-box') |
| | |
| | | //标签高亮 |
| | | .active { |
| | | color: #2080f7; |
| | | box-sizing: border-box; |
| | | border-bottom: 2px solid #2080f7; |
| | | } |
| | | //右键菜单样式 |
| | |
| | | <Menu/> |
| | | </el-aside> |
| | | <el-main> |
| | | <header> |
| | | <header style="background-color: #ffffff;"> |
| | | <AppHeader/> |
| | | </header> |
| | | <main ref="containerS"> |
| | |
| | | border |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | prop="code" |
| | | label="账单编号"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row.id)">{{row.code}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="费用类型"> |
| | |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <!-- 账单详情 --> |
| | | <Detail ref="DetailRef" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import { getWaitDealList } from '@/api/ywContractBill' |
| | | import Detail from '../../finance/components/bullDetail.vue' |
| | | export default { |
| | | name: 'pendingBills', |
| | | components: { |
| | | GlobalWindow |
| | | GlobalWindow, |
| | | Detail |
| | | }, |
| | | extends: BaseOpera, |
| | | data () { |
| | |
| | | this.info = res |
| | | this.visible = true |
| | | }) |
| | | }, |
| | | handleDetail (id) { |
| | | this.$refs.DetailRef.open('账单详情', id) |
| | | } |
| | | } |
| | | } |
| | |
| | | <el-tag type="info" v-if="info.status === 1">关闭</el-tag> |
| | | </div> |
| | | <div style="display: flex; align-items: center;"> |
| | | <el-button @click="$refs.call.open('发送催缴通知', [info.id])" v-if="info.billType === 0">发送缴费通知</el-button> |
| | | <el-button @click="$refs.call.open('发送催缴通知', [info.id])" v-if="info.isOverdue === 1 && info.billType === 0">发送缴费通知</el-button> |
| | | <el-button plain type="primary" v-if="![1].includes(info.payStatus)" @click="$refs.flowingWater.open('创建收支流水', { |
| | | billType: returnBillType(), |
| | | billId: info.id, |
| | |
| | | </div> |
| | | <i class="el-icon-arrow-right"></i> |
| | | </div> |
| | | <div class="list_item1"></div> |
| | | <div class="list_item1"></div> |
| | | <div class="list_item1"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="top_left_dian"></div> |
| | | <div class="top_left_title">{{item.title}}</div> |
| | | </div> |
| | | <div class="top_date">{{item.createDate}}</div> |
| | | <div class="top_date">{{item.param1}}</div> |
| | | </div> |
| | | <div class="bottom"> |
| | | {{item.content}} |
| | |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | justify-content: space-between; |
| | | .list_item1 { |
| | | width: 24%; |
| | | height: 0; |
| | | } |
| | | .list_item { |
| | | cursor: pointer; |
| | | width: 24%; |
| | |
| | | max-width: 100%; |
| | | } |
| | | ::v-deep .wh_content_item .wh_isToday { |
| | | background-color: #3E80EF; |
| | | color: #fff; |
| | | background-color: rgba(62, 128, 239, 0.47); |
| | | color: #ffffff; |
| | | } |
| | | ::v-deep .wh_item_date:hover { |
| | | background-color: #3E80EF; |
| | |
| | | <el-table-column |
| | | label="合同编号"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.ContractDetailRef.open('合同详情', row.id)" v-if="row.status === 1">{{row.code}}</el-button> |
| | | <el-button type="text" v-else>{{row.code}}</el-button> |
| | | <el-button type="text" @click="$refs.ContractDetailRef.open('合同详情', row.id)">{{row.code}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; align-items: center;"> |
| | | {{row.renterName}} |
| | | <el-tag type="success" v-if="row.status === 1">当前租户</el-tag> |
| | | <el-tag type="success" v-if="[1,2,3].includes(row.status)">当前租户</el-tag> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | this.$refs.operaYwWorkorderWindow.open('新建工单', { |
| | | rooms: [this.info.projectId, this.info.buildingId, this.info.floor, this.info.id], |
| | | areaType: 0, |
| | | content: '' |
| | | content: '', |
| | | projectId: this.info.projectId, |
| | | buildingId: this.info.buildingId, |
| | | floorId: this.info.floor, |
| | | roomId: this.info.id |
| | | }) |
| | | }, |
| | | // 获取设备状态 |
| | |
| | | this.$nextTick(() => { |
| | | this.deviceList = [ |
| | | { value: res.workAmount || 0, name: '正常' }, |
| | | { value: res.exceptionAmount || 0, name: '异常' }, |
| | | { value: res.exceptionAmount || 0, name: '损坏' }, |
| | | { value: res.errAmount || 0, name: '报废' } |
| | | ] |
| | | this.amount = res.amount |
| | |
| | | page: 1, |
| | | model: { |
| | | roomId: this.houseId, |
| | | status: this.form.status, |
| | | dealStatus: this.form.dealStatus, |
| | | cateId: this.form.cateId |
| | | } |
| | | }).then(res => { |
| | |
| | | </el-tab-pane> |
| | | <el-tab-pane label="租客合同" name="project" v-if="[3].includes(lv)"> |
| | | <div class="xm"> |
| | | <el-card style="margin-top: 20px;"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>当前在租合同</span> |
| | | <div class="xm_table"> |
| | | <div style="display: flex; align-items: center; margin-bottom: 15px;"> |
| | | <el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="请输入合同编号"></el-input> |
| | | <el-button type="primary" @click="getFetchList">搜索</el-button> |
| | | <el-button @click="clear">重置</el-button> |
| | | </div> |
| | | <div class="xm_table"> |
| | | <div style="display: flex; align-items: center; margin-bottom: 15px;"> |
| | | <el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="请输入合同编号"></el-input> |
| | | <el-button type="primary" @click="getFetchList">搜索</el-button> |
| | | <el-button @click="clear">重置</el-button> |
| | | </div> |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | v-loading="loading" |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | label="合同编号"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.ContractDetailRef.open('合同详情', row.id)">{{row.code}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="renterName" |
| | | label="租客"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="租赁单价"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <span>{{row.leasePrice || 0}}元/㎡·天</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="leaseDays" |
| | | label="租赁天数"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="租赁面积"> |
| | | <template slot-scope="{row}"> |
| | | {{row.totalArea}}㎡ |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="房源"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; flex-direction: column;"> |
| | | <span v-for="(item, index) in row.roomList" :key="index"> |
| | | {{item.projectName}}/{{item.buildingName}}/{{item.floorName}}/{{item.roomNum}} |
| | | </span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="xm_table_f"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="page" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="pageTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | v-loading="loading" |
| | | style="width: 100%"> |
| | | <el-table-column |
| | | label="合同编号"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.ContractDetailRef.open('合同详情', row.id)">{{row.code}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="租客"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; align-items: center;"> |
| | | {{row.renterName}} |
| | | <el-tag type="success" v-if="[1,2,3].includes(row.status)">当前租户</el-tag> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="租赁单价"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <span>{{row.leasePrice || 0}}元/㎡·天</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="leaseDays" |
| | | label="租赁天数"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="租赁面积"> |
| | | <template slot-scope="{row}"> |
| | | {{row.totalArea}}㎡ |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="房源"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; flex-direction: column;"> |
| | | <span v-for="(item, index) in row.roomList" :key="index"> |
| | | {{item.projectName}}/{{item.buildingName}}/{{item.floorName}}/{{item.roomNum}} |
| | | </span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="xm_table_f"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="page" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="pageTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="房态管理" name="house" v-if="[1,2].includes(lv)"> |
| | |
| | | </div> |
| | | <div class="xm_house_list" v-for="(item, index) in roomStatus" :key="index"> |
| | | <div class="xm_house_list_left"> |
| | | <div class="xm_house_list_left_row"> |
| | | <div class="xm_house_list_left_row" :style="{ height: (item.roomsList.length * 100) + ((item.roomsList.length - 1) * 10) + 'px' }"> |
| | | <span>{{item.floorName}}</span> |
| | | <span>{{item.floorArea}}㎡</span> |
| | | </div> |
| | | </div> |
| | | <div class="xm_house_list_right"> |
| | | <div class="xm_house_list_right_row" :style="{ width: child.width + 'px', backgroundColor: ifBackground(child.roomStatus) }" v-for="(child, i) in item.ywRoomStatusDataVOList" :key="i"> |
| | | <div class="ft"> |
| | | <span>{{child.roomCode}}</span> |
| | | <span>({{child.roomRentArea}}㎡)</span> |
| | | </div> |
| | | <div class="xm_house_list_right_row_info" v-if="child.roomStatus !== 0"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <span style="margin-right: 5px;">{{child.customerName}}</span> |
| | | <img src="@/assets/icons/ic_key_green.png" style="width: 16px; height: 16px;" v-if="child.roomStatus === 1" /> |
| | | <img src="@/assets/icons/ic_key_yellow.png" style="width: 16px; height: 16px;" v-else-if="child.roomStatus === 2" /> |
| | | <template v-for="(child, i) in item.roomsList" :key="i"> |
| | | <div class="xm_house_list_right_row" v-for="(childThree, a) in child" :key="a" :style="{ width: childThree.width + 'px', backgroundColor: ifBackground(childThree.roomStatus) }"> |
| | | <div class="ft"> |
| | | <span>{{childThree.roomCode}}</span> |
| | | <span>({{childThree.roomRentArea}}㎡)</span> |
| | | </div> |
| | | <span :style="{ color: returnColor(child.overData.substring(0, 10)) ? 'red' : '' }">{{child.overData.substring(0, 10)}}{{returnColor(child.overData.substring(0, 10)) ? '已' : ''}}到期</span> |
| | | <div class="xm_house_list_right_row_info" v-if="childThree.roomStatus !== 0"> |
| | | <div style="display: flex; align-items: center;"> |
| | | <span style="margin-right: 5px;">{{childThree.customerName}}</span> |
| | | <img src="@/assets/icons/ic_key_green.png" style="width: 16px; height: 16px;" v-if="childThree.roomStatus === 1" /> |
| | | <img src="@/assets/icons/ic_key_yellow.png" style="width: 16px; height: 16px;" v-else-if="childThree.roomStatus === 2" /> |
| | | </div> |
| | | <span :style="{ color: returnColor(childThree.overData.substring(0, 10)) ? 'red' : '' }">{{childThree.overData.substring(0, 10)}}{{returnColor(childThree.overData.substring(0, 10)) ? '已' : ''}}到期</span> |
| | | </div> |
| | | <div class="xm_house_list_right_row_day" v-if="childThree.roomStatus === 0">未出租|空置{{childThree.freeDayAmount}}天</div> |
| | | </div> |
| | | <div class="xm_house_list_right_row_day" v-if="child.roomStatus === 0">未出租|空置{{child.freeDayAmount}}天</div> |
| | | </div> |
| | | </template> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | lv: 0, |
| | | leaseStatus: '', |
| | | amount: 0, |
| | | project: '' |
| | | project: '', |
| | | widthNum: '' |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | buildingId: this.form.buildingId, |
| | | floor: this.form.floorId |
| | | }).then(res => { |
| | | // 数组分割 |
| | | res.forEach(item => { |
| | | let num = item.ywRoomStatusDataVOList.map(item => item.roomRentArea) |
| | | let total = num.reduce((sum, value) => sum + value, 0) |
| | | item.ywRoomStatusDataVOList.forEach(child => { |
| | | // let percentage = (child.roomRentArea / total) * 100; // 计算每个值的占比 |
| | | child.width = (child.roomRentArea / total) * 854 |
| | | item.ywRoomStatusDataVOList = item.ywRoomStatusDataVOList ? item.ywRoomStatusDataVOList : [] |
| | | const chunkedArray = []; |
| | | for (let i = 0; i < item.ywRoomStatusDataVOList.length; i += 4) { |
| | | chunkedArray.push(item.ywRoomStatusDataVOList.slice(i, i + 4)); |
| | | } |
| | | item.roomsList = chunkedArray |
| | | }) |
| | | // 计算宽度 |
| | | res.forEach(item => { |
| | | item.roomsList.forEach(one => { |
| | | let num = one.map(three => three.roomRentArea) |
| | | let total = num.reduce((sum, value) => sum + value, 0) |
| | | let width = 950 |
| | | if (one.length > 1) { |
| | | width = 950 - ((one.length - 1) * 10) |
| | | } |
| | | one.forEach(two => { |
| | | two.width = Number(Math.max((two.roomRentArea / total) * width, 150).toFixed(0)) |
| | | }) |
| | | }) |
| | | }) |
| | | // 减去平均多余的宽度 |
| | | res.forEach(item => { |
| | | item.roomsList.forEach(one => { |
| | | let num = one.map(three => three.width) |
| | | let total = num.reduce((sum, value) => sum + value, 0) |
| | | let countGreaterThan150 = one.filter(num => num.width > 150).length; |
| | | let width = 950 |
| | | if (one.length > 1) { |
| | | width = 950 - ((one.length - 1) * 10) |
| | | } |
| | | if (total > width) { |
| | | let cha = total - width |
| | | let deleNum = Math.floor(cha / countGreaterThan150) |
| | | one.forEach(two => { |
| | | if (two.width > 150) { |
| | | two.width = two.width - deleNum |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | this.roomStatus = res |
| | |
| | | this.$nextTick(() => { |
| | | this.deviceList = [ |
| | | { value: res.workAmount || 0, name: '正常' }, |
| | | { value: res.exceptionAmount || 0, name: '异常' }, |
| | | { value: res.exceptionAmount || 0, name: '损坏' }, |
| | | { value: res.errAmount || 0, name: '报废' } |
| | | ] |
| | | this.amount = res.amount |
| | |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.param.projectId = this.project |
| | | this.$refs.EditRef.isShowModal = true |
| | | this.$refs.EditRef.changeProject() |
| | | }) |
| | | }, |
| | | // 获取设备分页 |
| | |
| | | floorId: this.form.floorId, |
| | | roomId: this.form.roomId, |
| | | code: this.form.code, |
| | | statusList: [0,1,2,3] |
| | | statusList: this.lv !== 3 ? [0,1,2,3] : null |
| | | } |
| | | }).then(res => { |
| | | this.tableData = res.records |
| | |
| | | this.getFetchList() |
| | | } else if (this.activeName === 'second') { |
| | | this.getWorkOrderList() |
| | | } else if (tab.name === 'third') { |
| | | } else if (this.activeName === 'third') { |
| | | this.getDevicePage() |
| | | } |
| | | }, |
| | |
| | | .xm_house_list { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 10px; |
| | | align-items: self-start; |
| | | .xm_house_list_left { |
| | | flex-shrink: 0; |
| | | width: 100px; |
| | | display: flex; |
| | | margin-right: 15px; |
| | | flex-direction: column; |
| | | margin-bottom: 10px; |
| | | .xm_house_list_left_row { |
| | | width: 100px; |
| | | height: 100px; |
| | | /*height: 100px;*/ |
| | | background: #F4F7FC; |
| | | padding: 20px 0; |
| | | box-sizing: border-box; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | justify-content: center; |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | |
| | | } |
| | | } |
| | | .xm_house_list_right { |
| | | width: 854px; |
| | | width: 950px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | flex-wrap: wrap; |
| | | .xm_house_list_right_row { |
| | | height: 100px; |
| | | padding: 12px 15px; |
| | |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | margin-right: 10px; |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | margin-bottom: 10px; |
| | | .ft { |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | .xm_house_tips { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 10px; |
| | | .xm_house_tips_row { |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | .catch(() => {}) |
| | | }, |
| | | getList(page) { |
| | | if (page) { |
| | | this.pagination.page = page |
| | | } |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | |
| | | <el-option label="公共维修" :value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="报修区域" prop="rooms"> |
| | | <el-cascader |
| | | v-model="form.rooms" |
| | |
| | | children: 'projectDataVOList' |
| | | }" /> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item label="选择项目" prop="projectId">--> |
| | | <!-- <el-select v-model="form.projectId" clearable filterable @change="getBuild">--> |
| | | <!-- <el-option v-for="item in projectList" :label="item.name" :value="item.id" />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="选择楼宇" prop="buildingId">--> |
| | | <!-- <el-select v-model="form.buildingId" clearable filterable @change="changeBuild">--> |
| | | <!-- <el-option v-for="item in buildList" :label="item.name" :value="item.id" />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | |
| | | <!-- <el-form-item v-if="form.areaType == 1" label="选择楼层" prop="floorId">--> |
| | | <!-- <el-select v-model="form.floorId">--> |
| | | <!-- <el-option v-for="item in levelList" clearable filterable :label="item.name" :value="item.id" />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item v-if="form.areaType == 0" label="选择房间" prop="roomId">--> |
| | | <!-- <el-select v-model="form.roomId" clearable filterable>--> |
| | | <!-- <el-option v-for="item in roomList" :label="item.roomNum" :value="item.id" />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="工单分类" prop="cateId"> |
| | | <el-cascader v-model="form.areaIds" @change="changeSel" placeholder="请选择分类" clearable :options="cateList" |
| | | :props="{ |
| | |
| | | this.title = title |
| | | this.fileList = [] |
| | | this.visible = true |
| | | this.getProject() |
| | | this.getCate() |
| | | this.getHouseTree() |
| | | // 新建 |
| | | if (target == null) { |
| | | this.getProject() |
| | | this.form = { |
| | | id: null, |
| | | editDate: '', |
| | |
| | | }) |
| | | return |
| | | } |
| | | getProjectList({}).then(res => { |
| | | this.projectList = res || [] |
| | | }) |
| | | // 编辑 |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | // this.$refs.form.resetFields() |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | |
| | | this.form.rooms = [] |
| | | this.form.projectId = '' |
| | | this.form.buildingId = '' |
| | | this.form.levelList = '' |
| | | this.form.floorId = '' |
| | | this.form.roomId = '' |
| | | }, |
| | | getHouseVal(e) { |
| | |
| | | <template> |
| | | <GlobalWindow width="100%" title="工单详情" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <GlobalWindow width="100%" title="工单详情" :withFooter="withFooter" :visible.sync="visible" :confirm-working="isWorking" |
| | | @confirm="confirm" @close="closeView"> |
| | | <div class="main"> |
| | | <div class="title"> |
| | | <div class="title_left"> |
| | |
| | | <div class="status gray" v-if="info.dealStatus == 2">已处理</div> |
| | | </div> |
| | | </div> |
| | | <el-button v-if="info.origin === 1" @click="openWT">查看问题上报</el-button> |
| | | <el-button v-if="info.origin === 1 && isShow" @click="openWT">查看问题上报</el-button> |
| | | </div> |
| | | <div class="main_content"> |
| | | <div class="list"> |
| | |
| | | </div> |
| | | </template> |
| | | </el-form> |
| | | <!-- 问题上报详情 --> |
| | | <ProblemReportingDetails ref="problem_Reporting_Details" @close="closeDetails" /> |
| | | </div> |
| | | <!-- 问题上报详情 --> |
| | | <problemReportingDetails ref="problemReportingDetails" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import problemReportingDetails from './problemReportingDetails' |
| | | // import ProblemReportingDetails from './problemReportingDetails' |
| | | // import ProblemReportingDetails from '@/views/workorder/components/problemReportingDetails' |
| | | import { detailById, dispatchOrder, dealOrder } from '@/api/workorder/ywWorkorder' |
| | | import { getByWorkorderId } from '@/api/ywProblem' |
| | | import { getUserList } from '@/api/system/user' |
| | | import { Message, Loading } from 'element-ui' |
| | | import { mapState } from 'vuex' |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | name: 'detail', |
| | | components: { |
| | | GlobalWindow, |
| | | problemReportingDetails |
| | | ProblemReportingDetails: () => import('./problemReportingDetails') |
| | | }, |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | id: '', |
| | | visible: false, |
| | | param: { |
| | | dealType: 0 |
| | | }, |
| | |
| | | uploadData: { |
| | | folder: 'YW_WORKORDER_FILE' |
| | | }, |
| | | isShow: true, |
| | | test: false |
| | | } |
| | | }, |
| | | computed: { |
| | | userInfo() { |
| | | return this.$store.state.userInfo |
| | | }, |
| | | withFooter() { |
| | | if (this.info) { |
| | | return this.info.dealStatus === 0 || (this.info.dealStatus === 1 && (this.userInfo.id === this.info.dealUserId)); |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getStaff() |
| | | }, |
| | | methods: { |
| | | closeDetails() { |
| | | console.log('1') |
| | | this.test = false |
| | | }, |
| | | closeView() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | }, |
| | | open (title, target, show) { |
| | | this.title = title |
| | | this.isShow = show |
| | | this.id = target.workorderId |
| | | this.getDetail() |
| | | }, |
| | | openWT() { |
| | | getByWorkorderId(this.id) |
| | | .then(res => { |
| | | this.$refs.problemReportingDetails.open('问题上报详情', res) |
| | | this.test = true |
| | | this.$nextTick(() => { |
| | | this.$refs.problem_Reporting_Details.open('问题上报详情', res, false) |
| | | }) |
| | | }) |
| | | }, |
| | | confirm() { |
| | |
| | | if (this.info.dealStatus == 1) { |
| | | this.$set(this.param, 'getDate', dayjs().format('YYYY-MM-DD HH:mm:ss')) |
| | | } |
| | | this.visible = true |
| | | }) |
| | | }, |
| | | getStaff() { |
| | |
| | | :title="title" |
| | | :showConfirm="false" |
| | | :visible.sync="visible" |
| | | @close="closeView" |
| | | width="100%"> |
| | | <div class="wt"> |
| | | <div class="wt_head"> |
| | |
| | | <el-tag style="margin-left: 10px;" v-if="form.dealStatus === 1">已转工单</el-tag> |
| | | <el-tag style="margin-left: 10px;" type="info" v-if="form.dealStatus === 2">已关闭</el-tag> |
| | | </div> |
| | | <el-button @click="handleDetail" v-if="form.dealStatus === 1">查看工单{{form.workorderId}}</el-button> |
| | | <el-button @click="handleDetail" v-if="form.dealStatus === 1 && isShow">查看工单</el-button> |
| | | </div> |
| | | <div class="wt_content"> |
| | | <div class="wt_content_row" style="width: 25%;"> |
| | |
| | | 关闭说明:{{form.dealInfo}} |
| | | </div> |
| | | </div> |
| | | <!-- 工单详情 --> |
| | | <GDDetail ref="GD_Detail" @close="closeDetails" /> |
| | | </div> |
| | | <!-- 工单详情 --> |
| | | <Detail v-if="showDetail" ref="DetailRef1" @close="showDetail = false" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import Detail from './detail' |
| | | // import GDDetail from './detail' |
| | | // import GDDetail from '@/views/workorder/components/detail' |
| | | import { getById } from '@/api/ywProblem' |
| | | export default { |
| | | name: "problemReportingDetails", |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow, Detail }, |
| | | components: { |
| | | GlobalWindow, |
| | | GDDetail: () => import('./detail') |
| | | }, |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | showDetail: false, |
| | | isShow: true, |
| | | test: false |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | closeView() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | }, |
| | | closeDetails() { |
| | | console.log('1') |
| | | this.test = false |
| | | }, |
| | | open (title, target, show) { |
| | | this.title = title |
| | | this.form = target |
| | | this.isShow = show |
| | | getById(target.id) |
| | | .then(res => { |
| | | this.form = res |
| | |
| | | }) |
| | | }, |
| | | handleDetail() { |
| | | this.showDetail = true |
| | | this.test = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DetailRef1.visible = true |
| | | this.$refs.DetailRef1.id = this.form.workorderId |
| | | this.$refs.DetailRef1.getDetail() |
| | | this.$refs.GD_Detail.open('工单详情', { workorderId: this.form.workorderId }, false) |
| | | // this.$refs.GD_Detail.isShow = false |
| | | // this.$refs.GD_Detail.visible = true |
| | | // this.$refs.GD_Detail.id = this.form.workorderId |
| | | // this.$refs.GD_Detail.getDetail() |
| | | }) |
| | | }, |
| | | returnText(status) { |
| | |
| | | </el-form-item> |
| | | <el-form-item prop="dealStatus" label="处理状态"> |
| | | <el-select v-model="searchForm.dealStatus"> |
| | | <el-option label="未处理" :value="0"></el-option> |
| | | <el-option label="待处理" :value="0"></el-option> |
| | | <el-option label="已转工单" :value="1"></el-option> |
| | | <el-option label="已关闭" :value="2"></el-option> |
| | | </el-select> |
| | |
| | | fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" v-if="row.dealStatus === 0" @click="$refs.handleProblem.open('问题上报', row)">处理</el-button> |
| | | <el-button type="text" @click="$refs.problemReportingDetails.open('问题上报详情', row)">查看详情</el-button> |
| | | <el-button type="text" @click="$refs.problemReportingDetails.open('问题上报详情', row, true)">查看详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" @success="search" /> |
| | | <Detail v-if="openDetail" ref="DetailRef" @close="openDetail = false" @success="search" /> |
| | | <!-- 新建/修改 --> |
| | | <OperaYwWorkorderWindow ref="operaYwWorkorderWindow" @success="handlePageChange" /> |
| | | </TableLayout> |
| | |
| | | data() { |
| | | return { |
| | | // 搜索 |
| | | showDetail: false, |
| | | openDetail: false, |
| | | searchForm: { |
| | | selDate: [], |
| | | areaIds: '', |
| | |
| | | }, |
| | | methods: { |
| | | handleDetail(row) { |
| | | this.showDetail = true |
| | | this.openDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DetailRef.visible = true |
| | | this.$refs.DetailRef.id = row.id |
| | | this.$refs.DetailRef.getDetail() |
| | | this.$refs.DetailRef.open('工单详情', { workorderId: row.id }, true) |
| | | // this.$refs.DetailRef.isShow = true |
| | | // this.$refs.DetailRef.visible = true |
| | | // this.$refs.DetailRef.id = row.id |
| | | // this.$refs.DetailRef.getDetail() |
| | | |
| | | }) |
| | | }, |