From a0b1fdec2bc5ddad11e981936b80d0fdf1e4bc69 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 03 七月 2024 09:25:06 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before into master

---
 src/components/do/b3-work-time-management/work-time-statistics.vue |  257 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 254 insertions(+), 3 deletions(-)

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..3b873af 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,270 @@
 <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="entity.month"
+            type="month"
+            format="yyyy-MM"
+            value-format="yyyy-MM"
+            placeholder="閫夋嫨鏈�" size="small" style="width: 100%;"
+            :clearable="false"
+            @change="refreshTable()">
+          </el-date-picker>
+        </div>
+			</div>
+			<div class="search_thing">
+				<div class="search_label">鍛樺伐锛�</div>
+				<!-- <el-select v-model="entity.name" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()" clearable>
+					<el-option v-for="item in personList" :key="item.id" :label="item.name" :value="item.id">
+					</el-option>
+				</el-select> -->
+        <el-input size="small" placeholder="璇疯緭鍏�" clearable
+          v-model="entity.name" @keyup.enter.native="refreshTable()"></el-input>
+			</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> -->
+          <el-input size="small" placeholder="璇疯緭鍏�" clearable
+						v-model="entity.departLims" @keyup.enter.native="refreshTable()"></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 class="search_thing">
+        <el-button size="small" type="primary"  @click="handleDown" v-show="currentTable == 'value0'&&down" :loading="outLoading">瀵� 鍑�</el-button>
+        <el-button size="small" type="primary"  @click="handleUp" v-show="currentTable == 'value1'&&up">瀵� 鍏�</el-button>
+      </div>
+		</div>
+    <div style="text-align: left">
+      <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>
+    <div class="table">
+      <ValueTable ref="ValueTable0"
+        v-if="currentTable == 'value0'"
+				:url="$api.auxiliaryOriginalHours.selectAuxiliaryOriginalHours"
+				:componentData="componentData" :key="upIndex" />
+      <ValueTable ref="ValueTable1"
+        v-if="currentTable == 'value1'"
+				:url="$api.auxiliaryCorrectionHours.selectAuxiliaryCorrectionHours"
+        :inputUrl="$api.auxiliaryCorrectionHours.upload"
+				:componentData="componentData0"
+        :key="upIndex1" />
+    </div>
   </div>
 </template>
 
 <script>
+import ValueTable from '../../tool/value-table.vue'
+import {
+		getYearAndMonthAndDays
+	} from '../../../util/date'
 export default {
+  components: {
+    ValueTable
+  },
   data () {
     return{
-
+      down:false,
+      up:false,
+      componentData: {
+					entity: {
+						month: getYearAndMonthAndDays().split('-')[0]+'-'+getYearAndMonthAndDays().split('-')[1],
+						name: null,
+						departLims: null,
+					},
+					isIndex: true,
+					showSelect: false,
+					select: false,
+					do: [],
+					tagField: {},
+					linkEvent: {},
+					selectField: {},
+					requiredAdd: [],
+					requiredUp: [],
+          accept:聽'.xlsx',
+          inputType:聽'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+          cellSpecialStyle:{
+            redColorByKey:'Hours'
+          }
+			},
+      componentData0: {
+					entity: {
+						month: getYearAndMonthAndDays().split('-')[0]+'-'+getYearAndMonthAndDays().split('-')[1],
+						name: null,
+						departLims: null,
+						orderBy: {
+							field: 'id',
+							order: 'desc'
+						}
+					},
+					isIndex: true,
+					showSelect: false,
+					select: false,
+					do: [],
+					tagField: {},
+					linkEvent: {
+						},
+					selectField: {},
+					requiredAdd: [],
+					requiredUp: [],
+          accept:聽'.xlsx',
+          inputType:聽'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+			},
+      entity:{
+        month:getYearAndMonthAndDays(),
+        name:'',
+        departLims:''
+      },
+      entityCopy:{},
+      entityCopy0:{},
+      upIndex:0,
+      upIndex1:100,
+      weekList:[],
+      personList:[],
+      currentTable:'value0',
+      outLoading:false
+    }
+  },
+  mounted(){
+    this.getUsers()
+    this.entityCopy = this.HaveJson(this.componentData.entity);
+    this.entityCopy0 = this.HaveJson(this.componentData0.entity);
+    this.getPower()
+  },
+  methods: {
+    refresh(){
+      this.entity = {
+        month:getYearAndMonthAndDays()
+      }
+      if(this.currentTable=='value0'){
+        this.componentData.entity = this.HaveJson(this.entityCopy)
+        this.upIndex++
+      }else{
+        this.componentData0.entity = this.HaveJson(this.entityCopy0)
+        this.upIndex1++
+      }
+      this.refreshTable()
+    },
+    refreshTable(){
+      let entity = {...this.entity}
+      entity.month = entity.month.split('-')[0]+'-'+entity.month.split('-')[1]
+      if(this.currentTable=='value0'){
+        this.componentData.entity = {...this.componentData.entity,...entity}
+        this.$refs['ValueTable0'].selectList()
+      }else{
+        this.componentData0.entity = {...this.componentData0.entity,...entity}
+        this.$refs['ValueTable1'].selectList()
+      }
+    },
+    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(){
+      // this.$refs.ValueTable0.downFile(false)
+      let entity = {...this.entity}
+      entity.month = entity.month.split('-')[0]+'-'+entity.month.split('-')[1]
+      this.outLoading = true
+      this.$axios.post(this.$api.auxiliaryOriginalHours.exportOriginalHours,{
+        ...entity
+        // params:entity,
+      },{responseType: "blob"}).then(res => {
+        this.outLoading = false
+        this.$message.success('瀵煎嚭鎴愬姛')
+        const blob = new Blob([res],{ type: 'application/octet-stream' });
+        const url = URL.createObjectURL(blob);
+        const link = document.createElement('a');
+        link.href = url;
+        link.download = entity.month+'宸ユ椂缁熻琛�.xlsx';
+        link.click();
+      })
+    },
+    handleUp(){
+      this.$refs.ValueTable1.openUpload()
+    },
+    getPower(){
+      let power = JSON.parse(sessionStorage.getItem('power'))
+        let up = false
+        let down = false
+        for (var i = 0; i < power.length; i++) {
+					if (power[i].menuMethod == 'exportOriginalHours') {
+						down = true
+					}
+					if (power[i].menuMethod == 'upload') {
+						up = true
+					}
+				}
+        this.down = down
+        this.up = up
     }
   }
 }
 </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>

--
Gitblit v1.9.3