From f310bae9037704212a5626ed26a32bd4182a3508 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 08 五月 2024 20:50:21 +0800
Subject: [PATCH] 完成样品管理bug
---
/dev/null | 274 ------------------
src/components/view/b4-daily-business-statistics.vue | 7
src/components/view/b1-sample.vue | 23 +
src/components/view/b3-classes.vue | 511 ++++++++++++++++-----------------
src/components/view/b4-inspection-item-statistics.vue | 26 +
src/assets/api/controller.js | 7
6 files changed, 292 insertions(+), 556 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 3c5b676..2e611f1 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -22,6 +22,7 @@
certification,
sealScope,
informationNotification,
+ performanceShift,
}
}
@@ -256,3 +257,9 @@
triggerModificationStatusToRead:"/informationNotification/triggerModificationStatusToRead",//鐐瑰嚮璇︽儏瑙﹀彂淇敼鐘舵�佷负宸茶
}
+const performanceShift = {
+ add:"/performanceShift/add",//缁╂晥绠$悊-鐝-鎺掔彮
+ page:"/performanceShift/page",//缁╂晥绠$悊-鐝-鍒嗛〉鏌ヨ
+ update:"/performanceShift/update/",//缁╂晥绠$悊-鐝-鐝鐘舵�佷慨鏀�
+}
+
diff --git a/src/components/view/b1-sample.vue b/src/components/view/b1-sample.vue
index f87b81d..d35359e 100644
--- a/src/components/view/b1-sample.vue
+++ b/src/components/view/b1-sample.vue
@@ -292,7 +292,7 @@
<el-button type="primary" @click="confirmExport" :loading="upLoadExport">纭� 瀹�</el-button>
</span>
</el-dialog>
- <el-dialog title="搴撲綅缁存姢" :visible.sync="keepVisible" width="350px">
+ <el-dialog title="搴撲綅缁存姢" :visible.sync="keepVisible" width="350px" :append-to-body="true">
<el-tree :data="warehouse" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id"
:filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
@node-collapse="nodeClose" :default-expanded-keys="expandedKeys" v-if="keepVisible"
@@ -302,7 +302,7 @@
<el-col :span="20">
<span><i
:class="`node_i ${node.level<2 ? 'el-icon-folder-opened': 'el-icon-tickets'}`"></i>
- {{ data.name }}{{ node.level }}</span>
+ {{ data.name }}</span>
</el-col>
<el-col :span="4" v-if="node.level<3">
<el-button type="text" size="mini" icon="el-icon-edit" @click.stop="handleEdit(data,node.level)">
@@ -895,6 +895,12 @@
this.entity.shelfId = this.shelf[0].id
this.handleShelf(this.entity.shelfId)
}
+ }else if(this.warehouse.length>0){
+ this.warehouseChange(this.entity.warehouseId)
+ if(this.shelf.length>0){
+ this.entity.shelfId = this.shelf[0].id
+ this.handleShelf(this.entity.shelfId)
+ }
}
})
},
@@ -979,6 +985,7 @@
}).then(res => {
this.upLoadWarehouse = false;
this.warehouseVisible = false
+ // this.keepVisible = false
this.currentEdit = null;
if (res.code == 201) {
this.$message.error('淇敼澶辫触')
@@ -986,6 +993,8 @@
}
this.$message.success('淇敼鎴愬姛')
this.selectList()
+ this.name = ''
+ this.warehouseChange(this.entity.warehouseId)
})
}else{
// 鏂板浠撳簱
@@ -1000,10 +1009,10 @@
}
this.$message.success('娣诲姞鎴愬姛')
this.selectList()
+ this.name = ''
+ this.warehouseChange(this.entity.warehouseId)
})
}
- this.name = ''
- this.warehouseChange(this.entity.warehouseId)
},
// 娣诲姞/淇敼璐ф灦
confirmShelves() {
@@ -1031,11 +1040,12 @@
}).then(res => {
this.upLoadShelves = false;
this.shelvesVisible = false
+ // this.keepVisible = false
if (res.code == 201) {
- this.$message.error('娣诲姞澶辫触')
+ this.$message.error('淇敼澶辫触')
return
}
- this.$message.success('娣诲姞鎴愬姛')
+ this.$message.success('淇敼鎴愬姛')
this.selectList()
this.currentEdit ={};
})
@@ -1070,6 +1080,7 @@
},
nodeOpen(data, node, el) {
$($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
+ this.selectTree[node.level-1] = data.id;
},
nodeClose(data, node, el) {
$($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
diff --git a/src/components/view/b3-classes copy.vue b/src/components/view/b3-classes copy.vue
deleted file mode 100644
index 3c0d675..0000000
--- a/src/components/view/b3-classes copy.vue
+++ /dev/null
@@ -1,274 +0,0 @@
-<template>
-<div class="class-page">
- <p style="font-size: 16px;padding:19.5px 0px">鐝</p>
- <!-- <div class="search">
- <div class="search_thing">
- <div class="search_label">濮旀墭缂栧彿锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
- ></el-input></div>
- </div>
- <div class="search_thing" style="padding-left: 30px;">
- <el-button size="small" @click="refresh()">閲� 缃�</el-button>
- <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
- </div>
- </div> -->
- <div class="center">
- <table border="1" class="tables table-right" cellpadding="16">
- <tr v-for="(item,index) in titleList" :key="'a'+index">
- <td :rowspan="3" v-if="index==0">搴忓彿</td>
- <td :rowspan="3" v-if="index==0">濮撳悕</td>
- <td :rowspan="3" v-if="index==0">瀹為獙瀹�</td>
- <td :rowspan="2" :colspan="2" v-if="index==0">
- <el-dropdown trigger="click" placement="bottom">
- <span style="cursor: pointer;">
- {{ currentYear }}
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item v-for="(n,j) in yearList" :key="'b'+j">{{ n }}</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </td>
- <td :rowspan="2" v-if="index==0">骞�</td>
- <td :rowspan="2" v-if="index==0">
- <el-dropdown trigger="click" placement="bottom">
- <span style="cursor: pointer;">
- {{ currentMonth }}
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item v-for="(n,j) in mouthList" :key="'c'+j">{{ n }}</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </td>
- <td :rowspan="2" v-if="index==0">鏈�</td>
- <td :rowspan="2" v-if="index==0"></td>
- <td :rowspan="2" v-if="index==0"></td>
- <td v-if="index==2">鍑哄嫟</td>
- <td v-if="index==2">浼�</td>
- <td v-if="index==2">璇峰亣</td>
- <td v-if="index==2">鏃�</td>
- <td v-if="index==2">涓�</td>
- <td v-if="index==2">澶�</td>
- <td v-if="index==2">澶�12</td>
- <td v-for="(m,i) in item" :key="'d'+i">{{ m }}</td>
- </tr>
- <tr v-for="(item,index) in 22" :key="'e'+index">
- <td v-for="(m,i) in personList" :key="'f'+i">{{ m }}</td>
- <td v-for="(m,i) in classList" :key="'g'+i">
- <el-dropdown trigger="click" placement="bottom">
- <span style="cursor: pointer;">
- {{ m }}
- </span>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item v-for="(n,j) in classType" :key="'h'+j">{{ n }}</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </td>
- </tr>
- </table>
- </div>
-</div>
-</template>
-
-<script>
-export default {
- data () {
- return{
- titleList:[
- [
- '鍛ㄦ',
- "14",
- "14",
- "14",
- "14",
- "14",
- "14",
- "15",
- "15",
- "15",
- "15",
- "15",
- "15",
- "15",
- "16",
- "16",
- "16",
- "16",
- "16",
- "16",
- "16",
- "17",
- "17",
- "17",
- "17",
- "17",
- "17",
- "17",
- "18",
- "18",
- "18",
- ],
- [
- '鏄熸湡',
- "鍛ㄤ竴",
- "鍛ㄤ簩",
- "鍛ㄤ笁",
- "鍛ㄥ洓",
- "鍛ㄤ簲",
- "鍛ㄥ叚",
- "鍛ㄦ棩",
- "鍛ㄤ竴",
- "鍛ㄤ簩",
- "鍛ㄤ笁",
- "鍛ㄥ洓",
- "鍛ㄤ簲",
- "鍛ㄥ叚",
- "鍛ㄦ棩",
- "鍛ㄤ竴",
- "鍛ㄤ簩",
- "鍛ㄤ笁",
- "鍛ㄥ洓",
- "鍛ㄤ簲",
- "鍛ㄥ叚",
- "鍛ㄦ棩",
- "鍛ㄤ竴",
- "鍛ㄤ簩",
- "鍛ㄤ笁",
- "鍛ㄥ洓",
- "鍛ㄤ簲",
- "鍛ㄥ叚",
- "鍛ㄦ棩",
- "鍛ㄤ簩",
- "鍛ㄤ笁",
- ],
- [
- '鍑哄樊',
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10",
- "11",
- "12",
- "13",
- "14",
- "15",
- "15",
- "17",
- "18",
- "19",
- "20",
- "21",
- "22",
- "23",
- "24",
- "25",
- "26",
- "27",
- "28",
- "29",
- "30",
- ],
- ],
- classList:['0','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�','鏃�'],
- classType:[
- '鏃╃彮',
- '涓彮',
- '鏅氱彮',
- ],
- personList:[
- 1,
- '鏉庡獩濯�',
- '鏉愭枡',
- "26.5",
- 3,
- 0.5,
- 26.5,
- 0,
- 0,
- 0,
- ],
- yearList:[
- '2019',
- '2020',
- '2021',
- '2022',
- '2023',
- '2024',
- '2025',
- ],
- mouthList:[
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
-
- ],
- currentYear:new Date().getFullYear(),
- currentMonth:new Date().getMonth()+1,
- }
- },
- methods: {
-
- }
-}
-</script>
-
-<style scoped>
-.search {
- background-color: #fff;
- height: 80px;
- display: flex;
- align-items: center;
- margin-bottom: 16px;
-}
-
-.search_thing {
- display: flex;
- align-items: center;
- height: 50px;
-}
-
-.search_label {
- width: 120px;
- font-size: 14px;
- text-align: right;
-}
-
-.search_input {
- width: calc(100% - 120px);
-}
-.center {
- width: calc(100% - 40px);
- /* height: calc(100% - 60px - 80px - 40px); */
- height: calc(100% - 100px );
- background-color: #fff;
- border-radius: 3px;
- padding: 20px;
- overflow-y: auto;
- overflow-x: auto;
- display: flex;
-}
-.tables{
- table-layout: fixed;
-}
-td {
- vertical-align: middle;
- text-align: center;
- min-width: 50px;
- box-sizing: border-box;
- padding: 6px 4px;
- word-break: keep-all; /* 闃叉鍗曡瘝鍐呮柇琛� */
-}
-</style>
diff --git a/src/components/view/b3-classes.vue b/src/components/view/b3-classes.vue
index f7db61e..3a2d9af 100644
--- a/src/components/view/b3-classes.vue
+++ b/src/components/view/b3-classes.vue
@@ -25,10 +25,10 @@
:value="item.value">
</el-option>
</el-select>
- <el-input v-model="query.name" placeholder="璇疯緭鍏ヤ汉鍛樺悕绉�" size="small" style="width: 140px;margin: 0 16px;" clearable ></el-input>
- <el-select v-model="query.addr" placeholder="璇烽�夋嫨瀹為獙瀹�" style="width: 140px;" size="small" clearable >
+ <el-input v-model="query.userName" placeholder="璇疯緭鍏ヤ汉鍛樺悕绉�" size="small" style="width: 140px;margin: 0 16px;" clearable ></el-input>
+ <el-select v-model="query.laboratory" placeholder="璇烽�夋嫨瀹為獙瀹�" style="width: 140px;" size="small" clearable >
<el-option
- v-for="item in labOptions"
+ v-for="item in laboratory"
:key="item.value"
:label="item.label"
:value="item.value">
@@ -42,53 +42,57 @@
</div>
<div class="search_thing btns" style="padding-left: 30px;">
<el-button size="small" type="primary">瀵� 鍑�</el-button>
- <el-button size="small" type="primary" @click="handleScheduling">鎺� 鐝�</el-button>
+ <el-button size="small" type="primary" @click="schedulingVisible = true">鎺� 鐝�</el-button>
</div>
</div>
- <div class="center">
- <div class="fixed-left">
- <div class="content-title" style="padding-left: 16px;box-sizing: border-box;">
- 浜哄憳鍚嶇О
- </div>
- <div class="content-user" :class="{hoverType:currentUserIndex==index}" v-for="(item,index) in userList" :key="'e'+index" v-on:mouseenter="onMouseEnter(index)"
- v-on:mouseleave="currentUserIndex=null">
- <div class="user-pic">{{ item.name.charAt(0) }}</div>
- <div class="user-info">
- <p style="font-size: 14px;color: #3A7BFA;line-height: 24px;">{{ item.name }} ({{ item.part }})</p>
- <p style="color: #999999;font-size: 12px;transform: scale(0.8) translateX(-20px);white-space: nowrap;width: 150px;overflow-x: show;">鏃�:{{ item.day0 }}, 涓�:{{ item.day1 }}, 澶�:{{ item.day2 }}, 浼�:{{ item.day3 }}, 鍋�:{{ item.day4 }}</p>
- <p style="margin-top: 4px;"><span style="color: #999999;font-size: 12px;display: inline-block;transform: scale(0.8) translateX(-10px);">鍚堣鍑哄嫟: </span><span style="font-size: 16px;
-color: #FF4902;">{{ item.day5 }}澶�</span></p>
- </div>
- </div>
- </div>
- <div class="scroll-right">
- <div class="content">
- <div class="content-title content-title-right" style="border-bottom: 0;">
- <div class="content-title-item" v-for="(item,index) in weeks" :key="'b'+index">
- <span class="month" v-if="item.day==1">{{ item.month }}</span>
- <span class="day">{{ item.day }}</span>
- <span class="week">{{ item.week }}</span>
+ <div class="center" v-loading="pageLoading">
+ <scroll-pagination @load="init" :finishLoding="finishLoding">
+ <div>
+ <div class="fixed-left">
+ <div class="content-title" style="padding-left: 16px;box-sizing: border-box;">
+ 浜哄憳鍚嶇О
+ </div>
+ <div class="content-user" :class="{hoverType:currentUserIndex==index}" v-for="(item,index) in list" :key="'e'+index" v-on:mouseenter="onMouseEnter(index)"
+ v-on:mouseleave="currentUserIndex=null">
+ <div class="user-pic">{{ item.name.charAt(0) }}</div>
+ <div class="user-info">
+ <p style="font-size: 14px;color: #3A7BFA;line-height: 24px;">{{ item.name }}</p>
+ <p style="color: #999999;font-size: 12px;transform: scale(0.8) translateX(-20px);white-space: nowrap;width: 150px;overflow-x: show;">鏃�: {{ item.day0 }}锛屼腑: {{ item.day1 }}锛屽: {{ item.day2 }}锛屼紤: {{ item.day3 }}锛屽亣: {{ item.day4 }}</p>
+ <p style="margin-top: 4px;"><span style="color: #999999;font-size: 12px;display: inline-block;transform: scale(0.8) translateX(-10px);">鍚堣鍑哄嫟: </span><span style="font-size: 16px;
+ color: #FF4902;">{{ item.totalAttendance }}澶�</span></p>
+ </div>
</div>
</div>
- <div class="content-body" v-for="(item,index) in 5" :key="'c'+index"
- :class="{hoverType:currentUserIndex==index}"v-on:mouseenter="onMouseEnter(index)"
- v-on:mouseleave="currentUserIndex=null">
- <div class="content-body-item" v-for="(m,i) in workList" :key="'d'+i">
- <div class="work-box" :class="{type0:m.type=='鏃╃彮',type1:m.type=='涓彮',type2:m.type=='澶滅彮',}">
- <div class="work-box-left">
- <span>{{ m.type }}</span>
+ <div class="scroll-right">
+ <div class="content">
+ <div class="content-title content-title-right" style="border-bottom: 0;">
+ <div class="content-title-item" v-for="(item,index) in weeks" :key="'b'+index">
+ <span class="month">{{ item.weekNum }}鍛�</span>
+ <span class="day">{{ item.day }}</span>
+ <span class="week">{{ item.week }}</span>
</div>
- <el-dropdown trigger="click" placement="bottom" @command="e=>handleCommand(e,m)">
- <i class="el-icon-arrow-down el-icon--right" style="font-size: 20px;color: #fff;cursor: pointer;"></i>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item v-for="(n,j) in classType" :key="'h'+j" :command="n.value">{{ n.label }}</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
+ </div>
+ <div class="content-body" v-for="(item,index) in list" :key="'c'+index"
+ :class="{hoverType:currentUserIndex==index}"v-on:mouseenter="onMouseEnter(index)"
+ v-on:mouseleave="currentUserIndex=null">
+ <div class="content-body-item" v-for="(m,i) in item.list" :key="'d'+i">
+ <div class="work-box" :class="{type0:m.shift==='0',type1:m.shift==='1',type2:m.shift==='2',type3:m.shift==='3',type4:m.shift==='4',}">
+ <div class="work-box-left">
+ <span>{{ getShiftByDic(m.shift) }}</span>
+ </div>
+ <el-dropdown trigger="click" placement="bottom" @command="e=>handleCommand(e,m)">
+ <i class="el-icon-arrow-down el-icon--right" style="font-size: 20px;color: #fff;cursor: pointer;"></i>
+ <el-dropdown-menu slot="dropdown">
+ <el-dropdown-item v-for="(n,j) in classType" :key="'h'+j" :command="n.value">{{ n.label }}</el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ </div>
+ </div>
</div>
</div>
</div>
</div>
- </div>
+ </scroll-pagination>
</div>
<el-dialog title="鎺掔彮" :visible.sync="schedulingVisible" width="400px">
<div class="search_thing">
@@ -105,12 +109,12 @@
<div class="search_thing">
<div class="search_label" style="width:90px">浜哄憳鍚嶇О锛�</div>
<div class="search_input">
- <el-select v-model="schedulingQuery.person" placeholder="璇烽�夋嫨" style="width: 100%;" multiple clearable >
+ <el-select v-model="schedulingQuery.userId" placeholder="璇烽�夋嫨" style="width: 100%;" multiple clearable collapse-tags >
<el-option
v-for="item in personList"
- :key="item.value"
- :label="item.label"
- :value="item.value">
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
</el-option>
</el-select>
</div>
@@ -118,7 +122,7 @@
<div class="search_thing">
<div class="search_label" style="width:90px">鐝锛�</div>
<div class="search_input">
- <el-select v-model="schedulingQuery.person" placeholder="璇烽�夋嫨" style="width: 100%;">
+ <el-select v-model="schedulingQuery.shift" placeholder="璇烽�夋嫨" style="width: 100%;">
<el-option
v-for="item in classType"
:key="item.value"
@@ -137,14 +141,21 @@
</template>
<script>
+import {
+ getYearAndMonthAndDays
+ } from '../../util/date'
+ import ScrollPagination from '../tool/scroll-paging.vue'
export default {
+ components: {
+ ScrollPagination
+ },
data () {
return{
currentYear:new Date().getFullYear(),
currentMonth:new Date().getMonth()+1,
query:{
- name:'',
- addr:'',
+ userName:'',
+ laboratory:'',
year:'',
month:''
},
@@ -198,158 +209,8 @@
label:'12鏈�'
},
],
- labOptions:[],
- weeks:[
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:1,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ簩',
- day:2,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ笁',
- day:3,
- },
- {
- month:'14鍛�',
- week:'鍛ㄥ洓',
- day:4,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ簲',
- day:5,
- },
- {
- month:'14鍛�',
- week:'鍛ㄥ叚',
- day:6,
- },
- {
- month:'14鍛�',
- week:'鍛ㄦ棩',
- day:7,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:8,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ簩',
- day:9,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ笁',
- day:10,
- },
- {
- month:'14鍛�',
- week:'鍛ㄥ洓',
- day:11,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ簲',
- day:12,
- },
- {
- month:'14鍛�',
- week:'鍛ㄥ叚',
- day:13,
- },{
- month:'14鍛�',
- week:'鍛ㄦ棩',
- day:14,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:15,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:16,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:17,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:18,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:19,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:20,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:21,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:22,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:23,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:24,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:25,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:26,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:27,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:28,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:29,
- },
- {
- month:'14鍛�',
- week:'鍛ㄤ竴',
- day:30,
- },
- ],
+ laboratory:[],
+ weeks:[],
workList:[
{
type:'鏃╃彮',
@@ -473,81 +334,138 @@
},
],
classType:[],
- userList:[
- {
- name:'鏉庡獩濯�',
- part:'鏉愭枡',
- day0:12,//鏃�
- day1:12,//涓�
- day2:12,//澶�
- day3:12,//浼�
- day4:12,//璇峰亣
- day5:12,//鎬昏
- },
- {
- name:'鏉庡獩濯�',
- part:'鏉愭枡',
- day0:12,//鏃�
- day1:12,//涓�
- day2:12,//澶�
- day3:12,//浼�
- day4:12,//璇峰亣
- day5:12,//鎬昏
- },
- {
- name:'鏉庡獩濯�',
- part:'鏉愭枡',
- day0:12,//鏃�
- day1:12,//涓�
- day2:12,//澶�
- day3:12,//浼�
- day4:12,//璇峰亣
- day5:12,//鎬昏
- },
- {
- name:'鏉庡獩濯�',
- part:'鏉愭枡',
- day0:12,//鏃�
- day1:12,//涓�
- day2:12,//澶�
- day3:12,//浼�
- day4:12,//璇峰亣
- day5:12,//鎬昏
- },
- {
- name:'鏉庡獩濯�',
- part:'鏉愭枡',
- day0:12,//鏃�
- day1:12,//涓�
- day2:12,//澶�
- day3:12,//浼�
- day4:12,//璇峰亣
- day5:12,//鎬昏
- },
- ],
currentUserIndex:null,
schedulingVisible:false,
personList:[],
loading:false,
schedulingQuery:{
week:'',
- person:''
- }
+ userId:null,
+ shift:''
+ },
+ list:[],
+ currentPage: 1, // 褰撳墠椤�
+ pageSize: 10, // 涓�椤�10鏉�
+ total: '',
+ pageLoading: true, // 缁勪欢loading鐨勫睍绀�,榛樿涓簍rue
+ finishLoding: false // 鍔犺浇瀹屾垚锛屾樉绀哄凡缁忔病鏈夋洿澶氫簡
}
},
mounted(){
this.selectEnumByCategory()
+ this.obtainItemParameterList()
+ this.getUsers()
+ this.init()
},
methods: {
- refresh(){},
- refreshTable(){},
+ refresh(){
+ this.list = [];
+ this.currentPage = 1
+ this.query = {
+ userName:'',
+ laboratory:'',
+ year:'',
+ month:''
+ }
+ this.init()
+ },
+ refreshTable(){
+ this.list = [];
+ this.currentPage = 1
+ this.init()
+ },
+ init(){
+ if(this.currentPage==1){
+ this.pageLoading = true
+ }
+ this.$axios.post(this.$api.performanceShift.page, {
+ size:this.pageSize,
+ current:this.currentPage,
+ time:this.query.month?this.query.year+'-'+this.query.month:this.query.year,
+ userName:this.query.userName,
+ laboratory:this.query.laboratory,
+ }).then(res => {
+ this.pageLoading = false
+ if (res.code == 201) return
+ this.total = res.data.total
+ let list = res.data.records.map(item=>{
+ for (let key in item) {
+ let type = this.getDayByDic(key)
+ if(type!=undefined||type!=null){
+ item[`day${type}`] = item[key]
+ }
+ }
+ return item
+ });
+ // 鍙充晶鏃ユ湡鑾峰彇
+ if(this.currentPage==1){
+ if(list&&list.length>0){
+ this.weeks = [];
+ list[0].list&&list[0].list.forEach(item=>{
+ let obj = {
+ weekNum:item.weekly,
+ week:item.headerTime.split(' ')[1],
+ day:item.headerTime.split(' ')[0]
+ }
+ this.weeks.push(obj)
+ })
+ }
+ }
+ if(list.length==0){
+ this.finishLoding = true;
+ }else{
+ if(list.length<this.pageSize){
+ this.finishLoding = true;
+ }
+ this.list = this.list.concat(list)
+ if(this.total==this.list.length){
+ this.finishLoding = true;
+ }
+ this.currentPage++;
+ }
+ })
+ },
onMouseEnter(index){
this.currentUserIndex = index
},
- handleScheduling(){
- this.schedulingVisible = true
+ confirmScheduling(){
+ if(!this.schedulingQuery.week){
+ this.$message.error('璇烽�夋嫨鍛ㄦ')
+ return
+ }
+ let time = this.schedulingQuery.week.getTime()
+ let startWeek =getYearAndMonthAndDays(new Date(time - 24 * 60 * 60 * 1000)) + ' 00:00:00'
+ let endWeek = getYearAndMonthAndDays(new Date(time + 24 * 60 * 60 * 1000 * 5))+ ' 00:00:00'
+ if(!this.schedulingQuery.userId||this.schedulingQuery.userId.length==0){
+ this.$message.error('璇烽�夋嫨浜哄憳')
+ return
+ }
+ if(!this.schedulingQuery.shift){
+ this.$message.error('璇烽�夋嫨鐝')
+ return
+ }
+ this.loading = true
+ this.$axios.post(this.$api.performanceShift.add, {
+ startWeek,
+ endWeek,
+ userId:this.schedulingQuery.userId.join(','),
+ shift:this.schedulingQuery.shift}, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ this.loading = false
+ if (res.code == 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.schedulingVisible = false
+ this.schedulingQuery = {
+ week:'',
+ userId:null,
+ shift:''
+ }
+ this.refresh()
+ })
},
- confirmScheduling(){},
selectEnumByCategory() {
this.$axios.post(this.$api.enums.selectEnumByCategory, {
category: "鐝绫诲瀷"
@@ -555,8 +473,63 @@
this.classType = res.data
})
},
+ obtainItemParameterList() {
+ this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.laboratoryName,
+ value: a.id
+ })
+ })
+ this.laboratory = data
+ })
+ },
handleCommand(e,m){
- console.log(e,m)
+ if(e!=m.shift){
+ this.$axios.put(this.$api.performanceShift.update+m.id, {
+ id:m.id,
+ shift:e
+ }).then(res => {
+ if (res.code == 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ m.shift = e
+ })
+ }
+ },
+ getUsers(){
+ this.$axios.post(this.$api.user.selectUserList, {
+ page: {
+ current: -1,
+ size: -1,
+ },
+ entity: {
+ name: null,
+ }
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ if (res.code === 201) {
+ return
+ }
+ let arr = res.data.body.records
+ this.personList = arr
+ })
+ },
+ getDayByDic(e){
+ let obj = this.classType.find(m=>m.label==e)
+ if(obj){
+ return obj.value
+ }
+ },
+ getShiftByDic(e){
+ let obj = this.classType.find(m=>m.value==e)
+ if(obj){
+ return obj.label
+ }
+ return '鏈帓鐝�'
}
}
}
@@ -603,7 +576,7 @@
left: 0;
top: 0;
width: 220px; /* 宸﹁竟鍖哄煙瀹藉害 */
- min-height: calc(100% - 10px); /* 瑙嗗彛楂樺害 */
+ /* min-height: calc(100% - 10px); 瑙嗗彛楂樺害 */
background-color: #fff;
box-shadow: 2px -2px 5px rgba(51,51,51,0.12); /* 宸﹁竟闃村奖 */
}
@@ -617,7 +590,7 @@
.content {
min-height: calc(100% - 10px); /* 瑙嗗彛楂樺害 */
- min-width: 2000px;
+ /* min-width: 2000px; */
}
.content-title{
height: 52px;
@@ -625,7 +598,7 @@
border-bottom: 1px solid #EEEEEE;
}
.content-title-right{
- min-width: 2000px;
+ /* min-width: 2000px; */
display: flex;
align-items: center;
}
@@ -678,9 +651,9 @@
display: flex;
align-items: center;
justify-content: space-around;
- background: rgba(58,123,250,0.15);
+ background: #F5F7FB;
border-radius: 8px 8px 8px 8px;
- color: #3A7BFA;
+ color: #999;
font-size: 14px;
}
.work-box.type0{
@@ -695,6 +668,14 @@
background: #FAE2CA;
color: #BC8D5E;
}
+.work-box.type3{
+ background: #E1F3D8;
+ color: #67C23A;
+}
+.work-box.type4{
+ background: #FDE2E2;
+ color: #F56C6C;
+}
.work-box-left{
display: flex;
justify-content: center;
diff --git a/src/components/view/b4-daily-business-statistics.vue b/src/components/view/b4-daily-business-statistics.vue
index 594e47f..5ecb7e5 100644
--- a/src/components/view/b4-daily-business-statistics.vue
+++ b/src/components/view/b4-daily-business-statistics.vue
@@ -147,10 +147,12 @@
},
pageData:{},
loading:false,
+ timers:null,
}
},
mounted(){
- this.init()
+ this.timers&&clearInterval(this.timers);
+ setInterval(this.init,1000*60*5)
},
methods:{
init(){
@@ -181,6 +183,9 @@
return '0'
}
}
+ },
+ deactivated(){
+ this.timers&&clearInterval(this.timers);
}
}
</script>
diff --git a/src/components/view/b4-inspection-item-statistics.vue b/src/components/view/b4-inspection-item-statistics.vue
index 86e6156..293245b 100644
--- a/src/components/view/b4-inspection-item-statistics.vue
+++ b/src/components/view/b4-inspection-item-statistics.vue
@@ -129,7 +129,7 @@
},
chartData2:{
title:'浠婃棩椤圭洰鍚堟牸鐜�',
- percentage:'68%',
+ percentage:'0',
color:['#1CCAB8','#E1E4E8'],
data:[
{
@@ -150,16 +150,16 @@
},
chartData3:{
title:'浠婃棩椤圭洰瀹屾垚鐜�',
- percentage:'68%',
+ percentage:'0',
color:['#FBB647','#E1E4E8'],
data:[
{
name:'瀹屾垚',
- value:'68'
+ value:'0'
},
{
name:'鏈畬鎴�',
- value:'32'
+ value:'0'
},
]
},
@@ -171,25 +171,28 @@
},
chartData4:{
title:'浠婃棩椤瑰欢鏈熺巼',
- percentage:'68%',
+ percentage:'0',
color:['#FF3838','#E1E4E8'],
data:[
{
name:'寤舵湡',
- value:'68'
+ value:'0'
},
{
name:'鏈欢鏈�',
- value:'32'
+ value:'0'
},
]
},
loading:false,
- pageData:{}
+ pageData:{},
+ timers:null
}
},
mounted(){
- this.init()
+ // this.init()
+ this.timers&&clearInterval(this.timers);
+ setInterval(this.init,1000*60*5)
},
methods:{
init(){
@@ -227,7 +230,7 @@
this.chartConfig3.isLoading = true
this.chartConfig4.isLoading = true
})
- },
+ },
handleData(val){
if(val){
return Math.abs(val)*100;
@@ -235,6 +238,9 @@
return '0'
}
}
+ },
+ deactivated(){
+ this.timers&&clearInterval(this.timers);
}
}
</script>
--
Gitblit v1.9.3