From e116bdd983b4a456c866119666e41bbaab4f7293 Mon Sep 17 00:00:00 2001
From: ZZJ <10913410+zzj2100@user.noreply.gitee.com>
Date: 星期五, 15 七月 2022 16:42:08 +0800
Subject: [PATCH] 禅道bug

---
 src/pages/cameraAccess/components/DataStackInfo.vue |  655 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 419 insertions(+), 236 deletions(-)

diff --git a/src/pages/cameraAccess/components/DataStackInfo.vue b/src/pages/cameraAccess/components/DataStackInfo.vue
index 55e70d6..aab0acd 100644
--- a/src/pages/cameraAccess/components/DataStackInfo.vue
+++ b/src/pages/cameraAccess/components/DataStackInfo.vue
@@ -4,14 +4,26 @@
       <el-col :span="12">
         <el-form ref="addForm" :model="form" :rules="rules" label-width="88px">
           <el-form-item label="鍚嶇О" prop="name" style="width: 440px">
-            <el-input v-model="form.name" size="small" :disabled="isDisabled"></el-input>
+            <el-input
+              v-model="form.name"
+              size="small"
+              :disabled="isDisabled"
+            ></el-input>
           </el-form-item>
 
           <el-form-item label="绫诲瀷" prop="type" style="width: 440px">
-            <el-radio v-model="form.type" :label="1" :disabled="!isAdd">瑙嗛</el-radio>
-            <el-radio v-model="form.type" :label="2" :disabled="!isAdd">鍥剧墖</el-radio>
-            <el-radio v-model="form.type" :label="3" :disabled="!isAdd">闊抽</el-radio>
-            <el-radio v-model="form.type" :label="4" :disabled="!isAdd">鍏朵粬鏁版嵁</el-radio>
+            <el-radio v-model="form.type" :label="1" :disabled="!isAdd"
+              >瑙嗛</el-radio
+            >
+            <el-radio v-model="form.type" :label="2" :disabled="!isAdd"
+              >鍥剧墖</el-radio
+            >
+            <el-radio v-model="form.type" :label="3" :disabled="!isAdd"
+              >闊抽</el-radio
+            >
+            <el-radio v-model="form.type" :label="4" :disabled="!isAdd"
+              >鍏朵粬鏁版嵁</el-radio
+            >
           </el-form-item>
           <el-form-item label="澶勭悊鍒嗚鲸鐜�" style="width: 440px">
             <el-select
@@ -24,19 +36,49 @@
               <el-option
                 v-for="item in form.resolutions"
                 :key="`${item.width}*${item.height}`"
-                :label="`${item.width}*${item.height}` == '0*0' ? '鏈満鍒嗚鲸鐜�' : `${item.width}*${item.height}`"
+                :label="
+                  `${item.width}*${item.height}` == '0*0'
+                    ? '鏈満鍒嗚鲸鐜�'
+                    : `${item.width}*${item.height}`
+                "
                 :value="`${item.width}*${item.height}`"
               ></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="澶勭悊瀹屾垚鍚庤嚜鍔ㄥ垹闄ゆ枃浠�" prop="isAutoDelFile" label-width="200px" style="width: 440px">
-            <el-radio v-model="form.isAutoDelFile" :label="true" :disabled="isDisabled">鏄�</el-radio>
-            <el-radio v-model="form.isAutoDelFile" :label="false" :disabled="isDisabled">鍚�</el-radio>
+          <el-form-item
+            label="澶勭悊瀹屾垚鍚庤嚜鍔ㄥ垹闄ゆ枃浠�"
+            prop="isAutoDelFile"
+            label-width="200px"
+            style="width: 440px"
+          >
+            <el-radio
+              v-model="form.isAutoDelFile"
+              :label="true"
+              :disabled="isDisabled"
+              >鏄�</el-radio
+            >
+            <el-radio
+              v-model="form.isAutoDelFile"
+              :label="false"
+              :disabled="isDisabled"
+              >鍚�</el-radio
+            >
           </el-form-item>
 
           <el-form-item label-width="0px" style="text-align: left">
-            <el-button size="small" type="primary" @click="onSubmit('addForm')" :disabled="isDisabled">淇濆瓨</el-button>
-            <el-button type="danger" size="small" @click="deleteDir" v-if="!isAdd" :disabled="isDisabled"
+            <el-button
+              size="small"
+              type="primary"
+              @click="onSubmit('addForm')"
+              :disabled="isDisabled"
+              >淇濆瓨</el-button
+            >
+            <el-button
+              type="danger"
+              size="small"
+              @click="deleteDir"
+              v-if="!isAdd"
+              :disabled="isDisabled"
               >鍒犻櫎鏁版嵁鏍�</el-button
             >
           </el-form-item>
@@ -62,7 +104,10 @@
             :style="`width:80%;height:174px;position: relative;left: -12px;`"
             v-if="PollData.barCharts && PollData.barCharts.length !== 0"
           >
-            <eChartsBar ref="cpuMeneryCharts" :xAxisData="PollData.barCharts"></eChartsBar>
+            <eChartsBar
+              ref="cpuMeneryCharts"
+              :xAxisData="PollData.barCharts"
+            ></eChartsBar>
           </div>
         </div>
       </el-col>
@@ -71,8 +116,16 @@
     <!-- 涓婁紶绠$悊 -->
     <el-divider></el-divider>
     <div class="upload-menu">
-      <span @click="activeName = 'uploaded'" :class="activeName === 'uploaded' ? 'active tab' : 'tab'">宸蹭笂浼�</span>
-      <span @click="activeName = 'uploading'" :class="activeName === 'uploading' ? 'active tab' : 'tab'">姝e湪涓婁紶</span>
+      <span
+        @click="activeName = 'uploaded'"
+        :class="activeName === 'uploaded' ? 'active tab' : 'tab'"
+        >宸蹭笂浼�</span
+      >
+      <span
+        @click="activeName = 'uploading'"
+        :class="activeName === 'uploading' ? 'active tab' : 'tab'"
+        >姝e湪涓婁紶</span
+      >
 
       <div class="btn-right">
         <el-input
@@ -83,16 +136,36 @@
           size="small"
           @change="handelSearchInputChange"
         >
-          <i class="el-icon-search el-input__icon" style="color: #dcdfe6; padding: 0px" slot="prefix"></i>
+          <i
+            class="el-icon-search el-input__icon"
+            style="color: #dcdfe6; padding: 0px"
+            slot="prefix"
+          ></i>
         </el-input>
 
         <!-- 鎵归噺鏆傚仠 -->
-        <el-tooltip content="鎵归噺鏆傚仠" placement="bottom" popper-class="atooltip">
-          <el-button type="text" class="iconfont iconzanting btn" @click="handleFileStatus({}, 0, true)"></el-button>
+        <el-tooltip
+          content="鎵归噺鏆傚仠"
+          placement="bottom"
+          popper-class="atooltip"
+        >
+          <el-button
+            type="text"
+            class="iconfont iconzanting btn"
+            @click="handleFileStatus({}, 0, true)"
+          ></el-button>
         </el-tooltip>
         <!-- 鎵归噺鍒犻櫎 -->
-        <el-tooltip content="鎵归噺鍒犻櫎" placement="bottom" popper-class="atooltip">
-          <el-button type="text" class="el-icon-delete btn" @click="handleFileDelete({}, true)"></el-button>
+        <el-tooltip
+          content="鎵归噺鍒犻櫎"
+          placement="bottom"
+          popper-class="atooltip"
+        >
+          <el-button
+            type="text"
+            class="el-icon-delete btn"
+            @click="handleFileDelete({}, true)"
+          ></el-button>
         </el-tooltip>
 
         <!-- 鏂囦欢涓婁紶 -->
@@ -123,12 +196,16 @@
       :header-cell-style="{
         background: '#f8f8f8',
         color: '#222222',
-        textAlign: 'center'
+        textAlign: 'center',
       }"
       @select="handleSelect"
       @select-all="handleSelect"
     >
-      <el-table-column type="selection" align="center" :selectable="isSelectable"></el-table-column>
+      <el-table-column
+        type="selection"
+        align="center"
+        :selectable="isSelectable"
+      ></el-table-column>
       <el-table-column prop="name" label="鏂囦欢鍚�">
         <template slot-scope="{ row }">
           <div :class="snapshotClass">
@@ -146,7 +223,9 @@
               style="width: 30x; height: 30px; background: #fff"
               :src="`/files/${row.path.substr(row.path.lastIndexOf('/') + 1)}`"
               fit="fill"
-              :preview-src-list="[`/files/${row.path.substr(row.path.lastIndexOf('/') + 1)}`]"
+              :preview-src-list="[
+                `/files/${row.path.substr(row.path.lastIndexOf('/') + 1)}`,
+              ]"
             >
               <div slot="error" :class="snapshotClass"></div>
             </el-image>
@@ -164,13 +243,18 @@
               margin-left: 10px;
             "
           />
-          <a v-else style="line-height: 30px; margin-left: 10px; cursor: pointer" @click="preview(row)">{{
-            row.name
-          }}</a>
+          <a
+            v-else
+            style="line-height: 30px; margin-left: 10px; cursor: pointer"
+            @click="preview(row)"
+            >{{ row.name }}</a
+          >
         </template>
       </el-table-column>
       <el-table-column prop="fileSize" label="澶у皬">
-        <template slot-scope="scope">{{ scope.row.size | readFileSizeUnit }}</template>
+        <template slot-scope="scope">{{
+          scope.row.size | readFileSizeUnit
+        }}</template>
       </el-table-column>
       <el-table-column
         prop="duration"
@@ -179,14 +263,29 @@
         align="center"
         v-if="form.type != 2"
       ></el-table-column>
-      <el-table-column prop="uploadTime" label="涓婁紶鏃堕棿" show-overflow-tooltip align="center">
-        <template slot-scope="scope">{{ scope.row.createTime | moment }}</template>
+      <el-table-column
+        prop="uploadTime"
+        label="涓婁紶鏃堕棿"
+        show-overflow-tooltip
+        align="center"
+      >
+        <template slot-scope="scope">{{
+          scope.row.createTime | moment
+        }}</template>
       </el-table-column>
-      <el-table-column prop="status" label="澶勭悊鐘舵��" show-overflow-tooltip align="center">
+      <el-table-column
+        prop="status"
+        label="澶勭悊鐘舵��"
+        show-overflow-tooltip
+        align="center"
+      >
         <template slot-scope="scope">
           <div
             class="lowHash"
-            v-if="!PollData.stackChannelCount && (scope.row.status == '1' || scope.row.status == '2')"
+            v-if="
+              !PollData.stackChannelCount &&
+              (scope.row.status == '1' || scope.row.status == '2')
+            "
           >
             鏁版嵁鏍堢畻鍔涗笉瓒�
           </div>
@@ -204,10 +303,18 @@
               :disabled="scope.row.status == 2"
               class="el-icon-top btn"
               @click="handleSortFile(1, scope.row.id)"
-              :style="scope.row.id === fileList[0].id ? 'visibility:hidden' : 'visibility:initial'"
+              :style="
+                scope.row.id === fileList[0].id
+                  ? 'visibility:hidden'
+                  : 'visibility:initial'
+              "
             ></el-button>
             <!-- 鏆傚仠 -->
-            <el-tooltip content="鏆傚仠澶勭悊" placement="bottom" popper-class="atooltip">
+            <el-tooltip
+              content="鏆傚仠澶勭悊"
+              placement="bottom"
+              popper-class="atooltip"
+            >
               <el-button
                 type="text"
                 :disabled="scope.row.status == 2"
@@ -218,7 +325,11 @@
             </el-tooltip>
 
             <!-- 寮�濮� -->
-            <el-tooltip content="閲嶆柊寮�濮�" placement="bottom" popper-class="atooltip">
+            <el-tooltip
+              content="閲嶆柊寮�濮�"
+              placement="bottom"
+              popper-class="atooltip"
+            >
               <el-button
                 type="text"
                 :disabled="scope.row.status == 2"
@@ -229,7 +340,11 @@
             </el-tooltip>
 
             <!-- 閲嶆柊澶勭悊 -->
-            <el-tooltip content="閲嶆柊澶勭悊" placement="bottom" popper-class="atooltip">
+            <el-tooltip
+              content="閲嶆柊澶勭悊"
+              placement="bottom"
+              popper-class="atooltip"
+            >
               <el-button
                 type="text"
                 :disabled="scope.row.status == 2"
@@ -242,15 +357,25 @@
             <!-- 鍏朵粬鎿嶄綔 -->
             <el-dropdown @command="dropdownClick">
               <!-- <span class="iconfont icongengduo1 btn"></span> -->
-              <el-button type="text" :disabled="scope.row.status == 2" class="iconfont icongengduo1 btn"></el-button>
+              <el-button
+                type="text"
+                :disabled="scope.row.status == 2"
+                class="iconfont icongengduo1 btn"
+              ></el-button>
               <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item icon="el-icon-edit" :command="{ cb: handleFileRename, data: scope.row }"
+                <el-dropdown-item
+                  icon="el-icon-edit"
+                  :command="{ cb: handleFileRename, data: scope.row }"
                   >閲嶅懡鍚�</el-dropdown-item
                 >
-                <el-dropdown-item icon="el-icon-copy-document" :command="{ cb: handleFileMove, data: scope.row }"
+                <el-dropdown-item
+                  icon="el-icon-copy-document"
+                  :command="{ cb: handleFileMove, data: scope.row }"
                   >绉诲姩/澶嶅埗</el-dropdown-item
                 >
-                <el-dropdown-item icon="el-icon-delete" :command="{ cb: handleFileDelete, data: scope.row }"
+                <el-dropdown-item
+                  icon="el-icon-delete"
+                  :command="{ cb: handleFileDelete, data: scope.row }"
                   >鍒犻櫎</el-dropdown-item
                 >
               </el-dropdown-menu>
@@ -280,7 +405,9 @@
       <file-uploader
         :ref="`uploader_${stack.id}`"
         :key="stack.id"
-        v-show="activeName === 'uploading' && stack.id == DataStackPool.selectedDir.id"
+        v-show="
+          activeName === 'uploading' && stack.id == DataStackPool.selectedDir.id
+        "
         :sourceType="stack.type"
       />
     </template>
@@ -290,25 +417,43 @@
         鎮ㄧ殑娴忚鍣ㄤ笉鏀寔 video 鏍囩銆�
       </video> -->
 
-      <wasm-player :rtspUrl="videoUrl" :showArea="false" v-if="videoUrl"></wasm-player>
+      <wasm-player
+        :rtspUrl="videoUrl"
+        :showArea="false"
+        v-if="videoUrl"
+      ></wasm-player>
 
       <el-image v-if="imgUrl" :src="imgUrl"></el-image>
     </el-dialog>
 
     <el-dialog title="绉诲姩/澶嶅埗" :visible.sync="fileDialog" width="500px">
       <p style="margin: 0px 0px 20px 0px">璇烽�夋嫨鎮ㄦ兂澶嶅埗/绮樿创鍒扮殑 鏁版嵁鏍堬細</p>
-      <span class="iconfont iconwenjian" style="color: #3d68e1; margin-right: 5px"></span>
+      <span
+        class="iconfont iconwenjian"
+        style="color: #3d68e1; margin-right: 5px"
+      ></span>
       <el-select v-model="targetDir" placeholder="璇烽�夋嫨鐩爣鏂囦欢澶�" size="mini">
-        <el-option v-for="item in dirOptions" :key="item.id" :label="item.name" :value="item.id">
+        <el-option
+          v-for="item in dirOptions"
+          :key="item.id"
+          :label="item.name"
+          :value="item.id"
+        >
           <span class="iconfont iconwenjian"></span>
           <span style="margin-left: 10px">{{ item.name }}</span>
         </el-option>
       </el-select>
 
       <div style="margin-top: 20px">
-        <el-button type="primary" size="mini" @click="cellFileCopy">澶嶅埗</el-button>
-        <el-button type="primary" size="mini" @click="cellFileMove">绉诲姩</el-button>
-        <el-button type="info" size="mini" @click="fileDialog = false">鍙栨秷</el-button>
+        <el-button type="primary" size="mini" @click="cellFileCopy"
+          >澶嶅埗</el-button
+        >
+        <el-button type="primary" size="mini" @click="cellFileMove"
+          >绉诲姩</el-button
+        >
+        <el-button type="info" size="mini" @click="fileDialog = false"
+          >鍙栨秷</el-button
+        >
       </div>
     </el-dialog>
   </div>
@@ -325,14 +470,15 @@
   findAllFileByStackId,
   renameFile,
   moveFile,
-  copyFile
-} from "@/api/localVedio"
+  copyFile,
+} from "@/api/localVedio";
+import { getCameraSceneRule } from "@/api/scene";
 
-import InfoCard from "./infoCard"
-import eChartsBar from "@/components/subComponents/eChartsBar"
-import FileUploader from "@/components/subComponents/FileUpload"
+import InfoCard from "./infoCard";
+import eChartsBar from "@/components/subComponents/eChartsBar";
+import FileUploader from "@/components/subComponents/FileUpload";
 
-import WasmPlayer from "@/components/wasmPlayer"
+import WasmPlayer from "@/components/wasmPlayer";
 
 export default {
   name: "DataStackInfo",
@@ -340,15 +486,15 @@
     InfoCard,
     eChartsBar,
     FileUploader,
-    WasmPlayer
+    WasmPlayer,
   },
   props: {
     cameraList: {
       default: () => {
-        return []
+        return [];
       },
-      type: Array
-    }
+      type: Array,
+    },
   },
   filters: {
     statusFormat(value) {
@@ -358,51 +504,62 @@
         0: "鏆傚仠澶勭悊",
         1: "绛夊緟澶勭悊",
         2: "澶勭悊涓�",
-        9: "澶勭悊瀹屾垚"
-      }
-      return statusCode[value]
+        9: "澶勭悊瀹屾垚",
+      };
+      return statusCode[value];
     },
     readFileSizeUnit(value) {
-      let UNITS = [" B", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"]
-      let format = function(value, power) {
-        return (value / Math.pow(1024, power)).toFixed(2) + UNITS[power]
-      }
+      let UNITS = [
+        " B",
+        " KB",
+        " MB",
+        " GB",
+        " TB",
+        " PB",
+        " EB",
+        " ZB",
+        " YB",
+      ];
+      let format = function (value, power) {
+        return (value / Math.pow(1024, power)).toFixed(2) + UNITS[power];
+      };
 
-      value = parseFloat(value, 10)
+      value = parseFloat(value, 10);
       for (var i = 0; i < UNITS.length; i++) {
         if (value < Math.pow(1024, i)) {
           if (UNITS[i - 1]) {
-            return format(value, i - 1)
+            return format(value, i - 1);
           }
-          return value + UNITS[i]
+          return value + UNITS[i];
         }
       }
-      return format(value, i - 1)
-    }
+      return format(value, i - 1);
+    },
   },
   computed: {
     snapshotClass() {
-      let classs = ["snapshot"]
+      let classs = ["snapshot"];
       if (this.form.type === 1) {
-        classs.push("snapshot-video")
+        classs.push("snapshot-video");
       } else if (this.form.type === 2) {
-        classs.push("snapshot-image")
+        classs.push("snapshot-image");
       } else if (this.form.type === 3) {
-        classs.push("snapshot-audio")
+        classs.push("snapshot-audio");
       } else {
-        classs.push("snapshot-files")
+        classs.push("snapshot-files");
       }
 
-      return classs
+      return classs;
     },
     dirOptions() {
       return this.DataStackPool.dirs.filter((dir) => {
-        return dir.id !== this.DataStackPool.selectedDir.id
-      })
-    }
+        return dir.id !== this.DataStackPool.selectedDir.id;
+      });
+    },
   },
   data() {
     return {
+      hasRule: false,
       videoUrl: "",
       imgUrl: "",
       previewDialog: false,
@@ -414,14 +571,16 @@
       searchInput: "",
       form: {
         id: "",
-        resolution: ""
+        resolution: "",
       },
       fileList: [],
       // 璁板綍娣诲姞鐘舵��
       isAdd: false,
       addParentId: "",
       rules: {
-        dirName: [{ required: true, message: "璁惧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }]
+        dirName: [
+          { required: true, message: "璁惧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+        ],
       },
       activeName: "uploaded",
       page: 1,
@@ -431,31 +590,43 @@
       editRowId: "",
       timer: 0,
       targetDir: "",
-      targetFile: ""
-    }
+      targetFile: "",
+    };
   },
   mounted() {
-    this.initFormData()
+    this.initFormData();
   },
   beforeDestroy() {
-    this.taskUid = 0
+    this.taskUid = 0;
   },
   methods: {
+    async getRule() {
+      const res = await getCameraSceneRule({
+        cameraId: this.DataStackPool.selectedDir.id,
+      });
+      if (res && res.success && res.data.rules && res.data.rules.length > 0) {
+        this.hasRule = true;
+        console.log(this.hasRule);
+      } else {
+        this.hasRule = false;
+      }
+    },
     checkResolution(val) {
-      this.form.resolution_width = Number(val.split("*")[0])
-      this.form.resolution_height = Number(val.split("*")[1])
+      this.form.resolution_width = Number(val.split("*")[0]);
+      this.form.resolution_height = Number(val.split("*")[1]);
     },
     preview(row) {
-      this.previewDialog = true
+      this.previewDialog = true;
       if (row.type === 1) {
-        this.videoUrl = "/files/" + row.identifier + ".mp4"
+        this.videoUrl = "/files/" + row.identifier + ".mp4";
 
         // 涓烘湐榛勪娇鐢ㄦ暟鎹爤瀹氬埗, 娌℃湁MD5
         if (row.identifier == "") {
-          this.videoUrl = row.path.replace("/opt/vasystem", "")
+          this.videoUrl = row.path.replace("/opt/vasystem", "");
         }
       } else if (row.type === 2) {
-        this.imgUrl = "/files/" + row.path.substr(row.path.lastIndexOf("/") + 1)
+        this.imgUrl =
+          "/files/" + row.path.substr(row.path.lastIndexOf("/") + 1);
       }
     },
     // 娓呯┖杈撳叆妗�
@@ -471,61 +642,61 @@
         resolutions: [
           {
             height: 0,
-            width: 0
-          }
-        ]
-      }
+            width: 0,
+          },
+        ],
+      };
     },
     // 娣诲姞璁惧
     addDir(node) {
-      this.isAdd = true
-      this.isDisabled = false
-      this.initFormData()
-      this.DataStackPool.clean()
-      this.fileList = []
+      this.isAdd = true;
+      this.isDisabled = false;
+      this.initFormData();
+      this.DataStackPool.clean();
+      this.fileList = [];
     },
     // 鏁版嵁鏍堟枃浠跺す閫変腑鏃讹紝鐢辩埗缁勪欢瑙﹀彂
     selectDir(node) {
       if (node.id === "") {
-        return
+        return;
       }
 
-      this.isDisabled = false
-      this.isAdd = false
-      this.videoItem = null
-      this.$refs.addForm.resetFields()
+      this.isDisabled = false;
+      this.isAdd = false;
+      this.videoItem = null;
+      this.$refs.addForm.resetFields();
       // this.initFormData();
       // this.$refs.addForm.clearValidate();
-      this.form = { ...node }
-      this.form.resolution = `${node.resolution_width}*${node.resolution_height}`
-      delete this.form.createTime
-      delete this.form.updateTime
-      delete this.form.status
+      this.form = { ...node };
+      this.form.resolution = `${node.resolution_width}*${node.resolution_height}`;
+      delete this.form.createTime;
+      delete this.form.updateTime;
+      delete this.form.status;
 
-      this.fileList = []
-      this.searchInput = ""
-      this.page = 1
-      this.size = 10
-      this.total = 0
-      this.multipleSelection = [] // 娓呯┖閫変腑鐘舵��
-      this.initFetchListTask()
-      this.videoUrl = ""
-      this.imgUrl = ""
+      this.fileList = [];
+      this.searchInput = "";
+      this.page = 1;
+      this.size = 10;
+      this.total = 0;
+      this.multipleSelection = []; // 娓呯┖閫変腑鐘舵��
+      this.initFetchListTask();
+      this.videoUrl = "";
+      this.imgUrl = "";
     },
     initFetchListTask() {
-      const uid = Math.round(Math.random() * 1000)
-      this.taskUid = uid
-      this.timingtask(uid)
+      const uid = Math.round(Math.random() * 1000);
+      this.taskUid = uid;
+      this.timingtask(uid);
     },
     timingtask(uid) {
       if (uid !== this.taskUid || this.form.id === "") {
-        return
+        return;
       }
-      this.fetchFileList()
-      let _this = this
+      this.fetchFileList();
+      let _this = this;
       this.timer = setTimeout(() => {
-        _this.timingtask(uid)
-      }, 2 * 1000)
+        _this.timingtask(uid);
+      }, 2 * 1000);
     },
     fetchFileList() {
       findAllFileByStackId({
@@ -533,26 +704,26 @@
         stackId: this.form.id,
         page: this.page,
         size: this.size,
-        type: 0
+        type: 0,
       })
         .then((rsp) => {
           if (rsp && rsp.success && rsp.data.total >= 0) {
-            this.fileList = rsp.data.dataList
-            this.total = rsp.data.total
+            this.fileList = rsp.data.dataList;
+            this.total = rsp.data.total;
             // 瀹氭椂鍒锋柊浼氭竻绌洪�変腑鐘舵�侊紝鍦ㄨ繖閲屾仮澶�
             this.fileList.forEach((row) => {
               //this.polygonDatas.push({snapshot_url:row.snapshot_url})
               if (this.multipleSelection.indexOf(row.id) !== -1) {
                 this.$nextTick(() => {
-                  this.$refs.multipleTable.toggleRowSelection(row)
-                })
+                  this.$refs.multipleTable.toggleRowSelection(row);
+                });
               }
-            })
+            });
           }
         })
         .catch((err) => {
-          console.log(err)
-        })
+          console.log(err);
+        });
     },
 
     // 淇濆瓨
@@ -561,9 +732,9 @@
         if (this.form.name.indexOf("/") >= 0) {
           this.$notify({
             type: "error",
-            message: "淇濆瓨澶辫触,鏁版嵁鏍堝悕绉颁笉鑳藉寘鍚�'/'锛�"
-          })
-          return
+            message: "淇濆瓨澶辫触,鏁版嵁鏍堝悕绉颁笉鑳藉寘鍚�'/'锛�",
+          });
+          return;
         }
       }
       this.$refs[formName].validate(async (valid) => {
@@ -572,227 +743,239 @@
             if (rsp.success) {
               this.$notify({
                 type: "success",
-                message: "鏁版嵁鏍堜俊鎭繚瀛樻垚鍔燂紒"
-              })
-              this.DataStackPool.fetchFiles()
+                message: "鏁版嵁鏍堜俊鎭繚瀛樻垚鍔燂紒",
+              });
+              this.DataStackPool.fetchFiles();
             } else {
               this.$notify({
                 type: "error",
-                message: "鏁版嵁鏍堜俊鎭繚瀛樺け璐ワ紒"
-              })
+                message: "鏁版嵁鏍堜俊鎭繚瀛樺け璐ワ紒",
+              });
             }
-          })
+          });
         }
-      })
+      });
     },
     // 鍒犻櫎鎽勫儚鏈�
     deleteDir() {
       this.$confirm("鏄惁鍒犻櫎姝ゆ枃浠跺す锛�", {
         center: true,
         cancelButtonClass: "comfirm-class-cancle",
-        confirmButtonClass: "comfirm-class-sure"
+        confirmButtonClass: "comfirm-class-sure",
       }).then(() => {
         delDir(this.form.id)
           .then((res) => {
             if (res.success) {
-              this.initFormData()
+              this.initFormData();
               this.$notify({
                 type: "success",
-                message: "鍒犻櫎鎴愬姛锛�"
-              })
-              this.DataStackPool.fetchFiles()
-              this.DataStackPool.selectedDir = {}
+                message: "鍒犻櫎鎴愬姛锛�",
+              });
+              this.DataStackPool.fetchFiles();
+              this.DataStackPool.selectedDir = {};
               // 鍒犻櫎鍚庢仮澶嶆湭閫変腑鐘舵��
-              this.addDir()
-              this.isAdd = false
-              this.isDisabled = true
+              this.addDir();
+              this.isAdd = false;
+              this.isDisabled = true;
             } else {
               this.$notify({
                 type: "error",
-                message: "鍒犻櫎澶辫触锛�"
-              })
+                message: "鍒犻櫎澶辫触锛�",
+              });
             }
           })
           .catch((err) => {
             this.$notify({
               type: "error",
-              message: "鍒犻櫎澶辫触锛�"
-            })
-          })
-      })
+              message: "鍒犻櫎澶辫触锛�",
+            });
+          });
+      });
     },
     handleTabClick(tab, event) {
-      console.log(tab, event)
+      console.log(tab, event);
     },
     handleSelect(val) {
       this.multipleSelection = val.map((row) => {
-        return row.id
-      })
+        return row.id;
+      });
     },
     handelSearchInputChange(val) {
-      this.multipleSelection = []
+      this.multipleSelection = [];
     },
     handleUpload() {
-      console.log(this.DataStackPool.selectedDir.id)
-      console.log(this.$refs[`uploader_${this.DataStackPool.selectedDir.id}`][0].$refs.button.$refs.btn.click())
+      console.log(this.DataStackPool.selectedDir);
+      console.log(this.DataStackPool.dirs);
+      this.$refs[
+        `uploader_${this.DataStackPool.selectedDir.id}`
+      ][0].$refs.button.$refs.btn.click();
     },
     handleRefrashFileList(val) {
-      this.page = val
-      this.multipleSelection = []
-      this.fetchFileList()
+      this.page = val;
+      this.multipleSelection = [];
+      this.fetchFileList();
     },
     handleSizeChange(val) {
-      this.size = val
-      this.multipleSelection = []
-      this.fetchFileList()
+      this.size = val;
+      this.multipleSelection = [];
+      this.fetchFileList();
     },
     async handleSortFile(direct, id) {
       let res = await sortFile({
         id: id,
-        direct: direct
-      })
+        direct: direct,
+      });
       if (res && res.success) {
-        this.fetchFileList()
+        this.fetchFileList();
         //鏇存柊鐙珛鍦烘櫙鏁版嵁鏍堟枃浠�
-        console.log(this.$root.$children[0].$children[1].$refs["sepRule"])
-        this.$root.$children[0].$children[1].$refs["sepRule"].getStackFiles()
+        console.log(this.$root.$children[0].$children[1].$refs["sepRule"]);
+        this.$root.$children[0].$children[1].$refs["sepRule"].getStackFiles();
         this.$notify({
           type: "success",
-          message: "鏂囦欢鎺掑簭鎴愬姛锛�"
-        })
+          message: "鏂囦欢鎺掑簭鎴愬姛锛�",
+        });
       }
     },
     async handleFileStatus(row, status, multi = false) {
-      let ids = this.multipleSelection
+      let ids = this.multipleSelection;
       if (!multi) {
-        ids = [row.id]
+        ids = [row.id];
       }
       if (!ids.length) {
         this.$notify({
           type: "error",
-          message: "鏈�変腑鏂囦欢"
-        })
-        return
+          message: "鏈�変腑鏂囦欢",
+        });
+        return;
+      }
+      if (!this.hasRule && status === 1) {
+        this.$notify({
+          type: "error",
+          message: "鎮ㄨ繕鏈厤缃畻娉曞満鏅�,璇峰厛閰嶇疆",
+        });
+        return;
       }
       try {
         let res = await updateStatus({
           ids: ids,
-          status: status
-        })
+          status: status,
+        });
         if (res && res.success) {
-          this.fetchFileList()
+          this.fetchFileList();
           this.$notify({
             type: "success",
-            message: "鍒囨崲鏂囦欢澶勭悊鐘舵�佹垚鍔�"
-          })
+            message: "鍒囨崲鏂囦欢澶勭悊鐘舵�佹垚鍔�",
+          });
         }
       } catch {
-        console.log("err")
+        console.log("err");
       }
     },
     dropdownClick(cmd) {
-      cmd.cb(cmd.data)
+      cmd.cb(cmd.data);
     },
     handleFileDelete(rows, multi = false) {
-      let _this = this
-      let ids = this.multipleSelection
+      let _this = this;
+      let ids = this.multipleSelection;
       if (!multi) {
-        ids = [rows.id]
+        ids = [rows.id];
       }
       if (!ids.length) {
         this.$notify({
           type: "error",
-          message: "鏈�変腑鏂囦欢"
-        })
-        return
+          message: "鏈�変腑鏂囦欢",
+        });
+        return;
       }
       this.$confirm("鎻愮ず锛氱‘瀹氬垹闄よ鏂囦欢鍚楋紵", {
         center: true,
         cancelButtonClass: "comfirm-class-cancle",
-        confirmButtonClass: "comfirm-class-sure"
+        confirmButtonClass: "comfirm-class-sure",
       })
         .then(() => {
           deleteLocalFile({ ids: ids }).then((rsp) => {
             this.$notify({
               type: "error",
-              message: "鏂囦欢宸插垹闄�"
-            })
-          })
+              message: "鏂囦欢宸插垹闄�",
+            });
+          });
         })
-        .catch(() => {})
+        .catch(() => {});
     },
     handleFileMove(row) {
-      this.targetDir = ""
-      this.targetFile = row.id
-      this.fileDialog = true
+      this.targetDir = "";
+      this.targetFile = row.id;
+      this.fileDialog = true;
     },
     handleFileRename(row) {
-      this.editRowId = row.id
-      clearTimeout(this.timer)
-      this.timer = null
+      this.editRowId = row.id;
+      clearTimeout(this.timer);
+      this.timer = null;
     },
     cellRenameFile(row) {
-      this.editRowId = ""
+      this.editRowId = "";
       renameFile({ id: row.id, name: row.name })
         .then((rsp) => {
           if (rsp && rsp.success) {
             this.$notify({
               type: "success",
-              message: "鏂囦欢閲嶅懡鍚嶆垚鍔�"
-            })
+              message: "鏂囦欢閲嶅懡鍚嶆垚鍔�",
+            });
           } else {
             this.$notify({
               type: "error",
-              message: "鏂囦欢閲嶅懡鍚嶅け璐�"
-            })
+              message: "鏂囦欢閲嶅懡鍚嶅け璐�",
+            });
           }
           if (!this.timer) {
-            this.initFetchListTask()
+            this.initFetchListTask();
           }
         })
         .catch(() => {
           if (!this.timer) {
-            this.initFetchListTask()
+            this.initFetchListTask();
           }
-        })
+        });
     },
     isSelectable(row, rowIndex) {
-      return row.status !== 2
+      return row.status !== 2;
     },
     cellFileCopy() {
-      copyFile({ id: this.targetFile, stackIds: [this.targetDir] }).then((rsp) => {
-        if (rsp && rsp.success) {
-          this.$notify({
-            type: "success",
-            message: "澶嶅埗鎴愬姛"
-          })
-          this.fileDialog = false
-        } else {
-          this.$notify({
-            type: "error",
-            message: "澶嶅埗澶辫触"
-          })
+      copyFile({ id: this.targetFile, stackIds: [this.targetDir] }).then(
+        (rsp) => {
+          if (rsp && rsp.success) {
+            this.$notify({
+              type: "success",
+              message: "澶嶅埗鎴愬姛",
+            });
+            this.fileDialog = false;
+          } else {
+            this.$notify({
+              type: "error",
+              message: "澶嶅埗澶辫触",
+            });
+          }
         }
-      })
+      );
     },
     cellFileMove() {
       moveFile({ id: this.targetFile, stackId: this.targetDir }).then((rsp) => {
         if (rsp && rsp.success) {
           this.$notify({
             type: "success",
-            message: "绉诲姩鎴愬姛"
-          })
-          this.fileDialog = false
+            message: "绉诲姩鎴愬姛",
+          });
+          this.fileDialog = false;
         } else {
           this.$notify({
             type: "error",
-            message: "绉诲姩澶辫触"
-          })
+            message: "绉诲姩澶辫触",
+          });
         }
-      })
-    }
-  }
-}
+      });
+    },
+  },
+};
 </script>
 
 <style lang="scss">

--
Gitblit v1.8.0