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/views/Inspection/components/OperaYwPatrolLineWindow.vue | 169 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 121 insertions(+), 48 deletions(-) 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 }, -- Gitblit v1.9.3