Переглянути джерело

Merge branch 'http_test' into pern

qinzhipeng_v 5 роки тому
батько
коміт
785a1c6847

+ 3 - 1
package.json

@@ -28,6 +28,8 @@
     "axios": "0.18.0",
     "cnpm": "^6.1.1",
     "core-js": "^2.6.11",
+    "browserslist": "^4.12.0",
+    "caniuse-lite": "^1.0.30001084",
     "crypto-js": "^4.0.0",
     "dayjs": "^1.8.17",
     "echarts": "^4.2.1",
@@ -71,7 +73,7 @@
     "@vue/cli-service": "3.6.0",
     "@vue/test-utils": "1.0.0-beta.29",
     "ant-design-vue": "^1.6.2",
-    "autoprefixer": "^9.5.1",
+    "autoprefixer": "^9.8.0",
     "babel-core": "7.0.0-bridge.0",
     "babel-eslint": "10.0.1",
     "babel-jest": "23.6.0",

+ 8 - 1
src/views/projectManage/bugList/details/bugTableDialog.vue

@@ -1,6 +1,13 @@
 <template>
   <div>
-    <el-table size="small" :data="tableData" class="bug_tableHeader" show-overflow-tooltip="true" :header-cell-style="{ color: '#4A4A4A', fontSize: '14px', fontWeight: '500' }">
+    <el-table
+      size="small"
+      :data="tableData"
+      class="bug_tableHeader"
+      show-overflow-tooltip="true"
+      :header-cell-style="{ color: '#4A4A4A', fontSize: '14px', fontWeight: '500' }"
+      row-key="id"
+    >
       <el-table-column label="优先级" prop="priorityCode" min-width="100" sortable align="center">
         <template slot-scope="scope" style="text-align: center;">
           <span class="div_priority" :class="[{'priority_color': scope.row.priorityLevel === 'High'},{'priority_color1': scope.row.priorityLevel === 'Medium'},{'priority_color3': scope.row.priorityLevel === 'Low'}]">

+ 1 - 0
src/views/projectManage/bugList/details/statusChange.vue

@@ -208,6 +208,7 @@ export default {
       }
     },
     modalClose() {
+      this.$forceUpdate()
       this.statusDialogVisible = false
       this.status = this.statusCode
     }

+ 7 - 5
src/views/projectManage/iteration/components/create.vue

@@ -74,11 +74,13 @@ export default {
     iterations: {
       immediate: true,
       handler(iterations) {
-        if (iterations.endTime === '未设置') {
-          this.$set(this.iterations, 'endTime', '')
-        }
-        if (iterations.startTime === '未设置') {
-          this.$set(this.iterations, 'startTime', '')
+        if (iterations !== null) {
+          if (iterations.endTime === '未设置') {
+            this.$set(this.iterations, 'endTime', '')
+          }
+          if (iterations.startTime === '未设置') {
+            this.$set(this.iterations, 'startTime', '')
+          }
         }
         this.iteration = iterations === null ? {} : this.iterations
       }

+ 1 - 1
src/views/projectManage/iteration/components/iterationTable.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="schedule-list">
-    <el-col align="right" class="add-schedule"><span @click="addSchedule()"><i class="el-icon-circle-plus-outline" />添加排期</span></el-col>
+    <!-- <el-col align="right" class="add-schedule"><span @click="addSchedule()"><i class="el-icon-circle-plus-outline" />添加排期</span></el-col> -->
     <el-table
       :id="'schedule-'+id"
       :data="scheduleList"

+ 7 - 4
src/views/projectManage/projectList/components/needsList.vue

@@ -148,16 +148,19 @@ export default {
 .status0 {
   @include setStatus(#409EFF)
 }
-.status1 {
+.status5 {
   @include setStatus(#FF8952)
 }
-.status3 {
+.status10 {
   @include setStatus(#FF8952)
 }
-.status5 {
+.status15 {
+  @include setStatus(#FF8952)
+}
+.status20 {
   @include setStatus(#FF8952)
 }
-.status9 {
+.status25 {
   @include setStatus(#7ED321)
 }
 .div_priority {

+ 1 - 1
src/views/projectManage/projectList/components/scheduleList.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="schedule-list">
-    <el-col align="right" class="add-schedule"><span @click="addSchedule()"><i class="el-icon-circle-plus-outline" />添加排期</span></el-col>
+    <!-- <el-col align="right" class="add-schedule"><span @click="addSchedule()"><i class="el-icon-circle-plus-outline" />添加排期</span></el-col> -->
     <el-table
       :id="'schedule-'+id"
       :data="scheduleList"

+ 27 - 10
src/views/projectManage/projectList/components/taskList.vue

@@ -5,11 +5,11 @@
         <el-checkbox v-model="planChecked" class="plan-checked" @change="changeCheck" />
       </el-col>
       <el-col :span="3" class="item-checked">已选择<span style="color: #409EFF">{{ curcentChecked }}</span>个</el-col>
-      <el-col :span="1" class="item-click">|</el-col>
-      <el-col :span="2" class="item-click click-blue" @click.native="addSechedule()">添加排期</el-col>
-      <el-col :span="2" class="item-click click-blue" @click.native="handlePlan('test')">提测</el-col>
-      <el-col :span="2" class="item-click click-blue" @click.native="handlePlan('allow')">准出</el-col>
-      <el-col :span="4" class="item-click click-blue" @click.native="handlePlan('daily')">建立测试日报</el-col>
+      <el-col :span="1" class="item-line">|</el-col>
+      <el-col :span="2" class="item-click" @click.native="addSechedule()"><img :src="imgUrl">添加排期</el-col>
+      <el-col :span="2" class="item-click" @click.native="handlePlan('test')"><img :src="imgUrl">提测</el-col>
+      <el-col :span="2" class="item-click" @click.native="handlePlan('allow')"><img :src="imgUrl">准出</el-col>
+      <el-col :span="4" class="item-click" @click.native="handlePlan('daily')"><img :src="imgUrl">建立测试日报</el-col>
       <el-col :span="4" class="item-click" @click.native="handlePlan('cancel')">取消选择</el-col>
     </el-row>
     <el-table
@@ -106,6 +106,7 @@
   </div>
 </template>
 <script>
+import imgUrl from '@/assets/建立档案@2x.png'
 import '@/styles/PublicStyle/index.scss'
 import TestReport from '@/views/Platform/presentation/Templates/TestReport' // 提测
 import DailyReport from '@/views/Platform/presentation/Templates/DailyReport' // 日报
@@ -129,6 +130,7 @@ export default {
   },
   data() {
     return {
+      imgUrl: imgUrl,
       changeData: new Map(),
       allChange: false, // 是否全展开
       expandArr: [], // 展开行数组
@@ -393,6 +395,8 @@ export default {
     align-items: center;
   }
   .item-checked {
+    width: auto;
+    margin-right: 28px;
     color: #606266;
     font-size: 14px;
     display: flex;
@@ -400,16 +404,29 @@ export default {
     justify-content: left;
     cursor: pointer;
   }
-  .item-click{
-    color: #606266;
+  .item-click,.item-line{
+    margin: 0;
+    width: auto;
+    color: #666666;
     font-size: 14px;
     display: flex;
     align-items: center;
-    justify-content: center;
     cursor: pointer;
+    margin-right: 28px;
+    img {
+      height: 13.5px;
+      widows: 13.5px;
+      margin-right: 5px;
+    }
+  }
+  .item-line {
+    color:rgba(102,102,102,0.6);
   }
-  .click-blue {
-    color: #409EFF;
+  .cancel {
+    position: absolute;
+    right: 0;
+    top: 50%;
+    transform: translateY(-50%);
   }
 }
 .descr {

+ 3 - 3
src/views/projectManage/requirement/components/scheduleList.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="schedule-list" :class="className">
-    <el-col align="right" class="add-schedule"><span @click="addSchedule()"><i class="el-icon-circle-plus-outline" />添加排期</span></el-col>
+    <!-- <el-col align="right" class="add-schedule"><span @click="addSchedule()"><i class="el-icon-circle-plus-outline" />添加排期</span></el-col> -->
     <el-table
       :id="'schedule-'+id"
       :data="scheduleList"
@@ -38,9 +38,9 @@
     <div class="bottom-detail">
       <el-row>排期总汇:{{ scheduleDetail.startTime | handlerDate }} ~ {{ scheduleDetail.endTime | handlerDate }}</el-row>
       <el-row v-if="scheduleDetail.preOnlineVersion && scheduleDetail.preOnlineVersion.length>0">
-        <el-col :span="2">预计上线版本:</el-col>
+        <el-col :span="2" style="width: 100px">预计上线版本:</el-col>
         <el-col :span="6">
-          <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}</span><br>
+          <span v-for="item in scheduleDetail.preOnlineVersion" :key="item">{{ item }}<br></span>
         </el-col>
       </el-row>
       <el-row v-else>预计上线版本:</el-row>

+ 29 - 12
src/views/projectManage/requirement/components/taskList.vue

@@ -4,13 +4,13 @@
       <el-col :span="2" class="flex-align-center">
         <el-checkbox v-model="planChecked" class="plan-checked" @change="changeCheck" />
       </el-col>
-      <el-col :span="3" class="item-checked">已选择<span style="color: #409EFF">{{ curcentChecked }}</span>个</el-col>
-      <el-col :span="1" class="item-click">|</el-col>
-      <el-col :span="2" class="item-click click-blue" @click.native="addSechedule()">添加排期</el-col>
-      <el-col :span="2" class="item-click click-blue" @click.native="handlePlan('test')">提测</el-col>
-      <el-col :span="2" class="item-click click-blue" @click.native="handlePlan('allow')">准出</el-col>
-      <el-col :span="4" class="item-click click-blue" @click.native="handlePlan('daily')">建立测试日报</el-col>
-      <el-col :span="4" class="item-click" @click.native="handlePlan('cancel')">取消选择</el-col>
+      <el-col :span="2" class="item-checked">已选择<span style="color: #409EFF">{{ curcentChecked }}</span>个</el-col>
+      <el-col :span="1" class="item-line">|</el-col>
+      <el-col :span="2" class="item-click" @click.native="addSechedule()"><img :src="imgUrl">添加排期</el-col>
+      <el-col :span="2" class="item-click" @click.native="handlePlan('test')"><img :src="imgUrl">提测</el-col>
+      <el-col :span="2" class="item-click" @click.native="handlePlan('allow')"><img :src="imgUrl">准出</el-col>
+      <el-col :span="4" class="item-click" @click.native="handlePlan('daily')"><img :src="imgUrl">建立测试日报</el-col>
+      <el-col :span="4" class="item-click cancel" @click.native="handlePlan('cancel')">取消选择</el-col>
     </el-row>
     <el-table
       ref="planTable"
@@ -103,6 +103,7 @@
   </div>
 </template>
 <script>
+import imgUrl from '@/assets/建立档案@2x.png'
 import TestReport from '@/views/Platform/presentation/Templates/TestReport' // 提测
 import DailyReport from '@/views/Platform/presentation/Templates/DailyReport' // 日报
 import ClientReport from '@/views/Platform/presentation/Templates/ClientReport' // 准出
@@ -126,6 +127,7 @@ export default {
   },
   data() {
     return {
+      imgUrl: imgUrl,
       changeData: new Map(),
       allChange: false, // 是否全展开
       expandArr: [], // 展开行数组
@@ -391,6 +393,8 @@ export default {
     align-items: center;
   }
   .item-checked {
+    width: auto;
+    margin-right: 28px;
     color: #606266;
     font-size: 14px;
     display: flex;
@@ -398,16 +402,29 @@ export default {
     justify-content: left;
     cursor: pointer;
   }
-  .item-click{
-    color: #606266;
+  .item-click,.item-line{
+    margin: 0;
+    width: auto;
+    color: #666666;
     font-size: 14px;
     display: flex;
     align-items: center;
-    justify-content: center;
     cursor: pointer;
+    margin-right: 28px;
+    img {
+      height: 13.5px;
+      widows: 13.5px;
+      margin-right: 5px;
+    }
+  }
+  .item-line {
+    color:rgba(102,102,102,0.6);
   }
-  .click-blue {
-    color: #409EFF;
+  .cancel {
+    position: absolute;
+    right: 0;
+    top: 50%;
+    transform: translateY(-50%);
   }
 }
 .descr {

+ 5 - 8
src/views/projectManage/taskList/components/modifySchedule.vue

@@ -91,7 +91,7 @@ const _ = require('lodash')
 import searchPeople from '@/components/select/searchPeople'
 import normalDialog from '@/components/dialog/normalDialog'
 import selDatePicker from '@/components/picker/SelDatePicker'
-import { taskList as allTaskList, configShowTaskEnum } from '@/api/taskIndex'
+import { taskList as allTaskList, configShowTaskEnum, taskGet } from '@/api/taskIndex'
 import { getSeprateDayInfo, scheduleCreate, scheduleGet, scheduleUpdate, scheduleDelete } from '@/api/projectViewDetails'
 import danger from '@/assets/感叹@2x.png'
 export default {
@@ -190,14 +190,11 @@ export default {
   },
   methods: {
     async init() {
-      const res = await allTaskList({
-        bizId: Number(localStorage.getItem('bizId')),
-        name: this.$route.query.id
-      })
+      const res = await taskGet(this.$route.query.id)
       if (res.code === 200) {
-        this.tasksOptions = res.data
-        this.tasksDetailList = [...res.data]
-        this.form.taskList = res.data.map(item => item.id)
+        this.tasksOptions = [res.data]
+        this.tasksDetailList = [res.data]
+        this.form.taskList = [res.data.id]
       }
     },
     async getScheduleData(id) { // 当有传入的详细信息的时候

+ 1 - 1
src/views/projectManage/taskList/taskViewDetail.vue

@@ -76,7 +76,7 @@
                 <template v-else>{{ form_query.projectName }}</template>
               </el-form-item>
               <el-form-item label="所属需求:" class="module">
-                <div v-if="form_query.requireId !== -1" @click="jump('项目详情',form_query.requireId)">{{ form_query.requireName }}</div>
+                <div v-if="form_query.requireId !== -1" @click="jump('需求详情',form_query.requireId)">{{ form_query.requireName }}</div>
                 <template v-else>{{ form_query.requireName }}</template>
               </el-form-item>
               <el-form-item label="所属模块:" class="module">

+ 10 - 2
src/views/workbench/bugTableList.vue

@@ -8,7 +8,15 @@
         <el-dropdown-item v-for="(item, index) in bugProcessStatusList" :key="index" @click.native="handleClick(item)">{{ item.name }}</el-dropdown-item>
       </el-dropdown-menu>
     </el-dropdown>
-    <el-table ref="bug_tableHeader" size="small" :data="tableData" class="bug_tableHeader" show-overflow-tooltip="true" :header-cell-style="{ color: '#4A4A4A', fontSize: '14px', fontWeight: '500' }">
+    <el-table
+      ref="bug_tableHeader"
+      size="small"
+      :data="tableData"
+      class="bug_tableHeader"
+      show-overflow-tooltip="true"
+      :header-cell-style="{ color: '#4A4A4A', fontSize: '14px', fontWeight: '500' }"
+      row-key="id"
+    >
       <el-table-column label="优先级" prop="priorityCode" min-width="100" sortable align="center">
         <template slot-scope="scope" style="text-align: center;">
           <span class="div_priority" :class="[{'priority_color': scope.row.priorityLevel === 'High'},{'priority_color1': scope.row.priorityLevel === 'Medium'},{'priority_color3': scope.row.priorityLevel === 'Low'}]">
@@ -50,7 +58,7 @@
       />
     </div>
 
-    <el-drawer :visible.sync="drawerShow" :modal="false" :with-header="false" size="50%" class="bug_manage_drawer" @click.stop>
+    <el-drawer v-if="drawerShow" :visible.sync="drawerShow" :modal="false" :with-header="false" size="50%" class="bug_manage_drawer" @click.stop>
       <div @click.stop>
         <bug-details
           :id="bugQuery.id+''"

+ 5 - 2
src/views/workbench/person/components/calenderDetail.vue

@@ -23,7 +23,7 @@
         <div>{{ nowDetailData.seperateDaysNoHoliday }}(用时<span>{{ nowDetailData.needDays }}</span>天)</div>
       </div>
       <div class="detail-people item"><div class="label">参与人:</div>
-        {{ nowDetailData.peopleObjectList.map(item=>item.name).join(',') }}
+        {{ nowDetailData.peopleObject.name }}
       </div>
       <div class="detail-needs item"><div class="label">同步到团队:</div>{{ nowDetailData.syncTeam === 0?'否':'是' }}</div>
       <div class="detail-tasks item"><div class="label">日程描述:</div>{{ nowDetailData.desc }}</div>
@@ -70,7 +70,10 @@ export default {
     },
     data: {
       handler(newV) {
-        this.nowDetailData = newV
+        console.log(newV)
+        if (newV) {
+          this.nowDetailData = newV
+        }
       },
       deep: true
     },

+ 1 - 1
src/views/workbench/person/components/calenderList.vue

@@ -36,7 +36,7 @@
     <el-table
       :data="tableData"
       style="width: 100%"
-      :header-cell-style="{ backgroundColor: 'rgba(240,242,244,0.7)' ,color: '#333B4A', fontSize: '14px', fontWeight: '550', textAlign: 'center' }"
+      :header-cell-style="{ backgroundColor: 'rgba(232,232,232,0.4)', color: 'rgb(74, 74, 74)', fontSize: '14px', fontWeight: '500'}"
       show-overflow-tooltip="true"
       :header-row-style="{height: '61px'}"
     >

+ 2 - 2
src/views/workbench/person/components/myFullCalendar.vue

@@ -186,7 +186,7 @@ export default {
         // const color = grandParent.style.color
         const div = document.createElement('div')
         div.style.display = 'inline-block'
-        div.style.paddingTop = '2px'
+        div.style.paddingTop = '0'
         const icon = document.createElement('i')
         if (item.innerText.match(/排期/)) {
           icon.className = 'el-icon-document'
@@ -249,7 +249,7 @@ export default {
   padding-top: 2px;
 }
 >>>.fc-title {
-  line-height: 20px;
+  line-height: 15px;
   padding-left: 4px;
 }
 >>>.fc-event-container .fc-content {

+ 24 - 11
src/views/workbench/person/index.vue

@@ -149,8 +149,9 @@
       <modify-schedule
         v-if="visibleSchedule"
         :visible.sync="visibleSchedule"
-        :detail-data="updateSchedule.data"
-        :title="'修改排期'"
+        :is-delete.sync="isDelete"
+        :detail-data="nowDetailData"
+        :title="DialogTitle"
         @update="queryWorkListByTime(calendarView)"
       />
       <!-- 排期操作弹框 -->
@@ -214,6 +215,8 @@ export default {
         visible: false,
         data: null
       },
+      DialogTitle: '新建排期', // 排期弹框标题
+      isDelete: false, // 删除排期操作
       teamAndMemberEnum: {},
       teamAndMemberMap: {},
       teamInfo: null, // 团队信息数据
@@ -291,13 +294,19 @@ export default {
       if (data) {
         this.nowDetailData = data
       }
-      this.$confirm('是否删除此日程', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        this.nowDetailData.origin === 0 ? this.deleteSchedule_0() : this.deleteSchedule_1()
-      }).catch(() => {})
+      if (this.nowDetailData.origin === 0) {
+        this.DialogTitle = '删除排期'
+        this.isDelete = true
+        this.visibleSchedule = true
+      } else if (this.nowDetailData.origin === 1) {
+        this.$confirm('是否删除此日程', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.deleteSchedule_0()
+        }).catch(() => {})
+      }
     },
     async deleteSchedule_1() { // 删除日程
       const res = await deleteSelfSchedule(this.nowDetailData.id)
@@ -334,9 +343,13 @@ export default {
       }
       const res = await queryWorkListByTime(params)
       if (res.code === 200) {
+        let num = 0
         this.calendarEvents = res.data.map((item, index) => {
           const title = item.origin ? '日程' : '排期'
           const require = `${item.requireNames && item.requireNames.length > 0 ? item.requireNames.join(',') : '无'}`
+          if (index >= 1 && item.id === res.data[index - 1].id) {
+            num = num + 1
+          }
           return {
             id: item.id,
             title: `${title}:${item.peopleObject.name}:${item.name}-${item.desc || '无'};所属需求:${require}`,
@@ -344,8 +357,8 @@ export default {
             end: moment(item.endTime).add(1, 'day').toDate(),
             detailData: item,
             className: item.origin ? 'schedule1' : 'schedule2',
-            backgroundColor: this.bgColorList[index % 10],
-            textColor: this.colorList[index % 10]
+            backgroundColor: this.bgColorList[(index - num) % 10],
+            textColor: this.colorList[(index - num) % 10]
           }
         })
       }

+ 18 - 9
src/views/workbench/team/index.vue

@@ -104,8 +104,9 @@
     <modify-schedule
       v-if="visibleSchedule"
       :visible.sync="visibleSchedule"
-      :detail-data="updateSchedule.data"
-      :title="'修改排期'"
+      :is-delete.sync="isDelete"
+      :detail-data="nowDetailData"
+      :title="DialogTitle"
       @update="queryTeamWorkListByTime(calendarView)"
     />
     <!-- 排期操作弹框 -->
@@ -171,6 +172,8 @@ export default {
         visible: false,
         data: null
       },
+      DialogTitle: '新建排期', // 排期弹框标题
+      isDelete: false, // 删除排期操作
       visibleSchedule: false, // 排期任务弹框
       colorList: [
         'rgba(11,160,188,1)', 'rgba(28,188,126,1)', 'rgba(240,187,39,1)', 'rgba(132,100,247 ,1)', 'rgba(73,92,197 ,1)',
@@ -307,13 +310,19 @@ export default {
       if (data) {
         this.nowDetailData = data
       }
-      this.$confirm('是否删除此日程', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        this.nowDetailData.origin === 0 ? this.deleteSchedule_0() : this.deleteSchedule_1()
-      }).catch(() => {})
+      if (this.nowDetailData.origin === 0) {
+        this.DialogTitle = '删除排期'
+        this.isDelete = true
+        this.visibleSchedule = true
+      } else if (this.nowDetailData.origin === 1) {
+        this.$confirm('是否删除此日程', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.deleteSchedule_0()
+        }).catch(() => {})
+      }
     },
     async deleteSchedule_1() { // 删除日程
       const res = await deleteSelfSchedule(this.nowDetailData.id)