From 999f9a47da7783388d0214b9f8d987ea2d9f2916 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期一, 11 四月 2022 13:55:05 +0800
Subject: [PATCH] 子账户管理新

---
 src/views/personalCenter/components/SubAccount.vue |  504 ++++++++++++++-------------
 src/views/personalCenter/components/TreeBox.vue    |   13 
 /dev/null                                          |   89 ----
 src/views/personalCenter/components/BasicInfo.vue  |  374 ++++++--------------
 src/api/user.ts                                    |   77 +--
 src/views/personalCenter/components/StepCard.vue   |    4 
 6 files changed, 411 insertions(+), 650 deletions(-)

diff --git a/src/api/user copy.ts b/src/api/user copy.ts
deleted file mode 100644
index 0cc8dbd..0000000
--- a/src/api/user copy.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import request from "@/scripts/httpRequest";
-import qs from "qs";
-
-export const getUsers = () => {
-  return request({
-    url: "/data/api-u/users/findAllUser",
-    method: "get"
-  });
-};
-
-
-export const getSysMenus = () => {
-  return request({
-    url: "/data/api-u/sysmenus/tree",
-    method: "get"
-  });
-};
-
-export const getUserMenus = (query: any) => {
-  return request({
-    url: "/data/api-u/users/findById",
-    method: "post",
-    data: qs.stringify(query)
-  });
-};
-
-export const updataUser = (params: any) => {
-  return request({
-    url: "/data/api-u/users/saveAuth",
-    method: "post",
-    data: params
-  });
-};
-
-export const uploadHeadPic = (params: any) => {
-  return request({
-    url: "/data/api-u/users/uploadHeadPic",
-    method: "post",
-    data: params
-  });
-};
-
-export const addUser = (params: any) => {
-  return request({
-    url: "/data/api-u/users/add",
-    method: "post",
-    data: params
-  });
-};
-
-export const updateUser = (params: any) => {
-  return request({
-    url: "/data/api-u/users/updateProfile",
-    method: "post",
-    data: params
-  });
-};
-
-export const updatePassword = (params: any) => {
-  return request({
-    url: "/data/api-u/users/updatePwd",
-    method: "post",
-    data: qs.stringify(params)
-  });
-};
-
-export const deleteUser = (params: any) => {
-  return request({
-    url: "/data/api-u/users/delUser",
-    method: "post",
-    data: params
-  });
-};
-
-
-export const defHeadPics = () => {
-  return request({
-    url: "/data/api-u/users/defHeadPics",
-    method: "get"
-  });
-};
-
-
-export const getRoles = () => {
-  return request({
-    url: "/data/api-v/role/findAll",
-    method: "get"
-  });
-};
\ No newline at end of file
diff --git a/src/api/user.ts b/src/api/user.ts
index 3b089eb..7dcfbd4 100644
--- a/src/api/user.ts
+++ b/src/api/user.ts
@@ -9,9 +9,9 @@
 "type": 0,
 "userId": "string" 
 */
-export const getMembers = (params: any) => {
+export const findUserList = (params: any) => {
   return request({
-    url: "/data/api-u/user/findUserList",
+    url: "/saas/api-u/user/findUserList",
     method: "post",
     data: params
   });
@@ -24,30 +24,25 @@
 "type": 0,
 "userId": "string" 
 */
-export const getManager = (params: any) => {
+export const getManagerList = (params: any) => {
   return request({
-    url: "/data/api-u/user/findManagerList",
+    url: "/saas/api-u/user/findManagerList",
     method: "post",
     data: params
   });
 };
-/* 淇濆瓨娉ㄥ唽浼氬憳
-  "id": "string",
-  "areaId": 0,
-  "chPwdFirstLogin": true,
-  "companyName": "string",
-  "contact": "string",
-  "email": "string",
-  "industryId": "string",
-  "password": "string",
-  "trueName": "string",
-  "type": 0,
-  "userType": 0,
-  "username": "string"
-*/
+
+export const saveSubUser = (params: any) => {
+  return request({
+    url: "/saas/api-u/user/saveSubUser",
+    method: "post",
+    data: params
+  });
+};
+
 export const saveMember = (params: any) => {
   return request({
-    url: "/data/api-u/user/saveUser",
+    url: "/saas/api-u/user/saveUser",
     method: "post",
     data: params
   });
@@ -55,57 +50,41 @@
 /* 
   鑾峰彇褰撳墠鐢ㄦ埛鍙鑿滃崟
 */
-export const getCheckedMenu = () => {
+export const getMenu = () => {
   return request({
-    url: "/data/api-u/menu/tree",
+    url: "/saas/api-u/menu/tree",
     method: "get"
   });
 };
 
-/* 
-  淇濆瓨杩愯惀鐢ㄦ埛
-  "chPwdFirstLogin": true,
-  "email": "string",
-  "id": "string",
-  "menuIds": [
-    "string"
-  ],
-  "isChangePwd": "string"
-  "password": "string",
-  "pos": "string",
-  "trueName": "string",
-  "username": "string"
-*/
+export const getDataTree = (params) => {
+  return request({
+    url: "/saas/api-u/user/dataTree",
+    method: "post",
+    data: params
+  });
+};
+
 export const saveManager = (params: any) => {
   return request({
-    url: "/data/api-u/user/saveManager",
+    url: "/saas/api-u/user/saveManager",
     method: "post",
     data: params
   });
 };
 
-/* 
-  鏌ヨ鐢ㄦ埛鐨勭粺璁′俊鎭細
-  "userId": "",
-*/
 export const statisticByUser = (params: any) => {
   return request({
-    url: "/data/api-s/statistic/statisticByUser",
+    url: "/saas/api-s/statistic/statisticByUser",
     method: "post",
     data: params
   });
 };
 
-export const getSysMenus = () => {
-  return request({
-    url: "/data/api-u/menu/tree",
-    method: "get"
-  });
-};
 
 export const getUserMenus = (query: any) => {
   return request({
-    url: "/data/api-u/users/findById",
+    url: "/saas/api-u/users/findById",
     method: "post",
     data: qs.stringify(query)
   });
@@ -113,7 +92,7 @@
 
 export const updataUser = (params: any) => {
   return request({
-    url: "/data/api-u/users/saveAuth",
+    url: "/saas/api-u/users/saveAuth",
     method: "post",
     data: params
   });
diff --git a/src/views/personalCenter/components/BasicInfo.vue b/src/views/personalCenter/components/BasicInfo.vue
index 934021f..bd41987 100644
--- a/src/views/personalCenter/components/BasicInfo.vue
+++ b/src/views/personalCenter/components/BasicInfo.vue
@@ -1,9 +1,9 @@
 <template>
   <div class="basic-info">
-    <div class="head-name">瀛愯处鎴风鐞�</div>
+    <div class="head-name">鍩烘湰璧勬枡</div>
 
     <el-form
-      :model="ruleForm"
+      :model="userInfo"
       :rules="rules"
       :label-position="'left'"
       ref="ruleForm"
@@ -11,60 +11,59 @@
       class="add-ruleForm"
     >
       <div class="area-title">鍩烘湰淇℃伅</div>
-      <el-form-item label="鐢ㄦ埛鍚�" prop="name">
-        <el-input v-model="ruleForm.name" style="width: 200px"></el-input>
+      <el-form-item label="鐢ㄦ埛鍚�" prop="username">
+        <el-input v-model="userInfo.username" style="width: 200px"></el-input>
       </el-form-item>
       <el-form-item label="娉ㄥ唽绫诲瀷" prop="type">
-        <el-radio v-model="ruleForm.type" label="1">涓汉</el-radio>
-        <el-radio v-model="ruleForm.type" label="2">鍏徃</el-radio>
+        <el-radio-group v-model="userInfo.userType">
+          <el-radio :label="1">涓汉</el-radio>
+          <el-radio :label="2">鍏徃</el-radio>
+        </el-radio-group>
       </el-form-item>
 
-      <el-form-item label="濮撳悕" prop="name">
-        <el-input v-model="ruleForm.name" style="width: 200px"></el-input>
+      <el-form-item label="濮撳悕" prop="trueName">
+        <el-input v-model="userInfo.trueName" style="width: 200px"></el-input>
       </el-form-item>
 
-      <div class="area-title" style="margin-top: 60px">涓氬姟淇℃伅</div>
+      <div class="area-title" style="margin-top: 50px">涓氬姟淇℃伅</div>
 
-      <el-form-item label="琛屼笟搴旂敤" prop="region">
+      <el-form-item label="琛屼笟搴旂敤" prop="industryId">
         <el-select
-          v-model="ruleForm.region"
-          placeholder="璇烽�夋嫨琛屼笟搴旂敤"
+          v-model="userInfo.industryId"
+          placeholder="琛屼笟"
           style="width: 410px"
         >
-          <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-          <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+          <el-option
+            v-for="(item, index) in industrys"
+            :label="item.name"
+            :value="item.id"
+            :key="index"
+          ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="鍏徃鍚嶇О" prop="region">
-        <el-input v-model="ruleForm.name" style="width: 410px"></el-input>
+      <el-form-item label="鍏徃鍚嶇О" prop="companyName">
+        <el-input
+          v-model="userInfo.companyName"
+          style="width: 410px"
+        ></el-input>
       </el-form-item>
 
-      <div class="area-title" style="margin-top: 60px">鑱旂郴淇℃伅</div>
+      <div class="area-title" style="margin-top: 50px">鑱旂郴淇℃伅</div>
 
-      <el-form-item label="鎵�鍦ㄥ湴鍖�" prop="region">
-        <el-select
-          v-model="ruleForm.region"
-          placeholder="璇烽�夋嫨鍩庡競"
-          style="width: 200px; margin-right: 10px"
-        >
-          <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-          <el-option label="鍖哄煙浜�" value="beijing"></el-option>
-        </el-select>
-        <el-select
-          v-model="ruleForm.region"
-          placeholder="璇烽�夋嫨鍖�"
-          style="width: 200px"
-        >
-          <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-          <el-option label="鍖哄煙浜�" value="beijing"></el-option>
-        </el-select>
+      <el-form-item label="鎵�鍦ㄥ湴鍖�" prop="areaId">
+        <el-cascader
+          v-model="userInfo.address"
+          :props="options"
+          style="width: 410px"
+          @change="handleChange"
+        ></el-cascader>
       </el-form-item>
-      <el-form-item label="鎵嬫満鍙�" prop="name">
-        <el-input v-model="ruleForm.name" style="width: 200px"></el-input>
+      <el-form-item label="鎵嬫満鍙�" prop="phoneNum">
+        <el-input v-model="userInfo.phoneNum" style="width: 200px"></el-input>
       </el-form-item>
 
-      <el-form-item label="閭" prop="name">
-        <el-input v-model="ruleForm.password" style="width: 410px"></el-input>
+      <el-form-item label="閭" prop="email">
+        <el-input v-model="userInfo.email" style="width: 410px"></el-input>
       </el-form-item>
     </el-form>
     <div class="btns">
@@ -74,6 +73,8 @@
 </template>
 
 <script>
+import { getUserInfo, getAreas, getDic, entireUserInfo } from "@/api/login";
+
 export default {
   components: {},
   data() {
@@ -85,23 +86,50 @@
       page: 1,
       size: 10, //鍒嗛〉鐩稿叧
       inputText: "", //杈撳叆妗嗗唴瀹�
-      activeStep: 0,
+      industrys: [],
       activeIndex: 0,
       total: 0, //鎬绘暟
-      dataList: [
-        {
-          name: "basic",
-          phone: "1121313232",
-          userType: "涓汉",
-          duration: "姘镐箙",
-          authList: "闆嗙兢1锛岄泦缇�2",
-          isBind: 1,
-        },
-      ],
       isShowAdd: false, //鏄惁灞曠ず鏂板寮圭獥
       isShowUnbind: false, //鏄惁灞曠ず瑙g粦寮圭獥
       isShowRelate: false,
       unbindId: "",
+      options: {
+        lazy: true,
+        lazyLoad(node, resolve) {
+          // 鎳掑姞杞借妭鐐圭渷甯傛暟鎹�
+          const { level } = node;
+          let nodes;
+          console.log("鑺傜偣锛�", level, node);
+          getAreas({ parentId: level == 0 ? 0 : node.value })
+            .then((json) => {
+              nodes = json.data.list;
+              nodes = nodes.map((item) => ({
+                value: item.id,
+                label: item.name,
+                level: item.level,
+                leaf: level >= 1,
+              }));
+              resolve(nodes);
+            })
+            .catch((err) => {
+              console.log(err);
+            });
+        },
+      },
+      userInfo: {
+        userId: "",
+        username: "panlei",
+        phoneNum: "17610829559",
+        type: "", // 鏅�氱敤鎴疯繕鏄紑鍙戣��
+        userType: 1, // 涓汉杩樻槸鍏徃
+        industryId: "",
+        address: [110100, 110105],
+        areaId: "",
+        provinceId: "",
+        trueName: "",
+        companyName: "",
+        email: "",
+      },
       durationArr: [
         {
           value: 0,
@@ -116,165 +144,19 @@
       showQuit: false, //灞曠ず閫�鍑洪泦缇ょ殑寮圭獥
       showJoin: false, //灞曠ず鍔犲叆闆嗙兢鐨勫脊绐�
       activeEquipment: null, //澶勭悊涓殑璁惧
-      ruleForm: {
-        name: "",
-        region: "",
-        password: "",
-        date1: "",
-        date2: "",
-        delivery: false,
-        type: [],
-        resource: "",
-        desc: "",
-        authList: {
-          menuAuth: [],
-          dataAuth: [],
-        },
-      },
       rules: {
-        name: [
-          { required: true, message: "璇疯緭鍏ユ椿鍔ㄥ悕绉�", trigger: "blur" },
-          { min: 3, max: 5, message: "闀垮害鍦� 3 鍒� 5 涓瓧绗�", trigger: "blur" },
+        trueName: [
+          { required: true, message: "璇峰~鍐欑湡瀹炲鍚�", trigger: "change" },
         ],
-        region: [
-          { required: true, message: "璇烽�夋嫨娲诲姩鍖哄煙", trigger: "change" },
+        username: [
+          { required: true, message: "璇峰~鍐欑敤鎴峰悕", trigger: "change" },
         ],
-        date1: [
-          {
-            type: "date",
-            required: true,
-            message: "璇烽�夋嫨鏃ユ湡",
-            trigger: "change",
-          },
-        ],
-        date2: [
-          {
-            type: "date",
-            required: true,
-            message: "璇烽�夋嫨鏃堕棿",
-            trigger: "change",
-          },
+        phoneNum: [
+          { required: true, message: "璇峰~鍐欐墜鏈哄彿", trigger: "change" },
         ],
         type: [
-          {
-            type: "array",
-            required: true,
-            message: "璇疯嚦灏戦�夋嫨涓�涓椿鍔ㄦ�ц川",
-            trigger: "change",
-          },
+          { required: true, message: "璇烽�夋嫨娉ㄥ唽绫诲瀷", trigger: "change" },
         ],
-        resource: [
-          { required: true, message: "璇烽�夋嫨娲诲姩璧勬簮", trigger: "change" },
-        ],
-        desc: [{ required: true, message: "璇峰~鍐欐椿鍔ㄥ舰寮�", trigger: "blur" }],
-      },
-      data1: [
-        {
-          id: 1,
-          label: "涓�绾� 1",
-          children: [
-            {
-              id: 4,
-              label: "浜岀骇 1-1",
-              children: [
-                {
-                  id: 9,
-                  label: "涓夌骇 1-1-1",
-                },
-                {
-                  id: 10,
-                  label: "涓夌骇 1-1-2",
-                },
-              ],
-            },
-          ],
-        },
-        {
-          id: 2,
-          label: "涓�绾� 2",
-          children: [
-            {
-              id: 5,
-              label: "浜岀骇 2-1",
-            },
-            {
-              id: 6,
-              label: "浜岀骇 2-2",
-            },
-          ],
-        },
-        {
-          id: 3,
-          label: "涓�绾� 3",
-          children: [
-            {
-              id: 7,
-              label: "浜岀骇 3-1",
-            },
-            {
-              id: 8,
-              label: "浜岀骇 3-2",
-            },
-          ],
-        },
-      ],
-      defaultProps1: {
-        children: "children",
-        label: "label",
-      },
-      data2: [
-        {
-          id: 1,
-          label: "涓�绾� 1",
-          children: [
-            {
-              id: 4,
-              label: "浜岀骇 1-1",
-              children: [
-                {
-                  id: 9,
-                  label: "涓夌骇 1-1-1",
-                },
-                {
-                  id: 10,
-                  label: "涓夌骇 1-1-2",
-                },
-              ],
-            },
-          ],
-        },
-        {
-          id: 2,
-          label: "涓�绾� 2",
-          children: [
-            {
-              id: 5,
-              label: "浜岀骇 2-1",
-            },
-            {
-              id: 6,
-              label: "浜岀骇 2-2",
-            },
-          ],
-        },
-        {
-          id: 3,
-          label: "涓�绾� 3",
-          children: [
-            {
-              id: 7,
-              label: "浜岀骇 3-1",
-            },
-            {
-              id: 8,
-              label: "浜岀骇 3-2",
-            },
-          ],
-        },
-      ],
-      defaultProps2: {
-        children: "children",
-        label: "label",
       },
     };
   },
@@ -286,8 +168,27 @@
     goto(i) {
       this.activeIndex = i;
     },
-    save(){
-
+    async getIndustrys() {
+      let res = await getDic();
+      if (res.success) {
+        this.industrys = res.data.dics;
+      } else {
+        console.log("鏌ヨ琛屼笟鍒楄〃澶辫触锛�");
+      }
+    },
+    save() {
+      this.userInfo.provinceId = this.userInfo.address[0];
+      this.userInfo.areaId = this.userInfo.address[1];
+      entireUserInfo(this.userInfo)
+        .then((res) => {
+          this.$notify.success("璐︽埛淇℃伅淇濆瓨鎴愬姛");
+        })
+        .catch((err) => {
+          if (err && err.status == 401) {
+            return;
+          }
+          this.$notify.error("璐︽埛淇℃伅淇濆瓨澶辫触");
+        });
     },
     // 璺冲埌璁惧璇︽儏
     checkDetail(row) {
@@ -313,35 +214,6 @@
         },
       });
     },
-
-    // 鏌ヨ鍒楄〃
-    // searchingBtn() {
-    //   let param = {
-    //     page: this.page,
-    //     size: this.size,
-    //     // startTime: this.searchTime[0],
-    //     // endTime: this.searchTime[1],
-    //     inputText: this.inputText,
-    //   };
-    //   findDevList(param)
-    //     .then((res) => {
-    //       this.dataList = res.data.list;
-    //       //鏃堕棿鍒嗚鏄剧ず
-
-    //       this.dataList.forEach((item) => {
-    //         item.installTime = item.installTime.split(" ");
-    //         item.firstUseTime = item.firstUseTime.split(" ");
-    //       });
-    //       this.total = res.data.total;
-    //       if (res.data.total <= this.size) {
-    //         this.page = 1;
-    //       }
-    //     })
-    //     .catch((err) => {
-    //       console.log(err);
-    //     });
-    // },
-
     //鍒嗛〉鍔熻兘
     handleSizeChange(size) {
       this.size = size;
@@ -408,6 +280,13 @@
     },
   },
   mounted() {},
+  created() {
+    getUserInfo().then((res) => {
+      this.userInfo = res.data;
+      this.userInfo.address = [this.userInfo.provinceId, this.userInfo.areaId];
+    });
+    this.getIndustrys();
+  },
 };
 </script>
 
@@ -424,6 +303,10 @@
     margin-bottom: 30px;
   }
   .add-ruleForm::v-deep {
+    .el-form-item__label {
+      font-size: 14px;
+      color: #999999;
+    }
     .area-title {
       font-weight: 700;
       color: #666666;
@@ -439,31 +322,14 @@
       height: 32px;
       line-height: 32px;
     }
-    .user-tree {
-      .el-form-item__content {
-        display: flex;
-        .tree-box {
-          .t {
-            height: 32px;
-            background: #f0f5fa;
-            border-radius: 3px 3px 0px 0px;
-            line-height: 32px;
-            text-align: center;
-            border-bottom: 1px solid #c0c5cc;
-          }
-          width: 336px;
-          height: 480px;
-          border: 1px solid #c0c5cc;
-          margin-right: 20px;
-          box-sizing: border-box;
-        }
-      }
-    }
   }
   .searchBtn {
-    width: 80px;margin-top: 38px;
+    width: 80px;
+    margin-top: 50px;
     height: 40px;
     line-height: 40px;
+    border-radius: 3px;
+    cursor: pointer;
     text-align: center;
     color: #fff;
     background: #0065ff;
diff --git a/src/views/personalCenter/components/StepCard.vue b/src/views/personalCenter/components/StepCard.vue
index 44af2a4..eb365d0 100644
--- a/src/views/personalCenter/components/StepCard.vue
+++ b/src/views/personalCenter/components/StepCard.vue
@@ -43,7 +43,7 @@
           >
           </el-tree>
         </div>
-        <div class="tree-box">
+        <!-- <div class="tree-box">
           <div class="t">鏁版嵁鏉冮檺</div>
           <el-tree
             :data="data2"
@@ -54,7 +54,7 @@
             :props="defaultProps2"
           >
           </el-tree>
-        </div>
+        </div> -->
       </div>
 
       <div class="btns">
diff --git a/src/views/personalCenter/components/SubAccount.vue b/src/views/personalCenter/components/SubAccount.vue
index 4721b7c..377c64f 100644
--- a/src/views/personalCenter/components/SubAccount.vue
+++ b/src/views/personalCenter/components/SubAccount.vue
@@ -10,7 +10,7 @@
 
         <div class="cluster">
           鎺堟潈鏃堕暱
-          <el-select v-model="cluster" placeholder="璇烽�夋嫨">
+          <el-select v-model="timeLength" placeholder="璇烽�夋嫨">
             <el-option
               v-for="item in durationArr"
               :key="item.value"
@@ -23,8 +23,8 @@
       </div>
 
       <div class="right">
-        <div class="button searchBtn" @click="save">鎼滅储</div>
-        <div class="button resetBtn" @click="save">閲嶇疆</div>
+        <div class="button searchBtn" @click="findUserList">鎼滅储</div>
+        <div class="button resetBtn" @click="reset">閲嶇疆</div>
       </div>
     </div>
 
@@ -55,19 +55,25 @@
           }}</template>
         </el-table-column>
         <el-table-column
-          prop="name"
+          prop="trueName"
           label="濮撳悕"
           show-overflow-tooltip
         ></el-table-column>
         <el-table-column
-          prop="phone"
-          label="鎵嬫満鍙�"
+          prop="username"
+          label="鐢ㄦ埛鍚�"
           show-overflow-tooltip
         ></el-table-column>
-        <el-table-column prop="userType" label="鐢ㄦ埛绫诲瀷"></el-table-column>
-        <el-table-column prop="duration" label="鎺堟潈鏃堕暱"></el-table-column>
-        <el-table-column prop="authList" label="鏉冮檺"></el-table-column>
-       
+        <el-table-column prop="userType" label="鐢ㄦ埛绫诲瀷">
+          <template slot-scope="scope">
+            <span>{{ scope.row.userType == 1 ? "涓汉" : "鍏徃" }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="authDuration" label="鎺堟潈鏃堕暱" > </el-table-column>
+        <el-table-column prop="dataNames" label="鏉冮檺">
+
+        </el-table-column>
+
         <el-table-column label="鐘舵��">
           <template slot-scope="scope">
             <div v-if="scope.row.isBind == 1" class="status green">宸茬粦瀹�</div>
@@ -78,13 +84,13 @@
         <el-table-column label="鎿嶄綔">
           <template slot-scope="scope">
             <!-- 缂栬緫 -->
-            <span class="iconfont option" @click="joinCluster(scope.row)"
-              >&#xe640;</span
+            <span class="iconfont option" @click="editUser(scope.row)"
+              >缂栬緫</span
             >
             <!-- 瑙g粦 -->
-            <span class="iconfont option" @click="Untying(scope.row)"
-              >&#xe617;</span
-            >
+            <!-- <span class="iconfont option" @click="Untying(scope.row)"
+              >瑙g粦</span
+            > -->
           </template>
         </el-table-column>
       </el-table>
@@ -101,34 +107,9 @@
         ></el-pagination>
       </div>
     </div>
-
-    <!-- 瑙g粦寮圭獥 -->
-    <UnbindBox
-      @close="closeUnbindBox"
-      v-if="isShowUnbind"
-      :id="unbindId"
-      @reflash="reflash"
-    ></UnbindBox>
-
-    <!-- 娣诲姞璁惧寮圭獥 -->
-    <!-- <AddBox @close="closeAddBox" v-if="isShowAdd"></AddBox> -->
-
-    <!-- 閫�鍑洪泦缇ゅ脊绐� -->
-    <QuitClusterBox
-      :equipment="activeEquipment"
-      v-if="showQuit"
-      @close="showQuit = false"
-    ></QuitClusterBox>
-
-    <!-- 鍔犲叆闆嗙兢寮圭獥 -->
-    <JoinClusterBox
-      :equipment="activeEquipment"
-      v-if="showJoin"
-      @close="showJoin = false"
-    ></JoinClusterBox>
   </div>
   <div class="sub-account" v-else-if="isShowAdd">
-    <div class="add-title" @click="isShowAdd=false">
+    <div class="add-title" @click="isShowAdd = false">
       <span class="iconfont">&#xe614;</span>
       <span>娣诲姞瀛愯处鎴�</span>
     </div>
@@ -140,57 +121,97 @@
       label-width="100px"
       class="add-ruleForm"
     >
-      <el-form-item label="鐢ㄦ埛鍚�" prop="name">
-        <el-input v-model="ruleForm.name"></el-input>
+      <el-form-item label="鐢ㄦ埛鍚�" prop="username">
+        <el-input v-model="ruleForm.username" style="width: 350px"></el-input>
       </el-form-item>
-      <el-form-item label="瀵嗙爜" prop="name">
-        <el-input v-model="ruleForm.password"></el-input>
+      <el-form-item label="瀵嗙爜" prop="password">
+        <el-input v-model="ruleForm.password" style="width: 350px"></el-input>
       </el-form-item>
-      <el-form-item label="閲嶇疆瀵嗙爜" prop="delivery">
-        <el-checkbox v-model="ruleForm.delivery">棣栨鐧婚檰淇敼瀵嗙爜</el-checkbox>
+      <el-form-item label="閲嶇疆瀵嗙爜" prop="isChangePwd">
+        <el-checkbox v-model="ruleForm.isChangePwd"
+          >棣栨鐧婚檰淇敼瀵嗙爜</el-checkbox
+        >
       </el-form-item>
-      <el-form-item label="鐢ㄦ埛绫诲瀷" prop="type">
-        <el-radio v-model="ruleForm.type" label="1">涓汉</el-radio>
-        <el-radio v-model="ruleForm.type" label="2">鍏徃</el-radio>
+      <el-form-item label="鐢ㄦ埛绫诲瀷" prop="userType">
+        <el-radio v-model="ruleForm.userType" :label="1">涓汉</el-radio>
+        <el-radio v-model="ruleForm.userType" :label="2">鍏徃</el-radio>
       </el-form-item>
-      <el-form-item label="濮撳悕" prop="name">
-        <el-input v-model="ruleForm.name"></el-input>
+      <el-form-item label="濮撳悕" prop="trueName">
+        <el-input v-model="ruleForm.trueName" style="width: 350px"></el-input>
       </el-form-item>
-      <el-form-item label="閭" prop="name">
-        <el-input v-model="ruleForm.password"></el-input>
+      <el-form-item label="閭" prop="email">
+        <el-input v-model="ruleForm.email" style="width: 350px"></el-input>
       </el-form-item>
 
-      <el-form-item label="琛屼笟" prop="region">
-        <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
-          <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-          <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+      <el-form-item label="琛屼笟" prop="industryId">
+        <el-select
+          v-model="ruleForm.industryId"
+          placeholder="璇烽�夋嫨琛屼笟"
+          style="width: 350px"
+        >
+          <el-option
+            v-for="(item, index) in industrys"
+            :label="item.name"
+            :value="item.id"
+            :key="index"
+          ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="鍦板尯" prop="region">
-        <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
-          <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-          <el-option label="鍖哄煙浜�" value="beijing"></el-option>
-        </el-select>
+      <el-form-item label="鍦板尯" prop="address">
+        <el-cascader
+          v-model="ruleForm.address"
+          :props="options"
+          style="width: 350px"
+          @change="handleChange"
+        ></el-cascader>
       </el-form-item>
-      <el-form-item label="鎺堟潈鏃堕暱" prop="region">
-        <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
-          <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-          <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+      <el-form-item label="鎺堟潈鏃堕暱" prop="authDuration">
+        <el-select
+          v-model="ruleForm.authDuration"
+          style="width: 350px"
+          placeholder="璇烽�夋嫨鎺堟潈鏃堕暱"
+        >
+          <el-option label="涓�骞�" value="涓�骞�"></el-option>
+          <el-option label="涓ゅ勾" value="涓ゅ勾"></el-option>
         </el-select>
       </el-form-item>
 
-      <el-form-item label="鐢ㄦ埛鏉冮檺" prop="authList" class="user-tree">
-        
-        <TreeBox :defaultProp="defaultProp1" :treeData="data1"></TreeBox>
-
-       
-        <TreeBox :defaultProp="defaultProp2" :treeData="data2"></TreeBox>
+      <el-form-item label="鐢ㄦ埛鏉冮檺" prop="menuIds" class="user-tree">
+        <!-- <TreeBox :defaultProp="defaultProp" :treeData="sysMenus"></TreeBox> -->
+        <!-- <TreeBox :defaultProp="defaultProp2" :treeData="data2"></TreeBox> -->
+        <div class="tree-box">
+          <div class="t">鑿滃崟鏉冮檺</div>
+          <el-tree
+            ref="treeMenus"
+            :data="sysMenus"
+            show-checkbox
+            default-expand-all
+            node-key="id"
+            :props="defaultProp"
+            :default-checked-keys="checkedMenu"
+            check-on-click-node
+          >
+          </el-tree>
+        </div>
+        <div class="tree-box">
+          <div class="t">鏁版嵁鏉冮檺</div>
+          <el-tree
+            ref="treeData"
+            :data="DataTree"
+            show-checkbox
+            default-expand-all
+            node-key="id"
+            :props="defaultProp"
+            :default-checked-keys="checkedData"
+            check-on-click-node
+          >
+          </el-tree>
+        </div>
       </el-form-item>
-      
     </el-form>
     <div class="right">
-      <div class="button searchBtn" @click="save">鎼滅储</div>
-      <div class="button resetBtn" @click="save">閲嶇疆</div>
+      <div class="button searchBtn" @click="saveSubUser">淇濆瓨</div>
+      <div class="button resetBtn" @click="resetUser">閲嶇疆</div>
     </div>
   </div>
   <div class="sub-account" v-else-if="isShowRelate">
@@ -207,18 +228,14 @@
 </template>
 
 <script>
-import UnbindBox from "@/views/equipmentManagement/equipmentDetail/components/UnbindBox";
-import QuitClusterBox from "@/views/equipmentManagement/equipmentList/components/QuitClusterBox";
-import JoinClusterBox from "@/views/equipmentManagement/equipmentList/components/JoinClusterBox";
+import { findUserList, saveSubUser, getMenu, getDataTree } from "@/api/user";
+import { getAreas, getDic } from "@/api/login";
+
 import Steps from "./Steps";
 import StepsCard from "./StepCard";
 import TreeBox from "./TreeBox";
 export default {
   components: {
-    // AddBox,
-    UnbindBox,
-    QuitClusterBox,
-    JoinClusterBox,
     Steps,
     StepsCard,
     TreeBox,
@@ -234,49 +251,66 @@
       inputText: "", //杈撳叆妗嗗唴瀹�
       activeStep: 0,
       activeIndex: 0,
+      industrys: [],
       total: 0, //鎬绘暟
-      dataList: [
-        {
-          name: "basic",
-          phone: "1121313232",
-          userType: "涓汉",
-          duration: "姘镐箙",
-          authList: "闆嗙兢1锛岄泦缇�2",
-          isBind: 1,
+      options: {
+        lazy: true,
+        lazyLoad(node, resolve) {
+          // 鎳掑姞杞借妭鐐圭渷甯傛暟鎹�
+          const { level } = node;
+          let nodes;
+          getAreas({ parentId: level == 0 ? 0 : node.value })
+            .then((json) => {
+              nodes = json.data.list;
+              nodes = nodes.map((item) => ({
+                value: item.id,
+                label: item.name,
+                level: item.level,
+                leaf: level >= 1,
+              }));
+              resolve(nodes);
+            })
+            .catch((err) => {
+              console.log(err);
+            });
         },
-      ],
+      },
+      dataList: [],
       isShowAdd: false, //鏄惁灞曠ず鏂板寮圭獥
       isShowUnbind: false, //鏄惁灞曠ず瑙g粦寮圭獥
-      isShowRelate: false,
+      isShowRelate: false,isEditing: false,
       unbindId: "",
       durationArr: [
         {
-          value: 0,
+          value: "涓�骞�",
           label: "涓�骞�",
         },
         {
-          value: 1,
+          value: "涓ゅ勾",
           label: "涓ゅ勾",
         },
       ], //鎵�灞為泦缇や笅鎷夋
-      cluster: null, //閫変腑鐨勯泦缇ょ被鍨�
+      timeLength: null, //閫変腑鐨勬巿鏉冩椂闀�
       showQuit: false, //灞曠ず閫�鍑洪泦缇ょ殑寮圭獥
       showJoin: false, //灞曠ず鍔犲叆闆嗙兢鐨勫脊绐�
       activeEquipment: null, //澶勭悊涓殑璁惧
+      checkedData:[],
+      checkedMenu:[],
       ruleForm: {
-        name: "",
-        region: "",
+        id: "",
+        username: "",
+        userType: "",
         password: "",
-        date1: "",
-        date2: "",
-        delivery: false,
-        type: [],
-        resource: "",
-        desc: "",
-        authList: {
-          menuAuth: [],
-          dataAuth: [],
-        },
+        trueName: "",
+        email: "",
+        isChangePwd: false,
+        industryId: "",
+        address: [],
+        authDuration: "",
+        areaId: "",
+        provinceId: "",
+        menuIds: [],
+        dataIds: [],
       },
       rules: {
         name: [
@@ -286,153 +320,131 @@
         region: [
           { required: true, message: "璇烽�夋嫨娲诲姩鍖哄煙", trigger: "change" },
         ],
-        date1: [
-          {
-            type: "date",
-            required: true,
-            message: "璇烽�夋嫨鏃ユ湡",
-            trigger: "change",
-          },
-        ],
-        date2: [
-          {
-            type: "date",
-            required: true,
-            message: "璇烽�夋嫨鏃堕棿",
-            trigger: "change",
-          },
-        ],
-        type: [
-          {
-            type: "array",
-            required: true,
-            message: "璇疯嚦灏戦�夋嫨涓�涓椿鍔ㄦ�ц川",
-            trigger: "change",
-          },
-        ],
         resource: [
           { required: true, message: "璇烽�夋嫨娲诲姩璧勬簮", trigger: "change" },
         ],
         desc: [{ required: true, message: "璇峰~鍐欐椿鍔ㄥ舰寮�", trigger: "blur" }],
       },
-      data1: [
-        {
-          id: 1,
-          label: "涓�绾� 1",
-          children: [
-            {
-              id: 4,
-              label: "浜岀骇 1-1",
-              children: [
-                {
-                  id: 9,
-                  label: "涓夌骇 1-1-1",
-                },
-                {
-                  id: 10,
-                  label: "涓夌骇 1-1-2",
-                },
-              ],
-            },
-          ],
-        },
-        {
-          id: 2,
-          label: "涓�绾� 2",
-          children: [
-            {
-              id: 5,
-              label: "浜岀骇 2-1",
-            },
-            {
-              id: 6,
-              label: "浜岀骇 2-2",
-            },
-          ],
-        },
-        {
-          id: 3,
-          label: "涓�绾� 3",
-          children: [
-            {
-              id: 7,
-              label: "浜岀骇 3-1",
-            },
-            {
-              id: 8,
-              label: "浜岀骇 3-2",
-            },
-          ],
-        },
-      ],
-      defaultProps1: {
+      sysMenus: [],
+      DataTree: [],
+      userInfo: {},
+      curEditId: "",
+      defaultProp: {
         children: "children",
-        label: "label",
-      },
-      data2: [
-        {
-          id: 1,
-          label: "涓�绾� 1",
-          children: [
-            {
-              id: 4,
-              label: "浜岀骇 1-1",
-              children: [
-                {
-                  id: 9,
-                  label: "涓夌骇 1-1-1",
-                },
-                {
-                  id: 10,
-                  label: "涓夌骇 1-1-2",
-                },
-              ],
-            },
-          ],
-        },
-        {
-          id: 2,
-          label: "涓�绾� 2",
-          children: [
-            {
-              id: 5,
-              label: "浜岀骇 2-1",
-            },
-            {
-              id: 6,
-              label: "浜岀骇 2-2",
-            },
-          ],
-        },
-        {
-          id: 3,
-          label: "涓�绾� 3",
-          children: [
-            {
-              id: 7,
-              label: "浜岀骇 3-1",
-            },
-            {
-              id: 8,
-              label: "浜岀骇 3-2",
-            },
-          ],
-        },
-      ],
-      defaultProps2: {
-        children: "children",
-        label: "label",
+        label: "name",
       },
     };
   },
+  created() {
+    this.userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
+    this.findUserList();
+    this.getIndustrys();
+    this.fetchSysMenus();
+    this.fetchDataTree();
+  },
   methods: {
+    fetchDataTree() {
+      getDataTree({ userId: this.userInfo.id }).then((res) => {
+        this.DataTree = res.data.dataTree;
+      });
+    },
+    fetchSysMenus() {
+      getMenu().then((rsp) => {
+        if (rsp && rsp.success) {
+          this.sysMenus = rsp.data.menus;
+          // this.userMenus = [];
+        }
+      });
+    },
+    editUser(row) {
+      this.isShowAdd = true;
+      this.isEditing = true
+      this.ruleForm.id = row.id;
+      this.ruleForm.username = row.username;
+      this.ruleForm.userType = row.userType;
+      this.ruleForm.password = row.password;
+      this.ruleForm.trueName = row.trueName;
+      this.ruleForm.email = row.email;
+      this.ruleForm.isChangePwd = row.isChangePwd;
+      this.ruleForm.industryId = row.industryId;
+      this.ruleForm.areaId =row.areaId ;
+      debugger
+      this.ruleForm.address  = [ row.provinceId,row.areaId]
+      this.ruleForm.provinceId = row.provinceId;
+      this.ruleForm.authDuration = row.authDuration;
+      this.checkedMenu = row.menuIds;
+      this.checkedData = row.dataIds;
+    },
+    resetUser() {
+      this.ruleForm = {
+        id: "",
+        username: "",
+        userType: "",
+        password: "",
+        trueName: "",
+        email: "",
+        isChangePwd: false,
+        industryId: "",
+        areaId: "",
+        provinceId: "",
+        authDuration: "",
+      };
+      this.$refs.treeMenus.setCheckedKeys([]);
+      this.$refs.treeData.setCheckedKeys([]);
+    },
+    async getIndustrys() {
+      let res = await getDic();
+      if (res.success) {
+        this.industrys = res.data.dics;
+      } else {
+        console.log("鏌ヨ琛屼笟鍒楄〃澶辫触锛�");
+      }
+    },
+    saveSubUser() {
+      this.ruleForm.menuIds = this.$refs.treeMenus.getCheckedKeys();
+      this.ruleForm.dataIds = this.$refs.treeData.getCheckedKeys();
+      let json = {
+        id: this.isEditing? this.ruleForm.id:"",
+        username: this.ruleForm.username,
+        password: this.ruleForm.password,
+        isChangePwd: this.ruleForm.isChangePwd,
+        userType: this.ruleForm.userType,
+        trueName: this.ruleForm.trueName,
+        email: this.ruleForm.email,
+        industryId: this.ruleForm.industryId,
+        areaId: this.ruleForm.address[1],
+        authDuration: this.ruleForm.authDuration,
+        menuIds: this.ruleForm.menuIds,
+        dataIds: this.ruleForm.dataIds,
+      };
+      debugger
+      saveSubUser(json).then((res) => {
+        debugger;
+      });
+    },
+    findUserList() {
+      findUserList({
+        inputText: this.inputText,
+        page: this.page,
+        size: this.size,
+      }).then((res) => {
+        if (res.success) {
+          this.dataList = res.data.dataList;
+        }
+      });
+    },
     goback() {
-      this.isShowAdd=false
+      this.isShowAdd = false;
+      this.isEditing =false
       this.isShowRelate = false;
       this.activeIndex = 0;
     },
     goto(i) {
       this.activeIndex = i;
+    },
+    reset() {
+      this.inputText = "";
+      this.timeLength = null;
     },
     // 璺冲埌璁惧璇︽儏
     checkDetail(row) {
@@ -460,10 +472,8 @@
     },
 
     // 鏌ヨ鍒楄〃
-   
-    save(){
 
-    },
+    save() {},
     //鍒嗛〉鍔熻兘
     handleSizeChange(size) {
       this.size = size;
@@ -498,10 +508,6 @@
       ];
     },
 
-    //鍏抽棴鏂板寮圭獥
-    closeAddBox() {
-      this.isShowAdd = false;
-    },
     // 鍏抽棴瑙g粦寮圭獥
     closeUnbindBox() {
       this.isShowUnbind = false;
@@ -528,9 +534,6 @@
       this.activeEquipment = equipment;
       this.showJoin = true;
     },
-  },
-  mounted() {
-    
   },
 };
 </script>
@@ -561,7 +564,6 @@
   }
   .add-ruleForm::v-deep {
     .el-input__inner {
-      width: 350px;
       color: #3d3d3d;
       border-radius: 4px;
       border-color: #c0c5cc;
@@ -771,7 +773,7 @@
 
     .option {
       margin-right: 10px;
-      font-size: 24px;
+         font-size: 14px;
       color: rgb(0, 101, 255);
       cursor: pointer;
     }
diff --git a/src/views/personalCenter/components/TreeBox.vue b/src/views/personalCenter/components/TreeBox.vue
index 8ee0c96..e5cba90 100644
--- a/src/views/personalCenter/components/TreeBox.vue
+++ b/src/views/personalCenter/components/TreeBox.vue
@@ -1,16 +1,18 @@
 <template>
   <div class="tree-box">
-    <div class="t">鏁版嵁鏉冮檺</div>
+    <div class="t">鑿滃崟鏉冮檺</div>
     <el-tree
       :data="treeData"
       show-checkbox
-      :default-expand-all="true"
+      default-expand-all
       node-key="id"
       :props="defaultProps"
+      :default-checked-keys="userMenus"
+      check-on-click-node
     >
     </el-tree>
-      <!-- :default-checked-keys="[5]" -->
-      <!-- :default-expanded-keys="[2, 3]" -->
+    <!-- :default-checked-keys="[5]" -->
+    <!-- :default-expanded-keys="[2, 3]" -->
   </div>
 </template>
 
@@ -20,7 +22,8 @@
   mounted() {},
   props: {
     treeData: Array,
-    defaultProps:Object,
+    userMenus: Array,
+    defaultProps: Object,
   },
   data() {
     return {};

--
Gitblit v1.8.0