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