From 129e151f68e215ff592bb36ef52eb1ed5c15740d Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 16 十一月 2022 17:50:22 +0800
Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/sccg_ui

---
 src/views/systemSetting/platform/portalSetting/index.vue |    2 
 src/views/systemSetting/platform/cockpitManage/index.vue |    7 
 src/utils/helper.js                                      |   21 
 src/views/operate/images/updateUser/index.vue            |   84 +++-
 src/views/operate/video/updateInterface/index.vue        |  254 ++++++-------
 /dev/null                                                |  314 ----------------
 src/views/operate/images/index.vue                       |   27 +
 src/api/operate/imageManagement.js                       |    4 
 src/http/index.js                                        |    8 
 src/api/operate/videoManagement.js                       |   23 +
 src/components/Upload/index.vue                          |    1 
 src/utils/index.js                                       |    2 
 src/views/operate/video/index.vue                        |  378 +++++--------------
 13 files changed, 354 insertions(+), 771 deletions(-)

diff --git a/src/api/operate/imageManagement.js b/src/api/operate/imageManagement.js
index efe5e09..1cecfeb 100644
--- a/src/api/operate/imageManagement.js
+++ b/src/api/operate/imageManagement.js
@@ -1,8 +1,8 @@
 import http from "@/http";
 
 export default {
-    importImage: (params) => {
-        return http.uploadFile('/sccg/file/medias', params);
+    importImage: (data) => {
+        return http.uploadFile('/sccg/file/medias', data);
     },
 
     getImageResources: (params) => {
diff --git a/src/api/operate/videoManagement.js b/src/api/operate/videoManagement.js
new file mode 100644
index 0000000..395a84e
--- /dev/null
+++ b/src/api/operate/videoManagement.js
@@ -0,0 +1,23 @@
+import http from "@/http";
+
+export default {
+    getVideoResources: (params) => {
+        return http.get('/sccg/video_resources/query', params);
+    },
+
+    addVideoResource: (params) => {
+        return http.post('/sccg/video_resources/addition', params);
+    },
+
+    updateVideoResource: (params) => {
+        return http.put('/sccg/video_resources/modification', params);
+    },
+
+    deleteVideoRescource: (params) => {
+      return http.delete('/sccg/video_resources/deletion', params);
+    },
+
+    deleteVideoRescources: (params) => {
+        return http.delete('/sccg/video_resources/deletion_batch', params);
+    }
+}
\ No newline at end of file
diff --git a/src/components/Upload/index.vue b/src/components/Upload/index.vue
index 2e7d00a..3bbeb74 100644
--- a/src/components/Upload/index.vue
+++ b/src/components/Upload/index.vue
@@ -23,7 +23,6 @@
     },
     methods: {
         beforeUpload(rawFile) {
-            console.log(rawFile);
             if (rawFile.type !== 'image/png' && rawFile.type !== 'image/svg+xml' && rawFile.type !== 'image/jpg' && rawFile.type !== 'image/jpeg') {
                 this.$message.error('鍥剧墖蹇呴』鏄� jpg/svg/jpeg/png 鏍煎紡!')
                 return false
diff --git a/src/http/index.js b/src/http/index.js
index 53dda95..85f73d8 100644
--- a/src/http/index.js
+++ b/src/http/index.js
@@ -64,10 +64,11 @@
    * @param {boolean?} throwError 鏄惁涓嶄娇鐢ㄩ粯璁ょ殑寮傚父澶勭悊鏂规硶锛岃�屾妸寮傚父鎶涘嚭鏉�
    * @return {Promise} 杩斿洖涓�涓猵romise瀵硅薄銆傚叾涓璽hen鏂规硶浼犻�掑洖鍖呬腑鐨刣ata鏁版嵁锛沜atch浜嬩欢鍒欎紶閫掓暣涓洖鍖咃紝鍏跺弬鏁颁负{data:{},status{code:123,message:'xxx'}}
    */
-  post(url, data = {}, throwError) {
+  post(url, data = {}, params= {}, throwError) {
     const config = {
       method: 'POST',
       url,
+      params,
       data: JSON.stringify(data),
       errorHandler: (!throwError && this.defaultErrorHandler) || null,
       headers: {
@@ -208,8 +209,9 @@
       data: formElem instanceof FormData ? formElem : new FormData(formElem),
       onUploadProgress,
       errorHandler: (!throwError && this.defaultErrorHandler) || null,
-      timeout: 500000,
-      enableRepeat: true
+      headers: {
+        'Content-Type': 'multipart/form-data'
+      },
     })
   }
 }
\ No newline at end of file
diff --git a/src/utils/helper.js b/src/utils/helper.js
index e9853bc..e29e5e6 100644
--- a/src/utils/helper.js
+++ b/src/utils/helper.js
@@ -49,15 +49,15 @@
 // data: 鏂囦欢, contentDisposition锛氳姹傚ご涓枃浠剁殑鍚嶅瓧
 // 榛樿涓嶇敤淇敼锛岀洿鎺ュ皢杩斿洖鐨剅es浼犲叆鍗冲彲
 export function downloadFile(res) {
-    const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' });
+    const blob = new Blob([res.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
     const fileName = res.contentDisposition.split('=')[1];
     if (window.navigator && window.navigator.msSaveBlob) {
-        navigator.msSaveBlob(blob, fileName);
+        navigator.msSaveBlob(blob, `${new Date().getTime()}`);
     } else {
         const link = document.createElement('a');
         link.style.display = 'none';
         link.href = URL.createObjectURL(blob);
-        link.setAttribute('download', decodeURI(fileName));
+        link.setAttribute('download', decodeURI(`${new Date().getTime()}`));
         document.body.appendChild(link);
         link.click();
         URL.revokeObjectURL(link.href);
@@ -120,3 +120,18 @@
     }
     return str + '鍒嗛挓'
 }
+
+export const EVENT_SOURCE = [
+    { label: '瑙嗛', value: 1 },
+    { label: '鎵嬪姩绛夌骇', value: 2 }
+]
+
+export const CATEGOTY = [
+    { label: '杩濊', value: 1 },
+    { label: '杩濆缓', value: 2 }
+]
+
+export const RESOURCE_TYPE = [
+    { label: '涓婃姤', value: '01' },
+    { label: '澶勭疆', value: '02' }
+]
diff --git a/src/utils/index.js b/src/utils/index.js
index 256fdb9..3132ba3 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -54,3 +54,5 @@
 }
 
 export const SUCCESS_CODE = 200;
+
+export const FILE_ORIGINAL_URL = 'http://140.143.152.226:8410/'
diff --git a/src/views/operate/images/index.vue b/src/views/operate/images/index.vue
index cb18b53..37708a5 100644
--- a/src/views/operate/images/index.vue
+++ b/src/views/operate/images/index.vue
@@ -42,11 +42,17 @@
                     </el-table-column>
                     <el-table-column prop="baseId" label="鎵�灞炰簨浠剁紪鍙�" min-width="18">
                     </el-table-column>
-                    <el-table-column prop="category" label="闂绫诲瀷" min-width="8">
+                    <el-table-column prop="category" label="闂绫诲埆" min-width="8">
+                      <template slot-scope="scope">
+                        <span>{{ getCategory(scope.row.category).label }}</span>
+                      </template>
                     </el-table-column>
-                    <el-table-column prop="eventSource" label="澶х被鍚嶇О" min-width="8">
+                    <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="8">
+                      <template slot-scope="scope">
+                        <span>{{ getEventSource(scope.row.eventSource).label }}</span>
+                      </template>
                     </el-table-column>
-                    <el-table-column prop="regionName" label="灏忕被鍚嶇О" min-width="8">
+                    <el-table-column prop="regionName" label="绀惧尯鍚嶇О" min-width="8">
                     </el-table-column>
                     <el-table-column prop="id" label="鍥剧墖Id" min-width="8">
                     </el-table-column>
@@ -100,6 +106,7 @@
 <script>
 import updateUser from "./updateUser";
 import imageManagement from "@/api/operate/imageManagement";
+import { CATEGOTY, EVENT_SOURCE } from "@/utils/helper";
 
 export default {
     components: { updateUser },
@@ -121,7 +128,7 @@
     },
 
     data() {
-        return {
+      return {
             isShowUploadDialog:false,
             dialogType: 'create',
             originalData: null,
@@ -177,7 +184,7 @@
             caseId: '',
             caseCode: null,
             dialogAdd: false,
-            datePicked: null
+            datePicked: null,
         }
     },
     created() {
@@ -289,7 +296,15 @@
 
         closeDialog() {
           this.isShowUploadDialog = false;
-        }
+        },
+
+      getCategory(value) {
+          return CATEGOTY.find(item => item.value === value);
+      },
+
+      getEventSource(value) {
+          return EVENT_SOURCE.find(item => item.value === value);
+      }
     }
 }
 </script>
diff --git a/src/views/operate/images/updateUser/index.vue b/src/views/operate/images/updateUser/index.vue
index ebcd0ad..7cf2e92 100644
--- a/src/views/operate/images/updateUser/index.vue
+++ b/src/views/operate/images/updateUser/index.vue
@@ -2,29 +2,35 @@
   <div class="updateUser">
     <main>
       <div class="mainContent">
-        <el-form :disabled="isDisabled" ref="user" style="width: 100%;">
+        <el-form :model="imagedata" :rules="rules" :disabled="isDisabled" ref="user" style="width: 100%;">
           <el-form-item prop="baseId" label="鎵�灞炰簨浠剁紪鍙�">
             <el-input v-model="imagedata.baseId"></el-input>
           </el-form-item>
-          <el-form-item prop="eventSource" label="澶х被鍚嶇О">
+          <el-form-item prop="eventSource" label="浜嬩欢鏉ユ簮">
             <el-input v-model="imagedata.eventSource"></el-input>
           </el-form-item>
-          <el-form-item prop="regionName" label="灏忕被鍚嶇О">
+          <el-form-item prop="category" label="闂绫诲埆">
+            <el-input v-model="imagedata.category"></el-input>
+          </el-form-item>
+          <el-form-item prop="type" label="绫诲瀷">
+            <el-select v-model="imagedata.type">
+              <el-option v-for="item in getResourceType()" :key="item.value" :label="item.label" :value="item.value" />
+            </el-select>
+          </el-form-item>
+          <el-form-item prop="regionName" label="绀惧尯鍚嶇О">
             <el-input v-model="imagedata.regionName"></el-input>
           </el-form-item>
           <el-form-item prop="id" label="鍥剧墖Id">
             <el-input v-model="imagedata.id"></el-input>
           </el-form-item>
-          <el-form-item prop="createTime" label="涓婁紶鏃堕棿">
-            <el-input v-model="imagedata.createTime"></el-input>
-          </el-form-item>
-          <el-form-item prop="eventSource" label="鍥剧墖:" min-width="8">
-<!--            <img style="width: 180px;height: 120px;" :src=imagedata.url>-->
+          <el-form-item prop="url" label="鍥剧墖:" min-width="8">
             <el-upload
+                class="avatar-uploader"
                 action=""
+                ref="image"
                 :show-file-list="false"
-                :on-success="handleImageSuccess"
-                :before-upload="beforeImageUpload">
+                :auto-upload="true"
+                :http-request="imageUpload">
               <img v-if="imagedata.url" :src="imagedata.url" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
@@ -38,26 +44,47 @@
   </div>
 </template>
 <script>
-import { deepClone } from "@/utils/helper";
+import { deepClone, RESOURCE_TYPE } from "@/utils/helper";
 import imageManagement from "@/api/operate/imageManagement";
+import { FILE_ORIGINAL_URL } from "@/utils";
 
 export default {
   data() {
+    const validateImageUrl = (rule, value, callback) => {
+      if (this.imagedata.url) {
+        callback();
+      } else {
+        callback(new Error('璇蜂笂浼犲浘鐗�'));
+      }
+    };
     return {
       imagedata: {
-        code: '',
+        baseId: '',
         eventSource: '',
         regionName: '',
-        smallType: '',
+        category: '',
         id: '',
-        createTime: '',
-        url: ''
+        url: '',
+        type: ''
+      },
+      rules: {
+        baseId: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ユ墍灞炰簨浠剁紪鍙�' }],
+        eventSource: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ヤ簨浠舵潵婧�' }],
+        regionName: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ョぞ鍖哄悕绉�' }],
+        id: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ュ浘鐗嘔d' }],
+        category: [{ required: true, trigger: 'blue', message: '璇疯緭鍏ラ棶棰樼被鍨�' }],
+        url: [{ required: true, validator: validateImageUrl }],
+        type: [{ required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨绫诲瀷' }]
       },
       isDisabled: false
     }
   },
+
   created() {
     this.imagedata = deepClone(this.originalData);
+    if (this.dialogType !== 'create') {
+      this.imagedata.url = this.imagedata.url.split(',')[0];
+    }
     this.isDisabled = this.dialogType === 'view';
   },
   methods: {
@@ -84,12 +111,22 @@
         }
       })
     },
-    handleImageSuccess() {},
-    beforeImageUpload(file) {
-      imageManagement.importImage(file)
+    imageUpload(file) {
+      const formData = new FormData();
+      formData.append('file', file.file);
+      imageManagement.importImage(formData)
           .then(res => {
+            this.$refs.image.clearFiles();
+            this.$set(this.imagedata, 'url', FILE_ORIGINAL_URL + res.url1);
+            this.$message.success('涓婁紶鎴愬姛');
           })
-          .catch(err => this.$message.error(`${err}`))
+          .catch(err => {
+            this.$message.error(`${err}`);
+            this.$refs.image.clearFiles();
+          })
+    },
+    getResourceType(value) {
+      return value ? RESOURCE_TYPE.find(item => item.value === value) : RESOURCE_TYPE;
     }
   },
   props: {
@@ -115,13 +152,6 @@
     padding: 0 55px;
     background-color: #09152f;
     padding-bottom: 50px;
-
-    // .mainTitle {
-    //     color: #4b9bb7;
-    //     font-weight: 600;
-    //     line-height: 100px;
-    //     font-size: 14px;
-    // }
 
     .mainContent {
       display: flex;
@@ -257,7 +287,7 @@
   color: red;
 }
 
-.el-input {
+.el-input, .el-select {
   width: 280px !important;
 }
 </style>
\ No newline at end of file
diff --git a/src/views/operate/video/createInterface/index.vue b/src/views/operate/video/createInterface/index.vue
deleted file mode 100644
index d9570a9..0000000
--- a/src/views/operate/video/createInterface/index.vue
+++ /dev/null
@@ -1,456 +0,0 @@
-<template>
-  <div class="createUser">
-    <main>
-      <div class="mainContent">
-        <el-form
-          ref="user"
-          label-width="140px"
-          autoComplete="on"
-          :model="depart"
-          :rules="createDepartRules"
-          label-position="right"
-        >
-          <!-- 閮ㄩ棬鍚嶇О -->
-          <el-form-item class="optionItem" label="闂绫诲瀷:" prop="departName">
-            <el-input
-              v-model="depart.departName"
-              placeholder="璇疯緭鍏ラ棶棰樼被鍨�"
-            ></el-input>
-          </el-form-item>
-          <!-- 涓婄骇閮ㄩ棬 -->
-          <el-form-item class="optionItems" label="澶х被鍚嶇О:" prop="parentId">
-            <el-select v-model="depart.parentId" placeholder="璇疯緭鍏ュぇ绫诲悕绉�">
-              <el-option :value="mylabel">
-                <el-tree
-                  ref="tree"
-                  :check-strictly="true"
-                  :data="departList"
-                  :props="defaultProps"
-                  show-checkbox
-                  @check-change="handleCheck"
-                  default-expand-all
-                  node-key="id"
-                >
-                </el-tree>
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <!-- 閮ㄩ棬绫诲瀷 -->
-          <el-form-item class="optionItem" label="灏忕被鍚嶇О:" prop="departType">
-            <el-select v-model="depart.departType" placeholder="璇烽�夋嫨灏忕被鍚嶇О">
-              <el-option
-                v-for="item in departTypeList"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <!--娣诲姞浜哄憳  -->
-          <el-form-item class="optionItem add" label="娣诲姞瑙嗛:">
-            <ul class="addPerson">
-              <li
-                v-for="(item, index) in checkedList"
-                :key="index"
-                @click="setLeader(index)"
-              >
-                <div class="li-item">
-                  <div class="li-icon">
-                    <i
-                      :class="[
-                        'el-icon-user-solid',
-                        item.leader ? 'leader' : '',
-                      ]"
-                    ></i>
-                  </div>
-                  <label
-                    style="font-size: 12px"
-                    :class="[item.leader ? 'leader' : '']"
-                    >{{ item.username }}</label
-                  >
-                </div>
-              </li>
-              <li class="li-btn">
-                <i class="el-icon-plus" @click="openUser = true"></i>
-              </li>
-            </ul>
-            <div class="card" v-if="openUser">
-              <el-card class="box-card">
-                <div slot="header" class="myclear">
-                  <span>宸ヤ綔浜哄憳</span>
-                  <div @click="addUser">纭</div>
-                </div>
-                <div class="scrollWrap">
-                  <el-checkbox-group v-model="checkedUser">
-                    <el-checkbox
-                      v-for="user in userList"
-                      :label="user.id"
-                      :key="user.id"
-                    >
-                      {{ user.username}}
-                    </el-checkbox>
-                  </el-checkbox-group>
-                </div>
-                <div class="hidebar"></div>
-              </el-card>
-            </div>
-          </el-form-item>
-        </el-form>
-      </div>
-    </main>
-    <footer>
-      <div class="optionBtn">
-        <el-button @click="handleClose">鍙栨秷</el-button>
-        <el-button type="primary" class="btn submit" @click="handleUser"
-          >纭畾</el-button
-        >
-      </div>
-    </footer>
-  </div>
-</template>
-<script>
-import { getTypeList } from "@/utils/helper";
-export default {
-  data() {
-    const validateNickname = (rule, value, callback) => {
-      if (!value) {
-        callback(new Error("璇峰~鍐欓儴闂ㄥ悕绉�"));
-      } else {
-        callback();
-      }
-    };
-    const validatePass = (rule, value, callback) => {
-      if (!value) {
-        callback();
-      } else {
-        callback();
-      }
-    };
-    const validatePhone = (rule, value, callback) => {
-      if (!value) {
-        callback();
-      } else {
-        callback();
-      }
-    };
-    return {
-      depart: {
-        departName: "",
-        parentId: "",
-        departType: "",
-        departDes: "",
-      },
-      createDepartRules: {
-        departName: [
-          { required: true, trigger: "blur", validator: validateNickname },
-        ],
-        parentId: [
-          { required: false, trigger: "blur", validator: validatePass },
-        ],
-        departType: [
-          { required: false, trigger: "blur", validator: validatePhone },
-        ],
-        departDes: [{ required: false, trigger: "blur" }],
-      },
-      userList: [],
-      departList: [],
-      checkedUser: [],
-      checkedList: [],
-      openUser: false,
-      departTypeList: [],
-      selectOrg: {
-        orgsid: [],
-      },
-      mylabel: "",
-      defaultProps: {
-        children: "children",
-        label: "departName",
-      },
-    };
-  },
-  created() {
-    const that = this;
-    // 鑾峰彇閮ㄩ棬鏍戝舰缁撴瀯鍥�
-    this.getDepartTree();
-    // 鑾峰彇鐢ㄦ埛鍒楄〃
-    this.getUserList();
-    // 鑾峰彇閮ㄩ棬绫诲瀷鍒楄〃
-    this.getDepartTypeList();
-  },
-  methods: {
-    handleUser() {
-      this.$refs.user.validate((valid) => {
-        if (valid) {
-          const { depart, checkedList, selectOrg } = this;
-          const arr = [];
-          checkedList.forEach((item) => {
-            arr.push({ leader: item.leader, userId: item.id });
-          });
-          this.$axios({
-            method: "post",
-            url: "/sccg/depart/create",
-            data: {
-              departName: depart.departName,
-              parentId: selectOrg.orgsid[0],
-              departType: depart.departType,
-              departDes: depart.departDes,
-              departManagerList: arr,
-            },
-          }).then((res) => {
-            if (res.code === 200) {
-              this.$message({
-                message: res.message,
-                type: "success",
-              });
-              this.refresh();
-            } else if (res.code === 2001) {
-              this.$message({
-                message: res.message,
-                type: "error",
-              });
-              this.refresh();
-            }
-          });
-        } else {
-          return false;
-        }
-      });
-    },
-    // 鑾峰彇閮ㄩ棬鏍戝舰缁撴瀯鍥�
-    getDepartTree() {
-      this.$axios({
-        method: "get",
-        url: "sccg/depart/tree",
-      }).then((res) => {
-        // console.log(res);
-        // res.data.unshift({ id: 0, departName: "椤剁骇鑿滃崟" });
-        this.departList = res.data;
-      });
-    },
-    // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�
-    getUserList() {
-      // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜)
-      this.$axios.get(`/sccg/depart/query_surplus_user`).then((res) => {
-        if (res.code === 200) {
-          this.userList = res.data;
-        }
-      });
-    },
-    addUser() {
-      this.checkedList = [];
-      this.userList.forEach((item) => {
-        this.checkedUser.forEach((child) => {
-          if (item.id == child) {
-            this.checkedList.push({
-              id: item.id,
-              username: item.username,
-              leader: false,
-            });
-          }
-        });
-      });
-      this.checkedList[0].leader = true;
-      this.openUser = false;
-    },
-    handleClose() {
-      this.$emit("changMyDialog", { flag: false });
-    },
-    // 鑾峰彇閮ㄩ棬绫诲瀷
-    async getDepartTypeList() {
-      this.departTypeList = await getTypeList(1, "08");
-    },
-    handleCheck(data, checked) {
-      this.depart.parentId = data.departName;
-      // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮�
-      const indexs = this.selectOrg.orgsid.indexOf(data.id);
-      // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆�
-      if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) {
-        this.$message({
-          message: "鍙兘閫夋嫨涓�涓儴闂紒",
-          type: "warning",
-          showClose: true,
-        });
-        // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕�
-        this.$refs.tree.setChecked(data, false);
-      } else if (this.selectOrg.orgsid.length === 0 && checked) {
-        // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨
-        // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push
-        this.selectOrg.orgsid = [];
-        this.selectOrg.orgsid.push(data.id);
-      } else if (
-        indexs >= 0 &&
-        this.selectOrg.orgsid.length === 1 &&
-        !checked
-      ) {
-        // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣�
-        this.selectOrg.orgsid = [];
-        this.depart.parentId = "";
-      }
-    },
-    // 璁剧疆棰嗗
-    setLeader(idx) {
-      this.checkedList.forEach((item, index) => {
-        item.leader = index === idx;
-      });
-    },
-  },
-  props: ["refresh", "changMyDialog"],
-};
-</script>
-<style lang="scss" scoped>
-.createUser {
-  border-radius: 1px;
-  background-color: #09152f;
-
-  main {
-    text-align: left;
-    padding: 0 55px;
-    background-color: #09152f;
-    padding-bottom: 50px;
-
-    .mainContent {
-      display: flex;
-      justify-content: center;
-      padding-top: 50px;
-
-      &::v-deep .el-form-item__label {
-        color: #4b9bb7;
-      }
-
-      &::v-deep .el-input__inner {
-        background-color: #09152f;
-        border: 1px solid #17324c;
-      }
-
-      &::v-deep .el-textarea__inner {
-        background-color: #09152f;
-        border: 1px solid #17324c;
-      }
-
-      .addPerson {
-        display: flex;
-        list-style: none;
-        padding: 0;
-        flex-wrap: wrap;
-        max-width: 280px;
-        li {
-          color: #fff;
-          text-align: center;
-          font-size: 30px;
-          margin-left: 10px;
-        }
-      }
-      .li-icon {
-        background-color: #cccccc;
-        width: 36px;
-        height: 36px;
-        border-radius: 50%;
-        margin: 0 auto;
-      }
-      .li-btn {
-        background-color: #cccccc;
-        width: 36px;
-        height: 36px;
-        border-radius: 50%;
-      }
-      .el-form-item__content {
-        width: 400px;
-
-        .el-select {
-          width: 100%;
-        }
-      }
-
-      .optionHandleSp {
-        display: flex;
-
-        .areaNumber,
-        .moreNumber {
-          flex: 1;
-        }
-
-        .telNumber {
-          flex: 2;
-        }
-      }
-    }
-
-    .add {
-      position: relative;
-
-      .card {
-        position: absolute;
-        z-index: 2000;
-        right: 0;
-
-        .box-card {
-          min-height: 240px;
-          max-height: 260px;
-          overflow: hidden;
-          background-color: #09152f;
-          position: relative;
-          max-width: 220px;
-
-          .scrollWrap {
-            overflow: scroll;
-            height: 180px;
-            position: relative;
-            color: #4b9bb7;
-
-            .el-checkbox-group {
-              display: flex;
-              flex-direction: column;
-
-              .el-checkbox {
-                line-height: 20px;
-              }
-            }
-          }
-
-          .myclear {
-            width: 100%;
-            line-height: 20px;
-            color: #4b9bb7;
-            display: flex;
-            justify-content: space-between;
-          }
-
-          .hidebar {
-            position: absolute;
-            top: 77px;
-            right: 20px;
-            width: 20px;
-            height: 180px;
-            background-color: #09152f;
-          }
-
-          .item {
-            line-height: 40px;
-          }
-        }
-      }
-    }
-  }
-
-  .li-item {
-    display: flex;
-    flex-direction: column;
-  }
-
-  .leader {
-    color: red;
-  }
-  .el-input {
-    width: 280px !important;
-  }
-  footer {
-    border-top: 1px solid #fff;
-    height: 80px;
-    display: flex;
-    align-items: center;
-    justify-content: flex-end;
-    padding-right: 20px;
-  }
-}
-</style>
\ No newline at end of file
diff --git a/src/views/operate/video/detailInterface/index.vue b/src/views/operate/video/detailInterface/index.vue
deleted file mode 100644
index 3f49033..0000000
--- a/src/views/operate/video/detailInterface/index.vue
+++ /dev/null
@@ -1,314 +0,0 @@
-<template>
-  <div class="updateUser">
-    <main>
-      <div class="mainContent">
-        <el-form ref="user" style="width: 100%;">
-          <el-form-item prop="code" label="鎵�灞炰簨浠剁紪鍙�">
-            <el-input v-model="imagedata.code"></el-input>
-          </el-form-item>
-          <el-form-item prop="code" label="澶х被鍚嶇О">
-            <el-input v-model="imagedata.questionType"></el-input>
-          </el-form-item>
-          <el-form-item prop="code" label="灏忕被鍚嶇О">
-            <el-input v-model="imagedata.bigType"></el-input>
-          </el-form-item>
-          <el-form-item prop="code" label="瑙嗛Id">
-            <el-input v-model="imagedata.videoId"></el-input>
-          </el-form-item>
-          <el-form-item prop="code" label="涓婁紶鏃堕棿">
-            <el-input v-model="imagedata.uploadTime"></el-input>
-          </el-form-item>
-          <el-form-item prop="code" label="瑙嗛锛�">
-            <video id="my-video" class="video-js" controls preload="auto" width="210px" height="150px"
-              :poster="imagedata.imageUrl" data-setup="{}">
-              <source :src="imagedata.videoUrl" type="video/mp4" />
-            </video>
-          </el-form-item>
-
-          <!-- <el-form-item v-if="updateFlag"> -->
-          <!-- </el-form-item> -->
-        </el-form>
-      </div>
-    </main>
-  </div>
-</template>
-<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script>
-<script>
-import { getTypeList } from "@/utils/helper";
-export default {
-  data() {
-
-    return {
-
-      imagedata: {
-        code: "SJ202211010001",
-        questionType: "杩濊",
-        bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
-        smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰",
-        videoId: "1",
-        uploadTime: "2022-10-31 20:20:01",
-        imageUrl:"https://img0.baidu.com/it/u=1063261925,3306857657&fm=253&fmt=auto&app=138&f=JPEG?w=669&h=500",
-          videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-      },
-    }
-  },
-  created() {
-    // const that = this;
-    // this.user = JSON.parse(JSON.stringify(that.userInfo));
-    // console.log(this.user);
-    // this.user.parentId = this.user.parentId === 0 ? '鏆傛棤涓婄骇閮ㄩ棬' : this.user.parentId;
-    // this.checkedList = this.user.userInfoDTOS;
-    // this.checkedList.forEach((e) => {
-    //   this.checkedUser.push(e.userId);
-    // });
-    // console.log(this.checkedUser)
-    // this.$axios({
-    //   method: "get",
-    //   url: "sccg/depart/tree",
-    // }).then((res) => {
-    //   that.departList = res.data;
-    // });
-    // this.getUserList(this.user.id);
-    // // 鑾峰彇閮ㄩ棬绫诲瀷
-    // this.getDepartType();
-  },
-  methods: {
-    //   handleUser() {
-    //     this.$refs["user"].validate((valid) => {
-    //       if (valid) {
-    //         const { user, checkedList } = this;
-    //         const arr = [];
-    //         checkedList.forEach((item) => {
-    //           arr.push({ leader: item.leader, userId: item.id ? item.id : item.userId });
-    //         });
-    //         if (arr.length === 0) {
-    //           this.$message({
-    //             type: 'warning',
-    //             message: '璇烽�夋嫨閮ㄩ棬浜哄憳',
-    //           })
-    //         } else {
-    //           this.$axios
-    //             .post("sccg/depart/update", {
-    //               id: user.id,
-    //               departName: user.departName,
-    //               parentId: user.parentId === '鏆傛棤涓婄骇閮ㄩ棬' ? 0 : user.parentId,
-    //               departDes: user.departDes,
-    //               departManagerList: arr,
-    //             })
-    //             .then((res) => {
-    //               this.$message({
-    //                 message: res.message,
-    //                 type: res.code === 200 ? "success" : "warning",
-    //               });
-    //               this.$emit("changeDialog", { flag: false });
-    //               this.getDepartList();
-    //             });
-    //         }
-    //       } else {
-    //         return false;
-    //       }
-    //     });
-    //   },
-    //   // 鑾峰彇閮ㄩ棬绫诲瀷
-    //   async getDepartType() {
-    //     this.typeList = await getTypeList(1, "08");
-    //   },
-
-    //   // 璁剧疆棰嗗
-    //   setLeader(idx) {
-    //     if (this.updateFlag) {
-    //       this.checkedList.forEach((item, index) => {
-    //         item.leader = index === idx;
-    //       });
-    //     }
-    //   },
-
-    //   // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�
-    //   getUserList(id) {
-    //     // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜)
-    //     this.$axios.get(`/sccg/depart/query_surplus_exist_user?id=`+id).then((res) => {
-    //       if (res.code === 200) {
-    //         this.userList = res.data;
-    //       }
-    //     });
-    //   },
-    //   addUser() {
-    //     this.checkedList = [];
-    //     this.userList.forEach((item) => {
-    //       this.checkedUser.forEach((child) => {
-    //         if (item.id == child) {
-    //           this.checkedList.push({
-    //             id: item.id,
-    //             username: item.username,
-    //             leader: false,
-    //           });
-    //         }
-    //       });
-    //     });
-    //     this.checkedList[0].leader = true;
-    //     console.log(this.checkedList);
-    //     this.openUser = false;
-    //   },
-    // },
-    // props: ["userInfo", "updateFlag", "getDepartList", "changeDialog"],
-  },
-  props:['updateFlag']
-};
-</script>
-<style lang="scss" scoped>
-.updateUser {
-  border-radius: 1px;
-  background-color: #09152f;
-
-  main {
-    // border: 1px solid #fff;
-    text-align: left;
-    padding: 0 55px;
-    background-color: #09152f;
-    padding-bottom: 50px;
-
-    // .mainTitle {
-    //     color: #4b9bb7;
-    //     font-weight: 600;
-    //     line-height: 100px;
-    //     font-size: 14px;
-    // }
-
-    .mainContent {
-      display: flex;
-      justify-content: center;
-      padding-top: 50px;
-
-      .el-form-item__content {
-        width: 400px;
-
-        .el-select {
-          width: 100%;
-        }
-      }
-
-      .optionHandleSp {
-        display: flex;
-
-        .areaNumber,
-        .moreNumber {
-          flex: 1;
-        }
-
-        .telNumber {
-          flex: 2;
-        }
-      }
-
-      .optionBtn {
-        display: flex;
-        margin-top: 20px;
-        justify-content: center;
-
-        .btn {
-          padding: 12px 50px;
-        }
-      }
-    }
-  }
-}
-
-.updateUser::v-deep .el-form-item__label {
-  color: #4b9bb7;
-}
-
-.updateUser::v-deep .el-input__inner {
-  background-color: #09152f;
-  border: 1px solid #17324c;
-}
-
-.addPerson {
-  display: flex;
-  list-style: none;
-  padding: 0;
-  flex-wrap: wrap;
-  max-width: 280px;
-
-  li {
-    color: #fff;
-    text-align: center;
-    font-size: 30px;
-    margin-left: 10px;
-  }
-}
-
-.li-icon {
-  background-color: #cccccc;
-  width: 36px;
-  height: 36px;
-  border-radius: 50%;
-  margin: 0 auto;
-}
-
-.li-btn {
-  background-color: #cccccc;
-  width: 36px;
-  height: 36px;
-  border-radius: 50%;
-}
-
-.card {
-  position: absolute;
-  z-index: 2000;
-  right: 0;
-
-  .box-card {
-    min-height: 240px;
-    max-height: 260px;
-    overflow: hidden;
-    background-color: #09152f;
-    position: relative;
-    max-width: 220px;
-
-    .scrollWrap {
-      overflow: scroll;
-      height: 180px;
-      position: relative;
-      color: #4b9bb7;
-
-      .el-checkbox-group {
-        display: flex;
-        flex-direction: column;
-
-        .el-checkbox {
-          line-height: 20px;
-        }
-      }
-    }
-
-    .myclear {
-      width: 100%;
-      line-height: 20px;
-      color: #4b9bb7;
-      display: flex;
-      justify-content: space-between;
-    }
-
-    .hidebar {
-      position: absolute;
-      top: 77px;
-      right: 20px;
-      width: 20px;
-      height: 180px;
-      background-color: #09152f;
-    }
-
-    .item {
-      line-height: 40px;
-    }
-  }
-}
-
-.leader {
-  color: red;
-}
-
-.el-input {
-  width: 280px !important;
-}
-</style>
\ No newline at end of file
diff --git a/src/views/operate/video/index.vue b/src/views/operate/video/index.vue
index c0a78db..b458c79 100644
--- a/src/views/operate/video/index.vue
+++ b/src/views/operate/video/index.vue
@@ -6,22 +6,26 @@
           <span>绛涢�夋潯浠�:</span>
           <div class="option">
             <el-input
-              v-model="info.type"
+              v-model="searchContent"
               placeholder="璇疯緭鍏ュ唴瀹�"
             ></el-input>
           </div>
           <span>涓婁紶鏃堕棿:</span>
           <div class="option">
-            <el-input
-              v-model="info.startTime"
-              placeholder="閫夋嫨涓婁紶鏃堕棿"
-            ></el-input>
+            <el-date-picker
+                v-model="datePicked"
+                type="datetimerange"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                range-separator="鑷�"
+                start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡">
+            </el-date-picker>
           </div>
           <div class="findBtn">
-            <el-button type="primary" @click="handleView(scope.row)">鏌ヨ</el-button>
+            <el-button type="primary" @click="searchVideoList">鏌ヨ</el-button>
           </div>
           <div class="findBtn">
-            <el-button type="primary" @click="addVideo">娣诲姞瑙嗛</el-button>
+            <el-button type="primary" @click="handleOpera(null, 'create')">娣诲姞瑙嗛</el-button>
           </div>
         </div>
       </div>
@@ -54,18 +58,24 @@
           @selection-change="tableChange"
         >
           <el-table-column type="selection" min-width="5"> </el-table-column>
-          <el-table-column prop="code" label="鎵�灞炰簨浠剁紪鍙�" min-width="18">
+          <el-table-column prop="baseId" label="鎵�灞炰簨浠剁紪鍙�" min-width="18">
           </el-table-column>
-          <el-table-column prop="questionType" label="闂绫诲瀷" min-width="8">
+          <el-table-column prop="category" label="闂绫诲埆" min-width="8">
+            <template slot-scope="scope">
+              <span>{{ getCategory(scope.row.category)?.label }}</span>
+            </template>
           </el-table-column>
-          <el-table-column prop="bigType" label="澶х被鍚嶇О" min-width="8">
+          <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="8">
+            <template slot-scope="scope">
+              <span>{{ getEventSource(scope.row.eventSource)?.label }}</span>
+            </template>
           </el-table-column>
-          <el-table-column prop="smallType" label="灏忕被鍚嶇О" min-width="8">
+          <el-table-column prop="regionName" label="绀惧尯鍚嶇О" min-width="8">
           </el-table-column>
-          <el-table-column prop="videoId" label="瑙嗛Id" min-width="8">
+          <el-table-column prop="id" label="瑙嗛Id" min-width="8">
           </el-table-column>
           <el-table-column
-            prop="uploadTime"
+            prop="createTime"
             label="涓婁紶鏃堕棿"
             min-width="15"
             v-if="mystatus === 1"
@@ -74,73 +84,21 @@
           <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
             <template slot-scope="scope">
               <div class="operation">
-                <span @click="handleFind(scope.row)">鏌ョ湅</span>
+                <span @click="handleOpera(scope.row, 'view')">鏌ョ湅</span>
                 <span class="line">|</span>
-                <span @click="handleUpdate(scope.row)">淇敼</span>
+                <span @click="handleOpera(scope.row, 'update')">淇敼</span>
                 <span class="line">|</span>
                 <span @click="handleDelete(scope.row)">鍒犻櫎</span>
               </div>
             </template>
           </el-table-column>
         </el-table>
-        <!-- 璇︽儏椤靛睍绀� -->
-        <el-dialog
-          :visible.sync="dialogView"
-          width="80%"
-          title="鍩虹淇℃伅(浜哄伐)"
-          v-if="dialogView"
-          :before-close="handleClose"
-        >
-          <MyDetail :info="info" v-if="mystatus == 1 ? true : false"></MyDetail>
-          <MyIllDetail :info="info" v-else></MyIllDetail>
-        </el-dialog>
-        <!-- 涓婁紶椤甸潰 -->
-        <!-- <el-dialog :visible.sync="dialogUpload" width="80%" title="涓婁紶澶勭疆缁撴灉" v-if="dialogUpload"
-                    :before-close="handleClose"> -->
-        <!-- <uploadVio v-if="mystatus === 1" :caseId="caseId" :mycode="caseCode"  @closeDialog="closeDialog"></uploadVio>
-                    <uploadIll v-else :caseId="caseId" :mycode="caseCode" @closeDialog="closeDialog"></uploadIll> -->
-        <!-- </el-dialog> -->
-        <!-- tools -->
         <!-- 鏌ョ湅淇敼椤甸潰 -->
         <el-dialog
-          :visible.sync="dialogUpdate"
+          :visible.sync="isShowDialog"
           width="40%"
-          title="淇敼"
-          v-if="dialogUpdate"
-          :before-close="handleClose"
-        >
-          <updateInterface />
-          <!-- :updateFlag="updateFlag"
-            :userInfo="userInfo"
-            :getDepartList="context === '' ? getUserList : search"
-            @changeDialog="changMyDialog" -->
-        </el-dialog>
-        <el-dialog
-          :visible.sync="dialogcheck"
-          width="40%"
-          title="鏌ョ湅"
-          v-if="dialogcheck"
-          :before-close="handleClose"
-        >
-          <detailInterface />
-          <!-- :updateFlag="updateFlag"
-            :userInfo="userInfo"
-            :getDepartList="context === '' ? getUserList : search"
-            @changeDialog="changMyDialog" -->
-        </el-dialog>
-
-        <el-dialog
-          :visible.sync="dialogAdd"
-          width="40%"
-          title="娣诲姞"
-          v-if="dialogAdd"
-          :before-close="handleClose"
-        >
-          <createInterface />
-          <!-- :updateFlag="updateFlag"
-            :userInfo="userInfo"
-            :getDepartList="context === '' ? getUserList : search"
-            @changeDialog="changMyDialog" -->
+          :title="dialogTitle">
+          <updateInterface :isUpdate="isUpdate" :dialogData="dialogData" @closeDialog="closeDialog" />
         </el-dialog>
 
         <div class="tools">
@@ -181,8 +139,6 @@
               :total="totalNum"
               :page-size="pageSize"
               @current-change="changeCurrentPage"
-              @prev-click="handlePrev"
-              @next-click="handleNext"
             >
             </el-pagination>
           </div>
@@ -191,87 +147,21 @@
     </main>
   </div>
 </template>
-<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script>
 <script>
-import createInterface from "./createInterface";
 import updateInterface from "./updateInterface";
-import detailInterface from "./detailInterface";
+import videoManagement from "@/api/operate/videoManagement";
+import { CATEGOTY, EVENT_SOURCE } from "@/utils/helper";
+
 export default {
-  components: {
-    createInterface,
-    updateInterface,
-    detailInterface
-  },
+  components: { updateInterface },
   data() {
     return {
-      dialogUpdate: false,
-      dialogcheck: false,
-      tableData: [
-        {
-          code: "VID202210010001",
-          questionType: "杩濊",
-          bigType: "鍩庡競缁垮寲",
-          smallType:
-            "鎺掓斁娌圭儫鐨勯楗湇鍔′笟缁忚惀鑰呮湭瀹夎娌圭儫鍑�鍖栬鏂姐�佷笉姝e父浣跨敤娌圭儫鍑�鍖栬鏂�",
-          videoId: "12010",
-          uploadTime: "2022-10-31 20:20:01",
-          imageUrl:"https://img0.baidu.com/it/u=1063261925,3306857657&fm=253&fmt=auto&app=138&f=JPEG?w=669&h=500",
-          videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-        },
-        {
-          code: "VID202210010002",
-          questionType: "杩濊",
-          bigType: "鍩庡競缁垮寲",
-          smallType:
-            "鎺掓斁娌圭儫鐨勯楗湇鍔′笟缁忚惀鑰呮湭瀹夎娌圭儫鍑�鍖栬鏂姐�佷笉姝e父浣跨敤娌圭儫鍑�鍖栬鏂�",
-          videoId: "12010",
-          uploadTime: "2022-10-31 20:20:01",
-          imageUrl:"https://img0.baidu.com/it/u=1063261925,3306857657&fm=253&fmt=auto&app=138&f=JPEG?w=669&h=500",
-          videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-        }
-        ,
-        {
-          code: "VID202210010003",
-          questionType: "杩濊",
-          bigType: "鍩庡競缁垮寲",
-          smallType:
-            "鎺掓斁娌圭儫鐨勯楗湇鍔′笟缁忚惀鑰呮湭瀹夎娌圭儫鍑�鍖栬鏂姐�佷笉姝e父浣跨敤娌圭儫鍑�鍖栬鏂�",
-          videoId: "12010",
-          uploadTime: "2022-10-31 20:20:01",
-          imageUrl:"https://img0.baidu.com/it/u=1063261925,3306857657&fm=253&fmt=auto&app=138&f=JPEG?w=669&h=500",
-          videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-        }
-        ,
-        {
-          code: "VID202210010004",
-          questionType: "杩濊",
-          bigType: "鍩庡競缁垮寲",
-          smallType:
-            "鎺掓斁娌圭儫鐨勯楗湇鍔′笟缁忚惀鑰呮湭瀹夎娌圭儫鍑�鍖栬鏂姐�佷笉姝e父浣跨敤娌圭儫鍑�鍖栬鏂�",
-          videoId: "12010",
-          uploadTime: "2022-10-31 20:20:01",
-          imageUrl:"https://img0.baidu.com/it/u=1063261925,3306857657&fm=253&fmt=auto&app=138&f=JPEG?w=669&h=500",
-          videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-        }
-        ,
-        {
-          code: "VID202210010005",
-          questionType: "杩濊",
-          bigType: "鍩庡競缁垮寲",
-          smallType:
-            "鎺掓斁娌圭儫鐨勯楗湇鍔′笟缁忚惀鑰呮湭瀹夎娌圭儫鍑�鍖栬鏂姐�佷笉姝e父浣跨敤娌圭儫鍑�鍖栬鏂�",
-          videoId: "12010",
-          uploadTime: "2022-10-31 20:20:01",
-          imageUrl:"https://img0.baidu.com/it/u=1063261925,3306857657&fm=253&fmt=auto&app=138&f=JPEG?w=669&h=500",
-          videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
-        }
-      ],
-      context: "",
-      dialogUpload: false,
-      // dialogUpdate: false,
-      dialogView: false,
-      updateFlag: false,
-      userInfo: {},
+      isShowDialog: false,
+      searchContent: '',
+      datePicked: null,
+      tableData: [],
+      isUpdate: false,
+      dialogData: null,
       info: {},
       totalNum: 5,
       pageSize: 10,
@@ -314,55 +204,49 @@
       ],
       statusArr: [],
       mystatus: 1,
-      caseId: "",
-      caseCode: null,
-      dialogAdd: false,
     };
+  },
+  computed: {
+    dialogTitle() {
+      if (this.isUpdate && this.dialogData) {
+        return '鏇存柊';
+      }
+      if (this.isUpdate && !this.dialogData) {
+        return '鍒涘缓';
+      }
+      if (!this.isUpdate) {
+        return '鏌ョ湅';
+      }
+    }
   },
   created() {
     this.statusArr[0] = 6;
+    this.searchVideoList();
     this.typeList.forEach((item) => {
       if (item.checked) {
         this.statusArr[1] = item.value;
       }
     });
-    this.getUserList();
   },
   methods: {
-    //淇敼
-    handleUpdate() {
-      this.dialogUpdate = true;
-    },
-    // 鏌ョ湅
-    handleFind(data) {
-      console.log(data);
-      this.userInfo = data;
-      this.dialogcheck = true;
-    },
     // 椤堕儴涓嬫媺妗�
     setMystatus(value) {
-      console.log(value);
       this.statusArr[1] = value;
       this.changeTypeChecked(value - 1);
-      this.getUserList();
     },
     // 鎵归噺鍒犻櫎
     mulDelete(idArr) {
-      console.log(idArr);
-      this.$axios({
-        method: "delete",
-        url: "sccg/violations/batch_delete?ids=" + idArr,
-      }).then((res) => {
-        this.getUserList();
-        this.$message({
-          message: res.message,
-          type: res.code === 200 ? "success" : "warning",
-        });
-      });
+      videoManagement.deleteVideoRescources({ ids: idArr })
+          .then(() => {
+            this.$message.success('鎿嶄綔鎴愬姛');
+            this.searchVideoList();
+          })
+          .catch(err => {
+            this.$message.error(`${err}`);
+          })
     },
     // 鎵ц涓嬫媺妗嗘搷浣�
     selectChange(list) {
-      console.log(this.tempList);
       if (this.tempList.length !== 0) {
         if (list === 3) {
           this.preMyIdx = list;
@@ -382,11 +266,7 @@
       list.forEach((item) => {
         this.tempList.push(item.code);
       });
-      if (list.length === this.tableData.length) {
-        this.all = true;
-      } else {
-        this.all = false;
-      }
+      this.all = list.length === this.tableData.length;
     },
     // 鍏ㄩ��
     selectAll() {
@@ -399,129 +279,81 @@
       });
     },
     // 鍒犻櫎鍗曟潯鏁版嵁
-    handleDelete({ number }) {
-      console.log(number);
+    handleDelete({ id }) {
       this.$confirm("纭鍒犻櫎锛�")
-        .then((_) => {
-          console.log(1);
-          this.$axios({
-            method: "delete",
-            url: `sccg/violations/delete?id=${number}`,
-          }).then((res) => {
-            this.$message({
-              type: res.code === 200 ? "success" : "warning",
-              message: res.message,
-            });
-
-            this.getUserList();
-          });
+        .then(() => {
+          videoManagement.deleteVideoRescource({ id })
+              .then(() => {
+                this.$message.success('鎿嶄綔鎴愬姛');
+                this.searchVideoList();
+              })
+              .catch(err => {
+                this.$message.error(`${err}`);
+              })
         })
-        .catch((_) => {
-          console.log(2);
-        });
     },
-    // 鑾峰彇鐢ㄦ埛鍒楄〃
-    getUserList() {
-      const { currentPage, pageSize, context, statusArr } = this;
-      // this.$axios({
-      //     method: 'get',
-      //     url: `sccg/base_case/query?state=${statusArr[0]}&current=${currentPage}&size=${pageSize}&resource=2&type=${statusArr[1]}`
-      // }).then(res => {
-      //     this.totalNum = res.data.total;
-      //     this.tableData = res.data.records;
-      //     console.log(res);
-      // })
+    searchVideoList() {
+      const startTime = this.datePicked ? this.datePicked[0] : null;
+      const endTime = this.datePicked ? this.datePicked[1] : null;
+      videoManagement.getVideoResources({ current: this.currentPage, size: this.pageSize,
+        type: this.searchContent, startTime, endTime })
+          .then(res => {
+            this.tableData = res.records;
+            this.totalNum = res.total;
+          })
+          .catch(err => this.$message.error(`${err}`))
     },
     // 鏇存敼杩濊/杩濆缓
     changeTypeChecked(idx) {
       this.typeList.forEach((item, index) => {
-        if (index === idx) {
-          item.checked = true;
-        } else {
-          item.checked = false;
-        }
+        item.checked = index === idx;
       });
       this.mystatus = idx + 1;
-      console.log(this.mystatus);
       this.statusArr[1] = this.typeList[idx].value;
-      this.getUserList();
     },
     // 璁剧疆琛ㄦ牸鏂戦┈绾�
     tableRowClassName({ row, rowIndex }) {
-      if ((rowIndex + 1) % 2 == 0) {
+      if ((rowIndex + 1) % 2 === 0) {
         return "warning-row";
       } else {
         return "success-row";
       }
-      return "";
     },
     // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
     changeCurrentPage(page) {
       this.currentPage = page;
-      this.getUserList();
+      this.searchVideoList();
     },
-    // 涓婁竴椤电偣鍑讳簨浠�
-    handlePrev(page) {
-      this.currentPage = page;
-      this.getUserList();
+
+    handleOpera(data, type) {
+      this.isShowDialog = true;
+      this.isUpdate = type !== 'view';
+      this.dialogData = data;
     },
-    // 涓嬩竴椤电偣鍑讳簨浠�
-    handleNext(page) {
-      this.currentPage = page;
-      this.getUserList();
-    },
-    addVideo() {
-      this.dialogAdd = true;
-    },
+
     handleClose(done) {
       this.$confirm("纭鍏抽棴锛�")
-        .then((_) => {
-          this.dialogUpload = false;
-          // this.dialogUpdate = false;
+        .then(() => {
           done();
         })
-        .catch((_) => {});
-    },
-    handleClose(done) {
-      this.$confirm("纭鍏抽棴锛�")
-        .then((_) => {
-          this.dialogUpload = false;
-          // this.dialogUpdate = false;
-          done();
-        })
-        .catch((_) => {});
-    },
-    async JumpView(data) {
-      await this.getEventInfo(data.code);
-    },
-    // 鑾峰彇妗堜欢淇℃伅
-    async getEventInfo(code) {
-      await this.$axios({
-        method: "get",
-        url: `sccg/base_case/baseCaseDetail/${code}`,
-      }).then((res) => {
-        this.info = res.data;
-        this.dialogView = true;
-      });
-    },
-    opernDialog(data) {
-      this.dialogUpload = true;
-      this.caseId = data.id;
-      this.caseCode = data.code;
-      // console.log(data);
     },
     // 鍏抽棴涓婁紶鐣岄潰
-    closeDialog({ flag }) {
-      this.dialogUpload = flag;
-      this.getUserList();
+    closeDialog() {
+      this.isShowDialog = false;
+      this.searchVideoList();
     },
-    // 澶勭悊鏃堕棿
-    filterTime(time) {
-      return helper(time);
+
+    getCategory(value) {
+      return CATEGOTY.find(item => item.value === value);
     },
+
+    getEventSource(value) {
+      return EVENT_SOURCE.find(item => item.value === value);
+    }
   },
 };
 </script>
+
 <style lang="scss" scoped>
 .userList {
   text-align: left;
@@ -530,7 +362,6 @@
 
   header {
     background-color: #09152f;
-    border: 1pox solid #fff;
 
     .headerContent {
       padding: 0 40px;
@@ -589,7 +420,6 @@
     background-color: #09152f;
     margin-top: 20px;
     padding-bottom: 50px;
-    border: 1pox solid #fff;
 
     .btn span:hover {
       cursor: pointer;
@@ -708,5 +538,9 @@
   .line {
     padding: 0 5px;
   }
+
+  :deep(.el-range-input) {
+    background-color: #09152f;
+  }
 }
 </style>
\ No newline at end of file
diff --git a/src/views/operate/video/updateInterface/index.vue b/src/views/operate/video/updateInterface/index.vue
index 63f233f..438d666 100644
--- a/src/views/operate/video/updateInterface/index.vue
+++ b/src/views/operate/video/updateInterface/index.vue
@@ -2,160 +2,143 @@
   <div class="updateUser">
     <main>
       <div class="mainContent">
-        <el-form ref="user" style="width: 100%;">
-          <el-form-item prop="code" label="鎵�灞炰簨浠剁紪鍙�">
-            <el-input v-model="imagedata.code"></el-input>
+        <el-form :model="videoData" :rules="rules" :disabled="isDisabled" ref="user" style="width: 100%;">
+          <el-form-item prop="baseId" label="鎵�灞炰簨浠剁紪鍙�">
+            <el-input v-model="videoData.baseId"></el-input>
           </el-form-item>
-          <el-form-item prop="code" label="澶х被鍚嶇О">
-            <el-input v-model="imagedata.questionType"></el-input>
+          <el-form-item prop="eventSource" label="浜嬩欢鏉ユ簮">
+            <el-input v-model="videoData.eventSource"></el-input>
           </el-form-item>
-          <el-form-item prop="code" label="灏忕被鍚嶇О">
-            <el-input v-model="imagedata.bigType"></el-input>
+          <el-form-item prop="category" label="闂绫诲埆">
+            <el-input v-model="videoData.category"></el-input>
           </el-form-item>
-          <el-form-item prop="code" label="瑙嗛Id">
-            <el-input v-model="imagedata.videoId"></el-input>
+          <el-form-item prop="type" label="绫诲瀷">
+            <el-select v-model="videoData.type">
+              <el-option v-for="item in getResourceType()" :key="item.value" :label="item.label" :value="item.value" />
+            </el-select>
           </el-form-item>
-          <el-form-item prop="code" label="涓婁紶鏃堕棿">
-            <el-input v-model="imagedata.uploadTime"></el-input>
+          <el-form-item prop="regionName" label="绀惧尯鍚嶇О">
+            <el-input v-model="videoData.regionName"></el-input>
           </el-form-item>
-          <el-form-item prop="code" label="瑙嗛锛�">
-            <video id="my-video" class="video-js" controls preload="auto" width="210px" height="150px"
-              :poster="imagedata.imageUrl" data-setup="{}">
-              <source :src="imagedata.videoUrl" type="video/mp4" />
-            </video>
+          <el-form-item prop="id" label="瑙嗛Id">
+            <el-input v-model="videoData.id"></el-input>
           </el-form-item>
-          <!-- <el-form-item v-if="updateFlag"> -->
-          <div class="optionBtn">
-            <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦
-            </el-button>
+          <el-form-item prop="url" label="瑙嗛" min-width="8">
+            <el-upload
+                class="avatar-uploader"
+                action=""
+                ref="image"
+                :show-file-list="false"
+                :auto-upload="true"
+                :http-request="videoUpload">
+              <video controls v-if="videoData.url" :src="videoData.url" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </el-form-item>
+          <div v-if="!isDisabled" class="optionBtn">
+            <el-button type="primary" class="btn submit" @click.native.prevent="onSubmit">鎻愪氦</el-button>
           </div>
-          <!-- </el-form-item> -->
         </el-form>
       </div>
     </main>
   </div>
 </template>
-<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script>
 <script>
-import { getTypeList } from "@/utils/helper";
+import { deepClone, RESOURCE_TYPE } from "@/utils/helper";
+import videoManagement from "@/api/operate/videoManagement";
+import { FILE_ORIGINAL_URL } from "@/utils";
+import imageManagement from "@/api/operate/imageManagement";
+
+
 export default {
   data() {
-
+    const validateVideoUrl = (rule, value, callback) => {
+      if (this.videoData.url) {
+        callback();
+      } else {
+        callback(new Error('璇蜂笂浼犺棰�'));
+      }
+    };
     return {
-
-      imagedata: {
-        code: "SJ202211010001",
-        questionType: "杩濊",
-        bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
-        smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰",
-        videoId: "1",
-        uploadTime: "2022-10-31 20:20:01",
-        imageUrl:"https://img0.baidu.com/it/u=1063261925,3306857657&fm=253&fmt=auto&app=138&f=JPEG?w=669&h=500",
-          videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346"
+      videoData: {
+        baseId: '',
+        eventSource: '',
+        regionName: '',
+        category: '',
+        id: '',
+        url: '',
+        type: ''
       },
+      rules: {
+        baseId: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ユ墍灞炰簨浠剁紪鍙�' }],
+        eventSource: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ヤ簨浠舵潵婧�' }],
+        regionName: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ョぞ鍖哄悕绉�' }],
+        id: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ュ浘鐗嘔d' }],
+        category: [{ required: true, trigger: 'blue', message: '璇疯緭鍏ラ棶棰樼被鍨�' }],
+        url: [{ required: true, validator: validateVideoUrl }],
+        type: [{ required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨绫诲瀷' }]
+      },
+      isDisabled: false
     }
   },
+
   created() {
-    // const that = this;
-    // this.user = JSON.parse(JSON.stringify(that.userInfo));
-    // console.log(this.user);
-    // this.user.parentId = this.user.parentId === 0 ? '鏆傛棤涓婄骇閮ㄩ棬' : this.user.parentId;
-    // this.checkedList = this.user.userInfoDTOS;
-    // this.checkedList.forEach((e) => {
-    //   this.checkedUser.push(e.userId);
-    // });
-    // console.log(this.checkedUser)
-    // this.$axios({
-    //   method: "get",
-    //   url: "sccg/depart/tree",
-    // }).then((res) => {
-    //   that.departList = res.data;
-    // });
-    // this.getUserList(this.user.id);
-    // // 鑾峰彇閮ㄩ棬绫诲瀷
-    // this.getDepartType();
+    this.videoData = deepClone(this.dialogData);
+    this.videoData.url = this.videoData.url ? this.videoData.url.split(',')[0] : '';
+    this.isDisabled = !this.isUpdate;
   },
   methods: {
-    //   handleUser() {
-    //     this.$refs["user"].validate((valid) => {
-    //       if (valid) {
-    //         const { user, checkedList } = this;
-    //         const arr = [];
-    //         checkedList.forEach((item) => {
-    //           arr.push({ leader: item.leader, userId: item.id ? item.id : item.userId });
-    //         });
-    //         if (arr.length === 0) {
-    //           this.$message({
-    //             type: 'warning',
-    //             message: '璇烽�夋嫨閮ㄩ棬浜哄憳',
-    //           })
-    //         } else {
-    //           this.$axios
-    //             .post("sccg/depart/update", {
-    //               id: user.id,
-    //               departName: user.departName,
-    //               parentId: user.parentId === '鏆傛棤涓婄骇閮ㄩ棬' ? 0 : user.parentId,
-    //               departDes: user.departDes,
-    //               departManagerList: arr,
-    //             })
-    //             .then((res) => {
-    //               this.$message({
-    //                 message: res.message,
-    //                 type: res.code === 200 ? "success" : "warning",
-    //               });
-    //               this.$emit("changeDialog", { flag: false });
-    //               this.getDepartList();
-    //             });
-    //         }
-    //       } else {
-    //         return false;
-    //       }
-    //     });
-    //   },
-    //   // 鑾峰彇閮ㄩ棬绫诲瀷
-    //   async getDepartType() {
-    //     this.typeList = await getTypeList(1, "08");
-    //   },
-
-    //   // 璁剧疆棰嗗
-    //   setLeader(idx) {
-    //     if (this.updateFlag) {
-    //       this.checkedList.forEach((item, index) => {
-    //         item.leader = index === idx;
-    //       });
-    //     }
-    //   },
-
-    //   // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�
-    //   getUserList(id) {
-    //     // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜)
-    //     this.$axios.get(`/sccg/depart/query_surplus_exist_user?id=`+id).then((res) => {
-    //       if (res.code === 200) {
-    //         this.userList = res.data;
-    //       }
-    //     });
-    //   },
-    //   addUser() {
-    //     this.checkedList = [];
-    //     this.userList.forEach((item) => {
-    //       this.checkedUser.forEach((child) => {
-    //         if (item.id == child) {
-    //           this.checkedList.push({
-    //             id: item.id,
-    //             username: item.username,
-    //             leader: false,
-    //           });
-    //         }
-    //       });
-    //     });
-    //     this.checkedList[0].leader = true;
-    //     console.log(this.checkedList);
-    //     this.openUser = false;
-    //   },
-    // },
-    // props: ["userInfo", "updateFlag", "getDepartList", "changeDialog"],
+    onSubmit() {
+      this.$refs.user.validate(valid => {
+        if (valid) {
+          if (this.isUpdate && !this.dialogData) {
+            videoManagement.addVideoResource(this.videoData)
+                .then(() => {
+                  this.$message.success('鎿嶄綔鎴愬姛');
+                  this.$emit('closeDialog');
+                })
+                .catch(err => this.$message.error(`${err}`))
+          } else {
+            videoManagement.updateVideoResource(this.videoData)
+                .then(() => {
+                  this.$message.success('鎿嶄綔鎴愬姛');
+                  this.$emit('closeDialog');
+                })
+                .catch(err => this.$message.error(`${err}`))
+          }
+        } else {
+          this.$message.warning('璇锋鏌ュ繀濉」');
+        }
+      })
+    },
+    videoUpload(file) {
+      const formData = new FormData();
+      formData.append('file', file.file);
+      imageManagement.importImage(formData)
+          .then(res => {
+            this.$refs.image.clearFiles();
+            this.$set(this.videoData, 'url', FILE_ORIGINAL_URL + res.url1);
+            this.$message.success('涓婁紶鎴愬姛');
+          })
+          .catch(err => {
+            this.$message.error(`${err}`);
+            this.$refs.image.clearFiles();
+          })
+    },
+    getResourceType(value) {
+      return value ? RESOURCE_TYPE.find(item => item.value === value) : RESOURCE_TYPE;
+    }
   },
-  props: ['updateFlag']
+  props: {
+    dialogData: {
+      type: Object,
+      default: () => null
+    },
+    isUpdate: {
+      type: Boolean,
+      default: () => false
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>
@@ -169,13 +152,6 @@
     padding: 0 55px;
     background-color: #09152f;
     padding-bottom: 50px;
-
-    // .mainTitle {
-    //     color: #4b9bb7;
-    //     font-weight: 600;
-    //     line-height: 100px;
-    //     font-size: 14px;
-    // }
 
     .mainContent {
       display: flex;
@@ -311,7 +287,7 @@
   color: red;
 }
 
-.el-input {
+.el-input, .el-select {
   width: 280px !important;
 }
 </style>
\ No newline at end of file
diff --git a/src/views/systemSetting/platform/cockpitManage/index.vue b/src/views/systemSetting/platform/cockpitManage/index.vue
index 0a1d317..331f1ca 100644
--- a/src/views/systemSetting/platform/cockpitManage/index.vue
+++ b/src/views/systemSetting/platform/cockpitManage/index.vue
@@ -30,7 +30,6 @@
                         :http-request="importTable"
                         :show-file-list="false"
                         :auto-upload="true"
-                        multiple
                         :limit="1">
                       <el-button type="primary">瀵煎叆</el-button>
                     </el-upload>
@@ -162,6 +161,7 @@
             unsame: false,
             myIdx: 0,
             preMyIdx: 0,
+            file: null,
             options: [
                 {
                     value: 0,
@@ -246,7 +246,9 @@
 
         // 瀵煎叆
         importTable(file) {
-          importTeamInfo(file.file)
+          const formData = new FormData();
+          formData.append('file', file.file);
+          importTeamInfo(formData)
               .then(() => {
                   this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
                   this.getDepartmentList();
@@ -254,6 +256,7 @@
               })
               .catch(err => {
                 this.$message({ type: 'error', message: err });
+                this.$refs.uploadFile.clearFiles();
               });
         },
 
diff --git a/src/views/systemSetting/platform/portalSetting/index.vue b/src/views/systemSetting/platform/portalSetting/index.vue
index 5d2da31..4157562 100644
--- a/src/views/systemSetting/platform/portalSetting/index.vue
+++ b/src/views/systemSetting/platform/portalSetting/index.vue
@@ -134,7 +134,6 @@
                     })
                 }
             } else {
-                console.log(obj);
                 // 鍙戦�佽姹�
                 this.$axios({
                     method: 'put',
@@ -147,7 +146,6 @@
                     })
                 })
             }
-            localStorage.removeItem('pic');
             window.location.href = '';
 
         }

--
Gitblit v1.8.0