wenbobowen 4 jaren geleden
bovenliggende
commit
4fc790d5aa

+ 2 - 2
src/api/dataMarket.js

@@ -1,7 +1,7 @@
 import request from '@/utils/request'
-// import { TeamManagement } from '@/apiConfig/api'
+import { TeamManagement } from '@/apiConfig/api'
 
-const TeamManagement = 'http://127.0.0.1:4523/mock/368525'
+// const TeamManagement = 'http://127.0.0.1:4523/mock/368525'
 // 质量
 
 // 线上问题列表

+ 51 - 7
src/components/searchHeader/searchForm.vue

@@ -40,6 +40,28 @@
         </div>
         <el-option v-for="o in l.option" v-else :key="o.value" :label="o.label" :value="o.value" />
       </el-select>
+      <el-select
+        v-else-if="l.type === 'selectGroup'"
+        v-model="l.value"
+        placeholder="请选择"
+        size="small"
+        clearable
+        filterable
+        multiple
+      >
+        <el-option-group
+          v-for="group in l.option"
+          :key="group.label"
+          :label="group.label"
+        >
+          <el-option
+            v-for="item in group.options"
+            :key="item.teamId"
+            :label="item.teamName"
+            :value="item.teamId"
+          />
+        </el-option-group>
+      </el-select>
       <div v-else-if="l.type === 'showItemDataPicker'" class="showItemDataPicker">
         <div class="inlineBlock item">
           <span
@@ -59,7 +81,7 @@
           start-placeholder="开始日期"
           end-placeholder="结束日期"
           size="small"
-          value-format="yyyy.MM.dd"
+          value-format="yyyy-MM-dd HH:mm:ss"
           :default-time="['00:00:00','23:59:59']"
           @change="(e) => $emit('change', l.key, e)"
         />
@@ -80,6 +102,25 @@
         :picker-options="pickerOptions"
         @change="(e) => $emit('change', l.key, e)"
       />
+      <!-- <el-cascader
+        v-else-if="l.type === 'cascader'"
+        v-model="l.value"
+        :options="l.option"
+        size="small"
+        @change="(e) => $emit('change', l.key, e)"
+      /> -->
+      <a-tree-select
+        v-else-if="l.type === 'cascader'"
+        v-model="l.value"
+        show-search
+        style="width: 100%"
+        :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+        placeholder="请选择"
+        tree-node-filter-prop="title"
+        tree-default-expand-all
+        :tree-data="l.option"
+        @change="(e) => $emit('change', l.key, e)"
+      />
       <el-input
         v-else
         v-model="l.value"
@@ -161,6 +202,7 @@ export default {
     }
   },
   mounted() {
+    console.log()
     this.setDate(this.showItemDataPickerItem, 'showItemDataPicker')
   },
   methods: {
@@ -169,26 +211,28 @@ export default {
       let endDate = null
       switch (type) {
         case 'week':
-          startDate = moment().startOf('week').format('YYYY.MM.DD')
-          endDate = moment().endOf('week').format('YYYY.MM.DD')
+          startDate = moment().startOf('week').format('YYYY-MM-DD HH:mm:ss')
+          endDate = moment().endOf('week').format('YYYY-MM-DD HH:mm:ss')
           // this.bugCountTimeType = this.timeTypeList[0].code
           break
         case 'month':
-          startDate = moment().startOf('month').format('YYYY.MM.DD')
-          endDate = moment().endOf('month').format('YYYY.MM.DD')
+          startDate = moment().startOf('month').format('YYYY-MM-DD HH:mm:ss')
+          endDate = moment().endOf('month').format('YYYY-MM-DD HH:mm:ss')
           // this.bugCountTimeType = this.timeTypeList[1].code
           break
         case 'year':
-          startDate = moment().startOf('year').format('YYYY.MM.DD')
-          endDate = moment().endOf('year').format('YYYY.MM.DD')
+          startDate = moment().startOf('year').format('YYYY-MM-DD HH:mm:ss')
+          endDate = moment().endOf('year').format('YYYY-MM-DD HH:mm:ss')
           // this.bugCountTimeType = this.timeTypeList[2].code
           break
       }
+      console.log(startDate, endDate)
       this.showItemDataPickerItem = type
       this.data.map(g => {
         // data[g.key] = g.value
         if (g.type === key) g.value = [startDate, endDate]
       })
+      console.log(startDate, endDate)
       this.showItemDataPickerStratAndEnd = [startDate, endDate]
       this.$emit('change', key, [startDate, endDate])
     }

+ 2 - 2
src/main.js

@@ -6,9 +6,9 @@ import ElementUI from 'element-ui'
 import 'element-ui/lib/theme-chalk/index.css'
 // import locale from 'element-ui/lib/locale/lang/en' // lang i18n 英文
 
-import { DatePicker, Popover } from 'ant-design-vue'
+import { DatePicker, Popover, TreeSelect } from 'ant-design-vue'
 
-Vue.use(DatePicker).use(Popover)
+Vue.use(DatePicker).use(Popover).use(TreeSelect)
 
 import '@/styles/index.less' // global css
 

+ 16 - 11
src/views/dataBigManage/components/efficiencyModule/index.vue

@@ -147,17 +147,22 @@
     <el-col :span="4">
       <div v-if="mainData.delayList" class="itemBox" style="border-left-color: #62D9AA; background: #62D9AA; color: #fff">
         <div v-for="item in mainData.delayList" :key="item.label" class="dataItemBox">
-          <dataItem
-            :item="{
-              'innerColor': '#62D9AA',
-              'outColor': '#fff',
-              'label': item.label,
-              'labelColor': '#fff',
-              'subTitle': `<span style=color:#fff;> 1%(${item.remark})</span>`,
-              'bgColor': 'transparent',
-              'padding': '8px 0px'
-            }"
-          />
+          <div
+            :style="{ cursor: 'pointer'}"
+            @click.stop="$emit('checkDetialModal', item)"
+          >
+            <dataItem
+              :item="{
+                'innerColor': '#62D9AA',
+                'outColor': '#fff',
+                'label': item.label,
+                'labelColor': '#fff',
+                'subTitle': `<span style=color:#fff;> 1%(${item.remark})</span>`,
+                'bgColor': 'transparent',
+                'padding': '8px 0px'
+              }"
+            />
+          </div>
         </div>
       </div>
     </el-col>

+ 4 - 4
src/views/dataBigManage/components/qualityModule/index.vue

@@ -81,7 +81,7 @@
             <span class="rollBackItem">
               <span class="bigCircle" style="background: #7ED321" />
               回滚
-              <span class="numText" style="font-size: 20px">{{ mainData.onlineProcessList.rollBack.countStr }}</span>
+              <span class="numText" style="font-size: 20px">{{ mainData.onlineProcessList.rollBack.countStr.countStr }}</span>
             </span>
           </el-col>
@@ -89,19 +89,19 @@
             <div class="rollBackItem">
               <span class="circle" style="background: #3F9DFE" />
               预发回滚
-              <span class="numText">{{ mainData.onlineProcessList.rollBack.preCountStr }}</span>
+              <span class="numText">{{ mainData.onlineProcessList.rollBack.preCountStr.countStr }}</span>
             </div>
             <div class="rollBackItem">
               <span class="circle" style="background: #3F9DFE" />
               全量回滚
-              <span class="numText">{{ mainData.onlineProcessList.rollBack.fullCountStr }}</span>
+              <span class="numText">{{ mainData.onlineProcessList.rollBack.fullCountStr.countStr }}</span>
             </div>
             <div class="rollBackItem">
               <span class="circle" style="background: #3F9DFE" />
               小流量回滚
-              <span class="numText">{{ mainData.onlineProcessList.rollBack.lowCountStr }}</span>
+              <span class="numText">{{ mainData.onlineProcessList.rollBack.lowCountStr.countStr }}</span>
             </div>
           </el-col>

+ 2 - 5
src/views/dataBigManage/components/throughputModule/index.vue

@@ -109,8 +109,6 @@ export default {
       requirementDirectionChartOption: null,
       requirementBacklogRateChartOption: null,
       versionRequirementChartOption: null,
-      echartsOption1: null,
-      echartsOption2: null,
       viewType: null,
       verTabList: ['青桔端', '滴滴小程序'],
       verTab: '青桔端',
@@ -131,8 +129,6 @@ export default {
   },
   mounted() {
     this.resetBaseData()
-    this.echartsOption1 = getOption([1, 2, 3], [4, 5, 6], 'bar')
-    this.echartsOption2 = getOption([1, 2, 3], [4, 5, 6], 'line')
   },
   methods: {
     resetBaseData() {
@@ -142,6 +138,7 @@ export default {
         requirementBacklogRateChart, // 积压率
         versionRequirementChart // 版本需求
       } = this.datas
+      console.log(this.datas)
       // 需求任务项目
       if (throughputList) {
         this.mainData = { ...this.mainData, throughputList }
@@ -156,7 +153,7 @@ export default {
         this.requirementBacklogRateChartOption = getOption(xaxis, yaxis.data, 'line')
       }
       if (versionRequirementChart) {
-        const { xaxis, yaxis } = versionRequirementChart
+        const { xaxis = [], yaxis = {}} = versionRequirementChart
         this.versionRequirementChartOption = getOption(xaxis, yaxis.data, 'bar')
       }
     },

+ 5 - 4
src/views/dataBigManage/data.js

@@ -5,14 +5,15 @@ export const listSearchData = {
         name: '部门',
         value: '',
         key: 'deptCode',
-        type: 'select',
+        type: 'cascader',
         placeholder: '请选择部门',
-        option: [{ value: 1, label: 22 }, { value: 2, label: 33 }]
+        option: []
       },
       {
         name: '时间',
         value: '',
         key: 'time',
+        valueFormat: 'yyyy-MM-dd HH:mm:ss',
         type: 'showItemDataPicker',
         placeholder: '请选择时间',
         styles: { minWidth: '270px', width: 'auto' }
@@ -23,12 +24,12 @@ export const listSearchData = {
     [{
       name: '团队',
       key: 'teamIds',
-      type: 'select',
+      type: 'selectGroup',
       multiple: true,
       placeholder: '',
       value: '',
       requried: true,
-      option: [{ value: 1, label: 22 }, { value: 2, label: 33 }]
+      option: []
     }]
   ]
 }

+ 44 - 3
src/views/dataBigManage/index.vue

@@ -47,6 +47,7 @@
 </template>
 
 <script>
+import _ from 'lodash'
 import { listSearchData } from './data'
 import {
   // 质量
@@ -64,6 +65,10 @@ import {
   // 效率
   getEfficiencyDataRequest
 } from '@/api/dataMarket'
+import {
+  getStaffByUsername
+} from '@/api/workSchedule'
+import { teamQueryTeamInfoList } from '@/api/configure'
 import searchHeader from '@/components/searchHeader'
 import headTitle from '@/components/headTitle'
 import throughputModule from './components/throughputModule/index.vue'
@@ -101,8 +106,10 @@ export default {
       }
     }
   },
-  created() {
+  mounted() {
     // this.init()
+    // localStorage.getItem('username')
+    this.getSearchOptios()
   },
   methods: {
     search() {
@@ -122,7 +129,42 @@ export default {
         startTime: data.time[0],
         endTime: data.time[1]
       }
-      this.getList()
+      if (this.params.deptCode) this.getList()
+    },
+    getSearchOptios() {
+      getStaffByUsername('shidonghai').then(async res => {
+        if (res.code === 200 && res.data.deptArch) {
+          const copySearchData = _.clone(this.listSearch)
+          const resdata = this.resetData([res.data.deptArch])
+          copySearchData.default[0][0].option = resdata
+          copySearchData.default[0][0].value = res.data.deptArch.value
+          this.listSearch = copySearchData
+          this.search()
+        } else {
+          this.depdShow = false
+        }
+      })
+      this.getTeamOption()
+    },
+    async getTeamOption() {
+      const myRes = await teamQueryTeamInfoList({ type: 0 })// 我的团队
+      const allRes = await teamQueryTeamInfoList({ type: 1 })// 所有团队
+      const copySearchData = _.clone(this.listSearch)
+      copySearchData.adv[0][0].option = [
+        { label: '我的团队', options: [...myRes.data.list] },
+        { label: '全部团队', options: [...allRes.data.list] }
+      ]
+      this.listSearch = copySearchData
+    },
+    resetData(data) {
+      const _this = this
+      // console.log(data)
+      return data.map(t => ({
+        ...t,
+        key: t.value,
+        title: t.label,
+        children: t.children && _this.resetData(t.children)
+      }))
     },
     qualitySearch(d) {
       this.params = {
@@ -140,7 +182,6 @@ export default {
         this.getVersionRequirementChartData(this.params)
       } else if (key === 'requirementBacklogType') {
         this.getRequirementBacklogRateChartData(this.params)
-        console.log('ttttttt')
       }
     },
     // 弹窗数据