1、设备事故登记表以及三不放过原则分析报表导出及批量打印功能
2、调整首页看板及图表样式
| | |
| | | <!--<a href="https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/">Vue Antd</a>--> |
| | | <!--</div>--> |
| | | <div class="copyright" |
| | | :style="{background:$route.meta.title==='é¦é¡µ'?'#fff':''}"> |
| | | :style="{background:$route.meta.title==='é¦é¡µ'?'#FEFEFE':''}"> |
| | | Copyright |
| | | <a-icon type="copyright"/> |
| | | 2024 <span>2015-2025 çµç§æºè½</span> |
| | |
| | | |
| | | <!-- layout content --> |
| | | <a-layout-content |
| | | :style="{ height: '100%', paddingTop: fixedHeader ? '59px' : '0' ,background: $route.meta.title=='é¦é¡µ'?'#fff':''}"> |
| | | :style="{ height: '100%', paddingTop: fixedHeader ? '59px' : '0' ,background: $route.meta.title=='é¦é¡µ'?'#FEFEFE':''}"> |
| | | <slot></slot> |
| | | </a-layout-content> |
| | | |
| | |
| | | if (res.success && res.result) { |
| | | this.techConditionData = [ |
| | | { |
| | | value: res.result.jszt.find(item => item.code === 'QUALIFIED').value, |
| | | value: res.result.jszt.length > 0 ? res.result.jszt.find(item => item.code === 'QUALIFIED').value : 0, |
| | | name: 'åæ ¼', |
| | | technologyStatus: 'QUALIFIED' |
| | | }, |
| | | { |
| | | value: res.result.jszt.find(item => item.code === 'PROHIBITED').value, |
| | | value: res.result.jszt.length > 0 ? res.result.jszt.find(item => item.code === 'PROHIBITED').value : 0, |
| | | name: 'ç¦ç¨', |
| | | technologyStatus: 'PROHIBITED' |
| | | }, |
| | | { |
| | | value: res.result.jszt.find(item => item.code === 'RESTRICTED').value, |
| | | value: res.result.jszt.length > 0 ? res.result.jszt.find(item => item.code === 'RESTRICTED').value : 0, |
| | | name: 'éç¨', |
| | | technologyStatus: 'RESTRICTED' |
| | | } |
| | | ] |
| | | this.warrantyMalfunctionData = [ |
| | | { value: res.result.bxqk.find(item => item.code === 'bx').value, name: 'æ¥ä¿®', code: 'bx' }, |
| | | { value: res.result.bxqk.find(item => item.code === 'stop').value, name: 'åæº', code: 'stop' }, |
| | | { value: res.result.bxqk.find(item => item.code === 'run').value, name: 'è¿è¡', code: 'run' } |
| | | { |
| | | value: res.result.bxqk.length > 0 ? res.result.bxqk.find(item => item.code === 'bx').value : 0, |
| | | name: 'æ¥ä¿®', |
| | | code: 'bx' |
| | | }, |
| | | { |
| | | value: res.result.bxqk.length > 0 ? res.result.bxqk.find(item => item.code === 'stop').value : 0, |
| | | name: 'åæº', |
| | | code: 'stop' |
| | | }, |
| | | { |
| | | value: res.result.bxqk.length > 0 ? res.result.bxqk.find(item => item.code === 'run').value : 0, |
| | | name: 'è¿è¡', |
| | | code: 'run' |
| | | } |
| | | ] |
| | | this.techConditionChartRequireFinished = true |
| | | this.warrantyMalfunctionChartRequireFinished = true |
| | |
| | | icon: 'roundRect', |
| | | itemGap: 15, |
| | | textStyle: { |
| | | color: 'inherit', |
| | | color: 'rgba(0,0,0,.45)', |
| | | fontSize: 14, |
| | | padding: [0, 0, 0, 0] |
| | | }, |
| | |
| | | color: [ |
| | | '#686869', |
| | | '#AA6349', |
| | | '#EAEA7C', |
| | | '#FFFF88', |
| | | '#5D975D' |
| | | ], |
| | | label: { |
| | | position: 'outside', |
| | | show: true, |
| | | color: 'inherit', |
| | | color: 'rgba(0,0,0,.45)', |
| | | // textBorderColor: 'inherit', |
| | | // textBorderWidth: 1, |
| | | fontSize: 16, |
| | |
| | | labelLine: { |
| | | show: true, |
| | | length2: 10, |
| | | length: 10 |
| | | length: 10, |
| | | lineStyle: { |
| | | color: 'rgba(0,0,0,.45)' |
| | | } |
| | | }, |
| | | data: this.runningStateData |
| | | } |
| | |
| | | drawEfficiencyChart() { |
| | | const colorArray = [ |
| | | { |
| | | top: '#79CEAA', |
| | | bottom: '#79CEAA' |
| | | top: '#EA967B', |
| | | bottom: '#F8E18B' |
| | | }, |
| | | { |
| | | top: '#F589A2', |
| | | bottom: '#F589A2' |
| | | top: '#62AC75', |
| | | bottom: '#A8D07C' |
| | | }, |
| | | { |
| | | top: '#6FBF9D', |
| | | bottom: '#6FBF9D' |
| | | top: '#32ACBF', |
| | | bottom: '#7BCAC5' |
| | | }, |
| | | { |
| | | top: '#66DFE2', |
| | | bottom: '#66DFE2' |
| | | }, { |
| | | top: '#A7F0C1', |
| | | bottom: '#A7F0C1' |
| | | }, |
| | | { |
| | | top: '#FAE893', |
| | | bottom: '#FAE893' |
| | | }, |
| | | { |
| | | top: '#F7B7A0', |
| | | bottom: '#F7B7A0' |
| | | top: '#7196CE', |
| | | bottom: '#8DCCEF' |
| | | } |
| | | ] |
| | | const data = this.efficiencyData |
| | |
| | | icon: 'roundRect', |
| | | itemGap: 15, |
| | | textStyle: { |
| | | color: 'inherit', |
| | | color: 'rgba(0,0,0,.45)', |
| | | fontSize: 14, |
| | | padding: [0, 0, 0, 0] |
| | | }, |
| | |
| | | label: { |
| | | position: 'outside', |
| | | show: true, |
| | | color: 'inherit', |
| | | color: 'rgba(0,0,0,.45)', |
| | | // textBorderColor: 'inherit', |
| | | // textBorderWidth: 1, |
| | | fontSize: 16, |
| | |
| | | labelLine: { |
| | | show: true, |
| | | length2: 10, |
| | | length: 10 |
| | | length: 10, |
| | | lineStyle: { |
| | | color: 'rgba(0,0,0,.45)' |
| | | } |
| | | }, |
| | | data: this.techConditionData |
| | | } |
| | |
| | | icon: 'roundRect', |
| | | itemGap: 15, |
| | | textStyle: { |
| | | color: 'inherit', |
| | | color: 'rgba(0,0,0,.45)', |
| | | fontSize: 14, |
| | | padding: [0, 0, 0, 0] |
| | | }, |
| | |
| | | color: [ |
| | | '#00CED1', |
| | | '#B85B38', |
| | | '#EAEA7C' |
| | | '#FFFF88' |
| | | ], |
| | | label: { |
| | | position: 'outside', |
| | | show: true, |
| | | color: 'inherit', |
| | | color: 'rgba(0,0,0,.45)', |
| | | // textBorderColor: 'inherit', |
| | | // textBorderWidth: 1, |
| | | fontSize: 16, |
| | |
| | | labelLine: { |
| | | show: true, |
| | | length2: 10, |
| | | length: 10 |
| | | length: 10, |
| | | lineStyle: { |
| | | color: 'rgba(0,0,0,.45)' |
| | | } |
| | | }, |
| | | data: this.warrantyMalfunctionData |
| | | } |
| | |
| | | this.maintenanceConfig = { |
| | | indexHeader: 'åºå·', |
| | | header: ['车é´', 'æ¥æ', 'å
容'], |
| | | headerBGC: '#266C86', |
| | | oddRowBGC: '#003B51', |
| | | evenRowBGC: '#0A2732', |
| | | headerBGC: '#46B7E3', |
| | | oddRowBGC: '#0383AF', |
| | | evenRowBGC: '#0395C9', |
| | | data: this.twoMaintenanceChartData, |
| | | index: true, |
| | | columnWidth: [100, 300, 300, 300], |
| | |
| | | |
| | | /* ç»å¶åæ±å¾ */ |
| | | drawBarChart() { |
| | | const colorArray = ['#79CEAA', '#F589A2', '#6FBF9D', '#66DFE2', '#A7F0C1', '#FAE893', '#F7B7A0'] |
| | | const defaultData = [] |
| | | const dataMax = this.barChartData.length > 0 ? +this.barChartData.sort((x, y) => +y.value - +x.value)[0].value : 0 |
| | | let yAxisMax |
| | |
| | | else yAxisMax = Math.ceil(dataMax / 5) * 5 // 设置æ±å¾èæ¯é´å½±é»è®¤å¼ï¼æè·¯ä¸ºæ°æ®æå¤§å¼ææ¥è¿çè½è¢«5æ´é¤çæ°å |
| | | const yAxisInterval = yAxisMax / 5 // åæ¶å°å»åº¦å¼åæ5份 |
| | | this.barChartData.forEach(item => defaultData.push(yAxisMax)) |
| | | console.log('bar', this.barChartData) |
| | | let barTopColor = ['#EA967B', '#62AC75', '#32ACBF', '#7196CE'] |
| | | let barBottomColor = ['#F8E18B', '#A8D07C', '#7BCAC5', '#8DCCEF'] |
| | | const option = { |
| | | title: { |
| | | show: true, // æ¯å¦æ¾ç¤ºæ é¢ï¼é»è®¤ä¸ºtrue |
| | |
| | | formatter: function(params) { |
| | | return '<span style="font-weight:bolder;">' + params[0].name + '</span><br/>' + |
| | | '<span style="display:inline-block; width:10px; height:10px; border-radius:100px; margin-right:5px; background:' + params[0].color + '"></span>' + ' OEE: ' + params[0].value + '%' |
| | | }, |
| | | // backgroundColor: 'rgba(9, 24, 48, 0.5)', |
| | | borderColor: 'rgba(75, 253, 238, 0.4)', |
| | | textStyle: { |
| | | // color: '#CFE3FC' |
| | | }, |
| | | borderWidth: 1 |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '15%', |
| | | left: '10%' |
| | | }, |
| | | xAxis: [{ |
| | | name: '', |
| | | nameLocation: 'middle', |
| | | nameGap: 40, // xè½´name䏿¨ªåæ 轴线çé´è· |
| | | type: 'category', |
| | | data: this.barChartData.map(item => item.productionId), |
| | | xAxis: { |
| | | data: this.barChartData.map(item => item.name), |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: 'rgba(0,0,0,.45)' |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | show: true, // æ¯å¦æ¾ç¤ºå»åº¦æ ç¾ï¼é»è®¤æ¾ç¤º |
| | | interval: 0, // åæ è½´å»åº¦æ ç¾çæ¾ç¤ºé´éï¼å¨ç±»ç®è½´ä¸ææï¼é»è®¤ä¼éç¨æ ç¾ä¸éå ççç¥é´éæ¾ç¤ºæ ç¾ï¼å¯ä»¥è®¾ç½®æ0å¼ºå¶æ¾ç¤ºæææ ç¾ï¼å¦æè®¾ç½®ä¸º1ï¼è¡¨ç¤ºãéä¸ä¸ªæ ç¾æ¾ç¤ºä¸ä¸ªæ ç¾ãï¼å¦æå¼ä¸º2ï¼è¡¨ç¤ºé两个æ ç¾æ¾ç¤ºä¸ä¸ªæ ç¾ï¼ä»¥æ¤ç±»æ¨ã |
| | | rotate: this.barChartData.length >= 6 ? -30 : 0, // å»åº¦æ ç¾æè½¬çè§åº¦ï¼å¨ç±»ç®è½´çç±»ç®æ ç¾æ¾ç¤ºä¸ä¸çæ¶åå¯ä»¥éè¿æè½¬é²æ¢æ ç¾ä¹é´éå ï¼æè½¬çè§åº¦ä»-90度å°90度 |
| | | inside: false, // å»åº¦æ ç¾æ¯å¦æå
ï¼é»è®¤æå¤ |
| | | margin: 10, // å»åº¦æ ç¾ä¸è½´çº¿ä¹é´çè·ç¦» |
| | | formatter: value => { |
| | | return `${this.barChartData.find(item => item.productionId === value).name}` |
| | | }, |
| | | fontSize: 14 |
| | | }, |
| | | axisTick: { |
| | | show: true, |
| | | alignWithLabel: true |
| | | } |
| | | }], |
| | | yAxis: [{ |
| | | rotate: 20, |
| | | margin: 25, |
| | | textStyle: { |
| | | fontSize: 14, |
| | | color: 'rgba(0,0,0,.45)', |
| | | align: 'center' |
| | | } |
| | | }, |
| | | interval: 0 |
| | | }, |
| | | yAxis: { |
| | | name: '%', |
| | | min: 0, |
| | | max: yAxisMax, |
| | | interval: yAxisInterval, |
| | | axisLabel: { |
| | | formatter: '{value}', |
| | | fontSize: 14 |
| | | splitLine: { |
| | | show: false |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | axisLine: { |
| | | show: false, |
| | | show: true, |
| | | lineStyle: { |
| | | color: 'rgba(0,0,0,.45)' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | show: false, |
| | | lineStyle: { |
| | | color: 'rgba(255,255,255,0.12)' |
| | | axisLabel: { |
| | | show: true, |
| | | margin: 10, |
| | | textStyle: { |
| | | fontSize: 14, |
| | | color: 'rgba(0,0,0,.45)' |
| | | } |
| | | } |
| | | }], |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'bar', |
| | | data: this.barChartData, |
| | | barWidth: this.barChartData.length > 5 ? '40%' : 30, |
| | | type: 'pictorialBar', |
| | | symbolSize: [26, 10], |
| | | symbolOffset: [0, -5], |
| | | z: 12, |
| | | itemStyle: { |
| | | color: function(params) { |
| | | let num = colorArray.length |
| | | return colorArray[params.dataIndex % num] |
| | | return barBottomColor[params.dataIndex % barBottomColor.length] |
| | | } |
| | | // color: new echarts.graphic.LinearGradient( |
| | | // 0, 0, 0, 1, [{ |
| | | // offset: 0, |
| | | // color: '#83bff6' |
| | | // }, |
| | | // { |
| | | // offset: 0.5, |
| | | // color: '#188df0' |
| | | // }, |
| | | // { |
| | | // offset: 1, |
| | | // color: '#188df0' |
| | | // } |
| | | // ] |
| | | // ) |
| | | }, |
| | | zlevel: 1, |
| | | label: { |
| | | show: false, |
| | | lineHeight: 10, |
| | | formatter: params => { |
| | | if (+params.value === 0) return '' |
| | | else return params.value |
| | | }, |
| | | show: true, |
| | | position: 'top', |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 16 |
| | | } |
| | | } |
| | | fontSize: 12, |
| | | color: 'rgba(0,0,0,.45)' |
| | | }, |
| | | symbolPosition: 'end', |
| | | data: this.barChartData |
| | | }, |
| | | { |
| | | name: 'èæ¯', |
| | | type: 'bar', |
| | | barWidth: this.barChartData.length > 5 ? '40%' : 30, |
| | | barGap: '-100%', |
| | | data: defaultData, |
| | | type: 'pictorialBar', |
| | | symbolSize: [26, 10], |
| | | symbolOffset: [0, 5], |
| | | z: 12, |
| | | itemStyle: { |
| | | color: 'rgba(0,0,0,.05)' |
| | | } |
| | | color: function(params) { |
| | | return barTopColor[params.dataIndex % barTopColor.length] |
| | | } |
| | | }, |
| | | data: this.barChartData |
| | | }, |
| | | { |
| | | type: 'bar', |
| | | itemStyle: { |
| | | color: function(params) { |
| | | return new echarts.graphic.LinearGradient( |
| | | 0, 0, 0, 1, |
| | | [{ |
| | | offset: 1, |
| | | color: barTopColor[params.dataIndex % barTopColor.length] |
| | | }, |
| | | { |
| | | offset: 0, |
| | | color: barBottomColor[params.dataIndex % barBottomColor.length] |
| | | } |
| | | ] |
| | | ) |
| | | }, |
| | | opacity: .9 |
| | | }, |
| | | z: 16, |
| | | barWidth: 26, |
| | | barGap: '-100%', |
| | | data: this.barChartData |
| | | }] |
| | | // aria: { |
| | | // enabled: true, |
| | | // decal: { |
| | | // show: true, |
| | | // decals: [ |
| | | // { |
| | | // color: 'rgba(0,0,0,.2)', |
| | | // dashArrayX: [20, 0], |
| | | // dashArrayY: [1, 2], |
| | | // symbol: 'rect', |
| | | // rotation: Math.PI / 4 |
| | | // }, |
| | | // { |
| | | // symbol: 'none' |
| | | // } |
| | | // ] |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | option.title.text = moment().subtract(1, 'months').format('Mæ') + `OEE` |
| | | this.barChart.setOption(option, true) |
| | | this.barChart.hideLoading() |
| | | |
| | | this.barChart.on('click', params => { |
| | | let productionId |
| | | // ç¹å»çæ¯æ±ä½çå¼ï¼å¦åç¹å»ç为æ±ä½èæ¯é´å½± |
| | | if (params.seriesIndex === 0) productionId = params.data.productionId |
| | | else productionId = params.name |
| | | console.log('params', params) |
| | | productionId = params.data.productionId |
| | | |
| | | this.$router.push({ |
| | | name: 'mdc-base-OEEAnalysis', |
| | |
| | | /* ç»å¶åæ±å¾ */ |
| | | drawDoubleBarChart() { |
| | | const option = { |
| | | color: ['#4992FF', '#4DC0B1'], |
| | | color: ['#1890FF', '#2EC35C'], |
| | | tooltip: { |
| | | confine: true, |
| | | formatter: function(params) { |
| | |
| | | series: [{ |
| | | type: 'bar', |
| | | barWidth: 20, |
| | | barGap: '0%', |
| | | itemStyle: { barBorderRadius: 4 }, |
| | | name: 'OEE', |
| | | data: this.doubleBarChartData.oeeList, |
| | | label: { |
| | | show: false, |
| | | show: true, |
| | | lineHeight: 10, |
| | | formatter: params => { |
| | | if (+params.value === 0) return '' |
| | | else return params.value |
| | | }, |
| | | position: 'inside', |
| | | position: 'top', |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 12 |
| | | color: 'rgba(0,0,0,.45)', |
| | | fontSize: 10 |
| | | } |
| | | } |
| | | }, { |
| | | type: 'bar', |
| | | barWidth: 20, |
| | | barGap: '0%', |
| | | itemStyle: { barBorderRadius: 4 }, |
| | | name: 'TEEP', |
| | | data: this.doubleBarChartData.utilizationList, |
| | | label: { |
| | | show: false, |
| | | show: true, |
| | | lineHeight: 10, |
| | | formatter: params => { |
| | | if (+params.value === 0) return '' |
| | |
| | | }, |
| | | position: 'inside', |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 12 |
| | | color: 'rgba(0,0,0,.45)', |
| | | fontSize: 10 |
| | | } |
| | | } |
| | | } |
| | |
| | | this.problemConfig = { |
| | | indexHeader: 'åºå·', |
| | | header: ['æ¶é´', 'é®é¢å
容'], |
| | | headerBGC: '#83B883', |
| | | oddRowBGC: '#556955', |
| | | evenRowBGC: '#556955', |
| | | headerBGC: '#A5CCE6', |
| | | oddRowBGC: '#6B9FCD', |
| | | evenRowBGC: '#5A7D9A', |
| | | data: this.workshopProblemChartData, |
| | | index: true, |
| | | columnWidth: [100, 200, 300], |
| | | align: ['center'] |
| | | align: ['center', 'center', 'center'] |
| | | } |
| | | }, |
| | | |
| | |
| | | } else { |
| | | this.pieChartRadius = this.normalPieChartRadius.map(item => item = (+item.slice(0, -1) * (clientWidth / this.firstEnterClientWidth)) + '%') |
| | | } |
| | | console.log('pieChartRadius', this.pieChartRadius) |
| | | this.$nextTick(() => { |
| | | if (this.runningStateChartDataRequireFinished) this.drawRunningStateChart(this.currentPageProductionId) |
| | | if (this.techConditionChartRequireFinished) this.drawTechConditionChart() |
| | |
| | | </a-form> |
| | | </div> |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator"> |
| | | <a-button @click="handleBatchPrint" type="primary" icon="monitor" :disabled="selectedRowKeys.length===0">æ¹éé¢è§ |
| | | </a-button> |
| | | </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> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" |
| | | :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" @change="handleTableChange"> |
| | | :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" @change="handleTableChange" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"> |
| | | |
| | | <!--æ¯å¦æè®¾å¤æä½è¯--> |
| | | <template slot="operationCertificate" slot-scope="text"> |
| | |
| | | <!--审æ¹çªå£--> |
| | | <report-accidents-register-approval-modal ref="reportAccidentsRegisterApprovalModal" |
| | | :selectShenpiData="selectedRowData"/> |
| | | |
| | | <!--æ¹éæå°çªå£--> |
| | | <eam-accidents-register-batch-print-modal ref="batchPrintModal"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import { getAction } from '@/api/manage' |
| | | import ReportAccidentsRegisterApprovalModal |
| | | from '../../flowable/workflow/repairOrder/ReportAccidentsRegisterApprovalModal' |
| | | import EamAccidentsRegisterBatchPrintModal from './modules/EamAccidentsRegisterBatchPrintModal' |
| | | |
| | | export default { |
| | | name: 'EamReportAccidentsRegisterList', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | EamAccidentsRegisterBatchPrintModal, |
| | | ReportAccidentsRegisterApprovalModal, |
| | | LxSearchEquipmentSelect, |
| | | EamReportAccidentsRegisterModal |
| | |
| | | title: 'äºæ
ç°è±¡', |
| | | align: 'center', |
| | | dataIndex: 'accidentPhenomenon', |
| | | scopedSlots: {customRender: 'accidentPhenomenon'}, |
| | | scopedSlots: { customRender: 'accidentPhenomenon' } |
| | | }, |
| | | { |
| | | title: 'éåæªæ½', |
| | | align: 'center', |
| | | dataIndex: 'measure', |
| | | scopedSlots: {customRender: 'measure'}, |
| | | scopedSlots: { customRender: 'measure' } |
| | | }, |
| | | { |
| | | title: 'é æç»æ', |
| | | align: 'center', |
| | | dataIndex: 'causingResults', |
| | | scopedSlots: {customRender: 'causingResults'}, |
| | | scopedSlots: { customRender: 'causingResults' } |
| | | }, |
| | | { |
| | | title: 'æä½å·¥', |
| | |
| | | }) |
| | | }, |
| | | |
| | | // æ¹éæå° |
| | | handleBatchPrint() { |
| | | this.$refs.batchPrintModal.handlePreview(this.selectedRowKeys.join()) |
| | | }, |
| | | |
| | | /** |
| | | * ç¹å»è¯¦æ
æ¶è§¦åæ¶è§¦å |
| | | * @param record |
| | |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="ç¶æ"> |
| | | <j-dict-select-tag dict-code="report_three_no_spare_submit_status" placeholder="è¯·éæ©ç¶æ" v-model="queryParam.submitStatus"/> |
| | | <j-dict-select-tag dict-code="report_three_no_spare_submit_status" placeholder="è¯·éæ©ç¶æ" |
| | | v-model="queryParam.submitStatus"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <template v-if="toggleSearchStatus"> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="åå åæ"> |
| | | <a-input placeholder="请è¾å
¥åå åæ" v-model="queryParam.causeAnalysis"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å¹è®å½¢å¼"> |
| | | <a-input placeholder="请è¾å
¥å¹è®å½¢å¼" v-model="queryParam.trainingFormat"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å¹è®å
容"> |
| | | <a-input placeholder="请è¾å
¥å¹è®å
容" v-model="queryParam.trainingContent"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <template v-if="toggleSearchStatus"> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="åå åæ"> |
| | | <a-input placeholder="请è¾å
¥åå åæ" v-model="queryParam.causeAnalysis"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å¹è®å½¢å¼"> |
| | | <a-input placeholder="请è¾å
¥å¹è®å½¢å¼" v-model="queryParam.trainingFormat"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å¹è®å
容"> |
| | | <a-input placeholder="请è¾å
¥å¹è®å
容" v-model="queryParam.trainingContent"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | </template> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> |
| | |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator"> |
| | | <a-button @click="handleBatchPrint" type="primary" icon="monitor" :disabled="selectedRowKeys.length===0">æ¹éé¢è§ |
| | | </a-button> |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | bordered |
| | | rowKey="id" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :scroll="{x:'max-content'}" |
| | | @change="handleTableChange"> |
| | | <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" |
| | | :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | @change="handleTableChange"> |
| | | <span slot="action" slot-scope="text, record"> |
| | | <template> |
| | | <a v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" @click="handleFillIn(record)">å¡«æ¥</a> |
| | | <a-divider v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" type="vertical"/> |
| | | <a-popconfirm v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" title="ç¡®å®æäº¤å?" @confirm="() => handleSubmit(record.id)"> |
| | | <a v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" |
| | | @click="handleFillIn(record)">å¡«æ¥</a> |
| | | <a-divider v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" type="vertical"/> |
| | | <a-popconfirm v-if="record.submitStatus=='PENDING_SUBMIT'||record.submitStatus=='REJECTED'" title="ç¡®å®æäº¤å?" |
| | | @confirm="() => handleSubmit(record.id)"> |
| | | <a>æäº¤</a> |
| | | </a-popconfirm> |
| | | </template> |
| | |
| | | <!-- tableåºå-end --> |
| | | |
| | | <!-- 表ååºå --> |
| | | <eamReportThreeNoSpare-modal ref="modalForm" @ok="modalFormOk"></eamReportThreeNoSpare-modal> |
| | | <eamReportThreeNoSpare-modal ref="modalForm" @ok="modalFormOk"/> |
| | | |
| | | <!--审æ¹çªå£--> |
| | | <report-threeNo-spare-approval-modal ref="reportThreeNoSpareApprovalModal" |
| | | :selectShenpiData="selectedRowData"/> |
| | | <report-threeNo-spare-approval-modal ref="reportThreeNoSpareApprovalModal" :selectShenpiData="selectedRowData"/> |
| | | |
| | | <!--æ¹éæå°å¼¹çª--> |
| | | <eam-three-no-spare-analysis-batch-print-modal ref="batchPrintModal"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import '@/assets/less/TableExpand.less' |
| | | import EamReportThreeNoSpareModal from './modules/EamReportThreeNoSpareModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import {getAction} from "@api/manage"; |
| | | import LxSearchEquipmentSelect from "@views/eam/equipment/modules/LxSearchEquipmentSelect.vue"; |
| | | import { getAction } from '@api/manage' |
| | | import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' |
| | | import ReportThreeNoSpareApprovalModal |
| | | from '../../flowable/workflow/repairOrder/ReportThreeNoSpareApprovalModal' |
| | | import EamThreeNoSpareAnalysisBatchPrintModal from './modules/EamThreeNoSpareAnalysisBatchPrintModal' |
| | | |
| | | export default { |
| | | name: "EamReportThreeNoSpareList", |
| | | mixins:[JeecgListMixin], |
| | | name: 'EamReportThreeNoSpareList', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | EamThreeNoSpareAnalysisBatchPrintModal, |
| | | ReportThreeNoSpareApprovalModal, |
| | | LxSearchEquipmentSelect, |
| | | EamReportThreeNoSpareModal |
| | |
| | | type: Object |
| | | } |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | description: 'âä¸ä¸æ¾è¿çååâåæè¡¨ç®¡ç页é¢', |
| | | disableMixinCreated: true, |
| | |
| | | title: 'ç¶æ', |
| | | align: 'center', |
| | | dataIndex: 'submitStatus_dictText', |
| | | fixed: 'left' |
| | | }, |
| | | { |
| | | title: 'äºæ
ç°è±¡', |
| | | align: 'center', |
| | | dataIndex: 'accidentPhenomenon', |
| | | scopedSlots: {customRender: 'accidentPhenomenon'}, |
| | | scopedSlots: { customRender: 'accidentPhenomenon' } |
| | | }, |
| | | { |
| | | title: 'éåæªæ½', |
| | | align: 'center', |
| | | dataIndex: 'measure', |
| | | scopedSlots: {customRender: 'measure'}, |
| | | scopedSlots: { customRender: 'measure' } |
| | | }, |
| | | { |
| | | title: 'é æç»æ', |
| | | align: 'center', |
| | | dataIndex: 'causingResults', |
| | | scopedSlots: {customRender: 'causingResults'}, |
| | | scopedSlots: { customRender: 'causingResults' } |
| | | }, |
| | | { |
| | | { |
| | | title: 'åå åæ', |
| | | align:"center", |
| | | align: 'center', |
| | | dataIndex: 'causeAnalysis', |
| | | scopedSlots: {customRender: 'causeAnalysis'}, |
| | | scopedSlots: { customRender: 'causeAnalysis' } |
| | | }, |
| | | { |
| | | title: 'é¢é²æªæ½', |
| | | align: 'center', |
| | | dataIndex: 'preventionMeasures', |
| | | scopedSlots: {customRender: 'preventionMeasures'}, |
| | | scopedSlots: { customRender: 'preventionMeasures' } |
| | | }, |
| | | { |
| | | title: 'å¹è®æè²', |
| | | align:"center", |
| | | dataIndex: 'isTrainingEducation_dictText', |
| | | align: 'center', |
| | | dataIndex: 'isTrainingEducation_dictText' |
| | | }, |
| | | { |
| | | title: 'å¹è®å½¢å¼', |
| | | align:"center", |
| | | align: 'center', |
| | | dataIndex: 'trainingFormat', |
| | | scopedSlots: {customRender: 'trainingFormat'}, |
| | | scopedSlots: { customRender: 'trainingFormat' } |
| | | }, |
| | | { |
| | | title: 'å¹è®å
容', |
| | | align:"center", |
| | | align: 'center', |
| | | dataIndex: 'trainingContent', |
| | | scopedSlots: {customRender: 'trainingContent'}, |
| | | scopedSlots: { customRender: 'trainingContent' } |
| | | }, |
| | | { |
| | | { |
| | | title: 'å¹è®äºº', |
| | | align:"center", |
| | | align: 'center', |
| | | dataIndex: 'trainingUser_dictText' |
| | | }, |
| | | { |
| | | { |
| | | title: 'å¹è®æ¶é´', |
| | | align:"center", |
| | | align: 'center', |
| | | dataIndex: 'trainingUserTime' |
| | | }, |
| | | { |
| | | { |
| | | title: 'åä½é¢å¯¼', |
| | | align:"center", |
| | | align: 'center', |
| | | dataIndex: 'unitLeader_dictText' |
| | | }, |
| | | { |
| | | { |
| | | title: 'é¢å¯¼æè§', |
| | | align:"center", |
| | | align: 'center', |
| | | dataIndex: 'leaderOpinion' |
| | | }, |
| | | { |
| | | { |
| | | title: 'é¢å¯¼ç¡®è®¤æ¶é´', |
| | | align:"center", |
| | | align: 'center', |
| | | dataIndex: 'leaderConfirmTime' |
| | | }, |
| | | { |
| | | title: 'HFç¼ç ', |
| | | align: 'center', |
| | | dataIndex: 'hfCode' |
| | | }, |
| | | } |
| | | ], |
| | | selectedRowData: {}, |
| | | url: { |
| | | list: "/eam/eamReportThreeNoSpare/list", |
| | | delete: "/eam/eamReportThreeNoSpare/delete", |
| | | deleteBatch: "/eam/eamReportThreeNoSpare/deleteBatch", |
| | | exportXlsUrl: "eam/eamReportThreeNoSpare/exportXls", |
| | | importExcelUrl: "eam/eamReportThreeNoSpare/importExcel", |
| | | submit:"eam/eamReportThreeNoSpare/submit" |
| | | }, |
| | | } |
| | | }, |
| | | list: '/eam/eamReportThreeNoSpare/list', |
| | | delete: '/eam/eamReportThreeNoSpare/delete', |
| | | deleteBatch: '/eam/eamReportThreeNoSpare/deleteBatch', |
| | | exportXlsUrl: 'eam/eamReportThreeNoSpare/exportXls', |
| | | importExcelUrl: 'eam/eamReportThreeNoSpare/importExcel', |
| | | submit: 'eam/eamReportThreeNoSpare/submit' |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | if (!this.isDisplayOperation) this.queryParam = Object.assign({}, this.propsQueryParam) |
| | | else { |
| | |
| | | this.loadData(1) |
| | | }, |
| | | methods: { |
| | | // æ¹éæå° |
| | | handleBatchPrint() { |
| | | this.$refs.batchPrintModal.handlePreview(this.selectedRowKeys.join()) |
| | | }, |
| | | |
| | | /** |
| | | * ç¹å»å¡«æ¥æ¶è§¦å |
| | | * @param record |
| | |
| | | * @param record è¡¨æ ¼è¡ä¿¡æ¯ |
| | | */ |
| | | handleDetail(record) { |
| | | this.selectRepairOrderData = Object.assign({}, record) |
| | | this.selectedRowData = Object.assign({}, record) |
| | | this.$refs.reportThreeNoSpareApprovalModal.visible = true |
| | | this.$refs.reportThreeNoSpareApprovalModal.title = '详æ
' |
| | | this.$refs.reportThreeNoSpareApprovalModal.disableSubmit = true |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal title="é¢è§ï¼ä»
å¯é¢è§å·²å®æå·¥åï¼" :width="948" :visible="visible" switchFullscreen centered |
| | | :mask-closable="false" @cancel="handleCancel" cancelText="å
³é"> |
| | | <a-spin :spinning="spinning" style="height: 100%"> |
| | | <div id="dataTable"> |
| | | <div v-for="dataItem in dataSource" class="table-container"> |
| | | <div style="page-break-before:always"></div> |
| | | |
| | | <table class="import-table" :id="dataItem.equipmentCode"> |
| | | <thead> |
| | | <tr> |
| | | <td colspan="6" style="border: none"> |
| | | <div style="text-align: right">{{dataItem.hfCode}}</div> |
| | | </td> |
| | | </tr> |
| | | </thead> |
| | | |
| | | <tbody> |
| | | <tr style="height: 48px;"> |
| | | <th colspan="6" style="border: none;font-size: 20px">设å¤äºæ
ç»è®°è¡¨</th> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>ç产åä½</td> |
| | | <td>{{dataItem.factoryName}}</td> |
| | | <td>äºæ
åçæ¶é´</td> |
| | | <td>{{dataItem.faultStartTime}}</td> |
| | | <td>æä½å·¥</td> |
| | | <td>{{dataItem.confirmer_dictText}}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>ç»ä¸ç¼å·</td> |
| | | <td>{{dataItem.equipmentCode}}</td> |
| | | <td>设å¤åç§°</td> |
| | | <td>{{dataItem.equipmentName}}</td> |
| | | <td>设å¤åå·</td> |
| | | <td>{{dataItem.equipmentModel}}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>åºåä»¶å·</td> |
| | | <td>{{dataItem.scrapPartNumber}}</td> |
| | | <td>åºåä»¶æ°</td> |
| | | <td>{{dataItem.scrapPartQuantity}}</td> |
| | | <td>åºåä»·å¼</td> |
| | | <td>{{dataItem.scrapPartValue}}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td colspan="6" style="padding: 5px"> |
| | | <div style="text-align: left">æä½è
å¡«åäºæ
åçç»è¿ï¼</div> |
| | | <div style="text-align: left">1.æ¯å¦æè®¾å¤æä½è¯ï¼{{+dataItem.operationCertificate===1?'æï¼âï¼æ ï¼ï¼':'æï¼ï¼æ ï¼âï¼'}} |
| | | </div> |
| | | <div style="text-align: left">2.äºæ
åçåè®¾å¤æ¯å¦æçµéå¯ï¼{{+dataItem.powerOffRestart===1?'æ¯ï¼âï¼å¦ï¼ï¼':'æ¯ï¼ï¼å¦ï¼âï¼'}} |
| | | </div> |
| | | <div style="text-align: left">3.å å·¥é¶ä»¶æ¯å¦ä¸ºæ¹æ¬¡é¦ä»¶ï¼{{+dataItem.batchFirstPiece===1?'æ¯ï¼âï¼å¦ï¼ï¼':'æ¯ï¼ï¼å¦ï¼âï¼'}}</div> |
| | | <div style="text-align: left"> |
| | | 4.å å·¥è¿ç¨ä¸çåå¨å ç´ ï¼å¡«åæ¯æå¦ï¼ï¼åå
·æ´æ¢ï¼{{setValueYesOrNot(dataItem,'tool_replacement')}}ï¼å·¥èºæ´æ¹ï¼{{setValueYesOrNot(dataItem,'process_change')}}ï¼å å·¥ç¨åºæ´æ¹ï¼{{setValueYesOrNot(dataItem,'processing_program_update')}}ï¼åå
·è¡¥å¿å¼æ´æ¹ï¼{{setValueYesOrNot(dataItem,'tool_compensation_adjustment')}}ï¼é¶ç¹åç½®å¼æ´æ¹ï¼{{setValueYesOrNot(dataItem,'zero_point_offset_value_change')}}ï¼åæ°ä¿®æ¹ï¼{{setValueYesOrNot(dataItem,'parameter_modification')}}ï¼å
¶ä»å ç´ ï¼{{setValueYesOrNot(dataItem,'other_factors')}}ï¼ |
| | | </div> |
| | | <br/> |
| | | <div style="text-align: left">å
·ä½æ´æ¹å
容ï¼</div> |
| | | <div style="text-align: left">5.åçäºæ
æ¶ææ§è¡çç¨åºï¼{{dataItem.executeNc}}</div> |
| | | <div style="text-align: left">6.设å¤åçäºæ
æ¶çç°è±¡ï¼</div> |
| | | <div style="text-align: left" v-html="dataItem.accidentPhenomenon.replace(/\n/g,'<br/>')"></div> |
| | | <br/> |
| | | <div style="text-align: left">7.æä½å·¥éåäºåªäºæªæ½ï¼æé¡ºåºå¡«åï¼ï¼</div> |
| | | <div style="text-align: left" v-html="dataItem.measure.replace(/\n/g,'<br/>')"></div> |
| | | <div style="text-align: left">8.äºæ
æé æçç»æï¼</div> |
| | | <div style="text-align: left" v-html="dataItem.causingResults.replace(/\n/g,'<br/>')"></div> |
| | | <br/> |
| | | <div style="text-align: right">æä½å·¥ï¼{{dataItem.confirmer_dictText}}</div> |
| | | <div style="text-align: right">{{dataItem.confirmTime.split('-')[0]}} å¹´ {{dataItem.confirmTime.split('-')[1]}} æ {{dataItem.confirmTime.split('-')[2]}} æ¥</div> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr style="height: 35px;"> |
| | | <td>åºé¿</td> |
| | | <td colspan="2">{{dataItem.district_dictText}}</td> |
| | | <td>ä¸å¿ä¸»ä»»</td> |
| | | <td colspan="2">{{dataItem.centerDirector_dictText}}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td colspan="6" style="padding: 5px"> |
| | | <div style="text-align: left">维修人åè¿è¡äºæ
åæï¼</div> |
| | | <div style="text-align: left"> |
| | | 1.å¼å§æ£æ¥çæ¶é´ï¼{{dataItem.reportStartTime.split('-')[0]}}å¹´{{dataItem.reportStartTime.split('-')[1]}}æ{{dataItem.reportStartTime.split('-')[2]}}æ¥ |
| | | </div> |
| | | <div style="text-align: left">2.åçäºæ
å设å¤çç¶æï¼{{dataItem.equipmentStatus}}</div> |
| | | <div style="text-align: left">3.维修人åå¯¹äºæ
åå çåæï¼</div> |
| | | <div style="text-align: left" v-html="dataItem.causeAnalysis.replace(/\n/g,'<br/>')"></div> |
| | | <br/> |
| | | <div style="text-align: left">4.æ£æ¥çç»æï¼{{dataItem.inspectionResults}}</div> |
| | | <div style="text-align: left">5.äºæ
åå åæè¿ç¨ä¸æéåçç¸å
³è¡ä¸ºï¼</div> |
| | | <div style="text-align: left">{{dataItem.takeSteps}}</div> |
| | | <br/> |
| | | <div style="text-align: left"> |
| | | 6.建议éåçæªæ½åæ¶é´èç¹ï¼{{dataItem.suggestionTakeStepsTime.split('-')[0]}}å¹´{{dataItem.suggestionTakeStepsTime.split('-')[1]}}æ{{dataItem.suggestionTakeStepsTime.split('-')[2]}}æ¥ |
| | | </div> |
| | | <div style="text-align: left" v-html="dataItem.suggestionTakeSteps.replace(/\n/g,'<br/>')"></div> |
| | | <br/> |
| | | <div style="text-align: right">维修人åï¼{{dataItem.repairConfirm_dictText}}</div> |
| | | <div style="text-align: right">{{dataItem.repairConfirmTime.split('-')[0]}} å¹´ {{dataItem.repairConfirmTime.split('-')[1]}} æ {{dataItem.repairConfirmTime.split('-')[2]}} æ¥</div> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr style="height: 35px;"> |
| | | <td>ç»´ä¿®è´è´£äºº(ç»é¿)</td> |
| | | <td colspan="2">{{dataItem.repairGroupLeader_dictText}}</td> |
| | | <td>ç»´ä¿®è´è´£äºº(åºé¿)</td> |
| | | <td colspan="2">{{dataItem.repairDistrict_dictText}}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td colspan="6" style="padding: 5px"> |
| | | <div style="text-align: left">è®¾å¤ææ¯ä¸å®¶æè§ï¼</div> |
| | | <div style="text-align: left">1.äºæ
åçåå åæçæ ¸å¯¹ï¼{{+dataItem.checkAgree===1?'åæï¼âï¼ä¸åæï¼ï¼':'åæï¼ï¼ä¸åæï¼âï¼'}}</div> |
| | | <div style="text-align: left">ä¸åæçåå ååæï¼{{!dataItem.disagreeReason?'æ ':dataItem.disagreeReason}}</div> |
| | | <br/> |
| | | <div style="text-align: left">2.æ´æ¹æªæ½ï¼{{dataItem.rectificationMeasures}}</div> |
| | | <br/> |
| | | <div style="text-align: left">3.äºæ
ç»è®ºï¼{{dataItem.accidentConclusion}}</div> |
| | | <br/> |
| | | <div style="text-align: right">ææ¯è´è´£äººï¼{{dataItem.technicalDirector_dictText}}</div> |
| | | <div style="text-align: right">{{dataItem.technicalDirectorTime.split('-')[0]}} å¹´ {{dataItem.technicalDirectorTime.split('-')[1]}} æ {{dataItem.technicalDirectorTime.split('-')[2]}} æ¥</div> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr style="height: 35px;"> |
| | | <td>ææ¯ä¸»ç®¡å®¤çº§é¢å¯¼</td> |
| | | <td colspan="2">{{dataItem.technicalDirectorLeader_dictText}}</td> |
| | | <td>主管é¨çº§é¢å¯¼</td> |
| | | <td colspan="2">{{dataItem.technicalDirectorPart_dictText}}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td colspan="6" style="border: none"> |
| | | å¡«å说æï¼å¦è®¾å¤äºæ
æªé æäº§åè´¨éé®é¢ï¼ååºåä»¶å·ãåºåä»¶æ°ãåºå价弿 å¡«åâ/âã |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </a-spin> |
| | | |
| | | <template slot="footer"> |
| | | <a-button @click="handleCancel">å
³é</a-button> |
| | | <a-button type="primary" @click="handleExportToExcel">导åº</a-button> |
| | | <a-button type="primary" v-print="'#dataTable'">æå°</a-button> |
| | | </template> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getAction } from '@/api/manage' |
| | | import $ from 'jquery' |
| | | import '@/components/table2excel/table2excel' |
| | | |
| | | export default { |
| | | name: 'EamAccidentsRegisterBatchPrintModal', |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | spinning: false, |
| | | dataSource: [], |
| | | url: { |
| | | list: '/eam/eamReportAccidentsRegister/batchExport' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | /** |
| | | * æ¹éé¢è§ |
| | | * @param ids String 主页é¢å表å¾éids |
| | | */ |
| | | handlePreview(ids) { |
| | | this.visible = true |
| | | this.spinning = true |
| | | this.dataSource = [] |
| | | const that = this |
| | | getAction(this.url.list, { ids }) |
| | | .then(res => { |
| | | if (res.success) that.dataSource = res.result |
| | | }) |
| | | .finally(() => { |
| | | that.spinning = false |
| | | }) |
| | | }, |
| | | |
| | | // 导åºå°Excel |
| | | handleExportToExcel() { |
| | | document.querySelectorAll('table.import-table').forEach(element => { |
| | | console.log('element', element.id) |
| | | $(element).table2excel({ |
| | | exclude: '.noExl', |
| | | name: 'Excel Document Name', |
| | | filename: '设å¤äºæ
ç»è®°è¡¨-' + element.id, |
| | | exclude_img: true, |
| | | fileext: '.xls', |
| | | exclude_links: true, |
| | | exclude_inputs: false |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 设置åå¨å ç´ å¼ |
| | | * @param dataItem 对åºå¯¹è±¡ |
| | | * @param value åå
¸å¼ |
| | | * @returns {string} æ¯/å¦ |
| | | */ |
| | | setValueYesOrNot(dataItem, value) { |
| | | return dataItem.variableFactorsValue !== value ? 'å¦' : 'æ¯' |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | if (this.$refs.form) this.$refs.form.clearValidate() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | /deep/ .ant-modal { |
| | | height: 90%; |
| | | overflow: hidden; |
| | | |
| | | .ant-modal-content { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | overflow: hidden; |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | |
| | | .ant-modal-body { |
| | | flex: 1; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .table-container:not(:last-child) { |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | table { |
| | | width: 100%; |
| | | text-align: center; |
| | | table-layout: fixed; |
| | | |
| | | td, th { |
| | | border: 1px solid #000; |
| | | } |
| | | |
| | | td.vertical-display { |
| | | writing-mode: vertical-lr; |
| | | letter-spacing: 5px; |
| | | padding: 5px 0; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal title="é¢è§ï¼ä»
å¯é¢è§å·²å®æå·¥åï¼" :width="948" :visible="visible" switchFullscreen centered |
| | | :mask-closable="false" @cancel="handleCancel" cancelText="å
³é"> |
| | | <a-spin :spinning="spinning" style="height: 100%"> |
| | | <div id="dataTable"> |
| | | |
| | | <div v-for="dataItem in dataSource" class="table-container"> |
| | | <div style="page-break-before:always"></div> |
| | | |
| | | <table class="import-table"> |
| | | <thead> |
| | | <tr> |
| | | <td colspan="10" style="border: none;"> |
| | | <div style="text-align: right">{{dataItem.hfCode}}</div> |
| | | </td> |
| | | </tr> |
| | | </thead> |
| | | |
| | | <tbody> |
| | | <tr style="height: 48px;"> |
| | | <th colspan="10" style="border: none;font-size: 20px">âä¸ä¸æ¾è¿çååâåæè¡¨</th> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <th colspan="10" style="border: none;font-size: 20px;"> |
| | | <div style="text-align: left">âä¸ä¸æ¾è¿çååâåæï¼</div> |
| | | <div style="text-align: left">1ãäºæ
åå åæä¸æ¸
䏿¾è¿ã</div> |
| | | <div style="text-align: left">2ã责任è
åç¾¤ä¼æªåå°æè²ä¸æ¾è¿ã</div> |
| | | <div style="text-align: left">3ãæ²¡æé²èæªæ½ä¸æ¾è¿ã</div> |
| | | </th> |
| | | </tr> |
| | | |
| | | <tr style="height: 35px"> |
| | | <td colspan="10"> |
| | | <div style="text-align: left">äºæ
åå åæï¼{{dataItem.causeAnalysis}}</div> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td colspan="10" style="padding: 5px"> |
| | | <div style="text-align: left"> |
| | | æ¯å¦å¯¹æä½è
åç¸å
³è´£ä»»äººè¿è¡å¹è®æè²ï¼{{+dataItem.isTrainingEducation===1?'æ¯ï¼âï¼å¦ï¼ï¼':'æ¯ï¼ï¼å¦ï¼âï¼'}} |
| | | </div> |
| | | <div style="text-align: left">å¹è®å½¢å¼ï¼{{dataItem.trainingFormat}}</div> |
| | | <div style="text-align: left">å¹è®å
容å
æ¬ï¼</div> |
| | | <div style="text-align: left" v-html="dataItem.trainingContent.replace(/\n/g,'<br/>')"></div> |
| | | <template v-for="item in 5-dataItem.trainingContent.split('\n').length"><br/></template> |
| | | <div style="text-align: left">æ¥åå¹è®äººåç¾åï¼{{dataItem.trainingUser_dictText}}</div> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td colspan="10" style="padding: 5px"> |
| | | <div style="text-align: left">ç®å已宿½ï¼ï¼é¢è®¡å®æ½ï¼ï¼çé¢é²æªæ½</div> |
| | | <div style="text-align: left" v-html="dataItem.preventionMeasures.replace(/\n/g,'<br/>')"></div> |
| | | <template v-for="item in 5-dataItem.preventionMeasures.split('\n').length"><br/></template> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td colspan="5" style="border: none"> |
| | | <div style="text-align: left">å¡«å人ï¼{{dataItem.createBy_dictText}}</div> |
| | | </td> |
| | | <td colspan="5" style="border: none"> |
| | | <div style="text-align: right">åä½é¢å¯¼ï¼{{dataItem.unitLeader_dictText}}</div> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </a-spin> |
| | | |
| | | <template slot="footer"> |
| | | <a-button @click="handleCancel">å
³é</a-button> |
| | | <a-button type="primary" @click="handleExportToExcel">导åº</a-button> |
| | | <a-button type="primary" v-print="'#dataTable'">æå°</a-button> |
| | | </template> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getAction } from '@/api/manage' |
| | | import $ from 'jquery' |
| | | import '@/components/table2excel/table2excel' |
| | | |
| | | export default { |
| | | name: 'EamThreeNoSpareAnalysisBatchPrintModal', |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | spinning: false, |
| | | dataSource: [], |
| | | url: { |
| | | list: '/eam/eamReportThreeNoSpare/batchExport' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | /** |
| | | * æ¹éé¢è§ |
| | | * @param ids String 主页é¢å表å¾éids |
| | | */ |
| | | handlePreview(ids) { |
| | | this.visible = true |
| | | this.spinning = true |
| | | this.dataSource = [] |
| | | const that = this |
| | | getAction(this.url.list, { ids }) |
| | | .then(res => { |
| | | if (res.success) that.dataSource = res.result |
| | | }) |
| | | .finally(() => { |
| | | that.spinning = false |
| | | }) |
| | | }, |
| | | |
| | | // 导åºå°Excel |
| | | handleExportToExcel() { |
| | | document.querySelectorAll('table.import-table').forEach(item => { |
| | | $(item).table2excel({ |
| | | exclude: '.noExl', |
| | | name: 'Excel Document Name', |
| | | filename: 'âä¸ä¸æ¾è¿çååâåæè¡¨-', |
| | | exclude_img: true, |
| | | fileext: '.xls', |
| | | exclude_links: true, |
| | | exclude_inputs: false |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | if (this.$refs.form) this.$refs.form.clearValidate() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | /deep/ .ant-modal { |
| | | height: 90%; |
| | | overflow: hidden; |
| | | |
| | | .ant-modal-content { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | overflow: hidden; |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | |
| | | .ant-modal-body { |
| | | flex: 1; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .table-container:not(:last-child) { |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | table { |
| | | width: 100%; |
| | | text-align: center; |
| | | table-layout: fixed; |
| | | |
| | | td, th { |
| | | border: 1px solid #000; |
| | | } |
| | | |
| | | td.vertical-display { |
| | | transform: rotate(360deg); |
| | | writing-mode: vertical-lr; |
| | | letter-spacing: 5px; |
| | | padding: 10px 0; |
| | | } |
| | | } |
| | | </style> |