From c5f70afac4dd35b3a6033eef8aae530d674425e0 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 13 五月 2024 15:02:52 +0800
Subject: [PATCH] 完成工时管理前端
---
src/components/view/b3-work-time-management.vue | 2
src/components/do/b1-ins-order/add.vue | 4
src/main.js | 4
src/components/do/b3-work-time-management/work-time-management.vue | 10 +-
src/components/do/b3-work-time-management/work-time-config.vue | 4
src/components/do/b3-work-time-management/work-time-statistics.vue | 233 ++++++++++++++++++++++++++++++++++++++++++++++
src/components/view/b3-classes.vue | 20 ++-
7 files changed, 258 insertions(+), 19 deletions(-)
diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index ce7f27f..99e204e 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -667,6 +667,10 @@
this.addObj.sampleNum = this.sampleList.length
this.$nextTick(() => {
this.$refs.sampleTable.doLayout()
+ if(this.addObj.sampleNum>0){
+ this.$refs.sampleTable.setCurrentRow(this.sampleList[0],true)
+ this.rowClick(this.sampleList[0])
+ }
})
})
}
diff --git a/src/components/do/b3-work-time-management/work-time-config.vue b/src/components/do/b3-work-time-management/work-time-config.vue
index ed06257..4e38b79 100644
--- a/src/components/do/b3-work-time-management/work-time-config.vue
+++ b/src/components/do/b3-work-time-management/work-time-config.vue
@@ -8,7 +8,7 @@
</div>
<div class="search_thing">
<div class="search_label">瀹為獙瀹わ細</div>
- <el-select v-model="componentData.entity.laboratory" placeholder="鍏ㄩ儴" size="small">
+ <el-select v-model="componentData.entity.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()">
<el-option v-for="item in laboratoryList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@@ -16,7 +16,7 @@
<div class="search_thing">
<div class="search_label">閮ㄩ棬锛�</div>
<div class="search_input">
- <el-select v-model="componentData.entity.department" placeholder="鍏ㄩ儴" size="small">
+ <el-select v-model="componentData.entity.department" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()">
<el-option v-for="item in partList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
diff --git a/src/components/do/b3-work-time-management/work-time-management.vue b/src/components/do/b3-work-time-management/work-time-management.vue
index cb657d0..17c0b8a 100644
--- a/src/components/do/b3-work-time-management/work-time-management.vue
+++ b/src/components/do/b3-work-time-management/work-time-management.vue
@@ -13,13 +13,13 @@
</div>
<div class="search_thing" style="width: 200px;">
<div class="search_label">鏄熸湡锛�</div>
- <el-select v-model="componentData.entity.laboratory" placeholder="鍏ㄩ儴" size="small">
+ <el-select v-model="componentData.entity.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()">
<el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
<div class="search_thing">
- <div class="search_label">鏃堕棿鑼冨洿锛�</div>
+ <div class="search_label" style="width: 90px;">鏃堕棿鑼冨洿锛�</div>
<div class="search_input">
<el-date-picker
style="width: 100%;"
@@ -28,7 +28,7 @@
type="daterange"
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
+ end-placeholder="缁撴潫鏃ユ湡" @change="refreshTable()">
</el-date-picker>
</div>
</div>
@@ -36,11 +36,11 @@
<div class="search_thing" style="width: 200px;">
<div class="search_label" >鍚嶅瓧锛�</div>
<el-input size="small" placeholder="璇疯緭鍏�" clearable
- v-model="componentData.entity.number"></el-input>
+ v-model="componentData.entity.number" @keyup.enter.native="refreshTable()"></el-input>
</div>
<div class="search_thing" style="width: 200px;">
<div class="search_label">鐘舵�侊細</div>
- <el-select v-model="componentData.entity.laboratory" placeholder="鍏ㄩ儴" size="small">
+ <el-select v-model="componentData.entity.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()">
<el-option v-for="item in stateList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
diff --git a/src/components/do/b3-work-time-management/work-time-statistics.vue b/src/components/do/b3-work-time-management/work-time-statistics.vue
index e624163..fd79c90 100644
--- a/src/components/do/b3-work-time-management/work-time-statistics.vue
+++ b/src/components/do/b3-work-time-management/work-time-statistics.vue
@@ -1,19 +1,246 @@
<template>
<div class="work-time-statistics">
- 宸ユ椂缁熻
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">鏃ユ湡锛�</div>
+ <div class="search_input" style="display: flex;align-items: center;">
+ <el-date-picker
+ v-model="componentData.entity.laboratory"
+ type="month"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="閫夋嫨鏈�" size="small" style="width: 100%;">
+ </el-date-picker>
+ </div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">鍛樺伐锛�</div>
+ <el-select v-model="componentData.entity.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()">
+ <el-option v-for="item in personList" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">閮ㄩ棬锛�</div>
+ <div class="search_input">
+ <el-select v-model="componentData.entity.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()">
+ <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ <div class="search_thing" style="padding-left: 30px;width: 100px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ <el-button size="small" type="primary" style="position: absolute;right: 50px;" @click="handleDown">瀵� 鍑�</el-button>
+ <el-button size="small" type="primary" style="position: absolute;right: 120px;" @click="handleUp" v-show="currentTable == 'value0'">瀵� 鍏�</el-button>
+ </div>
+ <el-radio-group v-model="currentTable" size="small" :key="'111'" style="margin-top: 10px;">
+ <el-radio-button label="value0">
+ 鍘熷宸ユ椂
+ </el-radio-button>
+ <el-radio-button label="value1">
+ 淇宸ユ椂
+ </el-radio-button>
+ </el-radio-group>
+ <div class="table">
+ <ValueTable ref="ValueTable0"
+ v-show="currentTable == 'value0'"
+ :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours"
+ :componentData="componentData" :inputUrl="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :downUrl="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :key="upIndex" />
+ <ValueTable ref="ValueTable1"
+ v-show="currentTable == 'value1'"
+ :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours"
+ :componentData="componentData0" :key="upIndex" />
+ </div>
</div>
</template>
<script>
+import ValueTable from '../../tool/value-table.vue'
export default {
+ components: {
+ ValueTable
+ },
data () {
return{
-
+ componentData: {
+ entity: {
+ number: null,
+ department: null,
+ laboratory: null,
+ orderBy: {
+ field: 'id',
+ order: 'desc'
+ }
+ },
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ do: [],
+ tagField: {
+ deviceStatus: {
+ select: []
+ },
+ equipmentManager: {
+ select: []
+ },
+ authorizedPerson: {
+ select: []
+ },
+ insProductIds:{
+ select:[]
+ }
+ },
+ linkEvent: {
+ deviceName: {
+ method: 'selectAllByOne'
+ }
+ },
+ selectField: {
+ authorizedPerson: {
+ select: [],
+ choose: true
+ },
+ equipmentManager: {
+ select: []
+ },
+ insProductIds:{
+ select:[],
+ choose: true
+ }
+ },
+ requiredAdd: [],
+ requiredUp: []
+ },
+ componentData0: {
+ entity: {
+ number: null,
+ department: null,
+ laboratory: null,
+ orderBy: {
+ field: 'id',
+ order: 'desc'
+ }
+ },
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ do: [],
+ tagField: {
+ deviceStatus: {
+ select: []
+ },
+ equipmentManager: {
+ select: []
+ },
+ authorizedPerson: {
+ select: []
+ },
+ insProductIds:{
+ select:[]
+ }
+ },
+ linkEvent: {
+ deviceName: {
+ method: 'selectAllByOne'
+ }
+ },
+ selectField: {
+ authorizedPerson: {
+ select: [],
+ choose: true
+ },
+ equipmentManager: {
+ select: []
+ },
+ insProductIds:{
+ select:[],
+ choose: true
+ }
+ },
+ requiredAdd: [],
+ requiredUp: []
+ },
+ upIndex:0,
+ weekList:[],
+ personList:[],
+ currentTable:'value0'
+ }
+ },
+ mounted(){
+ this.getUsers()
+ },
+ methods: {
+ refresh(){},
+ refreshTable(){},
+ 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
+ })
+ },
+ handleDown(){
+ if(this.currentTable == 'value0'){
+ this.$refs.ValueTable0.downFile(false)
+ }else{
+ this.$refs.ValueTable1.downFile(false)
+ }
+ },
+ handleUp(){
+ this.$refs.ValueTable0.openUpload()
}
}
}
</script>
-<style>
+<style scoped>
+.work-time-statistics{
+ height: 100%;
+}
+.search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ }
+ .search_thing {
+ width: 270px;
+ display: flex;
+ align-items: center;
+ }
+
+ .search_label {
+ width: 60px;
+ font-size: 14px;
+ text-align: right;
+ }
+
+ .search_input {
+ width: calc(100% - 60px);
+ }
+ .table {
+ margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ height: calc(100% - 60px - 80px - 10px - 40px - 25px);
+ padding: 20px;
+ }
</style>
diff --git a/src/components/view/b3-classes.vue b/src/components/view/b3-classes.vue
index 2d9ffd5..168bb7b 100644
--- a/src/components/view/b3-classes.vue
+++ b/src/components/view/b3-classes.vue
@@ -75,7 +75,7 @@
<span class="month" style="position: absolute;top: 4px;" v-if="item.week=='鍛ㄦ棩'">{{ item.weekNum }}鍛�</span>
<p style="height: 26px;position: absolute;bottom: 12px;">
<span class="day">{{ item.day }}</span>
- <span class="week">{{ item.week }}</span>
+ <span class="week">{{ item.week.charAt(1) }}</span>
</p>
</div>
</div>
@@ -83,13 +83,13 @@
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" :class="{hoverType:currentUserIndex==index}">
- <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" :class="{type0:m.shift==='0',type1:m.shift==='1',type2:m.shift==='2',type3:m.shift==='3',type4:m.shift==='4',type5:m.shift==='5',}">
<!-- <div class="work-box-left">
<span>{{ getShiftByDic(m.shift) }}</span>
</div> -->
<el-dropdown trigger="click" placement="bottom" @command="e=>handleCommand(e,m)" :disabled="!downPower">
<!-- <i class="el-icon-arrow-down el-icon--right" style="font-size: 20px;color: #fff;cursor: pointer;"></i> -->
- <span style="cursor: pointer;">{{ getShiftByDic(m.shift) }}</span>
+ <span style="cursor: pointer;" :style="`opacity: ${getShiftByDic(m.shift)=='鏃�'?0:1};`">{{ getShiftByDic(m.shift) }}</span>
<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>
@@ -583,7 +583,7 @@
if(obj){
return obj.label
}
- return '鏈帓鐝�'
+ return '鏃�'
}
}
}
@@ -664,7 +664,7 @@
}
.content-title-item{
height: 100%;
- width: 60px;
+ width: 50px;
flex-shrink: 0;
border-bottom: 1px solid #EEEEEE;
box-sizing: border-box;
@@ -699,8 +699,9 @@
}
.content-body-item{
height: 70px;
- width: 60px;
+ width: 50px;
flex-shrink: 0;
+ font-size: 12px;
box-sizing: border-box;
padding: 4px;
border-right: 1px solid #EEEEEE;
@@ -752,6 +753,13 @@
.work-box.type4 span{
color: #F56C6C !important;
}
+.work-box.type5{
+ background: #ff46c145;
+ color: #ff46c0 !important;
+}
+.work-box.type5 span{
+ color: #ff46c0 !important;
+}
/* .el-icon-arrow-down::before{
color: #c6c4c4;
} */
diff --git a/src/components/view/b3-work-time-management.vue b/src/components/view/b3-work-time-management.vue
index 9a90bfc..66d77a4 100644
--- a/src/components/view/b3-work-time-management.vue
+++ b/src/components/view/b3-work-time-management.vue
@@ -27,7 +27,7 @@
},
data() {
return{
- currentComponent:'workTimeConfig'
+ currentComponent:'workTimeStatistics'
}
}
}
diff --git a/src/main.js b/src/main.js
index f149db9..c083de0 100644
--- a/src/main.js
+++ b/src/main.js
@@ -14,8 +14,8 @@
//鏈湴
Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
// const javaApi = 'http://192.168.11.200:8001';//鏉�
-const javaApi = 'http://10.20.102.168:8001';//寮�
-// const javaApi = 'http://172.20.10.3:8001';//濮�
+// const javaApi = 'http://10.20.102.168:8001';//寮�
+const javaApi = 'http://172.20.10.3:8001';//濮�
// const javaApi = 'http://192.168.11.2:8001';//鏌�
// const javaApi = 'http://114.132.189.42:1234';//娴嬭瘯鏈�
//鑳滀簯鏈嶅姟鍣�
--
Gitblit v1.9.3