From bc0e477594c5a916c014fb20dbb3797afd037ea0 Mon Sep 17 00:00:00 2001 From: value <z1292839451@163.com> Date: 星期六, 01 六月 2024 09:48:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/do/b3-work-time-management/work-time-statistics.vue | 217 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 214 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..8ffa444 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,230 @@ <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"> + </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'">瀵� 鍑�</el-button> + <el-button size="small" type="primary" @click="handleUp" v-show="currentTable == 'value1'">瀵� 鍏�</el-button> + </div> + </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-if="currentTable == 'value0'" + :url="$api.auxiliaryOriginalHours.selectAuxiliaryOriginalHours" + :componentData="componentData" :downUrl="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :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{ - + 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() + }, + entityCopy:{}, + entityCopy0:{}, + upIndex:0, + upIndex1:100, + weekList:[], + personList:[], + currentTable:'value0' + } + }, + mounted(){ + this.getUsers() + this.entityCopy = this.HaveJson(this.componentData.entity); + this.entityCopy0 = this.HaveJson(this.componentData0.entity); + }, + 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) + }, + handleUp(){ + this.$refs.ValueTable1.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> -- Gitblit v1.9.3