Prechádzať zdrojové kódy

调整组织架构超级管理员和其他角色的编辑

Lijy 2 rokov pred
rodič
commit
3e4622decb

+ 13 - 12
fhKeeper/formulahousekeeper/timesheet/config/index.js

@@ -1,19 +1,20 @@
 var path = require('path')
 
 //  var ip = '127.0.0.1'
-// var ip = '47.101.180.183'
-// var ip = '192.168.10.6'
-// var ip = '192.168.2.6'
+var ip = '47.101.180.183'
+// var ip = '47.100.37.243'
+// var ip = '192.168.2.31'
+// var ip = '192.168.2.20'
 
-var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
-for (var i in ifaces) {
-    for (var j in ifaces[i]) {
-        var val = ifaces[i][j]
-        if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
-            ip = val.address
-        }
-    }
-}
+// var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
+// for (var i in ifaces) {
+//     for (var j in ifaces[i]) {
+//         var val = ifaces[i][j]
+//         if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
+//             ip = val.address
+//         }
+//     }
+// }
 // 1196735749
 module.exports = {
   build: {

+ 5 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/project_gantt.vue

@@ -79,6 +79,9 @@
     :stafforpro="radio1"
     :valueDate="valueDate"
     :key="updatakey1"></gantt>
+    <!-- <vueGantt v-if="isDataLoaded" ref="ganttTable1" :stafforpro="radio1"
+    :valueDate="valueDate"
+    :key="updatakey1" :tasks="tasks"></vueGantt> -->
 
   <div class="demand-container" v-if="!isDataLoaded">
     <el-table height="90%" :loading="demandListLoading" :data="demandList">
@@ -176,11 +179,12 @@
 <script>
 import { error } from 'dingtalk-jsapi';
 import Gantt from './gantt.vue';
+import vueGantt from './vueGantt.vue'
 
 export default {
   name: 'project_gantt',
   props: {},
-  components: {Gantt},
+  components: {Gantt, vueGantt},
   data() {
     return {
       taskType: '',

+ 243 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/project/vueGantt.vue

@@ -0,0 +1,243 @@
+<template>
+  <div>
+     <el-table :data="treeDataList" height="490px" row-key="id" show-overflow-tooltip :cell-style="TableCellStyle" size="mini" :span-method="arraySpanMethod" style="width: 100%;margin-bottom: 20px;" border default-expand-all :tree-config="{children: 'children', expandAll: true}" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+        <el-table-column prop="text" label="姓名" width="240" fixed="left"></el-table-column>
+        <el-table-column :label="item.name" v-for="(item, index) in headerData" :key="index">
+            <el-table-column :label="items" v-for="items, idx in item.children" :key="idx" width="160px">
+              <template slot-scope="scope">
+                <div>
+                  {{scope.row.end_date | dataValue(scope.column, scope.row)}}
+                </div>
+              </template>
+            </el-table-column>
+        </el-table-column>
+     </el-table>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    stafforpro: {
+        type: [String, Array, Object],
+        default: false
+    },
+    valueDate:{
+        type: [String, Array, Object],
+        default: false
+    },
+    updatakey1:{
+        type: [String, Array, Object],
+        default: false
+    },
+    tasks: {
+        type: Array,
+        default: []
+    }
+  },
+  components: {},
+  data() {
+    return {
+      tableData: [{
+          id: 1,
+          date: '2016-05-02',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1518 弄'
+        }, {
+          id: 2,
+          date: '2016-05-04',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1517 弄'
+        }, {
+          id: 3,
+          date: '2016-05-01',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1519 弄',
+          children: [{
+              id: 31,
+              date: '2016-05-01',
+              name: '王小虎',
+              address: '上海市普陀区金沙江路 1519 弄'
+            }, {
+              id: 32,
+              date: '2016-05-01',
+              name: '王小虎',
+              address: '上海市普陀区金沙江路 1519 弄'
+          }]
+        }, {
+          id: 4,
+          date: '2016-05-03',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1516 弄'
+        }],
+        tableData1: [{
+          id: 1,
+          date: '2016-05-02',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1518 弄'
+        }, {
+          id: 2,
+          date: '2016-05-04',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1517 弄'
+        }, {
+          id: 3,
+          date: '2016-05-01',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1519 弄',
+          hasChildren: true
+        }, {
+          id: 4,
+          date: '2016-05-03',
+          name: '王小虎',
+          address: '上海市普陀区金沙江路 1516 弄'
+        }],
+        initialMonth: '', // 开始月份
+        headerData: [], // 表头数据
+        treeDataList: []
+    };
+  },
+  filters: {
+    dataValue: function (endDate, item, value) {
+      if(endDate) {
+        let biaoto = item.label
+        if(biaoto >= value.start_date && biaoto < endDate) {
+          return value.text
+        }
+      }
+    }
+  },
+  computed: {},
+  watch: {},
+  created() {},
+  mounted() {
+    console.log(this.stafforpro)
+    console.log(this.valueDate)
+    console.log(this.updatakey1)
+    console.log(this.tasks)
+    let dataList = []
+    let allDataList = []
+    let star = this.valueDate[0].split('-')
+    let end = this.valueDate[1].split('-')
+    this.initialMonth = star[0] + '-' + star[1]
+    dataList = this.getYearAndMonth(star[0] + '-' + star[1], end[0] + '-' + end[1])
+    allDataList = this.getdiffdate(this.valueDate[0], this.valueDate[1])
+    this.combination(dataList, allDataList)
+    this.treeDataList = this.integrationTree(this.tasks.data)
+  },
+  methods: {
+    // 截取两个日期的月份数
+     getYearAndMonth(start, end) {
+      console.log(start, end)
+      let monthList = [];
+      let starts = start.split('-');
+      let ends = end.split('-');
+      let staYear = parseInt(starts[0]);
+      let staMon = parseInt(starts[1]);
+      let endYear = parseInt(ends[0]);
+      let endMon = parseInt(ends[1]);
+      while (staYear <= endYear) {
+        if (staYear === endYear) {
+          while (staMon < endMon) {
+            staMon++;
+            var str = staYear + '-'+(staMon >= 10 ? staMon : '0' + staMon);
+            monthList.push(str);
+          }
+          staYear++;
+        } else {
+          staMon++;
+          if (staMon > 12) {
+            staMon = 1;
+            staYear++;
+          }
+          let str = staYear + '-'+(staMon >= 10 ? staMon : '0' + staMon);
+          monthList.push(str);
+        }
+      }
+      return monthList;
+    },
+    // 获取所有期间的日期
+    getdiffdate(stime,etime){
+      var diffdate = new Array();
+      var i=0;
+      while(stime<=etime){
+          diffdate[i] = stime;
+          var stime_ts = new Date(stime).getTime();
+          var next_date = stime_ts + (24*60*60*1000);
+          var next_dates_y = new Date(next_date).getFullYear()+'-';
+          var next_dates_m = (new Date(next_date).getMonth()+1 < 10)?'0'+(new Date(next_date).getMonth()+1)+'-':(new Date(next_date).getMonth()+1)+'-';
+          var next_dates_d = (new Date(next_date).getDate() < 10)?'0'+new Date(next_date).getDate():new Date(next_date).getDate();
+          stime = next_dates_y+next_dates_m+next_dates_d;
+          i++;
+      }
+      return diffdate
+    },
+    // 计算组合月份和日期
+    combination(month, data) {
+      let monthStr = [this.initialMonth, ...month]
+      let arrList = []
+      for(let i in monthStr) {
+        let obj = {}
+        obj.name = monthStr[i]
+        obj.children = []
+        for(let j in data) {
+          if(data[j].indexOf(monthStr[i]) != '-1') {
+            obj.children.push(data[j])
+          }
+        }
+        arrList.push(obj)
+      }
+      this.headerData = arrList
+      console.log(this.headerData)
+    },
+    // 接收的数据整合成树形结构
+    integrationTree(data) {
+       let treeData = []
+       if(!Array.isArray(data)) {
+           return treeData
+       }
+       data.forEach(item => {
+           delete item.children;
+       });
+       let map = {};
+       data.forEach(item => {
+        if(item.text == '杨峰') {
+          console.log(item)
+        }
+           map[item.id] = item;
+       });
+       data.forEach(item => {
+           let parent = map[item.parent];
+           if(parent) {
+               (parent.children || (parent.children = [])).push(item);
+           } else {
+               treeData.push(item);
+           }
+       });
+       return treeData;
+    },
+    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
+        if (rowIndex == 4) {
+          if (columnIndex == 4) {
+            return [1, 5];
+          } else if (columnIndex === 1) {
+            return [0, 0];
+          }
+        }
+    },
+    // 设置每一个单元格的样式
+    TableCellStyle(row) {
+      if(row.row.color) {
+        let biaoto = row.column.label
+        if(biaoto >= row.row.start_date && biaoto < row.row.end_date) {
+          console.log('进来了')
+          return 'background-color: '+ row.row.color +' !important;'
+        }
+      }
+    }
+  },
+};
+</script>
+
+<style>
+</style>

+ 9 - 6
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -220,8 +220,9 @@
                     <template slot-scope="scope">
                         <el-button size="mini" type="default" v-if="scope.row.roleName == $t('role.superAdministrator') && user.id == scope.row.id" @click="transferRole(scope.row)">{{ $t('transfer') }}</el-button>
                         <el-button size="mini" type="default" v-if="scope.row.roleName != $t('role.superAdministrator')" @click="resetPwd(scope.row)">{{ $t('reset') }}</el-button>
-                        <el-button size="mini" type="primary" v-if="scope.row.roleName != $t('role.superAdministrator')" @click="openInsertDialog(scope.row)">{{ $t('bian-ji') }}</el-button>
-                        <el-button size="mini" type="primary" v-if="scope.row.roleName == $t('role.superAdministrator')" @click="openInsertDialog1(scope.row)">{{ $t('bian-ji') }}</el-button>
+                        <!-- <el-button size="mini" type="primary" v-if="scope.row.roleName != $t('role.superAdministrator')" @click="openInsertDialog(scope.row)">{{ $t('bian-ji') }}</el-button> -->
+                        <el-button size="mini" type="primary" @click="openInsertDialog(scope.row, scope.row.roleName)">{{ $t('bian-ji') }}</el-button>
+                        <!-- <el-button size="mini" type="primary" v-if="scope.row.roleName == $t('role.superAdministrator')" @click="openInsertDialog1(scope.row)">{{ $t('bian-ji') }}</el-button> -->
                         <!-- <el-button size="mini" type="danger"  v-if="scope.row.roleName != $t('role.superAdministrator')" @click="deleteUser(scope.row)">删除</el-button> -->
                         <el-button size="mini" type="default" v-if="scope.row.roleName != $t('role.superAdministrator') && scope.row.isActive==1" @click="showDeactiveDialog(scope.row)">{{ $t('ting-yong') }}</el-button>
                         <el-button size="mini" type="success" v-if="scope.row.roleName != $t('role.superAdministrator') && scope.row.isActive==0" @click="setActive(scope.row, 1)">{{ $t('enable') }}</el-button>
@@ -330,7 +331,7 @@
         </el-dialog>
 
         <!-- 新增/编辑人员的Dialog -->
-        <el-dialog :title="title" :visible.sync="dialogVisible" width="550px" :top="'7.5vh'">
+        <el-dialog :title="title" :visible.sync="dialogVisible" width="580px" :top="'7.5vh'">
             <div style="height: 62vh;overflow: auto;">
               <el-form ref="form12" :model="insertForm" :rules="rules" label-width="80px">
                   <el-form-item :label="$t('lable.name')" prop="name">
@@ -376,7 +377,7 @@
                           </el-option>
                       </el-select>
                   </el-form-item> -->
-                  <el-form-item :label="$t('jiao-se')" prop="roleId">
+                  <el-form-item :label="$t('jiao-se')" prop="roleId" v-if="roleNameFlg != $t('role.superAdministrator')">
                       <el-select v-model="insertForm.roleId" :placeholder="$t('defaultText.pleaseChoose')" style="width: 100%">
                           <el-option v-for="item in acquireRoleList" :label="item.rolename" :value="item.id" :key="item.name">
                               <span style="float: left">{{item.rolename}}</span>
@@ -759,6 +760,7 @@ export default {
   },
   data() {
     return {
+      roleNameFlg: '',
       syncHistoryReport: true,
       ymonth: null,
       importingSalaryData: false,
@@ -2183,9 +2185,10 @@ export default {
     },
 
     // 新增、编辑人员
-    openInsertDialog(row) {
+    openInsertDialog(row, roleNameFlg) {
+      this.roleNameFlg = roleNameFlg
       if (row != null) {
-        var list = JSON.parse(JSON.stringify(row)),
+          var list = JSON.parse(JSON.stringify(row)),
           arr = [],
           array = [];
         if (list.departmentCascade != "0" && list.departmentCascade != null) {