You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
5.9 KiB
117 lines
5.9 KiB
<template>
|
|
<div>
|
|
<reportPage
|
|
:columnList="columnDefs"
|
|
:searchConfig="searchConfig"
|
|
:searchForm="searchForm"
|
|
:BottomFixedItem="BottomFixedItem"
|
|
:averageFixedItem="averageFixedItem"
|
|
:reportName="'质检报表'"
|
|
:procName="'Proc_质检报表'"
|
|
></reportPage>
|
|
<!-- 抽屉查看供应商报告弹窗 -->
|
|
<el-image-viewer
|
|
v-if="isShowImg"
|
|
:on-close="(()=>{isShowImg = false})"
|
|
:url-list="imgListViews" />
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import reportPage from "@/components/reportPage/index"
|
|
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
|
|
import util from '@/utils/util'
|
|
import {inventoryTransactionSerial} from "@/api/api"
|
|
import {getInspectionImg} from "@/api/businessApi"
|
|
|
|
export default {
|
|
name: "inspection",
|
|
components: {
|
|
reportPage,
|
|
ElImageViewer
|
|
},
|
|
data () {
|
|
return {
|
|
columnDefs: [
|
|
{ field: '采购订单号', minWidth:130,filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '物料号', headerName:'ERP料号', cellClass:"centerAlign", filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '零件号', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '描述', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '供应商', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '箱码', cellClass:"centerAlign", filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '批次', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '分级', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '生产日期', minWidth:170,maxWidth:170, valueFormatter: ((data)=>{return util.formatTimeStrToStr(data.value)}), filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '检验时间', minWidth:170,maxWidth:170, valueFormatter: ((data)=>{return util.formatTimeStrToStr(data.value)}), filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '不合格原因', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '合格', type:"kiloNumber", cellClass:"rightAlign", valueFormatter: ((data)=>{return util.numberFixedFormatter(data.value,true)}), filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '不合格', type:"kiloNumber", cellClass:"rightAlign", valueFormatter: ((data)=>{return util.numberFixedFormatter(data.value,true)}), filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '合格率', type:"percentNumber", cellClass:"rightAlign", valueFormatter: ((data)=>{return util.numberPercentFormatter(data.value)}), filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ field: '抽检数量', type:"kiloNumber", cellClass:"rightAlign", valueFormatter: ((data)=>{return util.numberFixedFormatter(data.value,true)}), filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
|
|
{ headerName: "操作", cellClass:"centerAlign", cellRenderer: this.ActionCellRenderer } // 自定义操作列
|
|
],
|
|
searchConfig:[
|
|
{type:'input',prop:'PoNumber',label:'订单号'},
|
|
{type:'select',prop:'Supplier',label:'供应商',optionsProc:'SupplierCode',options:[]},
|
|
{type:'selectExcess',prop:'ItemCode',label:'ERP料号',optionsProc:'itemCode',options:[],optionsTS:[],rangeNumber:100,rangeSize:100},
|
|
{type:'date',prop:'beginDate',label:'起始'},
|
|
{type:'date',prop:'endDate',label:'截止'},
|
|
],
|
|
searchForm:{
|
|
ItemCode:"",
|
|
beginDate:"",
|
|
endDate:'',
|
|
Supplier:"",
|
|
PoNumber:"",
|
|
},
|
|
BottomFixedItem:['合格','不合格','合格率','抽检数量'],
|
|
averageFixedItem:['合格率'],
|
|
isShowImg:false,
|
|
imgListViews:[]
|
|
};
|
|
},
|
|
methods:{
|
|
ActionCellRenderer(row) {
|
|
// 底部固定栏不显示按钮
|
|
if(row.node.id.indexOf('b') >= 0){ return '' }
|
|
// 没有之间报告的不显示
|
|
try {
|
|
let _json = JSON.parse(row.data['质检报告'])
|
|
if(_json.length > 0){
|
|
const eButton = document.createElement('span');
|
|
eButton.innerHTML = '查看报告';
|
|
eButton.style.color = 'blue'
|
|
eButton.style.fontSize = '14px'
|
|
eButton.style.cursor = 'pointer'
|
|
eButton.addEventListener('click', () => {
|
|
this.showImg(row)
|
|
});
|
|
return eButton;
|
|
}else{
|
|
return ''
|
|
}
|
|
|
|
} catch (error) {
|
|
return ''
|
|
}
|
|
},
|
|
async showImg(row){
|
|
let _json = JSON.parse(row.data['质检报告'])
|
|
this.imgListViews = []
|
|
const loading = this.$loading({
|
|
lock: true,
|
|
text: 'Loading',
|
|
spinner: 'el-icon-loading',
|
|
});
|
|
_json.forEach(async item=>{
|
|
let res = await getInspectionImg(item.FileKey)
|
|
this.imgListViews.push('data:application/pdf;base64,' + res.bytes)
|
|
if(this.imgListViews.length == _json.length){
|
|
this.isShowImg = true
|
|
loading.close();
|
|
}
|
|
})
|
|
}
|
|
}
|
|
};
|
|
</script>
|