reedliuqing_i 5 éve
szülő
commit
c33ba8ef8d

+ 2 - 2
src/icons/svg/Float_icon_二维码_蓝色.svg

@@ -9,8 +9,8 @@
 	<g id="thoth_homepage" transform="translate(-1393.000000, -1477.000000)">
 		<g id="float" transform="translate(1380.000000, 1462.000000)">
 			<g id="Float_icon_二维码_def" transform="translate(13.000000, 15.000000)">
-				<path id="Float_icon_二维码" class="st0" d="M99.7,477.8c0-126.5,0-252.8,0-379.5c126.1,0,251.8,0,378.3,0
-					c0,126.4,0,252.6,0,379.5C352,477.8,226.1,477.8,99.7,477.8z M409.9,F167c-81,0-161.2,0-241.2,0c0,81.2,0,161.7,0,242.2
+				<path id="	" class="st0" d="M99.7,477.8c0-126.5,0-252.8,0-379.5c126.1,0,251.8,0,378.3,0
+					c0,126.4,0,252.6,0,379.5C352,477.8,226.1,477.8,99.7,477.8z M409.9,167c-81,0-161.2,0-241.2,0c0,81.2,0,161.7,0,242.2
 					c80.7,0,160.6,0,241.2,0C409.9,328.4,409.9,248.1,409.9,167z M99.9,548.5c125.9,0,251.6,0,378.1,0c0,126.5,0,252.8,0,379.6
 					c-125.8,0-251.6,0-378.1,0C99.9,801.9,99.9,675.5,99.9,548.5z M409.9,617.4c-81,0-161.2,0-241.2,0c0,81.2,0,161.8,0,242.2
 					c80.7,0,160.7,0,241.2,0C409.9,778.8,409.9,698.6,409.9,617.4z M549.3,477.9c0-126.9,0-252.9,0-379.6c126.3,0,252.3,0,378.7,0

+ 1 - 1
src/layout/components/Navbar.vue

@@ -128,7 +128,7 @@ export default {
       settingGetBizList({}).then(res => {
         this.sumTypeArray = res.data
         settingUserGetBiz().then(res => {
-          if (res.data.bizId) {
+          if (res.data) {
             this.sumTypeArray.map(item => {
               if (res.data.bizId === item.code) {
                 this.sumType = item.name

+ 17 - 10
src/router/index.js

@@ -60,27 +60,34 @@ export const constantRoutes = [{
   hidden: true
 },
 {
-  path: '/Platform/workbench',
-  name: '工作台',
+  path: '/Platform/workbench/person',
+  name: '个人工作台',
   component: Layout,
   redirect: '/Platform/workbench/person',
   meta: { title: '工作台', icon: '工作台' },
   children: [{
     path: 'person',
-    name: '个人工作台',
     component: () =>
           import('@/views/workbench/person/index.vue'),
     meta: { title: '个人工作台' }
-  },
-  {
-    path: 'team',
-    name: '团队工作台',
-    component: () =>
-          import('@/views/workbench/team/index.vue'),
-    meta: { title: '团队工作台' }
   }
   ]
 },
+{
+  path: '/Platform/workbench/team',
+  name: '团队工作台',
+  component: Layout,
+  redirect: '/Platform/workbench/team',
+  meta: { title: '工作台', icon: '工作台' },
+  children: [
+    {
+      path: 'team',
+      component: () =>
+          import('@/views/workbench/team/index.vue'),
+      meta: { title: '团队工作台' }
+    }
+  ]
+},
 {
   path: '/Platform/projectManage',
   name: '项目管理',

+ 8 - 8
src/views/workbench/person/calendarFormDialog.vue

@@ -36,9 +36,9 @@
             <el-select v-model="form.bizId" style="width: 100%">
               <el-option
                 v-for="item in businesslines"
-                :key="item.id"
-                :label="item.bizName"
-                :value="item.id"
+                :key="item.code"
+                :label="item.name"
+                :value="item.code"
               />
             </el-select>
           </el-form-item>
@@ -68,7 +68,7 @@
 
 <script>
 import workbenchApi from '@/api/workbench.js'
-import { queryBizTypeList } from '@/api/defectManage'
+import { settingGetBizList } from '@/api/defectManage'
 // import dayjs from 'dayjs'
 
 export default {
@@ -136,7 +136,7 @@ export default {
     }
   },
   mounted() {
-    this.queryBizTypeList()
+    this.settingGetBizList()
   },
   methods: {
     cancel() {
@@ -190,9 +190,9 @@ export default {
       this.dateFomat()
       return workbenchApi.updateSelfSchedule(this.form)
     },
-    queryBizTypeList() {
-      queryBizTypeList({}).then(res => {
-        this.businesslines = res.data.list
+    settingGetBizList() {
+      settingGetBizList({}).then(res => {
+        this.businesslines = res.data
       })
     }
   }

+ 50 - 23
src/views/workbench/team/index.vue

@@ -23,9 +23,9 @@
         >
           <el-option
             v-for="item in searchEnum.businesslines"
-            :key="item.id"
-            :label="item.bizName"
-            :value="item.id"
+            :key="item.code"
+            :label="item.name"
+            :value="item.code"
           />
         </el-select>
       </div>
@@ -75,10 +75,12 @@
         </el-col>
       </el-row>
       <gantt-elastic
+        v-if="ganttShow"
+        ref="ganttElastic"
         :tasks="tasks"
         :options="options"
       >
-        <gantt-elastic-header v-show="false" slot="header" ref="ganttHeader" />
+        <gantt-elastic-header v-show="true" slot="header" ref="ganttHeader" />
       </gantt-elastic>
     </el-main>
   </el-container>
@@ -86,7 +88,7 @@
 
 <script>
 import workbenchApi from '@/api/workbench.js'
-import { queryBizTypeList } from '@/api/defectManage'
+import { settingGetBizList } from '@/api/defectManage'
 import GanttElastic from 'gantt-elastic'
 import GanttHeader from 'gantt-elastic-header'
 import dayjs from 'dayjs'
@@ -156,7 +158,7 @@ export default {
             {
               id: 2,
               label: '任务名称',
-              value: 'label',
+              value: 'labelName',
               width: 180,
               expander: true,
               style: {
@@ -169,7 +171,7 @@ export default {
             {
               id: 3,
               label: '开始时间',
-              value: task => dayjs(task.start).format('YYYY-MM-DD'),
+              value: 'startDate',
               width: 90,
               style: {
                 'task-list-header-label': {
@@ -185,7 +187,7 @@ export default {
             {
               id: 4,
               label: '结束时间',
-              value: task => dayjs(task.start + task.duration).format('YYYY-MM-DD'),
+              value: 'endDate',
               width: 90,
               style: {
                 'task-list-header-label': {
@@ -219,6 +221,7 @@ export default {
       }, // 甘特图配置
       ganttHeaderStyle: {
       },
+      colorList: ['rgba(255,82,0,0.5)', 'rgba(227,131,247,0.5)', 'rgba(68,190,255,0.5)', 'rgba(122,221,13,0.5)', 'rgba(245,108,108,0.5)'],
       radio1: '忙碌',
       radio2: '今天',
       radio2TF: true,
@@ -236,12 +239,13 @@ export default {
         businesslines: []
       },
       username: localStorage.getItem('username'),
-      teamWorkList: []
+      teamWorkList: [],
+      ganttShow: false
     }
   },
   mounted() {
     this.queryTeamInfoList(this.username)
-    this.queryBizTypeList()
+    this.settingGetBizList()
     this.queryTeamWorkList()
   },
   methods: {
@@ -268,13 +272,13 @@ export default {
         // this.radio2TF = !this.radio2TF
       }
       if (val === '月') {
-        this.$refs.ganttHeader.setScale(22)
+        this.$refs.ganttHeader.scale = 24
       }
       if (val === '周') {
-        this.$refs.ganttHeader.setScale(20)
+        this.$refs.ganttHeader.scale = 20
       }
       if (val === '日') {
-        this.$refs.ganttHeader.setScale(10)
+        this.$refs.ganttHeader.scale = 17
       }
     },
     queryTeamInfoList(username) {
@@ -289,13 +293,13 @@ export default {
         }
       })
     },
-    queryBizTypeList() {
-      queryBizTypeList({}).then(res => {
+    settingGetBizList() {
+      settingGetBizList({}).then(res => {
         if (res.data) {
-          this.searchEnum.businesslines = res.data.list
+          this.searchEnum.businesslines = res.data
           this.searchEnum.businesslines.unshift({
-            id: null,
-            bizName: '全部'
+            code: null,
+            name: '全部'
           })
         }
       })
@@ -321,6 +325,9 @@ export default {
       })
     },
     createTasks(res, mode) {
+      const today = new Date()
+      const colorlist = ['#A1DEFF', '#FAB5B5', '#BCED86', '#FFA87F', '#8E44AD', '#1EBC61', '#0287D0']
+      this.ganttShow = false
       this.tasks = []
       let count = 0
       for (const i in res.data) {
@@ -330,29 +337,49 @@ export default {
         } else {
           label = res.data[i].workNum.taskWorkNum + '个空闲时段'
         }
+        const color = colorlist[count % colorlist.length]
         const parentItem = {
           id: count++,
-          label: label,
+          labelName: label,
+          label: res.data[i].workNum.startTime && res.data[i].workNum.endTime ? label : '',
           user: res.data[i].userInfo.ldapName,
           collapsed: true,
+          progress: 0,
           needLegalAllDays: res.data[i].workNum.needDays + '/' + res.data[i].workNum.legalDays + '/' + res.data[i].workNum.allDays,
-          start: dayjs(res.data[i].workNum.startTime).toDate().getTime(),
-          duration: dayjs(res.data[i].workNum.endTime).toDate().getTime() - dayjs(res.data[i].workNum.startTime).toDate().getTime(),
-          type: 'task'
+          start: res.data[i].workNum.startTime ? dayjs(res.data[i].workNum.startTime).toDate().getTime() : today.getTime(),
+          duration: res.data[i].workNum.endTime ? dayjs(res.data[i].workNum.endTime).toDate().getTime() - dayjs(res.data[i].workNum.startTime).toDate().getTime() : 0,
+          startDate: res.data[i].workNum.startTime ? dayjs(res.data[i].workNum.startTime).format('YYYY-MM-DD') : '',
+          endDate: res.data[i].workNum.endTime ? dayjs(res.data[i].workNum.endTime).format('YYYY-MM-DD') : '',
+          type: 'task',
+          style: {
+            base: {
+              fill: color
+            }
+          }
         }
         this.tasks.push(parentItem)
         for (const j in res.data[i].workData) {
           const item = {
             id: count++,
             parentId: parentItem.id,
+            labelName: res.data[i].workData[j].name,
             label: res.data[i].workData[j].name,
             user: parentItem.user,
+            progress: 0,
             needLegalAllDays: res.data[i].workData[j].needDays + '/' + res.data[i].workData[j].legalDays + '/' + res.data[i].workData[j].allDays,
             start: dayjs(res.data[i].workData[j].startTime).toDate().getTime(),
             duration: dayjs(res.data[i].workData[j].endTime).toDate().getTime() - dayjs(res.data[i].workData[j].startTime).toDate().getTime(),
-            type: 'task'
+            startDate: dayjs(res.data[i].workData[j].startTime).format('YYYY-MM-DD'),
+            endDate: dayjs(res.data[i].workData[j].endTime).format('YYYY-MM-DD'),
+            type: 'task',
+            style: {
+              base: {
+                fill: color
+              }
+            }
           }
           this.tasks.push(item)
+          this.ganttShow = true
         }
       }
     }