From 760d1a1f815d349832a36fac25b28abb51ff53d4 Mon Sep 17 00:00:00 2001
From: gaoluyang <gaoluyang@rengu.cc>
Date: 星期三, 25 九月 2024 17:20:35 +0800
Subject: [PATCH] 1.检验任务提交之后的弹框,填写 试验信息只有在电路试验的站点才会进行填写,其余站点不需要
---
src/components/do/b3-work-time-management/work-time-management.vue | 815 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 603 insertions(+), 212 deletions(-)
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 0024274..87ce99d 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
@@ -1,34 +1,36 @@
<template>
<div class="work-time-management">
<div class="search">
- <div class="search_thing">
+ <!-- <div class="search_thing">
<div class="search_label">鍛ㄦ锛�</div>
<div class="search_input" style="display: flex;align-items: center;">
<el-input size="small" placeholder="寮�濮嬪懆娆�" clearable
- v-model="componentData.entity.number"></el-input>
+ v-model="entity.week1"></el-input>
<span> - </span>
<el-input size="small" placeholder="缁撴潫鍛ㄦ" clearable
- v-model="componentData.entity.number"></el-input>
+ v-model="entity.week2"></el-input>
</div>
- </div>
+ </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="entity.weekDay" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()" clearable>
<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_thing" style="width: 390px;">
+ <div class="search_label" style="width: 90px;">鏃堕棿鑼冨洿锛�</div>
<div class="search_input">
<el-date-picker
style="width: 100%;"
- v-model="componentData.entity.number"
+ v-model="entity.dateTime"
size="small"
type="daterange"
range-separator="鑷�"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
+ end-placeholder="缁撴潫鏃ユ湡" @change="refreshTable()" clearable>
</el-date-picker>
</div>
</div>
@@ -36,11 +38,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="entity.name" @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">
+ <div class="search_thing" style="width: 200px;" v-if="currentTable == 'ValueTable0'">
+ <div class="search_label" >鐘舵�侊細</div>
+ <el-select v-model="entity.state" 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>
@@ -61,69 +63,76 @@
</el-radio-group>
<div style="display: flex;align-items: center;">
<p style="font-size: 14px;margin-right: 30px;">
- 浜ч噺宸ユ椂姹囨�伙細<span style="font-size: 16px;color: #3A7BFA;">11.333</span> 杈呭姪宸ユ椂姹囨�伙細<span style="font-size: 16px;color: #3A7BFA;">12.333</span>
+ 鎬诲伐鏃舵眹鎬伙細<span style="font-size: 16px;color: #3A7BFA;" v-if="totalInfo">{{ (totalInfo['浜ч噺宸ユ椂姹囨��']+totalInfo['杈呭姪宸ユ椂姹囨��'])? Number((totalInfo['浜ч噺宸ユ椂姹囨��']+totalInfo['杈呭姪宸ユ椂姹囨��'])).tofixed(4):0 }}</span> 浜ч噺宸ユ椂姹囨�伙細<span style="font-size: 16px;color: #3A7BFA;" v-if="totalInfo">{{totalInfo['浜ч噺宸ユ椂姹囨��']?Number(totalInfo['浜ч噺宸ユ椂姹囨��']).tofixed(4):0}}</span> 杈呭姪宸ユ椂姹囨�伙細<span style="font-size: 16px;color: #3A7BFA;" v-if="totalInfo">{{totalInfo['杈呭姪宸ユ椂姹囨��']?Number(totalInfo['杈呭姪宸ユ椂姹囨��']).tofixed(4):0}}</span>
</p>
- <el-button size="small" type="primary" style="margin-right: 16px;" @click="openAdd">褰曞叆鏁版嵁</el-button>
- <el-button size="small" type="primary">瀵� 鍑�</el-button>
+ <el-button size="small" type="primary" @click="openAdd" v-show="currentTable == 'ValueTable0'&&add">褰曞叆鏁版嵁</el-button>
+ <el-button size="small" type="primary"
+ v-if="down"
+ @click="handleOut" :loading="outLoading">瀵� 鍑�</el-button>
+ <el-button size="small" type="primary" v-show="currentTable == 'ValueTable0'&&add" @click="openBatchCheck(0)">鎵归噺瀹℃牳</el-button>
+ <el-button size="small" type="primary" v-show="currentTable == 'ValueTable0'&&add" @click="openBatchCheck(1)">鎵归噺鎵瑰噯</el-button>
</div>
</div>
<div class="table">
<ValueTable ref="ValueTable0"
- v-show="currentTable == 'ValueTable0'"
- :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :upUrl="$api.auxiliaryWorkingHours.upAuxiliaryWorkingHours"
- :delUrl="$api.auxiliaryWorkingHours.deleteAuxiliaryWorkingHours" :componentData="componentData" :key="upIndex" />
- <ValueTable ref="ValueTable1"
- v-show="currentTable == 'ValueTable1'"
- :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :upUrl="$api.auxiliaryWorkingHours.upAuxiliaryWorkingHours"
- :delUrl="$api.auxiliaryWorkingHours.deleteAuxiliaryWorkingHours" :componentData="componentData1" :key="upIndex1" />
+ v-if="currentTable == 'ValueTable0'" :isColumnWidth="true"
+ :url="$api.auxiliaryWorkingHoursDay.selectAuxiliaryWorkingHoursDay"
+ :delUrl="$api.auxiliaryWorkingHoursDay.deleteAuxiliaryWorkingHoursDay" :componentData="componentData" :key="upIndex"
+ @delete="handleDelete" />
+ <ValueTable ref="ValueTable1" v-if="currentTable == 'ValueTable1'" :isColumnWidth="true"
+ :url="$api.auxiliaryOutputWorkingHours.selectAuxiliaryOutputWorkingHours" :componentData="componentData1" :key="upIndex1" />
</div>
<el-dialog :title="formData.id?'缂栬緫':'褰曞叆鏁版嵁'" :visible.sync="addVisible" width="600px" :before-close="handleClose">
<el-row style="display:flex;justify-content: space-around;">
<el-col :span="12">
<el-form :model="formData" label-width="90px">
<el-form-item label="褰曞叆鏃堕棿:">
- <el-radio-group v-model="formData.value0" size="small">
- <el-radio :label="0">浠婂ぉ</el-radio>
- <el-radio :label="1">鏄庡ぉ</el-radio>
+ <el-radio-group v-model="formData.dateTime" size="small">
+ <el-radio :label="getYearAndMonthAndDays()+' 00:00:00'">浠婂ぉ</el-radio>
+ <el-radio :label="getYearAndMonthAndDays(new Date((new Date()).getTime() - 24 * 60 * 60 * 1000))+' 00:00:00'">鏄ㄥぉ</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="骞翠唤:">
<el-input v-model="formData.year" disabled size="small"></el-input>
</el-form-item>
<el-form-item label="鍛ㄦ:">
- <el-input v-model="formData.value2" size="small" disabled></el-input>
+ <el-input v-model="formData.week" size="small" disabled></el-input>
</el-form-item>
<el-form-item label="鏄熸湡:">
- <el-input v-model="formData.value3" size="small" disabled></el-input>
+ <!-- <el-input v-model="formData.weekDay" size="small" disabled></el-input> -->
+ <el-select v-model="formData.weekDay" placeholder="璇烽�夋嫨" size="small" disabled>
+ <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
</el-form-item>
<el-form-item label="鐝:">
- <el-input v-model="formData.value4" size="small" disabled></el-input>
+ <el-input v-model="formData.shift" size="small" disabled></el-input>
</el-form-item>
</el-form>
</el-col>
<el-col :span="12">
<el-form :model="formData" label-width="90px">
- <el-form-item label="缂栧彿:">
- <el-input v-model="formData.value5" size="small"></el-input>
+ <el-form-item label="缂栧彿:" required>
+ <el-input v-model="formData.number" size="small" @blur="getInfoByCode"></el-input>
</el-form-item>
- <el-form-item label="鏁伴噺:">
- <el-input v-model="formData.value6" size="small" ></el-input>
+ <el-form-item label="鏁伴噺:" required>
+ <el-input v-model="formData.amount" size="small" ></el-input>
</el-form-item>
<el-form-item label="鏍稿噯宸ユ椂:">
- <el-input v-model="formData.value7" size="small" disabled></el-input>
+ <el-input v-model="formData.approvedWorkingHour" size="small" disabled></el-input>
</el-form-item>
<el-form-item label="杈呭姪宸ユ椂:">
- <el-input v-model="formData.value8" size="small" disabled></el-input>
+ <el-input v-model="formData.nonproductiveTime" size="small" disabled></el-input>
</el-form-item>
<el-form-item label="杈呭姪椤圭洰:">
- <el-input v-model="formData.value9" size="small" disabled></el-input>
+ <el-input v-model="formData.auxiliaryProject" size="small" disabled></el-input>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-form :model="formData" label-width="90px">
<el-form-item label="杈呭姪璇存槑:">
- <el-input v-model="formData.value10" type="textarea"
+ <el-input v-model="formData.remarks" type="textarea"
:rows="3" size="small"></el-input>
</el-form-item>
</el-form>
@@ -139,51 +148,55 @@
<el-col :span="12">
<el-form :model="formData0" label-width="90px">
<el-form-item label="骞翠唤:">
- <el-input v-model="formData0.year" size="small"></el-input>
+ <el-input v-model="formData0.year" size="small" :disabled="title=='鎵瑰噯'"></el-input>
</el-form-item>
<el-form-item label="鍛ㄦ:">
- <el-input v-model="formData0.value2" size="small"></el-input>
+ <el-input v-model="formData0.week" size="small" :disabled="title=='鎵瑰噯'"></el-input>
</el-form-item>
<el-form-item label="鏄熸湡:">
- <el-input v-model="formData0.value3" size="small"></el-input>
+ <!-- <el-input v-model="formData0.weekDay" size="small" :disabled="title=='鎵瑰噯'"></el-input> -->
+ <el-select v-model="formData0.weekDay" placeholder="璇烽�夋嫨" size="small" :disabled="title=='鎵瑰噯'">
+ <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
</el-form-item>
<el-form-item label="濮撳悕:">
- <el-input v-model="formData0.value4" size="small" disabled></el-input>
+ <el-input v-model="formData0.name" size="small" disabled></el-input>
</el-form-item>
<el-form-item label="鐝:">
- <el-select v-model="formData0.value4" placeholder="璇烽�夋嫨" size="small">
+ <el-select v-model="formData0.shift" placeholder="璇烽�夋嫨" size="small" :disabled="title=='鎵瑰噯'">
<el-option v-for="item in classType" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
+ </el-form-item>
+ <el-form-item label="澶嶆牳璇存槑:">
+ <el-input v-model="formData0.reviewerRemark" type="textarea" :rows="3" size="small" :disabled="title=='鎵瑰噯'"></el-input>
</el-form-item>
</el-form>
</el-col>
<el-col :span="12">
<el-form :model="formData0" label-width="90px">
- <el-form-item label="缂栧彿:">
- <el-input v-model="formData0.value5" size="small"></el-input>
+ <el-form-item label="缂栧彿:" required>
+ <el-input v-model="formData0.number" size="small" :disabled="title=='鎵瑰噯'"></el-input>
</el-form-item>
- <el-form-item label="鏁伴噺:">
- <el-input v-model="formData0.value6" size="small" ></el-input>
+ <el-form-item label="鏁伴噺:" required>
+ <el-input v-model="formData0.amount" size="small" :disabled="title=='鎵瑰噯'"></el-input>
+ </el-form-item>
+ <el-form-item label="澶嶆牳鏁伴噺:" required>
+ <el-input v-model="formData0.reviewerNumber" size="small" :disabled="title=='鎵瑰噯'"></el-input>
</el-form-item>
<el-form-item label="鏍稿噯宸ユ椂:">
- <el-input v-model="formData0.value7" size="small" disabled></el-input>
+ <el-input v-model="formData0.approvedWorkingHour" size="small" disabled></el-input>
</el-form-item>
- <el-form-item label="杈呭姪宸ユ椂:">
- <el-input v-model="formData0.value8" size="small" disabled></el-input>
+ <el-form-item label="澶嶆牳宸ユ椂:">
+ <el-input v-model="formData0.reviewerNonproductiveTime" size="small" disabled></el-input>
</el-form-item>
<el-form-item label="杈呭姪椤圭洰:">
- <el-input v-model="formData0.value9" size="small" disabled></el-input>
+ <el-input v-model="formData0.auxiliaryProject" size="small" disabled></el-input>
</el-form-item>
</el-form>
</el-col>
</el-row>
- <el-form :model="formData0" label-width="90px">
- <el-form-item label="澶嶆牳璇存槑:">
- <el-input v-model="formData0.value10" type="textarea"
- :rows="3" size="small"></el-input>
- </el-form-item>
- </el-form>
<span slot="footer" class="dialog-footer">
<el-row>
<el-button @click="submitCheck(0)" :loading="checkLoadN">{{title=='瀹℃牳'?'涓嶉�氳繃':'涓嶆壒鍑�'}}</el-button>
@@ -191,93 +204,145 @@
</el-row>
</span>
</el-dialog>
+ <el-dialog
+ :title="batchCheckTitle"
+ :visible.sync="batchCheckDialog"
+ width="30%"
+ :before-close="closeBatchCheckDialog">
+ <span>{{batchCheckDialogMessage}}</span>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="batchCheckDialog = false">{{batchCheckTitle=='鎵归噺瀹℃牳'?'涓嶉�氳繃':'涓嶆壒鍑�'}}</el-button>
+ <el-button type="primary" @click="batchCheck">{{batchCheckTitle=='鎵归噺瀹℃牳'?'閫� 杩�':'鎵� 鍑�'}}</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
<script>
import ValueTable from '../../tool/value-table.vue'
+import {
+ getYearAndMonthAndDays
+ } from '../../../util/date'
export default {
components: {
ValueTable
},
data () {
return{
+ entity:{
+ dateTime: []
+ },
+ down:false,
+ add:false,
componentData: {
- entity: {
- number: null,
- department: null,
- laboratory: null,
- orderBy: {
- field: 'id',
- order: 'desc'
- }
- },
- isIndex: true,
- showSelect: false,
- select: false,
- do: [{
- id: 'delete',
- font: '鍒犻櫎',
- type: 'text',
- method: 'doDiy'
- }, {
- id: 'handleEdit',
- font: '缂栬緫',
- type: 'text',
- method: 'handleEdit'
- },{
- id: 'handleCheck',
- font: '瀹℃牳',
- type: 'text',
- method: 'handleCheck'
- }, {
- id: 'handleRatify',
- font: '鎵瑰噯',
- type: 'text',
- method: 'handleRatify'
- }],
- 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: []
+ entity: {
+ week: null,
+ weekDay: null,
+ dateTime: null,
+ name:null,
+ orderBy: {
+ field: 'id',
+ order: 'desc'
+ }
+ },
+ isIndex: true,
+ showSelect: true,
+ select: true,
+ selectMethod: 'handleChangeTask',
+ do: [{
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy'
+ }, {
+ id: 'handleEdit',
+ font: '缂栬緫',
+ type: 'text',
+ method: 'handleEdit'
+ },{
+ id: 'handleCheck',
+ font: '瀹℃牳',
+ type: 'text',
+ method: 'handleCheck',
+ disabFun: (row, index) => {
+ return row.state === '宸插鏍�' || row.state === '宸叉壒鍑�'
+ }
+ }, {
+ id: 'handleRatify',
+ font: '鎵瑰噯',
+ type: 'text',
+ method: 'handleRatify',
+ disabFun: (row, index) => {
+ return row.state === '宸叉壒鍑�'
+ }
+ }],
+ tagField: {
+ shift:{
+ select:[]
+ },
+ state:{
+ select:[
+ {
+ label:'宸叉彁浜�',
+ value:'宸叉彁浜�',
+ type:'primary'
+ },
+ {
+ label:'宸插鏍�',
+ value:'宸插鏍�',
+ type:'warning'
+ },
+ {
+ label:'宸叉壒鍑�',
+ value:'宸叉壒鍑�',
+ type:'success'
+ },
+ ]
+ },
+ weekDay:{
+ select:[]
+ }
+ },
+ linkEvent: {},
+ selectField: {
+ shift:{
+ select:[]
+ },
+ state:{
+ select:[
+ {
+ label:'宸叉彁浜�',
+ value:'宸叉彁浜�',
+ type:'primary'
+ },
+ {
+ label:'宸插鏍�',
+ value:'宸插鏍�',
+ type:'warning'
+ },
+ {
+ label:'宸叉壒鍑�',
+ value:'宸叉壒鍑�',
+ type:'success'
+ },
+ ]
+ },
+ weekDay:{
+ select:[]
+ }
+ },
+ requiredAdd: [],
+ requiredUp: [],
+ needSort: ['createTime', 'name']
},
entityCopy: {},
upIndex: 0,
componentData1: {
entity: {
- number: null,
- department: null,
- laboratory: null,
+ week: null,
+ weekDay: null,
+ dateTime: [],
+ name:null,
orderBy: {
field: 'id',
order: 'desc'
@@ -288,78 +353,55 @@
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
- }
- },
+ linkEvent: {},
+ selectField: {},
requiredAdd: [],
requiredUp: []
},
- upIndex1:0,
+ addFileVisible:false,
+ entityCopy1: {},
+ upIndex1:100,
weekList:[
- {label: '鏄熸湡涓�', value: 1},
- {label: '鏄熸湡浜�', value: 2},
- {label: '鏄熸湡涓�', value: 3},
- {label: '鏄熸湡鍥�', value: 4},
- {label: '鏄熸湡浜�', value: 5},
- {label: '鏄熸湡鍏�', value: 6},
- {label: '鏄熸湡鏃�', value: 7}
+ {label: '鍛ㄤ竴', value: '鍛ㄤ竴',type:'primary'},
+ {label: '鍛ㄤ簩', value: '鍛ㄤ簩',type:'primary'},
+ {label: '鍛ㄤ笁', value: '鍛ㄤ笁',type:'primary'},
+ {label: '鍛ㄥ洓', value: '鍛ㄥ洓',type:'primary'},
+ {label: '鍛ㄤ簲', value: '鍛ㄤ簲',type:'primary'},
+ {label: '鍛ㄥ叚', value: '鍛ㄥ叚',type:'primary'},
+ {label: '鍛ㄦ棩', value: '鍛ㄦ棩',type:'primary'}
],
currentTable:'ValueTable0',
addVisible:false,
addLoad:false,
formData:{
- value0:0,
+ dateTime:getYearAndMonthAndDays()+' 00:00:00',
year:new Date().getFullYear(),
- value2:this.getCurrentWeekNumber(),
- value3:this.getWeek(),
- value4:'',
- value5:'',
- value6:'',
- value7:'',
- value8:'',
- value9:'',
- value10:'',
+ week:this.getCurrentWeekNumber(),
+ weekDay:this.getWeek(),
+ shift:'',
+ number:'',
+ amount:'',
+ approvedWorkingHour:'',
+ nonproductiveTime:'',
+ auxiliaryProject:'',
+ remarks:'',
},
formData0:{
- value0:0,
+ dateTime:0,
year:new Date().getFullYear(),
- value2:this.getCurrentWeekNumber(),
- value3:this.getWeek(),
- value4:'',
- value5:'',
- value6:'',
- value7:'',
- value8:'',
- value9:'',
- value10:'',
+ week:this.getCurrentWeekNumber(),
+ weekDay:this.getWeek(),
+ createUser:'',
+ shift:'',
+ number:'',
+ reviewerNumber:'',
+ approvedWorkingHour:'',
+ reviewerNonproductiveTime:'',
+ auxiliaryProject:'',
+ reviewerRemark:'',
+ nameUser: '',
+ name: ''
},
checkVisible:false,
checkLoadN:false,
@@ -368,57 +410,204 @@
classType:[],
stateList:[
{
- value:0,
+ value:'宸叉彁浜�',
label:'宸叉彁浜�'
},
{
- value:1,
+ value:'宸插鏍�',
label:'宸插鏍�'
},
{
- value:2,
+ value:'宸叉壒鍑�',
label:'宸叉壒鍑�'
},
- ]
+ ],
+ totalInfo:null,
+ auxiliaryWorking:null,
+ outLoading:false,
+ batchCheckTitle: '鎵归噺瀹℃牳',
+ batchCheckDialog: false,
+ ValueTable0Selected: [],
+ batchCheckDialogMessage: ''
}
},
watch:{
- 'formData.value0'(val){
- if(val==0){
+ 'formData.dateTime'(val){
+ if(val==(getYearAndMonthAndDays()+' 00:00:00')){
this.formData.year = new Date().getFullYear();
- this.formData.value2 = this.getCurrentWeekNumber()
- this.formData.value3 = this.getWeek()
+ this.formData.week = this.getCurrentWeekNumber()
+ this.formData.weekDay = this.getWeek()
}else{
var today = new Date(); // 鑾峰彇褰撳墠鏃ユ湡
var yesterday = new Date(today); // 澶嶅埗褰撳墠鏃ユ湡
yesterday.setDate(today.getDate() - 1); // 璁剧疆涓哄墠涓�澶�
var timestamp = new Date(yesterday.getTime());
this.formData.year = timestamp.getFullYear();
- this.formData.value2 = this.getCurrentWeekNumber(timestamp)
- this.formData.value3 = this.getWeek(timestamp)
+ this.formData.week = this.getCurrentWeekNumber(timestamp)
+ this.formData.weekDay = this.getWeek(timestamp)
+ }
+ },
+ 'formData.amount'(val){
+ if(val){
+ if(!isNaN(val)){
+ if(this.formData.approvedWorkingHour){
+ this.formData.nonproductiveTime = this.formData.approvedWorkingHour*val
+ }
+ }else{
+ this.$message.error('璇疯緭鍏ユ暟瀛�')
+ this.formData.amount = ''
+ }
+ }
+ },
+ 'formData.approvedWorkingHour'(val){
+ if(val&&this.formData.amount){
+ this.formData.nonproductiveTime = this.formData.amount*val
+ }
+ },
+ 'formData0.reviewerNumber'(val){
+ if(val){
+ if(!isNaN(val)){
+ if(this.formData0.approvedWorkingHour){
+ this.formData0.reviewerNonproductiveTime = this.formData0.approvedWorkingHour*val
+ }
+ }else{
+ this.$message.error('璇疯緭鍏ユ暟瀛�')
+ this.formData0.reviewerNumber = ''
+ }
+ }
+ },
+ 'formData0.approvedWorkingHour'(val){
+ if(val&&this.formData0.reviewerNumber){
+ this.formData0.reviewerNonproductiveTime = this.formData0.reviewerNumber*val
}
}
+ },
+ created() {
+ this.setDate()
},
mounted(){
this.getCurrentWeekNumber()
this.selectEnumByCategory()
+ this.collectWorkingHours()
+ this.selectshiftByUser()
+ this.entityCopy = this.HaveJson(this.componentData.entity);
+ this.entityCopy1 = this.HaveJson(this.componentData1.entity);
+ this.componentData.tagField.weekDay.select = this.weekList
+ this.componentData.selectField.weekDay.select = this.weekList
+ this.getPower()
},
methods:{
- refreshTable(){},
- refresh(){},
+ /** 灏嗘椂闂撮�夋嫨鍣ㄩ粯璁ら�変负褰撳ぉ鐨勬棩鏈� */
+ setDate(){
+ let currentDate = new Date();
+ let year = currentDate.getFullYear();
+ let month = String(currentDate.getMonth() + 1).padStart(2, '0');
+ let day = String(currentDate.getDate()).padStart(2, '0');
+ let formattedDate1 = `${year}-${month}-${day}`;
+ let formattedDate2 = `${year}-${month}-${day}`;
+ this.entity.dateTime.push(formattedDate1);
+ this.entity.dateTime.push(formattedDate2);
+ this.componentData1.entity.dateTime.push(formattedDate1);
+ this.componentData1.entity.dateTime.push(formattedDate2);
+ this.componentData1.entity.dateTime = JSON.stringify(this.componentData1.entity.dateTime)
+ this.refreshTable()
+ },
+ getPower(){
+ let power = JSON.parse(sessionStorage.getItem('power'))
+ let del = false
+ let down = false
+ let add = false
+ let up = false
+ let check = false
+ let ratify = false
+ for (var i = 0; i < power.length; i++) {
+ if (power[i].menuMethod == 'exportWorkingHours') {
+ down = true
+ }
+ if (power[i].menuMethod == 'deleteAuxiliaryWorkingHoursDay') {
+ del = true
+ }
+ if (power[i].menuMethod == 'insertAuxiliaryWorkingHoursDay') {
+ add = true
+ }
+ if (power[i].menuMethod == 'updateAuxiliaryWorkingHoursDay') {
+ up = true
+ }
+ if (power[i].menuMethod == 'check') {
+ check = true
+ }
+ if (power[i].menuMethod == 'approve') {
+ ratify = true
+ }
+ }
+ if (!ratify) {
+ this.componentData.do.splice(3, 1)
+ }
+ if (!check) {
+ this.componentData.do.splice(2, 1)
+ }
+ if (!up) {
+ this.componentData.do.splice(1, 1)
+ }
+ if (!del) {
+ this.componentData.do.splice(0, 1)
+ }
+ this.down = down
+ this.add = add
+ },
+ getYearAndMonthAndDays(date){
+ return getYearAndMonthAndDays(date)
+ },
+ refreshTable(e){
+ let entity = {}
+ if(this.entity.week1&&this.entity.week2){
+ entity.week = JSON.stringify([this.entity.week1,this.entity.week2])
+ }else{
+ entity.week = ''
+ }
+ if(this.entity.dateTime){
+ entity.dateTime = JSON.stringify(this.entity.dateTime)
+ }else{
+ entity.dateTime = ''
+ }
+ entity.weekDay = this.entity.weekDay
+ entity.name = this.entity.name
+ if(this.currentTable=='ValueTable0'){
+ entity.state = this.entity.state
+ this.componentData.entity = {...this.componentData.entity,...entity}
+ this.$nextTick(() => {
+ this.$refs['ValueTable0'].selectList(e)
+ })
+ }else{
+ this.componentData1.entity = {...this.componentData1.entity,...entity}
+ this.$refs['ValueTable1'].selectList(e)
+ }
+ this.collectWorkingHours()
+ },
+ refresh(){
+ this.entity = {}
+ if(this.currentTable=='ValueTable0'){
+ this.componentData.entity = this.HaveJson(this.entityCopy)
+ this.upIndex++
+ }else{
+ this.componentData1.entity = this.HaveJson(this.entityCopy1)
+ this.upIndex1++
+ }
+ this.refreshTable()
+ },
openAdd(){
this.formData = {
- value0:0,
+ dateTime:getYearAndMonthAndDays()+' 00:00:00',
year:new Date().getFullYear(),
- value2:this.getCurrentWeekNumber(),
- value3:this.getWeek(),
- value4:'',
- value5:'',
- value6:'',
- value7:'',
- value8:'',
- value9:'',
- value10:'',
+ week:this.getCurrentWeekNumber(),
+ weekDay:this.getWeek(),
+ shift:'',
+ number:'',
+ amount:'',
+ approvedWorkingHour:'',
+ nonproductiveTime:'',
+ auxiliaryProject:'',
+ remarks:'',
}
this.addVisible = true
},
@@ -426,46 +615,191 @@
this.formData = row;
this.addVisible = true
},
+ handleDelete(){
+ this.collectWorkingHours()
+ },
handleClose(){
this.addVisible = false
},
submitAdd(){
- if(!this.formData.value5){
+ if(!this.formData.number){
this.$message.error('璇疯緭鍏ョ紪鍙�')
return
}
- if(!this.formData.value6){
+ if(!this.formData.amount){
this.$message.error('璇疯緭鍏ユ暟閲�')
return
}
this.addLoad = true
+ if(!this.formData.id){
+ this.$axios.post(this.$api.auxiliaryWorkingHoursDay.insertAuxiliaryWorkingHoursDay, {
+ ...this.formData
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ this.addLoad = false
+ if (res.code == 201) return
+ this.$message.success('宸叉彁浜�')
+ this.formData.number = ''
+ this.formData.amount = ''
+ this.formData.remarks = ''
+ this.formData.approvedWorkingHour = ''
+ this.formData.nonproductiveTime = ''
+ this.formData.auxiliaryProject = ''
+ // this.addVisible = false
+ this.refreshTable('page')
+ this.collectWorkingHours()
+ })
+ }else{
+ this.$axios.post(this.$api.auxiliaryWorkingHoursDay.updateAuxiliaryWorkingHoursDay, {
+ ...this.formData
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ this.addLoad = false
+ if (res.code == 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.formData.number = ''
+ this.formData.amount = ''
+ this.formData.remarks = ''
+ this.formData.approvedWorkingHour = ''
+ this.formData.nonproductiveTime = ''
+ this.formData.auxiliaryProject = ''
+ // this.addVisible = false
+ this.refreshTable('page')
+ this.collectWorkingHours()
+ })
+ }
},
handleCheck(row){
this.title = '瀹℃牳'
this.formData0 = row;
this.checkVisible = true
+ this.formData0.reviewerNumber = this.formData0.amount
},
handleRatify(row){
this.title = '鎵瑰噯'
this.formData0 = row;
this.checkVisible = true
+ this.formData0.reviewerNumber = this.formData0.amount
+ },
+ handleChangeTask (row) {
+ this.ValueTable0Selected = JSON.parse(JSON.stringify(row))
+ },
+ openBatchCheck (e) {
+ if (this.ValueTable0Selected.length > 0) {
+ const isChecked = this.ValueTable0Selected.every(item => item.state === '宸叉彁浜�')
+ const isApprove = this.ValueTable0Selected.every(item => item.state !== '宸叉壒鍑�')
+ console.log('this.isApprove---', isApprove)
+ this.batchCheckTitle = e === 0 ? '鎵归噺瀹℃牳' : '鎵归噺鎵瑰噯'
+ this.batchCheckDialogMessage = e === 0 ? '鏄惁鍏ㄩ儴閫氳繃瀹℃牳?' : '鏄惁鍏ㄩ儴閫氳繃鎵瑰噯?'
+ if (this.batchCheckTitle === '鎵归噺瀹℃牳') {
+ if (isChecked) {
+ this.batchCheckDialog = true
+ } else {
+ this.$message.error('璇烽�夋嫨鏈鏍告垨鏈壒鍑嗙殑鏁版嵁')
+ }
+ } else {
+ if (isApprove) {
+ this.batchCheckDialog = true
+ } else {
+ this.$message.error('璇烽�夋嫨鏈壒鍑嗙殑鏁版嵁')
+ }
+ }
+ } else {
+ this.$message.error('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�')
+ }
+ },
+ batchCheck () {
+ const e = this.batchCheckTitle === '鎵归噺瀹℃牳' ? 0 : 1
+ this.$refs.ValueTable0.batchCheck(e)
+ },
+ closeBatchCheckDialog () {
+ this.batchCheckDialog = false
+ },
+ submitBatchCheckDialog () {
+ this.batchCheckDialog = false
+ this.refreshTable('page')
+ this.collectWorkingHours()
},
submitCheck(e){
- if(!this.formData0.value5){
+ if(!this.formData0.number){
this.$message.error('璇疯緭鍏ョ紪鍙�')
return
}
- if(!this.formData0.value6){
+ if(!this.formData0.amount){
this.$message.error('璇疯緭鍏ユ暟閲�')
return
}
- this.checkLoadY = true
+
+ if(this.title == '瀹℃牳'){
+ if(e==0){
+ // 瀹℃牳涓嶉�氳繃
+ this.checkLoadN = true
+ }else{
+ // 瀹℃牳閫氳繃
+ this.checkLoadY = true
+ }
+ this.formData0.state = e==0?this.formData0.state:'宸插鏍�'
+ this.$axios.post(this.$api.auxiliaryWorkingHoursDay.check, {
+ auxiliaryWorkingHoursDays:[this.formData0]
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ if(e==0){
+ // 瀹℃牳涓嶉�氳繃
+ this.checkLoadN = false
+ }else{
+ // 瀹℃牳閫氳繃
+ this.checkLoadY = false
+ }
+ if (res.code == 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.checkVisible = false
+ this.refreshTable('page')
+ this.collectWorkingHours()
+ })
+ }else{
+ if(e==0){
+ this.checkLoadN = true
+ }else{
+ this.checkLoadY = true
+ }
+ this.$axios.post(this.$api.auxiliaryWorkingHoursDay.approve, {
+ id:this.formData0.id,
+ state:e==0?'宸叉彁浜�':'宸叉壒鍑�'
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ if(e==0){
+ this.checkLoadN = false
+ }else{
+ this.checkLoadY = false
+ }
+ if (res.code == 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.checkVisible = false
+ this.refreshTable('page')
+ this.collectWorkingHours()
+ })
+ }
},
selectEnumByCategory() {
this.$axios.post(this.$api.enums.selectEnumByCategory, {
category: "鐝绫诲瀷"
}).then(res => {
this.classType = res.data
+ this.componentData.tagField.shift.select = res.data
+ this.classType = res.data
+ this.componentData.selectField.shift.select = res.data
})
},
getCurrentWeekNumber(now=new Date()) {
@@ -491,7 +825,64 @@
let d = e.getDay()
// let c = str.charAt(d)
// return `鍛�${c}`
- return d
+ return String(d)
+ },
+ collectWorkingHours(){
+ let entity = {}
+ if(this.entity.week1&&this.entity.week2){
+ entity.week = JSON.stringify([this.entity.week1,this.entity.week2])
+ }else{
+ entity.week = ''
+ }
+ if(this.entity.dateTime){
+ entity.dateTime = JSON.stringify(this.entity.dateTime)
+ }else{
+ entity.dateTime = ''
+ }
+ entity.weekDay = this.entity.weekDay
+ entity.name = this.entity.name
+ this.$axios.post(this.$api.auxiliaryOutputWorkingHours.collectWorkingHours,{
+ entity:entity
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ this.totalInfo = res.data
+ })
+ },
+ selectshiftByUser(){
+ this.$axios.post(this.$api.auxiliaryWorkingHoursDay.selectshiftByUser).then(res => {
+ this.formData.shift = res.data
+ })
+ },
+ getInfoByCode(){
+ if(this.formData.number){
+ this.$axios.post(this.$api.auxiliaryWorkingHoursDay.selectAuxiliaryWorkingHoursByNumber+'?number='+this.formData.number).then(res => {
+ this.auxiliaryWorking = res.data
+ if(this.addVisible){
+ this.formData.approvedWorkingHour = this.auxiliaryWorking.approvedWorkingHour
+ this.formData.auxiliaryProject = this.auxiliaryWorking.auxiliaryProject
+ }else if(this.title=='瀹℃牳'&&this.checkVisible){
+ this.formData0.approvedWorkingHour = this.auxiliaryWorking.approvedWorkingHour
+ this.formData0.auxiliaryProject = this.auxiliaryWorking.auxiliaryProject
+ }
+ })
+ }
+ },
+ handleOut(){
+ this.outLoading = true
+ this.$axios.get(this.$api.auxiliaryOutputWorkingHours.exportWorkingHours,{responseType: "blob"}).then(res => {
+ this.outLoading = false
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const blob = new Blob([res]);
+ console.log(blob)
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = '鏃ュ伐鏃舵眹鎬昏〃.xlsx';
+ link.click();
+ })
},
}
}
--
Gitblit v1.9.3