From 1e1e70da5288f47d8770ba2e7f22f3362e5b577c Mon Sep 17 00:00:00 2001 From: zhuzhuanzhuan Date: 星期五, 08 十二月 2023 17:16:35 +0800 Subject: [PATCH] 1、全局修改密码弹窗中的新密码校验长度与数据字典password_length设置保持一致 2、报警分析页面优化过快点击多次表格行时图表内容出现数据残留以及加载图表应设置加载中动画,若不设置用户在查询时短时间内不清楚有无数据 3、车间看板以及设备监控页面设备详情弹窗右上角增加关闭按钮、设备详情弹窗透明度加深、设备详情弹窗图表表盘指针对比色加强、调整设备详情弹窗中描述列表子项标题对齐方式由左对齐改为右对齐,锁定运行数据描述列表子项数值宽度,超出部分隐藏出现省略号,悬浮出现气泡卡片 4、设备利用率、设备开动率、班次利用率页面表格前三列增加表头,依次为公司、车间、工段以及表格有关时间值调整为若小时或分钟为0则不显示 5、设备综合效率分析页面表格数据默认每页最多显示10条改为20条 6、设备加工工件报表页面完成布局及功能实现 --- src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue | 186 ++++++++++++++++++++++++++++++--------------- 1 files changed, 123 insertions(+), 63 deletions(-) diff --git a/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue b/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue index 73f9116..522f636 100644 --- a/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue +++ b/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue @@ -1,17 +1,26 @@ <template> <div style="width: 100%;"> - <a-card :bordered="false"> + <div :bordered="false"> <!-- 鏌ヨ鍖哄煙 --> <div class="seach-content"> <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="9" :sm="9" :xs="9"> + <a-col :md="4" :sm="4" > + <a-form-item label="璁惧绫诲瀷"> + <a-select placeholder="璇烽�夋嫨璁惧绫诲瀷" :triggerChange="true" v-model="queryParam.equipmentType" :allowClear="true"> + <a-select-option v-for='item in selectList' :key='item.id' :value='item.equipmentTypeName'> + {{item.equipmentTypeName}} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="5" :sm="5" :xs="5"> <a-form-item label="鏃堕棿"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/> </a-form-item> </a-col> - <a-col :md="6" :sm="6" :xs="6"> + <a-col :md="4" :sm="4" :xs="4"> <a-form-item label="鐝埗"> <a-select v-model="queryParam.shiftId" placeholder="璇烽�夋嫨鐝埗" @change="initShiftSubList" :allowClear = "allowClear"> @@ -21,7 +30,7 @@ </a-select> </a-form-item> </a-col> - <a-col :md="6" :sm="6" :xs="6"> + <a-col :md="4" :sm="4" :xs="4"> <a-form-item label="鐝"> <a-select v-model="queryParam.shiftSubId" placeholder="璇烽�夋嫨鐝" @change="initShiftSubListChange" :allowClear = "allowClearSu"> <a-select-option v-for="(em,index) in shiftSubList" :key="index" :value="em.value"> @@ -30,46 +39,55 @@ </a-select> </a-form-item> </a-col> - </a-row> <a-row :gutter="24"> - <a-col :md="14" :sm="14" :xs="14"> + <a-col :md="9" :sm="9" :xs="9"> <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" @change="efficiencyOptionsOnChange"/> </a-col> - <a-col :md="3" :sm="3" :xs="3"> - <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-col :md="5" :sm="5"> + <a-space> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button> + <a-button type="primary" @click="exportExcel" icon="download">瀵煎嚭</a-button> + </a-space> </a-col> - <a-col :md="3" :sm="3" :xs="3"> - <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button> - </a-col> - <a-col :md="3" :sm="3" :xs="3"> - <a-button type="primary" @click="exportExcel" icon="download">瀵煎嚭</a-button> + <a-col :md="10" :sm="10"> + <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> + <tr> + <td v-for="(item, index) in identifying">{{item.title}}</td> + </tr> + <tr> + <td style="text-align:center;" v-for="(item, index) in identifying"> + <div class="identifyingclass" :style="{background: item.color}"></div> + </td> + </tr> + </table> </a-col> </a-row> </a-form> - </div> - <div style="width: 400px;top: 20px; right: 0px;"> - <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> - <tr> - <td v-for="(item, index) in identifying">{{item.title}}</td> - </tr> - <tr> - <td style="text-align:center;" v-for="(item, index) in identifying"> - <div class="identifyingclass" :style="{background: item.color}"></div> - </td> - </tr> - </table> - </div> + </div> + <!--<div style="width: 530px;position:absolute;top: 10px; right: 0;">--> + <!--<table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;">--> + <!--<tr>--> + <!--<td v-for="(item, index) in identifying">{{item.title}}</td>--> + <!--</tr>--> + <!--<tr>--> + <!--<td style="text-align:center;" v-for="(item, index) in identifying">--> + <!--<div class="identifyingclass" :style="{background: item.color}"></div>--> + <!--</td>--> + <!--</tr>--> + <!--</table>--> + <!--</div>--> </div> <div class="container" id="EfficiencyShift" style="margin-top: 20px;"> <div class="table2"> <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap"> <thead> <tr class="thead fixed equipname"> - <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;"></th> - <th class="thgu dong2 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;"></th> - <th class="thgu dong3 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;"></th> + <th class="thgu dong1 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;"></th> + <th class="thgu dong2 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;"></th> + <th class="thgu dong3 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;"></th> <th class="thgu dong4 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧缂栧彿</th> <th class="thgu dong5 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">璁惧鍚嶇О</th> <th class="thgu dong6 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧绫诲瀷</th> @@ -101,9 +119,9 @@ </thead> <tbody> <tr class="mathData" v-for="(item, index) in dataList"> - <td class="tdgu kaitou" :rowspan="item.level1span" :class="{hidden: item.level1dis}" v-show="!item.level1dis">{{item.level1}}</td> - <td class="tdgu1 kaitou" :rowspan="item.level2span" :class="{hidden: item.level2dis}" v-show="!item.level2dis">{{item.level2}}</td> - <td class="tdgu2 kaitou" :rowspan="item.level3span" :class="{hidden: item.level3dis}" v-show="!item.level3dis">{{item.level3}}</td> + <td class="tdgu kaitou wenzi" :rowspan="item.level1span" :class="{hidden: item.level1dis,noExl:item.level1dis}" v-show="!item.level1dis">{{item.level1}}</td> + <td class="tdgu1 kaitou wenzi" :rowspan="item.level2span" :class="{hidden: item.level2dis,noExl:item.level2dis}" v-show="!item.level2dis">{{item.level2}}</td> + <td class="tdgu2 kaitou wenzi" :rowspan="item.level3span" :class="{hidden: item.level3dis,noExl:item.level3dis}" v-show="!item.level3dis">{{item.level3}}</td> <td class="tdgu3 kaitou">{{item.equipmentId}}</td> <td class="tdgu4 kaitou">{{item.equipmentName}}</td> <td class="tdgu5 kaitou">{{item.equipmentType}}</td> @@ -143,7 +161,7 @@ </table> </div> </div> - </a-card> + </div> </div> </template> @@ -164,6 +182,7 @@ allowClear:true, allowClearSu:true, dates: [], + selectList:[], identifying: [], queryParam: {}, queryParamEquip:{}, @@ -186,7 +205,8 @@ list: '/mdc/efficiencyReport/efficiencyShiftList', listByType: '/mdc/MdcUtilizationRate/getByType', initShiftList: '/mdc/mdcMdcShift/initShiftList', - initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList' + initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList', + queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' }, tableHeads: [], shiftList: [], @@ -202,6 +222,7 @@ this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.typeTree = "1" this.loadData(); + this.queryGroup() }, watch: { Type(valmath){ @@ -370,11 +391,11 @@ }) }, initShiftSubList(val) { - this.queryParam.shiftSubId = null; + //姣忔閲嶆柊閫夋嫨鐝埗鏃剁彮娆℃竻绌轰笖鏄剧ずplaceholder鍐呭 + this.queryParam.shiftSubId = undefined; getAction(this.url.initShiftSubList, { shiftId: val }).then((res) => { if (res.success) { this.shiftSubList = res.result; - } }) }, @@ -406,24 +427,38 @@ dateParamChange(v1, v2) { this.queryParam.startTime = v2[0] this.queryParam.endTime = v2[1] + // 鐐瑰嚮鏃堕棿閫夋嫨鍣ㄧ殑娓呯┖鎸夐挳鏃朵細瑙﹀彂姝ゅ垽鏂�(鐐瑰嚮閲嶇疆鎸夐挳涓嶄細瑙﹀彂)锛屽疄鐜伴噸缃垪琛ㄥ姛鑳斤紝鍒囧疄鏀瑰彉鍒楄〃鏄剧ず鏁堟灉 + if(!this.queryParam.startTime&&!this.queryParam.endTime)this.searchReset() }, efficiencyOptionsOnChange(checkedList) { let index = checkedList.indexOf('lyl') if (index < 0) { - this.$message.warn('涓嶈兘鍙栨秷鏌ヨ鍒╃敤鐜�') + // this.$message.warn('涓嶈兘鍙栨秷鏌ヨ鍒╃敤鐜�') + this.$notification.warning({ + message:'娑堟伅', + description:"涓嶈兘鍙栨秷鏌ヨ鐝鍒╃敤鐜�" + }) return false } this.checkedList = checkedList }, searchQuery() { - if(this.queryParam.typeTree == "1"){ - this.queryParam.parentId = this.queryParamEquip.parentId - this.queryParam.equipmentId = this.queryParamEquip.equipmentId + if(this.dates != ''){ + if(this.queryParam.typeTree == "1"){ + this.queryParam.parentId = this.queryParamEquip.parentId + this.queryParam.equipmentId = this.queryParamEquip.equipmentId + }else{ + this.queryParam.parentId = this.queryParamPeople.parentId + this.queryParam.equipmentId = "" + } + this.loadData() }else{ - this.queryParam.parentId = this.queryParamPeople.parentId - this.queryParam.equipmentId = "" + // this.$message.warning("璇烽�夋嫨鏃堕棿") + this.$notification.warning({ + message:'娑堟伅', + description:"璇烽�夋嫨鏃堕棿" + }); } - this.loadData() // this.onClearSelected() }, searchReset() { @@ -452,6 +487,24 @@ // this.initDeviceType(this.dataList) } }) + }, + queryGroup() { + getAction(this.url.queryEquipmentType).then(res => { + if (res.success) { + this.selectList = res.result + // this.selectList = res.result.map((item, index, arr) => { + // return { label: item.id, value: item.equipmentTypeName + '' } + // }) + } else { + // this.$message.warning(res.message) + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }).finally(() => { + this.loading = false + }) } } } @@ -468,38 +521,45 @@ left: 0; z-index: 1; } + .table tbody tr .wenzi{ + /*writing-mode: vertical-lr;*/ + /*text-orientation: upright;*/ + transform: rotate(360deg); + writing-mode: vertical-lr; + letter-spacing: 2px; + } .table tbody tr .kaitou{ z-index: 1; background-color: white; } .table tbody tr .tdgu1{ position: sticky; - left: 150px; + left: 50px; z-index: 2; } .table tbody tr .tdgu2{ position: sticky; - left: 300px; + left: 100px; z-index: 2; } .table tbody tr .tdgu3{ position: sticky; - left: 450px; + left: 150px; z-index: 2; } .table tbody tr .tdgu4{ position: sticky; - left: 550px; + left: 250px; z-index: 2; } .table tbody tr .tdgu5{ position: sticky; - left: 700px; + left: 400px; z-index: 2; } .table tbody tr .tdgu6{ position: sticky; - left: 800px; + left: 500px; z-index: 2; } @@ -524,27 +584,27 @@ } .table2 thead .equipname .dong2{ z-index: 5; - left: 150px; + left: 50px; } .table2 thead .equipname .dong3{ z-index: 5; - left: 300px; + left: 100px; } .table2 thead .equipname .dong4{ z-index: 5; - left: 450px; + left: 150px; } .table2 thead .equipname .dong5{ z-index: 5; - left: 550px; + left: 250px; } .table2 thead .equipname .dong6{ z-index: 5; - left: 700px; + left: 400px; } .table2 thead .equipname .dong7{ z-index: 6; - left: 800px; + left: 500px; } @media screen and (min-width: 1920px){ @@ -587,7 +647,7 @@ .dataContent { white-space: nowrap; /*margin: 0;*/ - border: none; + /*border: none;*/ border-collapse: separate; border-spacing: 0; /*table-layout: fixed;*/ @@ -615,9 +675,9 @@ width: auto; } - .dataContent tr td { - height: 35px - } + /*.dataContent tr td {*/ + /*height: 35px*/ + /*}*/ .dataContent .mathData td { padding: 10px; @@ -633,9 +693,9 @@ .dataContent .mathData .tdd { /*display: none;*/ } - .seach-content{ - display: flex; - justify-content: space-between; - } + /*.seach-content{*/ + /*display: flex;*/ + /*justify-content: space-between;*/ + /*}*/ </style> \ No newline at end of file -- Gitblit v1.9.3