戴艳蓉 3 роки тому
батько
коміт
c7c43c2a89

+ 2 - 1
src/apis/service/interest/account/index.js

@@ -10,7 +10,8 @@ export default {
   detail: (data, params) => http(api + 'userinfo', data, 'post', params),
   // 更新
   update: (data, params) => http(api + 'usersave', data, 'post', params),
-
+  // 获取部门表
+  getClist: (data, params) => http(api + 'clist', data, 'post', params),
   // 添加
   add: (data, params) => http(api + 'accountadd', data, 'post', params),
   // 删除

+ 4 - 1
src/apis/service/interest/organize/index.js

@@ -15,5 +15,8 @@ export default {
   // 修改状态
   status: (data, params) => http(api + 'stat', data, 'post', params),
   // 拉取角色列表
-  getRole: (data, params) => http(api + 'roleall', data, 'post', params)
+  getRole: (data, params) => http(api + 'roleall', data, 'post', params),
+  // 设置部门负责人
+  userp: (data, params) => http(api + 'userp', data, 'post', params),
+
 }

+ 2 - 5
src/components/global/organize-tree/main.vue

@@ -148,7 +148,7 @@ export default {
   .organize-tree-node {
     display: block;
     margin: 5px 0 5px 5px;
-    padding-left: 5px;
+    padding: 0 7px 2px 10px ;
     line-height: 35px;
     i.el-icon-arrow-right {
       font-size: 16px;
@@ -161,10 +161,7 @@ export default {
     .label {
       font-size: 16px;
     }
-    .btn-list {
-      display: block;
-      float: right;
-    }
+   
     .staff {
       // padding:0 0 0 5px;
       // background: #eee;

+ 41 - 73
src/components/global/staff-tree/main.vue

@@ -1,9 +1,19 @@
 <template>
   <div class="staff-tree">
     <div v-if="list && list.length > 0">
-      <div class="staff">
+      <div class="staff" v-for="(item, index) in list" :key="'user' + index">
         <i class="el-icon-s-custom user-box"></i>
-        <!-- <span class="staff-name">{{ item.name }}</span> -->
+        <span class="staff-name">{{ item.nickname }}</span>
+        <span class="btn-list" @click="(e) => e.stopPropagation()">
+          <el-button
+            v-if="powers.some((item) => item == '005')"
+            :type="item.position === '1' ? 'primary' : 'info'"
+            size="mini"
+            @click="setUpEdit($event, item.id, item.position)"
+          >
+            设为负责人
+          </el-button></span
+        >
       </div>
     </div>
   </div>
@@ -11,14 +21,13 @@
 <script>
 export default {
   name: "staffTree",
-  components: {
-  },
+  components: {},
   props: ["list", "level"],
   computed: {
     powers() {
       let tran =
         this.$store.getters.btnList.find(
-          (item) => item.menu_route == "staff"
+          (item) => item.menu_route == "organize"
         ) || {};
       if (tran && tran.action && tran.action.length > 0) {
         return tran.action;
@@ -31,39 +40,11 @@ export default {
     return {
       newlist: "",
       index: 0, // icon 箭头
-      iconFont: [
-        {
-          down: "el-icon-arrow-up",
-          up: "el-icon-arrow-down",
-        },
-        {
-          down: "el-icon-folder-remove",
-          up: "el-icon-folder-add",
-        },
-        {
-          down: "el-icon-minus",
-          up: "el-icon-plus",
-        },
-        {
-          down: "iconfont icon-jiantouxia",
-          up: "iconfont icon-up",
-        },
-      ],
     };
   },
   methods: {
-    addEdit(id, pid, level, isDetail, isAdd, formData) {
-      this.$emit("addEdit", id, pid, level, isDetail, isAdd, formData);
-    },
-    openChildren(id, pid, level, isOpen) {
-      if (level === 3) return false;
-      this.$emit("openChildren", id, pid, level, isOpen);
-    },
-    remove(id, pid, level, status) {
-      this.$emit("remove", id, pid, level, status);
-    },
-    del(id, pid, level, status) {
-      this.$emit("del", id, pid, level, status);
+    setUpEdit(e, id, position) {
+      this.$emit("setUpEdit", id, position);
     },
   },
 };
@@ -91,50 +72,37 @@ export default {
   .staff-tree-node:nth-of-type(even) {
     background: rgba(249, 168, 110, 0.1);
   }
-  .staff-tree-node {
-    display: block;
-    margin: 5px 0 5px 5px;
-    padding-left: 5px;
-    line-height: 35px;
-    i {
-      font-size: 22px;
-      width: 22px;
-      margin: auto;
-    }
-    .label {
-      font-size: 16px;
-    }
+
+  .staff {
+    // padding:0 0 0 5px;
+    // background: #eee;
     .btn-list {
       display: block;
       float: right;
     }
-    .staff {
-      // padding:0 0 0 5px;
-      // background: #eee;
-      .user-box {
-        display: inline-block;
-        vertical-align: top;
-        width: 25px;
-        height: 25px;
-        line-height: 25px;
-        font-size: 15px;
-        text-align: center;
-        border-radius: 50%;
-        overflow: hidden;
-        background: #63cbe7;
-        color: #fff;
-        margin: 6px 5px 0 3px;
-        small {
-          font-size: 8px;
-        }
-      }
-      .staff-name {
-        display: inline-block;
-        height: 38px;
-        line-height: 38px;
-        vertical-align: top;
+    .user-box {
+      display: inline-block;
+      vertical-align: top;
+      width: 25px;
+      height: 25px;
+      line-height: 25px;
+      font-size: 15px;
+      text-align: center;
+      border-radius: 50%;
+      overflow: hidden;
+      background: #63cbe7;
+      color: #fff;
+      margin: 6px 5px 0 3px;
+      small {
+        font-size: 8px;
       }
     }
+    .staff-name {
+      display: inline-block;
+      height: 38px;
+      line-height: 38px;
+      vertical-align: top;
+    }
   }
 }
 </style>

+ 20 - 1
src/views/interest/account/addEdit.vue

@@ -255,7 +255,8 @@ export default {
     async initForm() {
       console.log(this.id);
       this.loading = true;
-      await this.getRole();
+      await this.getClist();
+      // await this.getRole();
       if (this.id === "add") {
         this.title = "添加账号";
         this.rulesThis = this.rules;
@@ -273,6 +274,24 @@ export default {
       }
       this.loading = false;
     },
+    
+    async getClist() {
+      const model = {
+        // status: "", // 状态
+        // level: "", // 姓名
+        // role_name: "",
+      };
+      const res = await asyncRequest.getClist(model);
+      if (res && res.code === 0 && res.data) {
+        console.log(res.data);
+        // this.roleList = res.data;
+        // this.roleList.map((v1) => {
+        //   v1.id += "";
+        //   v1.status += "";
+        //   return v1;
+        // });
+      }
+    },
     async getRole() {
       const model = {
         status: "", // 状态

+ 27 - 53
src/views/interest/organize/index.vue

@@ -88,9 +88,7 @@
             :list="item"
             :level="1"
             :pid="0"
-            @addEdit="addEditFn"
-            @status="setstatus"
-            @del="del"
+            @setUpEdit="setUpEdit"
           />
         </el-col>
       </el-row>
@@ -208,6 +206,29 @@ export default {
       this.passwordModelId = id;
       this.isPasswordDetail = isDetail;
     },
+    async setUpEdit(id, position) {
+      if (position === "1") {
+        const model = {
+          id: id,
+          position: "2",
+        };
+        let res = await asyncRequest.userp(model);
+
+        if (res && res.code === 0) {
+          this.$notify.success({
+            title: "设置成功!",
+            message: "",
+          });
+         
+        } else if (res && res.code >= 100 && res.code <= 104) {
+          await this.logout();
+        } else {
+          this.$message.warning(res.message);
+        }
+      } else {
+        this.$message.warning("该账户已是部门负责人!");
+      }
+    },
     addEditFn(id, parentIds, level, isDetail, isAdd, formData) {
       this.showModel = true;
       this.modelId = id;
@@ -289,11 +310,7 @@ export default {
               title: "删除成功!",
               message: "",
             });
-            if (level === 3) {
-              this.getchildList(parentIds);
-            } else {
-              this.restSearch();
-            }
+            await this.searchList()
           } else if (res && res.code >= 100 && res.code <= 104) {
             await this.logout();
           }
@@ -303,51 +320,8 @@ export default {
         });
     },
 
-    async openChildren(item) {
-      console.log(item);
-      let model = {
-        id: item.id,
-        titleName: item.name,
-      };
-      console.log(model);
-      this.titleList.push(model);
-      this.parmValue.pid = item.id;
-      await this.searchList();
-    },
-    async getchildList(id) {
-      this.loading = true;
-      const res = await asyncRequest.actionList({ id: id });
-      let depart = [];
-      if (res && res.code === 0 && res.data) {
-        depart = res.data;
-        // depart = depart.map((val) => {
-        //   let index = btnList.findIndex((e) => val.action_code === e.code);
-        //   if (index !== -1) {
-        //     val.menu_name = btnList[index].name;
-        //   }
-        //   return val;
-        // });
-      } else if (res && res.code >= 100 && res.code <= 104) {
-        await this.logout();
-      } else {
-        this.$message.warning(res.message);
-      }
-      let arr = JSON.parse(JSON.stringify(this.depart));
-      arr = arr.map((val, index) => {
-        if (val && val.child && val.child.length > 0) {
-          val.child.forEach((el, eli) => {
-            if (id === el.id) {
-              //  console.log(el);
-              el.child = depart;
-            }
-            return el;
-          });
-        }
-        return val;
-      });
-      this.depart = arr;
-      this.loading = false;
-    },
+
+ 
     async concatData(id, parentIds, level) {
       console.log(id, parentIds, level);
       this.loading = true;