From 798dcfbbc3ab2a81d1e873b25e00bf5e4ed03aa7 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 02 十二月 2024 18:11:54 +0800
Subject: [PATCH] ll
---
admin/src/api/project/ywRoom.js | 3
admin/src/views/Inspection/task.vue | 18 +
admin/src/views/Inspection/dot.vue | 41 +-
admin/src/views/project/projectList.vue | 54 +--
admin/src/views/workorder/components/detail.vue | 36 +-
admin/src/views/client/components/OperaYwCustomerWindow.vue | 186 ++++++++----
admin/src/api/Inspection/ywPatrolTask.js | 5
admin/src/views/workorder/workorderList.vue | 14
admin/src/views/operation/components/deviceEdit.vue | 5
admin/src/views/operation/device.vue | 3
admin/src/views/project/components/floorLevel.vue | 7
admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue | 61 +++-
admin/src/views/project/components/OperaYwRoomWindow.vue | 40 ++
admin/src/views/client/clientList.vue | 10
admin/src/views/client/components/config.js | 1
admin/src/views/Inspection/plan.vue | 8
admin/src/views/project/components/OperaYwProjectWindow.vue | 29 +
admin/src/views/project/housingList.vue | 7
admin/src/views/workorder/components/config.js | 1
admin/src/api/Inspection/ywPatrolLine.js | 4
admin/src/views/project/components/OperaYwBuildingWindow.vue | 28 +
admin/src/views/project/buildingList.vue | 13
admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue | 169 ++++++++---
admin/src/views/Inspection/path.vue | 16
admin/src/views/client/components/staffEdit.vue | 43 ++
admin/src/views/workorder/components/OperaYwWorkorderWindow.vue | 4
26 files changed, 552 insertions(+), 254 deletions(-)
diff --git a/admin/src/api/Inspection/ywPatrolLine.js b/admin/src/api/Inspection/ywPatrolLine.js
index b4ebbd5..a595535 100644
--- a/admin/src/api/Inspection/ywPatrolLine.js
+++ b/admin/src/api/Inspection/ywPatrolLine.js
@@ -24,6 +24,10 @@
export function updateById (data) {
return request.post('/visitsAdmin/cloudService/business/ywPatrolLine/updateById', data)
}
+export function updateStatusById (data) {
+ return request.post('/visitsAdmin/cloudService/business/ywPatrolLine/updateStatusById', data)
+}
+
// 璇︽儏
export function detailById (id) {
return request.get(`/visitsAdmin/cloudService/business/ywPatrolLine/${id}`)
diff --git a/admin/src/api/Inspection/ywPatrolTask.js b/admin/src/api/Inspection/ywPatrolTask.js
index 81be50a..f7cb835 100644
--- a/admin/src/api/Inspection/ywPatrolTask.js
+++ b/admin/src/api/Inspection/ywPatrolTask.js
@@ -32,6 +32,11 @@
export function getDetail (data) {
return request.post(`/visitsAdmin/cloudService/business/ywPatrolTaskRecord/page`, data)
}
+export function cancelById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywPatrolTask/taskCancel`, {
+ params: {id}
+ })
+}
// 鎵归噺鍒犻櫎
export function deleteByIdInBatch (ids) {
diff --git a/admin/src/api/project/ywRoom.js b/admin/src/api/project/ywRoom.js
index 1c5ac5d..d46c912 100644
--- a/admin/src/api/project/ywRoom.js
+++ b/admin/src/api/project/ywRoom.js
@@ -33,6 +33,9 @@
export function deleteById (id) {
return request.get(`/visitsAdmin/cloudService/business/ywRoom/delete/${id}`)
}
+export function detailById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/ywRoom/${id}`)
+}
// 鎵归噺鍒犻櫎
export function deleteByIdInBatch (ids) {
diff --git a/admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue
index 86de3cb..2d2b991 100644
--- a/admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue
+++ b/admin/src/views/Inspection/components/OperaYwPatrolLineWindow.vue
@@ -1,5 +1,5 @@
<template>
- <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
+ <GlobalWindow width="800px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="绾胯矾鍚嶇О" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏ョ嚎璺悕绉�" v-trim />
@@ -8,13 +8,13 @@
<div class="title">宸℃鐐�</div>
<el-button type="primary" @click="openModal">娣诲姞宸℃鐐�</el-button>
</div>
- <el-table v-loading="isWorking.search" :data="list" stripe>
+ <el-table :data="list" stripe>
<el-table-column prop="code" label="宸℃鐐圭紪鐮�" min-width="100px"></el-table-column>
<el-table-column prop="pointName" label="宸℃鐐瑰悕绉�" min-width="100px"></el-table-column>
<el-table-column prop="name" label="鎵爜鎵撳崱" min-width="100px">
<template v-slot="scope">
- <el-switch v-model="scope.row.needScancode" @change="changeStatus" active-value="0"
- inactive-value="1"></el-switch>
+ <el-switch v-model="scope.row.needScancode" :disabled="true" @change="changeStatus" :active-value="0"
+ :inactive-value="1"></el-switch>
</template>
</el-table-column>
<el-table-column prop="name" label="鎺掑簭鐮�" min-width="100px">
@@ -32,10 +32,36 @@
</el-form>
<!-- -->
- <el-dialog title="娣诲姞宸℃鐐�" :close-on-click-modal="false" append-to-body :visible.sync="isShowModal" width="500px">
- <el-select class="w400" v-model="selPoint" clearable multiple filterable>
+ <el-dialog title="娣诲姞宸℃鐐�" :close-on-click-modal="false" append-to-body :visible.sync="isShowModal" width="780px">
+ <!-- <el-select class="w400" v-model="selPoint" clearable multiple filterable>
<el-option v-for="item in pointList" :value="item.id" :label="item.name"></el-option>
- </el-select>
+ </el-select> -->
+ <el-form ref="searchForm" :model="searchForm" label-width="80px" inline>
+ <el-form-item label="宸℃鐐�" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ贰妫�鐐瑰悕绉�/缂栫爜" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸℃鍖哄煙">
+ <el-cascader v-model="searchForm.areaIds" @change="changeSel" placeholder="璇烽�夋嫨宸℃鍖哄煙" clearable
+ :options="areaList" :props="{
+ label: 'name',
+ value: 'id',
+ children: 'childCategoryList'
+ }"></el-cascader>
+ </el-form-item>
+ <el-button type="primary" @click="initData">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </el-form>
+
+ <el-table @selection-change="handleSelectionChange" v-loading="isWorking.search" :data="pointList" stripe>
+ <el-table-column type="selection" width="55" align="center" />
+ <el-table-column prop="code" label="宸℃鐐圭紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="宸℃鐐瑰悕绉�" min-width="100px"></el-table-column>
+ <el-table-column prop="deviceName" label="宸℃鐐瑰悕绉�" min-width="100px"></el-table-column>
+ <el-table-column prop="areaName" label="宸℃鐐瑰悕绉�" min-width="100px"></el-table-column>
+ </el-table>
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination">
+ </pagination>
+
<span slot="footer" class="dialog-footer">
<el-button @click="isShowModal = false">鍙� 娑�</el-button>
<el-button type="primary" @click="subModal">纭� 瀹�</el-button>
@@ -47,13 +73,15 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
-import { getFetchList } from '@/api/Inspection/ywPatrolPoint'
-import { create,detailById } from '@/api/Inspection/ywPatrolLine'
+import Pagination from '@/components/common/Pagination'
+import { fetchList as getFetchList } from '@/api/Inspection/ywPatrolPoint'
+import { create,updateById, detailById } from '@/api/Inspection/ywPatrolLine'
import { Message } from 'element-ui'
+import { fetchList } from '@/api/business/category'
export default {
name: 'OperaYwPatrolLineWindow',
extends: BaseOpera,
- components: { GlobalWindow },
+ components: { GlobalWindow, Pagination },
data() {
return {
// 琛ㄥ崟鏁版嵁
@@ -61,14 +89,29 @@
name: '',
},
selPoint: [],
+
pointList: [],
+ selList: [],
+ areaList: [],
+ searchForm: {
+ name: '',
+ areaId: '',
+ areaIds: []
+ },
+ pagination: {
+ pageSize: 10,
+ page: 1,
+ total: 0
+ },
+
list: [],
+ isWorking: false,
isShowModal: false,
// 楠岃瘉瑙勫垯
rules: {
name: [{ required: true, message: '璇疯緭鍏�' }],
selPoint: [{ type: 'array', required: true, message: '璇疯緭鍏�' }],
- }
+ },
}
},
created() {
@@ -79,14 +122,22 @@
methods: {
confirm() {
const { form, list } = this
- if (list.length == 0) return Message.warning('璇峰厛閫夋嫨宸℃鐐�')
- form.linePointList = list
- create({ ...form }).then(res => {
- Message.success('淇濆瓨鎴愬姛')
- this.$emit('success')
- this.close()
-
+ this.$refs['form'].validate((valid) => {
+ if (valid) {
+ if (list.length == 0) return Message.warning('璇峰厛閫夋嫨宸℃鐐�')
+ form.linePointList = list
+ this.isWorking = true
+ let fn = form.id ? updateById : create
+ fn({ ...form }).then(res => {
+ Message.success('淇濆瓨鎴愬姛')
+ this.isWorking = false
+ this.close()
+ }, () => {
+ this.isWorking = false
+ })
+ }
})
+
},
getDetail(row) {
detailById(row.id).then(res => {
@@ -94,12 +145,45 @@
this.list = res.linePointList || []
})
},
+ getProject() {
+ fetchList({
+ model: { type: 4 },
+ capacity: 1000,
+ page: 1,
+ }).then(res => {
+ this.areaList = res.records || []
+ })
+ },
initData() {
this.list = []
-
- getFetchList({}).then(res => {
- this.pointList = res || []
+ const { searchForm, pagination } = this
+ getFetchList({
+ page: pagination.page,
+ capacity: pagination.pageSize,
+ model: { ...searchForm }
+ }).then(res => {
+ this.pointList = res.records || []
+ this.pagination.total = res.total
})
+ },
+ handleSelectionChange(val) {
+ this.selList = val
+ },
+ reset() {
+ this.searchForm = {
+ name: '',
+ areaId: '',
+ areaIds: []
+ }
+ this.initData()
+ },
+ handleSizeChange(val) {
+ this.pagination.pageSize = val
+ this.initData()
+ },
+ handlePageChange(val) {
+ this.pagination.page = val
+ this.initData()
},
handleDel(row) {
this.list.splice(row.$index, 1)
@@ -110,36 +194,25 @@
},
openModal() {
this.selPoint = this.list.map(i => i.id)
+ this.getProject()
this.isShowModal = true
},
+ changeSel(e) {
+ if (e && e.length == 1) {
+ } else if (e && e.length == 2) {
+ this.$set(this.searchForm, 'areaId', e[1])
+ } else {
+ }
+ this.initData()
+ },
subModal() {
- const { selPoint, pointList, list } = this
- if (selPoint.length == 0) return Message.warning('璇峰厛閫夋嫨宸℃鐐�')
- let arr = []
- // 鍙栧嚭閫変腑鍒楄〃
- pointList.forEach(item => {
- selPoint.forEach(item2 => {
- if (item.id === item2) {
- arr.push(item)
- }
- })
- })
- // 鍚宭ist鍘婚噸
- list.forEach(item => {
- arr.forEach((item2, i) => {
- if (item.id === item2.id) {
- arr.splice(i, 1)
- }
- })
- })
- // 娣诲姞
- arr.forEach(i => {
- this.list.push({
- needScancode: '1',
- pointName: i.name,
- pointId: i.id,
- code: i.code
- })
+ this.list = this.selList.map(item => {
+ return {
+ needScancode: 0,
+ pointName: item.name,
+ pointId: item.id,
+ code: item.code
+ }
})
this.isShowModal = false
},
diff --git a/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
index ca12d05..aa26f0f 100644
--- a/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
+++ b/admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
@@ -30,7 +30,7 @@
<el-input type="textarea" :rows="4" v-model="form.content" placeholder="璇疯緭鍏�" />
</el-form-item>
<el-form-item label="涓婁紶鍥剧墖" prop="imgurl">
- <UploadAvatarImage :file="{ 'imgurlfull': form.fileFullUrl, 'imgurl': form.fileurl }"
+ <UploadAvatarImage :file="{ 'imgurlfull': form.fileFullUrl, 'imgurl': form.fileUrl }"
:uploadData="{ folder: 'ywPatrol/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false"
@uploadBegin="isUploading = true" />
</el-form-item>
@@ -83,6 +83,30 @@
this.title = title
this.visible = true
this.initData()
+ if (row == null) {
+ this.$nextTick(() => {
+ this.form = {
+ name: '',
+ code: '',
+ content: '',
+ imgurl: '',
+ areaId: 0,
+ areaIds: [],
+ addr: ''
+ }
+ this.$refs.form.resetFields()
+
+ this.form[this.configData['field.id']] = null
+ })
+ fetchList({
+ model: { type: 4 },
+ capacity: 1000,
+ page: 1,
+ }).then(res => {
+ this.cateList = res.records || []
+ })
+ return
+ }
if (row && row.id) {
this.getDetail(row)
}
@@ -90,34 +114,33 @@
getDetail(row) {
detail(row.id).then(res => {
this.form = { ...res }
- // this.$set(this.form, 'areaId', res.areaId)
- // console.log('res', res)
- // console.log('res', this.form)
-
- })
- },
- initData() {
- fetchList({
- model: { type: 4 },
- capacity: 1000,
- page: 1,
- }).then(res => {
- this.cateList = res.records || []
- setTimeout(() => {
- const areaId = this.form.areaId
+ if (res.longitude && res.latitude) {
+ this.$set(this.form, 'lnglat', res.longitude + ',' + res.latitude)
+ }
+ fetchList({
+ model: { type: 4 },
+ capacity: 1000,
+ page: 1,
+ }).then(ress => {
+ this.cateList = ress.records || []
+ const areaId = res.areaId
if (areaId) {
this.cateList.forEach(item => {
if (item.childCategoryList) {
item.childCategoryList.forEach(item2 => {
if (item2.id == areaId) {
this.$set(this.form, 'areaIds', [item.id, item2.id])
+
}
})
}
})
}
- }, 1300)
+ })
+
})
+ },
+ initData() {
getDeiceList({
model: {},
capacity: 1000,
@@ -146,8 +169,8 @@
}
},
uploadAvatarSuccess(file) {
- this.form.fileurl = file.imgurl
- this.form.fileFullUrl = file.imgurlfull
+ this.$set(this.form, 'fileUrl', file.imgurl)
+ this.$set(this.form, 'fileFullUrl', file.imgurlfull)
},
}
}
diff --git a/admin/src/views/Inspection/dot.vue b/admin/src/views/Inspection/dot.vue
index d86f690..943bb51 100644
--- a/admin/src/views/Inspection/dot.vue
+++ b/admin/src/views/Inspection/dot.vue
@@ -10,14 +10,11 @@
:options="areaList" :props="{
label: 'name',
value: 'id',
- children: 'childCategoryList',
- checkStrictly: true
+ children: 'childCategoryList'
}"></el-cascader>
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolline:exportExcel']"
- @click="exportExcel">瀵煎嚭</el-button>
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
@@ -26,11 +23,11 @@
<ul class="toolbar" v-permissions="['business:ywpatrolpoint:create', 'business:ywpatrolpoint:delete']">
<li><el-button type="primary" @click="editClick()" icon="el-icon-plus"
v-permissions="['business:ywpatrolpoint:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
- v-permissions="['business:ywpatrolpoint:delete']">鍒犻櫎</el-button></li>
+ <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
+ v-permissions="['business:ywpatrolpoint:delete']">鍒犻櫎</el-button></li> -->
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
+ <!-- <el-table-column type="selection" width="55"></el-table-column> -->
<el-table-column prop="code" label="宸℃鐐圭紪鐮�" min-width="100px"></el-table-column>
<el-table-column prop="name" label="宸℃鐐瑰悕绉�" min-width="100px"></el-table-column>
<el-table-column prop="deviceName" label="鍏宠仈璁惧" min-width="100px"></el-table-column>
@@ -67,19 +64,9 @@
return {
// 鎼滅储
searchForm: {
- id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
name: '',
- remark: '',
- status: '',
- sortnum: '',
- imgurl: '',
areaId: '',
- addr: ''
+ areaIds: []
},
areaList: []
}
@@ -95,9 +82,17 @@
this.getProject()
},
methods: {
+ reset() {
+ this.searchForm = {
+ name: '',
+ areaId: '',
+ areaIds: []
+ }
+ this.search()
+ },
getProject() {
fetchList({
- model: {type: 4},
+ model: { type: 4 },
capacity: 1000,
page: 1,
}).then(res => {
@@ -114,14 +109,10 @@
},
changeSel(e) {
if (e && e.length == 1) {
- this.$set(this.searchForm, 'catePId', e[0])
- this.$set(this.searchForm, 'cateId', '')
} else if (e && e.length == 2) {
- this.$set(this.searchForm, 'catePId', e[0])
- this.$set(this.searchForm, 'cateId', e[1])
+ this.$set(this.searchForm, 'areaId', e[1])
} else {
- this.$set(this.searchForm, 'catePId', '')
- this.$set(this.searchForm, 'cateId', '')
+
}
this.search()
},
diff --git a/admin/src/views/Inspection/path.vue b/admin/src/views/Inspection/path.vue
index 03e8b95..4bab064 100644
--- a/admin/src/views/Inspection/path.vue
+++ b/admin/src/views/Inspection/path.vue
@@ -26,7 +26,7 @@
<el-table-column prop="lineAmount" label="宸℃鐐规暟閲�" min-width="100px"></el-table-column>
<el-table-column prop="status" label="鐘舵��" min-width="100px">
<template v-slot="scope">
- <el-switch v-model="scope.row.status" @change="changeStatus" active-value="0" inactive-value="1">
+ <el-switch v-model="scope.row.status" @change="e => changeStatus(scope.row)" :active-value="0" :inactive-value="1">
</el-switch>
</template>
</el-table-column>
@@ -53,6 +53,8 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaYwPatrolLineWindow from './components/OperaYwPatrolLineWindow'
+import { updateStatusById } from '@/api/Inspection/ywPatrolLine'
+import { Message } from 'element-ui'
export default {
name: 'YwPatrolLine',
extends: BaseTable,
@@ -85,8 +87,16 @@
this.search()
},
methods: {
- changeStatus() {
-
+ changeStatus(row) {
+ updateStatusById({
+ id: row.id,
+ status: row.status
+ }).then(res => {
+ Message.success('鏇存柊鎴愬姛')
+ this.search()
+ }, () => {
+ this.search()
+ })
},
editClick(row) {
if (row && row.id) {
diff --git a/admin/src/views/Inspection/plan.vue b/admin/src/views/Inspection/plan.vue
index 2ae79a1..6320d32 100644
--- a/admin/src/views/Inspection/plan.vue
+++ b/admin/src/views/Inspection/plan.vue
@@ -2,8 +2,8 @@
<TableLayout :permissions="['business:ywpatrolscheme:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="璁″垝鏍囬" prop="title">
- <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ユ爣棰�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="璁″垝鍚嶇О" prop="title">
+ <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ヨ鍒掑悕绉�" @keypress.enter.native="search"></el-input>
</el-form-item>
<el-form-item label="璁″垝鏃ユ湡" prop="selDate">
<el-date-picker type="daterange" v-model="searchForm.selDate" clearable value-format="yyyy-MM-dd"
@@ -22,8 +22,8 @@
<ul class="toolbar" v-permissions="['business:ywpatrolscheme:create', 'business:ywpatrolscheme:delete']">
<li><el-button type="primary" @click="editClick()" icon="el-icon-plus"
v-permissions="['business:ywpatrolscheme:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
- v-permissions="['business:ywpatrolscheme:delete']">鍒犻櫎</el-button></li>
+ <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
+ v-permissions="['business:ywpatrolscheme:delete']">鍒犻櫎</el-button></li> -->
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
diff --git a/admin/src/views/Inspection/task.vue b/admin/src/views/Inspection/task.vue
index e3a57eb..b11267c 100644
--- a/admin/src/views/Inspection/task.vue
+++ b/admin/src/views/Inspection/task.vue
@@ -56,7 +56,7 @@
>
<template slot-scope="{row}">
<el-button type="text" @click="handleDetail(row)">鏌ョ湅璇︽儏</el-button>
- <el-button type="text" @click="cancelById(row)" v-permissions="['business:ywpatroltask:delete']">鍙栨秷</el-button>
+ <el-button v-if="row.status == 0" type="text" class="red" @click="cancelById(row)" v-permissions="['business:ywpatroltask:delete']">鍙栨秷</el-button>
</template>
</el-table-column>
</el-table>
@@ -77,6 +77,8 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import TaskDetail from './components/taskDetail'
+import { cancelById } from '@/api/Inspection/ywPatrolTask'
+import { Message } from 'element-ui'
export default {
name: 'YwPatrolTask',
extends: BaseTable,
@@ -105,8 +107,18 @@
this.$refs.TaskDetailRef.id = row.id
this.$refs.TaskDetailRef.getDetail()
},
- cancelById() {
-
+ cancelById(row) {
+ this.$confirm('纭畾鍙栨秷褰撳墠浠诲姟, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ cancelById(row.id).then(res => {
+ Message.success('鍙栨秷鎴愬姛')
+ this.search()
+ })
+ })
+ //
},
}
}
diff --git a/admin/src/views/client/clientList.vue b/admin/src/views/client/clientList.vue
index d6c97b7..22dba3f 100644
--- a/admin/src/views/client/clientList.vue
+++ b/admin/src/views/client/clientList.vue
@@ -7,8 +7,6 @@
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywcustomer:exportExcel']"
- @click="exportExcel">瀵煎嚭</el-button>
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
@@ -31,10 +29,14 @@
<el-table-column prop="memberName" label="鑱旂郴浜�" min-width="100px"></el-table-column>
<el-table-column prop="memberPhone" label="鑱旂郴鐢佃瘽" min-width="100px"></el-table-column>
<!-- <el-table-column prop="idcardNo" label="韬唤璇佸彿" min-width="100px"></el-table-column> -->
- <el-table-column prop="creditCard" label="缁熶竴淇$敤浠g爜" min-width="100px"></el-table-column>
+ <el-table-column prop="" label="缁熶竴淇$敤浠g爜" min-width="100px">
+ <template v-slot="{row}">
+ <span>{{ row.creditCard || '-' }}</span>
+ </template>
+ </el-table-column>
<el-table-column prop="validity" label="钀ヤ笟鏈熼檺" min-width="100px">
<template slot-scope="{row}">
- <span>{{ row.validity == '2099-12-31' ? '闀挎湡' : row.validity }}</span>
+ <span>{{ row.validity == '2099-12-31' ? '闀挎湡' : row.validity ? row.validity : '-' }}</span>
</template>
</el-table-column>
<el-table-column label="榛樿鍙戠エ绫诲瀷" min-width="100px">
diff --git a/admin/src/views/client/components/OperaYwCustomerWindow.vue b/admin/src/views/client/components/OperaYwCustomerWindow.vue
index a7b8bf9..bbfb6b6 100644
--- a/admin/src/views/client/components/OperaYwCustomerWindow.vue
+++ b/admin/src/views/client/components/OperaYwCustomerWindow.vue
@@ -1,81 +1,98 @@
<template>
- <GlobalWindow :title="title" width="900px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
+ <GlobalWindow :title="title" width="800px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
<div class="list">
<div class="title">鍩虹淇℃伅</div>
- <el-form-item label="瀹㈡埛" prop="name">
+ <el-form-item label="瀹㈡埛鍚嶇О" prop="name">
<div class="df">
<el-input v-model="form.name" placeholder="璇疯緭鍏ュ鎴�" v-trim />
- <el-checkbox v-model="form.type" class="ml10" true-label="0" false-label="1">涓汉</el-checkbox>
+ <el-checkbox v-model="form.type" class="ml10" :true-label="0" :false-label="1">涓汉</el-checkbox>
</div>
</el-form-item>
<el-form-item label="琛屼笟鍒嗙被" prop="industryId">
<el-select v-model="form.industryId" clearable filterable>
<el-option v-for="item in cateList" :value="item.id" :label="item.name" />
+ <div key="21" class="df_center mt10"><el-button type="primary" plain class="w200"
+ @click="openTrade">娣诲姞</el-button>
+ </div>
</el-select>
</el-form-item>
<el-form-item label="瀹㈡埛缂栧彿" prop="code">
<el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <div class="title">榛樿鑱旂郴浜�</div>
- <el-form-item label="濮撳悕" prop="member.name">
- <el-input v-model="form.member.name" placeholder="璇疯緭鍏�" v-trim />
- </el-form-item>
- <el-form-item label="鎵嬫満鍙�" prop="member.phone">
- <el-input v-model="form.member.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim />
- </el-form-item>
- <el-form-item label="韬唤">
- <el-select v-model="form.member.highCheckor" filterable>
- <el-option :value="0" label="鑰佹澘/瓒呯骇绠$悊鍛�" />
- <el-option :value="1" label="浜轰簨/绠$悊鍛�" />
- <el-option :value="2" label="鍛樺伐/鏅�氬憳宸�" />
+ <template v-if="!form.id">
+ <div class="title">榛樿鑱旂郴浜�</div>
+ <el-form-item label="濮撳悕" prop="member.name">
+ <el-input v-model="form.member.name" placeholder="璇疯緭鍏�" v-trim />
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙�" prop="member.phone">
+ <el-input v-model="form.member.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim />
+ </el-form-item>
+ <el-form-item label="韬唤">
+ <el-select v-model="form.member.highCheckor" filterable>
+ <el-option :value="0" label="鑰佹澘/瓒呯骇绠$悊鍛�" />
+ <el-option :value="1" label="浜轰簨/绠$悊鍛�" />
+ <el-option :value="2" label="鍛樺伐/鏅�氬憳宸�" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璇佷欢绫诲瀷">
+ <el-select v-model="form.member.idcardType" filterable>
+ <el-option :value="0" label="韬唤璇�" />
+ <el-option :value="1" label="娓境璇佷欢" />
+ <el-option :value="2" label="鎶ょ収" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璇佷欢鍙风爜" prop="member.idcardNo">
+ <el-input v-model="form.member.idcardNo" placeholder="璇疯緭鍏�" v-trim />
+ </el-form-item>
+ <el-form-item label="閭" prop="email">
+ <el-input v-model="form.member.email" placeholder="璇疯緭鍏ラ偖绠�" v-trim />
+ </el-form-item>
+ </template>
+ <el-form-item v-else label="榛樿鑱旂郴浜�" prop="memberId">
+ <el-select v-model="form.memberId" clearable filterable>
+ <el-option v-for="item in clientList" :value="item.id" :label="item.name" />
+ <div key="11" class="df_center mt10"><el-button type="primary" plain class="w200"
+ @click="openClient">娣诲姞</el-button>
+ </div>
</el-select>
</el-form-item>
- <el-form-item label="璇佷欢绫诲瀷">
- <el-select v-model="form.member.idcardType" filterable>
- <el-option :value="0" label="韬唤璇�" />
- <el-option :value="1" label="娓境璇佷欢" />
- <el-option :value="2" label="鎶ょ収" />
- </el-select>
- </el-form-item>
- <el-form-item label="璇佷欢鍙风爜" prop="member.idcardNo">
- <el-input v-model="form.member.idcardNo" placeholder="璇疯緭鍏�" v-trim />
- </el-form-item>
- <el-form-item label="閭" prop="email">
- <el-input v-model="form.member.email" placeholder="璇疯緭鍏ラ偖绠�" v-trim />
- </el-form-item>
-
- <div class="title">璐︽埛淇℃伅</div>
- <el-form-item label="寮�鎴烽摱琛�" prop="accountBank">
- <el-input v-model="form.accountBank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" v-trim />
- </el-form-item>
- <el-form-item label="璐﹀彿" prop="accountNo">
- <el-input v-model="form.accountNo" placeholder="璇疯緭鍏ヨ处鍙�" v-trim />
- </el-form-item>
- <el-form-item label="鐢佃瘽" prop="accountPhone">
- <el-input v-model="form.accountPhone" placeholder="璇疯緭鍏ヨ处鎴风數璇�" v-trim />
- </el-form-item>
- <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCard">
- <el-input v-model="form.creditCard" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" v-trim />
- </el-form-item>
- <el-form-item label="榛樿鍙戠エ绫诲瀷" prop="fpType">
- <el-select v-model="form.fpType" clearable filterable>
- <el-option :value="0" label="澧炲�肩◣鏅�氬彂绁�" />
- <el-option :value="1" label="澧炲�肩◣涓撶敤鍙戠エ" />
- </el-select>
- </el-form-item>
- <el-form-item label="娉ㄥ唽鍦板潃" prop="accountAddr">
- <el-input v-model="form.accountAddr" placeholder="璇疯緭鍏ヨ处鍙锋敞鍐屽湴鍧�" v-trim />
- </el-form-item>
- <el-form-item label="钀ヤ笟鏈熼檺">
- <div class="df">
- <el-date-picker type="date" v-model="form.validity" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
- <el-checkbox v-model="form.selLangTime" @change="changeValid" class="ml10">闀挎湡</el-checkbox>
- </div>
- </el-form-item>
+ <template v-if="form.type == 1">
+ <div class="title">璐︽埛淇℃伅</div>
+ <el-form-item label="寮�鎴烽摱琛�" prop="accountBank">
+ <el-input v-model="form.accountBank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" v-trim />
+ </el-form-item>
+ <el-form-item label="璐﹀彿" prop="accountNo">
+ <el-input v-model="form.accountNo" placeholder="璇疯緭鍏ヨ处鍙�" v-trim />
+ </el-form-item>
+ <el-form-item label="鐢佃瘽" prop="accountPhone">
+ <el-input v-model="form.accountPhone" placeholder="璇疯緭鍏ヨ处鎴风數璇�" v-trim />
+ </el-form-item>
+ <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCard">
+ <el-input v-model="form.creditCard" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" v-trim />
+ </el-form-item>
+ <el-form-item label="榛樿鍙戠エ绫诲瀷" prop="fpType">
+ <el-select v-model="form.fpType" clearable filterable>
+ <el-option :value="0" label="澧炲�肩◣鏅�氬彂绁�" />
+ <el-option :value="1" label="澧炲�肩◣涓撶敤鍙戠エ" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="娉ㄥ唽鍦板潃" prop="accountAddr">
+ <el-input v-model="form.accountAddr" placeholder="璇疯緭鍏ヨ处鍙锋敞鍐屽湴鍧�" v-trim />
+ </el-form-item>
+ <el-form-item label="钀ヤ笟鏈熼檺">
+ <div class="df">
+ <el-date-picker type="date" v-model="form.validity" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+ <el-checkbox v-model="form.selLangTime" @change="changeValid" class="ml10">闀挎湡</el-checkbox>
+ </div>
+ </el-form-item>
+ </template>
</div>
</el-form>
+ <!-- -->
+ <OperaCategoryWindow ref="OperaCategoryWindowRef" @success="initData" />
+ <StaffEdit ref="StaffEditRef" @success="getClient" />
</GlobalWindow>
</template>
@@ -85,10 +102,13 @@
import { fetchCateList } from '@/api/business/category'
import { rules } from './config'
import { detailById } from '@/api/client/ywCustomer'
+import { fetchList } from '@/api/client/staff'
+import OperaCategoryWindow from './OperaCategoryWindow.vue'
+import StaffEdit from './staffEdit.vue'
export default {
name: 'OperaYwCustomerWindow',
extends: BaseOpera,
- components: { GlobalWindow },
+ components: { GlobalWindow, OperaCategoryWindow, StaffEdit },
data() {
return {
// 琛ㄥ崟鏁版嵁
@@ -102,7 +122,7 @@
isdeleted: '',
remark: '',
industryId: '',
- type: '1',
+ type: 1,
name: '',
phone: '',
idcardNo: '',
@@ -110,11 +130,12 @@
code: '',
status: '',
memberName: '',
-
+
lastLoginDate: '',
loginNum: '',
userId: '',
-
+ memberId: '',
+
accountBank: '',
accountNo: '',
accountPhone: '',
@@ -123,7 +144,6 @@
accountAddr: '',
// identityType: '0',
email: '',
- memberId: '',
member: {
name: "",
phone: "",
@@ -133,6 +153,10 @@
email: '',
}
},
+ title: '鏂板瀹㈡埛',
+ isShowTrade: false,
+
+ clientList: [],
cateList: [],
// 楠岃瘉瑙勫垯
rules
@@ -145,12 +169,25 @@
})
},
methods: {
+ openTrade() {
+ this.$refs.OperaCategoryWindowRef.open('鏂板琛屼笟')
+ },
+ openClient() {
+ this.$refs.StaffEditRef.open('鏂板缓浜哄憳')
+ setTimeout(() => {
+ this.$refs.StaffEditRef.form.customerId = this.form.id
+ console.log('--', this.$refs.StaffEditRef.form);
+
+ // this.$update
+ }, 1200)
+ this.$refs.StaffEditRef.customerId = this.form.id
+ },
initData() {
fetchCateList({ type: 6 }).then(res => {
this.cateList = res
})
},
- open (title, target) {
+ open(title, target) {
this.title = title
this.visible = true
this.initData()
@@ -158,18 +195,39 @@
if (target == null) {
this.$nextTick(() => {
this.$refs.form.resetFields()
+ this.form.validity = ''
+ this.form.id = ''
+ this.form.member = {
+ name: "",
+ phone: "",
+ highCheckor: 0,
+ idcardType: 0,
+ idcardNo: '',
+ email: '',
+ }
})
+ this.form.type = 1
return
}
// 缂栬緫
this.$nextTick(() => {
- if(title == '缂栬緫瀹㈡埛'){
+ if (title == '缂栬緫瀹㈡埛') {
+ this.getClient()
detailById(target.id).then(res => {
this.form = res
})
}
})
},
+ getClient() {
+ fetchList({
+ capacity: 9999,
+ page: 1,
+ model: {}
+ }).then(res => {
+ this.clientList = res.records
+ })
+ },
changeValid(e) {
this.$set(this.form, 'validity', e ? '2099-12-31' : '')
},
diff --git a/admin/src/views/client/components/config.js b/admin/src/views/client/components/config.js
index 3b5b937..2165ec9 100644
--- a/admin/src/views/client/components/config.js
+++ b/admin/src/views/client/components/config.js
@@ -1,5 +1,6 @@
export const rules = {
name: [{ required: true, message: '璇疯緭鍏�' }],
+ memberId: [{ required: true, message: '璇烽�夋嫨',trigger: 'change' }],
'member.name': [{ required: true, message: '璇疯緭鍏�' }],
'member.phone': [{ required: true, message: '璇疯緭鍏�' }],
}
diff --git a/admin/src/views/client/components/staffEdit.vue b/admin/src/views/client/components/staffEdit.vue
index c85f098..e1ce3d3 100644
--- a/admin/src/views/client/components/staffEdit.vue
+++ b/admin/src/views/client/components/staffEdit.vue
@@ -3,7 +3,7 @@
<el-form :model="form" ref="form" label-position="top" :rules="rules">
<div class="list">
<el-form-item label="瀹㈡埛鍚嶇О" prop="customerId">
- <el-select v-model="form.customerId" clearable filterable>
+ <el-select v-model="form.customerId" :disabled="form.id || customerId != ''" clearable filterable>
<el-option v-for="item in clientList" :value="item.id" :label="item.name" />
</el-select>
</el-form-item>
@@ -98,6 +98,7 @@
idcardNo: '',
email: '',
},
+ customerId: '',
clientList: [],
// 楠岃瘉瑙勫垯
rules: staffRules
@@ -123,12 +124,50 @@
open(title, target) {
this.title = title
this.visible = true
+ this.customerId = ''
+ console.log(this.customerId);
+ console.log(this.form.id);
+
this.initData()
// 鏂板缓
if (target == null) {
this.$nextTick(() => {
- this.$refs.form.resetFields()
+ this.form = {
+ id: null,
+ customerId: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ birthday: '',
+ industryId: '',
+ type: '1',
+ idcardDecode: '',
+ sex: '',
+ status: '',
+ memberName: '',
+
+ lastLoginDate: '',
+ loginNum: '',
+ userId: '',
+
+ accountBank: '',
+ accountNo: '',
+ accountPhone: '',
+ creditCard: '',
+ fpType: '',
+ accountAddr: '',
+ // identityType: '0',
+ name: "",
+ phone: "",
+ highCheckor: 0,
+ idcardType: 0,
+ idcardNo: '',
+ email: '',
+ }
})
+ // this.$refs.form.resetFields()
return
}
// 缂栬緫
diff --git a/admin/src/views/operation/components/deviceEdit.vue b/admin/src/views/operation/components/deviceEdit.vue
index 129cc6d..016870d 100644
--- a/admin/src/views/operation/components/deviceEdit.vue
+++ b/admin/src/views/operation/components/deviceEdit.vue
@@ -11,7 +11,7 @@
<el-form-item label="璁惧鍨嬪彿" prop="">
<el-input v-model="param.modelNo" placeholder="璇疯緭鍏�" v-trim />
</el-form-item>
- <el-form-item label="璁惧鍒嗙被" prop="">
+ <el-form-item label="璁惧鍒嗙被" prop="cateId">
<el-cascader v-model="param.cateIds" @change="changeSel" placeholder="璇烽�夋嫨璁惧鍒嗙被" clearable :options="cateList"
:props="{
label: 'name',
@@ -70,7 +70,8 @@
cateList: [],
rules: {
name: [{ required: true, message: '璇疯緭鍏�' }],
- code: [{ required: true, message: '璇疯緭鍏�' }]
+ code: [{ required: true, message: '璇疯緭鍏�' }],
+ cateId: [{ required: true, message: '璇烽�夋嫨' }],
},
staffList: []
diff --git a/admin/src/views/operation/device.vue b/admin/src/views/operation/device.vue
index 5c34d4f..da4d4e9 100644
--- a/admin/src/views/operation/device.vue
+++ b/admin/src/views/operation/device.vue
@@ -23,7 +23,7 @@
<template slot-scope="{row}">
<el-button type="text" @click="handleEdit(row)" icon="el-icon-edit"
v-permissions="['business:category:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
+ <el-button type="text" @click="handleDel(row)" icon="el-icon-delete"
v-permissions="['business:category:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
@@ -121,7 +121,6 @@
let message = `纭鍒犻櫎璇ヨ褰曞悧?`
this.$dialog.deleteConfirm(message)
.then(() => {
- this.isWorking.delete = true
deleteById(row.id)
.then(() => {
this.$tip.apiSuccess('鍒犻櫎鎴愬姛')
diff --git a/admin/src/views/project/buildingList.vue b/admin/src/views/project/buildingList.vue
index ad86ed4..cb453d9 100644
--- a/admin/src/views/project/buildingList.vue
+++ b/admin/src/views/project/buildingList.vue
@@ -12,8 +12,8 @@
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywbuilding:exportExcel']"
- @click="exportExcel">瀵煎嚭</el-button>
+ <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywbuilding:exportExcel']"
+ @click="exportExcel">瀵煎嚭</el-button> -->
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
@@ -22,8 +22,8 @@
<ul class="toolbar" v-permissions="['business:ywbuilding:create', 'business:ywbuilding:delete']">
<li><el-button type="primary" @click="editClick()" icon="el-icon-plus"
v-permissions="['business:ywbuilding:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
- v-permissions="['business:ywbuilding:delete']">鍒犻櫎</el-button></li>
+ <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
+ v-permissions="['business:ywbuilding:delete']">鍒犻櫎</el-button></li> -->
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
@@ -37,7 +37,7 @@
<el-table-column prop="area" label="寤虹瓚闈㈢Н(m虏)" min-width="80px"></el-table-column>
<el-table-column prop="cqArea" label="绠$悊闈㈢Н(m虏)" min-width="80px"></el-table-column>
<el-table-column prop="roomNum" label="鎴块棿鎬绘暟(闂�)" min-width="80px"></el-table-column>
- <el-table-column prop="roomeRentNum" label="鍙嫑鍟嗘埧婧愭暟閲�(闂�)" min-width="100px"></el-table-column>
+ <el-table-column prop="roomRentNum" label="鍙嫑鍟嗘埧婧愭暟閲�(闂�)" min-width="100px"></el-table-column>
<el-table-column v-if="containPermissions(['business:ywbuilding:update', 'business:ywbuilding:delete'])"
label="鎿嶄綔" min-width="120" fixed="right">
<template slot-scope="{row}">
@@ -100,11 +100,10 @@
},
editClick(row) {
if (row && row.id) {
- this.$refs.operaYwBuildingWindow.open('缂栬緫妤煎畤')
+ this.$refs.operaYwBuildingWindow.open('缂栬緫妤煎畤', row)
} else {
this.$refs.operaYwBuildingWindow.open('鏂板缓妤煎畤')
}
- this.$refs.operaYwBuildingWindow.getProject()
},
editFloor(row) {
this.$refs.FloorLevelRef.id = row.id
diff --git a/admin/src/views/project/components/OperaYwBuildingWindow.vue b/admin/src/views/project/components/OperaYwBuildingWindow.vue
index 746d3c6..3a4c986 100644
--- a/admin/src/views/project/components/OperaYwBuildingWindow.vue
+++ b/admin/src/views/project/components/OperaYwBuildingWindow.vue
@@ -1,5 +1,5 @@
<template>
- <GlobalWindow width="900px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
+ <GlobalWindow width="720px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="鎵�灞為」鐩�" prop="projectId" clearable placeholder="璇烽�夋嫨椤圭洰">
<el-select v-model="form.projectId" filterable clearable>
@@ -41,6 +41,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { getProjectList } from '@/api/project/ywProject'
+import { detailById } from '@/api/project/ywBuilding'
export default {
name: 'OperaYwBuildingWindow',
extends: BaseOpera,
@@ -88,6 +89,31 @@
})
},
methods: {
+ open (title, target,type) {
+ this.title = title
+ this.visible = true
+ this.getProject()
+ // 鏂板缓缁勭粐
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ this.form.type=type
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ console.log('----');
+
+ this.getDetail(target.id)
+ })
+ },
+ getDetail(id) {
+ detailById(id).then(res => {
+ this.form = res
+ })
+ },
getProject() {
getProjectList({}).then(res => {
this.projectList = res || []
diff --git a/admin/src/views/project/components/OperaYwProjectWindow.vue b/admin/src/views/project/components/OperaYwProjectWindow.vue
index 70ea6e0..e2dd612 100644
--- a/admin/src/views/project/components/OperaYwProjectWindow.vue
+++ b/admin/src/views/project/components/OperaYwProjectWindow.vue
@@ -1,11 +1,11 @@
<template>
- <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
+ <GlobalWindow width="600px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="椤圭洰鍚嶇О" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim />
</el-form-item>
- <el-form-item label="鎵�灞炲湴鍖�" prop="addr">
+ <el-form-item label="鎵�灞炲湴鍖�" prop="areaId">
<el-cascader v-model="form.areaIdT" :props="{
label: 'name',
value: 'id',
@@ -35,7 +35,7 @@
return {
// 琛ㄥ崟鏁版嵁
form: {
- id: null,
+ id: '',
creator: '',
createDate: '',
editor: '',
@@ -71,6 +71,29 @@
this.title = title
this.visible = true
this.initData()
+ if (target == null) {
+ this.$nextTick(() => {
+ this.form = {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ remark: '',
+ status: '',
+ sortnum: '',
+ imgurl: '',
+ areaIdT: '',
+ cityId: '',
+ areaId: '',
+ provinceId: '',
+ addr: ''
+ }
+ this.$refs.form.resetFields()
+ })
+ }
this.$nextTick(() => {
for (const key in this.form) {
this.form[key] = target[key]
diff --git a/admin/src/views/project/components/OperaYwRoomWindow.vue b/admin/src/views/project/components/OperaYwRoomWindow.vue
index e810e56..cdfdf2d 100644
--- a/admin/src/views/project/components/OperaYwRoomWindow.vue
+++ b/admin/src/views/project/components/OperaYwRoomWindow.vue
@@ -1,5 +1,5 @@
<template>
- <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
+ <GlobalWindow width="720px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="鎵�灞為」鐩�" prop="projectId">
<el-select v-model="form.projectId" @change="changeProject" placeholder="璇烽�夋嫨椤圭洰" clearable>
@@ -45,6 +45,7 @@
import { getProjectList } from '@/api/project/ywProject'
import { getBuildList } from '@/api/project/ywBuilding'
import { getFloorList } from '@/api/project/yeFloor'
+import { detailById } from '@/api/project/ywRoom'
export default {
name: 'OperaYwRoomWindow',
extends: BaseOpera,
@@ -96,6 +97,39 @@
})
},
methods: {
+ open(title, target, type) {
+ this.title = title
+ this.visible = true
+ this.getProject()
+ // 鏂板缓缁勭粐
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ this.form.type = type
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ this.getDetail(target.id)
+ })
+ },
+ getDetail(id) {
+ detailById(id).then(res => {
+ this.form = res || {}
+ if (res.projectId) {
+ getBuildList({ projectId: res.projectId }).then(res => {
+ this.buildList = res || []
+ })
+ }
+ if (res.buildingId) {
+ getFloorList({ buildingId: res.buildingId }).then(res => {
+ this.floorList = res || []
+ })
+ }
+ })
+ },
getProject() {
getProjectList({}).then(res => {
this.projectList = res || []
@@ -104,13 +138,13 @@
},
changeProject(e) {
this.form.buildingId = ''
- getBuildList({projectId: e}).then(res => {
+ getBuildList({ projectId: e }).then(res => {
this.buildList = res || []
})
},
changeBuild(e) {
this.form.floor = ''
- getFloorList({buildingId: e}).then(res => {
+ getFloorList({ buildingId: e }).then(res => {
this.floorList = res || []
})
},
diff --git a/admin/src/views/project/components/floorLevel.vue b/admin/src/views/project/components/floorLevel.vue
index a8b0ad8..a593b63 100644
--- a/admin/src/views/project/components/floorLevel.vue
+++ b/admin/src/views/project/components/floorLevel.vue
@@ -90,12 +90,12 @@
}
})
},
- getList(buildingId) {
+ getList(page) {
const { pagination, id } = this
// this.buildingId =
let capacity = pagination.pageSize
- let page = pagination.page
- fetchList({ capacity, page, model: { buildingId: id } }).then(res => {
+ let paget = page || pagination.page
+ fetchList({ capacity, page: paget, model: { buildingId: id } }).then(res => {
this.list = res.records
this.pagination.total = res.total
})
@@ -127,6 +127,7 @@
},
handleSizeChange(capacity) {
this.pagination.pageSize = capacity
+ this.getList()
}
}
}
diff --git a/admin/src/views/project/housingList.vue b/admin/src/views/project/housingList.vue
index 8b09283..f800cc8 100644
--- a/admin/src/views/project/housingList.vue
+++ b/admin/src/views/project/housingList.vue
@@ -101,6 +101,8 @@
},
projectList: [],
buildList: [],
+
+ filters: {}
}
},
created() {
@@ -121,17 +123,16 @@
},
changeProject(e) {
this.searchForm.buildingId = ''
- getBuildList({ id: e }).then(res => {
+ getBuildList({ projectId: e }).then(res => {
this.buildList = res || []
})
},
editClick(row) {
if (row && row.id) {
- this.$refs.operaYwRoomWindow.open('缂栬緫鎴块棿')
+ this.$refs.operaYwRoomWindow.open('缂栬緫鎴块棿', row)
} else {
this.$refs.operaYwRoomWindow.open('鏂板缓鎴块棿')
}
- this.$refs.operaYwRoomWindow.getProject()
},
}
}
diff --git a/admin/src/views/project/projectList.vue b/admin/src/views/project/projectList.vue
index c816ca7..a150378 100644
--- a/admin/src/views/project/projectList.vue
+++ b/admin/src/views/project/projectList.vue
@@ -2,54 +2,44 @@
<TableLayout :permissions="['business:ywproject:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-
+
<el-form-item label="椤圭洰鍚嶇О" prop="name">
<el-input v-model="searchForm.name" placeholder="璇疯緭鍏ラ」鐩悕绉�" @keypress.enter.native="search"></el-input>
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywproject:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+ <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywproject:exportExcel']" @click="exportExcel">瀵煎嚭</el-button> -->
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:ywproject:create', 'business:ywproject:delete']">
- <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus" v-permissions="['business:ywproject:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywproject:delete']">鍒犻櫎</el-button></li>
+ <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
+ v-permissions="['business:ywproject:create']">鏂板缓</el-button></li>
+ <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywproject:delete']">鍒犻櫎</el-button></li> -->
</ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="55"></el-table-column>
+ <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="name" label="椤圭洰鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="" label="绠$悊闈㈢Н(m)" min-width="100px"></el-table-column>
+ <el-table-column prop="area" label="绠$悊闈㈢Н(m)" min-width="100px"></el-table-column>
<el-table-column prop="roomNum" label="鎬绘埧婧愭暟閲�(闂�)" min-width="100px"></el-table-column>
- <el-table-column prop="roomeRentNum" label="鍙嫑鍟嗘埧婧愭暟閲�(闂�)" min-width="100px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:ywproject:update', 'business:ywproject:delete'])"
- label="鎿嶄綔"
- min-width="80"
- fixed="right"
- >
+ <el-table-column prop="roomRentNum" label="鍙嫑鍟嗘埧婧愭暟閲�(闂�)" min-width="100px"></el-table-column>
+ <el-table-column v-if="containPermissions(['business:ywproject:update', 'business:ywproject:delete'])"
+ label="鎿嶄綔" min-width="80" fixed="right">
<template slot-scope="{row}">
- <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" v-permissions="['business:ywproject:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywproject:delete']">鍒犻櫎</el-button>
+ <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit"
+ v-permissions="['business:ywproject:update']">缂栬緫</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
+ v-permissions="['business:ywproject:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
</pagination>
</template>
<!-- 鏂板缓/淇敼 -->
- <OperaYwProjectWindow ref="operaYwProjectWindow" @success="handlePageChange"/>
+ <OperaYwProjectWindow ref="operaYwProjectWindow" @success="handlePageChange" />
</TableLayout>
</template>
@@ -62,7 +52,7 @@
name: 'YwProject',
extends: BaseTable,
components: { TableLayout, Pagination, OperaYwProjectWindow },
- data () {
+ data() {
return {
// 鎼滅储
searchForm: {
@@ -82,7 +72,7 @@
}
}
},
- created () {
+ created() {
this.config({
module: '杩愮淮椤圭洰淇℃伅琛�',
api: '/project/ywProject',
@@ -92,10 +82,10 @@
this.search()
},
methods: {
- handleEdit(row){
- if(row && row.id){
+ handleEdit(row) {
+ if (row && row.id) {
this.$refs.operaYwProjectWindow.open('缂栬緫椤圭洰', row)
- }else{
+ } else {
this.$refs.operaYwProjectWindow.open('鏂板缓椤圭洰')
// this.$refs.operaYwProjectWindow.open('鏂板缓椤圭洰')
}
diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
index 85d8bee..3b6d4e3 100644
--- a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
+++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
@@ -28,8 +28,8 @@
<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"
+ <el-form-item label="宸ュ崟鍒嗙被" prop="cateId">
+ <el-cascader v-model="form.areaIds" @change="changeSel" placeholder="璇烽�夋嫨鍒嗙被" clearable :options="cateList"
:props="{
label: 'name',
value: 'id',
diff --git a/admin/src/views/workorder/components/config.js b/admin/src/views/workorder/components/config.js
index 5985048..f668691 100644
--- a/admin/src/views/workorder/components/config.js
+++ b/admin/src/views/workorder/components/config.js
@@ -6,4 +6,5 @@
buildingId: [{ required: true, message: '璇烽�夋嫨' }],
floorId: [{ required: true, message: '璇烽�夋嫨' }],
roomId: [{ required: true, message: '璇烽�夋嫨' }],
+ cateId: [{ required: true, message: '璇烽�夋嫨' }],
}
\ No newline at end of file
diff --git a/admin/src/views/workorder/components/detail.vue b/admin/src/views/workorder/components/detail.vue
index 9f020e9..55f1e8d 100644
--- a/admin/src/views/workorder/components/detail.vue
+++ b/admin/src/views/workorder/components/detail.vue
@@ -1,5 +1,5 @@
<template>
- <GlobalWindow width="900px" title="宸ュ崟璇︽儏" :visible.sync="visible" :confirm-working="isWorking" @close="close"
+ <GlobalWindow width="920px" title="宸ュ崟璇︽儏" :visible.sync="visible" :confirm-working="isWorking" @close="close"
@confirm="confirm">
<div class="main">
<div class="title">
@@ -18,25 +18,25 @@
</div>
<div class="item">
<div class="la">瀵瑰簲浣嶇疆</div>
- <div class="val">{{ info.buildingName }} / {{ info.roomNum || info.floorName }}</div>
+ <div class="val">{{ info.projectName }}/{{ info.buildingName }} / {{ info.roomNum || info.floorName }}</div>
</div>
<div class="item">
- <div class="la">宸ュ崟绫诲埆</div>
+ <div class="la">宸ュ崟鍒嗙被</div>
<div class="val">{{ info.categoryName }}</div>
</div>
<div class="item">
<div class="la">涓婃姤浜�</div>
- <div class="val">{{ info.creatorName }}</div>
+ <div class="val">{{ info.creatorName }}{{ info.creatorCompany ? "-" + info.creatorCompany : '' }}</div>
</div>
<div class="item">
<div class="la">涓婃姤浜虹數璇�</div>
- <div class="val">{{ info.creatorPhone }}</div>
+ <div class="val">{{ info.creatorPhone || info.creatorMobile }}</div>
</div>
<div class="item">
<div class="la">涓婃姤鏃堕棿</div>
<div class="val">{{ info.createDate }}</div>
</div>
- <div class="item max">
+ <div class="item max" v-if="info.areaType == 0">
<div class="la">涓婇棬鏃堕棿</div>
<div class="val">{{ info.getDate }}</div>
</div>
@@ -59,7 +59,7 @@
</div>
</div>
<div class="side">
- <div class="title">宸ュ崟娴佽浆璁板綍鍛�</div>
+ <div class="title">宸ュ崟娴佽浆璁板綍</div>
<div class="flow_list">
<div class="item" v-for="item,i in info.logList">
<div class="icon">
@@ -75,7 +75,7 @@
</div>
</div>
</div>
- <div class="title">宸ュ崟澶勭悊</div>
+ <div class="title">{{ info.dealStatus == 0 || info.dealStatus == 1 ? '宸ュ崟澶勭悊' : '澶勭悊缁撴灉' }}</div>
<el-form :model="param" ref="form" :rules="rules">
<template v-if="info.dealStatus == 0 || info.dealStatus == null">
<el-form-item label="澶勭悊鏂瑰紡" prop="dealType">
@@ -83,7 +83,7 @@
<el-radio v-model="param.dealType" :label="0">鎸囨淳</el-radio>
<el-radio v-model="param.dealType" :label="1">鐩存帴鍥炲</el-radio>
</div>
- </el-form-item>
+ </el-form-item>
<el-form-item v-if="param.dealType == 0" label="鎸囨淳缁�" prop="dealUserId">
<el-select v-model="param.dealUserId" clearable filterable class="w400">
<el-option v-for="item in staffList" :label="item.realname" :value="item.id"></el-option>
@@ -98,12 +98,12 @@
<el-date-picker type="datetime" class="w400" v-model="param.getDate" format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm:ss" placeholder="璇烽�夋嫨"></el-date-picker>
</el-form-item>
- <el-form-item label="鍥炲鍐呭" prop="dealInfo">
+ <el-form-item label="澶勭悊璇存槑" prop="dealInfo">
<el-input type="textarea" class="w400" :rows="4" v-model="param.dealInfo" placeholder="璇峰~鍐欒鏄�"></el-input>
</el-form-item>
<el-form-item label="鐜板満鍥剧墖">
<div class="file_list">
- <el-upload class="avatar-uploader" :data="uploadData" multiple :limit="6" :auto-upload="true"
+ <el-upload class="avatar-uploader" :data="uploadData" :auto-upload="true"
:action="uploadImgUrl" :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError"
:before-upload="beforeUpload">
<div class="upload_wrap">
@@ -123,14 +123,18 @@
<template v-if="info.dealStatus == 2">
<div class="list">
<div class="item item2">
- <div class="la">澶勭悊鏃堕棿锛�</div>
- <div class="val">{{ info.getDate }}</div>
+ <div class="la">{{ info.dispatchUserId ? '澶勭悊浜�' : '鍥炲浜�' }}锛�</div>
+ <div class="val">{{ info.dealUserName }}{{ info.dealUserCompany ? '-' + info.dealUserCompany : '' }}</div>
</div>
<div class="item item2">
- <div class="la">澶勭悊澶囨敞锛�</div>
+ <div class="la">{{ info.dispatchUserId ? '澶勭悊鏃堕棿' : '鍥炲鏃堕棿' }}锛�</div>
+ <div class="val">{{ info.dealDate || info.getDate }}</div>
+ </div>
+ <div class="item item2">
+ <div class="la">{{ info.dispatchUserId ? '澶勭悊璇存槑' : '鍥炲鍐呭' }}锛�</div>
<div class="val">{{ info.dealInfo }}</div>
</div>
- <div class="item item2">
+ <div v-if="info.dealFileList != null && info.dealFileList.length" class="item item2">
<div class="la">鐜板満鐓х墖锛�</div>
<div class="value" v-if="info.dealFileList == null || !info.dealFileList.length">鏃�</div>
<div class="value" v-if="info.dealFileList != null && info.dealFileList.length">
@@ -347,7 +351,7 @@
.main_content{
display: flex;
.side{
- width: 240px;
+ width: 370px;
.title{
font-size: 14px;
}
diff --git a/admin/src/views/workorder/workorderList.vue b/admin/src/views/workorder/workorderList.vue
index 0936036..bd27db2 100644
--- a/admin/src/views/workorder/workorderList.vue
+++ b/admin/src/views/workorder/workorderList.vue
@@ -18,7 +18,7 @@
<el-option v-for="item in buildList" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
- <el-form-item prop="cateId" label="鐗╁搧绫诲埆">
+ <el-form-item prop="cateId" label="宸ュ崟鍒嗙被">
<el-cascader v-model="searchForm.areaIds" @change="changeSel" placeholder="璇烽�夋嫨宸℃鍖哄煙" clearable
:options="cateList" :props="{
label: 'name',
@@ -33,8 +33,6 @@
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']"
- @click="exportExcel">瀵煎嚭</el-button>
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
@@ -43,8 +41,8 @@
<ul class="toolbar" v-permissions="['business:ywworkorder:create', 'business:ywworkorder:delete']">
<li><el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('鏂板缓宸ュ崟')" icon="el-icon-plus"
v-permissions="['business:ywworkorder:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
- v-permissions="['business:ywworkorder:delete']">鍒犻櫎</el-button></li>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']"
+ @click="exportExcel" plain>瀵煎嚭</el-button>
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe>
<el-table-column prop="areaType" label="浣嶇疆绫诲瀷" min-width="80px">
@@ -63,7 +61,7 @@
<el-table-column prop="creatorName" label="涓婃姤浜�" min-width="100px"></el-table-column>
<el-table-column prop="createDate" label="涓婃姤鏃堕棿" min-width="100px"></el-table-column>
<el-table-column prop="dealUserName" label="澶勭悊浜�" min-width="100px"></el-table-column>
- <el-table-column label="澶勭悊缁撴灉" min-width="100px">
+ <el-table-column label="宸ュ崟鐘舵��" min-width="100px">
<template slot-scope="{row}">
<span v-if="row.dealStatus == 0">寰呮寚娲�</span>
<span v-if="row.dealStatus == 1">宸叉寚娲�</span>
@@ -98,7 +96,7 @@
export default {
name: 'YwWorkorder',
extends: BaseTable,
- components: { TableLayout, Pagination,Detail, OperaYwWorkorderWindow },
+ components: { TableLayout, Pagination, Detail, OperaYwWorkorderWindow },
data() {
return {
// 鎼滅储
@@ -133,7 +131,7 @@
this.$refs.DetailRef.visible = true
this.$refs.DetailRef.id = row.id
this.$refs.DetailRef.getDetail()
-
+
})
},
initData() {
--
Gitblit v1.9.3