Lijy преди 2 години
родител
ревизия
db58eefb00
променени са 2 файла, в които са добавени 102 реда и са изтрити 13 реда
  1. 6 3
      fhKeeper/formulahousekeeper/timesheet/src/main.js
  2. 96 10
      fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

+ 6 - 3
fhKeeper/formulahousekeeper/timesheet/src/main.js

@@ -126,7 +126,7 @@ router.beforeEach((to, from, next) => {
                     var getRoutes = null;
                     var filterRouter = allRouters;
                     if (user.company.packageExpense == 0) {
-                        filterRouter = filterRouter.filter(r=>{return r.name != '费用报销' && r.name != '项目报表服务'});
+                        filterRouter = filterRouter.filter(r=>{return r.name != '费用报销'});
                     }
                     if (user.company.packageCustomer == 0) {
                         //没有客户管理功能的,需要去掉
@@ -136,8 +136,11 @@ router.beforeEach((to, from, next) => {
                         //非工程类的,去掉专业管理
                         filterRouter = filterRouter.filter(r=>{return r.name != '工程专业管理' && r.name != '专业审核' && r.name != '部门审核'});
                     }
+                    if (user.company.packageOa == 0) {
+                        filterRouter = filterRouter.filter(r=>{return r.name != '出差管理' && r.name != '请假管理'});
+                    }
                     if (user.company.packageProject == 0) {
-                        filterRouter = filterRouter.filter(r=>{return r.name != '待办任务' && r.name != '请假管理'});
+                        filterRouter = filterRouter.filter(r=>{return r.name != '待办任务' && r.name != '项目报表服务'});
                     }
                     if (user.timeType.needDeptAudit == 0) {
                         //没有开启导入日报审核,则不需要
@@ -221,7 +224,7 @@ router.beforeEach((to, from, next) => {
                             
                         } 
                     }
-                    console.log(arr, '')
+                    console.log(arr, '年看看你')
                     getRoutes = arr;
 
                     //同步企业微信考勤打卡的情况下,根据深圳赛元微电子的要求,屏蔽项目报告审核模块

+ 96 - 10
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -10,11 +10,21 @@
                     {{ $t('create') }} 
                   </div>
             </div>
+            <div style="width: 100%;display: flex">
+              <el-button v-if="!adjustPosition" style="width: 100%;" size="small" @click="adjustPositionClick()">调整部门</el-button>
+              <el-button v-if="adjustPosition" style="width: 50%" size="small" @click="adjustPosition = !adjustPosition,data = dataRepeat">取消</el-button>
+              <el-button v-if="adjustPosition" style="width: 50%" size="small" @click="adjustPositionClick()">确定</el-button>
+            </div>
             <el-divider style="margin: 0px 0px !important;height:0.5px;"></el-divider>
             <div class="tree" :style="'height:'+ (tableHeight + 83) + 'px'">
                 <!-- <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick" accordion></el-tree> -->
                 <!-- <el-tree :data="data" :props="defaultProps" node-key="id" :expand-on-click-node="false" accordion @node-click="handleNodeClick" :default-expanded-keys="jDarr" @node-expand="jieDian" @node-collapse="shutDown" @current-change="chufa"> -->
-                <el-tree :data="data" :props="defaultProps" :expand-on-click-node="false" accordion @node-click="handleNodeClick" :default-expanded-keys="jDarr" @node-expand="jieDian" @node-collapse="shutDown" @current-change="chufa">
+                <el-tree :data="data" 
+                :props="defaultProps" 
+                :draggable="adjustPosition"
+                :allow-drop="allowDrop"
+                @node-drop="nodeDrop"
+                :expand-on-click-node="false" accordion @node-click="handleNodeClick" :default-expanded-keys="jDarr" @node-expand="jieDian" @node-collapse="shutDown" @current-change="chufa">
                     <span class="custom-tree-node" style="position: relative;box-sizing: border-box;width: 10%;" slot-scope="{ node }" @mouseleave= mouseleave(data,$event) @mouseover= mouseover(data,$event)>
                         <span style="padding-right: 50px;box-sizing: border-box;overflow:hidden;text-overflow:ellipsis;line-height: 36px; display: inline-block;">
                           <span v-if="user.userNameNeedTranslate == '1'">
@@ -35,6 +45,10 @@
                           <span v-if="user.userNameNeedTranslate != '1'">
                               {{ node.label }}
                           </span> -->
+
+                          <span v-if="node.label != $t('lable.allStaff') && node.label != $t('lable.unassigned') && adjustPosition" class="treeIons">
+                            <i class="el-icon-s-operation" style="color: #409eff"></i>
+                          </span>
                         </span>
 
                         <!-- <span v-if="node.label != '全部人员'" class="node none"> -->
@@ -46,6 +60,7 @@
                                 <i class="el-icon-delete"></i> <!-- 删除 -->
                             </el-button>
                         </span>
+                        
                     </span> 
                 </el-tree>
             </div>
@@ -186,13 +201,17 @@
                         {{scope.$index+1+(page-1)*size}}
                     </template>
                 </el-table-column>
-                <el-table-column prop="name" :label="$t('lable.name')" >
+                <el-table-column prop="name" :label="$t('lable.name')"  width="150">
                   <template slot-scope="scope">
-                    <div>
-                      <div v-if="user.userNameNeedTranslate == 1">
+                    <div class="classwxName">
+                      <span v-if="user.corpwxUserid && saasSyncContact == 0" class="classwxNameIon">
+                        <img src="../../assets/image/qiyeweix.png" alt="">
+                      </span>
+                      <!-- <div v-if="user.userNameNeedTranslate == 1">
                         <ww-open-data type='userName' :openid='scope.row.name'></ww-open-data>
                       </div>
-                      <div v-else>{{scope.row.name}}</div>
+                      <div v-else>{{scope.row.name}}</div> -->
+                      <div>{{scope.row.name}}</div>
                     </div>
                   </template>
                 </el-table-column>
@@ -1051,6 +1070,10 @@ export default {
       newSyncWithCorpWxDayload: false,
 
       wxManager: false,
+
+      adjustPosition: false,
+
+      dataRepeat: []
     };
   },
   filters: {
@@ -1066,6 +1089,13 @@ export default {
     that = this;
   },
   methods: {
+    // 调整
+    adjustPositionClick() {
+      this.adjustPosition = !this.adjustPosition
+      if(!this.adjustPosition) {
+        this.queding()
+      }
+    },
     getWxManager() {
       this.http.post('/user/isManager', {},
       res => {
@@ -1861,13 +1891,18 @@ export default {
       this.jDarr = arrs;
     },
     mouseleave(data, $event) {
-      $event.currentTarget.firstElementChild.nextElementSibling.setAttribute(
-        "class",
-        "node none poAub"
-      );
+      if($event.currentTarget && !this.adjustPosition) {
+        $event.currentTarget.firstElementChild.nextElementSibling.setAttribute(
+          "class",
+          "node none poAub"
+        );
+      }
+      
     },
     mouseover(data, $event) {
-      $event.currentTarget.lastChild.setAttribute("class", "node block poAub");
+      if($event.currentTarget && !this.adjustPosition) {  
+        $event.currentTarget.lastChild.setAttribute("class", "node block poAub");
+      }
     },
     confirmDeactive() {
       this.http.post(
@@ -2118,6 +2153,7 @@ export default {
         (res) => {
           if (res.code == "ok") {
             this.timeType = res.data;
+            this.saasSyncContact = res.saasSyncContact
           } else {
             this.$message({
               message: res.msg,
@@ -2783,6 +2819,7 @@ export default {
               label: this.$t('lable.unassigned'),
             });
             this.data = list;
+            this.dataRepeat = JSON.parse(JSON.stringify(list))
             console.log(list, "部门数据")
             this.option = this.changeArr(list1);
           } else {
@@ -3455,6 +3492,39 @@ export default {
       error => {
           this.$message({message: error,type: "error"});
       });
+    },
+    // 拖拽时判定目标节点能否被放置
+    allowDrop(draggingNode, dropNode, type) {
+      // 判断他是否属于同一级
+      if(draggingNode.parent.id == dropNode.parent.id) {
+        // 禁止插入目标节点内
+        if(type != 'inner') {
+          return type
+        } else {
+          return false
+        }
+      } else {
+        return false
+      }
+    },
+    nodeDrop() {
+      console.log(this.data)
+    },
+    queding() {
+      console.log(JSON.stringify(this.data), '数据', this.data)
+      this.http.post('/department/sortList', {
+        list: JSON.stringify(this.data)
+      },
+      res => {
+        if (res.code == "ok") {
+          
+        } else {
+            this.$message({message: res.msg,type: "error"});
+        }
+      },
+      error => {
+          this.$message({message: error,type: "error"});
+      });
     }
   },
   mounted() {
@@ -3482,6 +3552,22 @@ export default {
 </script>
 
 <style scoped>
+.treeIons {
+  float: right;
+  position: absolute;
+  right: 20px;
+  top: 0;
+}
+.classwxName{
+  display: flex;
+  flex-wrap: wrap;
+}
+.classwxNameIon {
+  width: 20px;
+}
+.classwxNameIon img {
+  width: 20px;
+}
 .workingHours {
   padding: 0 60px;
 }