From 887b0e16b77a6d9c1161ada57f923f0ee20839b2 Mon Sep 17 00:00:00 2001 From: value <z1292839451@163.com> Date: 星期二, 14 五月 2024 02:26:04 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- 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 | 6 src/components/do/b3-work-time-management/work-time-statistics.vue | 233 ++++++++++++++++++++++++++++++++++++++ src/components/view/b3-classes.vue | 33 ++++- src/components/view/b1-inspection-order.vue | 16 +- 8 files changed, 278 insertions(+), 30 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 8967cea..75adee2 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..d26142d 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> @@ -200,7 +200,7 @@ margin-top: 10px; background-color: #fff; width: calc(100% - 40px); - height: calc(100% - 60px - 80px - 10px - 40px); + height: calc(100% - 60px - 80px - 10px - 24px); padding: 20px; } </style> 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/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue index 7ccb0ea..a5f0a23 100644 --- a/src/components/view/b1-inspection-order.vue +++ b/src/components/view/b1-inspection-order.vue @@ -509,13 +509,15 @@ }, // 涓嬭浇鎶ュ憡 download(row) { - // console.log(row); - let url = row.url; - const link = document.createElement('a'); - link.href = this.javaApi + url; - link.target = '_blank'; - document.body.appendChild(link); - link.click(); + let url = row.urlS?row.urlS:row.url; + if(url){ + url = url.split('.')[0]+'.pdf' + const link = document.createElement('a'); + link.href = this.javaApi + url; + link.target = '_blank'; + document.body.appendChild(link); + link.click(); + } }, // 瀹℃牳 handleVerify(row) { diff --git a/src/components/view/b3-classes.vue b/src/components/view/b3-classes.vue index 2d9ffd5..0417519 100644 --- a/src/components/view/b3-classes.vue +++ b/src/components/view/b3-classes.vue @@ -60,7 +60,7 @@ <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="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 }},宸�:{{ item.day6 }}</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;">{{ query.month?item.monthlyAttendance .totalAttendance:item.sidebarAnnualAttendance @@ -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',type6:m.shift==='6'}"> <!-- <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> @@ -112,7 +112,7 @@ <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="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 }},宸�:{{ item.day6 }}</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.work_time }}澶�</span></p> </div> @@ -139,7 +139,7 @@ <div class="content-body-item" v-for="(m,i) in item.monthList" :key="'d'+i" :class="{hoverType:currentUserIndex==index}"> <p style="color:rgb(153, 153, 153);font-size: 12px;">鍚堣鍑哄嫟锛�<span style="font-size: 14px;color:#000">{{ m.totalMonthAttendance }}</span></p> <p style="color:rgb(153, 153, 153);font-size: 12px;"> - 鏃�: {{ m.day0 }}, 涓�: {{ m.day1 }}, 澶�: {{ m.day2 }}, 浼�: {{ m.day3 }}, 鍋�: {{ m.day4 }} + 鏃�:{{ m.day0 }},涓�:{{ m.day1 }},澶�:{{ m.day2 }},浼�:{{ m.day3 }},鍋�:{{ m.day4 }},宸�:{{ m.day6 }} </p> </div> </div> @@ -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,20 @@ .work-box.type4 span{ color: #F56C6C !important; } +.work-box.type5{ + background: #ff46c145; + color: #ff46c0 !important; +} +.work-box.type5 span{ + color: #ff46c0 !important; +} +.work-box.type6{ + background: #00036418; + color: #000464 !important; +} +.work-box.type6 span{ + color: #000464 !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..24fdc91 100644 --- a/src/main.js +++ b/src/main.js @@ -13,8 +13,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://192.168.11.200: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