From 51b9e548b0e533e8a415ce141808f2bb747b381e Mon Sep 17 00:00:00 2001 From: zhuzhuanzhuan Date: 星期一, 18 三月 2024 16:08:49 +0800 Subject: [PATCH] 1、mdc菜单下除特殊要求外,页面表格最少条数由10条调整为30条,每页最多条数区间由[10,20,30]调整为[30,50,100] 2、OEE基础管理和数据报表模块增加打印按钮,实现打印表格数据功能 3、设备管理、数据报表模块增加按照设备级别和设备类型查询表格数据 4、设备车间管理页面增加车间编码字段 5、修改组件名称以试图解决刷新后进入请求json页面问题 --- src/views/mdc/base/MdcUtilizationRateList.vue | 12 src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue | 14 src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue | 75 +- src/views/mdc/base/WorkshopSignageEntrance.vue | 70 ++ src/views/mdc/base/DeviceParamThresholdManagement.vue | 12 src/views/mdc/base/MdcWorkshopSignage.vue | 4 src/views/system/modules/UserModal.vue | 9 src/views/mdc/base/MdcQualificationRate.vue | 0 src/views/mdc/base/MdcDriveTypeParamConfigList.vue | 12 src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue | 489 ++++++++++-------- src/config/router.config.js | 11 src/views/mdc/base/MdcMessageconfirmationList.vue | 0 src/views/mdc/base/MdcStandardProcessTime.vue | 0 src/views/mdc/base/MdcProcessNumber.vue | 0 src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue | 14 src/views/mdc/base/modules/deviceRepair/DeviceRepairList.vue | 12 src/views/mdc/base/EquipmentList.vue | 38 + src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue | 77 ++ src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue | 18 src/views/mdc/base/AlarmManager.vue | 12 src/views/mdc/base/EquipmentOperationParamsAlarm.vue | 28 src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue | 12 src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue | 18 src/views/system/ProductionManager.vue | 3 src/views/mdc/base/modules/mdcPassRate/mdcPassRateList.vue | 14 src/views/system/modules/ProductionManager/ProductionModal.vue | 9 src/views/mdc/base/ContrastiveAnalysis.vue | 0 /dev/null | 204 -------- src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue | 14 src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue | 21 src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue | 13 src/views/mdc/base/MdcPlanCloseList.vue | 226 +++++++++ src/views/mdc/base/MdcEquipmentTypeList.vue | 12 33 files changed, 947 insertions(+), 506 deletions(-) diff --git a/src/config/router.config.js b/src/config/router.config.js index f35fe1f..434e8f4 100644 --- a/src/config/router.config.js +++ b/src/config/router.config.js @@ -1,4 +1,5 @@ import { UserLayout, TabLayout, RouteView, BlankLayout, PageView } from '@/components/layouts' + /** * 璧拌彍鍗曪紝璧版潈闄愭帶鍒� * @type {[null,null]} @@ -317,7 +318,7 @@ path: 'alteration', name: 'alteration', component: () => import(/* webpackChunkName: "user" */ '@/views/user/alteration/Alteration') - }, + } ] }, @@ -356,7 +357,7 @@ path: 'login', name: 'login', component: () => import(/* webpackChunkName: "oauth2-app.login" */ '@/views/user/oauth2/OAuth2Login') - }, + } ] }, { @@ -372,12 +373,12 @@ ] }, { - path:'/workshopSignage/:id', - component:()=>import('@/views/WorkshopSignage.vue') + path: '/MdcWorkshopSignage/:id', + component: () => import('@/views/mdc/base/MdcWorkshopSignage.vue') }, { path: '/404', component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404') - }, + } ] diff --git a/src/views/mdc/base/AlarmManager.vue b/src/views/mdc/base/AlarmManager.vue index 7a3d59d..c46bce2 100644 --- a/src/views/mdc/base/AlarmManager.vue +++ b/src/views/mdc/base/AlarmManager.vue @@ -230,6 +230,18 @@ data() { return { description: '鎶ヨ鍙风鐞嗙晫闈�', + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, // 琛ㄥご columns: [ { diff --git a/src/views/mdc/base/ComparativeAnalysis.vue b/src/views/mdc/base/ContrastiveAnalysis.vue similarity index 100% rename from src/views/mdc/base/ComparativeAnalysis.vue rename to src/views/mdc/base/ContrastiveAnalysis.vue diff --git a/src/views/mdc/base/DeviceParamThresholdManagement.vue b/src/views/mdc/base/DeviceParamThresholdManagement.vue index e2a170a..d2f43f5 100644 --- a/src/views/mdc/base/DeviceParamThresholdManagement.vue +++ b/src/views/mdc/base/DeviceParamThresholdManagement.vue @@ -117,6 +117,18 @@ name: 'DeviceParamThresholdManagement', description: '杩欐槸璁惧鍙傛暟闃堝�肩鐞嗛〉闈�', queryParam: {}, + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '#', diff --git a/src/views/mdc/base/EquipmentList.vue b/src/views/mdc/base/EquipmentList.vue index 2a5815b..009143b 100644 --- a/src/views/mdc/base/EquipmentList.vue +++ b/src/views/mdc/base/EquipmentList.vue @@ -6,19 +6,19 @@ <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="6" :sm="12"> + <a-col :md="4" :sm="4"> <a-form-item label="璁惧缂栧彿"> <a-input placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-model="queryParam.equipmentId"></a-input> </a-form-item> </a-col> - <a-col :md="6" :sm="8"> + <a-col :md="4" :sm="4"> <a-form-item label="璁惧鍚嶇О"> <a-input placeholder="璇疯緭鍏ヨ澶囧悕绉�" v-model="queryParam.equipmentName"></a-input> </a-form-item> </a-col> - <a-col :md="6" :sm="8"> + <a-col :md="4" :sm="4"> <a-form-item label="杞﹂棿鍚嶇О"> <!--<a-input placeholder="璇疯緭鍏ヨ溅闂村悕绉�" v-model="queryParam.productionName"></a-input>--> <a-tree-select v-model="queryParam.productionName" :treeData="workshopTreeData" placeholder="璇烽�夋嫨杞﹂棿" @@ -26,7 +26,21 @@ </a-form-item> </a-col> - <a-col :md="6" :sm="8"> + <a-col :md="4" :sm="4"> + <a-form-item label="璁惧绾у埆"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绾у埆" dictCode="device_level" v-model="queryParam.deviceLevel" + allow-clear/> + </a-form-item> + </a-col> + + <a-col :md="4" :sm="4"> + <a-form-item label="璁惧绉嶇被"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绉嶇被" dictCode="device_category" v-model="queryParam.deviceCategory" + allow-clear/> + </a-form-item> + </a-col> + + <a-col :md="4" :sm="4"> <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> </a-col> @@ -115,13 +129,25 @@ name: 'EquipmentList', mixins: [JeecgListMixin], components: { - UserModal, + UserModal }, data() { return { description: '杩欐槸璁惧绠$悊椤甸潰', queryParam: {}, recycleBinVisible: false, + /* 鍒嗛〉鍙傛暟 */ + ipagination: { + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�' + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '#', @@ -420,7 +446,7 @@ if (e.key == 1) { this.batchDel() } - }, + } } } </script> diff --git a/src/views/mdc/base/EquipmentOperationParamsAlarm.vue b/src/views/mdc/base/EquipmentOperationParamsAlarm.vue index 400450a..26b9299 100644 --- a/src/views/mdc/base/EquipmentOperationParamsAlarm.vue +++ b/src/views/mdc/base/EquipmentOperationParamsAlarm.vue @@ -34,8 +34,11 @@ </a-col> <a-col :md="6" :sm="6"> - <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> - <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + <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" icon="printer" v-print="'#paramsAlarm'" v-has="'paramsAlarm:print'">鎵撳嵃</a-button> + </a-space> </a-col> </a-row> </a-form> @@ -43,6 +46,7 @@ <a-table ref="table" + id="paramsAlarm" bordered size="middle" rowKey="equipmentid" @@ -64,7 +68,7 @@ export default { name: 'EquipmentOperationParamsAlarm', mixins: [JeecgListMixin], - created(){ + created() { this.getDriveTypeByApi() this.queryGroup() }, @@ -73,7 +77,7 @@ name: 'EquipmentOperationParamsAlarm', description: '杩欐槸璁惧杩愯鍙傛暟鎶ヨ椤甸潰', queryParam: {}, - driveTypeList:[], + driveTypeList: [], selectList: [], columns: [ { @@ -127,12 +131,12 @@ list: '/mdc/mdcOverrunAlarm/list', queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' }, - ipagination:{ + ipagination: { current: 1, pageSize: 30, pageSizeOptions: ['30', '50', '100'], showTotal: (total, range) => { - return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�' }, showQuickJumper: true, showSizeChanger: true, @@ -145,13 +149,13 @@ } } }, - methods:{ + methods: { /** * 璋冪敤鎺ュ彛鑾峰彇鎺у埗绯荤粺绫诲瀷 */ - getDriveTypeByApi(){ - api.getDriveTypeApi().then((res)=>{ - this.driveTypeList=res.result.map(item=>item.value) + getDriveTypeByApi() { + api.getDriveTypeApi().then((res) => { + this.driveTypeList = res.result.map(item => item.value) }) }, @@ -164,7 +168,7 @@ filterOption(input, option) { return ( option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 - ); + ) }, queryGroup() { @@ -184,7 +188,7 @@ }).finally(() => { this.loading = false }) - }, + } } } </script> diff --git a/src/views/mdc/base/MdcDriveTypeParamConfigList.vue b/src/views/mdc/base/MdcDriveTypeParamConfigList.vue index 1647dd9..0bb21a9 100644 --- a/src/views/mdc/base/MdcDriveTypeParamConfigList.vue +++ b/src/views/mdc/base/MdcDriveTypeParamConfigList.vue @@ -296,6 +296,18 @@ data() { return { description: '璁惧椹卞姩鍙傛暟閰嶇疆绠$悊椤甸潰', + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, // 琛ㄥご columns: [ { diff --git a/src/views/mdc/base/MdcEquipmentTypeList.vue b/src/views/mdc/base/MdcEquipmentTypeList.vue index 27bdd0e..3f6577e 100644 --- a/src/views/mdc/base/MdcEquipmentTypeList.vue +++ b/src/views/mdc/base/MdcEquipmentTypeList.vue @@ -126,6 +126,18 @@ data () { return { description: '璁惧绫诲瀷绠$悊椤甸潰', + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, // 琛ㄥご columns: [ { diff --git a/src/views/mdc/base/MdcMessageApproval.vue b/src/views/mdc/base/MdcMessageconfirmationList.vue similarity index 100% rename from src/views/mdc/base/MdcMessageApproval.vue rename to src/views/mdc/base/MdcMessageconfirmationList.vue diff --git a/src/views/mdc/base/MdcPlanCloseList.vue b/src/views/mdc/base/MdcPlanCloseList.vue new file mode 100644 index 0000000..da6f9d7 --- /dev/null +++ b/src/views/mdc/base/MdcPlanCloseList.vue @@ -0,0 +1,226 @@ +<template> + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="绫诲瀷"> + <a-input placeholder="璇疯緭鍏ョ被鍨�" v-model="queryParam.planCloseType"></a-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="鏃堕棿绫诲瀷"> + <a-select v-model="queryParam.planCloseTimeType" placeholder="璇烽�夋嫨鏃堕棿绫诲瀷"> + <a-select-option value="">璇烽�夋嫨</a-select-option> + <a-select-option value="澶�">澶�</a-select-option> + <a-select-option value="鍛�">鍛�</a-select-option> + <a-select-option value="鏈�">鏈�</a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + </span> + </a-col> + </a-row> + </a-form> + </div> + <!-- 鏌ヨ鍖哄煙-END --> + + <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> + <div class="table-operator"> + <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> + <a-button type="primary" icon="download" @click="importTemplate('璁″垝鍋滄満妯℃澘')">瀵煎叆妯℃澘</a-button> + <a-button type="primary" icon="download" @click="handleExportXls('璁″垝鍋滄満绠$悊')">瀵煎嚭</a-button> + <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" + @change="handleImportExcel"> + <a-button type="primary" icon="import">瀵煎叆</a-button> + </a-upload> + <a-button type="primary" icon="printer" v-print="'#planClose'" v-has="'planClose:print'">鎵撳嵃</a-button> + + <!-- 楂樼骇鏌ヨ鍖哄煙 --> + <!--<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> + <a-dropdown v-if="selectedRowKeys.length > 0"> + <a-menu slot="overlay"> + <a-menu-item key="1" @click="batchDel"> + <a-icon type="delete"/> + 鍒犻櫎 + </a-menu-item> + </a-menu> + <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 + <a-icon type="down"/> + </a-button> + </a-dropdown> + </div> + + <!-- table鍖哄煙-begin --> + <div> + <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> + <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ + selectedRowKeys.length }}</a>椤� + <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> + </div> + + <a-table + id="planClose" + ref="table" + size="middle" + :scroll="{x:'max-content',y:465}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + class="j-table-force-nowrap" + @change="handleTableChange"> + + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)">缂栬緫</a> + + <a-divider type="vertical"/> + <a-dropdown> + <a class="ant-dropdown-link">鏇村 <a-icon type="down"/></a> + <a-menu slot="overlay"> + <a-menu-item> + <a @click="handleDetail(record)">璇︽儏</a> + </a-menu-item> + <a-menu-item> + <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> + <a>鍒犻櫎</a> + </a-popconfirm> + </a-menu-item> + </a-menu> + </a-dropdown> + </span> + + </a-table> + </div> + + <mdcplanclose-modal ref="modalForm" @ok="modalFormOk"></mdcplanclose-modal> + </a-card> +</template> + +<script> + + import '@/assets/less/TableExpand.less' + import { mixinDevice } from '@/utils/mixin' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import MdcplancloseModal from './modules/MdcplancloseList/MdcplancloseModal' + + export default { + name: 'MdcplancloseList', + mixins: [JeecgListMixin, mixinDevice], + components: { + MdcplancloseModal + }, + data() { + return { + description: 'mdcPlanClose绠$悊椤甸潰', + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '绫诲瀷', + align: 'center', + dataIndex: 'planCloseType', + width: 500 + }, + { + title: '鏃堕棿绫诲瀷', + align: 'center', + dataIndex: 'planCloseTimeType', + width: 350 + }, + { + title: '鏃堕暱锛堝垎閽燂級', + align: 'center', + dataIndex: 'planCloseTimeLong', + width: 350 + }, + { + title: '澶囨敞', + align: 'center', + dataIndex: 'remark', + width: 380 + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 150, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: '/mdc/mdcPlanClose/list', + delete: '/mdc/mdcPlanClose/delete', + deleteBatch: '/mdc/mdcPlanClose/deleteBatch', + exportXlsUrl: '/mdc/mdcPlanClose/exportXls', + importExcelUrl: 'mdc/mdcPlanClose/importExcel' + + }, + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + importTemplate(fileName) { + var a = document.createElement('a') + a.href = '/static/璁″垝鍋滄満绠$悊.xls' + a.download = '璁″垝鍋滄満绠$悊.xls' + a.style.display = 'none' + document.body.appendChild(a) + a.click() + a.remove() + }, + initDictConfig() { + }, + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'string', value: 'planclosetype', text: '绫诲瀷', dictCode: '' }) + fieldList.push({ type: 'string', value: 'planclosetimetype', text: '鏃堕棿绫诲瀷', dictCode: '' }) + fieldList.push({ type: 'string', value: 'planclosetimelong', text: '鏃堕暱锛堝垎閽燂級', dictCode: '' }) + fieldList.push({ type: 'string', value: 'remark', text: '澶囨敞', dictCode: '' }) + this.superFieldList = fieldList + } + } + } +</script> +<style scoped> + @import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/mdc/base/mdcProcessQuantity.vue b/src/views/mdc/base/MdcProcessNumber.vue similarity index 100% rename from src/views/mdc/base/mdcProcessQuantity.vue rename to src/views/mdc/base/MdcProcessNumber.vue diff --git a/src/views/mdc/base/mdcPassRate.vue b/src/views/mdc/base/MdcQualificationRate.vue similarity index 100% rename from src/views/mdc/base/mdcPassRate.vue rename to src/views/mdc/base/MdcQualificationRate.vue diff --git a/src/views/mdc/base/mdcStandardProcessDuration.vue b/src/views/mdc/base/MdcStandardProcessTime.vue similarity index 100% rename from src/views/mdc/base/mdcStandardProcessDuration.vue rename to src/views/mdc/base/MdcStandardProcessTime.vue diff --git a/src/views/mdc/base/MdcUtilizationRateList.vue b/src/views/mdc/base/MdcUtilizationRateList.vue index e1c0abe..896efef 100644 --- a/src/views/mdc/base/MdcUtilizationRateList.vue +++ b/src/views/mdc/base/MdcUtilizationRateList.vue @@ -82,6 +82,18 @@ }, data() { return { + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [{ title: '绫诲埆', align: 'center', diff --git a/src/views/WorkshopSignage.vue b/src/views/mdc/base/MdcWorkshopSignage.vue similarity index 98% rename from src/views/WorkshopSignage.vue rename to src/views/mdc/base/MdcWorkshopSignage.vue index c803017..726eb37 100644 --- a/src/views/WorkshopSignage.vue +++ b/src/views/mdc/base/MdcWorkshopSignage.vue @@ -108,7 +108,7 @@ import VueDragResize from 'vue-drag-resize' import api from '@/api/mdc' import { getFileAccessHttpUrl } from '@/api/manage' - import EquipmentDetailModal from './mdc/base/modules/WorkshopSignage/EquipmentDetailModal' + import EquipmentDetailModal from './modules/WorkshopSignage/EquipmentDetailModal' import { message } from 'ant-design-vue' message.config({ @@ -452,7 +452,7 @@ <style scoped lang="less"> .full-screen-container { - background-image: url('../assets/Bj.jpg'); + background-image: url('../../../assets/Bj.jpg'); background-size: 100% 100%; color: #fff; diff --git a/src/views/mdc/base/MdcplancloseList.vue b/src/views/mdc/base/MdcplancloseList.vue deleted file mode 100644 index a90b63a..0000000 --- a/src/views/mdc/base/MdcplancloseList.vue +++ /dev/null @@ -1,204 +0,0 @@ -<template> - <a-card :bordered="false"> - <!-- 鏌ヨ鍖哄煙 --> - <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> - <a-row :gutter="24"> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="绫诲瀷"> - <a-input placeholder="璇疯緭鍏ョ被鍨�" v-model="queryParam.planCloseType"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鏃堕棿绫诲瀷"> - <a-select v-model="queryParam.planCloseTimeType" placeholder="璇烽�夋嫨鏃堕棿绫诲瀷"> - <a-select-option value="">璇烽�夋嫨</a-select-option> - <a-select-option value="澶�">澶�</a-select-option> - <a-select-option value="鍛�">鍛�</a-select-option> - <a-select-option value="鏈�">鏈�</a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> - <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> - <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> - </span> - </a-col> - </a-row> - </a-form> - </div> - <!-- 鏌ヨ鍖哄煙-END --> - - <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> - <a-button type="primary" icon="download" @click="importTemplate('璁″垝鍋滄満妯℃澘')">瀵煎叆妯℃澘</a-button> - <a-button type="primary" icon="download" @click="handleExportXls('璁″垝鍋滄満绠$悊')">瀵煎嚭</a-button> - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> - <a-button type="primary" icon="import">瀵煎叆</a-button> - </a-upload> - <!-- 楂樼骇鏌ヨ鍖哄煙 --> - <!--<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> - <a-dropdown v-if="selectedRowKeys.length > 0"> - <a-menu slot="overlay"> - <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>鍒犻櫎</a-menu-item> - </a-menu> - <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button> - </a-dropdown> - </div> - - <!-- table鍖哄煙-begin --> - <div> - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> - <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� - <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> - </div> - - <a-table - ref="table" - size="middle" - :scroll="{x:'max-content',y:465}" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - class="j-table-force-nowrap" - @change="handleTableChange"> - - <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> - - <a-divider type="vertical" /> - <a-dropdown> - <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> - <a-menu slot="overlay"> - <a-menu-item> - <a @click="handleDetail(record)">璇︽儏</a> - </a-menu-item> - <a-menu-item> - <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> - <a>鍒犻櫎</a> - </a-popconfirm> - </a-menu-item> - </a-menu> - </a-dropdown> - </span> - - </a-table> - </div> - - <mdcplanclose-modal ref="modalForm" @ok="modalFormOk"></mdcplanclose-modal> - </a-card> -</template> - -<script> - - import '@/assets/less/TableExpand.less' - import { mixinDevice } from '@/utils/mixin' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import MdcplancloseModal from './modules/MdcplancloseList/MdcplancloseModal' - - export default { - name: 'MdcplancloseList', - mixins:[JeecgListMixin, mixinDevice], - components: { - MdcplancloseModal - }, - data () { - return { - description: 'mdcPlanClose绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'绫诲瀷', - align:"center", - dataIndex: 'planCloseType', - width:500 - }, - { - title:'鏃堕棿绫诲瀷', - align:"center", - dataIndex: 'planCloseTimeType', - width:350 - }, - { - title:'鏃堕暱锛堝垎閽燂級', - align:"center", - dataIndex: 'planCloseTimeLong', - width:350 - }, - { - title:'澶囨敞', - align:"center", - dataIndex: 'remark', - width:380 - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:150, - scopedSlots: { customRender: 'action' } - } - ], - url: { - list: "/mdc/mdcPlanClose/list", - delete: "/mdc/mdcPlanClose/delete", - deleteBatch: "/mdc/mdcPlanClose/deleteBatch", - exportXlsUrl: "/mdc/mdcPlanClose/exportXls", - importExcelUrl: "mdc/mdcPlanClose/importExcel", - - }, - dictOptions:{}, - superFieldList:[], - } - }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - }, - }, - methods: { - importTemplate(fileName){ - var a = document.createElement("a"); - a.href = "/static/璁″垝鍋滄満绠$悊.xls"; - a.download = "璁″垝鍋滄満绠$悊.xls"; - a.style.display = "none"; - document.body.appendChild(a); - a.click(); - a.remove(); - }, - initDictConfig(){ - }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'string',value:'planclosetype',text:'绫诲瀷',dictCode:''}) - fieldList.push({type:'string',value:'planclosetimetype',text:'鏃堕棿绫诲瀷',dictCode:''}) - fieldList.push({type:'string',value:'planclosetimelong',text:'鏃堕暱锛堝垎閽燂級',dictCode:''}) - fieldList.push({type:'string',value:'remark',text:'澶囨敞',dictCode:''}) - this.superFieldList = fieldList - } - } - } -</script> -<style scoped> - @import '~@assets/less/common.less'; -</style> \ No newline at end of file diff --git a/src/views/mdc/base/WorkshopSignageEntrance.vue b/src/views/mdc/base/WorkshopSignageEntrance.vue new file mode 100644 index 0000000..1af14ee --- /dev/null +++ b/src/views/mdc/base/WorkshopSignageEntrance.vue @@ -0,0 +1,70 @@ +<template> + <div class="page-container"> + <a-list + :grid="{ gutter: [{xs: 0, sm: 24, md: 24, lg: 56, xl: 64, xxl: 80},20], xs: 1, sm: 2, md: 2, lg: 3, xl: 4, xxl: 4 }" + :data-source="workshopList"> + <a-list-item slot="renderItem" slot-scope="item, index"> + <div class="workshop-name" @click="navigateToWorkshopSignage(item.id)">{{item.workshopName}}</div> + </a-list-item> + </a-list> + + </div> +</template> + +<script> + import api from '@/api/mdc' + + export default { + name: 'WorkshopSignageEntrance', + data() { + return { + indexStyle: 1, + workshopList: [] + } + }, + created() { + this.getWorkshopListByApi() + }, + methods: { + /** + * 閫氳繃杞﹂棿Id璺宠浆鑷崇浉搴旇溅闂村ぇ灞忕湅鏉� + * @param id 杞﹂棿Id + */ + navigateToWorkshopSignage(id) { + const url = this.$router.resolve(`/MdcWorkshopSignage/${id}`).href + window.open(url, '_blank') + }, + /** + * 鑾峰彇杞﹂棿鍒楄〃 + */ + getWorkshopListByApi() { + api.getWorkshopListInHomePageApi().then(res => { + console.log('res', res) + if (res.result && res.result.length > 0) { + this.workshopList = res.result + } + }) + } + } + } +</script> + +<style lang="less" scoped> + .page-container { + padding: 30px 30px 0; + + .workshop-name { + width: 100%; + background: #fff; + padding: 55px 0; + border-radius: 20px; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: 30px; + cursor: pointer; + } + } + +</style> \ No newline at end of file diff --git a/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue b/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue index f6ae0f2..10b3f60 100644 --- a/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue +++ b/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue @@ -5,7 +5,7 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="5" :sm="5" :xs="5"> + <a-col :md="4" :sm="4" :xs="4"> <a-form-item label="椹卞姩绫诲瀷"> <a-auto-complete v-model="queryParam.driveType" @@ -17,7 +17,20 @@ </a-form-item> </a-col> - <a-col :md="7" :sm="7" :xs="7"> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绾у埆"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绾у埆" dictCode="device_level" v-model="queryParam.deviceLevel" + allow-clear/> + </a-form-item> + </a-col> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绉嶇被"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绉嶇被" dictCode="device_category" v-model="queryParam.deviceCategory" + allow-clear/> + </a-form-item> + </a-col> + + <a-col :md="5" :sm="5" :xs="5"> <a-form-item label="鏃堕棿"> <a-range-picker :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" @@ -33,6 +46,7 @@ <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-button type="primary" icon="printer" v-print="'#EfficiencyShift'" v-has="'deviceProcess:print'">鎵撳嵃</a-button> </a-space> </a-col> </a-row> diff --git a/src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue index 6a2918f..3b17e56 100644 --- a/src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue +++ b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue @@ -43,6 +43,7 @@ <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">瀵煎叆</a-button> </a-upload> + <a-button type="primary" icon="printer" v-print="'#DeviceList'" v-has="'holidayManagement:print'">鎵撳嵃</a-button> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> @@ -185,6 +186,18 @@ fixed:'right' } ], + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, url: { list: '/mdc/mdcVacationManagement/pageList', delete: '/mdc/mdcVacationManagement/deleteVacation', diff --git a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue index 0b18f26..43395c1 100644 --- a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue +++ b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue @@ -5,7 +5,7 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="5" :sm="5" :xs="5"> + <a-col :md="4" :sm="4" :xs="4"> <a-form-item label="椹卞姩绫诲瀷"> <a-auto-complete v-model="queryParam.driveType" @@ -16,7 +16,19 @@ /> </a-form-item> </a-col> - <a-col :md="7" :sm="7" :xs="7"> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绾у埆"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绾у埆" dictCode="device_level" v-model="queryParam.deviceLevel" + allow-clear/> + </a-form-item> + </a-col> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绉嶇被"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绉嶇被" dictCode="device_category" v-model="queryParam.deviceCategory" + allow-clear/> + </a-form-item> + </a-col> + <a-col :md="5" :sm="5" :xs="5"> <a-form-item label="鏃堕棿"> <a-range-picker :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" @@ -28,11 +40,14 @@ /> </a-form-item> </a-col> - <a-col :md="2" :sm="2" :xs="2"> + <a-col :md="4" :sm="4" :xs="4"> <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-button type="primary" icon="printer" v-print="'#EfficiencyShift'" v-has="'efficiencyShift:print'"> + 鎵撳嵃 + </a-button> </a-space> </a-col> </a-row> diff --git a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue index 2486fc5..9f9fd47 100644 --- a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue +++ b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue @@ -46,6 +46,8 @@ <!--<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">--> <!--<!–<a-button type="primary" icon="import">瀵煎叆</a-button>–>--> <!--</a-upload>--> + <a-button type="primary" icon="printer" v-print="'#DeviceList'" v-has="'overtimeManagement:print'">鎵撳嵃</a-button> + <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> @@ -148,12 +150,24 @@ queryParamPeople:{}, dataStartsoucre:[], scrollY:465, + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '璁惧缂栧彿', align: 'center', dataIndex: 'equipmentId', - width:150 + width:180 }, { title: '璁惧鍚嶇О', @@ -167,7 +181,7 @@ title: '鏃ユ湡', align: 'center', dataIndex: 'theDate', - width:150 + width:180 // scopedSlots:{customRender:'startTime'}, // customRender:(text,row,index) => { // return moment(text).format("YYYY-MM-DD HH:mm:ss") diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue index bac753b..e9f6724 100644 --- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue +++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue @@ -145,6 +145,18 @@ queryParamPeople:{}, dataStartsoucre:[], scrollY:465, + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '璁惧缂栧彿', diff --git a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue index 9e81036..0b9e19c 100644 --- a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue +++ b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue @@ -46,6 +46,8 @@ <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">瀵煎叆</a-button> </a-upload> + <a-button type="primary" icon="printer" v-print="'#DeviceList'" v-has="'unplannedDowntime:print'">鎵撳嵃</a-button> + <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> @@ -141,6 +143,18 @@ queryParamPeople:{}, dataStartsoucre:[], scrollY:465, + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '#', diff --git a/src/views/mdc/base/modules/deviceRepair/DeviceRepairList.vue b/src/views/mdc/base/modules/deviceRepair/DeviceRepairList.vue index 25fbb93..2a5c4e1 100644 --- a/src/views/mdc/base/modules/deviceRepair/DeviceRepairList.vue +++ b/src/views/mdc/base/modules/deviceRepair/DeviceRepairList.vue @@ -129,6 +129,18 @@ queryParamPeople:{}, dataStartsoucre:[], scrollY:465, + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '璁惧缂栧彿', diff --git a/src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue b/src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue index 02e63d1..12fb629 100644 --- a/src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue +++ b/src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue @@ -5,7 +5,7 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="5" :sm="5"> + <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'> @@ -14,7 +14,7 @@ </a-select> </a-form-item> </a-col> - <a-col :md="5" :sm="5"> + <a-col :md="4" :sm="4"> <a-form-item label="椹卞姩绫诲瀷"> <a-auto-complete v-model="queryParam.driveType" @@ -30,8 +30,50 @@ <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates" :allowClear="false"/> </a-form-item> </a-col> - <a-col :md="8" :sm="8" style="display: flex;align-items: flex-start;-webkit-align-items: flex-start;justify-content: space-between;"> - <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;margin-left: 24px"> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绾у埆"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绾у埆" dictCode="device_level" v-model="queryParam.deviceLevel" + allow-clear/> + </a-form-item> + </a-col> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绉嶇被"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绉嶇被" dictCode="device_category" + v-model="queryParam.deviceCategory" + allow-clear/> + </a-form-item> + </a-col> + <!--<a-col :md="8" :sm="8" style="display: flex;align-items: flex-start;-webkit-align-items: flex-start;justify-content: space-between;">--> + <!--<table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;margin-left: 24px">--> + <!--<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>--> + <!--<!–<td style="text-align:center;"><div style="width: 55px;height: 15px;background-color: #e8ff37;display:inline-block"></div></td>–>--> + <!--<!–<td style="text-align:center;"><div style="width: 55px;height: 15px;background-color: #99ff4e;display:inline-block"></div></td>–>--> + <!--</tr>--> + <!--</table>--> + <!--</a-col>--> + </a-row> + <a-row :gutter="24" type="flex" align="middle"> + <a-col :md="24" :sm="24" :xs="24" + style="display: flex;justify-content: space-between;align-items: flex-start"> + <div> + <a-space style="margin-right: 20px"> + <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-button type="primary" icon="printer" v-print="'#EfficiencyPO'" + v-has="'EfficiencyPO:print'">鎵撳嵃 + </a-button> + </a-space> + <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" + @change="efficiencyOptionsOnChange"/> + </div> + <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> <tr> <td v-for="(item, index) in identifying">{{item.title}}</td> </tr> @@ -39,24 +81,21 @@ <td style="text-align:center;" v-for="(item, index) in identifying"> <div class="identifyingclass" :style="{background: item.color}"></div> </td> - <!--<td style="text-align:center;"><div style="width: 55px;height: 15px;background-color: #e8ff37;display:inline-block"></div></td>--> - <!--<td style="text-align:center;"><div style="width: 55px;height: 15px;background-color: #99ff4e;display:inline-block"></div></td>--> </tr> </table> </a-col> - </a-row> - <a-row :gutter="24" type="flex" align="middle"> - <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="19" :sm="19"> - <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" - @change="efficiencyOptionsOnChange"/> - </a-col> + <!--<a-col :md="6" :sm="6">--> + <!--<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-button type="primary" icon="printer" v-print="'#EfficiencyPO'" v-has="'EfficiencyPO:print'">鎵撳嵃</a-button>--> + <!--</a-space>--> + <!--</a-col>--> + <!--<a-col :md="18" :sm="18">--> + <!--<a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions"--> + <!--@change="efficiencyOptionsOnChange"/>--> + <!--</a-col>--> </a-row> </a-form> </div> diff --git a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue index cc8458f..f7227f6 100644 --- a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue +++ b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue @@ -6,7 +6,7 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="5" :sm="5"> + <a-col :md="4" :sm="4"> <a-form-item label="璁惧绫诲瀷"> <a-select placeholder="璇烽�夋嫨璁惧绫诲瀷" :triggerChange="true" v-model="queryParam.equipmentType" :allowClear="true"> @@ -16,7 +16,7 @@ </a-select> </a-form-item> </a-col> - <a-col :md="5" :sm="5"> + <a-col :md="4" :sm="4"> <a-form-item label="椹卞姩绫诲瀷"> <a-auto-complete v-model="queryParam.driveType" @@ -32,16 +32,37 @@ v-model="dates" :allowClear="false"/> </a-form-item> </a-col> - <a-col :md="8" :sm="8" - style="display: flex;align-items: flex-start;-webkit-align-items: flex-start;justify-content: space-between;"> - <!--<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-button type="primary" icon="printer" v-print="'#Efficiency'" v-has="'efficiency:print'">鎵撳嵃--> - <!--</a-button>--> - <!--</a-space>--> - <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;margin-left: 24px"> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绾у埆"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绾у埆" dictCode="device_level" v-model="queryParam.deviceLevel" + allow-clear/> + </a-form-item> + </a-col> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绉嶇被"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绉嶇被" dictCode="device_category" + v-model="queryParam.deviceCategory" + allow-clear/> + </a-form-item> + </a-col> + </a-row> + + <a-row :gutter="24" type="flex" align="middle"> + <a-col :md="24" :sm="24" :xs="24" + style="display: flex;justify-content: space-between;align-items: flex-start"> + <div> + <a-space style="margin-right: 20px"> + <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-button type="primary" icon="printer" v-print="'#Efficiency'" + v-has="'efficiency:print'">鎵撳嵃 + </a-button> + </a-space> + <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" + @change="efficiencyOptionsOnChange"/> + </div> + <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> <tr> <td v-for="(item, index) in identifying">{{item.title}}</td> </tr> @@ -49,26 +70,22 @@ <td style="text-align:center;" v-for="(item, index) in identifying"> <div class="identifyingclass" :style="{background: item.color}"></div> </td> - <!--<td style="text-align:center;"><div style="width: 55px;height: 15px;background-color: #e8ff37;display:inline-block"></div></td>--> - <!--<td style="text-align:center;"><div style="width: 55px;height: 15px;background-color: #99ff4e;display:inline-block"></div></td>--> </tr> </table> </a-col> - </a-row> - <a-row :gutter="24" type="flex" align="middle"> - <a-col :md="6" :sm="6"> - <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-button type="primary" icon="printer" v-print="'#Efficiency'" v-has="'efficiency:print'">鎵撳嵃 - </a-button> - </a-space> - </a-col> - <a-col :md="18" :sm="18"> - <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" - @change="efficiencyOptionsOnChange"/> - </a-col> + <!--<a-col :md="6" :sm="6">--> + <!--<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-button type="primary" icon="printer" v-print="'#Efficiency'" v-has="'efficiency:print'">鎵撳嵃--> + <!--</a-button>--> + <!--</a-space>--> + <!--</a-col>--> + <!--<a-col :md="18" :sm="18">--> + <!--<a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions"--> + <!--@change="efficiencyOptionsOnChange"/>--> + <!--</a-col>--> </a-row> </a-form> </div> diff --git a/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue b/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue index 457d549..3f7e5b5 100644 --- a/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue +++ b/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue @@ -4,112 +4,142 @@ <!-- 鏌ヨ鍖哄煙 --> <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="5" :sm="5" > - <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"> - <a-form-item label="椹卞姩绫诲瀷"> - <a-auto-complete - v-model="queryParam.driveType" - :data-source="driveTypeList" - placeholder="璇烽�夋嫨椹卞姩绫诲瀷" - :filter-option="filterOption" - /> - </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" :allowClear="false"/> - </a-form-item> - </a-col> - <a-col :md="4" :sm="4" :xs="4"> - <a-form-item label="鐝埗"> - <a-select v-model="queryParam.shiftId" placeholder="璇烽�夋嫨鐝埗" - @change="initShiftSubList" :allowClear = "allowClear"> - <a-select-option v-for="(em,index) in shiftList" :key="index" :value="em.value"> - {{ em.label }} - </a-select-option> - </a-select> - </a-form-item> - </a-col> - <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"> - {{ em.label }} - </a-select-option> - </a-select> - </a-form-item> - </a-col> - <!--<a-col :md="7" :sm="7" :xs="7">--> - <!--<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-row> - <a-row :gutter="24" type="flex" align="middle"> - <a-col :md="24" :sm="24" :xs="24" style="display: flex;justify-content: space-between;align-items: flex-start"> - <div> - <a-space style="margin-right: 20px"> - <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-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" - @change="efficiencyOptionsOnChange"/> - </div> - <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> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <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="4" :sm="4"> + <a-form-item label="椹卞姩绫诲瀷"> + <a-auto-complete + v-model="queryParam.driveType" + :data-source="driveTypeList" + placeholder="璇烽�夋嫨椹卞姩绫诲瀷" + :filter-option="filterOption" + /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="6" :xs="6"> + <a-form-item label="鏃堕棿"> + <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" + v-model="dates" :allowClear="false"/> + </a-form-item> + </a-col> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="鐝埗"> + <a-select v-model="queryParam.shiftId" placeholder="璇烽�夋嫨鐝埗" + @change="initShiftSubList" :allowClear="allowClear"> + <a-select-option v-for="(em,index) in shiftList" :key="index" :value="em.value"> + {{ em.label }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <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"> + {{ em.label }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="2" :sm="2"> + <a + @click="toggleSearchStatus=!toggleSearchStatus" + style="display:block;height: 32px;display: flex;align-items: center" + > + {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }} + <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> + </a> + </a-col> + </a-row> + + <a-row :gutter="24" v-if="toggleSearchStatus"> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绾у埆"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绾у埆" dictCode="device_level" v-model="queryParam.deviceLevel" + allow-clear/> + </a-form-item> + </a-col> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绉嶇被"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绉嶇被" dictCode="device_category" + v-model="queryParam.deviceCategory" + allow-clear/> + </a-form-item> + </a-col> + </a-row> + + <a-row :gutter="24" type="flex" align="middle"> + <a-col :md="24" :sm="24" :xs="24" + style="display: flex;justify-content: space-between;align-items: flex-start"> + <div> + <a-space style="margin-right: 20px"> + <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-button type="primary" icon="printer" v-print="'#EfficiencyShift'" + v-has="'efficiencyShiftReport:print'">鎵撳嵃 + </a-button> + </a-space> + <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" + @change="efficiencyOptionsOnChange"/> + </div> + <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: 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>--> + <!--<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> <a-spin :spinning="spinning"> <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" v-if="dataList.length>0"> + <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap" + v-if="dataList.length>0"> <thead> <tr class="thead fixed equipname"> <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: 162px; max-width: 162px;width: 162px;">璁惧鍚嶇О</th> - <th class="thgu dong6 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧绫诲瀷</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: 162px; max-width: 162px;width: 162px;">璁惧鍚嶇О + </th> + <th class="thgu dong6 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧绫诲瀷 + </th> <th class="thgu dong7 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">鐝</th> <template v-for="(tableHead, index) in tableHeads"> - <th class="timeth" :colspan="checkedList.length">{{tableHead}}</th> + <th class="timeth" :colspan="checkedList.length">{{tableHead}}</th> </template> <!--average--> <!--<th class="thgu dong4 name" rowspan="2" style="min-width: 100px; max-width: 150px;width: 150px;">骞冲潎鍊�(鐝鍒╃敤鐜�)</th>--> @@ -133,22 +163,28 @@ <tbody> <tr class="mathData" v-for="(item, index) in dataList"> <template v-if="item.level1!=='鍚堣'&&item.level1!=='骞冲潎鍊�'"> - <td class="tdgu kaitou" :rowspan="item.level1span" :class="{hidden: item.level1dis,noExl:item.level1dis}" v-show="!item.level1dis"> + <td class="tdgu kaitou" :rowspan="item.level1span" + :class="{hidden: item.level1dis,noExl:item.level1dis}" v-show="!item.level1dis"> <div class="wenzi"> - {{item.level1}} - </div></td> - <td class="tdgu1 kaitou" :rowspan="item.level2span" :class="{hidden: item.level2dis,noExl:item.level2dis}" v-show="!item.level2dis"> + {{item.level1}} + </div> + </td> + <td class="tdgu1 kaitou" :rowspan="item.level2span" + :class="{hidden: item.level2dis,noExl:item.level2dis}" v-show="!item.level2dis"> <div class="wenzi"> {{item.level2}} </div> </td> - <td class="tdgu2 kaitou" :rowspan="item.level3span" :class="{hidden: item.level3dis,noExl:item.level3dis}" v-show="!item.level3dis"> + <td class="tdgu2 kaitou" :rowspan="item.level3span" + :class="{hidden: item.level3dis,noExl:item.level3dis}" v-show="!item.level3dis"> <div class="wenzi"> {{item.level3}} </div> </td> <td class="tdgu3 kaitou">{{item.equipmentId}}</td> - <td class="tdgu4 kaitou" style="min-width: 162px; max-width: 162px;width: 162px;">{{item.equipmentName}}</td> + <td class="tdgu4 kaitou" style="min-width: 162px; max-width: 162px;width: 162px;"> + {{item.equipmentName}} + </td> <td class="tdgu5 kaitou">{{item.equipmentType}}</td> <td class="tdgu6 kaitou">{{item.shiftSubName}}</td> </template> @@ -208,18 +244,18 @@ components: {}, data() { return { - typeTree:"", - typeParent:1, - typeEquipment:1, - allowClear:true, - allowClearSu:true, + typeTree: '', + typeParent: 1, + typeEquipment: 1, + allowClear: true, + allowClearSu: true, dates: [], - selectList:[], - driveTypeList:[], + selectList: [], + driveTypeList: [], identifying: [], queryParam: {}, - queryParamEquip:{}, - queryParamPeople:{}, + queryParamEquip: {}, + queryParamPeople: {}, efficiencyOptions: [ { label: '鐝鍒╃敤鐜�', value: 'lyl' }, // { label: '鏁呴殰鐜�', value: 'gzl' }, @@ -244,28 +280,29 @@ tableHeads: [], shiftList: [], shiftSubList: [], - spinning:false + spinning: false, + toggleSearchStatus: false } }, - props: { nodeTree: '', Type:'',nodePeople: '' }, + props: { nodeTree: '', Type: '', nodePeople: '' }, created() { this.initShiftList() this.showIdentifying() this.dates = [moment().subtract('days', 7), moment().subtract('days', 1)] this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') - this.queryParam.typeTree = "1" - this.loadData(); + this.queryParam.typeTree = '1' + this.loadData() this.queryGroup() this.getDriveTypeByApi() }, watch: { - Type(valmath){ - this.dataList = []; + Type(valmath) { + this.dataList = [] this.queryParam.typeTree = valmath }, nodeTree(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢 - console.log(val); + console.log(val) if (JSON.stringify(val) != '{}') { if (val.equipmentId != null) { this.queryParamEquip.parentId = '' @@ -277,7 +314,7 @@ this.searchQuery() } }, - nodePeople(val){ + nodePeople(val) { if (JSON.stringify(val) != '{}') { if (val.equipmentId != null) { this.queryParamPeople.parentId = val.equipmentId @@ -310,67 +347,67 @@ } else { return '0' } - }, + } }, methods: { - checkSameData(dataList){ - let cache = {}; //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 - let indices = []; //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� - dataList.map((item,index)=>{ - let level1 = item.level1; - let _index = cache[level1]; - if(_index!==undefined){ + checkSameData(dataList) { + let cache = {} //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 + let indices = [] //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� + dataList.map((item, index) => { + let level1 = item.level1 + let _index = cache[level1] + if (_index !== undefined) { indices[_index].push(index) - }else{ + } else { cache[level1] = indices.length indices.push([index]) } }) - let result = []; - indices.map((item)=>{ - item.map((index)=>{ + let result = [] + indices.map((item) => { + item.map((index) => { result.push(dataList[index]) }) }) this.dataList = result }, - checkSameData1(dataList){ - let cache = {}; //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 - let indices = []; //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� - dataList.map((item,index)=>{ - let level2 = item.level2; - let _index = cache[level2]; - if(_index!==undefined){ + checkSameData1(dataList) { + let cache = {} //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 + let indices = [] //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� + dataList.map((item, index) => { + let level2 = item.level2 + let _index = cache[level2] + if (_index !== undefined) { indices[_index].push(index) - }else{ + } else { cache[level2] = indices.length indices.push([index]) } }) - let result = []; - indices.map((item)=>{ - item.map((index)=>{ + let result = [] + indices.map((item) => { + item.map((index) => { result.push(dataList[index]) }) }) this.dataList = result }, - checkSameData2(dataList){ - let cache = {}; //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 - let indices = []; //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� - dataList.map((item,index)=>{ - let level3 = item.level3; - let _index = cache[level3]; - if(_index!==undefined){ + checkSameData2(dataList) { + let cache = {} //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 + let indices = [] //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� + dataList.map((item, index) => { + let level3 = item.level3 + let _index = cache[level3] + if (_index !== undefined) { indices[_index].push(index) - }else{ + } else { cache[level3] = indices.length indices.push([index]) } }) - let result = []; - indices.map((item)=>{ - item.map((index)=>{ + let result = [] + indices.map((item) => { + item.map((index) => { result.push(dataList[index]) }) }) @@ -379,30 +416,30 @@ // 鍚堝苟 combineCell() { console.log(this.dataList) - let list =this.dataList; + let list = this.dataList for (let field in list[0]) { - var k = 0; + var k = 0 while (k < list.length) { - list[k][field + 'span'] = 1; - list[k][field + 'dis'] = false; + list[k][field + 'span'] = 1 + list[k][field + 'dis'] = false for (var i = k + 1; i <= list.length - 1; i++) { if (list[k][field] == list[i][field] && list[k][field] != '') { - list[k][field + 'span']++; - list[k][field + 'dis'] = false; - list[i][field + 'span'] = 1; - list[i][field + 'dis'] = true; + list[k][field + 'span']++ + list[k][field + 'dis'] = false + list[i][field + 'span'] = 1 + list[i][field + 'dis'] = true } else { - break; + break } } - k = i; + k = i } } - return list; + return list }, - disabledDate(current){ + disabledDate(current) { //Can not slect days before today and today - return current && current > moment().subtract('days', 1); + return current && current > moment().subtract('days', 1) }, initDeviceType(deviceList) { let dictCode = 'mdc_equipmentType' @@ -440,17 +477,17 @@ }, initShiftSubList(val) { //姣忔閲嶆柊閫夋嫨鐝埗鏃剁彮娆℃竻绌轰笖鏄剧ずplaceholder鍐呭 - this.queryParam.shiftSubId = undefined; + this.queryParam.shiftSubId = undefined getAction(this.url.initShiftSubList, { shiftId: val }).then((res) => { if (res.success) { - this.shiftSubList = res.result; + this.shiftSubList = res.result } }) }, initShiftSubListChange() { getAction(this.url.initShiftSubList, { shiftId: this.queryParam.shiftId }).then((res) => { if (res.success) { - this.shiftSubList = res.result; + this.shiftSubList = res.result } }) }, @@ -483,27 +520,27 @@ if (index < 0) { // this.$message.warn('涓嶈兘鍙栨秷鏌ヨ鍒╃敤鐜�') this.$notification.warning({ - message:'娑堟伅', - description:"涓嶈兘鍙栨秷鏌ヨ鐝鍒╃敤鐜�" + message: '娑堟伅', + description: '涓嶈兘鍙栨秷鏌ヨ鐝鍒╃敤鐜�' }) return false } this.checkedList = checkedList }, searchQuery() { - if(this.queryParam.typeTree == "1"){ - this.queryParam.parentId = this.queryParamEquip.parentId + if (this.queryParam.typeTree == '1') { + this.queryParam.parentId = this.queryParamEquip.parentId this.queryParam.equipmentId = this.queryParamEquip.equipmentId - }else{ + } else { this.queryParam.parentId = this.queryParamPeople.parentId - this.queryParam.equipmentId = "" + this.queryParam.equipmentId = '' } this.loadData() // this.onClearSelected() }, searchReset() { this.typeTree = this.queryParam.typeTree - this.typeParent = this.queryParam.parentId + this.typeParent = this.queryParam.parentId this.typeEquipment = this.queryParam.equipmentId this.queryParam = {} this.dates = [moment().subtract('days', 7), moment().subtract('days', 1)] @@ -511,12 +548,12 @@ this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.typeTree = this.typeTree this.queryParam.parentId = this.typeParent - this.queryParam.equipmentId = this.typeEquipment + this.queryParam.equipmentId = this.typeEquipment this.loadData() // this.onClearSelected() }, loadData() { - this.spinning=true + this.spinning = true this.tableHeads = [] this.dataList = [] getAction(this.url.list, this.queryParam).then(res => { @@ -532,11 +569,11 @@ this.checkSameData(this.dataList) this.checkSameData1(this.dataList) this.checkSameData2(this.dataList) - this.combineCell(); + this.combineCell() // this.initDeviceType(this.dataList) } - }).finally(()=>{ - this.spinning=false + }).finally(() => { + this.spinning = false }) }, queryGroup() { @@ -561,9 +598,9 @@ /** * 璋冪敤鎺ュ彛鑾峰彇鎺у埗绯荤粺绫诲瀷 */ - getDriveTypeByApi(){ - api.getDriveTypeApi().then((res)=>{ - this.driveTypeList=res.result.map(item=>item.value) + getDriveTypeByApi() { + api.getDriveTypeApi().then((res) => { + this.driveTypeList = res.result.map(item => item.value) }) }, @@ -576,147 +613,157 @@ filterOption(input, option) { return ( option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 - ); - }, + ) + } } } </script> <style scoped> - .table2{ + .table2 { width: 100%; height: 100%; overflow: auto; } + .table2 thead tr th:first-child, - .table tbody tr .tdgu{ + .table tbody tr .tdgu { position: sticky; left: 0; z-index: 1; } - .table tbody tr .wenzi{ + + .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{ + + .table tbody tr .kaitou { z-index: 1; background-color: white; } - .table tbody tr .tdgu1{ + + .table tbody tr .tdgu1 { position: sticky; left: 50px; z-index: 2; } - .table tbody tr .tdgu2{ + + .table tbody tr .tdgu2 { position: sticky; left: 100px; z-index: 2; } - .table tbody tr .tdgu3{ + + .table tbody tr .tdgu3 { position: sticky; left: 150px; z-index: 2; } - .table tbody tr .tdgu4{ + + .table tbody tr .tdgu4 { position: sticky; left: 250px; z-index: 2; } - .table tbody tr .tdgu5{ + + .table tbody tr .tdgu5 { position: sticky; left: 412px; z-index: 2; } - .table tbody tr .tdgu6{ + + .table tbody tr .tdgu6 { position: sticky; left: 512px; z-index: 2; } .table2 thead tr .timeth, - .table2 thead tr .thgu { + .table2 thead tr .thgu { position: sticky; - top:0; + top: 0; z-index: 3; } - .table2 thead .gudingth th{ + .table2 thead .gudingth th { position: sticky; top: 32px; z-index: 2; } - .table2 thead .equipname .name{ + .table2 thead .equipname .name { z-index: 3; } - .table2 thead .equipname .dong1{ + .table2 thead .equipname .dong1 { z-index: 4; left: 0; } - .table2 thead .equipname .dong2{ + .table2 thead .equipname .dong2 { z-index: 5; left: 50px; } - .table2 thead .equipname .dong3{ + .table2 thead .equipname .dong3 { z-index: 5; left: 100px; } - .table2 thead .equipname .dong4{ + .table2 thead .equipname .dong4 { z-index: 5; left: 150px; } - .table2 thead .equipname .dong5{ + + .table2 thead .equipname .dong5 { z-index: 5; left: 250px; } - .table2 thead .equipname .dong6{ + .table2 thead .equipname .dong6 { z-index: 5; left: 412px; } - .table2 thead .equipname .dong7{ + .table2 thead .equipname .dong7 { z-index: 6; left: 512px; } - #EfficiencyShift{ + #EfficiencyShift { overflow: hidden; } - @media screen and (min-width: 1920px){ - #EfficiencyShift{ - height: 670px!important; + @media screen and (min-width: 1920px) { + #EfficiencyShift { + height: 670px !important; } } - @media screen and (min-width: 1680px) and (max-width: 1920px){ - #EfficiencyShift{ - height: 670px!important; + @media screen and (min-width: 1680px) and (max-width: 1920px) { + #EfficiencyShift { + height: 670px !important; } } - @media screen and (min-width: 1400px) and (max-width: 1680px){ - #EfficiencyShift{ - height: 522px!important; + @media screen and (min-width: 1400px) and (max-width: 1680px) { + #EfficiencyShift { + height: 522px !important; } } - @media screen and (min-width: 1280px) and (max-width: 1400px){ - #EfficiencyShift{ - height: 414px!important; + @media screen and (min-width: 1280px) and (max-width: 1400px) { + #EfficiencyShift { + height: 414px !important; } } - @media screen and (max-width: 1280px){ - #EfficiencyShift{ - height: 414px!important; + @media screen and (max-width: 1280px) { + #EfficiencyShift { + height: 414px !important; } } diff --git a/src/views/mdc/base/modules/mdcPassRate/mdcPassRateList.vue b/src/views/mdc/base/modules/mdcPassRate/mdcPassRateList.vue index f466042..1a9d6b2 100644 --- a/src/views/mdc/base/modules/mdcPassRate/mdcPassRateList.vue +++ b/src/views/mdc/base/modules/mdcPassRate/mdcPassRateList.vue @@ -46,6 +46,8 @@ <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">瀵煎叆</a-button> </a-upload> + <a-button type="primary" icon="printer" v-print="'#DeviceList'" v-has="'passRate:print'">鎵撳嵃</a-button> + <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> @@ -143,6 +145,18 @@ queryParamPeople:{}, dataStartsoucre:[], scrollY:465, + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '璁惧缂栧彿', diff --git a/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue b/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue index 5892c14..8d291ab 100644 --- a/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue +++ b/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue @@ -46,6 +46,8 @@ <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">瀵煎叆</a-button> </a-upload> + <a-button type="primary" icon="printer" v-print="'#DeviceList'" v-has="'processQuantity:print'">鎵撳嵃</a-button> + <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> @@ -142,6 +144,18 @@ queryParamPeople:{}, dataStartsoucre:[], scrollY:465, + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '璁惧缂栧彿', diff --git a/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue b/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue index 41f7c37..55b62c7 100644 --- a/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue +++ b/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue @@ -32,6 +32,8 @@ <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">瀵煎叆</a-button> </a-upload> + <a-button type="primary" icon="printer" v-print="'#DeviceList'" v-has="'standardProcessDuration:print'">鎵撳嵃</a-button> + <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> @@ -122,6 +124,18 @@ queryParamPeople:{}, dataStartsoucre:[], scrollY:465, + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 30, + pageSizeOptions: ['30', '50', '100'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, columns: [ { title: '璁惧缂栧彿', diff --git a/src/views/system/ProductionManager.vue b/src/views/system/ProductionManager.vue index b1e3d56..3d43e95 100644 --- a/src/views/system/ProductionManager.vue +++ b/src/views/system/ProductionManager.vue @@ -93,6 +93,9 @@ <a-tab-pane tab="鍩烘湰淇℃伅" key="1"> <a-card :bordered="false" v-if="selectedKeys.length>0"> <a-form-model ref="form" :model="model" :rules="validatorRules"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionCode" label="杞﹂棿缂栧彿"> + <a-input placeholder="璇疯緭鍏ヤ骇绾�/杞﹂棿缂栧彿" v-model="model.productionCode"/> + </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionName" label="杞﹂棿鍚嶇О"> <a-input placeholder="璇疯緭鍏ヤ骇绾�/杞﹂棿鍚嶇О" v-model="model.productionName"/> </a-form-model-item> diff --git a/src/views/system/modules/ProductionManager/ProductionModal.vue b/src/views/system/modules/ProductionManager/ProductionModal.vue index e5d1dc7..c300b70 100644 --- a/src/views/system/modules/ProductionManager/ProductionModal.vue +++ b/src/views/system/modules/ProductionManager/ProductionModal.vue @@ -15,6 +15,15 @@ <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" + label="杞﹂棿缂栫爜" + prop="productionCode" + :hidden="false" + hasFeedback > + <a-input id="productionCode" placeholder="璇疯緭鍏ヤ骇绾�/杞﹂棿缂栧彿" v-model="model.productionCode"/> + </a-form-model-item> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" label="杞﹂棿鍚嶇О" prop="productionName" :hidden="false" diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue index 5d5f949..a1f4328 100644 --- a/src/views/system/modules/UserModal.vue +++ b/src/views/system/modules/UserModal.vue @@ -278,6 +278,14 @@ /> </a-form-model-item> + <a-form-model-item label="韬唤" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-model="model.userType"> + <a-radio :value="1">鏅�氱敤鎴�</a-radio> + <a-radio :value="2">宸ユ涓荤</a-radio> + <a-radio :value="3">杞﹂棿涓荤</a-radio> + <a-radio :value="4">鍏徃涓荤</a-radio> + </a-radio-group> + </a-form-model-item> <!--<a-form-model-item label="宸ヤ綔娴佸紩鎿�" :labelCol="labelCol" :wrapperCol="wrapperCol">--> <!--<j-dict-select-tag v-model="model.activitiSync" placeholder="璇烽�夋嫨鏄惁鍚屾宸ヤ綔娴佸紩鎿�" :type="'radio'" dictCode="activiti_sync"/>--> <!--</a-form-model-item>--> @@ -359,7 +367,6 @@ { validator: this.validateWorkNo }], telephone: [{ pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '璇疯緭鍏ユ纭殑搴ф満鍙风爜' }], teamId: [{ required: false, message: '璇风淮鎶ょ彮缁�' }] - }, departIdShow: false, title: '鎿嶄綔', -- Gitblit v1.9.3