From 8c9ae3d08df9f97534d332a07a7acfc8881741aa Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 23 八月 2025 23:40:15 +0800
Subject: [PATCH] 恢复

---
 src/views/wel/shemi.vue |  165 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 136 insertions(+), 29 deletions(-)

diff --git a/src/views/wel/shemi.vue b/src/views/wel/shemi.vue
index 6ec8895..ba5c641 100644
--- a/src/views/wel/shemi.vue
+++ b/src/views/wel/shemi.vue
@@ -17,15 +17,24 @@
     >
       <template #search>
         <el-row :gutter="24">
-          <el-col :span="6">
-            <el-input v-model="search.name" placeholder="璇疯緭鍏ヨ妭鐐瑰悕绉�" clearable/>
+          <el-col :span="6" class="search-data-flex">
+            <span class="search-data-title">绋嬪簭鐘舵��:</span>
+            <el-checkbox-group v-model="searchTreeData.programStatus">
+              <el-checkbox value="1" label="璇曞垏" />
+              <el-checkbox value="2" label="鍥哄寲" />
+              <el-checkbox value="3" label="鍋忕" />
+            </el-checkbox-group>
           </el-col>
-          <el-col :span="6">
-            <el-select v-model="search.nodeType" placeholder="璇疯緭鍏ヨ妭鐐圭被鍨�" clearable>
-              <el-option v-for="item in nodeTypeList" :key="item.dictValue" :label="item.dictValue" :value="item.dictKey"/>formApprove.
-            </el-select>
+          <el-col :span="6" class="search-data-flex">
+            <span class="search-data-title">闆剁粍浠跺彿:</span>
+            <el-select v-model="searchTreeData.drawingNo" filterable remote reserve-keyword placeholder="闆剁粍浠跺彿" :remote-method="remoteMethod" :loading="searchLoading">
+              <el-option v-for="item in drawingNoList" :key="item.value" :label="item.label" :value="item.value"/></el-select>
           </el-col>
-          <el-col :span="6">
+          <el-col :span="8" class="search-data-flex">
+            <span class="search-data-title">鏃堕棿鑼冨洿:</span>
+            <el-date-picker v-model="searchTreeData.createTime" type="daterange" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" :size="size" format="YYYY-MM-DD" value-format="YYYY-MM-DD"  @change="createTimeChange"/><!--:disabled-date="disabledDate" 涓嶉渶瑕佺鐢ㄦ棩鏈�-->
+          </el-col>
+          <el-col :span="4">
             <el-button type="primary" @click="searchTree"><el-icon class="el-icon--right" style="margin-right: 6px;"><Search /></el-icon>鎼滅储</el-button>
             <el-button :icon="Delete" @click="setClearTree"><el-icon class="el-icon--right" style="margin-right: 6px;"><Delete /></el-icon>娓呯┖</el-button>
           </el-col>
@@ -44,10 +53,11 @@
         <!-- <el-button :size="size" text v-if="row.nodeType == 70" icon="el-icon-pie-chart" type="primary" @click="upgrade(row)" placeholder="鍗囩増" title="鍗囩増"></el-button> -->
         <!-- 宸ユ帶缃戞墠鏈� -->
         <!-- <el-button :size="size" text v-if="row.nodeType == 70" icon="el-icon-position" type="primary" @click="downsend(row)" placeholder="涓嬪彂" title="涓嬪彂"></el-button> -->
-        <!-- 鏇挎崲 -->
+                    
+        <!-- 鏇挎崲  v-if="permission.auto_dispatch"-->
         <el-button :size="size" text v-if="row.nodeType == 60 && row.parentIds.indexOf('0,1,')>-1" icon="el-icon-switch" type="primary" @click="replacement(row)" placeholder="鏇挎崲" title="鏇挎崲"></el-button>
-        <el-button :size="size" text v-if="row.nodeType == 60 && row.parentIds.indexOf('0,2')>-1 && !row.isLocked" icon="el-icon-lock" type="primary" @click="locked(row,true)" placeholder="閿佸畾" title="閿佸畾"></el-button>
-        <el-button :size="size" text v-if="row.nodeType == 60 && row.parentIds.indexOf('0,2')>-1 && row.isLocked" icon="el-icon-unlock" type="primary" @click="locked(row,false)" placeholder="瑙i攣" title="瑙i攣"></el-button>
+        <el-button :size="size" text v-if="permission.lock_button && row.nodeType == 60 && row.parentIds.indexOf('0,2')>-1 && row.isLocked != 1" icon="el-icon-lock" type="primary" @click="locked(row,true)" placeholder="閿佸畾" title="閿佸畾"></el-button>
+        <el-button :size="size" text v-if="permission.lock_button && row.nodeType == 60 && row.parentIds.indexOf('0,2')>-1 && row.isLocked == 1" icon="el-icon-unlock" type="primary" @click="locked(row,false)" placeholder="瑙i攣" title="瑙i攣"></el-button>
       </template>
     </avue-crud>
     <!-- 鏂板鑺傜偣 -->
@@ -114,9 +124,18 @@
   data() {
     let rejectText = '椹冲洖';//+this.row.categoryName;
     return {
+      drawingNoList: [],
+      searchLoading: false,
+      searchTreeData: {
+        programStatus: [],
+        drawingNo: "",
+        createTime: [],
+        createTimeBegin: "",
+        createTimeEnd: ""
+      },
       drawingNo: '',
       processNo: '',
-	  processEdition: '',
+	    processEdition: '',
       replaceDataId: "",
       formApprove: {
         title: '',
@@ -344,10 +363,6 @@
       modalTitle: "",
       id: "",
       parentId:1,
-      search: {
-        name: "",
-        nodeType: ""
-      },
       loading: true,
       mypage: {
         size: 10,
@@ -493,6 +508,7 @@
     };
   },
   computed: {
+    ...mapGetters(['userInfo', 'permission']),
     uploadmodalOption() {
       return {
         submitText: "淇濆瓨",
@@ -630,25 +646,67 @@
     
   },
   methods: {
-    locked(row, isLock) {
-      row.isLocked == isLock
-      this.$confirm(`鏄惁${isLock ? '閿佸畾' : '瑙i攣'}`, {
+    disabledDate(time) {
+      //涓嶉渶瑕佺鐢ㄦ棩鏈�
+      // 鑾峰彇褰撳墠鏃ユ湡
+      const today = new Date();
+      today.setHours(0, 0, 0, 0); // 璁剧疆涓哄綋澶╁紑濮嬫椂闂�
+      
+      // 鑾峰彇涓変釜鏈堝墠鐨勬棩鏈�
+      const threeMonthsAgo = new Date();
+      threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3);
+      threeMonthsAgo.setHours(0, 0, 0, 0);
+      
+      // 绂佺敤浠婂ぉ涔嬪悗鐨勬棩鏈� 鍗冲彲
+      return time.getTime() > today.getTime() || time.getTime() < threeMonthsAgo.getTime();//
+    },
+    createTimeChange(value) {
+      console.log('createTimeChange',value)
+      this.searchTreeData.createTimeBegin = value[0];
+      this.searchTreeData.createTimeEnd = value[1];
+    },
+    remoteMethod(query) {
+      if (query) {
+        this.searchLoading = true;
+        axios({
+          url: '/blade-mdm/program/node/drawing-no-pick',
+          method: 'get',
+          params: {drawingNo: query}
+        }).then(resp => {
+          this.searchLoading = false;
+          var drawingNoList = [];
+          resp.data.data.forEach(item=> {
+            drawingNoList.push({label: item,value: item})
+          })
+          this.drawingNoList = drawingNoList;
+        });
+      }else {
+        this.drawingNoList = [];
+      }
+    },
+    locked(row, isLockP) {
+      //row.isLocked == isLock
+      var isLock = row.isLocked == 1;
+       console.log('isLock',isLock)
+      this.$confirm(`鏄惁${isLock ? '瑙i攣' : '閿佸畾'}`, {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning',
       }).then(() => {
-
         axios({
-          url: isLock ? '/blade-mdm/program/node/lock' : '/blade-mdm/flow/lock/start-unlock',
+          url: isLock ? '/blade-mdm/flow/lock/start-unlock' : '/blade-mdm/program/node/lock',
           method: 'post',
           params: {id: row.id,nodeId: row.id}
         }).then(res => {
           if(res.data.code == 200) {
             this.$message({type: 'success',message: '鎿嶄綔鎴愬姛!'});
+            this.addLocalTreeNode(row.parentId);
           }else {
             this.$message({type: 'success',message: res.data.msg});
           }
         });
+      }).catch(action=>{
+        console.log('cancel')
       });
     },
     handleSubmit(form, done) {
@@ -664,8 +722,7 @@
         url: '/blade-mdm/flow/replace/start',
         method: 'post',
         data: obj
-      }).then(
-        resp => {
+      }).then(resp => {
           this.$message({
             type: 'success',
             message: '鎿嶄綔鎴愬姛!',
@@ -716,8 +773,7 @@
         url: '/blade-mdm/flow/replace/pre',
         method: 'post',
         params: {nodeId: row.id}
-      }).then(
-      resp => {
+      }).then(resp => {
         this.row = row;
         this.replaceDataId = resp.data.data.processInstanceId;
         this.processNo = resp.data.data.processNo;
@@ -750,9 +806,13 @@
         if (node.children && node.children.length > 0) {
           node.children = this.removeHasChildren(node.children);
         }
+        if(node.children.length > 0) {
+           const { hasChildren, ...rest } = node;
+          return rest;
+        } else {
+          return node;
+        }
         // 鍒犻櫎褰撳墠鑺傜偣鐨� hasChildren 灞炴��
-        const { hasChildren, ...rest } = node;
-        return rest;
       });
     },
      // 閫掑綊鏌ユ壘鐩爣琛岋紙name="鏈哄簥1"锛�
@@ -776,16 +836,22 @@
       }
     },
     searchTree() {
+      if(this.searchTreeData.programStatus.length == 0) return;
+      if(this.searchTreeData.drawingNo == "") return;
+     
+      this.searchTreeData.status = this.searchTreeData.programStatus.join();
       axios({
-        url: '/blade-mdm/program/node/search-list',
+        url: '/blade-mdm/program/node/search-list2',
         method: 'get',
-        params: this.search,
+        params: this.searchTreeData
       }).then(res => {
+        if(res.data.data.length == 0) return;
         this.option.defaultExpandAll = true;
         this.treeData = this.removeHasChildren(res.data.data);
         this.$nextTick(() => {
           this.highlightTargetRow();  // 璁剧疆褰撳墠琛岄珮浜�
           this.tabsForm = this.targetRow;  //tabs鑺傜偣淇℃伅
+          if(this.tabsForm == null) return;
           this.nodeTypeList.forEach(item=> {
             if(item.dictKey == this.tabsForm.nodeType) {
               this.tabsForm.nodeTypeName = item.dictValue;
@@ -799,6 +865,14 @@
     },
     setClearTree() {
       this.option.defaultExpandAll = false;
+      this.searchTreeData = {
+        programStatus: [],
+        status:'',
+        drawingNo: "",
+        createTime: [],
+        createTimeBegin: "",
+        createTimeEnd: ""
+      };
       this.treeData = [];
       this.$nextTick(()=> {
         this.onLoad();
@@ -1158,9 +1232,30 @@
     },
     getPre() {
       alert(1)
-    }
+    },
+    subtractMonths(date, months) {
+        const newDate = new Date(date);
+        const currentMonth = newDate.getMonth();
+        newDate.setMonth(currentMonth - months);
+        return newDate;
+    },
+    getBeginDate() {
+        var beginDate = this.subtractMonths(new Date(),3);
+        return `${beginDate.getFullYear()}-${(beginDate.getMonth() + 1).toString().padStart(2, '0')}-${beginDate.getDate().toString().padStart(2, '0')}`;
+    },
+    getToday() {
+      let today = new Date();
+      return `${today.getFullYear()}-${(today.getMonth() + 1).toString().padStart(2, '0')}-${today.getDate().toString().padStart(2, '0')}`;
+
+    },
   },
   mounted() {
+    let b = this.getBeginDate()
+    //this.defaultTimeRange = [b,this.getToday()];
+    let defTimeRange = [b,this.getToday()];
+    this.searchTreeData.createTime = defTimeRange
+    this.createTimeChange(defTimeRange)
+    
     this.tabsOption = this.tabsOption1;
     //鑾峰彇nodetype
     axios({url: '/blade-system/dict-biz/dictionary?code=nc_node_type',method: 'get'}).then(res => {
@@ -1172,6 +1267,8 @@
 </script>
 
 <style lang="scss">
+//闅愯棌琛ㄦ牸涓婃柟鑿滃崟鏉�
+
 .delFile {
   color: red;
   margin-left: 12px;
@@ -1218,4 +1315,14 @@
   .code-box .el-drawer__header {
     margin-bottom: 0;
   }
+  .search-data-title {
+    font-size: 12px;
+    margin-right: 8px;
+    display: inline-block;
+    width: 68px;
+  }
+  .search-data-flex {
+    display: flex!important;
+    align-items: center;
+  }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3