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

---
 src/views/operate/viewEvent/index.vue                                               |  630 ++++
 src/views/systemSetting/device/grid/components/header/index.vue                     |  110 
 src/views/systemSetting/device/grid/components/createUser/index.vue                 |  555 +++
 src/views/operate/management/message/index.vue                                      |   12 
 src/store/system/handheldTerminal/index.js                                          |   12 
 src/views/systemSetting/device/grid/components/updateUser/index.vue                 |  291 +
 src/views/operate/images/index.vue                                                  |  640 ++++
 src/views/operate/viewEvent/components/illExamine/index.vue                         |  284 +
 src/views/operate/sms/smsTemplate/index.vue                                         |  640 ++++
 src/views/operate/viewEvent/components/examine/index.vue                            |  283 +
 src/views/operate/rectification/renovationList/index.vue                            |  139 
 src/views/operate/viewEvent/components/closure/index.vue                            |  336 ++
 src/views/systemSetting/device/grid/components/password/index.vue                   |  145 
 src/views/operate/video/index.vue                                                   |  296 +
 src/views/operate/rectification/surveyList/components/createInterface/index.vue     |  550 ++-
 src/views/operate/images/createUser/index.vue                                       |  459 +++
 src/views/operate/rectification/surveyList/components/viewInterface/index.vue       |  488 +-
 src/views/systemSetting/device/grid/index.vue                                       |   50 
 src/views/operate/rectification/surveyList/index.vue                                |  608 ++-
 src/views/operate/rectification/taskList/index.vue                                  |   44 
 src/views/systemSetting/device/grid/components/myView/index.vue                     |  202 +
 src/views/operate/viewEvent/components/illclosure/index.vue                         |  334 ++
 src/router/index.js                                                                 |   17 
 src/views/operate/rectification/renovationList/components/createInterface/index.vue |   77 
 src/views/operate/images/updateUser/index.vue                                       |  317 ++
 src/views/operate/sms/smsIndex/index.vue                                            |  632 ++++
 src/views/operate/sms/index.vue                                                     |    3 
 src/views/operate/rectification/renovationList/components/viewInterface/index.vue   |   80 
 src/views/video/index.vue                                                           |    2 
 src/views/systemSetting/device/grid/components/main/index.vue                       |  508 +++
 src/views/operate/sms/smsTemplate/createTemplate/index.vue                          |  432 ++
 31 files changed, 8,320 insertions(+), 856 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index a36d7c7..e058d65 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -249,6 +249,23 @@
             path: 'log',
             name: 'log',
             component: () => import('@/views/operate/log'),
+          },
+          {
+            path:'sms',
+            name:'sms',
+            component:()  => import('@/views/operate/sms'),
+            children: [
+              {
+                path: 'smsIndex',
+                name: 'smsIndex',
+                component: () => import('@/views/operate/sms/smsIndex'),
+              },
+              {
+                path: 'smsTemplate',
+                name: 'smsTemplate',
+                component: () => import('@/views/operate/sms/smsTemplate'),
+              },
+            ]
           }
         ]
       },
diff --git a/src/store/system/handheldTerminal/index.js b/src/store/system/handheldTerminal/index.js
index 2f447bb..09286ec 100644
--- a/src/store/system/handheldTerminal/index.js
+++ b/src/store/system/handheldTerminal/index.js
@@ -5,14 +5,14 @@
         userInfo: {},
     },
     actions: {
-        getHandheldTerminalList(context, params) {
-            return handheldTerminalApi.getHandheldTerminalList(params);
+        getLoudspeakerList(context, params) {
+            return loudspeakerApi.getLoudspeakerList(params);
         },
-        saveHandheldTerminal(context, params) {
-            return handheldTerminalApi.saveHandheldTerminal(params);
+        saveLoudspeaker(context, params) {
+            return loudspeakerApi.saveLoudspeaker(params);
         },
-        updateHandheldTerminal(context, params) {
-            return handheldTerminalApi.updateHandheldTerminal(params);
+        updateLoudspeaker(context, params) {
+            return loudspeakerApi.updateLoudspeaker(params);
         },
     },
 };
\ No newline at end of file
diff --git a/src/views/operate/images/createUser/index.vue b/src/views/operate/images/createUser/index.vue
new file mode 100644
index 0000000..4b72bdc
--- /dev/null
+++ b/src/views/operate/images/createUser/index.vue
@@ -0,0 +1,459 @@
+<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 });
+          });
+          console.log(arr);
+          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() {
+      console.log(this.checkedUser);
+      console.log(this.userList);
+      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/images/index.vue b/src/views/operate/images/index.vue
new file mode 100644
index 0000000..c0d8ecd
--- /dev/null
+++ b/src/views/operate/images/index.vue
@@ -0,0 +1,640 @@
+<template>
+    <div class="userList">
+        <header>
+            <div class="headerContent">
+                <div class="search">
+                    <span>绫诲瀷鏌ヨ:</span>
+                    <div class="option">
+                        <el-input v-model="info.type" placeholder="璇疯緭鍏ラ棶棰樻煡璇�"></el-input>
+                    </div>
+                    <span>涓婁紶鏃堕棿:</span>
+                    <div class="option">
+                        <el-input v-model="info.startTime" placeholder="閫夋嫨涓婁紶鏃堕棿"></el-input>
+                    </div>
+                    <div class="findBtn">
+                        <el-button type="primary" @click="getUserList">鏌ヨ</el-button>
+                    </div>
+                    <div class="findBtn">
+                        <el-button type="primary" @click="addImages">娣诲姞鍥剧墖</el-button>
+                    </div>
+                </div>
+            </div>
+        </header>
+        <main>
+            <div class="mainContent">
+                <div class="type-nav">
+                    <div @click="changeTypeChecked(index)" v-for="(item, index) in typeList" :key="item.name"
+                        :class="[item.checked ? 'is-active' : '', 'type-item']">{{ item.name }}</div>
+                </div>
+                <!-- 鏁版嵁灞曠ず -->
+                <el-table ref="multipleTable"
+                    :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }"
+                    :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
+                    @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>
+                    <el-table-column prop="questionType" label="闂绫诲瀷" min-width="8">
+                    </el-table-column>
+                    <el-table-column prop="bigType" label="澶х被鍚嶇О" min-width="8">
+                    </el-table-column>
+                    <el-table-column prop="smallType" label="灏忕被鍚嶇О" min-width="8">
+                    </el-table-column>
+                    <el-table-column prop="imagesId" label="鍥剧墖Id" min-width="8">
+                    </el-table-column>
+                    <el-table-column prop="uploadTime" label="涓婁紶鏃堕棿" min-width="15" v-if="mystatus === 1">
+                    </el-table-column>
+                    <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
+                        <template slot-scope="scope">
+                            <div class="operation">
+                                <span @click="handleFind(scope.row)">鏌ョ湅</span>
+                                <span class="line">|</span>
+                                <span @click="handleUpdate(scope.row)">淇敼</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"
+          width="40%"
+          title="淇敼"
+          v-if="dialogUpdate"
+          :before-close="handleClose"
+        >
+          <updateUser
+          />
+          <!-- :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"
+        >
+          <updateUser
+          />
+          <!-- :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"
+        >
+          <createUser
+          />
+          <!-- :updateFlag="updateFlag"
+            :userInfo="userInfo"
+            :getDepartList="context === '' ? getUserList : search"
+            @changeDialog="changMyDialog" -->
+        </el-dialog>
+
+                <div class="tools">
+                    <div class="funs">
+                        <div class="funsItem funs-sp">
+                            <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
+                        </div>
+                        <div class="funsItem funs-sp">
+                            <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
+                        </div>
+                        <div class="funsItem">
+                            <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled>
+                                <el-option v-for="item in options" :key="item.value" :label="item.label"
+                                    :value="item.value" :disabled="item.disabled">
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </div>
+                    <div class="pagination">
+                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
+                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"
+                            @prev-click="handlePrev" @next-click="handleNext">
+                        </el-pagination>
+                    </div>
+                </div>
+            </div>
+        </main>
+    </div>
+</template>
+<script>
+// import uploadVio from './updateUser/uploadResult/vio'
+// import uploadIll from "./updateUser/uploadResult/ill"
+import createUser from "./createUser";
+import updateUser from "./updateUser";
+export default {
+    components: {
+        // updateUser,
+        // uploadVio, uploadIll,
+        updateUser, createUser
+    },
+    data() {
+        return {
+            dialogUpdate:false,
+            dialogcheck:false,
+            tableData: [
+                {
+                    code: "SJ202211010001",
+                    questionType: "杩濊",
+                    bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰",
+                    imagesId: "1",
+                    uploadTime: "2022-10-31 20:20:01"
+                },
+                {
+                    code: "SJ202211010001",
+                    questionType: "杩濊",
+                    bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰",
+                    imagesId: "1",
+                    uploadTime: "2022-10-31 20:20:01"
+                },
+                {
+                    code: "SJ202211010001",
+                    questionType: "杩濊",
+                    bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰",
+                    imagesId: "1",
+                    uploadTime: "2022-10-31 20:20:01"
+                },
+                {
+                    code: "SJ202211010001",
+                    questionType: "杩濊",
+                    bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰",
+                    imagesId: "1",
+                    uploadTime: "2022-10-31 20:20:01"
+                }
+            ],
+            context: "",
+            dialogUpload: false,
+            // dialogUpdate: false,
+            dialogView: false,
+            updateFlag:false,
+            userInfo:{},
+            info: {},
+            totalNum: 5,
+            pageSize: 10,
+            currentPage: 1,
+            all: false,
+            unsame: false,
+            myIdx: 0,
+            preMyIdx: 0,
+            options: [
+                {
+                    value: 0,
+                    label: '鎵归噺鎿嶄綔',
+                    disabled: true,
+                },
+                {
+                    value: 1,
+                    label: '鎵归噺鍚敤',
+                },
+                {
+                    value: 2,
+                    label: '鎵归噺绂佺敤',
+                },
+                {
+                    value: 3,
+                    label: '鎵归噺鍒犻櫎',
+                }
+            ],
+            tempList: [],
+            typeList: [
+                {
+                    name: '鎽勫儚澶存帹閫�',
+                    value: 1,
+                    checked: true
+                },
+                {
+                    name: '鍗曞叺鎺ㄩ��',
+                    value: 2,
+                    checked: false,
+                },
+            ],
+            statusArr: [],
+            mystatus: 1,
+            caseId: '',
+            caseCode: null,
+            dialogAdd:false,
+        }
+    },
+    created() {
+        this.statusArr[0] = 6;
+        this.typeList.forEach(item => {
+            if (item.checked) {
+                this.statusArr[1] = item.value;
+            }
+        })
+        this.getUserList();
+    },
+    methods: {
+        //淇敼
+        handleUpdate(){
+         this.dialogUpdate=true;
+        },
+        // 鏌ョ湅
+        handleFind(){
+            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'
+                })
+            })
+        },
+        // 鎵ц涓嬫媺妗嗘搷浣�
+        selectChange(list) {
+            console.log(this.tempList);
+            if (this.tempList.length !== 0) {
+                if (list === 3) {
+                    this.preMyIdx = list;
+                    this.mulDelete(this.tempList);
+                }
+            } else {
+                this.myIdx = this.preMyIdx;
+                this.$message({
+                    type: 'warning',
+                    message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
+                })
+            }
+        },
+        // 鐩戝惉琛ㄦ牸
+        tableChange(list) {
+            this.tempList = [];
+            list.forEach(item => {
+                this.tempList.push(item.code);
+            })
+            if (list.length === this.tableData.length) {
+                this.all = true;
+            } else {
+                this.all = false
+            }
+        },
+        // 鍏ㄩ��
+        selectAll() {
+            this.$refs.multipleTable.toggleAllSelection();
+        },
+        // 鍙嶉��
+        disSame(list) {
+            list.forEach(row => {
+                this.$refs.multipleTable.toggleRowSelection(row)
+            })
+        },
+        // 鍒犻櫎鍗曟潯鏁版嵁
+        handleDelete({ number }) {
+            console.log(number);
+            this.$confirm('纭鍒犻櫎锛�')
+                .then(_ => {
+                    console.log(1);
+                    this.$axios({
+                        method: 'delete',
+                        url: `sccg/violations/delete?id=${number}`,
+                    })
+                        .then(res => {
+                            console.log(res);
+                            this.$message({
+                                type: res.code === 200 ? 'success' : 'warning',
+                                message: res.message
+                            })
+
+                            this.getUserList();
+                        })
+                })
+                .catch(_ => { console.log(2) });
+        },
+        // 鑾峰彇鐢ㄦ埛鍒楄〃
+        getUserList() {
+            const { currentPage, pageSize, context, statusArr } = this;
+            console.log(statusArr);
+            // 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);
+            // })
+        },
+        // 鏇存敼杩濊/杩濆缓
+        changeTypeChecked(idx) {
+            this.typeList.forEach((item, index) => {
+                if (index === idx) {
+                    item.checked = true;
+                } else {
+                    item.checked = false;
+                }
+            })
+            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) {
+                return 'warning-row';
+            } else {
+                return 'success-row';
+            }
+            return '';
+        },
+        // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+        changeCurrentPage(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        // 涓婁竴椤电偣鍑讳簨浠�
+        handlePrev(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        // 涓嬩竴椤电偣鍑讳簨浠�
+        handleNext(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        addImages(){
+            this.dialogAdd=true;
+        },
+        handleClose(done) {
+            this.$confirm('纭鍏抽棴锛�')
+                .then(_ => {
+                    this.dialogUpload = false;
+                    // this.dialogUpdate = false;
+                    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();
+        },
+        // 澶勭悊鏃堕棿
+        filterTime(time) {
+            return helper(time);
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.userList {
+    text-align: left;
+    margin: 10px 20px;
+    color: #4b9bb7;
+
+    header {
+        background-color: #09152f;
+        border: 1pox solid #fff;
+
+        .headerContent {
+            padding: 0 40px;
+            display: flex;
+            line-height: 100px;
+            justify-content: space-between;
+            align-items: center;
+
+            .search {
+                display: flex;
+                justify-content: flex-start;
+
+                span {
+                    flex: 1;
+                }
+
+                .el-input {
+                    flex: 2;
+                    color: #1d3f57;
+
+                    &::v-deep .el-input__inner {
+                        background-color: #09152f;
+                        border: 1px solid #17324c;
+                    }
+                }
+
+            }
+
+            .findBtn {
+                line-height: 100px;
+                margin-left: 15px;
+                display: flex;
+                align-items: center;
+                margin-top: -2px;
+
+                .el-button {
+                    padding: 12px 25px;
+                    border-radius: 20px;
+                }
+            }
+
+            .addBtn {
+                background-color: #eb5d01;
+                border: none;
+                border-radius: 20px;
+                padding: 12px 30px;
+            }
+        }
+    }
+
+    &::v-deep .el-input__inner {
+        background-color: #09152f;
+        border: 1px solid #17324c;
+    }
+
+    main {
+        background-color: #09152f;
+        margin-top: 20px;
+        padding-bottom: 50px;
+        border: 1pox solid #fff;
+
+        .btn span:hover {
+            cursor: pointer;
+        }
+
+        .type-nav {
+            display: flex;
+            line-height: 40px;
+            margin-left: 30px;
+            padding-top: 10px;
+            margin-bottom: 10px;
+
+            .type-item {
+                width: 80px;
+                text-align: center;
+
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .is-active {
+                background-color: #070f22;
+                border-radius: 4px;
+                color: #fff;
+            }
+        }
+
+        .tools {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            padding: 0 20px;
+
+            .funs-sp {
+                border: 1px solid #17324c;
+            }
+
+            .funs {
+                display: flex;
+
+                .funsItem {
+                    line-height: 28px;
+                    display: flex;
+                    align-items: center;
+                    border-radius: 4px;
+                    font-size: 12px;
+                    margin-left: 10px;
+
+                    .el-checkbox {
+                        width: 80px;
+                        padding: 0 10px;
+                    }
+
+                    .el-select {
+                        width: 120px;
+                    }
+
+                    &:hover {
+                        border: 1px solid #4b9bb7;
+                    }
+
+                    &:hover .el-checkbox {
+                        color: #4b9bb7;
+                    }
+                }
+
+            }
+
+            .pagination {
+                margin-top: 50px;
+                display: flex;
+                line-height: 50px;
+                justify-content: center;
+
+                .el-pagination {
+
+                    &::v-deep li,
+                    &::v-deep .btn-prev,
+                    &::v-deep .btn-next {
+                        background-color: #071f39;
+                        color: #4b9bb7;
+                    }
+
+                    &::v-deep .active {
+                        background-color: #409eff;
+                        color: #fff;
+                    }
+                }
+            }
+        }
+
+        .el-table {
+            color: #4b9bb7;
+            font-size: 10px;
+
+            &::v-deep .cell {
+                text-overflow: ellipsis;
+                white-space: nowrap;
+                overflow: hidden;
+            }
+
+
+            .operation {
+                display: flex;
+
+                .line {
+                    padding: 0 5px;
+                }
+
+                span:hover {
+                    cursor: pointer;
+                }
+            }
+        }
+    }
+
+    .line {
+        padding: 0 5px;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/images/updateUser/index.vue b/src/views/operate/images/updateUser/index.vue
new file mode 100644
index 0000000..c25a5e3
--- /dev/null
+++ b/src/views/operate/images/updateUser/index.vue
@@ -0,0 +1,317 @@
+<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.imagesId"></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="questionType" label="闂绫诲瀷" min-width="8" v-model="imagedata.questionType">
+          </el-form-item>
+          <el-form-item prop="bigType" label="澶х被鍚嶇О" min-width="8" v-model="imagedata.bigType">
+          </el-form-item>
+          <el-form-item prop="smallType" label="灏忕被鍚嶇О" min-width="8" v-model="imagedata.smallType">
+          </el-form-item>
+          <el-form-item prop="imagesId" label="鍥剧墖Id" min-width="8" v-model="imagedata.imagesId">
+          </el-form-item>
+          <el-form-item prop="uploadTime" label="涓婁紶鏃堕棿" min-width="15" v-model="imagedata.uploadTime"> -->
+          </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>
+          </div>
+          <!-- </el-form-item> -->
+        </el-form>
+      </div>
+    </main>
+  </div>
+</template>
+<script>
+import { getTypeList } from "@/utils/helper";
+export default {
+  data() {
+
+    return {
+
+      imagedata: {
+        code: "SJ202211010001",
+        questionType: "杩濊",
+        bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+        smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰",
+        imagesId: "1",
+        uploadTime: "2022-10-31 20:20:01"
+      },
+    }
+  },
+  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/management/message/index.vue b/src/views/operate/management/message/index.vue
index 61ab3fb..d53a03a 100644
--- a/src/views/operate/management/message/index.vue
+++ b/src/views/operate/management/message/index.vue
@@ -180,6 +180,7 @@
         url: "sccg/message_audit/list",
         data: {
           messageId: context,
+          auditId:this.auditId,
           auditStatus: status,
           current: currentPage,
           pageSize: pageSize,
@@ -210,6 +211,17 @@
         this.dialogCheckSms = true;
       }
     },
+    // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅
+    getLoginUserInfo() {
+            const name = sessionStorage.getItem('name');
+            this.$axios({
+                method: 'get',
+                url: 'sccg/admin/info?name=' + name,
+            })
+                .then(res => {
+                    this.auditId = res.data.userId
+                })
+     },
     // 鍏抽棴dialog
     closeDialog({ flag, index }) {
       this.dialogCheckSms = flag;
diff --git a/src/views/operate/rectification/renovationList/components/createInterface/index.vue b/src/views/operate/rectification/renovationList/components/createInterface/index.vue
index 1be774b..5f94365 100644
--- a/src/views/operate/rectification/renovationList/components/createInterface/index.vue
+++ b/src/views/operate/rectification/renovationList/components/createInterface/index.vue
@@ -5,39 +5,39 @@
                 <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface"
                     :rules="createmyInterfaceRules" label-position="right">
                     <!-- 搴旂敤鍚嶇О -->
-                    <el-form-item label="搴旂敤鍚嶇О:" prop="applicationName">
-                        <el-input v-model="myInterface.applicationName" placeholder="濉啓搴旂敤鍚嶇О"></el-input>
+                    <el-form-item label="浠诲姟缂栧彿:" prop="applicationName">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓浠诲姟缂栧彿"></el-input>
                     </el-form-item>
                     <!-- 搴旂敤鍥炬爣 -->
-                    <el-form-item label="搴旂敤鍥炬爣:" prop="applicationIconUrl">
-                        <div class="iconBox">
-                            <div class="upload">
-                                <img src="@/assets/imgs/user/default-avatar.jpg" alt="">
-                            </div>
-                            <div class="iconView">
-                                <span>绀烘剰鍥�</span>
-                                <img src="@/assets/imgs/user/default-avatar.jpg" alt="">
-                            </div>
-                            <div class="tip">
-                                <span>鍙厑璁镐笂浼爅pg,jpeg,png,svg鏍煎紡鐨勫浘鐗囷紝寤鸿灏哄涓�105px*105px</span>
-                            </div>
-                        </div>
+                    <el-form-item label="妗堜欢缂栧彿:" prop="applicationIconUrl">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓妗堜欢缂栧彿"></el-input>
                     </el-form-item>
                     <!-- 搴旂敤绫诲瀷 -->
-                    <el-form-item label="搴旂敤绫诲瀷:" prop="applicationType">
-                        <div class="optionItem">
-                            <el-radio-group v-model="myInterface.applicationType">
-                                <el-radio :label="1">缃戦〉搴旂敤</el-radio>
-                            </el-radio-group>
-                        </div>
+                    <el-form-item label="闂绫诲瀷:" prop="applicationType">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓闂绫诲瀷"></el-input>
                     </el-form-item>
-                    <!--缃戠珯url  -->
-                    <el-form-item label="缃戠珯url:" prop="websiteUrl">
-                        <el-input v-model="myInterface.websiteUrl"></el-input>
+                    <!-- 搴旂敤鍚嶇О -->
+                    <el-form-item label="琛楅亾:" prop="applicationName">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓琛楅亾"></el-input>
                     </el-form-item>
-                    <!-- 搴旂敤鎻忚堪 -->
-                    <el-form-item label="搴旂敤鎻忚堪:" prop="description">
-                        <el-input v-model="myInterface.description" placeholder="璇峰~鍐欐弿杩�"></el-input>
+                    <!-- 搴旂敤鍥炬爣 -->
+                    <el-form-item label="绀惧尯:" prop="applicationIconUrl">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓绀惧尯"></el-input>
+                    </el-form-item>
+                    <!-- 搴旂敤绫诲瀷 -->
+                    <el-form-item label="鐩戠潱鍛�:" prop="applicationType">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓鐩戠潱鍛�"></el-input>
+                    </el-form-item>
+                    <!-- 搴旂敤鍥炬爣 -->
+                    <el-form-item label="闂鎻忚堪:" prop="applicationIconUrl">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓闂鎻忚堪"></el-input>
+                    </el-form-item>
+                    <!-- 搴旂敤绫诲瀷 -->
+                    <el-form-item label="涓婃姤鏃堕棿:" prop="applicationType">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓涓婃姤鏃堕棿"></el-input>
+                    </el-form-item>
+                    <el-form-item label="鐘舵��:" prop="applicationType">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓鐘舵��"></el-input>
                     </el-form-item>
                     <!-- 鎸夐挳 -->
                     <el-form-item>
@@ -95,7 +95,7 @@
             },
             createmyInterfaceRules: {
                 applicationName: [
-                    { required: true, trigger: "blur", validator: validateApplicationName},
+                    { required: true, trigger: "blur", validator: validateApplicationName },
                 ],
                 applicationIconUrl: [
                     { required: true, trigger: "blur", validator: validateApplicationIconUrl },
@@ -119,11 +119,11 @@
         handleUser() {
             const { myInterface } = this;
             this.$axios.post('sccg/system/portal/thirdApp/add', {
-                websiteUrl:myInterface.websiteUrl,
-                applicationIconUrl:myInterface.applicationIconUrl,
-                applicationType:0,
-                description:myInterface.description,
-                applicationName:myInterface.applicationName
+                websiteUrl: myInterface.websiteUrl,
+                applicationIconUrl: myInterface.applicationIconUrl,
+                applicationType: 0,
+                description: myInterface.description,
+                applicationName: myInterface.applicationName
             }).then(res => {
                 console.log(res);
                 // if (res.code === 200) {
@@ -145,6 +145,7 @@
         padding: 0 55px;
         background-color: #09152f;
         padding-bottom: 50px;
+
         .mainContent {
             display: flex;
             justify-content: center;
@@ -188,16 +189,20 @@
                     }
                 }
             }
-            .optionBtn{
+
+            .optionBtn {
                 margin-top: 30px;
-                &::v-deep .el-button{
+
+                &::v-deep .el-button {
                     padding: 12px 40px;
                 }
-                .reset{
+
+                .reset {
                     border: 1px solid #0079fe;
                     color: #0079fe;
                 }
             }
+
             &::v-deep .el-form-item__label {
                 color: #4b9bb7;
             }
diff --git a/src/views/operate/rectification/renovationList/components/viewInterface/index.vue b/src/views/operate/rectification/renovationList/components/viewInterface/index.vue
index 6b28ebb..4292c03 100644
--- a/src/views/operate/rectification/renovationList/components/viewInterface/index.vue
+++ b/src/views/operate/rectification/renovationList/components/viewInterface/index.vue
@@ -4,40 +4,48 @@
             <div class="mainContent">
                 <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface"
                     :rules="createmyInterfaceRules" label-position="right">
-                    <!-- 搴旂敤鍚嶇О -->
-                    <el-form-item label="搴旂敤鍚嶇О:" prop="applicationName">
-                        <el-input v-model="myInterface.applicationName" placeholder="濉啓搴旂敤鍚嶇О"></el-input>
+                   <!-- 搴旂敤鍚嶇О -->
+                   <el-form-item label="浠诲姟缂栧彿:" prop="applicationName">
+                        <el-input v-model="myInterface.taskNumber" placeholder="濉啓浠诲姟缂栧彿"></el-input>
                     </el-form-item>
                     <!-- 搴旂敤鍥炬爣 -->
-                    <el-form-item label="搴旂敤鍥炬爣:" prop="applicationIconUrl">
-                        <div class="iconBox">
-                            <div class="upload">
-                                <img src="@/assets/imgs/user/default-avatar.jpg" alt="">
-                            </div>
-                            <div class="iconView">
-                                <span>绀烘剰鍥�</span>
-                                <img src="@/assets/imgs/user/default-avatar.jpg" alt="">
-                            </div>
-                            <div class="tip">
-                                <span>鍙厑璁镐笂浼爅pg,jpeg,png,svg鏍煎紡鐨勫浘鐗囷紝寤鸿灏哄涓�105px*105px</span>
-                            </div>
-                        </div>
+                    <el-form-item label="妗堜欢缂栧彿:" prop="applicationIconUrl">
+                        <el-input v-model="myInterface.caseNumber" placeholder="濉啓妗堜欢缂栧彿"></el-input>
+                    </el-form-item>
+                     <!-- 搴旂敤鍥炬爣 -->
+                     <el-form-item label="澶х被:" prop="applicationIconUrl">
+                        <el-input v-model="myInterface.bigType" placeholder="濉啓妗堜欢缂栧彿"></el-input>
+                    </el-form-item>
+                     <!-- 搴旂敤鍥炬爣 -->
+                     <el-form-item label="灏忕被:" prop="applicationIconUrl">
+                        <el-input v-model="myInterface.smallType" placeholder="濉啓妗堜欢缂栧彿"></el-input>
                     </el-form-item>
                     <!-- 搴旂敤绫诲瀷 -->
-                    <el-form-item label="搴旂敤绫诲瀷:" prop="applicationType">
-                        <div class="optionItem">
-                            <el-radio-group v-model="myInterface.applicationType">
-                                <el-radio :label="1">缃戦〉搴旂敤</el-radio>
-                            </el-radio-group>
-                        </div>
+                    <el-form-item label="闂绫诲瀷:" prop="applicationType">
+                        <el-input v-model="myInterface.questionType" placeholder="濉啓闂绫诲瀷"></el-input>
                     </el-form-item>
-                    <!--缃戠珯url  -->
-                    <el-form-item label="缃戠珯url:" prop="websiteUrl">
-                        <el-input v-model="myInterface.websiteUrl"></el-input>
+                    <!-- 搴旂敤鍚嶇О -->
+                    <el-form-item label="琛楅亾:" prop="applicationName">
+                        <el-input v-model="myInterface.steert" placeholder="濉啓琛楅亾"></el-input>
                     </el-form-item>
-                    <!-- 搴旂敤鎻忚堪 -->
-                    <el-form-item label="搴旂敤鎻忚堪:" prop="description">
-                        <el-input v-model="myInterface.description" placeholder="璇峰~鍐欐弿杩�"></el-input>
+                    <!-- 搴旂敤鍥炬爣 -->
+                    <el-form-item label="绀惧尯:" prop="applicationIconUrl">
+                        <el-input v-model="myInterface.community" placeholder="濉啓绀惧尯"></el-input>
+                    </el-form-item>
+                    <!-- 搴旂敤绫诲瀷 -->
+                    <el-form-item label="鐩戠潱鍛�:" prop="applicationType">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓鐩戠潱鍛�"></el-input>
+                    </el-form-item>
+                    <!-- 搴旂敤鍥炬爣 -->
+                    <el-form-item label="闂鎻忚堪:" prop="applicationIconUrl">
+                        <el-input v-model="myInterface.description" placeholder="濉啓闂鎻忚堪"></el-input>
+                    </el-form-item>
+                    <!-- 搴旂敤绫诲瀷 -->
+                    <el-form-item label="涓婃姤鏃堕棿:" prop="applicationType">
+                        <el-input v-model="myInterface.applicationName" placeholder="濉啓涓婃姤鏃堕棿"></el-input>
+                    </el-form-item>
+                    <el-form-item label="鐘舵��:" prop="applicationType">
+                        <el-input v-model="myInterface.status" placeholder="濉啓鐘舵��"></el-input>
                     </el-form-item>
                     <!-- 鎸夐挳 -->
                     <!-- <el-form-item>
@@ -91,8 +99,18 @@
             }
         };
         return {
-            myInterface: {
-            },
+            myInterface:{
+                    taskNumber:"13413414",
+                    caseNumber:"202233112310310001",
+                    questionType:"杩濊",
+                    bigType:"涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�",
+                    smallType:"杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    steert:"濡欏嘲琛�",
+                    community:"澶ф煒闀�",
+                    description:"杩濊鍋滄斁",
+                    reportTime:"2022-11-1 12:10:10",
+                    status:"涓婃姤"
+                },
             createmyInterfaceRules: {
                 applicationName: [
                     { required: true, trigger: "blur", validator: validateApplicationName},
@@ -115,7 +133,7 @@
     created() {
         const that = this;
         const {userInfo} = this;
-        this.myInterface = JSON.parse(JSON.stringify(userInfo));
+        // this.myInterface = JSON.parse(JSON.stringify(userInfo));
     },
     methods: {
     },
diff --git a/src/views/operate/rectification/renovationList/index.vue b/src/views/operate/rectification/renovationList/index.vue
index a5c515b..8fdf4bb 100644
--- a/src/views/operate/rectification/renovationList/index.vue
+++ b/src/views/operate/rectification/renovationList/index.vue
@@ -6,7 +6,7 @@
         <main>
             <div class="mainHeader">
                 <div class="add">
-                    <el-button type="primary" icon="el-icon-plus">鏂板浠诲姟</el-button>
+                    <el-button type="primary" icon="el-icon-plus" @click="addTask()">鏂板浠诲姟</el-button>
                 </div>
                 <div class="date-search">
                     <span>鎸夊ぉ鏌ヨ:</span>
@@ -30,53 +30,57 @@
                 <!-- @selection-change="handleSelectionChange" -->
                 <!-- 鏁版嵁娓叉煋 -->
                 <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
-                    :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
+                    :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }"
                     :row-class-name="tableRowClassName">
                     <el-table-column type="selection" width="55">
                     </el-table-column>
-                    <el-table-column label="浠诲姟缂栧彿" prop="applicationName" min-width="10">
+                    <el-table-column label="浠诲姟缂栧彿" prop="taskNumber" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="applicationType" label="妗堜欢缂栧彿" min-width="10">
+                    <el-table-column label="妗堜欢缂栧彿" prop="caseNumber" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="websiteUrl" label="闂绫诲瀷" min-width="10">
+                    <el-table-column prop="questionType" label="闂绫诲瀷" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="applicationType" label="琛楅亾" min-width="10">
+                    <el-table-column prop="bigType" label="澶х被" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="applicationType" label="绀惧尯" min-width="10">
+                    <el-table-column prop="smallType" label="灏忕被" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="applicationType" label="鐩戠潱鍛�" min-width="10">
+                    <el-table-column prop="steert" label="琛楅亾" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="applicationType" label="闂鎻忚堪" min-width="10">
+                    <el-table-column prop="community" label="绀惧尯" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="applicationType" label="涓婃姤鏃堕棿" min-width="10">
+                    <el-table-column prop="description" label="浠诲姟鎻忚堪" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="applicationType" label="鐘舵��" min-width="10">
+                    <el-table-column prop="reportTime" label="涓婃姤鏃堕棿" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="manager" label="鐩戠潱鍛�" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="status" label="鐘舵��" min-width="10">
                     </el-table-column>
                     <el-table-column label="鎿嶄綔" min-width="10">
                         <template slot-scope="scope">
                             <span @click="handleDelete(scope.row)">缂栬緫</span>
-                            <span class="line">|</span>
-                            <span @click="handleDelete(scope.row)">鏌ョ湅</span>
+                            <!-- <span class="line">|</span>
+                            <span @click="(scope.row)">鏌ョ湅</span> -->
                         </template>
                     </el-table-column>
                 </el-table>
                 <!-- 鍒嗛〉 -->
-                <!-- <div class="pagination">
+                <div class="pagination">
                     <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
                         :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
                         @next-click="handleNext">
                     </el-pagination>
-                </div> -->
+                </div>
             </div>
         </main>
         <footer>
             <!-- 鍒涘缓寮圭獥 -->
-            <el-dialog :visible.sync="dialogCreate" title="鏂板绗笁鏂规帴鍙�" width="45%" v-if="dialogCreate"
+            <el-dialog :visible.sync="dialogCreate" title="鏂板鏁存不鍒楄〃" width="45%" v-if="dialogCreate"
                 :before-close="handleClose">
                 <createInterface />
             </el-dialog>
             <!-- 鏌ョ湅寮圭獥 -->
-            <el-dialog :visible.sync="dialogUpdate" :title="updateFlag ?'淇敼绗笁鏂规帴鍙�':'鏌ョ湅绗笁鏂规帴鍙�'" width="45%"
+            <el-dialog :visible.sync="dialogUpdate" :title="updateFlag ? '淇敼绗笁鏂规帴鍙�' : '鏌ョ湅绗笁鏂规帴鍙�'" width="45%"
                 v-if="dialogUpdate" :before-close="handleClose">
                 <viewInterface :updateFlag="updateFlag" :userInfo=userInfo />
             </el-dialog>
@@ -92,13 +96,80 @@
     },
     data() {
         return {
-            tableData: [],
+            totalNum: 5,
+            pageSize: 10,
+            tableData: [
+                {
+                    taskNumber: "13413414",
+                    caseNumber: "202233112310310001",
+                    questionType: "杩濊",
+                    bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�",
+                    smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    steert: "濡欏嘲琛�",
+                    community: "澶ф煒闀�",
+                    description: "杩濊鍋滄斁",
+                    reportTime: "2022-11-1 12:10:10",
+                    status: "涓婃姤",
+                    manager: "鐜嬫櫒鏅�"},
+                {
+                    taskNumber: "13413414",
+                    caseNumber: "202233112310310001",
+                    questionType: "杩濊",
+                    bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�",
+                    smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    steert: "濡欏嘲琛�",
+                    community: "澶ф煒闀�",
+                    description: "杩濊鍋滄斁",
+                    reportTime: "2022-11-1 12:10:10",
+                    status: "涓婃姤",
+                    manager: "鐜嬫櫒鏅�"
+                },
+                {
+                    taskNumber: "13413414",
+                    caseNumber: "202233112310310001",
+                    questionType: "杩濊",
+                    bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�",
+                    smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    steert: "濡欏嘲琛�",
+                    community: "澶ф煒闀�",
+                    description: "杩濊鍋滄斁",
+                    reportTime: "2022-11-1 12:10:10",
+                    status: "涓婃姤",
+                    manager: "鐜嬫櫒鏅�"
+                },
+                {
+                    taskNumber: "13413414",
+                    caseNumber: "202233112310310001",
+                    questionType: "杩濊",
+                    bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�",
+                    smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    steert: "濡欏嘲琛�",
+                    community: "澶ф煒闀�",
+                    description: "杩濊鍋滄斁",
+                    reportTime: "2022-11-1 12:10:10",
+                    status: "涓婃姤",
+                    manager: "鐜嬫櫒鏅�"
+                },
+                {
+                    taskNumber: "13413414",
+                    caseNumber: "202233112310310001",
+                    questionType: "杩濊",
+                    bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�",
+                    smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝",
+                    steert: "濡欏嘲琛�",
+                    community: "澶ф煒闀�",
+                    description: "杩濊鍋滄斁",
+                    reportTime: "2022-11-1 12:10:10",
+                    status: "涓婃姤",
+                    manager: "鐜嬫櫒鏅�"
+                }
+            ],
             search: "",
             dialogCreate: false,
             dialogUpdate: false,
             updateFlag: false,
             userInfo: '',
-            date:'',
+            date: '',
             // totalNum: 200,
             // pageSize: 10,
             // currentPage: 1,
@@ -108,6 +179,9 @@
         this.getUserList();
     },
     methods: {
+        addTask() {
+            this.dialogCreate = true;
+        },
         // 鑾峰彇鎺ュ彛鍒楄〃
         getUserList() {
             const that = this;
@@ -150,14 +224,8 @@
         },
         // 鍒犻櫎绗笁鏂规帴鍙�
         handleDelete({ id }) {
+            this.dialogUpdate=true;
             console.log(id);
-            this.$axios.delete('sccg/system/portal/thirdApp/delete', {
-                params: {
-                    id
-                }
-            }).then(res => {
-                console.log(res);
-            })
         }
         // // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
         // changeCurrentPage(page) {
@@ -205,19 +273,26 @@
             color: #4b9bb7;
             background-color: #09152f;
             display: flex;
-            .add,.search,.btn{
-                flex:1;
+
+            .add,
+            .search,
+            .btn {
+                flex: 1;
             }
-            .date-search{
+
+            .date-search {
                 flex: 3;
                 display: flex;
-                .mydate{
+
+                .mydate {
                     display: flex;
-                    .line{
-                        margin:0 10px 0 20px;
+
+                    .line {
+                        margin: 0 10px 0 20px;
                     }
                 }
             }
+
             .el-input {
                 width: 180px;
                 height: 35px;
diff --git a/src/views/operate/rectification/surveyList/components/createInterface/index.vue b/src/views/operate/rectification/surveyList/components/createInterface/index.vue
index 1be774b..57dd333 100644
--- a/src/views/operate/rectification/surveyList/components/createInterface/index.vue
+++ b/src/views/operate/rectification/surveyList/components/createInterface/index.vue
@@ -1,260 +1,322 @@
 <template>
-    <div class="createmyInterface">
-        <main>
-            <div class="mainContent">
-                <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface"
-                    :rules="createmyInterfaceRules" label-position="right">
-                    <!-- 搴旂敤鍚嶇О -->
-                    <el-form-item label="搴旂敤鍚嶇О:" prop="applicationName">
-                        <el-input v-model="myInterface.applicationName" placeholder="濉啓搴旂敤鍚嶇О"></el-input>
-                    </el-form-item>
-                    <!-- 搴旂敤鍥炬爣 -->
-                    <el-form-item label="搴旂敤鍥炬爣:" prop="applicationIconUrl">
-                        <div class="iconBox">
-                            <div class="upload">
-                                <img src="@/assets/imgs/user/default-avatar.jpg" alt="">
-                            </div>
-                            <div class="iconView">
-                                <span>绀烘剰鍥�</span>
-                                <img src="@/assets/imgs/user/default-avatar.jpg" alt="">
-                            </div>
-                            <div class="tip">
-                                <span>鍙厑璁镐笂浼爅pg,jpeg,png,svg鏍煎紡鐨勫浘鐗囷紝寤鸿灏哄涓�105px*105px</span>
-                            </div>
-                        </div>
-                    </el-form-item>
-                    <!-- 搴旂敤绫诲瀷 -->
-                    <el-form-item label="搴旂敤绫诲瀷:" prop="applicationType">
-                        <div class="optionItem">
-                            <el-radio-group v-model="myInterface.applicationType">
-                                <el-radio :label="1">缃戦〉搴旂敤</el-radio>
-                            </el-radio-group>
-                        </div>
-                    </el-form-item>
-                    <!--缃戠珯url  -->
-                    <el-form-item label="缃戠珯url:" prop="websiteUrl">
-                        <el-input v-model="myInterface.websiteUrl"></el-input>
-                    </el-form-item>
-                    <!-- 搴旂敤鎻忚堪 -->
-                    <el-form-item label="搴旂敤鎻忚堪:" prop="description">
-                        <el-input v-model="myInterface.description" placeholder="璇峰~鍐欐弿杩�"></el-input>
-                    </el-form-item>
-                    <!-- 鎸夐挳 -->
-                    <el-form-item>
-                        <div class="optionBtn">
-                            <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦
-                            </el-button>
-                            <el-button class="btn reset">閲嶇疆</el-button>
-                        </div>
-                    </el-form-item>
-                </el-form>
+  <div class="createmyInterface">
+    <main>
+      <div class="mainContent">
+        <el-form
+          ref="survey"
+          label-width="140px"
+          autoComplete="on"
+          :model="myInterface"
+          :rules="createSurvey"
+          label-position="right"
+        >
+          <el-form-item class="optionItem" label="闂绫诲瀷:" prop="type">
+            <el-select v-model="myInterface.type" placeholder="璇烽�夋嫨闂绫诲瀷">
+              <el-option label="闂绫诲瀷涓�" value="shanghai"></el-option>
+              <el-option label="闂绫诲瀷浜�" value="beijing"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item class="optionItem" label="澶х被:" prop="bigclass">
+            <el-select v-model="myInterface.bigclass" placeholder="璇烽�夋嫨澶х被">
+              <el-option label="澶х被涓�" value="shanghai"></el-option>
+              <el-option label="澶х被浜�" value="beijing"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item class="optionItem" label="灏忕被:" prop="subclass">
+            <el-select v-model="myInterface.subclass" placeholder="璇烽�夋嫨灏忕被">
+              <el-option label="灏忕被涓�" value="shanghai"></el-option>
+              <el-option label="灏忕被浜�" value="beijing"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item class="optionItem" label="琛楅亾:" prop="street">
+            <el-input
+              v-model="myInterface.street"
+              placeholder="璇峰~鍐欒閬�"
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="绀惧尯:" prop="community">
+            <el-input
+              v-model="myInterface.community"
+              placeholder="璇峰~鍐欑ぞ鍖�"
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="浠诲姟鎻忚堪:" prop="task">
+            <el-input
+              v-model="myInterface.task"
+              placeholder="璇峰~鍐欎换鍔℃弿杩�"
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="涓婃姤鏃堕棿:" prop="reportTime">
+            <div class="block">
+              <el-date-picker
+                v-model="myInterface.reportTime"
+                type="datetime"
+                placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+              >
+              </el-date-picker>
             </div>
-        </main>
-    </div>
+          </el-form-item>
+          <el-form-item>
+            <div class="optionBtn">
+              <el-button class="btn cancel" @click.native.prevent="handleCancel"
+                >鍙栨秷</el-button
+              >
+              <el-button
+                type="primary"
+                class="btn submit"
+                @click.native.prevent="handleSave"
+                >淇濆瓨
+              </el-button>
+            </div>
+          </el-form-item>
+        </el-form>
+      </div>
+    </main>
+  </div>
 </template>
 <script>
 export default {
-    data() {
-        const validateApplicationName = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑敤鎴峰悕绉�"));
-            }
-        };
-        const validateApplicationIconUrl = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
-            } else {
-                const rep = /^\w+$/;
-                if (!rep.test(value)) {
-                    callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆"));
-                }
-            }
-        };
-        const validateApplicationType = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑敤鎴峰鍚�"));
-            } else {
-                const rep = /^[\u4E00-\u9FA5]{2,4}$/;
-                if (!rep.test(value)) {
-                    callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕");
-                }
-            }
-        };
-        const validatePhone = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�"));
-            } else {
-                const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
-                if (!rep.test(value)) {
-                    callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
-                }
-            }
-        };
-        return {
-            myInterface: {
-            },
-            createmyInterfaceRules: {
-                applicationName: [
-                    { required: true, trigger: "blur", validator: validateApplicationName},
-                ],
-                applicationIconUrl: [
-                    { required: true, trigger: "blur", validator: validateApplicationIconUrl },
-                ],
-                applicationType: [
-                    { required: true, trigger: "blur", validator: validateApplicationType },
-                ],
-                websiteUrl: [
-                    { required: true, trigger: "blur" },
-                ],
-                description: [
-                    { required: false, trigger: "blur" },
-                ],
-            },
-        }
+  data() {
+    const validateType = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇烽�夋嫨闂绫诲瀷"));
+      }
+    };
+    const validateBigClass = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇烽�夋嫨澶х被"));
+      }
+    };
+    const validateSubClass = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇烽�夋嫨灏忕被"));
+      }
+    };
+    const validateStreet = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇峰~鍐欒閬�"));
+      }
+    };
+    const validateCommunity = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇峰~鍐欑ぞ鍖�"));
+      }
+    };
+    const validateTask = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇峰~鍐欎换鍔℃弿杩�"));
+      }
+    };
+    const validateReportTime = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇烽�夋嫨浠诲姟涓婃姤鏃堕棿"));
+      }
+    };
+
+    return {
+      myInterface: {
+        num: "",
+        type: "",
+        bigclass: "",
+        subclass: "",
+        street: "",
+        community: "",
+        task: "",
+        reportTime: "",
+      },
+      createSurvey: {
+        type: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: validateType,
+          },
+        ],
+        bigclass: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: validateBigClass,
+          },
+        ],
+        subclass: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: validateSubClass,
+          },
+        ],
+        street: [
+          { required: true, trigger: "blur", validator: validateStreet },
+        ],
+        community: [
+          { required: true, trigger: "blur", validator: validateCommunity },
+        ],
+        task: [{ required: true, trigger: "blur", validator: validateTask }],
+        reportTime: [
+          { required: true, trigger: "blur", validator: validateReportTime },
+        ],
+      },
+    };
+  },
+  created() {
+    const that = this;
+  },
+  methods: {
+    // 鍏抽棴寮圭獥
+    handleCancel() {
+        console.log(1);
+      this.$emit("closeDialog", { flag: false, index: 0 });
     },
-    created() {
-        const that = this;
+    //淇濆瓨
+    handleSave() {
+      const { myInterface } = this;
+        this.$refs.survey.validate((flag)=>{
+            console.log(flag)
+            if(flag){
+
+            }else{
+                return false
+            }
+        })
+    //   this.$axios
+    //     .post("sccg/system/portal/thirdApp/add", {
+    //       websiteUrl: myInterface.websiteUrl,
+    //       applicationIconUrl: myInterface.applicationIconUrl,
+    //       applicationType: 0,
+    //       description: myInterface.description,
+    //       applicationName: myInterface.applicationName,
+    //     })
+    //     .then((res) => {
+    //       console.log(res);
+    //       // if (res.code === 200) {
+    //       //     this.refresh();
+    //       // }
+    //     });
     },
-    methods: {
-        handleUser() {
-            const { myInterface } = this;
-            this.$axios.post('sccg/system/portal/thirdApp/add', {
-                websiteUrl:myInterface.websiteUrl,
-                applicationIconUrl:myInterface.applicationIconUrl,
-                applicationType:0,
-                description:myInterface.description,
-                applicationName:myInterface.applicationName
-            }).then(res => {
-                console.log(res);
-                // if (res.code === 200) {
-                //     this.refresh();
-                // }
-            })
-        },
-    },
-    props: ['refresh']
-}
+  },
+  props: ['refresh','closeDialog'],
+};
 </script>
 <style lang="scss" scoped>
 .createmyInterface {
-    border-radius: 1px;
+  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;
 
-    main {
-        text-align: left;
-        padding: 0 55px;
-        background-color: #09152f;
-        padding-bottom: 50px;
-        .mainContent {
-            display: flex;
-            justify-content: center;
-            padding-top: 50px;
-
-            .iconBox {
-                display: flex;
-
-                .upload {
-                    display: flex;
-                    align-items: flex-end;
-
-                    img {
-                        width: 120px;
-                        height: 120px;
-                        border-radius: 4px;
-                    }
-                }
-
-                .iconView {
-                    display: flex;
-                    flex-direction: column;
-                    margin-left: 30px;
-                    justify-content: flex-end;
-
-                    img {
-                        width: 70px;
-                        height: 70px;
-                        border-radius: 4px;
-                    }
-                }
-
-                .tip {
-                    display: flex;
-                    align-items: flex-end;
-                    margin-left: 30px;
-                    font-size: 12px;
-
-                    span {
-                        line-height: 20px;
-                    }
-                }
-            }
-            .optionBtn{
-                margin-top: 30px;
-                &::v-deep .el-button{
-                    padding: 12px 40px;
-                }
-                .reset{
-                    border: 1px solid #0079fe;
-                    color: #0079fe;
-                }
-            }
-            &::v-deep .el-form-item__label {
-                color: #4b9bb7;
-            }
-
-            &::v-deep .el-input__inner {
-                background-color: #09152f;
-                border: 1px solid #17324c;
-            }
-
-            .addPerson {
-                display: flex;
-                list-style: none;
-                padding: 0;
-
-                li {
-                    background-color: #cccccc;
-                    width: 36px;
-                    height: 36px;
-                    border-radius: 50%;
-                    color: #fff;
-                    text-align: center;
-                    font-size: 30px;
-                    margin-left: 10px;
-                }
-            }
-
-            .el-form-item__content {
-                width: 400px;
-
-                .el-select {
-                    width: 100%;
-                }
-            }
-
-            .optionHandleSp {
-                display: flex;
-
-                .areaNumber,
-                .moreNumber {
-                    flex: 1;
-                }
-
-                .telNumber {
-                    flex: 2;
-                }
-            }
-
-        }
-    }
-
-    footer {
-        border-top: 1px solid #fff;
-        height: 80px;
+      .iconBox {
         display: flex;
-        align-items: center;
-        justify-content: flex-end;
-        padding-right: 20px;
+
+        .upload {
+          display: flex;
+          align-items: flex-end;
+
+          img {
+            width: 120px;
+            height: 120px;
+            border-radius: 4px;
+          }
+        }
+
+        .iconView {
+          display: flex;
+          flex-direction: column;
+          margin-left: 30px;
+          justify-content: flex-end;
+
+          img {
+            width: 70px;
+            height: 70px;
+            border-radius: 4px;
+          }
+        }
+
+        .tip {
+          display: flex;
+          align-items: flex-end;
+          margin-left: 30px;
+          font-size: 12px;
+
+          span {
+            line-height: 20px;
+          }
+        }
+      }
+      .optionBtn {
+        margin-top: 30px;
+        &::v-deep .el-button {
+          padding: 12px 40px;
+        }
+        .reset {
+          border: 1px solid #0079fe;
+          color: #0079fe;
+        }
+      }
+      &::v-deep .el-form-item__label {
+        color: #4b9bb7;
+      }
+
+      &::v-deep .el-input__inner {
+        background-color: #09152f;
+        border: 1px solid #17324c;
+      }
+
+      .addPerson {
+        display: flex;
+        list-style: none;
+        padding: 0;
+
+        li {
+          background-color: #cccccc;
+          width: 36px;
+          height: 36px;
+          border-radius: 50%;
+          color: #fff;
+          text-align: center;
+          font-size: 30px;
+          margin-left: 10px;
+        }
+      }
+
+      .el-form-item__content {
+        width: 400px;
+
+        .el-select {
+          width: 100%;
+        }
+      }
+
+      .optionHandleSp {
+        display: flex;
+
+        .areaNumber,
+        .moreNumber {
+          flex: 1;
+        }
+
+        .telNumber {
+          flex: 2;
+        }
+      }
     }
+  }
+
+  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/rectification/surveyList/components/viewInterface/index.vue b/src/views/operate/rectification/surveyList/components/viewInterface/index.vue
index 6b28ebb..286fcf4 100644
--- a/src/views/operate/rectification/surveyList/components/viewInterface/index.vue
+++ b/src/views/operate/rectification/surveyList/components/viewInterface/index.vue
@@ -1,246 +1,272 @@
 <template>
-    <div class="createmyInterface">
-        <main>
-            <div class="mainContent">
-                <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface"
-                    :rules="createmyInterfaceRules" label-position="right">
-                    <!-- 搴旂敤鍚嶇О -->
-                    <el-form-item label="搴旂敤鍚嶇О:" prop="applicationName">
-                        <el-input v-model="myInterface.applicationName" placeholder="濉啓搴旂敤鍚嶇О"></el-input>
-                    </el-form-item>
-                    <!-- 搴旂敤鍥炬爣 -->
-                    <el-form-item label="搴旂敤鍥炬爣:" prop="applicationIconUrl">
-                        <div class="iconBox">
-                            <div class="upload">
-                                <img src="@/assets/imgs/user/default-avatar.jpg" alt="">
-                            </div>
-                            <div class="iconView">
-                                <span>绀烘剰鍥�</span>
-                                <img src="@/assets/imgs/user/default-avatar.jpg" alt="">
-                            </div>
-                            <div class="tip">
-                                <span>鍙厑璁镐笂浼爅pg,jpeg,png,svg鏍煎紡鐨勫浘鐗囷紝寤鸿灏哄涓�105px*105px</span>
-                            </div>
-                        </div>
-                    </el-form-item>
-                    <!-- 搴旂敤绫诲瀷 -->
-                    <el-form-item label="搴旂敤绫诲瀷:" prop="applicationType">
-                        <div class="optionItem">
-                            <el-radio-group v-model="myInterface.applicationType">
-                                <el-radio :label="1">缃戦〉搴旂敤</el-radio>
-                            </el-radio-group>
-                        </div>
-                    </el-form-item>
-                    <!--缃戠珯url  -->
-                    <el-form-item label="缃戠珯url:" prop="websiteUrl">
-                        <el-input v-model="myInterface.websiteUrl"></el-input>
-                    </el-form-item>
-                    <!-- 搴旂敤鎻忚堪 -->
-                    <el-form-item label="搴旂敤鎻忚堪:" prop="description">
-                        <el-input v-model="myInterface.description" placeholder="璇峰~鍐欐弿杩�"></el-input>
-                    </el-form-item>
-                    <!-- 鎸夐挳 -->
-                    <!-- <el-form-item>
-                        <div class="optionBtn">
-                            <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦
-                            </el-button>
-                            <el-button class="btn reset">閲嶇疆</el-button>
-                        </div>
-                    </el-form-item> -->
-                </el-form>
-            </div>
-        </main>
-    </div>
+  <div class="createmyInterface">
+    <main>
+      <div class="mainContent">
+        <el-form
+          ref="user"
+          label-width="140px"
+          autoComplete="on"
+          :model="myInterface"
+          :rules="createUserRules"
+          label-position="right"
+        >
+          <el-form-item class="optionItem" label="浠诲姟缂栧彿:" prop="num">
+            <el-input
+              v-model="myInterface.num"
+              placeholder="璇峰~鍐欎换鍔$紪鍙�"
+              disabled
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="闂绫诲瀷:" prop="type">
+            <el-input
+              v-model="myInterface.type"
+              placeholder="璇烽�夋嫨闂绫诲瀷"
+              disabled
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="澶х被:" prop="bigclass">
+            <el-input
+              v-model="myInterface.bigclass"
+              placeholder="璇烽�夋嫨澶х被"
+              disabled
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="灏忕被:" prop="subclass">
+            <el-input
+              v-model="myInterface.subclass"
+              placeholder="璇烽�夋嫨灏忕被"
+              disabled
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="琛楅亾:" prop="street">
+            <el-input
+              v-model="myInterface.street"
+              placeholder="璇峰~鍐欒閬�"
+              disabled
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="绀惧尯:" prop="community">
+            <el-input
+              v-model="myInterface.community"
+              placeholder="璇峰~鍐欑ぞ鍖�"
+              disabled
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="浠诲姟鎻忚堪:" prop="task">
+            <el-input
+              v-model="myInterface.task"
+              placeholder="璇峰~鍐欎换鍔℃弿杩�"
+              disabled
+            ></el-input>
+          </el-form-item>
+          <el-form-item class="optionItem" label="涓婃姤鏃堕棿:" prop="reportTime">
+            <el-input
+              v-model="myInterface.reportTime"
+              placeholder="璇烽�夋嫨涓婃姤鏃堕棿"
+              disabled
+            ></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+    </main>
+  </div>
 </template>
 <script>
 export default {
-    data() {
-        const validateApplicationName = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑敤鎴峰悕绉�"));
-            }
-        };
-        const validateApplicationIconUrl = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
-            } else {
-                const rep = /^\w+$/;
-                if (!rep.test(value)) {
-                    callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆"));
-                }
-            }
-        };
-        const validateApplicationType = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑敤鎴峰鍚�"));
-            } else {
-                const rep = /^[\u4E00-\u9FA5]{2,4}$/;
-                if (!rep.test(value)) {
-                    callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕");
-                }
-            }
-        };
-        const validatePhone = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�"));
-            } else {
-                const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
-                if (!rep.test(value)) {
-                    callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
-                }
-            }
-        };
-        return {
-            myInterface: {
-            },
-            createmyInterfaceRules: {
-                applicationName: [
-                    { required: true, trigger: "blur", validator: validateApplicationName},
-                ],
-                applicationIconUrl: [
-                    { required: true, trigger: "blur", validator: validateApplicationIconUrl },
-                ],
-                applicationType: [
-                    { required: true, trigger: "blur", validator: validateApplicationType },
-                ],
-                websiteUrl: [
-                    { required: true, trigger: "blur" },
-                ],
-                description: [
-                    { required: false, trigger: "blur" },
-                ],
-            },
+  data() {
+    const validateApplicationName = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇峰~鍐欑敤鎴峰悕绉�"));
+      }
+    };
+    const validateApplicationIconUrl = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
+      } else {
+        const rep = /^\w+$/;
+        if (!rep.test(value)) {
+          callback(
+            new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")
+          );
         }
-    },
-    created() {
-        const that = this;
-        const {userInfo} = this;
-        this.myInterface = JSON.parse(JSON.stringify(userInfo));
-    },
-    methods: {
-    },
-    props: ['updateFlag','userInfo']
-}
+      }
+    };
+    const validateApplicationType = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇峰~鍐欑敤鎴峰鍚�"));
+      } else {
+        const rep = /^[\u4E00-\u9FA5]{2,4}$/;
+        if (!rep.test(value)) {
+          callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕");
+        }
+      }
+    };
+    const validatePhone = (rule, value, callback) => {
+      if (!value) {
+        callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�"));
+      } else {
+        const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/;
+        if (!rep.test(value)) {
+          callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
+        }
+      }
+    };
+    return {
+      myInterface: {},
+      createmyInterfaceRules: {
+        applicationName: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: validateApplicationName,
+          },
+        ],
+        applicationIconUrl: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: validateApplicationIconUrl,
+          },
+        ],
+        applicationType: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: validateApplicationType,
+          },
+        ],
+        websiteUrl: [{ required: true, trigger: "blur" }],
+        description: [{ required: false, trigger: "blur" }],
+      },
+    };
+  },
+  created() {
+    const that = this;
+    const { userInfo } = this;
+    this.myInterface = JSON.parse(JSON.stringify(userInfo));
+  },
+  methods: {},
+  props: ["updateFlag", "userInfo"],
+};
 </script>
 <style lang="scss" scoped>
 .createmyInterface {
-    border-radius: 1px;
+  border-radius: 1px;
+  background-color: #09152f;
+
+  main {
+    text-align: left;
+    padding: 0 55px;
     background-color: #09152f;
 
-    main {
-        text-align: left;
-        padding: 0 55px;
-        background-color: #09152f;
+    .mainContent {
+      display: flex;
+      justify-content: center;
+      padding-top: 50px;
 
-        .mainContent {
-            display: flex;
-            justify-content: center;
-            padding-top: 50px;
-
-            .iconBox {
-                display: flex;
-
-                .upload {
-                    display: flex;
-                    align-items: flex-end;
-
-                    img {
-                        width: 120px;
-                        height: 120px;
-                        border-radius: 4px;
-                    }
-                }
-
-                .iconView {
-                    display: flex;
-                    flex-direction: column;
-                    margin-left: 30px;
-                    justify-content: flex-end;
-
-                    img {
-                        width: 70px;
-                        height: 70px;
-                        border-radius: 4px;
-                    }
-                }
-
-                .tip {
-                    display: flex;
-                    align-items: flex-end;
-                    margin-left: 30px;
-                    font-size: 12px;
-
-                    span {
-                        line-height: 20px;
-                    }
-                }
-            }
-            .optionBtn{
-                &::v-deep .el-button{
-                    padding: 12px 40px;
-                }
-                .reset{
-                    border: 1px solid #0079fe;
-                    color: #0079fe;
-                }
-            }
-            &::v-deep .el-form-item__label {
-                color: #4b9bb7;
-            }
-
-            &::v-deep .el-input__inner {
-                background-color: #09152f;
-                border: 1px solid #17324c;
-            }
-
-            .addPerson {
-                display: flex;
-                list-style: none;
-                padding: 0;
-
-                li {
-                    background-color: #cccccc;
-                    width: 36px;
-                    height: 36px;
-                    border-radius: 50%;
-                    color: #fff;
-                    text-align: center;
-                    font-size: 30px;
-                    margin-left: 10px;
-                }
-            }
-
-            .el-form-item__content {
-                width: 400px;
-
-                .el-select {
-                    width: 100%;
-                }
-            }
-
-            .optionHandleSp {
-                display: flex;
-
-                .areaNumber,
-                .moreNumber {
-                    flex: 1;
-                }
-
-                .telNumber {
-                    flex: 2;
-                }
-            }
-
-        }
-    }
-
-    footer {
-        border-top: 1px solid #fff;
-        height: 80px;
+      .iconBox {
         display: flex;
-        align-items: center;
-        justify-content: flex-end;
-        padding-right: 20px;
+
+        .upload {
+          display: flex;
+          align-items: flex-end;
+
+          img {
+            width: 120px;
+            height: 120px;
+            border-radius: 4px;
+          }
+        }
+
+        .iconView {
+          display: flex;
+          flex-direction: column;
+          margin-left: 30px;
+          justify-content: flex-end;
+
+          img {
+            width: 70px;
+            height: 70px;
+            border-radius: 4px;
+          }
+        }
+
+        .tip {
+          display: flex;
+          align-items: flex-end;
+          margin-left: 30px;
+          font-size: 12px;
+
+          span {
+            line-height: 20px;
+          }
+        }
+      }
+      .optionBtn {
+        &::v-deep .el-button {
+          padding: 12px 40px;
+        }
+        .reset {
+          border: 1px solid #0079fe;
+          color: #0079fe;
+        }
+      }
+      &::v-deep .el-form-item__label {
+        color: #4b9bb7;
+      }
+
+      &::v-deep .el-input__inner {
+        background-color: #09152f;
+        border: 1px solid #17324c;
+      }
+
+      .addPerson {
+        display: flex;
+        list-style: none;
+        padding: 0;
+
+        li {
+          background-color: #cccccc;
+          width: 36px;
+          height: 36px;
+          border-radius: 50%;
+          color: #fff;
+          text-align: center;
+          font-size: 30px;
+          margin-left: 10px;
+        }
+      }
+
+      .el-form-item__content {
+        width: 400px;
+
+        .el-select {
+          width: 100%;
+        }
+      }
+
+      .optionHandleSp {
+        display: flex;
+
+        .areaNumber,
+        .moreNumber {
+          flex: 1;
+        }
+
+        .telNumber {
+          flex: 2;
+        }
+      }
     }
+  }
+
+  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/rectification/surveyList/index.vue b/src/views/operate/rectification/surveyList/index.vue
index 085739f..d6c82e8 100644
--- a/src/views/operate/rectification/surveyList/index.vue
+++ b/src/views/operate/rectification/surveyList/index.vue
@@ -1,290 +1,372 @@
 <template>
-    <div class="otherInterface">
-        <header>
-            <div class="headerTitle">杩愯惀绠$悊 >> 涓撻」鏁存不 > 鏅煡鍒楄〃</div>
-        </header>
-        <main>
-            <div class="mainHeader">
-                <div class="add">
-                    <el-button type="primary" icon="el-icon-plus">鏂板浠诲姟</el-button>
-                </div>
-                <div class="date-search">
-                    <span>鎸夊ぉ鏌ヨ:</span>
-                    <div class="mydate">
-                        <el-input placeholder="璇疯緭鍏ュ紑濮嬫椂闂�"></el-input>
-                        <div class="line">
-                            鈥斺�斺�� 鈥斺�斺��
-                        </div>
-                        <el-input placeholder="璇疯緭鍏ョ粨鏉熸椂闂�"></el-input>
-                    </div>
-                </div>
-                <div class="search">
-                    <el-input placeholder="璇疯緭鍏ユ爣棰樻垨鑰呬换鍔$紪鍙�"></el-input>
-                </div>
-                <div class="btn">
-                    <el-button icon="el-icon-plus" type="primary">鎼滅储</el-button>
-                    <el-button icon="el-icon-delete">閲嶇疆</el-button>
-                </div>
-            </div>
-            <div class="mainContent">
-                <!-- @selection-change="handleSelectionChange" -->
-                <!-- 鏁版嵁娓叉煋 -->
-                <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
-                    :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
-                    :row-class-name="tableRowClassName">
-                    <el-table-column type="selection" width="55">
-                    </el-table-column>
-                    <el-table-column label="浠诲姟缂栧彿" prop="applicationName" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="applicationType" label="闂绫诲瀷" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="websiteUrl" label="澶х被" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="applicationType" label="灏忕被" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="applicationType" label="琛楅亾" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="applicationType" label="绀惧尯" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="applicationType" label="浠诲姟鎻忚堪" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="applicationType" label="涓婃姤鏃堕棿" min-width="10">
-                    </el-table-column>
-                    <el-table-column label="鎿嶄綔" min-width="10">
-                        <template slot-scope="scope">
-                            <span @click="handleDelete(scope.row)">鏌ョ湅</span>
-                        </template>
-                    </el-table-column>
-                </el-table>
-                <!-- 鍒嗛〉 -->
-                <!-- <div class="pagination">
+  <div class="otherInterface">
+    <header>
+      <div class="headerTitle">杩愯惀绠$悊 >> 涓撻」鏁存不 > 鏅煡鍒楄〃</div>
+    </header>
+    <main>
+      <div class="mainHeader">
+        <div class="add">
+          <el-button type="primary" icon="el-icon-plus" @click="handleAdd()"
+            >鏂板浠诲姟</el-button
+          >
+        </div>
+        <div class="date-search">
+          <span>鎸夊ぉ鏌ヨ:</span>
+          <div class="block">
+            <el-date-picker
+              v-model="beginTime"
+              type="date"
+              placeholder="璇烽�夋嫨寮�濮嬫棩鏈�"
+            >
+            </el-date-picker>
+          </div>
+          <span>鈥斺�斺�� 鈥斺�斺��</span>
+          <div class="block">
+            <el-date-picker
+              v-model="endTime"
+              type="date"
+              placeholder="璇烽�夋嫨缁撴潫鏃ユ湡"
+            >
+            </el-date-picker>
+          </div>
+          <!-- <div class="mydate">
+            <el-input placeholder="璇疯緭鍏ュ紑濮嬫椂闂�"></el-input>
+            <div class="line">鈥斺�斺�� 鈥斺�斺��</div>
+            <el-input placeholder="璇疯緭鍏ョ粨鏉熸椂闂�"></el-input>
+          </div> -->
+        </div>
+        <div class="search">
+          <el-input placeholder="璇疯緭鍏ユ爣棰樻垨鑰呬换鍔$紪鍙�"></el-input>
+        </div>
+        <div class="btn">
+          <el-button icon="el-icon-plus" type="primary">鎼滅储</el-button>
+          <el-button icon="el-icon-delete">閲嶇疆</el-button>
+        </div>
+      </div>
+      <div class="mainContent">
+        <!-- @selection-change="handleSelectionChange" -->
+        <!-- 鏁版嵁娓叉煋 -->
+        <el-table
+          ref="multipleTable"
+          :data="tableData"
+          tooltip-effect="dark"
+          style="width: 100%"
+          :header-cell-style="{
+            background: '#06122c',
+            'font-size': '12px',
+            color: '#4b9bb7',
+            'font-weight': '650',
+            'line-height': '45px',
+          }"
+          :row-class-name="tableRowClassName"
+        >
+          <!-- <el-table-column type="selection" width="55">
+                    </el-table-column> -->
+          <el-table-column label="浠诲姟缂栧彿" prop="num" min-width="10">
+          </el-table-column>
+          <el-table-column prop="type" label="闂绫诲瀷" min-width="10">
+          </el-table-column>
+          <el-table-column prop="bigclass" label="澶х被" min-width="10">
+          </el-table-column>
+          <el-table-column prop="subclass" label="灏忕被" min-width="10">
+          </el-table-column>
+          <el-table-column prop="street" label="琛楅亾" min-width="10">
+          </el-table-column>
+          <el-table-column prop="community" label="绀惧尯" min-width="10">
+          </el-table-column>
+          <el-table-column prop="task" label="浠诲姟鎻忚堪" min-width="10">
+          </el-table-column>
+          <el-table-column prop="reportTime" label="涓婃姤鏃堕棿" min-width="10">
+          </el-table-column>
+          <el-table-column label="鎿嶄綔" min-width="10">
+            <template slot-scope="scope">
+              <span @click="handleView(scope.row)" style="cursor: pointer"
+                >鏌ョ湅</span
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- 鍒嗛〉 -->
+        <!-- <div class="pagination">
                     <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
                         :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
                         @next-click="handleNext">
                     </el-pagination>
                 </div> -->
-            </div>
-        </main>
-        <footer>
-            <!-- 鍒涘缓寮圭獥 -->
-            <el-dialog :visible.sync="dialogCreate" title="鏂板绗笁鏂规帴鍙�" width="45%" v-if="dialogCreate"
-                :before-close="handleClose">
-                <createInterface />
-            </el-dialog>
-            <!-- 鏌ョ湅寮圭獥 -->
-            <el-dialog :visible.sync="dialogUpdate" :title="updateFlag ?'淇敼绗笁鏂规帴鍙�':'鏌ョ湅绗笁鏂规帴鍙�'" width="45%"
-                v-if="dialogUpdate" :before-close="handleClose">
-                <viewInterface :updateFlag="updateFlag" :userInfo=userInfo />
-            </el-dialog>
-        </footer>
-    </div>
+      </div>
+    </main>
+    <footer>
+      <!-- 鍒涘缓寮圭獥 -->
+      <el-dialog
+        :visible.sync="dialogCreate"
+        title="鏂板"
+        width="45%"
+        v-if="dialogCreate"
+        :before-close="handleClose"
+      >
+        <createInterface @closeDialog="closeDialog" />
+      </el-dialog>
+      <!-- 鏌ョ湅寮圭獥 -->
+      <el-dialog
+        :visible.sync="dialogUpdate"
+        :title="updateFlag ? '缂栬緫' : '璇︽儏'"
+        width="45%"
+        v-if="dialogUpdate"
+        :before-close="handleClose"
+      >
+        <viewInterface :updateFlag="updateFlag" :userInfo="userInfo" />
+      </el-dialog>
+    </footer>
+  </div>
 </template>
 <script>
-import createInterface from './components/createInterface';
-import viewInterface from './components/viewInterface'
+import createInterface from "./components/createInterface";
+import viewInterface from "./components/viewInterface";
 export default {
-    components: {
-        createInterface, viewInterface
-    },
-    data() {
-        return {
-            tableData: [],
-            search: "",
-            dialogCreate: false,
-            dialogUpdate: false,
-            updateFlag: false,
-            userInfo: '',
-            date:'',
-            // totalNum: 200,
-            // pageSize: 10,
-            // currentPage: 1,
+  components: {
+    createInterface,
+    viewInterface,
+  },
+  data() {
+    return {
+      tableData: [
+        {
+          num: 1234,
+          type: "鍩庣绫讳簨浠�",
+          bigclass: "鍏朵粬",
+          subclass: "鍏朵粬",
+          street: "琛楅亾",
+          community: "绀惧尯",
+          task: "浠诲姟鎻忚堪",
+          reportTime: "2022-10-31 13:20",
+        },
+        {
+          num: 1234,
+          type: "鍩庣绫讳簨浠�",
+          bigclass: "鍏朵粬",
+          subclass: "鍏朵粬",
+          street: "琛楅亾",
+          community: "绀惧尯",
+          task: "浠诲姟鎻忚堪",
+          reportTime: "2022-10-31 13:20",
+        },
+        {
+          num: 1234,
+          type: "鍩庣绫讳簨浠�",
+          bigclass: "鍏朵粬",
+          subclass: "鍏朵粬",
+          street: "琛楅亾",
+          community: "绀惧尯",
+          task: "浠诲姟鎻忚堪",
+          reportTime: "2022-10-31 13:20",
+        },
+      ],
+      search: "",
+      dialogCreate: false,
+      dialogUpdate: false,
+      updateFlag: false,
+      userInfo: "",
+      date: "",
+      beginTime: "",
+      endTime: "",
+      // totalNum: 200,
+      // pageSize: 10,
+      // currentPage: 1,
+    };
+  },
+  created() {
+    this.getUserList();
+  },
+  methods: {
+    // 鑾峰彇鎺ュ彛鍒楄〃
+    getUserList() {
+      const that = this;
+      // const { currentPage, pageSize, search } = this;
+      this.dialogCreate = false;
+      this.$axios.get("sccg/system/portal/thirdApp/search").then((res) => {
+        const { code, data } = res;
+        if (code == 200) {
+          this.tableData = data;
         }
+      });
     },
-    created() {
-        this.getUserList();
+    // 璁剧疆琛ㄦ牸鏂戦┈绾�
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 == 0) {
+        return "warning-row";
+      } else {
+        return "success-row";
+      }
+      return "";
     },
-    methods: {
-        // 鑾峰彇鎺ュ彛鍒楄〃
-        getUserList() {
-            const that = this;
-            // const { currentPage, pageSize, search } = this;
-            this.dialogCreate = false;
-            this.$axios.get("sccg/system/portal/thirdApp/search").then(res => {
-                const { code, data } = res;
-                if (code == 200) {
-                    this.tableData = data;
-                }
-            })
-        },
-        // 璁剧疆琛ㄦ牸鏂戦┈绾�
-        tableRowClassName({ row, rowIndex }) {
-            if ((rowIndex + 1) % 2 == 0) {
-                return 'warning-row';
-            } else {
-                return 'success-row';
-            }
-            return '';
-        },
-        // 鎵撳紑鏂板鐣岄潰
-        handleAdd() {
-            this.dialogCreate = true;
-        },
-        // 鍒涘缓寮圭獥鍏抽棴
-        handleClose(done) {
-            const that = this;
-            this.$confirm('纭鍏抽棴锛�')
-                .then(_ => {
-                    that.dialogCreate = false;
-                    done();
-                })
-                .catch(_ => { });
-        },
-        // 鍒涘缓鏌ョ湅寮圭獥
-        handleView(rowData) {
-            this.userInfo = rowData;
-            this.dialogUpdate = true;
-        },
-        // 鍒犻櫎绗笁鏂规帴鍙�
-        handleDelete({ id }) {
-            console.log(id);
-            this.$axios.delete('sccg/system/portal/thirdApp/delete', {
-                params: {
-                    id
-                }
-            }).then(res => {
-                console.log(res);
-            })
-        }
-        // // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
-        // changeCurrentPage(page) {
-        //     this.currentPage = page;
-        //     this.getUserList();
-        // },
-        // // 涓婁竴椤电偣鍑讳簨浠�
-        // handlePrev(page) {
-        //     this.currentPage = page;
-        //     this.getUserList();
-        // },
-        // // 涓嬩竴椤电偣鍑讳簨浠�
-        // handleNext(page) {
-        //     this.currentPage = page;
-        //     this.getUserList();
-        // },
-    }
-}
+    // 鎵撳紑鏂板鐣岄潰
+    handleAdd() {
+      this.dialogCreate = true;
+    },
+    // 鍒涘缓寮圭獥鍏抽棴
+    handleClose(done) {
+      const that = this;
+      this.$confirm("纭鍏抽棴锛�")
+        .then((_) => {
+          that.dialogCreate = false;
+          done();
+        })
+        .catch((_) => {});
+    },
+    closeDialog({ flag, index }) {
+      console.log(flag);
+      index === 1 ? "" : "";
+      this.dialogCreate = flag;
+    },
+    // 鍒涘缓鏌ョ湅寮圭獥
+    handleView(rowData) {
+      console.log(rowData);
+      this.userInfo = rowData;
+      this.dialogUpdate = true;
+    },
+    // 鍒犻櫎绗笁鏂规帴鍙�
+    handleDelete({ id }) {
+      console.log(id);
+      this.$axios
+        .delete("sccg/system/portal/thirdApp/delete", {
+          params: {
+            id,
+          },
+        })
+        .then((res) => {
+          console.log(res);
+        });
+    },
+    // // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+    // changeCurrentPage(page) {
+    //     this.currentPage = page;
+    //     this.getUserList();
+    // },
+    // // 涓婁竴椤电偣鍑讳簨浠�
+    // handlePrev(page) {
+    //     this.currentPage = page;
+    //     this.getUserList();
+    // },
+    // // 涓嬩竴椤电偣鍑讳簨浠�
+    // handleNext(page) {
+    //     this.currentPage = page;
+    //     this.getUserList();
+    // },
+  },
+};
 </script>
 <!-- sccg/system/portal/thirdApp/search -->
 <style lang="scss" scoped>
 .otherInterface {
-    header {
+  header {
+    display: flex;
+    line-height: 60px;
+    justify-content: space-between;
+    padding: 0 20px;
+    color: #4b9bb7;
+    &::v-deep .el-button {
+      background-color: #eb5d01;
+      border: none;
+      color: #fff;
+      border-radius: 20px;
+    }
+  }
+
+  main {
+    padding: 10px 20px;
+
+    .mainHeader {
+      padding-left: 20px;
+      display: flex;
+      line-height: 60px;
+      color: #4b9bb7;
+      background-color: #09152f;
+      display: flex;
+      .add,
+      .search,
+      .btn {
+        flex: 1;
+      }
+      .date-search {
+        flex: 3;
         display: flex;
-        line-height: 60px;
-        justify-content: space-between;
-        padding: 0 20px;
+        .mydate {
+          display: flex;
+          .line {
+            margin: 0 10px 0 20px;
+          }
+        }
+      }
+      .el-input {
+        width: 180px;
+        height: 35px;
+        margin-left: 10px;
+
+        &::v-deep .el-input__inner {
+          background-color: #09152f;
+          border: 1px solid #17324c;
+          font-size: 12px;
+        }
+      }
+    }
+
+    .mainContent {
+      margin-top: 20px;
+
+      .el-table {
         color: #4b9bb7;
 
-        &::v-deep .el-button {
-            background-color: #eb5d01;
-            border: none;
-            color: #fff;
-            border-radius: 20px;
+        &::v-deep .el-table__empty-block {
+          background-color: #06122c;
         }
+
+        &::v-deep .el-table__empty-text {
+          color: #4b9bb7;
+        }
+
+        &::v-deep .warning-row {
+          background-color: #06122c;
+        }
+
+        &::v-deep .success-row {
+          background-color: #071f39;
+        }
+      }
+
+      .line {
+        padding: 0 5px;
+        // margin-top: -10px;
+      }
+    }
+  }
+
+  footer {
+    &::v-deep .el-dialog__header,
+    &::v-deep .el-dialog__body {
+      background-color: #06122c;
     }
 
-    main {
-        padding: 10px 20px;
-
-        .mainHeader {
-            padding-left: 20px;
-            display: flex;
-            line-height: 60px;
-            color: #4b9bb7;
-            background-color: #09152f;
-            display: flex;
-            .add,.search,.btn{
-                flex:1;
-            }
-            .date-search{
-                flex: 3;
-                display: flex;
-                .mydate{
-                    display: flex;
-                    .line{
-                        margin:0 10px 0 20px;
-                    }
-                }
-            }
-            .el-input {
-                width: 180px;
-                height: 35px;
-                margin-left: 10px;
-
-                &::v-deep .el-input__inner {
-                    background-color: #09152f;
-                    border: 1px solid #17324c;
-                    font-size: 12px;
-                }
-            }
-        }
-
-        .mainContent {
-            margin-top: 20px;
-
-            .el-table {
-                color: #4b9bb7;
-
-                &::v-deep .el-table__empty-block {
-                    background-color: #06122c;
-                }
-
-                &::v-deep .el-table__empty-text {
-                    color: #4b9bb7;
-                }
-
-                &::v-deep .warning-row {
-                    background-color: #06122c;
-                }
-
-                &::v-deep .success-row {
-                    background-color: #071f39;
-                }
-            }
-
-            .line {
-                padding: 0 5px;
-                // margin-top: -10px;
-            }
-        }
+    &::v-deep .el-dialog__header {
+      display: flex;
+      align-items: center;
+      background-color: #fff;
+      padding: 20px;
+      line-height: 60px;
     }
 
-    footer {
-
-        &::v-deep .el-dialog__header,
-        &::v-deep .el-dialog__body {
-            background-color: #06122c;
-        }
-
-        &::v-deep .el-dialog__header {
-            display: flex;
-            align-items: center;
-            background-color: #fff;
-            padding: 20px;
-            line-height: 60px;
-        }
-
-        &::v-deep .el-dialog__title {
-            color: #4b9bb7;
-        }
-
-        &::v-deep .el-dialog__close {
-            width: 20px;
-            height: 20px;
-            // color: #fff;
-        }
-
-        &::v-deep .el-dialog__body {
-            padding: 0;
-        }
+    &::v-deep .el-dialog__title {
+      color: #4b9bb7;
     }
+
+    &::v-deep .el-dialog__close {
+      width: 20px;
+      height: 20px;
+      // color: #fff;
+    }
+
+    &::v-deep .el-dialog__body {
+      padding: 0;
+    }
+  }
 }
 </style>
\ No newline at end of file
diff --git a/src/views/operate/rectification/taskList/index.vue b/src/views/operate/rectification/taskList/index.vue
index 2861eba..bc326e6 100644
--- a/src/views/operate/rectification/taskList/index.vue
+++ b/src/views/operate/rectification/taskList/index.vue
@@ -112,15 +112,41 @@
     methods: {
         // 鑾峰彇鎺ュ彛鍒楄〃
         getUserList() {
-            const that = this;
-            // const { currentPage, pageSize, search } = this;
-            this.dialogCreate = false;
-            this.$axios.get("sccg/system/portal/thirdApp/search").then(res => {
-                const { code, data } = res;
-                if (code == 200) {
-                    this.tableData = data;
-                }
-            })
+            // const that = this;
+            // // const { currentPage, pageSize, search } = this;
+            // this.dialogCreate = false;
+            // this.$axios.get("/sccg/task/list").then(res => {
+            //     const { code, data } = res;
+            //     if (code == 200) {
+            //         this.tableData = data;
+            //     }
+            // })
+
+            // let arr = [];
+            // const { currentPage, pageSize,context,messageStatus,messageKind } = this;
+            // await this.$axios({
+            //     method: 'post',
+            //     url: '/sccg/task/list',
+            //     data: {
+            //         body: "",
+            //         channelCode: messageKind === '00' ?'':messageKind,
+            //         createUser: '',
+            //         current: currentPage,
+            //         head: context,
+            //         messageType: "",
+            //         pageSize: pageSize,
+            //         randomCode: "",
+            //         remark: "",
+            //         sendTime: "",
+            //         status: messageStatus === 2 ? '':messageStatus,
+            //         targetFrom: "",
+            //         targetTo: ""
+            //     }
+            // })
+            //     .then(res => {
+            //         this.tableData = res.data;
+            //     })
+            // return arr;
         },
         // 璁剧疆琛ㄦ牸鏂戦┈绾�
         tableRowClassName({ row, rowIndex }) {
diff --git a/src/views/operate/sms/index.vue b/src/views/operate/sms/index.vue
new file mode 100644
index 0000000..e3bc8ac
--- /dev/null
+++ b/src/views/operate/sms/index.vue
@@ -0,0 +1,3 @@
+<template>
+    <router-view></router-view>
+</template>
\ No newline at end of file
diff --git a/src/views/operate/sms/smsIndex/index.vue b/src/views/operate/sms/smsIndex/index.vue
new file mode 100644
index 0000000..f511252
--- /dev/null
+++ b/src/views/operate/sms/smsIndex/index.vue
@@ -0,0 +1,632 @@
+<template>
+    <div class="userList">
+        <header>
+            <div class="header-nav">
+                <span class="nav-left">鏁版嵁绛涢��</span>
+                <span class="nav-right">楂樼骇鎼滅储</span>
+            </div>
+            <div class="header-content">
+                <div class="search">
+                    <span>杈撳叆鏌ヨ:</span>
+                    <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input>
+                </div>
+                <div class="message-status">
+                    <span>鐭俊鍥炴墽:</span>
+                    <el-select v-model="messageStatus" placeholder="璇烽�夋嫨">
+                        <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                    </el-select>
+                </div>
+                <!-- <div class="message-kind">
+                    <span>娑堟伅鍒嗙被:</span>
+                    <el-select v-model="messageKind" placeholder="璇烽�夋嫨娑堟伅鍒嗙被">
+                        <el-option v-for="item in kindList" :key="item.id" :label="item.columnName" :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div> -->
+                <div class="find">
+                    <el-button type="primary" icon="el-icon-search" @click="handleSearch">鏌ヨ</el-button>
+                    <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button>
+                </div>
+            </div>
+        </header>
+        <main>
+            <div class="mainContent">
+                <div class="main-nav">
+                    <span>鏁版嵁鍒楄〃</span>
+                    <el-button type="primary" icon="el-icon-plus" @click="dialogCreate = true">娣诲姞</el-button>
+                </div>
+                <!-- 鏁版嵁灞曠ず -->
+                <el-table ref="multipleTable"
+                    :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
+                    :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
+                    @selection-change="tableChange">
+                    <el-table-column type="selection" min-width="5">
+                    </el-table-column>
+                    <el-table-column label="ID" min-width="5">
+                        <template slot-scope="scope">{{ scope.row.id }}</template>
+                    </el-table-column>
+                    <el-table-column prop="head" label="鏍囬" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="updateTime" label="鍙戦�佹椂闂�" min-width="10">
+                        <template slot-scope="scope">
+                            <span>{{changeTime(scope.row)}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="targetFrom" label="鍙戦�佽处鍙�" min-width="15">
+                    </el-table-column>
+                    <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5">
+                        <template slot-scope="scope">
+                            {{scope.row.status === 0 ? '鍙戦�佸け璐�' :'鍙戦�佹垚鍔�'}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
+                        <template slot-scope="scope">
+                            <div class="operation">
+                                <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false"
+                                    @click="handleDelete([scope.row.id])">鍒犻櫎</el-link>
+                                <el-link icon="el-icon-edit" class="leftPx" :underline="false" @click="handleEdit(scope.row)">閲嶆柊鍙戦��</el-link>
+                            </div>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <!-- 鏂板缓娑堟伅 -->
+                <!-- <el-dialog title="鏂板缓娑堟伅" :visible.sync="dialogCreate" v-if="dialogCreate" width="80%"
+                    :before-close="handleConfirmClose">
+                    <MyCreate @closeMyDialog="closeDialog"></MyCreate>
+                </el-dialog> -->
+                <!-- 娑堟伅璇︽儏 -->
+                <!-- <el-dialog title="娑堟伅璇︽儏" :visible.sync="dialogView" v-if="dialogView" width="45%"
+                    :before-close="handleClose">
+                    <MyView @closeDialog="closeDialog" :myinfo="info">></MyView>
+                </el-dialog> -->
+                <!-- 缂栬緫椤甸潰 -->
+                <!-- <el-dialog title="缂栬緫娑堟伅" :visible.sync="dialogEdit" v-if="dialogEdit" width="80%"
+                    :before-close="handleClose">
+                    <MyEdit  @closeDialog="closeDialog" :myDataRow="info"></MyEdit>
+                </el-dialog> -->
+                <!-- tools -->
+                <div class="tools">
+                    <div class="funs">
+                        <div class="funsItem funs-sp">
+                            <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
+                        </div>
+                        <div class="funsItem funs-sp">
+                            <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
+                        </div>
+                        <div class="funsItem">
+                            <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange">
+                                <el-option v-for="item in options" :key="item.value" :label="item.label"
+                                    :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </div>
+                    <div class="pagination">
+                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
+                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"
+                            >
+                        </el-pagination>
+                    </div>
+                </div>
+            </div>
+        </main>
+    </div>
+</template>
+<script>
+import helper from '@/utils/mydate'
+export default {
+    components: {
+        // MyView, MyCreate,MyEdit
+    },
+    data() {
+        return {
+            tableData: [],
+            context: "",
+            dialogEdit:false,
+            dialogCreate: false,
+            dialogView: false,
+            totalNum: null,
+            pageSize: 10,
+            currentPage: 1,
+            all: false,
+            unsame: false,
+            myIdx: 0,
+            preMyIdx: 0,
+            options: [
+                {
+                    value: 0,
+                    label: '鎵归噺鎿嶄綔',
+                    disabled: true,
+                },
+                {
+                    value: 1,
+                    label: '鎵归噺鍚敤',
+                },
+                {
+                    value: 2,
+                    label: '鎵归噺绂佺敤',
+                },
+                {
+                    value: 3,
+                    label: '鎵归噺鍒犻櫎',
+                }
+            ],
+            tempList: [],
+            messageStatus: 2,
+            messageKind: '00',
+            statusList: [
+                {
+                    label: '鍏ㄩ儴',
+                    value: 2,
+                },
+                {
+                    label: '鍙戦�佸け璐�',
+                    value: 0,
+                },
+                {
+                    label: '鍙戦�佹垚鍔�',
+                    value: 1,
+                }
+            ],
+            kindList: [
+                {
+                    id:'00',
+                    columnName:'鍏ㄩ儴',
+                },
+                {
+                    id:'01',
+                    columnName:'绔欏唴淇�',
+                },
+                {
+                    id:'02',
+                    columnName:'閭欢',
+                },
+                {
+                    id:'03',
+                    columnName:'鐭俊',
+                }
+            ]
+        }
+    },
+    created() {
+        const {setTableData} = this
+        setTableData();
+    },
+    methods: {
+        // 鏌ヨ
+        handleSearch(){         
+            this.setTableData();
+        },
+        // 閲嶇疆
+        handleReset(){
+
+        },
+        // 鏌ョ湅
+        handleView(data){
+            this.info = data;
+            this.dialogView = true;       
+        },
+         // 缂栬緫
+        handleEdit(data){
+            this.info = data;
+            this.dialogEdit = true;       
+        },
+        // 鍒犻櫎淇℃伅
+        handleDelete(idarr) {
+            this.$confirm('纭鍒犻櫎?')
+                .then(_ => {
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/message/delete?ids=' + idarr,
+                    })
+                        .then(res => {
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '鍒犻櫎鎴愬姛',
+                                })
+                                this.setTableData();
+                            } else {
+                                this.$message({
+                                    type: 'error',
+                                    message: res.message
+                                })
+                            }
+                        })
+                })
+        },
+        // 璁剧疆琛ㄦ牸鏁版嵁
+        async setTableData() {
+            const arr = await this.getMessageList();
+            this.tableData = arr.records;
+            this.totalNum = arr.total
+        },
+        // 鑾峰彇娑堟伅鏁版嵁
+        async getMessageList() {
+            let arr = [];
+            const { currentPage, pageSize,context,messageStatus,messageKind } = this;
+            await this.$axios({
+                method: 'post',
+                url: 'sccg/message/list',
+                data: {
+                    body: "",
+                    channelCode: '03',
+                    createUser: '',
+                    current: currentPage,
+                    head: context,
+                    messageType: "",
+                    pageSize: pageSize,
+                    randomCode: "",
+                    remark: "",
+                    sendTime: "",
+                    status: messageStatus === 2 ? '':messageStatus,
+                    targetFrom: "",
+                    targetTo: ""
+                }
+            })
+                .then(res => {
+                    arr = res.data;
+                })
+            return arr;
+        },
+        // 鎵归噺涓嬫媺妗嗘搷浣�
+        async selectChange(list) {
+            console.log(this.tempList);
+            if (this.tempList.length !== 0) {
+                this.preMyIdx = list;
+                if (list === 3) {
+                    await this.handleDelete(this.tempList);
+                } else if (list === 2) {
+                    await this.mulUpdateStatus(this.tempList, 0);
+                } else {
+                    await this.mulUpdateStatus(this.tempList, 1);
+                }
+                this.myIdx = 0;
+            } else {
+                this.myIdx = this.preMyIdx;
+                this.$message({
+                    type: 'warning',
+                    message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
+                })
+            }
+        },
+        // 鎵归噺鎿嶄綔
+        mulUpdateStatus(idArr, flag) {
+            this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?')
+                .then(_ => {
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag,
+                    })
+                        .then(res => {
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�',
+                                })
+                                this.getUserList();
+                            } else {
+                                this.$message({
+                                    type: 'error',
+                                    message: res.message
+                                })
+                            }
+                            console.log(res);
+                        })
+                })
+                .catch(err => { console.log(err) })
+        },
+        // 琛ㄦ牸鐩戝惉
+        tableChange(list) {
+            this.tempList = [];
+            list.forEach(item => {
+                this.tempList.push(item.id);
+            })
+            if (list.length === this.tableData.length) {
+                this.all = true;
+            } else {
+                this.all = false
+            }
+        },
+        // 淇敼鏃堕棿鏍煎紡
+        changeTime({ updateTime }) {
+            return helper(updateTime);
+        },
+        // 鍏ㄩ��
+        selectAll() {
+            this.$refs.multipleTable.toggleAllSelection();
+        },
+        // 鍙嶉��
+        disSame(list) {
+            list.forEach(row => {
+                this.$refs.multipleTable.toggleRowSelection(row)
+            })
+        },
+        // 璁剧疆琛ㄦ牸鏂戦┈绾�
+        tableRowClassName({ row, rowIndex }) {
+            if ((rowIndex + 1) % 2 == 0) {
+                return 'warning-row';
+            } else {
+                return 'success-row';
+            }
+            return '';
+        },
+        // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+        changeCurrentPage(page) {
+            this.currentPage = page;
+            this.setTableData();
+        },
+        // 鍏抽棴寮圭獥
+        handleClose(done) {
+            done();
+        },
+        // 纭鍏抽棴寮圭獥
+        handleConfirmClose(done) {
+            this.$confirm('纭鍏抽棴?')
+                .then(_ => {
+                    done();
+                })
+                .catch(err => {
+                    console.log(err);
+                })
+        },
+        // 鑷畾涔夊叧闂脊绐�
+        closeDialog({ flag, index }) {
+            this.dialogCreate = flag;
+            this.dialogView = flag;
+            if (index === 1) {
+                this.setTableData();
+            }
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.userList {
+    text-align: left;
+    margin: 10px 20px;
+    color: #4b9bb7;
+
+    header {
+        background-color: #09152f;
+        border: 1pox solid #fff;
+
+        .header-nav {
+            line-height: 40px;
+            padding: 0 30px;
+            display: flex;
+            justify-content: space-between;
+            font-weight: 650;
+        }
+
+        .header-content {
+            padding: 0 40px;
+            display: flex;
+            line-height: 100px;
+            justify-content: space-between;
+            align-items: center;
+
+            .search,
+            .message-status,
+            .message-kind {
+                display: flex;
+                justify-content: flex-start;
+
+                span {
+                    flex: 1;
+                }
+
+                .el-input {
+                    flex: 2;
+                    color: #1d3f57;
+
+                    &::v-deep .el-input__inner {
+                        background-color: #09152f;
+                        border: 1px solid #17324c;
+                    }
+                }
+
+            }
+
+            .findBtn {
+                line-height: 100px;
+                margin-left: 15px;
+                display: flex;
+                align-items: center;
+                margin-top: -2px;
+
+                .el-button {
+                    padding: 12px 25px;
+                    border-radius: 20px;
+                }
+            }
+        }
+    }
+
+    main {
+        background-color: #09152f;
+        margin-top: 20px;
+        padding-bottom: 50px;
+        border: 1pox solid #fff;
+
+        .el-link {
+            color: #4b9bb7;
+        }
+
+        .leftPx {
+            margin-left: 10px;
+        }
+
+        .mainTitle {
+            line-height: 60px;
+        }
+
+        .main-nav {
+            line-height: 40px;
+            display: flex;
+            padding: 10px;
+            justify-content: space-between;
+        }
+
+        .tools {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            padding: 0 20px;
+
+            .funs {
+                display: flex;
+
+                .funs-sp {
+                    border: 1px solid #17324c;
+                }
+
+                .funsItem {
+                    line-height: 28px;
+                    display: flex;
+                    align-items: center;
+
+                    border-radius: 4px;
+                    font-size: 12px;
+                    margin-left: 10px;
+
+                    .el-checkbox {
+                        width: 80px;
+                        padding: 0 10px;
+                    }
+
+                    .el-select {
+                        width: 120px;
+                    }
+
+                    &::v-deep .el-input__inner {
+                        border: none;
+                        background-color: #09152f;
+                    }
+
+                    &:hover {
+                        border: 1px solid #4b9bb7;
+                    }
+
+                    &:hover .el-checkbox {
+                        color: #4b9bb7;
+                    }
+                }
+
+            }
+
+            .pagination {
+                margin-top: 50px;
+                display: flex;
+                line-height: 50px;
+                justify-content: center;
+
+                .el-pagination {
+
+                    &::v-deep li,
+                    &::v-deep .btn-prev,
+                    &::v-deep .btn-next {
+                        background-color: #071f39;
+                        color: #4b9bb7;
+                    }
+
+                    &::v-deep .active {
+                        background-color: #409eff;
+                        color: #fff;
+                    }
+                }
+            }
+        }
+
+        .el-table {
+            color: #4b9bb7;
+            font-size: 10px;
+
+            &::v-deep .el-table__empty-block {
+                background-color: #09152f;
+            }
+
+            &::v-deep .el-table__empty-block {
+                color: #4b9bb7;
+            }
+
+            .operation {
+                display: flex;
+
+                .line {
+                    padding: 0 5px;
+                }
+
+                span:hover {
+                    cursor: pointer;
+                }
+            }
+        }
+
+        .el-table::v-deep .warning-row {
+            background: #06122c;
+        }
+
+        .el-table::v-deep .success-row {
+            background: #071f39;
+        }
+
+        &::v-deep .switchStyle .el-switch__label {
+            position: absolute;
+            display: none;
+            color: #fff;
+        }
+
+        &::v-deep .el-switch__core {
+            background-color: rgba(166, 166, 166, 1);
+        }
+
+        &::v-deep .switchStyle .el-switch__label--left {
+            z-index: 9;
+            left: 20px;
+        }
+
+        &::v-deep .switchStyle .el-switch__label--right {
+            z-index: 9;
+            left: 4px;
+        }
+
+        &::v-deep .switchStyle .el-switch__label.is-active {
+            display: block;
+        }
+
+        &::v-deep .switchStyle.el-switch .el-switch__core,
+        &::v-deep .el-switch .el-switch__label {
+            width: 50px !important;
+        }
+    }
+
+    &::v-deep .el-dialog__header,
+    &::v-deep .el-dialog__body {
+        background-color: #06122c;
+    }
+
+    &::v-deep .el-dialog__header {
+        display: flex;
+        align-items: center;
+        background-color: #fff;
+        padding: 20px;
+        line-height: 60px;
+    }
+
+    &::v-deep .el-dialog__title {
+        color: #4b9bb7;
+    }
+
+    &::v-deep .el-dialog__close {
+        width: 20px;
+        height: 20px;
+        // color: #fff;
+    }
+
+    &::v-deep .el-dialog__body {
+        padding: 0;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/sms/smsTemplate/createTemplate/index.vue b/src/views/operate/sms/smsTemplate/createTemplate/index.vue
new file mode 100644
index 0000000..5720e60
--- /dev/null
+++ b/src/views/operate/sms/smsTemplate/createTemplate/index.vue
@@ -0,0 +1,432 @@
+<template>
+    <div class="createUser">
+        <main>
+            <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules"
+                    label-position="right">
+                    <!-- 娑堟伅鏍忕洰 -->
+                    <el-form-item class="optionItem" label="妯℃澘绫诲瀷:" prop="messageType">
+                        <div class="message-item">
+                            <div class="message-item__left">
+                                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨">
+                                    <el-option v-for="item in colList" :key="item.id" :label="item.columnName"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </div>                       
+                        </div>
+                    </el-form-item>
+                    <!-- 娑堟伅鏍囬 -->
+                    <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head">
+                        <div class="message-item__left">
+                            <el-input v-model="role.head" placeholder="璇烽�夋嫨娑堟伅鏍囬"></el-input>
+                        </div>
+                    </el-form-item>
+                    <!-- 鎺ユ敹瀵硅薄 -->
+                    <!-- <el-form-item class="optionItem" label="鎺ユ敹瀵硅薄:" prop="targetTo">
+                        <div class="message-item__left">
+                            <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹瀵硅薄" >
+                                <el-option :value="role.targetTo">
+                                    <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
+                                        @check="handleCheck" default-expand-all node-key="id">
+                                    </el-tree>
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </el-form-item> -->
+                    <!-- 娑堟伅鍐呭 -->
+                    <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
+                        <MyEditor ref="edit" @getMyBody="getMyBody"></MyEditor>
+                        <!-- <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> -->
+                    </el-form-item>
+                    <!-- 鎻愰啋鏂瑰紡 -->
+                    <!-- <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode">
+                        <el-radio-group v-model="role.channelCode">
+                            <el-radio label="01">绔欏唴淇�</el-radio>
+                            <el-radio label="02">閭欢</el-radio>
+                            <el-radio label="03">鐭俊</el-radio>
+                        </el-radio-group>
+                        <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span>
+                    </el-form-item> -->
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" @click.native.prevent="handleSubmit(0)" class="btn save">淇濆瓨
+                            </el-button>
+                            <!-- <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷
+                            </el-button>
+                            <el-button type="primary" @click.native.prevent="handleView" class="btn submit">棰勮
+                            </el-button> -->
+                            <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+                <!-- 鏂板鏍忕洰 -->
+                <el-dialog title="娣诲姞鏍忕洰" :visible.sync="dialogCreate" v-if="dialogCreate" width="60%"
+                    :before-close="handleConfirmClose" append-to-body>
+                    <MyColumnAdd @closeDialog="closeDialog"></MyColumnAdd>
+                </el-dialog>
+                <!-- 棰勮娑堟伅 -->
+                <el-dialog title="娑堟伅棰勮" :visible.sync="dialogView" v-if="dialogView" width="60%"
+                    :before-close="handleConfirmClose" append-to-body>
+                    <MyColView  :info="info" @closeDialog="closeDialog"></MyColView>
+                </el-dialog>
+            </div>
+        </main>
+    </div>
+</template>
+<script>
+import MyEditor from '@/components/edit'
+export default {
+    components: { MyEditor, },
+    data() {
+        const validateNickname = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error("璇峰~鍐欐秷鎭爮鐩�"));
+            } else {
+                callback();
+            }
+        };
+        const validatePass = (rule, value, callback) => {
+            if (!value) {
+                callback();
+            } else {
+                callback();
+            }
+        };
+        const validateTruename = (rule, value, callback) => {
+            if (value.length !== 0) {
+                callback();
+            } else {
+                callback(new Error('璇烽�夋嫨鎺ユ敹瀵硅薄'));
+            }
+        };
+        return {
+            role: {
+                messageType: '',
+                head: '',
+                targetTo: '',
+                targetFrom: null,
+                body: '',
+                channelCode: '01',
+            },
+            createRoleRules: {
+                messageType: [
+                    { required: true, trigger: "blur", validator: validateNickname },
+                ],
+                head: [
+                    { required: false, trigger: "blur", validator: validatePass },
+                ],
+                targetTo: [
+                    { required: false, trigger: "blur", validator: validateTruename },
+                ],
+            },
+            colList: [],
+            departList: [],
+            typeList: [],
+            dialogCreate: false,
+            dialogView: false,
+            defaultProps: {
+                children: 'children',
+                label: 'departName',
+                // disabled: function (data, node) {
+                //     if (data.createTime) {
+                //         return !data.leaf
+                //     }
+                // }
+            },
+            checkedList: [],
+            tempNameArr:[],
+            info:{},
+            sendUser:""
+        }
+    },
+    created() {
+        this.setColumnList();
+        this.setDepartList();
+        this.getLoginUserInfo();
+    },
+    methods: {
+        // 鍏抽棴寮圭獥
+        handleConfirmClose(done) {
+            this.$confirm('纭鍏抽棴?')
+                .then(_ => {
+                    done();
+                })
+        },
+        // 璁剧疆鏍忕洰
+        async setColumnList() {
+            this.colList = [{"id":"1","columnName":"楠岃瘉鐮佹ā鏉�"},{"id":"2","columnName":"娲诲姩妯℃澘"}];
+        },
+        // 鑾峰彇鏍忕洰
+        async getColumnList() {
+            let arr;
+            await this.$axios({
+                method: 'get',
+                url: 'sccg/message_column/getAllColumn'
+            })
+                .then(res => {
+                    console.log(res);
+                    arr = res.data;
+                })
+            return arr;
+        },
+        // 鍏抽棴寮圭獥
+        closeDialog({ flag, index }) {
+            this.dialogCreate = flag;
+            if (index === 1) {
+                // 閲嶆柊璁剧疆鏍忕洰
+                this.setColumnList();
+            }
+        },
+        // 鑾峰彇閮ㄩ棬鏍�
+        async getDepartList() {
+            let arr
+            await this.$axios({
+                method: 'get',
+                url: 'sccg/depart/tree'
+            })
+                .then(res => {
+                    arr = res.data
+                })
+            return arr;
+        },
+        // 璁剧疆閮ㄩ棬鏍�
+        async setDepartList() {
+            this.departList = await this.filterDepartList();
+        },
+        // 澶勭悊閮ㄩ棬鏍�
+        async filterDepartList() {
+            let arr = await this.getDepartList();
+            const { setChildren } = this;
+            // console.log(setChildren);
+            arr.forEach(item => {
+                setChildren(item);
+            })
+            return arr;
+        },
+        // 閫掑綊children
+        setChildren(obj) {
+            if (obj.children !== null) {
+                if (obj.children.length !== 0) {
+                    obj.children.forEach(item => {
+                        return this.setChildren(item);
+                    })
+                }
+            } else {
+                if (obj.userInfoDTOS.length !== 0) {
+                    obj.children = [];
+                    obj.userInfoDTOS.forEach(item => {
+                        obj.children.push({ id: item.userId, departName: item.username })
+                    })
+                }
+            }
+        },
+        // 閫変腑id
+        handleCheck(data, node) {
+            let arr = [],nameArr = []
+            console.log(node.checkedNodes)
+            node.checkedNodes.forEach(item => {
+                if(!item.hasOwnProperty('departType')){
+                    arr.push(item.id)
+                    nameArr.push(item.departName)
+                }
+            })
+            this.checkedList = arr
+            this.tempNameArr = nameArr
+            console.log(this.tempNameArr)
+            this.role.targetTo = arr.length + '浜�'
+        },
+        // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
+        handleSubmit(mystatus) {
+            this.$refs.user.validate((valid) => {
+                if (valid) {
+                    const { role, checkedList } = this;
+                    console.log(checkedList);
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/message_sms_template/addSmsTemplate',
+                        data: {
+                            body: role.body,
+                            channelCode: `${role.channelCode}`,
+                            title: role.head,
+                            type: role.messageType,
+                            sendTime: new Date(),
+                            targetTo: checkedList.join(','),
+                            targetFrom: `${role.targetFrom}`,
+                            status: mystatus,
+                        }
+                    })
+                        .then(res => {
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: mystatus === 1 ? '鍙戦�佹垚鍔�' : '淇濆瓨鎴愬姛',
+                                })
+                                this.$emit('closeMyDialog', { flag: false, index: 1 });
+                            }
+                        })
+                } else {
+                    return false;
+                }
+            })
+        },
+        // 鑾峰緱娑堟伅浣�
+        getMyBody(obj) {
+            console.log(obj);
+            this.role.body = obj;
+        },
+        // 閲嶇疆琛ㄥ崟
+        handleReset() {
+            this.$refs.edit.editor.txt.clear();
+            // this.$refs.edit.wangEditor.txt.html('<p><br></p>') 
+            this.setDepartList();
+            this.$refs.user.resetFields();
+        },
+        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅
+        getLoginUserInfo() {
+            const name = sessionStorage.getItem('name');
+            this.$axios({
+                method: 'get',
+                url: 'sccg/admin/info?name=' + name,
+            })
+                .then(res => {
+                    this.role.targetFrom = res.data.userId
+                    this.sendUser = res.data.username
+                })
+        },
+        // 娑堟伅棰勮
+        handleView() {
+            this.$refs.user.validate((valid) => {
+                if (valid) {
+                    const { role,getColText,tempNameArr,sendUser } = this
+                    this.dialogView = true;
+                    let info = {}
+                    // 鑾峰緱鏍忕洰娑堟伅
+                    info.channelCode = role.channelCode === '01'? '绔欏唴淇�': role.channelCode === '02' ? '閭欢':'鐭俊'
+                    info.messageType = getColText(role.messageType)
+                    info.body = role.body
+                    info.head = role.head
+                    info.targetTo = tempNameArr
+                    info.targetFrom = sendUser
+                    this.info = info
+                } else {
+                    return false
+                }
+            })
+        },
+        // 鑾峰緱鏍忕洰娑堟伅
+        getColText(id){
+            console.log(id)
+            const {colList} = this
+            let str = ''
+            colList.forEach(item=>{
+                item.id === id ? str = item.columnName : '' 
+            })
+            return str
+        }
+    },
+    props: ['closeMyDialog']
+}
+</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;
+            &:deep(.el-dialog__title) {
+                color: #4b9bb7;
+            }
+            &::v-deep .el-form-item__label {
+                color: #4b9bb7;
+            }
+
+            &::v-deep .el-input__inner {
+                width: 400px;
+                background-color: #09152f;
+                border: 1px solid #17324c;
+            }
+
+            .message-item__left {
+                width: 400px;
+            }
+
+            .message-add {
+                &:hover {
+                    cursor: pointer;
+                }
+            }
+
+            .el-form-item__content :deep(.el-select) {
+                width: 400px;
+            }
+
+            :deep(.el-input) {
+                width: 400px;
+            }
+
+            .message-item {
+                display: flex;
+
+                span {
+                    margin-left: 20px;
+                    color: #4b9bb7;
+                }
+            }
+
+            .message-tip {
+                margin-left: 20px;
+            }
+
+            :deep(.el-input--suffix) {
+                width: 400px;
+            }
+
+            &::v-deep .el-textarea__inner {
+                background-color: #09152f;
+                border: 1px solid #17324c;
+            }
+
+            .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;
+
+                .btn {
+                    padding: 12px 50px;
+                }
+            }
+
+        }
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/sms/smsTemplate/index.vue b/src/views/operate/sms/smsTemplate/index.vue
new file mode 100644
index 0000000..b63c1a6
--- /dev/null
+++ b/src/views/operate/sms/smsTemplate/index.vue
@@ -0,0 +1,640 @@
+<template>
+    <div class="userList">
+        <header>
+            <div class="header-nav">
+                <span class="nav-left">鏁版嵁绛涢��</span>
+                <span class="nav-right">楂樼骇鎼滅储</span>
+            </div>
+            <div class="header-content">
+                <div class="search">
+                    <span>杈撳叆鏌ヨ:</span>
+                    <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input>
+                </div>
+                <div class="message-status">
+                    <span>妯℃澘绫诲瀷:</span>
+                    <el-select v-model="messageStatus" placeholder="璇烽�夋嫨">
+                        <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                    </el-select>
+                </div>
+                <!-- <div class="message-kind">
+                    <span>娑堟伅鍒嗙被:</span>
+                    <el-select v-model="messageKind" placeholder="璇烽�夋嫨娑堟伅鍒嗙被">
+                        <el-option v-for="item in kindList" :key="item.id" :label="item.columnName" :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div> -->
+                <div class="find">
+                    <el-button type="primary" icon="el-icon-search" @click="handleSearch">鏌ヨ</el-button>
+                    <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button>
+                </div>
+            </div>
+        </header>
+        <main>
+            <div class="mainContent">
+                <div class="main-nav">
+                    <span>鏁版嵁鍒楄〃</span>
+                    <el-button type="primary" icon="el-icon-plus" @click="dialogCreate = true">娣诲姞</el-button>
+                </div>
+                <!-- 鏁版嵁灞曠ず -->
+                <el-table ref="multipleTable"
+                    :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
+                    :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
+                    @selection-change="tableChange">
+                    <el-table-column type="selection" min-width="5">
+                    </el-table-column>
+                    <el-table-column label="ID" min-width="5">
+                        <template slot-scope="scope">{{ scope.row.id }}</template>
+                    </el-table-column>
+                    <el-table-column prop="title" label="鏍囬" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10">
+                        <template slot-scope="scope">
+                            <span>{{changeTime(scope.row)}}</span>
+                        </template>
+                    </el-table-column>
+                    <!-- <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15">
+                    </el-table-column> -->
+                    <el-table-column prop="type" label="妯℃澘绫诲瀷" min-width="10">
+                        <template slot-scope="scope">
+                            <span>{{scope.row.type === 1 ? '楠岃瘉鐮佹ā鏉�':scope.row.type
+                            ===2?"娲诲姩妯℃澘":'鍏朵粬妯℃澘'}}</span>
+                        </template>
+                    </el-table-column>
+                    <!-- <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5">
+                        <template slot-scope="scope">
+                            {{scope.row.status === 0 ? '鏈彂甯�' :'宸插彂甯�'}}
+                        </template>
+                    </el-table-column> -->
+                    <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
+                        <template slot-scope="scope">
+                            <div class="operation">
+                                <el-link icon="el-icon-view" :underline="false" @click="handleView(scope.row)">鏌ョ湅</el-link>
+                                <el-link icon="el-icon-edit" class="leftPx" :underline="false" @click="handleEdit(scope.row)">缂栬緫</el-link>
+                                <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false"
+                                    @click="handleDelete([scope.row.id])">鍒犻櫎</el-link>
+                            </div>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <!-- 鏂板缓娑堟伅 -->
+                <el-dialog title="鏂板缓鐭俊妯℃澘" :visible.sync="dialogCreate" v-if="dialogCreate" width="80%"
+                    :before-close="handleConfirmClose">
+                    <MyCreate @closeMyDialog="closeDialog"></MyCreate>
+                </el-dialog>
+                <!-- 娑堟伅璇︽儏 -->
+                <!-- <el-dialog title="娑堟伅璇︽儏" :visible.sync="dialogView" v-if="dialogView" width="45%"
+                    :before-close="handleClose">
+                    <MyView @closeDialog="closeDialog" :myinfo="info">></MyView>
+                </el-dialog> -->
+                <!-- 缂栬緫椤甸潰 -->
+                <!-- <el-dialog title="缂栬緫娑堟伅" :visible.sync="dialogEdit" v-if="dialogEdit" width="80%"
+                    :before-close="handleClose">
+                    <MyEdit  @closeDialog="closeDialog" :myDataRow="info"></MyEdit>
+                </el-dialog> -->
+                <!-- tools -->
+                <div class="tools">
+                    <div class="funs">
+                        <div class="funsItem funs-sp">
+                            <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
+                        </div>
+                        <div class="funsItem funs-sp">
+                            <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
+                        </div>
+                        <div class="funsItem">
+                            <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange">
+                                <el-option v-for="item in options" :key="item.value" :label="item.label"
+                                    :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </div>
+                    <div class="pagination">
+                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
+                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"
+                            >
+                        </el-pagination>
+                    </div>
+                </div>
+            </div>
+        </main>
+    </div>
+</template>
+<script>
+import helper from '@/utils/mydate'
+import MyCreate from './createTemplate'
+export default {
+    components: {
+         MyCreate,
+    },
+    data() {
+        return {
+            tableData: [],
+            context: "",
+            dialogEdit:false,
+            dialogCreate: false,
+            dialogView: false,
+            totalNum: null,
+            pageSize: 10,
+            currentPage: 1,
+            all: false,
+            unsame: false,
+            myIdx: 0,
+            preMyIdx: 0,
+            options: [
+                {
+                    value: 0,
+                    label: '鎵归噺鎿嶄綔',
+                    disabled: true,
+                },
+                {
+                    value: 1,
+                    label: '鎵归噺鍚敤',
+                },
+                {
+                    value: 2,
+                    label: '鎵归噺绂佺敤',
+                },
+                {
+                    value: 3,
+                    label: '鎵归噺鍒犻櫎',
+                }
+            ],
+            tempList: [],
+            messageStatus: 0,
+            messageKind: '00',
+            statusList: [
+                {
+                    label: '鍏ㄩ儴',
+                    value: 0,
+                },
+                {
+                    label: '楠岃瘉鐮佹ā鏉�',
+                    value: 1,
+                },
+                {
+                    label: '娲诲姩妯℃澘',
+                    value: 2,
+                }
+            ],
+            kindList: [
+                {
+                    id:'00',
+                    columnName:'鍏ㄩ儴',
+                },
+                {
+                    id:'01',
+                    columnName:'绔欏唴淇�',
+                },
+                {
+                    id:'02',
+                    columnName:'閭欢',
+                },
+                {
+                    id:'03',
+                    columnName:'鐭俊',
+                }
+            ]
+        }
+    },
+    created() {
+        const {setTableData} = this
+        setTableData();
+    },
+    methods: {
+        // 鏌ヨ
+        handleSearch(){         
+            this.setTableData();
+        },
+        // 閲嶇疆
+        handleReset(){
+
+        },
+        // 鏌ョ湅
+        handleView(data){
+            this.info = data;
+            this.dialogView = true;       
+        },
+         // 缂栬緫
+        handleEdit(data){
+            this.info = data;
+            this.dialogEdit = true;       
+        },
+        // 鍒犻櫎淇℃伅
+        handleDelete(idarr) {
+            this.$confirm('纭鍒犻櫎?')
+                .then(_ => {
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/message/delete?ids=' + idarr,
+                    })
+                        .then(res => {
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '鍒犻櫎鎴愬姛',
+                                })
+                                this.setTableData();
+                            } else {
+                                this.$message({
+                                    type: 'error',
+                                    message: res.message
+                                })
+                            }
+                        })
+                })
+        },
+        // 璁剧疆琛ㄦ牸鏁版嵁
+        async setTableData() {
+            const arr = await this.getMessageList();
+            this.tableData = arr.records;
+            this.totalNum = arr.total
+        },
+        // 鑾峰彇娑堟伅鏁版嵁
+        async getMessageList() {
+            let arr = [];
+            const { currentPage, pageSize,context,messageStatus,messageKind } = this;
+            await this.$axios({
+                method: 'post',
+                url: 'sccg/message_sms_template/list',
+                data: {
+                    body: "",
+                    channelCode: messageKind === '00' ?'':messageKind,
+                    createUser: '',
+                    current: currentPage,
+                    title: context,
+                    messageType: "",
+                    pageSize: pageSize,
+                    randomCode: "",
+                    remark: "",
+                    sendTime: "",
+                    type: messageStatus === 0 ? '':messageStatus,
+                    targetFrom: "",
+                    targetTo: ""
+                }
+            })
+                .then(res => {
+                    arr = res.data;
+                })
+            return arr;
+        },
+        // 鎵归噺涓嬫媺妗嗘搷浣�
+        async selectChange(list) {
+            console.log(this.tempList);
+            if (this.tempList.length !== 0) {
+                this.preMyIdx = list;
+                if (list === 3) {
+                    await this.handleDelete(this.tempList);
+                } else if (list === 2) {
+                    await this.mulUpdateStatus(this.tempList, 0);
+                } else {
+                    await this.mulUpdateStatus(this.tempList, 1);
+                }
+                this.myIdx = 0;
+            } else {
+                this.myIdx = this.preMyIdx;
+                this.$message({
+                    type: 'warning',
+                    message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
+                })
+            }
+        },
+        // 鎵归噺鎿嶄綔
+        mulUpdateStatus(idArr, flag) {
+            this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?')
+                .then(_ => {
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag,
+                    })
+                        .then(res => {
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�',
+                                })
+                                this.getUserList();
+                            } else {
+                                this.$message({
+                                    type: 'error',
+                                    message: res.message
+                                })
+                            }
+                            console.log(res);
+                        })
+                })
+                .catch(err => { console.log(err) })
+        },
+        // 琛ㄦ牸鐩戝惉
+        tableChange(list) {
+            this.tempList = [];
+            list.forEach(item => {
+                this.tempList.push(item.id);
+            })
+            if (list.length === this.tableData.length) {
+                this.all = true;
+            } else {
+                this.all = false
+            }
+        },
+        // 淇敼鏃堕棿鏍煎紡
+        changeTime({ updateTime }) {
+            return helper(updateTime);
+        },
+        // 鍏ㄩ��
+        selectAll() {
+            this.$refs.multipleTable.toggleAllSelection();
+        },
+        // 鍙嶉��
+        disSame(list) {
+            list.forEach(row => {
+                this.$refs.multipleTable.toggleRowSelection(row)
+            })
+        },
+        // 璁剧疆琛ㄦ牸鏂戦┈绾�
+        tableRowClassName({ row, rowIndex }) {
+            if ((rowIndex + 1) % 2 == 0) {
+                return 'warning-row';
+            } else {
+                return 'success-row';
+            }
+            return '';
+        },
+        // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+        changeCurrentPage(page) {
+            this.currentPage = page;
+            this.setTableData();
+        },
+        // 鍏抽棴寮圭獥
+        handleClose(done) {
+            done();
+        },
+        // 纭鍏抽棴寮圭獥
+        handleConfirmClose(done) {
+            this.$confirm('纭鍏抽棴?')
+                .then(_ => {
+                    done();
+                })
+                .catch(err => {
+                    console.log(err);
+                })
+        },
+        // 鑷畾涔夊叧闂脊绐�
+        closeDialog({ flag, index }) {
+            this.dialogCreate = flag;
+            this.dialogView = flag;
+            if (index === 1) {
+                this.setTableData();
+            }
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.userList {
+    text-align: left;
+    margin: 10px 20px;
+    color: #4b9bb7;
+
+    header {
+        background-color: #09152f;
+        border: 1pox solid #fff;
+
+        .header-nav {
+            line-height: 40px;
+            padding: 0 30px;
+            display: flex;
+            justify-content: space-between;
+            font-weight: 650;
+        }
+
+        .header-content {
+            padding: 0 40px;
+            display: flex;
+            line-height: 100px;
+            justify-content: space-between;
+            align-items: center;
+
+            .search,
+            .message-status,
+            .message-kind {
+                display: flex;
+                justify-content: flex-start;
+
+                span {
+                    flex: 1;
+                }
+
+                .el-input {
+                    flex: 2;
+                    color: #1d3f57;
+
+                    &::v-deep .el-input__inner {
+                        background-color: #09152f;
+                        border: 1px solid #17324c;
+                    }
+                }
+
+            }
+
+            .findBtn {
+                line-height: 100px;
+                margin-left: 15px;
+                display: flex;
+                align-items: center;
+                margin-top: -2px;
+
+                .el-button {
+                    padding: 12px 25px;
+                    border-radius: 20px;
+                }
+            }
+        }
+    }
+
+    main {
+        background-color: #09152f;
+        margin-top: 20px;
+        padding-bottom: 50px;
+        border: 1pox solid #fff;
+
+        .el-link {
+            color: #4b9bb7;
+        }
+
+        .leftPx {
+            margin-left: 10px;
+        }
+
+        .mainTitle {
+            line-height: 60px;
+        }
+
+        .main-nav {
+            line-height: 40px;
+            display: flex;
+            padding: 10px;
+            justify-content: space-between;
+        }
+
+        .tools {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            padding: 0 20px;
+
+            .funs {
+                display: flex;
+
+                .funs-sp {
+                    border: 1px solid #17324c;
+                }
+
+                .funsItem {
+                    line-height: 28px;
+                    display: flex;
+                    align-items: center;
+
+                    border-radius: 4px;
+                    font-size: 12px;
+                    margin-left: 10px;
+
+                    .el-checkbox {
+                        width: 80px;
+                        padding: 0 10px;
+                    }
+
+                    .el-select {
+                        width: 120px;
+                    }
+
+                    &::v-deep .el-input__inner {
+                        border: none;
+                        background-color: #09152f;
+                    }
+
+                    &:hover {
+                        border: 1px solid #4b9bb7;
+                    }
+
+                    &:hover .el-checkbox {
+                        color: #4b9bb7;
+                    }
+                }
+
+            }
+
+            .pagination {
+                margin-top: 50px;
+                display: flex;
+                line-height: 50px;
+                justify-content: center;
+
+                .el-pagination {
+
+                    &::v-deep li,
+                    &::v-deep .btn-prev,
+                    &::v-deep .btn-next {
+                        background-color: #071f39;
+                        color: #4b9bb7;
+                    }
+
+                    &::v-deep .active {
+                        background-color: #409eff;
+                        color: #fff;
+                    }
+                }
+            }
+        }
+
+        .el-table {
+            color: #4b9bb7;
+            font-size: 10px;
+
+            &::v-deep .el-table__empty-block {
+                background-color: #09152f;
+            }
+
+            &::v-deep .el-table__empty-block {
+                color: #4b9bb7;
+            }
+
+            .operation {
+                display: flex;
+
+                .line {
+                    padding: 0 5px;
+                }
+
+                span:hover {
+                    cursor: pointer;
+                }
+            }
+        }
+
+        .el-table::v-deep .warning-row {
+            background: #06122c;
+        }
+
+        .el-table::v-deep .success-row {
+            background: #071f39;
+        }
+
+        &::v-deep .switchStyle .el-switch__label {
+            position: absolute;
+            display: none;
+            color: #fff;
+        }
+
+        &::v-deep .el-switch__core {
+            background-color: rgba(166, 166, 166, 1);
+        }
+
+        &::v-deep .switchStyle .el-switch__label--left {
+            z-index: 9;
+            left: 20px;
+        }
+
+        &::v-deep .switchStyle .el-switch__label--right {
+            z-index: 9;
+            left: 4px;
+        }
+
+        &::v-deep .switchStyle .el-switch__label.is-active {
+            display: block;
+        }
+
+        &::v-deep .switchStyle.el-switch .el-switch__core,
+        &::v-deep .el-switch .el-switch__label {
+            width: 50px !important;
+        }
+    }
+
+    &::v-deep .el-dialog__header,
+    &::v-deep .el-dialog__body {
+        background-color: #06122c;
+    }
+
+    &::v-deep .el-dialog__header {
+        display: flex;
+        align-items: center;
+        background-color: #fff;
+        padding: 20px;
+        line-height: 60px;
+    }
+
+    &::v-deep .el-dialog__title {
+        color: #4b9bb7;
+    }
+
+    &::v-deep .el-dialog__close {
+        width: 20px;
+        height: 20px;
+        // color: #fff;
+    }
+
+    &::v-deep .el-dialog__body {
+        padding: 0;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/video/index.vue b/src/views/operate/video/index.vue
new file mode 100644
index 0000000..011fa59
--- /dev/null
+++ b/src/views/operate/video/index.vue
@@ -0,0 +1,296 @@
+<template>
+    <div class="otherInterface">
+        <header>
+            <div class="headerTitle">杩愯惀绠$悊 >> 瑙嗛绠$悊</div>
+        </header>
+        <main>
+            <div class="mainHeader">
+                <div class="add">
+                    <el-button type="primary" icon="el-icon-plus">鏂板浠诲姟</el-button>
+                </div>
+                <div class="date-search">
+                    <span>鎸夊ぉ鏌ヨ:</span>
+                    <div class="mydate">
+                        <el-input placeholder="璇疯緭鍏ュ紑濮嬫椂闂�"></el-input>
+                        <div class="line">
+                            鈥斺�斺�� 鈥斺�斺��
+                        </div>
+                        <el-input placeholder="璇疯緭鍏ョ粨鏉熸椂闂�"></el-input>
+                    </div>
+                </div>
+                <div class="search">
+                    <el-input placeholder="璇疯緭鍏ユ爣棰樻垨鑰呬换鍔$紪鍙�"></el-input>
+                </div>
+                <div class="btn">
+                    <el-button icon="el-icon-plus" type="primary">鎼滅储</el-button>
+                    <el-button icon="el-icon-delete">閲嶇疆</el-button>
+                </div>
+            </div>
+            <div class="mainContent">
+                <!-- @selection-change="handleSelectionChange" -->
+                <!-- 鏁版嵁娓叉煋 -->
+                <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
+                    :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
+                    :row-class-name="tableRowClassName">
+                    <el-table-column type="selection" width="55">
+                    </el-table-column>
+                    <el-table-column label="浠诲姟缂栧彿" prop="applicationName" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="applicationType" label="鏍囬" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="websiteUrl" label="绫诲瀷" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="applicationType" label="绾у埆" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="applicationType" label="琛楅亾" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="applicationType" label="绀惧尯" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="applicationType" label="寮�濮嬫椂闂�" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="applicationType" label="缁撴潫鏃堕棿" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="applicationType" label="浠诲姟鎻忚堪" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="applicationType" label="鐘舵��" min-width="10">
+                    </el-table-column>
+                    <el-table-column label="鎿嶄綔" min-width="10">
+                        <template slot-scope="scope">
+                            <span @click="handleView(scope.row)">缂栬緫</span>
+                            <span class="line">|</span>
+                            <span @click="handleDelete(scope.row)">鏌ョ湅</span>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <!-- 鍒嗛〉 -->
+                <!-- <div class="pagination">
+                    <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
+                        :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
+                        @next-click="handleNext">
+                    </el-pagination>
+                </div> -->
+            </div>
+        </main>
+        <footer>
+            <!-- 鍒涘缓寮圭獥 -->
+            <el-dialog :visible.sync="dialogCreate" title="鏂板绗笁鏂规帴鍙�" width="45%" v-if="dialogCreate"
+                :before-close="handleClose">
+                <createInterface />
+            </el-dialog>
+            <!-- 鏌ョ湅寮圭獥 -->
+            <el-dialog :visible.sync="dialogUpdate" :title="updateFlag ?'淇敼绗笁鏂规帴鍙�':'鏌ョ湅绗笁鏂规帴鍙�'" width="45%"
+                v-if="dialogUpdate" :before-close="handleClose">
+                <viewInterface :updateFlag="updateFlag" :userInfo=userInfo />
+            </el-dialog>
+        </footer>
+    </div>
+</template>
+<script>
+// import createInterface from './components/createInterface';
+// import viewInterface from './components/viewInterface'
+export default {
+    components: {
+        // createInterface, viewInterface
+    },
+    data() {
+        return {
+            tableData: [],
+            search: "",
+            dialogCreate: false,
+            dialogUpdate: false,
+            updateFlag: false,
+            userInfo: '',
+            date:'',
+            // totalNum: 200,
+            // pageSize: 10,
+            // currentPage: 1,
+        }
+    },
+    created() {
+        this.getUserList();
+    },
+    methods: {
+        // 鑾峰彇鎺ュ彛鍒楄〃
+        getUserList() {
+            const that = this;
+            // const { currentPage, pageSize, search } = this;
+            this.dialogCreate = false;
+            this.$axios.get("sccg/system/portal/thirdApp/search").then(res => {
+                const { code, data } = res;
+                if (code == 200) {
+                    this.tableData = data;
+                }
+            })
+        },
+        // 璁剧疆琛ㄦ牸鏂戦┈绾�
+        tableRowClassName({ row, rowIndex }) {
+            if ((rowIndex + 1) % 2 == 0) {
+                return 'warning-row';
+            } else {
+                return 'success-row';
+            }
+            return '';
+        },
+        // 鎵撳紑鏂板鐣岄潰
+        handleAdd() {
+            this.dialogCreate = true;
+        },
+        // 鍒涘缓寮圭獥鍏抽棴
+        handleClose(done) {
+            const that = this;
+            this.$confirm('纭鍏抽棴锛�')
+                .then(_ => {
+                    that.dialogCreate = false;
+                    done();
+                })
+                .catch(_ => { });
+        },
+        // 鍒涘缓鏌ョ湅寮圭獥
+        handleView(rowData) {
+            this.userInfo = rowData;
+            this.dialogUpdate = true;
+        },
+        // 鍒犻櫎绗笁鏂规帴鍙�
+        handleDelete({ id }) {
+            console.log(id);
+            this.$axios.delete('sccg/system/portal/thirdApp/delete', {
+                params: {
+                    id
+                }
+            }).then(res => {
+                console.log(res);
+            })
+        }
+        // // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+        // changeCurrentPage(page) {
+        //     this.currentPage = page;
+        //     this.getUserList();
+        // },
+        // // 涓婁竴椤电偣鍑讳簨浠�
+        // handlePrev(page) {
+        //     this.currentPage = page;
+        //     this.getUserList();
+        // },
+        // // 涓嬩竴椤电偣鍑讳簨浠�
+        // handleNext(page) {
+        //     this.currentPage = page;
+        //     this.getUserList();
+        // },
+    }
+}
+</script>
+<!-- sccg/system/portal/thirdApp/search -->
+<style lang="scss" scoped>
+.otherInterface {
+    header {
+        display: flex;
+        line-height: 60px;
+        justify-content: space-between;
+        padding: 0 20px;
+        color: #4b9bb7;
+
+        &::v-deep .el-button {
+            background-color: #eb5d01;
+            border: none;
+            color: #fff;
+            border-radius: 20px;
+        }
+    }
+
+    main {
+        padding: 10px 20px;
+
+        .mainHeader {
+            padding-left: 20px;
+            display: flex;
+            line-height: 60px;
+            color: #4b9bb7;
+            background-color: #09152f;
+            display: flex;
+            .add,.search,.btn{
+                flex:1;
+            }
+            .date-search{
+                flex: 3;
+                display: flex;
+                .mydate{
+                    display: flex;
+                    .line{
+                        margin:0 10px 0 20px;
+                    }
+                }
+            }
+            .el-input {
+                width: 180px;
+                height: 35px;
+                margin-left: 10px;
+
+                &::v-deep .el-input__inner {
+                    background-color: #09152f;
+                    border: 1px solid #17324c;
+                    font-size: 12px;
+                }
+            }
+        }
+
+        .mainContent {
+            margin-top: 20px;
+
+            .el-table {
+                color: #4b9bb7;
+
+                &::v-deep .el-table__empty-block {
+                    background-color: #06122c;
+                }
+
+                &::v-deep .el-table__empty-text {
+                    color: #4b9bb7;
+                }
+
+                &::v-deep .warning-row {
+                    background-color: #06122c;
+                }
+
+                &::v-deep .success-row {
+                    background-color: #071f39;
+                }
+            }
+
+            .line {
+                padding: 0 5px;
+                // margin-top: -10px;
+            }
+        }
+    }
+
+    footer {
+
+        &::v-deep .el-dialog__header,
+        &::v-deep .el-dialog__body {
+            background-color: #06122c;
+        }
+
+        &::v-deep .el-dialog__header {
+            display: flex;
+            align-items: center;
+            background-color: #fff;
+            padding: 20px;
+            line-height: 60px;
+        }
+
+        &::v-deep .el-dialog__title {
+            color: #4b9bb7;
+        }
+
+        &::v-deep .el-dialog__close {
+            width: 20px;
+            height: 20px;
+            // color: #fff;
+        }
+
+        &::v-deep .el-dialog__body {
+            padding: 0;
+        }
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/viewEvent/components/closure/index.vue b/src/views/operate/viewEvent/components/closure/index.vue
new file mode 100644
index 0000000..b61ff2d
--- /dev/null
+++ b/src/views/operate/viewEvent/components/closure/index.vue
@@ -0,0 +1,336 @@
+<template>
+    <div class="view">
+        <div class="view-data">
+            <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="100px">
+                <div class="data-item">
+                    <el-form-item label="闂鏉ユ簮:">
+                        <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span>
+                    </el-form-item>
+                    <el-form-item label="鐧昏浜哄憳:">
+                        <span class="data-detail">{{baseCase.createUser}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="闂绫诲瀷:">
+                        <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span>
+                    </el-form-item>
+                    <el-form-item label="浜嬩欢绛夌骇:">
+                        <span class="data-detail">{{baseCase.violations.gradeText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="澶х被鍚嶇О:">
+                        <span class="data-detail">{{baseCase.violations.categoryText}}</span>
+                    </el-form-item>
+                    <el-form-item label="灏忕被鍚嶇О:">
+                        <span class="data-detail">{{baseCase.violations.categoryText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="鎵�灞炲尯鍘�:">
+                        <span class="data-detail"></span>
+                    </el-form-item>
+                    <el-form-item label="鎵�灞炶閬�:">
+                        <span class="data-detail">{{baseCase.streetText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="鎵�灞炵ぞ鍖�:">
+                        <span class="data-detail">{{baseCase.communityText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="浜嬪彂鍦扮偣:">
+                        <span class="data-detail">{{baseCase.site}}</span>
+                    </el-form-item>
+                    <el-form-item label="杞︾墝鍙�:">
+                        <span class="data-detail">{{baseCase.violations.carNumber}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="鍏宠仈鍟嗛摵鍚嶇О:">
+                        <span class="data-detail">{{baseCase.violations.shopName}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="闂鎻忚堪:">
+                        <span class="data-detail">{{baseCase.violations.description}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="鍙嶆槧浜�:">
+                        <span class="data-detail">{{baseCase.violations.informant}}</span>
+                    </el-form-item>
+                    <el-form-item label="鑱旂郴鏂瑰紡:">
+                        <span class="data-detail">{{baseCase.violations.informantPhoneCode}}</span>
+                    </el-form-item>
+                </div>
+                <!-- 瀹℃牳鎰忚
+                <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion">
+                    <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input>
+                </el-form-item>
+                <div class="el-form-footer">
+                    <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button>
+                    <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button>
+                </div> -->
+            </el-form>
+        </div>
+        <div class="view-process">
+            <div class="process-header">
+                <div class="process-title-item" v-for="item in titleList" :key="item.title"
+                    @click="changeComponent(item.index)">
+                    <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div>
+                    <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div>
+                </div>
+            </div>
+            <div class="show-item">
+                <div class="show-wrap">
+                    <div class="closure-info" v-if="activeIndex === 0">
+                        <el-form :model="baseCase" label-position="right" ref="opinionForm" :rules="Rules"
+                            label-width="100px">
+                            <el-form-item label="瀹℃牳鎰忚" class="op-item" prop="auditOpinion">
+                                <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion" disabled>
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="缁撴鎰忚" class="op-item" prop="finalOpinion">
+                                <el-input type="textarea" placeholder="璇疯緭鍏ョ粨妗堟剰瑙�" v-model="baseCase.finalOpinion">
+                                </el-input>
+                            </el-form-item>
+                        </el-form>
+                        <div class="form-footer">
+                            <el-button type="primary"  @click.native.prevent="handleSubmit">缁撴</el-button>
+                            <el-button  @click.native.prevent="handleBack">杩斿洖</el-button>
+                        </div>
+                    </div>
+                    <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
+                    <MyFilePicture v-else-if="activeIndex === 2"  :baseCase="baseCase" :filesPictureVo="filesPictureVo"></MyFilePicture>
+                    <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
+                    <MyScene v-else :baseCase="baseCase" :currentSitVo="currentSitVo"></MyScene>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import MyProcess from '@/components/process'
+import MyFilePicture from '@/components/filePictrue'
+import MySovleProblem from '@/components/solveProblem'
+import MyScene from '@/components/scene'
+export default {
+    components: {
+        MyProcess, MyFilePicture, MySovleProblem, MyScene
+    },
+    data() {
+        const checkOpinion = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback()
+            }
+        }
+        const checkFinal = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('缁撴鎰忚涓嶈兘涓虹┖'))
+            }
+        }
+        return {
+            myInfo: {
+
+            },
+            activeIndex: 0,
+            titleList: [
+                {
+                    title: '缁撴淇℃伅',
+                    index: 0,
+                },
+                {
+                    title: '鍔炵悊缁忚繃',
+                    index: 1,
+                },
+                {
+                    title: '妗堝嵎鍥剧墖',
+                    index: 2,
+                },
+                {
+                    title: '闂澶勭悊',
+                    index: 3,
+                },
+                {
+                    title: '鐜板満鎯呭喌',
+                    index: 4,
+                },
+            ],
+            Rules: {
+                auditOpinion: [
+                    {  trigger: 'blur', validator: checkOpinion }
+                ],
+                finalOpinion:[
+                    {
+                        trigger:'blur',validator:checkFinal
+                    }
+                ]  
+                
+            },
+            baseCase: {},
+            handlePassVo: {},
+            currentSitVo: {},
+            problemProVo: {},
+            filesPictureVo: {}
+
+        }
+    },
+    created() {
+        const { info } = this;
+        this.baseCase = info.baseCase;
+        this.handlePassVo = info.handlePassVo;
+        this.currentSitVo = info.currentSitVo;
+        this.problemProVo = info.problemProVo;
+        this.filesPictureVo = info.filesPictureVo;
+    },
+    methods: {
+        changeComponent(index) {
+            this.activeIndex = index;
+        },
+        handleBack(){
+            this.$emit('closeDialog', { flag: false });
+        },
+        // 鎻愪氦瀹℃牳鎰忚
+        handleSubmit() {
+            const { baseCase } = this;
+            this.$refs.opinionForm.validate((valid) => {
+                if (valid) {
+                    this.$axios({
+                        method: 'put',
+                        url: 'sccg/base_case/end_case?caseId='+baseCase.id +'&opinion='+baseCase.finalOpinion +'&result='+'缁撴鎴愬姛',
+                    })
+                        .then(res => {
+                            console.log(res);
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '缁撴鎴愬姛'
+                                })
+                                this.$emit('closeDialog', { flag: false });
+                            }else{
+                                this.$message({
+                                    type:'error',
+                                    message:'缁撴澶辫触',
+                                })
+                            }
+
+                        })
+                        .catch(err => { console.log(err) });
+                } else {
+                    return false;
+                }
+            })
+        },
+        // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅
+        getUserLoginInfo() {
+            // 鑾峰彇鐧诲綍鍚�;
+            const username = sessionStorage.getItem('name');
+            this.$axios({
+                method: 'get',
+                url: 'sccg/admin/info',
+                data: {
+                    name: 'username'
+                }
+            })
+                .then(res => {
+                    console.log(res);
+                })
+        }
+    },
+    props: ['info', 'closeDialog']
+}
+</script>
+<style lang="scss" scoped>
+.view {
+    display: flex;
+    padding: 20px;
+
+    .view-data {
+        color: #4b9bb7;
+        flex: 4;
+        padding: 20px;
+
+        .data-item {
+            display: flex;
+            justify-content: space-between;
+            line-height: 40px;
+        }
+
+        :deep(.el-form-item__label) {
+            color: #4b9bb7;
+        }
+
+        :deep(.el-textarea__inner) {
+            background-color: #17324c;
+            color: #4b9bb7;
+        }
+
+        .el-form-footer {
+            display: flex;
+            justify-content: flex-end;
+        }
+
+        border: 1px solid #17324c;
+    }
+    :deep(.el-textarea__inner){
+        background-color: #17324c;
+        color: #4b9bb7;
+    }
+    .closure-info{
+        padding: 20px;
+        .op-item{
+            padding-top: 20px;
+        }
+        .form-footer{
+            display: flex;
+            margin-top: 50px;
+            justify-content: flex-end;
+        }
+    }
+    .view-process {
+        flex: 6;
+        margin-left: 20px;
+
+        .process-header {
+            display: flex;
+            line-height: 40px;
+
+            .process-title-item {
+                width: 120px;
+                text-align: center;
+
+                .under-line {
+                    height: 2px;
+                    width: 100%;
+                }
+
+                .title-active {
+                    color: #4b9bb7;
+                }
+
+                .line-active {
+                    background-color: #4b9bb7;
+                    border-radius: 20px;
+                }
+            }
+        }
+
+        .show-item {
+            overflow: hidden;
+            height: 600px;
+            position: relative;
+
+            .show-wrap {
+                overflow: scroll;
+                height: 600px;
+            }
+        }
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/viewEvent/components/examine/index.vue b/src/views/operate/viewEvent/components/examine/index.vue
new file mode 100644
index 0000000..483743f
--- /dev/null
+++ b/src/views/operate/viewEvent/components/examine/index.vue
@@ -0,0 +1,283 @@
+<template>
+    <div class="view">
+        <div class="view-data">
+            <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="100px">
+                <div class="data-item">
+                    <el-form-item label="闂鏉ユ簮:">
+                        <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span>
+                    </el-form-item>
+                    <el-form-item label="鐧昏浜哄憳:">
+                        <span class="data-detail">{{baseCase.createUser}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="闂绫诲瀷:">
+                        <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span>
+                    </el-form-item>
+                    <el-form-item label="澶х被鍚嶇О:">
+                        <span class="data-detail">{{baseCase.violations.categoryText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="灏忕被鍚嶇О:">
+                        <span class="data-detail">{{baseCase.violations.typeText}}</span>
+                    </el-form-item>
+                    <el-form-item label="浜嬩欢绛夌骇:">
+                        <span class="data-detail">{{baseCase.violations.gradeText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="妗堢敱:">
+                        <span class="data-detail">{{baseCase.violations.actionCause}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="鎵�灞炲尯鍘�:">
+                        <span class="data-detail">xxxx</span>
+                    </el-form-item>
+                    <el-form-item label="鎵�灞炶閬�:">
+                        <span class="data-detail">{{baseCase.streetText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="鎵�灞炵ぞ鍖�:">
+                        <span class="data-detail">{{baseCase.communityText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="浜嬪彂鍦扮偣:">
+                        <span class="data-detail">{{baseCase.site}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="闂鎻忚堪:">
+                        <span class="data-detail">{{baseCase.violations.description}}</span>
+                    </el-form-item>
+                </div>
+                <!-- <div class="data-item">
+                    <el-form-item label="澶勭疆鏂瑰紡:">
+                        <span class="data-detail">xxxxxxx</span>
+                    </el-form-item>
+                </div> 
+                <div class="data-item">
+                    <el-form-item label="澶勭疆鎵嬫:">
+                        <span class="data-detail">xxxxxxx</span>
+                    </el-form-item>
+                </div>-->
+                <!-- 瀹℃牳鎰忚 -->
+                <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion">
+                    <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input>
+                </el-form-item>
+                <div class="el-form-footer">
+                    <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button>
+                    <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button>
+                </div>
+            </el-form>
+        </div>
+        <div class="view-process">
+            <div class="process-header">
+                <div class="process-title-item" v-for="item in titleList" :key="item.title"
+                    @click="changeComponent(item.index)">
+                    <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div>
+                    <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div>
+                </div>
+            </div>
+            <div class="show-item">
+                <div class="show-wrap">
+                    <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
+                    <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture>
+                    <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
+                    <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import MyProcess from '@/components/process'
+import MyFilePicture from '@/components/filePictrue'
+import MySovleProblem from '@/components/solveProblem'
+import MyScene from '@/components/scene'
+export default {
+    components: {
+        MyProcess, MyFilePicture, MySovleProblem, MyScene
+    },
+    data() {
+        const checkOpinion = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('瀹℃牳鎰忚涓嶈兘涓虹┖'))
+            }
+        }
+        return {
+            myInfo: {
+
+            },
+            activeIndex: 1,
+            titleList: [
+                {
+                    title: '鍔炵悊缁忚繃',
+                    index: 1,
+                },
+                {
+                    title: '妗堝嵎鍥剧墖',
+                    index: 2,
+                },
+                {
+                    title: '闂澶勭悊',
+                    index: 3,
+                },
+                {
+                    title: '鐜板満鎯呭喌',
+                    index: 4,
+                },
+            ],
+            Rules: {
+                auditOpinion: [
+                    { required: true, trigger: 'blur', validator: checkOpinion }
+                ]
+            },
+            baseCase: {},
+            handlePassVo: {},
+            currentSitVo: {},
+            problemProVo: {},
+            filesPictureVo: {},
+        }
+    },
+    created() {
+        const { info} = this;
+        this.baseCase = info.baseCase;
+        this.handlePassVo = info.handlePassVo;
+        this.currentSitVo = info.currentSitVo;
+        this.problemProVo = info.problemProVo;
+        this.filesPictureVo = info.filesPictureVo;
+    },
+    methods: {
+        changeComponent(index) {
+            this.activeIndex = index;
+        },
+        // 鎻愪氦瀹℃牳鎰忚
+        handleSubmit(index) {
+            const { baseCase } = this;
+            this.$refs.viewForm.validate((valid) => {
+                if (valid) {
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/check_handle/check',
+                        data: {
+                            baseCaseId: baseCase.id,
+                            checkOpinion: baseCase.auditOpinion,
+                            result:index === 0 ? '椹冲洖':'閫氳繃', 
+                        }
+                    })
+                        .then(res => {
+                            console.log(res);
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: index === 0 ? '椹冲洖鎴愬姛' : '瀹℃牳閫氳繃'
+                                })
+                                this.$emit('closeDialog', { flag: false });
+                            }
+
+                        })
+                        .catch(err => { console.log(err) });
+                }else{
+                    return false;
+                }
+            })
+        },
+        // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅
+        getUserLoginInfo() {
+            // 鑾峰彇鐧诲綍鍚�;
+            const username = sessionStorage.getItem('name');
+            this.$axios({
+                method: 'get',
+                url: 'sccg/admin/info',
+                data: {
+                    name: 'username'
+                }
+            })
+                .then(res => {
+                    console.log(res);
+                })
+        },
+    },
+    props: ['info', 'closeDialog']
+}
+</script>
+<style lang="scss" scoped>
+.view {
+    display: flex;
+    padding: 20px;
+
+    .view-data {
+        color: #4b9bb7;
+        flex: 4;
+        padding: 20px;
+
+        .data-item {
+            display: flex;
+            justify-content: space-between;
+            line-height: 40px;
+        }
+
+        :deep(.el-form-item__label) {
+            color: #4b9bb7;
+        }
+
+        :deep(.el-textarea__inner) {
+            background-color: #17324c;
+            color: #4b9bb7;
+        }
+
+        .el-form-footer {
+            display: flex;
+            justify-content: flex-end;
+        }
+
+        border: 1px solid #17324c;
+    }
+
+    .view-process {
+        flex: 6;
+        margin-left: 20px;
+
+        .process-header {
+            display: flex;
+            line-height: 40px;
+
+            .process-title-item {
+                width: 120px;
+                text-align: center;
+
+                .under-line {
+                    height: 2px;
+                    width: 100%;
+                }
+
+                .title-active {
+                    color: #4b9bb7;
+                }
+
+                .line-active {
+                    background-color: #4b9bb7;
+                    border-radius: 20px;
+                }
+            }
+        }
+
+        .show-item {
+            overflow: hidden;
+            height: 600px;
+            position: relative;
+
+            .show-wrap {
+                overflow: scroll;
+                height: 600px;
+            }
+        }
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/viewEvent/components/illExamine/index.vue b/src/views/operate/viewEvent/components/illExamine/index.vue
new file mode 100644
index 0000000..1dfd4a4
--- /dev/null
+++ b/src/views/operate/viewEvent/components/illExamine/index.vue
@@ -0,0 +1,284 @@
+<template>
+    <div class="view">
+        <div class="view-data">
+            <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="160px">
+                <div class="data-item">
+                    <el-form-item label="闂鏉ユ簮:">
+                        <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span>
+                    </el-form-item>
+                    <el-form-item label="鐧昏浜哄憳:">
+                        <span class="data-detail">{{baseCase.createUser}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="闂绫诲瀷:">
+                        <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span>
+                    </el-form-item>
+                    <el-form-item label="杩濆缓绫诲埆:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.categoryId}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="浜嬩欢绛夌骇:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.baseCaseId}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="妗堢敱:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.actionCause}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="杩濇硶寤鸿闀裤�佸銆侀珮:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m銆�'+baseCase.illegalBuilding.buildingWidth+'m銆�'+ baseCase.illegalBuilding.buildingHigh + 'm '}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="杩濇硶寤鸿闈㈢Н:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.buildingArea+'銕� '}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="鎵�灞炵ぞ鍖�:">
+                        <span class="data-detail">{{baseCase.communityText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="浜嬪彂鍦扮偣:">
+                        <span class="data-detail">{{baseCase.site}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="闂鎻忚堪:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.description}}</span>
+                    </el-form-item>
+                </div>
+                <!-- <div class="data-item">
+                    <el-form-item label="澶勭疆鏂瑰紡:">
+                        <span class="data-detail">xxxxxxx</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="澶勭疆鎵嬫:">
+                        <span class="data-detail">xxxxxxx</span>
+                    </el-form-item>
+                </div> -->
+                <!-- 瀹℃牳鎰忚 -->
+                <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion">
+                    <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input>
+                </el-form-item>
+                <div class="el-form-footer">
+                    <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button>
+                    <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button>
+                </div>
+            </el-form>
+        </div>
+        <div class="view-process">
+            <div class="process-header">
+                <div class="process-title-item" v-for="item in titleList" :key="item.title"
+                    @click="changeComponent(item.index)">
+                    <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div>
+                    <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div>
+                </div>
+            </div>
+            <div class="show-item">
+                <div class="show-wrap">
+                    <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
+                    <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture>
+                    <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
+                    <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import MyProcess from '@/components/process'
+import MyFilePicture from '@/components/filePictrue'
+import MySovleProblem from '@/components/solveProblem'
+import MyScene from '@/components/scene'
+export default {
+    components: {
+        MyProcess, MyFilePicture, MySovleProblem, MyScene
+    },
+    data() {
+        const checkOpinion = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('瀹℃牳鎰忚涓嶈兘涓虹┖'))
+            }
+        }
+        return {
+            myInfo: {
+
+            },
+            activeIndex: 1,
+            titleList: [
+                {
+                    title: '鍔炵悊缁忚繃',
+                    index: 1,
+                },
+                {
+                    title: '妗堝嵎鍥剧墖',
+                    index: 2,
+                },
+                {
+                    title: '闂澶勭悊',
+                    index: 3,
+                },
+                {
+                    title: '鐜板満鎯呭喌',
+                    index: 4,
+                },
+            ],
+            Rules: {
+                auditOpinion: [
+                    { required: true, trigger: 'blur', validator: checkOpinion }
+                ]
+            },
+            baseCase: {},
+            handlePassVo: {},
+            currentSitVo: {},
+            problemProVo: {},
+            filesPictureVo: {},
+        }
+    },
+    created() {
+        const { info } = this;
+        this.baseCase = info.baseCase;
+        this.handlePassVo = info.handlePassVo;
+        this.currentSitVo = info.currentSitVo;
+        this.problemProVo = info.problemProVo;
+        this.filesPictureVo = info.filesPictureVo;
+    },
+    methods: {
+        changeComponent(index) {
+            this.activeIndex = index;
+        },
+        // 鎻愪氦瀹℃牳鎰忚
+        handleSubmit(mystatus) {
+            // this.getUserLoginInfo();
+            const { baseCase } = this;
+            this.$refs.viewForm.validate((valid) => {
+                if (valid) {
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/check_handle/check',
+                        data: {
+                            baseCaseId: baseCase.id,
+                            checkOpinion: baseCase.auditOpinion,
+                            currentUser: baseCase.createUser,
+                            status: mystatus,
+                        }
+                    })
+                        .then(res => {
+                            console.log(res);
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: mystatus === 0 ? '椹冲洖鎴愬姛' : '瀹℃牳閫氳繃'
+                                })
+                                this.$emit('closeDialog', { flag: false });
+                            }
+
+                        })
+                        .catch(err => { console.log(err) });
+                }else{
+                    return false;
+                }
+            })
+        },
+        // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅
+        getUserLoginInfo() {
+            // 鑾峰彇鐧诲綍鍚�;
+            const username = sessionStorage.getItem('name');
+            this.$axios({
+                method: 'get',
+                url: 'sccg/admin/info',
+                data: {
+                    name: 'username'
+                }
+            })
+                .then(res => {
+                    console.log(res);
+                })
+        },
+    },
+    props: ['info', 'closeDialog']
+}
+</script>
+<style lang="scss" scoped>
+.view {
+    display: flex;
+    padding: 20px;
+
+    .view-data {
+        color: #4b9bb7;
+        flex: 4;
+        padding: 20px;
+
+        .data-item {
+            display: flex;
+            justify-content: space-between;
+            line-height: 40px;
+        }
+
+        :deep(.el-form-item__label) {
+            color: #4b9bb7;
+        }
+
+        :deep(.el-textarea__inner) {
+            background-color: #17324c;
+            color: #4b9bb7;
+        }
+
+        .el-form-footer {
+            display: flex;
+            justify-content: flex-end;
+        }
+
+        border: 1px solid #17324c;
+    }
+
+    .view-process {
+        flex: 6;
+        margin-left: 20px;
+
+        .process-header {
+            display: flex;
+            line-height: 40px;
+
+            .process-title-item {
+                width: 120px;
+                text-align: center;
+
+                .under-line {
+                    height: 2px;
+                    width: 100%;
+                }
+
+                .title-active {
+                    color: #4b9bb7;
+                }
+
+                .line-active {
+                    background-color: #4b9bb7;
+                    border-radius: 20px;
+                }
+            }
+        }
+
+        .show-item {
+            overflow: hidden;
+            height: 600px;
+            position: relative;
+
+            .show-wrap {
+                overflow: scroll;
+                height: 600px;
+            }
+        }
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/viewEvent/components/illclosure/index.vue b/src/views/operate/viewEvent/components/illclosure/index.vue
new file mode 100644
index 0000000..513b04b
--- /dev/null
+++ b/src/views/operate/viewEvent/components/illclosure/index.vue
@@ -0,0 +1,334 @@
+<template>
+    <div class="view">
+        <div class="view-data">
+            <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="160px">
+                <div class="data-item">
+                    <el-form-item label="闂鏉ユ簮:">
+                        <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span>
+                    </el-form-item>
+                    <el-form-item label="鐧昏浜哄憳:">
+                        <span class="data-detail">{{baseCase.createUser}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="闂绫诲瀷:">
+                        <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span>
+                    </el-form-item>
+                    <el-form-item label="杩濆缓绫诲埆:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.categoryId}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="浜嬩欢绛夌骇:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.baseCaseId}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="妗堢敱:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.actionCause}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="杩濇硶寤鸿闀裤�佸銆侀珮:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m銆�'+baseCase.illegalBuilding.buildingWidth+'m銆�'+ baseCase.illegalBuilding.buildingHigh + 'm '}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="杩濇硶寤鸿闈㈢Н:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.buildingArea+'銕� '}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="鎵�灞炵ぞ鍖�:">
+                        <span class="data-detail">{{baseCase.communityText}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="浜嬪彂鍦扮偣:">
+                        <span class="data-detail">{{baseCase.site}}</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="闂鎻忚堪:">
+                        <span class="data-detail">{{baseCase.illegalBuilding.description}}</span>
+                    </el-form-item>
+                </div>
+                <!-- <div class="data-item">
+                    <el-form-item label="澶勭疆鏂瑰紡:">
+                        <span class="data-detail">xxxxxxx</span>
+                    </el-form-item>
+                </div>
+                <div class="data-item">
+                    <el-form-item label="澶勭疆鎵嬫:">
+                        <span class="data-detail">xxxxxxx</span>
+                    </el-form-item>
+                </div> -->
+                <!-- 瀹℃牳鎰忚 -->
+                <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion">
+                    <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input>
+                </el-form-item>
+                <div class="el-form-footer">
+                    <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button>
+                    <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button>
+                </div>
+            </el-form>
+        </div>
+        <div class="view-process">
+            <div class="process-header">
+                <div class="process-title-item" v-for="item in titleList" :key="item.title"
+                    @click="changeComponent(item.index)">
+                    <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div>
+                    <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div>
+                </div>
+            </div>
+            <div class="show-item">
+                <div class="show-wrap">
+                    <div class="closure-info" v-if="activeIndex === 0">
+                        <el-form :model="baseCase" label-position="right" ref="opinionForm" :rules="Rules"
+                            label-width="100px">
+                            <el-form-item label="瀹℃牳鎰忚" class="op-item" prop="auditOpinion">
+                                <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion" disabled>
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item label="缁撴鎰忚" class="op-item" prop="finalOpinion">
+                                <el-input type="textarea" placeholder="璇疯緭鍏ョ粨妗堟剰瑙�" v-model="baseCase.finalOpinion">
+                                </el-input>
+                            </el-form-item>
+                        </el-form>
+                        <div class="form-footer">
+                            <el-button type="primary"  @click.native.prevent="handleSubmit">缁撴</el-button>
+                            <el-button  @click.native.prevent="handleBack">杩斿洖</el-button>
+                        </div>
+                    </div>
+                    <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess>
+                    <MyFilePicture v-else-if="activeIndex === 2"  :baseCase="baseCase" :filesPictureVo="filesPictureVo"></MyFilePicture>
+                    <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem>
+                    <MyScene v-else :baseCase="baseCase" :currentSitVo="currentSitVo"></MyScene>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import MyProcess from '@/components/process'
+import MyFilePicture from '@/components/filePictrue'
+import MySovleProblem from '@/components/solveProblem'
+import MyScene from '@/components/scene'
+export default {
+    components: {
+        MyProcess, MyFilePicture, MySovleProblem, MyScene
+    },
+    data() {
+        const checkOpinion = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback()
+            }
+        }
+        const checkFinal = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('缁撴鎰忚涓嶈兘涓虹┖'))
+            }
+        }
+        return {
+            myInfo: {
+
+            },
+            activeIndex: 0,
+            titleList: [
+                {
+                    title: '缁撴淇℃伅',
+                    index: 0,
+                },
+                {
+                    title: '鍔炵悊缁忚繃',
+                    index: 1,
+                },
+                {
+                    title: '妗堝嵎鍥剧墖',
+                    index: 2,
+                },
+                {
+                    title: '闂澶勭悊',
+                    index: 3,
+                },
+                {
+                    title: '鐜板満鎯呭喌',
+                    index: 4,
+                },
+            ],
+            Rules: {
+                auditOpinion: [
+                    {  trigger: 'blur', validator: checkOpinion }
+                ],
+                finalOpinion:[
+                    {
+                        trigger:'blur',validator:checkFinal
+                    }
+                ]  
+                
+            },
+            baseCase: {},
+            handlePassVo: {},
+            currentSitVo: {},
+            problemProVo: {},
+            filesPictureVo: {}
+
+        }
+    },
+    created() {
+        const { info } = this;
+        this.baseCase = info.baseCase;
+        this.handlePassVo = info.handlePassVo;
+        this.currentSitVo = info.currentSitVo;
+        this.problemProVo = info.problemProVo;
+        this.filesPictureVo = info.filesPictureVo;
+    },
+    methods: {
+        changeComponent(index) {
+            this.activeIndex = index;
+        },
+        handleBack(){
+            this.$emit('closeDialog', { flag: false });
+        },
+        // 鎻愪氦瀹℃牳鎰忚
+        handleSubmit() {
+            const { baseCase } = this;
+            this.$refs.opinionForm.validate((valid) => {
+                if (valid) {
+                    this.$axios({
+                        method: 'put',
+                        url: 'sccg/base_case/end_case?caseId='+baseCase.id +'&opinion='+baseCase.finalOpinion+'&result='+'缁撴鎴愬姛' ,
+                    })
+                        .then(res => {
+                            console.log(res);
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '缁撴鎴愬姛'
+                                })
+                                this.$emit('closeDialog', { flag: false });
+                            }else{
+                                this.$message({
+                                    type:'error',
+                                    message:'缁撴澶辫触',
+                                })
+                            }
+
+                        })
+                        .catch(err => { console.log(err) });
+                } else {
+                    return false;
+                }
+            })
+        },
+        // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅
+        getUserLoginInfo() {
+            // 鑾峰彇鐧诲綍鍚�;
+            const username = sessionStorage.getItem('name');
+            this.$axios({
+                method: 'get',
+                url: 'sccg/admin/info',
+                data: {
+                    name: 'username'
+                }
+            })
+                .then(res => {
+                    console.log(res);
+                })
+        }
+    },
+    props: ['info', 'closeDialog']
+}
+</script>
+<style lang="scss" scoped>
+.view {
+    display: flex;
+    padding: 20px;
+
+    .view-data {
+        color: #4b9bb7;
+        flex: 4;
+        padding: 20px;
+
+        .data-item {
+            display: flex;
+            justify-content: space-between;
+            line-height: 40px;
+        }
+
+        :deep(.el-form-item__label) {
+            color: #4b9bb7;
+        }
+
+        :deep(.el-textarea__inner) {
+            background-color: #17324c;
+            color: #4b9bb7;
+        }
+
+        .el-form-footer {
+            display: flex;
+            justify-content: flex-end;
+        }
+
+        border: 1px solid #17324c;
+    }
+    :deep(.el-textarea__inner){
+        background-color: #17324c;
+        color: #4b9bb7;
+    }
+    .closure-info{
+        padding: 20px;
+        .op-item{
+            padding-top: 20px;
+        }
+        .form-footer{
+            display: flex;
+            margin-top: 50px;
+            justify-content: flex-end;
+        }
+    }
+    .view-process {
+        flex: 6;
+        margin-left: 20px;
+
+        .process-header {
+            display: flex;
+            line-height: 40px;
+
+            .process-title-item {
+                width: 120px;
+                text-align: center;
+
+                .under-line {
+                    height: 2px;
+                    width: 100%;
+                }
+
+                .title-active {
+                    color: #4b9bb7;
+                }
+
+                .line-active {
+                    background-color: #4b9bb7;
+                    border-radius: 20px;
+                }
+            }
+        }
+
+        .show-item {
+            overflow: hidden;
+            height: 600px;
+            position: relative;
+
+            .show-wrap {
+                overflow: scroll;
+                height: 600px;
+            }
+        }
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/viewEvent/index.vue b/src/views/operate/viewEvent/index.vue
new file mode 100644
index 0000000..76194d5
--- /dev/null
+++ b/src/views/operate/viewEvent/index.vue
@@ -0,0 +1,630 @@
+<template>
+    <div class="userList">
+        <header>
+            <div class="headerTitle">杩愯惀绠$悊 >> 妗堝嵎鏌ヨ</div>
+            <div class="headerContent">
+                <div class="contentItem">
+                    <span>鎸夌紪鍙�: </span>
+                    <div>
+                        <el-input placeholder=" 璇疯緭鍏ョ紪鍙�" v-model="info.code"></el-input>
+                    </div>
+                </div>
+                <div class="contentItem">
+                    <span>鎸夌被鍨�: </span>
+                    <div class="search">
+                        <el-input placeholder=" 璇疯緭鍏ョ紪鍙�" v-model="info.type"></el-input>
+                    </div>
+                </div>
+                <div class="contentItem">
+                    <span>鎸夌ぞ鍖�: </span>
+                    <div class="search">
+                        <el-input placeholder=" 璇疯緭鍏ョ紪鍙�" v-model="info.community"></el-input>
+                    </div>
+                </div>
+                <div class="contentItem">
+                    <span>鎸変簨鍙戝湴鐐�: </span>
+                    <div class="search">
+                        <el-input placeholder=" 璇疯緭鍏ョ紪鍙�" v-model="info.site"></el-input>
+                    </div>
+                </div>
+                <div class="date-search contentItem">
+                    <!-- <span>鎸夌被鍨�:</span>
+                    <div class="search">
+                        <el-input placeholder="璇疯緭鍏ョ紪鍙�"></el-input>
+                    </div> -->
+                    <div class="btn">
+                        <el-button icon="el-icon-plus" type="primary">鎼滅储</el-button>
+                        <!-- <el-button icon="el-icon-delete">閲嶇疆</el-button> -->
+                    </div>
+                </div>
+            </div>
+            <div class="headerContent">
+                <span>鏃堕棿: </span>
+                <div>
+                    <el-input placeholder=" 璇疯緭鍏ュ紑濮嬫椂闂�" v-model="info.startTime"></el-input>
+                </div>
+                <div class="line">
+                    --
+                </div>
+                <div>
+                    <el-input placeholder=" 璇疯緭鍏ョ粨鏉熸椂闂�" v-model="info.endTime"></el-input>
+                </div>
+            </div>
+        </header>
+        <main>
+            <div class="mainContent">
+                <!-- 鏁版嵁灞曠ず -->
+                <el-table ref="multipleTable"
+                    :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }"
+                    :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
+                    @selection-change="tableChange">
+                    <el-table-column type="selection" min-width="5">
+                    </el-table-column>
+                    <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="18">
+                        <template slot-scope="scope">
+                            <el-link @click="JumpView(scope.row)">{{ scope.row.code }}</el-link>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="8">
+                        <template slot-scope="scope">
+                            <span>{{ scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶' }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column :prop="myproblem === 1 ? 'category' : 'category'"
+                        :label="myproblem === 1 ? '澶х被鍚嶇О' : '杩濆缓绫诲埆'" :min-width="myproblem === 1 ? '10' : '20'">
+                    </el-table-column>
+                    <el-table-column :prop="myproblem === 1 ? 'type' : 'site'"
+                        :label="myproblem === 1 ? '灏忕被鍚嶇О' : '杩濆缓鍦扮偣'" min-width="10">
+                    </el-table-column>
+                    <el-table-column :prop="myproblem === 1 ? 'actionCause' : 'communityId'"
+                        :label="myproblem === 1 ? '妗堢敱' : '鎵�灞炵ぞ鍖�'" min-width="10">
+                    </el-table-column>
+                    <el-table-column :prop="myproblem === 1 ? 'site' : ''"
+                        :label="myproblem === 1 ? '鎶ヨ鐐逛綅' : '杩濇硶寤虹瓚闀裤�佸銆侀珮'" :min-width="myproblem === 1 ? '10' : '20'">
+                        <template slot-scope="scope">
+                            <div v-if="myproblem === 2"><span>{{ scope.row.buildingLength + '绫�' + '銆�' +
+                                    scope.row.buildingWidth + '绫�' + '銆�' + scope.row.buildingHigh + '绫�'
+                            }}</span></div>
+                            <div v-else>{{ scope.row.site }}</div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column :prop="myproblem === 1 ? 'street' : 'buildingArea'"
+                        :label="myproblem === 1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'" min-width="10">
+                    </el-table-column>
+                    <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15" v-if="myproblem === 1">
+                        <template slot-scope="scope">
+                            <span>{{ filterTime(scope.row.alarmTime) }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column :prop="myproblem === 1 ? 'continueTime' : 'materials'"
+                        :label="myproblem === 1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="15">
+                    </el-table-column>
+                    <!-- <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
+                        <template slot-scope="scope">
+                            <div class="btn">
+                                <!-- v-if="instatus===7 ? true : false" -->
+                    <!-- <span @click="handleExamine(scope.row)" v-if="instatus===7">瀹℃牳</span>
+                                <span @click="handleClosure(scope.row)" v-if="instatus===8">缁撴</span>
+                                <span class="line" v-if="instatus !==9">|</span>
+                                <span @click="JumpView(scope.row)">鏌ョ湅</span>
+                            </div>
+                        </template>
+                    </el-table-column> -->
+                </el-table>
+                <!-- 瀹℃牳椤甸潰 -->
+                <el-dialog :visible.sync="dialogExamine" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogExamine"
+                    :before-close="handleClose">
+                    <MyExamine :info="info" v-if="myproblem === 1" @closeDialog="closeDialog"></MyExamine>
+                    <MyIllExamine :info="info" v-else @closeDialog="closeDialog"></MyIllExamine>
+                </el-dialog>
+                <!-- 缁撴椤甸潰 -->
+                <el-dialog :visible.sync="dialogClosure" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogClosure"
+                    :before-close="handleClose">
+                    <MyClosure :info="info" v-if="myproblem === 1" @closeDialog="closeDialog"></MyClosure>
+                    <MyIllClosure :info="info" v-else @closeDialog="closeDialog"></MyIllClosure>
+                </el-dialog>
+                <!-- 璇︽儏椤甸潰 -->
+                <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView"
+                    :before-close="handleNoClose">
+                    <MyDetail :info=info v-if="myproblem == 1 ? true : false" :mycode='code'></MyDetail>
+                    <MyIllDetail :info=info v-else :mycode="code"></MyIllDetail>
+                </el-dialog>
+                <!-- tools -->
+                <div class="tools">
+                    <div class="funs">
+                        <div class="funsItem funs-sp">
+                            <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
+                        </div>
+                        <div class="funsItem funs-sp">
+                            <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
+                        </div>
+                        <div class="funsItem">
+                            <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled>
+                                <el-option v-for="item in options" :key="item.value" :label="item.label"
+                                    :value="item.value" :disabled="item.disabled">
+                                </el-option>
+                            </el-select>
+                        </div>
+                    </div>
+                    <div class="pagination">
+                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
+                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"
+                            @prev-click="handlePrev" @next-click="handleNext">
+                        </el-pagination>
+                    </div>
+                </div>
+            </div>
+        </main>
+    </div>
+</template>
+<script>
+import MyExamine from './components/examine'
+import MyClosure from './components/closure'
+import MyIllExamine from './components/illExamine'
+import MyIllClosure from './components/illclosure'
+import MyDetail from '@/components/detail'
+import MyIllDetail from '@/components/illdetail'
+import helper from '@/utils/mydate'
+export default {
+    components: {
+        MyExamine, MyClosure, MyDetail, MyIllDetail, MyIllExamine, MyIllClosure
+    },
+    data() {
+        return {
+            tableData: [],
+            dialogExamine: false,
+            dialogClosure: false,
+            dialogView: false,
+            info: {},
+            totalNum: null,
+            pageSize: 10,
+            currentPage: 1,
+            all: false,
+            unsame: false,
+            myIdx: 0,
+            preMyIdx: 0,
+            options: [
+                {
+                    value: 0,
+                    label: '鎵归噺鎿嶄綔',
+                    disabled: true,
+                },
+                {
+                    value: 1,
+                    label: '鎵归噺鍚敤',
+                },
+                {
+                    value: 2,
+                    label: '鎵归噺绂佺敤',
+                },
+                {
+                    value: 3,
+                    label: '鎵归噺鍒犻櫎',
+                }
+            ],
+            tempList: [],
+            typeList: [
+                {
+                    name: '杩濊',
+                    value: 1,
+                    checked: true
+                },
+                {
+                    name: '杩濆缓',
+                    value: 2,
+                    checked: false,
+                },
+            ],
+            caseId: '',
+            myproblem: 1,
+            instatus: 7,
+            code: ''
+        }
+    },
+    created() {
+        this.getUserList();
+    },
+    methods: {
+        // 鎵归噺鍒犻櫎
+        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'
+                })
+            })
+        },
+        // 鎵ц涓嬫媺妗嗘搷浣�
+        selectChange(list) {
+            console.log(this.tempList);
+            if (this.tempList.length !== 0) {
+                if (list === 3) {
+                    this.preMyIdx = list;
+                    this.mulDelete(this.tempList);
+                }
+            } else {
+                this.myIdx = this.preMyIdx;
+                this.$message({
+                    type: 'warning',
+                    message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
+                })
+            }
+        },
+        // 鐩戝惉琛ㄦ牸
+        tableChange(list) {
+            this.tempList = [];
+            list.forEach(item => {
+                this.tempList.push(item.code);
+            })
+            if (list.length === this.tableData.length) {
+                this.all = true;
+            } else {
+                this.all = false
+            }
+        },
+        // 鍏ㄩ��
+        selectAll() {
+            this.$refs.multipleTable.toggleAllSelection();
+        },
+        // 鍙嶉��
+        disSame(list) {
+            list.forEach(row => {
+                this.$refs.multipleTable.toggleRowSelection(row)
+            })
+        },
+        // 鍒犻櫎鍗曟潯鏁版嵁
+        handleDelete({ number }) {
+            console.log(number);
+            this.$confirm('纭鍒犻櫎锛�')
+                .then(_ => {
+                    console.log(1);
+                    this.$axios({
+                        method: 'delete',
+                        url: `sccg/violations/delete?id=${number}`,
+                    })
+                        .then(res => {
+                            console.log(res);
+                            this.$message({
+                                type: res.code === 200 ? 'success' : 'warning',
+                                message: res.message
+                            })
+
+                            this.getUserList();
+                        })
+                })
+                .catch(_ => { console.log(2) });
+        },
+        // 鑾峰彇鐢ㄦ埛鍒楄〃
+        getUserList() {
+            const { currentPage, pageSize, instatus, myproblem } = this;
+            this.$axios({
+                method: 'get',
+                url: `sccg/base_case/query?state=${instatus}&current=${currentPage}&size=${pageSize}&resource=2&type=${myproblem}`
+            }).then(res => {
+                this.totalNum = res.data.total;
+                this.tableData = res.data.records;
+            })
+        },
+        // 璁剧疆琛ㄦ牸鏂戦┈绾�
+        tableRowClassName({ row, rowIndex }) {
+            if ((rowIndex + 1) % 2 == 0) {
+                return 'warning-row';
+            } else {
+                return 'success-row';
+            }
+            return '';
+        },
+        // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+        changeCurrentPage(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        // 涓婁竴椤电偣鍑讳簨浠�
+        handlePrev(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        // 涓嬩竴椤电偣鍑讳簨浠�
+        handleNext(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        handleClose(done) {
+            this.$confirm('纭鍏抽棴锛�')
+                .then(_ => {
+                    this.dialogExamine = false;
+                    done();
+                })
+                .catch(_ => { });
+        },
+        handleNoClose(done) {
+            done();
+        },
+        async JumpView(data) {
+            this.code = data.code
+            await this.getEventInfo(data.code);
+        },
+        // 鑾峰彇妗堜欢淇℃伅
+        getEventInfo(code) {
+            this.$axios({
+                method: 'get',
+                url: `sccg/base_case/baseCaseDetail/${code}`
+            })
+                .then(res => {
+                    console.log(res);
+                    this.info = res.data;
+                    this.dialogView = true;
+                })
+        },
+        // 鑾峰彇妗堜欢淇℃伅
+        getEventInfo3(code) {
+            this.$axios({
+                method: 'get',
+                url: `sccg/base_case/baseCaseDetail/${code}`
+            })
+                .then(res => {
+                    console.log(res);
+                    this.info = res.data;
+                    this.dialogExamine = true;
+                })
+        },
+        // 鑾峰彇妗堜欢淇℃伅
+        getEventInfo2(code) {
+            this.$axios({
+                method: 'get',
+                url: `sccg/base_case/baseCaseDetail/${code}`
+            })
+                .then(res => {
+                    console.log(res);
+                    this.info = res.data;
+                    this.dialogClosure = true;
+                })
+        },
+        // 鍘诲鏍�
+        handleExamine({ code }) {
+            this.getEventInfo3(code);
+        },
+        // 鍘荤粨妗�
+        handleClosure({ code }) {
+            this.getEventInfo2(code);
+        },
+        // 鍏抽棴dialog
+        closeDialog({ flag }) {
+            this.dialogExamine = flag;
+            this.dialogClosure = flag;
+            this.getUserList();
+        },
+        // 闂绫诲瀷
+        changeMyProblem(val) {
+            this.getUserList();
+        },
+        // 瀹℃牳鐘舵��
+        changeInStatus(val) {
+            this.getUserList();
+        },
+        filterTime(time) {
+            return helper(time);
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.userList {
+    text-align: left;
+    margin: 10px 20px;
+    color: #4b9bb7;
+
+    header {
+        display: flex;
+        line-height: 60px;
+        flex-direction: column;
+        // justify-content: space-between;
+        padding: 0 20px;
+        color: #4b9bb7;
+
+        .headerContent {
+            display: flex;
+
+            .contentItem {
+                display: flex;
+                margin-right: 5%;
+            }
+
+            .mydate {
+                flex: 1;
+            }
+        }
+
+        &::v-deep .el-button {
+            background-color: #eb5d01;
+            border: none;
+            color: #fff;
+            border-radius: 20px;
+        }
+    }
+
+    main {
+        background-color: #09152f;
+        margin-top: 20px;
+        padding-bottom: 50px;
+        border: 1pox solid #fff;
+
+        .btn span:hover {
+            cursor: pointer;
+        }
+
+        .tools {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            padding: 0 20px;
+
+            .funs {
+                display: flex;
+
+                .funs-sp {
+                    border: 1px solid #17324c;
+                }
+
+                .funsItem {
+                    line-height: 28px;
+                    display: flex;
+                    align-items: center;
+                    border-radius: 4px;
+                    font-size: 12px;
+                    margin-left: 10px;
+
+                    .el-checkbox {
+                        width: 80px;
+                        padding: 0 10px;
+                    }
+
+                    .el-select {
+                        width: 120px;
+                    }
+
+                    &::v-deep .el-input__inner {
+                        border: none;
+                        background-color: #09152f;
+                    }
+
+                    &:hover {
+                        border: 1px solid #4b9bb7;
+                    }
+
+                    &:hover .el-checkbox {
+                        color: #4b9bb7;
+                    }
+                }
+
+            }
+
+            .pagination {
+                margin-top: 50px;
+                display: flex;
+                line-height: 50px;
+                justify-content: center;
+
+                .el-pagination {
+
+                    &::v-deep li,
+                    &::v-deep .btn-prev,
+                    &::v-deep .btn-next {
+                        background-color: #071f39;
+                        color: #4b9bb7;
+                    }
+
+                    &::v-deep .active {
+                        background-color: #409eff;
+                        color: #fff;
+                    }
+                }
+            }
+        }
+
+        .el-table {
+            color: #4b9bb7;
+            font-size: 10px;
+
+            &::v-deep .cell {
+                text-overflow: ellipsis;
+                white-space: nowrap;
+                overflow: hidden;
+            }
+
+            &::v-deep .el-table__empty-block {
+                background-color: #09152f;
+            }
+
+            &::v-deep .el-table__empty-block {
+                color: #4b9bb7;
+            }
+
+            .operation {
+                display: flex;
+
+                .line {
+                    padding: 0 5px;
+                }
+
+                span:hover {
+                    cursor: pointer;
+                }
+            }
+        }
+
+        .el-table::v-deep .warning-row {
+            background: #06122c;
+        }
+
+        .el-table::v-deep .success-row {
+            background: #071f39;
+        }
+
+        &::v-deep .switchStyle .el-switch__label {
+            position: absolute;
+            display: none;
+            color: #fff;
+        }
+
+        &::v-deep .el-switch__core {
+            background-color: rgba(166, 166, 166, 1);
+        }
+
+        &::v-deep .switchStyle .el-switch__label--left {
+            z-index: 9;
+            left: 20px;
+        }
+
+        &::v-deep .switchStyle .el-switch__label--right {
+            z-index: 9;
+            left: 4px;
+        }
+
+        &::v-deep .switchStyle .el-switch__label.is-active {
+            display: block;
+        }
+
+        &::v-deep .switchStyle.el-switch .el-switch__core,
+        &::v-deep .el-switch .el-switch__label {
+            width: 50px !important;
+        }
+    }
+
+    .line {
+        padding: 0 5px;
+    }
+
+    &::v-deep .el-dialog__header,
+    &::v-deep .el-dialog__body {
+        background-color: #06122c;
+    }
+
+    &::v-deep .el-dialog__header {
+        display: flex;
+        align-items: center;
+        background-color: #fff;
+        padding: 20px;
+        line-height: 60px;
+    }
+
+    &::v-deep .el-dialog__title {
+        color: #4b9bb7;
+    }
+
+    &::v-deep .el-dialog__close {
+        width: 20px;
+        height: 20px;
+        // color: #fff;
+    }
+
+    &::v-deep .el-dialog__body {
+        padding: 0;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/device/grid/components/createUser/index.vue b/src/views/systemSetting/device/grid/components/createUser/index.vue
new file mode 100644
index 0000000..274dda7
--- /dev/null
+++ b/src/views/systemSetting/device/grid/components/createUser/index.vue
@@ -0,0 +1,555 @@
+<template>
+    <div class="createUser">
+        <main>
+            <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
+                    label-position="right">
+                    <!-- 鐢ㄦ埛鍚嶇О -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="username">
+                                <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О" autoComplete="new-username">
+                                </el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 鐢ㄦ埛瀵嗙爜 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password">
+                                <el-input v-model="user.password" type="password" autoComplete="new-password"
+                                    placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�"></el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                        <!-- 閲嶆柊杈撳叆瀵嗙爜鍗充负淇敼锛屽瘑鐮佹湁鏁堟湡榛樿涓�3涓湀 -->
+                    </div>
+                    <!-- 鎵�灞炵敤鎴峰鍚� -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="nickName">
+                                <el-input v-model="user.nickName" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 鎬у埆 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="鎬у埆:" prop="sex">
+                                <el-radio-group v-model="user.sex">
+                                    <el-radio :label="1">鐢�</el-radio>
+                                    <el-radio :label="0">濂�</el-radio>
+                                </el-radio-group>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 鏄惁鍏氬憳 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy">
+                                <el-radio-group v-model="user.isDy">
+                                    <el-radio :label="1">鏄�</el-radio>
+                                    <el-radio :label="0">鍚�</el-radio>
+                                </el-radio-group>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 鎵�灞炴墜鏈哄彿鐮� -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile">
+                                <el-input v-model="user.mobile" maxlength="11" placeholder="璇峰~鍐欐墜鏈哄彿鐮�"></el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 閭鍦板潃 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="閭鍦板潃:" prop="email">
+                                <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�"></el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 閫夋嫨瑙掕壊 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role">
+                                <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags>
+                                    <el-option v-for="item in roleList" :key="item.id" :label="item.name"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 鐢ㄦ埛绫诲瀷 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType">
+                                <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷">
+                                    <el-option v-for="item in typeList" :key="item.id" :label="item.name"
+                                        :value="item.id">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 搴ф満/鍒嗘満 -->
+                    <div class="user-item sp-item">
+                        <div class="item-left">
+                            <el-form-item label="搴ф満/鍒嗘満:" prop="zjarea">
+                                <el-input v-model="user.zjarea" placeholder="鐢佃瘽鍖哄彿">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item prop="zjnumber" class="left-px">
+                                <el-input v-model="user.zjnumber" placeholder="鐢佃瘽鍙风爜">
+                                </el-input>
+                            </el-form-item>
+                            <el-form-item prop="zjother" class="left-px">
+                                <el-input v-model="user.zjother" placeholder="鍒嗘満鍙风爜">
+                                </el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 鎵�灞為儴闂� -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId">
+                                <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" @change="getDepartName">
+                                    <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>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 褰撳墠鑱屽姟 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle">
+                                <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�"></el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 濉啓鎵�灞瀖ac鍦板潃 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac">
+                                <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃"></el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <!-- 濉啓鎵�灞瀒p鍦板潃 -->
+                    <div class="user-item">
+                        <div class="item-left">
+                            <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip">
+                                <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃"></el-input>
+                            </el-form-item>
+                        </div>
+                        <div class="item-right"></div>
+                    </div>
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦
+                            </el-button>
+                            <el-button class="btn reset" @click.native.prevent="resetForm">閲嶇疆</el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+
+            </div>
+        </main>
+    </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(new Error("鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖"));
+            } else {
+                const rep = /^\w+$/;
+                if (!rep.test(value)) {
+                    callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆"));
+                } else {
+                    callback();
+                }
+            }
+        };
+        const validateTruename = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error("鐢ㄦ埛濮撳悕涓嶈兘涓虹┖"));
+            } else {
+                callback();
+            }
+        };
+        const validatePhone = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error("鎵嬫満鍙风爜涓嶈兘涓虹┖"));
+            } else {
+                const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
+                if (!rep.test(value)) {
+                    callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
+                } else {
+                    callback();
+                }
+            }
+        };
+        const validateMail = (rule, value, callback) => {
+            if (value) {
+                const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
+                if (!rep.test(value)) {
+                    callback(new Error("璇疯緭鍏ユ纭殑閭"))
+                } else {
+                    callback();
+                }
+            } else {
+                callback();
+            }
+        };
+        const validateRole = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error("鎵�灞炶鑹蹭笉鑳戒负绌�"));
+            } else {
+                callback()
+            }
+        };
+        const validateType = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error("鐢ㄦ埛绫诲瀷涓嶈兘涓虹┖"));
+            } else {
+                callback()
+            }
+        };
+        const validateDepartment = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error("璇烽�夋嫨鐢ㄦ埛閮ㄩ棬"));
+            } else {
+                callback()
+            }
+        };
+        const validateWork = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error("鐢ㄦ埛褰撳墠鑱屽姟涓嶈兘涓虹┖"));
+            } else {
+                callback();
+            }
+        };
+        const validateMac = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback()
+            }
+        };
+        const validateIp = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback()
+            }
+        };
+        return {
+            user: {
+                nickName: '',
+                password: '',
+                username: '',
+                sex: 1,
+                isDy: 0,
+                mobile: '',
+                email: '',
+                role: null,
+                userType: null,
+                zjarea: '',
+                zjnumber: '',
+                zjother: '',
+                departmentId: null,
+                jobTitle: null,
+                mac: '',
+                ip: '',
+            },
+            createUserRules: {
+                nickName: [
+                    { required: true, trigger: "blur", validator: validateNickname },
+                ],
+                password: [
+                    { required: true, trigger: "blur", validator: validatePass },
+                ],
+                username: [
+                    { required: true, trigger: "blur", validator: validateTruename },
+                ],
+                sex: [
+                    { required: true, trigger: "blur" },
+                ],
+                isDy: [
+                    { required: true, trigger: "blur" },
+                ],
+                mobile: [
+                    { required: true, trigger: "blur", validator: validatePhone },
+                ],
+                email: [
+                    { required: true, trigger: "blur", validator: validateMail },
+                ],
+                role: [
+                    { required: true, trigger: "change", validator: validateRole },
+                ],
+                userType: [
+                    { required: true, trigger: "change", validator: validateType },
+                ],
+                zj: [
+                    { required: false, trigger: "blur" },
+                ],
+                departmentId: [
+                    { required: true, trigger: "change", validator: validateDepartment },
+                ],
+                jobTitle: [
+                    { required: true, trigger: "blur", validator: validateWork },
+                ],
+                mac: [
+                    { required: false, trigger: "blur", validator: validateMac },
+                ],
+                ip: [
+                    { required: false, trigger: "blur", validator: validateIp },
+                ],
+            },
+            roleList: [
+
+            ],
+            typeList: [
+
+            ],
+            departList: [],
+            mylabel: '',
+            defaultProps: {
+                children: 'children',
+                label: 'departName',
+                disabled: (data, node) => {
+                    if (node.level === 1 && node.childNodes.length !== 0) {
+                        return !data.leaf
+                    }
+                }
+            },
+            selectOrg: {
+                orgsid: []
+            },
+        }
+    },
+    created() {
+        // 鑾峰彇瑙掕壊鍒楄〃
+        this.getRoleList();
+        // 鑾峰彇鐢ㄦ埛绫诲瀷
+        this.getUserTypeList();
+        // 鑾峰彇閮ㄩ棬
+        this.getDepartList();
+    },
+    methods: {
+        // 鎻愪氦娉ㄥ唽
+        handleUser() {
+            this.$refs['user'].validate((valid) => {
+                console.log(valid);
+                if (valid) {
+                    const { user, selectOrg } = this;
+                    console.log(user);
+                    this.$axios.post('sccg/admin/register', {
+                        departmentId: selectOrg.orgsid[0],
+                        email: user.email,
+                        icon: '',
+                        isDy: `${user.isDy}`,
+                        jobTitle: user.jobTitle,
+                        mobile: user.mobile,
+                        note: '',
+                        roleIds: user.role,
+                        // nickName: user.nickName,
+                        sex: `${user.sex}`,
+                        password: user.password,
+                        userType: user.userType,
+                        username: user.username,
+                        zj: user.zjarea + `${user.zjnumber}` + user.zjother,
+                        nickName: user.nickName
+                        // departName:user.departName,
+                    }).then(res => {
+                        if (res.code === 200) {
+                            console.log(1);
+                            this.$message({
+                                type: 'success',
+                                message: res.message,
+                            })
+                            this.$emit('sendDialog', { flag: false });
+                        } else if (res.code === 500 && res.message === "鎿嶄綔澶辫触") {
+                            this.$message({
+                                type: 'warning',
+                                message: '璇ョ敤鎴峰凡娉ㄥ唽'
+                            })
+                        } else {
+                            this.$message({
+                                type: 'warning',
+                                message: res.message
+                            })
+                        }
+                    })
+                } else {
+                    return false
+                }
+            })
+        },
+        // 鑾峰彇瑙掕壊鍒楄〃
+        getRoleList() {
+            this.$axios({
+                method: 'get',
+                url: 'sccg/role/listAll',
+            })
+                .then(res => {
+                    this.roleList = res.data;
+                })
+        },
+        // 閲嶇疆琛ㄥ崟
+        resetForm() {
+            this.$refs['user'].resetFields();
+        },
+        // 鑾峰緱閮ㄩ棬鍚嶇О
+        getDepartName(data) {
+            this.departList.forEach(item => {
+                if (item.id === data) {
+                    this.user.departName = item.departName
+                }
+            })
+        },
+        // 鑾峰彇鐢ㄦ埛绫诲瀷
+        async getUserTypeList() {
+            this.typeList = await getTypeList(1, '07');
+        },
+        // 鑾峰彇閮ㄩ棬鏍�
+        getDepartList() {
+            this.$axios({
+                method: 'get',
+                url: 'sccg/depart/tree'
+            })
+                .then(res => {
+                    this.departList = res.data;
+                })
+        },
+        handleCheck(data, checked) {
+            this.user.departmentId = 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.user.departmentId = '';
+            }
+        },
+    },
+    props: ['sendDialog']
+}
+</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;
+        padding-top: 20px;
+
+        .mainContent {
+            display: flex;
+            // justify-content: center;
+            margin-top: 50px;
+            width: 100%;
+            &::v-deep .el-form-item__label {
+                color: #4b9bb7;
+            }
+
+            &::v-deep .el-input__inner {
+                background-color: #09152f;
+                border: 1px solid #17324c;
+            }
+
+            .el-form-item__content {
+                width: 400px;
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .sp-item {
+                .item-left{
+                    display: flex;
+                }
+            }
+
+            .user-item {
+                display: flex;
+                justify-content: space-between;
+                .item-left {
+                    width: 500px;
+                }
+                .item-right {
+                    line-height: 40px;
+                    color: #4b9bb7;
+                    font-size: 12px;
+                    // margin-left: 16px;
+                }
+
+                .left-px :deep(.el-form-item__content) {
+                    margin-left: 0px !important;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 50px;
+                }
+            }
+
+        }
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/device/grid/components/header/index.vue b/src/views/systemSetting/device/grid/components/header/index.vue
new file mode 100644
index 0000000..d5e5dea
--- /dev/null
+++ b/src/views/systemSetting/device/grid/components/header/index.vue
@@ -0,0 +1,110 @@
+<template>
+    <header>
+        <div class="headerContent">
+            <div class="search">
+                <span>绛涢�夋潯浠�:</span>
+                <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="search"></el-input>
+                <div class="findBtn">
+                    <el-button type="primary" @click="setSearch">鏌ヨ</el-button>
+                </div>
+            </div>
+            <div class="addUser">
+                <!-- :before-close="handleClose" -->
+                <el-button class="addBtn" type="primary" @click="dialogCreate = true">娣诲姞鐢ㄦ埛</el-button>
+                <el-dialog :visible.sync="dialogCreate" title="鏂板璐︽埛" width="60%" v-if="dialogCreate"
+                    :before-close="handleClose">
+                    <createUser @sendDialog="sendDialog" />
+                </el-dialog>
+            </div>
+        </div>
+    </header>
+</template>
+<script>
+import createUser from "../createUser";
+export default {
+    components: {
+        createUser,
+    },
+    data() {
+        return {
+            dialogCreate: false,
+            search: '',
+        }
+    },
+    methods: {
+        setSearch() {
+            this.$emit('getSearch', { text: this.search })
+        },
+        sendDialog(flag) {
+            console.log(flag);
+            this.dialogCreate = flag.flag;
+            this.$emit('setDialog', { flag: true })
+        },
+        handleClose(done) {
+            this.$confirm('纭鍏抽棴锛�')
+                .then(_ => {
+                    this.dialogCreate = false;
+                    done();
+                })
+                .catch(_ => { });
+        }
+    },
+    props: ['setDialog', 'getSearch', 'flag'],
+}
+</script>
+<style lang="scss" scoped>
+header {
+    background-color: #09152f;
+    border: 1pox solid #fff;
+
+    .headerContent {
+        padding: 0 40px;
+        display: flex;
+        line-height: 100px;
+        justify-content: space-between;
+        align-items: center;
+
+        .search {
+            display: flex;
+            justify-content: flex-start;
+
+            span {
+                flex: 1;
+            }
+
+            .el-input {
+                flex: 2;
+                color: #1d3f57;
+
+                &::v-deep .el-input__inner {
+                    background-color: #09152f;
+                    border: 1px solid #17324c;
+                }
+            }
+
+        }
+
+        .findBtn {
+            line-height: 100px;
+            margin-left: 15px;
+            display: flex;
+            align-items: center;
+            margin-top: -2px;
+
+            .el-button {
+                padding: 12px 25px;
+                border-radius: 20px;
+            }
+        }
+
+        .addBtn {
+            background-color: #eb5d01;
+            border: none;
+            border-radius: 20px;
+            padding: 12px 30px;
+        }
+
+
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/device/grid/components/main/index.vue b/src/views/systemSetting/device/grid/components/main/index.vue
new file mode 100644
index 0000000..4ccec1b
--- /dev/null
+++ b/src/views/systemSetting/device/grid/components/main/index.vue
@@ -0,0 +1,508 @@
+<template>
+    <main>
+        <div class="mainContent">
+            <!-- 鏁版嵁灞曠ず -->
+            <el-table ref="multipleTable"
+                :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
+                :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
+                @selection-change="tableChange">
+                <el-table-column type="selection" min-width="5">
+                </el-table-column>
+                <el-table-column label="鐢ㄦ埛ID" min-width="6">
+                    <template slot-scope="scope">{{ scope.row.id }}</template>
+                </el-table-column>
+                <el-table-column prop="nickName" label="鐢ㄦ埛鍚嶇О" min-width="10">
+                </el-table-column>
+                <el-table-column prop="username" label="鎵�灞炲鍚�" min-width="8">
+                </el-table-column>
+                <el-table-column prop="mobile" label="鑱旂郴鏂瑰紡" min-width="7">
+                </el-table-column>
+                <el-table-column prop="note" label="鎵�灞炶鑹�" min-width="8">
+                    <template slot-scope="scope">
+                        <span>{{filterRole(scope.row.roles)}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="departName" label="鎵�灞為儴闂�" min-width="8">
+                </el-table-column>
+                <el-table-column prop="jobTitle" label="鎵�灞炶亴鍔�" min-width="8">
+                </el-table-column>
+                <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10">
+                    <template slot-scope="scope">
+                        <span>{{changeTime(scope.row)}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="status" label="鍚敤" min-width="5">
+                    <template slot-scope="scope">
+                        <!-- @change="handleChangeStatus(scope.row)" -->
+                        <el-switch class="switchStyle" v-model="scope.row.status"
+                            active-color="#3fef9a" inactive-color="#000212" disabled>
+                        </el-switch>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
+                    <template slot-scope="scope">
+                        <div class="operation">
+                            <span @click="handleChangeRole(scope.row,'role')">淇敼瑙掕壊</span>
+                            <span class="line">|</span>
+                            <span @click="handleFind(scope.row)">鏌ョ湅</span>
+                            <span class="line">|</span>
+                            <span @click="handleChangeRole(scope.row,'password')">淇敼瀵嗙爜</span>
+                            <span class="line">|</span>
+                            <span @click="handleDelete(scope.row)">鍒犻櫎</span>
+                            <span class="line">|</span>
+                            <span @click="handleChangeRole(scope.row,'depart')">淇敼閮ㄩ棬</span>
+                        </div>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <!-- 鏌ョ湅椤甸潰 -->
+            <el-dialog :visible.sync="dialogView" width="45%" v-if="dialogView"
+                title="鏌ョ湅鐢ㄦ埛淇℃伅">
+                <MyView :userInfo=userInfo></MyView>
+            </el-dialog>
+            <!-- 淇敼椤甸潰 -->
+            <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate"
+                :title="updateFlag ? flag.role ? '淇敼鐢ㄦ埛瑙掕壊淇℃伅' : flag.depart ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅': '淇敼鐢ㄦ埛瀵嗙爜' :''"
+                :before-close="handleClose">
+                <updateUser :updateFlag="updateFlag" :userInfo=userInfo :flag=flag @closeDialog="closeDialog"
+                    :getUserList="getUserList" v-if="!flag.password" />
+                <MyPwd v-else :userInfo=userInfo @closeDialog="closeDialog"></MyPwd>
+            </el-dialog>
+            <!-- tools -->
+            <div class="tools">
+                <div class="funs">
+                    <div class="funsItem funs-sp">
+                        <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
+                    </div>
+                    <div class="funsItem funs-sp">
+                        <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
+                    </div>
+                    <div class="funsItem">
+                        <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange">
+                            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"
+                                :disabled="item.disabled">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </div>
+                <div class="pagination">
+                    <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
+                        :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
+                        @next-click="handleNext">
+                    </el-pagination>
+                </div>
+            </div>
+        </div>
+    </main>
+</template>
+<script>
+import helper from '@/utils/mydate'
+import updateUser from '../updateUser';
+import MyPwd from '../password'
+import MyView from '../myView'
+export default {
+    components: {
+        updateUser, MyPwd,MyView
+    },
+    data() {
+        return {
+            tableData: [],
+            search: "",
+            dialogUpdate: false,
+            dialogView:false,
+            updateFlag: false,
+            userInfo: '',
+            totalNum: 0,
+            pageSize: 10,
+            currentPage: 1,
+            renderFlag: false,
+            flag: {
+                role: false,
+                password: false,
+                depart: false,
+            },
+            all: false,
+            unsame: false,
+            myIdx: 0,
+            preMyIdx: 0,
+            options: [
+                {
+                    value: 0,
+                    label: '鎵归噺鎿嶄綔',
+                    disabled: true,
+                },
+                {
+                    value: 1,
+                    label: '鎵归噺鍚敤',
+                },
+                {
+                    value: 2,
+                    label: '鎵归噺绂佺敤',
+                },
+                {
+                    value: 3,
+                    label: '鎵归噺鍒犻櫎',
+                }
+            ],
+            tempList: []
+        }
+    },
+    created() {
+        this.getUserList();
+    },
+    methods: {
+        async selectChange(list) {
+            console.log(this.tempList);
+            if (this.tempList.length !== 0) {
+                this.preMyIdx = list;
+                if (list === 3) {
+                    await this.mulDelte(this.tempList);
+                } else if (list === 2) {
+                    await this.mulUpdateStatus(this.tempList, 0);
+                } else {
+                    await this.mulUpdateStatus(this.tempList, 1);
+                }
+                this.myIdx = 0;
+            } else {
+                this.myIdx = this.preMyIdx;
+                this.$message({
+                    type: 'warning',
+                    message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
+                })
+            }
+        },
+        tableChange(list) {
+            this.tempList = [];
+            list.forEach(item => {
+                this.tempList.push(item.id);
+            })
+            if (list.length === this.tableData.length) {
+                this.all = true;
+            } else {
+                this.all = false
+            }
+        },
+        // 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅
+        mulDelte(idArr) {
+            console.log(idArr);
+            this.$confirm("鎮ㄧ‘瀹氳杩涜鎵归噺鍒犻櫎鐢ㄦ埛鍚�?")
+                .then(_ => {
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/admin/deleteBatch?ids=' + idArr,
+                    })
+                        .then(res => {
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '鍒犻櫎鐢ㄦ埛淇℃伅鎴愬姛',
+                                })
+                                this.getUserList();
+                            } else {
+                                this.$message({
+                                    type: 'error',
+                                    message: res.message
+                                })
+                            }
+                            console.log(res);
+                        })
+                })
+                .catch(err => { console.log(err) })
+        },
+        // 鎵归噺淇敼璐﹀彿
+        mulUpdateStatus(idArr, flag) {
+            console.log(flag);
+            this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤鐢ㄦ埛鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤鐢ㄦ埛鍚�?')
+                .then(_ => {
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/admin/updateStatusBatch?ids=' + idArr + '&status=' + flag,
+                    })
+                        .then(res => {
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�',
+                                })
+                                this.getUserList();
+                            } else {
+                                this.$message({
+                                    type: 'error',
+                                    message: res.message
+                                })
+                            }
+                            console.log(res);
+                        })
+                })
+                .catch(err => { console.log(err) })
+        },
+        changeTime({ createTime }) {
+            return helper(createTime);
+        },
+        selectAll() {
+            this.$refs.multipleTable.toggleAllSelection();
+        },
+        disSame(list) {
+            list.forEach(row => {
+                this.$refs.multipleTable.toggleRowSelection(row)
+            })
+        },
+        // 鍒犻櫎鐢ㄦ埛
+        handleDelete({ id }) {
+            this.$confirm('纭鍒犻櫎锛�').then(_ => {
+                this.$axios({
+                    method: 'post',
+                    url: 'sccg/admin/delete/' + id,
+                }).then(res => {
+                    console.log(res);
+                    this.$message({
+                        message: res.message,
+                        type: 'success'
+                    })
+                    this.getUserList();
+                })
+            }).catch(_ => { })
+        },
+        closeDialog({ flag }) {
+            this.dialogUpdate = flag;
+            this.getUserList();
+        },
+        handleClose(done) {
+            if (this.updateFlag) {
+                this.$confirm('纭鍏抽棴锛�')
+                    .then(_ => {
+                        this.dialogUpdate = false;
+                        this.updateFlag = false;
+                        done();
+                    })
+                    .catch(_ => { });
+            }else{
+                done();
+            }
+        },
+        // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+        changeCurrentPage(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        // 涓婁竴椤电偣鍑讳簨浠�
+        handlePrev(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        // 涓嬩竴椤电偣鍑讳簨浠�
+        handleNext(page) {
+            this.currentPage = page;
+            this.getUserList();
+        },
+        // 淇敼瑙掕壊
+        handleChangeRole(obj, mykey) {
+            this.dialogUpdate = true;
+            this.updateFlag = true;
+            for (let key in this.flag) {
+                if (key == mykey) {
+                    this.flag[key] = true;
+                } else {
+                    this.flag[key] = false;
+                }
+            }
+            this.userInfo = obj;
+        },
+        // 淇敼鐢ㄦ埛鐘舵��
+        handleChangeStatus(obj) {
+            let { id, status } = obj;
+            status == true ? status = 1 : status = 0;
+            this.$axios.post(`sccg/admin/updateStatus/` + id + '?status=' + status).then(res => {
+                console.log(res);
+            })
+        },
+        // 鑾峰彇鐢ㄦ埛鍒楄〃
+        getUserList() {
+            const that = this;
+            const { currentPage, pageSize, search } = this;
+            // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜)
+            this.$axios.get(`sccg/admin/list?keyword=${search}&current=${currentPage}&pageSize=${pageSize}`).then(res => {
+                if (res.code === 200) {
+                    res.data.records.forEach(item => {
+                        item.status == 1 ? item.status = true : item.status = false;
+                    })
+                    that.totalNum = res.data.total;
+                    that.tableData = res.data.records;
+                    this.renderFlag = true;
+                }
+            })
+        },
+        // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼)
+        handleFind(rowData) {
+            this.dialogView = true;
+            this.userInfo = rowData;
+        },
+        // 璁剧疆琛ㄦ牸鏂戦┈绾�
+        tableRowClassName({ row, rowIndex }) {
+            if ((rowIndex + 1) % 2 == 0) {
+                return 'warning-row';
+            } else {
+                return 'success-row';
+            }
+            return '';
+        },
+        // 澶勭悊鐢ㄦ埛鎵�灞炶鑹�
+        filterRole(arr){
+            let str = '';
+            if(arr.length === 0){
+                return;
+            }
+            arr.forEach((item,index)=>{
+                if(item!==null){
+                    if(index<arr.length-1){
+                        str+=item.name +',';
+                    }else{
+                        str+=item.name;
+                    }
+                }
+            })
+            return str;
+        }
+    },
+    props: ['refresh', 'keyword', 'resetFresh'],
+    watch: {
+        refresh: {
+            handler(newValue, oldValue) {
+                if (newValue == true) {
+                    this.search = '';
+                    if (this.keyword != '') {
+                        this.search = this.keyword;
+                    }
+                    this.currentPage = 1;
+                    this.getUserList();
+                    this.$emit('resetFresh', { flag: false })
+                }
+            },
+            immediate: true
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+main {
+    background-color: #09152f;
+    margin-top: 20px;
+    padding-bottom: 50px;
+    border: 1pox solid #fff;
+
+    .mainTitle {
+        line-height:60px;
+    }
+
+    .tools {
+        display : flex;
+        justify-content: space-between;
+        align-items: center;
+        padding: 0 20px;
+
+        .funs {
+            display: flex;
+            .funs-sp{
+                border: 1px solid #17324c;
+            }
+            .funsItem {
+                line-height: 28px;
+                display: flex;
+                align-items: center;
+                border-radius: 4px;
+                font-size: 12px;
+                margin-left: 10px;
+
+                .el-checkbox {
+                    width: 80px;
+                    padding: 0 10px;
+                }
+
+                .el-select {
+                    width: 120px;
+                }
+
+                &::v-deep .el-input__inner {
+                    border: none;
+                    background-color: #09152f;
+                }
+
+                &:hover {
+                    border: 1px solid #4b9bb7;
+                }
+
+                &:hover .el-checkbox {
+                    color: #4b9bb7;
+                }
+            }
+
+        }
+
+        .pagination {
+            margin-top: 50px;
+            display: flex;
+            line-height: 50px;
+            justify-content: center;
+
+            .el-pagination {
+
+                &::v-deep li,
+                &::v-deep .btn-prev,
+                &::v-deep .btn-next {
+                    background-color: #071f39;
+                    color: #4b9bb7;
+                }
+
+                &::v-deep .active {
+                    background-color: #409eff;
+                    color: #fff;
+                }
+            }
+        }
+    }
+
+    .el-table {
+        color: #4b9bb7;
+        font-size: 10px;
+        .operation {
+            display: flex;
+            font-size: 10px;
+            .line {
+                padding: 0 1px;
+            }
+
+            span:hover {
+                cursor: pointer;
+            }
+        }
+    }
+    // &::v-deep .switchStyle .el-switch__label {
+    //     position: absolute;
+    //     display: none;
+    //     color: #fff;
+    // }
+
+    // &::v-deep .el-switch__core {
+    //     background-color: rgba(166, 166, 166, 1);
+    // }
+
+    // &::v-deep .switchStyle .el-switch__label--left {
+    //     z-index: 9;
+    //     left: 20px;
+    // }
+
+    // &::v-deep .switchStyle .el-switch__label--right {
+    //     z-index: 9;
+    //     left: 4px;
+    // }
+
+    // &::v-deep .switchStyle .el-switch__label.is-active {
+    //     display: block;
+    // }
+
+    // &::v-deep .switchStyle.el-switch .el-switch__core,
+    // &::v-deep .el-switch .el-switch__label {
+    //     width: 56px !important;
+    // }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/device/grid/components/myView/index.vue b/src/views/systemSetting/device/grid/components/myView/index.vue
new file mode 100644
index 0000000..8608360
--- /dev/null
+++ b/src/views/systemSetting/device/grid/components/myView/index.vue
@@ -0,0 +1,202 @@
+<template>
+    <div class="updateUser">
+        <main>
+            <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
+                    label-position="right">
+                    <!-- 鐢ㄦ埛鍚嶇О -->
+                    <el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="username">
+                        <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О" disabled></el-input>
+                    </el-form-item>
+                    <!-- 鐢ㄦ埛瀵嗙爜 -->
+                    <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password">
+                        <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" disabled>
+                        </el-input>
+                    </el-form-item>
+                    <!-- 鎵�灞炵敤鎴峰鍚� -->
+                    <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="nickName">
+                        <el-input v-model="user.nickName" placeholder="璇峰~鍐欑敤鎴峰鍚�" disabled></el-input>
+                    </el-form-item>
+                    <!-- 鎬у埆 -->
+                    <el-form-item class="optionItem" label="鎬у埆:" prop="sex">
+                        <el-radio-group v-model="user.sex" disabled>
+                            <el-radio :label="1">鐢�</el-radio>
+                            <el-radio :label="0">濂�</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                    <!-- 鏄惁鍏氬憳 -->
+                    <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy">
+                        <el-radio-group v-model="user.isDy" disabled>
+                            <el-radio :label="1">鏄�</el-radio>
+                            <el-radio :label="0">鍚�</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                    <!-- 鎵�灞炴墜鏈哄彿鐮� -->
+                    <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile">
+                        <el-input v-model="user.mobile" placeholder="璇峰~鍐欐墜鏈哄彿鐮�" disabled></el-input>
+                    </el-form-item>
+                    <!-- 閭鍦板潃 -->
+                    <el-form-item class="optionItem" label="閭鍦板潃:" prop="email">
+                        <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�" disabled></el-input>
+                    </el-form-item>
+                    <!-- 閫夋嫨瑙掕壊 -->
+                    <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role">
+                        <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags
+                        disabled>
+                            <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <!-- 鐢ㄦ埛绫诲瀷 -->
+                    <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType">
+                        <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷" disabled>
+                            <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <!-- 鎵�灞為儴闂� -->
+                    <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId">
+                        <el-input  v-model="user.departName"></el-input>
+                    </el-form-item>
+                    <!-- 褰撳墠鑱屽姟 -->
+                    <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle">
+                        <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�" disabled></el-input>
+                    </el-form-item>
+                    <!-- 濉啓鎵�灞瀖ac鍦板潃 -->
+                    <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac">
+                        <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃" disabled></el-input>
+                    </el-form-item>
+                    <!-- 濉啓鎵�灞瀒p鍦板潃 -->
+                    <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip">
+                        <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃" disabled></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </main>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            user: {
+            },
+            createUserRules: {
+            },
+            roleList: [
+               
+            ],
+            typeList: [],
+            departList: [],
+        }
+    },
+    created() {
+        const that = this;
+        this.user = JSON.parse(JSON.stringify(that.userInfo));
+        this.user.departName  = this.user.departName ? this.user.departName : '鏆傛棤鎵�灞為儴闂�'
+        // 鑾峰彇鎵�鏈夎鑹插垪琛�
+        this.getRoleList();
+        // 鑾峰彇褰撳墠鐢ㄦ埛瑙掕壊鍒楄〃
+        this.getUserRole(this.user.id)
+        // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃
+        this.$axios.get('/sccg/depart/tree').then(res => {
+            this.departList = res.data;
+        })
+    },
+    methods: {
+        // 鑾峰彇瑙掕壊鍒楄〃
+        getRoleList() {
+            this.$axios({
+                method: 'get',
+                url: 'sccg/role/listAll',
+            })
+                .then(res => {
+                    this.roleList = res.data;
+                })
+        },
+        // 鑾峰彇鐢ㄦ埛鐨勮鑹插垪琛�
+        getUserRole(id) {
+            this.$axios({
+                method: 'get',
+                url: `sccg/admin/role/${id}`
+            })
+                .then(res => {
+                    const arr = [];
+                    res.data.forEach(item => {
+                        arr.push(item.id);
+                    })
+                    this.user.role = arr;
+                })
+        },
+    },
+    props: ['userInfo']
+}
+</script>
+<style lang="scss" scoped>
+.updateUser {
+    border-radius: 1px;
+    background-color: #09152f;
+
+    :deep(.el-tag) {
+        background-color: #09152f;
+    }
+
+    .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
+        background-color: #09152f;
+        color: #4b9bb7;
+    }
+
+    main {
+        text-align: left;
+        padding: 0 55px;
+        background-color: #09152f;
+        padding-bottom: 50px;
+
+        .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;
+
+                .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;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/device/grid/components/password/index.vue b/src/views/systemSetting/device/grid/components/password/index.vue
new file mode 100644
index 0000000..90e5ed3
--- /dev/null
+++ b/src/views/systemSetting/device/grid/components/password/index.vue
@@ -0,0 +1,145 @@
+<template>
+    <div class="password">
+        <el-form ref="pwd" label-width="140px" autoComplete="on" :model="user" :rules="passrules">
+            <!-- 鍒濆瀵嗙爜 -->
+            <el-form-item class="optionItem" label="鍒濆瀵嗙爜:" prop="password">
+                <el-input v-model="user.password" type="password" placeholder="璇峰~鍐欏垵濮嬪瘑鐮�"></el-input>
+            </el-form-item>
+            <!-- 鏂板瘑鐮� -->
+            <el-form-item class="optionItem" label="鏂板瘑鐮�:" prop="newPwd">
+                <el-input v-model="user.newPwd" type="password" placeholder="璇峰~鍐欐柊瀵嗙爜"></el-input>
+            </el-form-item>
+            <!-- 鏂板瘑鐮� -->
+            <el-form-item class="optionItem" label="纭鏂板瘑鐮�:" prop="secondPwd">
+                <el-input v-model="user.secondPwd" type="password" placeholder="纭鎮ㄧ殑鏂板瘑鐮�"></el-input>
+            </el-form-item>
+
+        </el-form>
+        <div class="pwd-footer">
+            <el-button @click="resetForm">鍙栨秷</el-button>
+            <el-button type="primary" @click="handleSubmit">鎻愪氦</el-button>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        const checkPwd = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error('鍒濆瀵嗙爜涓嶈兘涓虹┖'))
+            } else {
+                callback();
+            }
+        }
+        const checkNewPwd = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error('鏂板瘑鐮佷笉鑳戒负绌�'))
+            }else if(value === this.user.password){
+                callback(new Error('鏂板瘑鐮佷笉鑳藉拰鏃у瘑鐮佷竴鏍�'))
+            } else {
+                callback();
+            }
+        }
+        const checkSame = (rule, value, callback) => {
+            if (!value) {
+                callback(new Error('纭瀵嗙爜涓嶈兘涓虹┖'))
+            } else if (value !== this.user.newPwd) {
+                console.log(111);
+                callback(new Error('鎮ㄨ緭鍏ョ殑涓ゆ瀵嗙爜缁撴灉涓嶅悓'));
+            } else {
+
+                callback();
+            }
+        }
+        return {
+            user: {
+                password: '',
+                secondPwd: '',
+                newPwd: '',
+            },
+            passrules: {
+                password: [
+                    {
+                        required: true,
+                        trigger: 'blur',
+                        validator: checkPwd
+                    },
+                ],
+                secondPwd: [
+                    {
+                        required: true,
+                        trigger: 'blur',
+                        validator: checkSame
+                    }
+                ],
+                newPwd: [
+                    {
+                        required: true,
+                        trigger: 'blur',
+                        validator: checkNewPwd
+                    }
+                ]
+            }
+        }
+    },
+    props: ['userInfo', 'closeDialog'],
+    created() {
+
+    },
+    methods: {
+        // 鎻愪氦
+        handleSubmit() {
+            const { userInfo,user } = this;
+            this.$refs.pwd.validate((valid) => {
+                if (valid) {
+                    this.$axios({
+                        method:'post',
+                        url:'sccg/admin/updatePassword',
+                        data:{
+                            newPassword:user.newPwd,
+                            oldPassword:user.password,
+                            username:userInfo.username
+                        }
+                    })
+                    .then(res=>{
+                        if(res.code === 200){
+                            this.$emit('closeDialog',{flag:false});
+                            this.$message({
+                                type:'success',
+                                message:'瀵嗙爜淇敼鎴愬姛'
+                            })
+                        }else{
+                            this.$message({
+                                type:'warning',
+                                message:res.message
+                            })
+                        }
+                    })
+                } else {
+                    return false;
+                }
+            })
+        },
+        // 娓呯┖琛ㄥ崟
+        resetForm() {
+            this.$refs.pwd.resetFields();
+            this.$emit('closeDialog',{flag:false});
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.password {
+    padding: 50px 100px;
+
+    ::v-deep .el-input__inner {
+        background-color: #09152f;
+        border: 1px solid #17324c;
+    }
+
+    .pwd-footer {
+        display: flex;
+        justify-content: center;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/device/grid/components/updateUser/index.vue b/src/views/systemSetting/device/grid/components/updateUser/index.vue
new file mode 100644
index 0000000..80a74ab
--- /dev/null
+++ b/src/views/systemSetting/device/grid/components/updateUser/index.vue
@@ -0,0 +1,291 @@
+<template>
+    <div class="updateUser">
+        <main>
+            <div class="mainContent">
+                <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
+                    label-position="right">
+                    <!-- 閫夋嫨瑙掕壊 -->
+                    <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role" v-if="flag.role">
+                        <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags>
+                            <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <!-- 鎵�灞為儴闂� -->
+                    <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId" v-else>
+                        <el-select v-model="user.departName" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart">
+                            <el-option :value="mylabel">
+                                <el-tree ref="tree" :check-strictly="true" :data="departList" :props="defaultProps"
+                                    show-checkbox @check-change="handleCheck"
+                                    :default-checked-keys="[selectOrg.orgsid[0],]" default-expand-all node-key="id">
+                                </el-tree>
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item>
+                        <div class="optionBtn">
+                            <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦
+                            </el-button>
+                        </div>
+                    </el-form-item>
+                </el-form>
+
+            </div>
+        </main>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            user: {
+            },
+            createUserRules: {
+            },
+            roleList: [
+
+            ],
+            departList: [],
+            mylabel: "",
+            defaultProps: {
+                children: "children",
+                label: "departName",
+            },
+            selectOrg: {
+                orgsid: [],
+            },
+            tempName: '',
+            tempRole: []
+        }
+    },
+    created() {
+        this.user = JSON.parse(JSON.stringify(this.userInfo));
+        this.tempName = this.user.departName;
+        this.selectOrg.orgsid.push(this.user.departmentId);
+        // 鑾峰彇鎵�鏈夎鑹插垪琛�
+        this.getRoleList();
+        // 鑾峰彇褰撳墠鐢ㄦ埛瑙掕壊鍒楄〃
+        this.getUserRole(this.user.id)
+        // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃
+        this.$axios.get('/sccg/depart/tree').then(res => {
+            this.departList = res.data;
+        })
+    },
+    methods: {
+        // 淇敼閮ㄩ棬
+        changeDepart(data) {
+            this.departList.forEach(item => {
+                if (item.id === data) {
+                    this.user.departName = item.departName;
+                }
+            })
+        },
+        // 淇敼鐢ㄦ埛淇℃伅
+        handleUser() {
+            const { flag, user, tempName, selectOrg, tempRole, isArraySame } = this;
+            let umsDepartManage={userId:user.id,departId:selectOrg.orgsid[0]}
+            this.$refs.user.validate((valid) => {
+                if (valid) {
+                    user.isDy = `${user.isDy}`;
+                    if (flag.depart) {
+                        if (tempName === user.departName) {
+                            this.$message({
+                                type: 'warning',
+                                message: '鎮ㄧ殑閮ㄩ棬杩樻湭鏇存敼'
+                            })
+                        } else {
+                            if (user.departName) {
+                                this.$axios({
+                                    method: 'put',
+                                    url: `/sccg/depart/user_update_depart?userId=`+user.id+'&departId='+selectOrg.orgsid[0]
+                                })
+                                    .then(res => {
+                                        this.$message({
+                                            type: res.code === 200 ? 'success' : 'warning',
+                                            message: res.message,
+                                        })
+                                        this.getUserList();
+                                        this.$emit('closeDialog', { flag: false });
+                                    })
+                            } else {
+                                this.$message({
+                                    type: 'warning',
+                                    message: '鐢ㄦ埛閮ㄩ棬涓嶈兘涓虹┖'
+                                })
+                            }
+                        }
+
+                    } else {
+                        if (user.role.length === 0) {
+                            this.$message({
+                                type: 'warning',
+                                message: '鐢ㄦ埛瑙掕壊涓嶈兘涓虹┖',
+                            })
+                        }
+                        else if (isArraySame(tempRole, user.role) && tempRole.length === user.role.length) {
+                            this.$message({
+                                type: 'warning',
+                                message: '鎮ㄨ繕鏈洿鏀硅鑹�',
+                            })
+                        }
+                        else {
+                            this.$axios({
+                                method: 'post',
+                                url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds=' + user.role,
+                            })
+                                .then(res => {
+                                    this.$message({
+                                        type: res.code === 200 ? 'success' : 'warning',
+                                        message: res.message,
+                                    })
+                                    this.getUserList();
+                                    this.$emit('closeDialog', { flag: false });
+                                })
+                        }
+                    }
+                } else {
+                    return false;
+                }
+            })
+        },
+        // 鑾峰彇瑙掕壊鍒楄〃
+        getRoleList() {
+            this.$axios({
+                method: 'get',
+                url: 'sccg/role/listAll',
+            })
+                .then(res => {
+                    this.roleList = res.data;
+                })
+        },
+        // 鑾峰彇鐢ㄦ埛鐨勮鑹插垪琛�
+        getUserRole(id) {
+            this.$axios({
+                method: 'get',
+                url: `sccg/admin/role/${id}`
+            })
+                .then(res => {
+                    const arr = [];
+                    res.data.forEach(item => {
+                        arr.push(item.id);
+                    })
+                    this.user.role = arr;
+                    this.tempRole = arr;
+                })
+        },
+        // 閮ㄩ棬淇敼
+        handleCheck(data, checked) {
+            console.log(this.selectOrg.orgsid[0])
+            this.user.departName = 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.user.departName = ''
+            }
+        },
+        // 鍒ゆ柇鏁扮粍鏄惁鐩哥瓑
+        isArraySame(arr1, arr2) {
+            let flag = true
+            arr1.sort((a, b) => a - b)
+            arr2.sort((a, b) => a - b)
+            arr1.forEach(item => {
+                arr2.forEach(child => {
+                    if (item !== child) {
+                        flag = false
+                    }
+                })
+            })
+            return flag
+        }
+    },
+    props: ['userInfo', 'flag', 'closeDialog', 'getUserList']
+}
+</script>
+<style lang="scss" scoped>
+.updateUser {
+    border-radius: 1px;
+    background-color: #09152f;
+
+    :deep(.el-tag) {
+        background-color: #09152f;
+    }
+
+    .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
+        background-color: #09152f;
+        color: #4b9bb7;
+    }
+
+    main {
+        text-align: left;
+        padding: 0 55px;
+        background-color: #09152f;
+        padding-bottom: 50px;
+
+        .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;
+
+                .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;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/device/grid/index.vue b/src/views/systemSetting/device/grid/index.vue
index 2baad4a..4faf378 100644
--- a/src/views/systemSetting/device/grid/index.vue
+++ b/src/views/systemSetting/device/grid/index.vue
@@ -1,5 +1,49 @@
 <template>
-    <div class="grid">
-      222
+    <div class="userList">
+        <myHeader @setDialog="changeDialog" @getSearch="getSearch"></myHeader>
+        <myMain :refresh="isFresh" :keyword="keyword" @resetFresh="resetFresh" />
     </div>
-</template>
\ No newline at end of file
+</template>
+<script>
+import myHeader from "./components/header"
+import myMain from "./components/main"
+export default {
+    components: {
+        myHeader,
+        myMain
+    },
+    data() {
+        return {
+            isFresh: false,
+            keyword: '',
+        }
+    },
+    created(){
+        
+    },
+    methods: {
+        // 鑾峰彇鎼滅储杩斿洖缁撴灉
+        getSearch({ text }) {
+            this.keyword = text;
+            this.isFresh = true;
+        },
+        // 鑾峰彇鍒锋柊缁撴灉
+        changeDialog({ flag }) {
+            console.log(flag);
+            this.isFresh = flag;
+        },
+        // 閲嶇疆isFresh
+        resetFresh({ flag }) {
+            this.isFresh = flag;
+            console.log(this.isFresh);
+        },
+    }
+}
+</script>
+<style lang="scss" scoped>
+.userList {
+    text-align: left;
+    margin: 10px 20px;
+    color: #4b9bb7;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/video/index.vue b/src/views/video/index.vue
index 9242469..995f959 100644
--- a/src/views/video/index.vue
+++ b/src/views/video/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button @click="getRegion">鑾峰彇鍦板潃涓夌骇鑱斿姩</el-button>
+    <el-button @click="getRegion">1111111</el-button>
   </div>
 </template>
 

--
Gitblit v1.8.0