| | |
| | | <script setup> |
| | | |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | let router=useRouter() |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | //alert('我接收到子组件传送的编辑信息') |
| | | router.push({path: '/main/reportingWorks/ReportingWorkDetail', query: { id: row.id }}) |
| | | break |
| | | } |
| | | case 'delete':{ |
| | | alert('我接收到子组件传送的删除信息') |
| | | break |
| | | } |
| | | case 'setType':{ |
| | | alert('我接收到子组件传送的反审状态') |
| | | break |
| | | } |
| | | import {onMounted, reactive, ref} from "vue"; |
| | | import {useRouter} from 'vue-router' |
| | | import request from "@/utils/request"; |
| | | import {ElMessage} from "element-plus"; |
| | | import deepClone from "@/utils/deepClone"; |
| | | import {changeFilterEvent,filterChanged} from "@/hook" |
| | | import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove"; |
| | | |
| | | let router = useRouter() |
| | | |
| | | //定义页面总页数 |
| | | let pageTotal=ref('') |
| | | //定义数据返回结果 |
| | | let produceList = ref([]) |
| | | //定义当前页数 |
| | | let pageNum=$ref(1) |
| | | const xGrid = ref(); |
| | | let cellArea = ref() |
| | | |
| | | |
| | | let filterData = ref({ |
| | | |
| | | }) |
| | | |
| | | |
| | | //第一次调用 |
| | | request.post(`/Replenish/getSelectReplenish/${pageNum}/100`,filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | |
| | | produceList = deepClone(res.data) |
| | | xGrid.value.loadData(produceList) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | } |
| | | }) |
| | | |
| | | |
| | | //表尾求和 |
| | | const sumNum = (list, field) => { |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | //remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns:[ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | { type: 'checkbox',fixed:"left", title: '选择', width: 80 }, |
| | | { type: 'seq',fixed:"left", title: '自序', width: 50 }, |
| | | {field: '报工时间', width: 120,title: '报工时间', sortable: true}, |
| | | {field: '销售单号', width: 120, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, }, |
| | | {field: '流程卡号',width: 120, title: '流程卡号', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: '项目名称', width: 130,title: '项目名称', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: '产品名称',width: 120, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '报工编号', width: 100,title: '报工编号', sortable: true,showOverflow:"ellipsis"}, |
| | | {field: '序号', width: 70,title: '序号', sortable: true}, |
| | | {field: '单片名称',width: 100, title: '单片名称', sortable: true}, |
| | | {field: '楼层编号',width: 120, title: '楼层编号', sortable: true,showOverflow:"ellipsis"}, |
| | | {field: '标记', width: 80,title: '标记', sortable: true}, |
| | | {field: '片标记',width: 90, title: '片标记', sortable: true}, |
| | | {field: '流程卡数量',width: 120, title: '流程卡数量', sortable: true}, |
| | | {field: '宽',width: 80, title: '宽', sortable: true}, |
| | | {field: '高',width: 80, title: '高', sortable: true}, |
| | | {field: '面积',width: 80, title: '面积', sortable: true}, |
| | | {field: '形状',width: 80, title: '形状', sortable: true}, |
| | | {field: '次破数量',width: 120, title: '次破数量', sortable: true}, |
| | | {field: '次破类型',width: 120, title: '次破类型', sortable: true}, |
| | | {field: '次破原因',width: 120, title: '次破原因', sortable: true}, |
| | | {field: '责任设备',width: 120, title: '责任设备', sortable: true}, |
| | | {field: '报工工序',width: 120, title: '报工工序', sortable: true}, |
| | | {field: '责任工序',width: 120, title: '责任工序', sortable: true}, |
| | | {field: '责任班组',width: 120, title: '责任班组', sortable: true}, |
| | | {field: '责任人员',width: 120, title: '责任人员', sortable: true}, |
| | | {field: '质检员',width: 100, title: '质检员', sortable: true} |
| | | {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, |
| | | {field: 'select',type:'checkbox',title: '选择', width: 80,fixed:"left"}, |
| | | {type: 'seq', fixed: "left", title: '自序', width: 50}, |
| | | {field: 'reportingWorkTime', width: 120, title: '报工时间', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'orderId', width: 120, title: '销售单号', showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'processId', width: 120, title: '流程卡号', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'project', width: 120, title: '项目名称', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'batch', width: 80, title: '批次',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, showOverflow: "ellipsis",filterMethod:filterChanged}, |
| | | {field: 'orderSort', width: 80, title: '序号',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'productName', width: 120, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'reportingWorkId', width: 120, title: '报工编号', filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged}, |
| | | {field: 'technologyNumber', width: 80, title: '标记',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, showOverflow: "ellipsis",filterMethod:filterChanged}, |
| | | {field: 'glassAddress', width: 90, title: '片标记', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'patchNum', width: 120, title: '次破数量', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'width', width: 80, title: '宽', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'height', width: 80, title: '高', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'shape', width: 80, title: '形状', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'patchProcesses', width: 100, title: '报工工序', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'patchType', width: 100, title: '次破类型', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'patchReason', width: 120, title: '次破原因', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'responsibleEquipment', width: 120, title: '责任设备', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'responsibleTeam', width: 120, title: '责任班组', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'qualityInsPector', width: 100, title: '质检员', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged} |
| | | ],//表头按钮 |
| | | |
| | | toolbarConfig: { |
| | | buttons: [ |
| | | {code: 'print_lck', name: '保存',status:'primary' ,icon:'vxe-icon-save'}, |
| | | {'code': 'add', 'name': '保存',status: 'primary',icon: 'vxe-icon-save'} |
| | | ], |
| | | import: false, |
| | | export: true, |
| | |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | data: [ |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | { |
| | | 报工时间:'2021-01-01', |
| | | 销售单号:'NG23010101', |
| | | 流程卡号:'NG23010101A01', |
| | | 项目名称:'xxxx', |
| | | 产品名称:"xxxxxxxxx", |
| | | 报工编号:"BG2301010001", |
| | | 楼层编号:"D4-010-01", |
| | | 面积:'23.11', |
| | | 报工工序:'钢化', |
| | | 质检员:"张三", |
| | | 序号:'1', |
| | | 单片名称: '6mm白玻平钢(外)', |
| | | 标记: '1', |
| | | 片标记: '(外)', |
| | | 流程卡数量: '11', |
| | | 宽: '575', |
| | | 高:"2241", |
| | | 形状: '普形', |
| | | 次破数量: '12', |
| | | 次破类型: '机器', |
| | | 次破原因:'气泡超标', |
| | | 责任工序:'中空', |
| | | 责任班组:'中空一班', |
| | | 责任人员:'', |
| | | 责任设备:'中空3#线', |
| | | }, |
| | | ],//table body实际数据 |
| | | //脚部求和 |
| | | footerMethod ({ columns, data }) {//页脚函数 |
| | | let footList=['流程卡数量','面积','次破数量'] |
| | |
| | | |
| | | }) |
| | | |
| | | const gridEvents = { |
| | | async toolbarButtonClick({code}) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'add': { |
| | | const selectRecords = $grid.getCheckboxRecords() |
| | | |
| | | if (selectRecords.length > 0) { |
| | | const errMap = await $grid.validate(selectRecords) |
| | | if (errMap) { |
| | | return |
| | | } |
| | | } else { |
| | | ElMessage.warning("未选中数据") |
| | | return |
| | | } |
| | | |
| | | |
| | | let flowData = ref({ |
| | | patchLog: selectRecords |
| | | |
| | | }) |
| | | request.post("/Replenish/saveReplenish", flowData.value).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success("补片单提交成功") |
| | | location.reload(); |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | }, |
| | | menuClick ({ menu, row, column }) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (menu.code) { |
| | | |
| | | case 'copyChecked' :{ |
| | | let result = toolbarButtonClickEvent() |
| | | if(result){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | let firstVal=null; |
| | | if(result.cell.indexOf('.')>-1){ |
| | | firstVal = eval("dataList["+result.start +"]."+result.cell) |
| | | }else { |
| | | firstVal=dataList[result.start][result.cell]; |
| | | } |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start && index<=result.end){ |
| | | if(result.cell.indexOf('.')>-1){ |
| | | const columnArr = result.cell.split('.') |
| | | item[columnArr[0]][columnArr[1]] = firstVal |
| | | }else{ |
| | | item[result.cell] = firstVal |
| | | } |
| | | |
| | | } |
| | | }) |
| | | } |
| | | break |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | const selectOrderList = ()=>{ |
| | | request.post(`/rework/SelectRework/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => { |
| | | if(res.code==200){ |
| | | selectDate.value = res.data.selectDate |
| | | |
| | | produceList = deepClone(res.data.data) |
| | | xGrid.value.loadData(produceList) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |
| | | //页脚跳转 |
| | | const handlePageChange = ({ currentPage, pageSize }) => { |
| | | total.pageTotal = pageSize |
| | | pageNum.value=currentPage |
| | | |
| | | selectOrderList() |
| | | } |
| | | |
| | | |
| | | |
| | | </script> |
| | |
| | | |
| | | <vxe-grid |
| | | max-height="100%" |
| | | @filter-change="filterChanged" |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |