From 9fbbbe80e6b48a3bd9544a24295971b8da9bc337 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期一, 21 七月 2025 19:07:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/system/modules/SelectDeviceModal.vue |  354 ++++++++++++++--------------------------------------------
 1 files changed, 85 insertions(+), 269 deletions(-)

diff --git a/src/views/system/modules/SelectDeviceModal.vue b/src/views/system/modules/SelectDeviceModal.vue
index af931d0..599de84 100644
--- a/src/views/system/modules/SelectDeviceModal.vue
+++ b/src/views/system/modules/SelectDeviceModal.vue
@@ -1,104 +1,56 @@
 <template>
-  <div>
-    <a-modal
-      :title="title"
-      :visible="visible"
-      @ok="handleOk"
-      @cancel="handleCancel"
-      cancelText="鍏抽棴"
-      centered
-    >
+  <a-modal
+    :title="title"
+    :visible="visible"
+    @ok="handleOk"
+    @cancel="handleCancel"
+  >
 
-      <!--&lt;!&ndash; 鏌ヨ鍖哄煙 &ndash;&gt;-->
-      <!--<div class="table-page-search-wrapper">-->
-      <!--<a-form layout="inline" @keyup.enter.native="searchQuery">-->
-      <!--<a-row :gutter="24">-->
+    <a-spin :spinning="loading">
+      <!-- showLine -->
+      <a-form>
+        <a-form-item label="杞﹂棿灞傜骇锛�">
+          <a-tree showLine ref="tree" :expandedKeys.sync="expandedKeys"
+                  :treeData="treeDataSource" checkable @check="onCheck" v-model="checkedKeys"
+                  @expand="onExpand">
+          </a-tree>
+        </a-form-item>
+      </a-form>
 
-      <!--<a-col :span="10">-->
-      <!--<a-form-item label="璁惧鍚嶇О">-->
-      <!--<a-input placeholder="璇疯緭鍏ヨ澶囧悕绉�" v-model="queryParam.equipmentName"></a-input>-->
-      <!--</a-form-item>-->
-      <!--</a-col>-->
-      <!--<a-col :span="8">-->
-      <!--<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">-->
-      <!--<a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>-->
-      <!--<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>-->
-      <!--</span>-->
-      <!--</a-col>-->
+    </a-spin>
 
-      <!--</a-row>-->
-      <!--</a-form>-->
-      <!--</div>-->
-      <!--&lt;!&ndash; table鍖哄煙-begin &ndash;&gt;-->
-      <!--<div>-->
-      <!--<a-table-->
-      <!--size="small"-->
-      <!--bordered-->
-      <!--rowKey="equipmentId"-->
-      <!--:columns="columns1"-->
-      <!--:dataSource="dataSource1"-->
-      <!--:pagination="ipagination"-->
-      <!--:loading="loading"-->
-      <!--:scroll="{ y: 240 }"-->
-      <!--:rowSelection="{selectedRowKeys: selectedRowKeys,onSelectAll:onSelectAll,onSelect:onSelect,onChange: onSelectChange}"-->
-      <!--@change="handleTableChange">-->
-      <!--</a-table>-->
-      <!--</div>-->
-      <!--&lt;!&ndash; table鍖哄煙-end &ndash;&gt;-->
+    <template slot="footer">
+      <div>
+        <a-dropdown
+          style="float: left"
+          :trigger="['click']"
+          placement="topCenter"
+        >
+          <a-menu slot="overlay">
+            <a-menu-item key="1" @click="expandAll">灞曞紑鎵�鏈�</a-menu-item>
+            <a-menu-item key="2" @click="closeAll">鍚堝苟鎵�鏈�</a-menu-item>
+            <a-menu-item key="3" @click="refreshTree">鍒锋柊</a-menu-item>
+          </a-menu>
+          <a-button>
+            鏍戞搷浣�
+            <a-icon type="up"/>
+          </a-button>
+        </a-dropdown>
+        <a-popconfirm title="纭畾鏀惧純缂栬緫锛�" @confirm="handleCancel" okText="纭畾" cancelText="鍙栨秷">
+          <a-button style="margin-right: .8rem">鍏抽棴</a-button>
+        </a-popconfirm>
+        <a-button
+          @click="handleOk"
+          type="primary"
+        >纭畾
+        </a-button>
+      </div>
+    </template>
 
-      <a-spin :spinning="loading">
-        <!-- showLine -->
-        <a-form>
-          <a-form-item label="杞﹂棿灞傜骇锛�">
-            <a-tree showLine ref="tree" :expandedKeys.sync="expandedKeys"
-                    :treeData="treeDataSource" checkable @check="onCheck" v-model="checkedKeys"
-                    :autoExpandParent="autoExpandParent" @expand="onExpand">
-            </a-tree>
-          </a-form-item>
-        </a-form>
-
-      </a-spin>
-
-      <template slot="footer">
-        <div>
-          <div>
-            <a-dropdown
-              style="float: left"
-              :trigger="['click']"
-              placement="topCenter"
-            >
-              <a-menu slot="overlay">
-                <a-menu-item key="1" @click="expandAll">灞曞紑鎵�鏈�</a-menu-item>
-                <a-menu-item key="2" @click="closeAll">鍚堝苟鎵�鏈�</a-menu-item>
-                <a-menu-item key="3" @click="refreshTree">鍒锋柊</a-menu-item>
-              </a-menu>
-              <a-button>
-                鏍戞搷浣�
-                <a-icon type="up"/>
-              </a-button>
-            </a-dropdown>
-          </div>
-          <a-space>
-            <a-button
-              @click="handleCancel"
-            >鍏抽棴
-            </a-button>
-            <a-button
-              @click="handleOk"
-              type="primary"
-            >纭畾
-            </a-button>
-          </a-space>
-        </div>
-      </template>
-
-    </a-modal>
-  </div>
+  </a-modal>
 </template>
 
 <script>
-  // import { filterObj } from '@/utils/util'
-  // import { getAction } from '@/api/manage'
   import {
     getAction,
     postAction,
@@ -106,7 +58,6 @@
   } from '@/api/manage'
   import BaseTree from '@/views/mdc/common/BaseTree'
   import DepartTree from '@/views/mdc/base/modules/DepartList/DepartListTree/DepartTree'
-  import { mapActions } from 'vuex'
 
   export default {
     name: 'SelectDeviceModal',
@@ -119,124 +70,66 @@
         default() {
           return true
         }
+      },
+      title: {
+        type: String
+      },
+      selectedProduction: {
+        type: String
       }
     },
     data() {
       return {
-        title: '娣诲姞宸叉湁璁惧',
-        cardLoading: false,
         loading: false,
         treeDataSource: [],
         expandedKeys: [],
         checkedKeys: [],
         url: {
-          getBaseTree: '/mdc/mdcEquipment/queryTreeListByProduction'
+          getDeviceTree: '/mdc/mdcEquipment/loadTreeListByProductionIds'
         },
+        selectedWorkshopIds: '',
         dataList: [],
-        autoExpandParent: true,
-        checkStrictly: true,
         allTreeKeys: [],
         visible: false,
         dataSource: []
-
-        // names: [],
-        // placement: 'right',
-        // description: '',
-        // // 鏌ヨ鏉′欢
-        // queryParam: {},
-        // // 琛ㄥご
-        // columns1: [
-        //   {
-        //     title: '#',
-        //     dataIndex: '',
-        //     key: 'rowIndex',
-        //     width: 50,
-        //     align: 'center',
-        //     customRender: function(t, r, index) {
-        //       return parseInt(index) + 1
-        //     }
-        //   },
-        //   {
-        //     title: '璁惧缂栧彿',
-        //     align: 'center',
-        //     width: 100,
-        //     dataIndex: 'equipmentId'
-        //   },
-        //   {
-        //     title: '璁惧鍚嶇О',
-        //     align: 'center',
-        //     width: 100,
-        //     dataIndex: 'equipmentName'
-        //   },
-        //   {
-        //     title: '璁惧绫诲瀷',
-        //     align: 'center',
-        //     width: 100,
-        //     dataIndex: 'equipmentType'
-        //   },
-        //   {
-        //     title: '椹卞姩绫诲瀷',
-        //     align: 'center',
-        //     width: 100,
-        //     dataIndex: 'driveType'
-        //   }
-        // ],
-        // //鏁版嵁闆�
-        // dataSource1: [],
-        // dataSource2: [],
-        // // 鍒嗛〉鍙傛暟
-        // ipagination: {
-        //   current: 1,
-        //   pageSize: 10,
-        //   pageSizeOptions: ['10', '20', '30'],
-        //   showTotal: (total, range) => {
-        //     return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�'
-        //   },
-        //   showQuickJumper: true,
-        //   showSizeChanger: true,
-        //   total: 0
-        // },
-        // loading: false,
-        // selectedRowKeys: [],
-        // selectedRows: [],
-        // url: {
-        //   list: '/mdc/mdcEquipment/list'
-        // },
-        // activeKey: '1',
-        // isDepartType: ''
       }
     },
     created() {
-      // this.loadData()
-      this.queryTreeData()
       this.closeAll()
     },
     methods: {
-      ...mapActions(['QueryProduction']),
-
       onExpand(expandedKeys) {
         this.expandedKeys = expandedKeys
         this.autoExpandParent = false
       },
-
-      queryTreeData() {
+      queryTreeData(value) {
         this.loading = true
-        this.cardLoading = true
-        this.QueryProduction().then(res => {
-          if (res.success) {
-            this.dataList = []
-            this.allTreeKeys = []
-            this.getTreeDataSouce(res.result)
-            this.treeDataSource = res.result
-            this.generateList(this.treeDataSource)
-            console.log('treeDataSource', this.treeDataSource)
-          } else {
-            this.$message.warn(res.message)
-          }
-        }).finally(() => {
-          this.loading = false
-          this.cardLoading = false
-        })
+        this.selectedWorkshopIds = value
+        getAction(this.url.getDeviceTree, { ids: value })
+          .then(res => {
+            if (res.success) {
+              this.dataList = []
+              this.allTreeKeys = []
+              this.getTreeDataSouce(res.result)
+              this.treeDataSource = res.result
+              this.generateList(this.treeDataSource)
+              this.expandedKeys = this.allTreeKeys
+            } else {
+              this.$notification.warning({
+                message: '娑堟伅',
+                description: res.message
+              })
+            }
+          })
+          .catch(err => {
+            this.$notification.error({
+              message: '娑堟伅',
+              description: err.message
+            })
+          })
+          .finally(() => {
+            this.loading = false
+          })
       },
 
       generateList(data) {
@@ -271,96 +164,19 @@
         this.expandedKeys = ['-1']
       },
       refreshTree() {
-        this.queryTreeData()
+        this.queryTreeData(this.selectedWorkshopIds)
       },
-      onCheck(value) {
+      onCheck(value, obj) {
         this.checkedKeys = value
+        this.deviceNodes = obj.checkedNodes.filter(item => item.data.props.equipmentId).map(item => item.data.props.equipmentId)
       },
       handleCancel() {
         this.visible = false
       },
       handleOk() {
-        if (this.checkedKeys.length > 0) {
-          this.$emit('selectFinished', this.checkedKeys)
-        }
+        this.$emit('selectFinished', this.deviceNodes)
         this.visible = false
       }
-
-
-      // add() {
-      //   this.visible = true
-      // },
-      // loadData(arg) {
-      //   //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
-      //   if (arg === 1) {
-      //     this.ipagination.current = 1
-      //   }
-      //   var params = this.getQueryParams()//鏌ヨ鏉′欢
-      //   getAction(this.url.list, params).then((res) => {
-      //     if (res.success) {
-      //       this.dataSource1 = res.result.records
-      //       this.ipagination.total = res.result.total
-      //     }
-      //   })
-      // },
-      // getQueryParams() {
-      //   var param = Object.assign({}, this.queryParam, this.isorter)
-      //   param.field = this.getQueryField()
-      //   param.pageNo = this.ipagination.current
-      //   param.pageSize = this.ipagination.pageSize
-      //   return filterObj(param)
-      // },
-      // getQueryField() {
-      //   //TODO 瀛楁鏉冮檺鎺у埗
-      // },
-      // onSelectAll(selected, selectedRows, changeRows) {
-      //   if (selected === true) {
-      //     for (var a = 0; a < changeRows.length; a++) {
-      //       this.dataSource2.push(changeRows[a])
-      //     }
-      //   } else {
-      //     for (var b = 0; b < changeRows.length; b++) {
-      //       this.dataSource2.splice(this.dataSource2.indexOf(changeRows[b]), 1)
-      //     }
-      //   }
-      //   // console.log(selected, selectedRows, changeRows);
-      // },
-      // onSelect(record, selected) {
-      //   console.log(this.selectedRowKeys)
-      //   if (selected === true) {
-      //     this.dataSource2.push(record)
-      //   } else {
-      //     var index = this.dataSource2.indexOf(record)
-      //     //console.log();
-      //     if (index >= 0) {
-      //       this.dataSource2.splice(this.dataSource2.indexOf(record), 1)
-      //     }
-      //   }
-      // },
-      // onSelectChange(selectedRowKeys, selectedRows) {
-      //   console.log('selectedRowKeys', selectedRowKeys)
-      //   this.selectedRowKeys = selectedRowKeys
-      //   this.selectionRows = selectedRows
-      // },
-      // onClearSelected() {
-      //   this.selectedRowKeys = []
-      //   this.selectionRows = []
-      // },
-      // handleDelete: function(record) {
-      //   this.dataSource2.splice(this.dataSource2.indexOf(record), 1)
-      // },
-      // handleTableChange(pagination, filters, sorter) {
-      //   //鍒嗛〉銆佹帓搴忋�佺瓫閫夊彉鍖栨椂瑙﹀彂
-      //   console.log(sorter)
-      //   //TODO 绛涢��
-      //   if (Object.keys(sorter).length > 0) {
-      //     this.isorter.column = sorter.field
-      //     this.isorter.order = 'ascend' == sorter.order ? 'asc' : 'desc'
-      //   }
-      //   this.ipagination = pagination
-      //   this.loadData()
-      // },
-
 
     }
   }
@@ -401,7 +217,7 @@
     overflow-y: hidden
   }
 
-  .drawer-bootom-button {
+  .drawer-bottom-button {
     position: absolute;
     bottom: 0;
     width: 100%;

--
Gitblit v1.9.3