| | |
| | | import {changeFilterEvent, filterChanged} from "@/hook" |
| | | import footSum from "@/hook/footSum" |
| | | import TagStyle from "@/components/pp/TagStyle.vue" |
| | | import PrintCustomLabelXJTwo from '@/components/pp/PrintCustomLabelXJTwo.vue' |
| | | import {Printer} from "@element-plus/icons-vue/global"; |
| | | import companyInfo from "@/stores/sd/companyInfo" |
| | | import {remove} from "xe-utils"; |
| | | import PrintProcess from "@/components/pp/PrintProcess.vue"; |
| | | import PrintProcessStraight from "@/components/pp/PrintProcessStraight.vue"; |
| | | import useOrderInfoStore from "@/stores/sd/order/orderInfo" |
| | | |
| | | //语言获取 |
| | | const {t} = useI18n() |
| | | |
| | | let router = useRouter() |
| | | |
| | | const dialogTableVisible = ref(false) |
| | | const dialogTableVisibleLabelXJTwo = ref(false) |
| | | const dialogTableVisibleStraight = ref(false) |
| | | let rowClickIndex = ref(null) |
| | | const orderInfo = useOrderInfoStore() |
| | | |
| | | |
| | | //定义数据返回结果 |
| | | let produceList = ref([]) |
| | | let titleStyleVisible = ref(false) |
| | | let print = ref("1") |
| | | let printStyle = ref("1") |
| | | |
| | | //标签 |
| | | let labelRow = ref({ |
| | | list: null,//勾选的数据 |
| | | faceOrientation: null,//内外面 |
| | | type: "",//标签模板 |
| | | lableType: null,//标签类型 |
| | | dataType: 0,//标签类型 |
| | | projectNo:null |
| | | }) |
| | | const company = companyInfo() |
| | | let hidePrintLabels = company.printLabel.hideButton; |
| | | |
| | | //倒叙 |
| | | let flashback = ref(1) |
| | | //落架顺序 |
| | | let landingSequence= ref(1) |
| | | //合架打印 |
| | | let compound = ref(null) |
| | | |
| | | const form = reactive({ |
| | | date1: '', |
| | | orderId: '', |
| | | project: '' |
| | | }) |
| | | |
| | | //打印 |
| | | let printRow = ref({ |
| | | list: null, |
| | | printMergeVal: null, |
| | | like: null, |
| | | project:null, |
| | | merge: null, |
| | | flashback:null, |
| | | compound:null, |
| | | landingSequence:null, |
| | | }) |
| | | const getTableRow = (row, type) => { |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no }}) |
| | | if(parseInt(print.value)==1){ |
| | | router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:1,printStyle:parseInt(printStyle.value) }}) |
| | | }else{ |
| | | router.push({path: '/main/processCard/PrintCustomLabelSemi2', query: { projectNo: row.project_no,type:1 }}) |
| | | } |
| | | |
| | | break |
| | | } |
| | | case 'edit1' :{ |
| | | if(parseInt(print.value)==1){ |
| | | router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:2,printStyle:parseInt(printStyle.value) }}) |
| | | }else{ |
| | | router.push({path: '/main/processCard/PrintCustomLabelSemi2', query: { projectNo: row.project_no,type:2 }}) |
| | | } |
| | | break |
| | | } |
| | | case 'edit2' :{ |
| | | router.push({path: '/main/processCard/PrintLabel', query: { projectNo: row.project_no,type:3,printStyle:parseInt(printStyle.value) }}) |
| | | break |
| | | } |
| | | case 'edit3' :{ |
| | | printRow.value.project=row.project_no |
| | | printRow.value.merge = company.flowCardMerge |
| | | printRow.value.flashback = flashback.value |
| | | printRow.value.compound = compound.value |
| | | printRow.value.landingSequence=landingSequence.value |
| | | if(company.companyName=='常州市吉利玻璃有限公司'){ |
| | | dialogTableVisibleStraight.value = true |
| | | }else{ |
| | | dialogTableVisible.value = true |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | //获取七天前到当前时间 |
| | | function getNowTime() { |
| | | const start = new Date(new Date().getTime() - 3600 * 1000 * 24 * 15) |
| | | const start = new Date(new Date().getTime() - 3600 * 1000 * 24 * 14) |
| | | .toISOString() |
| | | .replace('T', ' ') |
| | | .slice(0, 10) //默认开始时间7天前 |
| | | const end = new Date(new Date().getTime() + 3600 * 1000 * 24) |
| | | const end = new Date(new Date().getTime()) |
| | | .toISOString() |
| | | .replace('T', ' ') |
| | | .slice(0, 10)//默认结束时间当前时间 |
| | |
| | | } |
| | | |
| | | //第一次加载获取近七天时间和默认状态 |
| | | form.date1 = getNowTime() |
| | | let startTime = form.date1[0] |
| | | let endTime = form.date1[1] |
| | | if (orderInfo.workOrderDate[0]=="" && orderInfo.workOrderDate[1]==""){ |
| | | orderInfo.workOrderDate=getNowTime() |
| | | } |
| | | let startTime = orderInfo.workOrderDate[0] |
| | | let endTime = orderInfo.workOrderDate[1] |
| | | let orderId=form.orderId |
| | | let project=form.project |
| | | |
| | | //第一次加载数据 |
| | | |
| | | request.post(`/processCard/selectPrintPrintProject/${startTime}/${endTime}`, filterData.value).then((res) => { |
| | | request.post(`/processCard/selectPrintPrintProject/${orderInfo.workOrderDate}`, filterData.value).then((res) => { |
| | | |
| | | if (res.code == 200) { |
| | | if(hidePrintLabels=="true"){ |
| | | //删除下拉框 |
| | | //remove(gridOptions.toolbarConfig.slots) |
| | | const button = {'code': 'printLabel', |
| | | status: 'primary', |
| | | 'name': t('processCard.finishedProductPrinting2')} |
| | | let name=company.companyName |
| | | if (name != '金华福喜天成玻璃有限公司') { |
| | | gridOptions.toolbarConfig.buttons.push(button) |
| | | } |
| | | |
| | | |
| | | |
| | | const button2 = {'code': 'detailPrinting', |
| | | status: 'primary', |
| | | 'name': t('processCard.detailPrinting')} |
| | | gridOptions.toolbarConfig.buttons.push(button2) |
| | | |
| | | } |
| | | orderInfo.workOrderDate = res.data.selectDate |
| | | produceList.value = deepClone(res.data.data) |
| | | xGrid.value.reloadData(produceList.value) |
| | | gridOptions.loading = false |
| | |
| | | let startTime = form.date1[0] |
| | | let endTime = form.date1[1] |
| | | |
| | | request.post(`/processCard/selectPrintPrintProject/${startTime}/${endTime}`, filterData.value).then((res) => { |
| | | request.post(`/processCard/selectPrintPrintProject/${orderInfo.workOrderDate}`, filterData.value).then((res) => { |
| | | if (res.code == 200) { |
| | | |
| | | orderInfo.workOrderDate = res.data.selectDate |
| | | xGrid.value.loadData(res.data.data) |
| | | gridOptions.loading = false |
| | | } else { |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | // remote: true |
| | | // remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | //表头参数 |
| | | columns: [ |
| | | {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, |
| | | {title: t('basicData.operate'), width: 80, slots: { default: 'button_slot' },fixed:"left"}, |
| | | {title: t('basicData.operate'), width: 240, slots: { default: 'button_slot' },fixed:"left"}, |
| | | {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50}, |
| | | { |
| | | field: 'project_no', |
| | | title: '工程号', |
| | | title: t('ingredientsStock.projectNo'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | | }, |
| | | // { |
| | | // field: 'order_id', |
| | | // title: t('order.orderId'), |
| | | // filters: [{data: ''}], |
| | | // slots: {filter: 'num1_filter'}, |
| | | // filterMethod: filterChanged |
| | | // }, |
| | | { |
| | | field: 'glass_thickness', |
| | | title: t('order.totalThickness'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | | }, |
| | | { |
| | | field: 'glass_type', |
| | | title: t('ingredients.films'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged |
| | | }, |
| | | { |
| | | field: 'labelPrintNum', |
| | | title: t('processCard.numberLabelPrintingOperations') |
| | | }, |
| | | { |
| | | field: 'processPrintNum', |
| | | title: t('processCard.numberTimesProcessCardPrinted') |
| | | }, |
| | | ],//表头按钮 |
| | | |
| | | toolbarConfig: { |
| | | buttons: [ |
| | | ], |
| | | |
| | | slots:{ |
| | | buttons: "toolbar_buttons", |
| | | }, |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | |
| | | if (columnIndex === 0) { |
| | | return t('basicData.total') |
| | | } |
| | | const List = ["quantity",'area',] |
| | | const List = ["glass_total","glass_total_area","labelPrintNum",'processPrintNum',] |
| | | if (List.includes(column.field)) { |
| | | return footSum(data, column.field) |
| | | } |
| | |
| | | titleStyleVisible.value = true |
| | | break |
| | | } |
| | | case 'printLabel': { |
| | | if(rowClickIndex.value===null){ |
| | | ElMessage.warning(t('processCard.pleaseSelectProject')) |
| | | return |
| | | } |
| | | labelRow.value.type = '恒鑫' |
| | | labelRow.value.dataType=2 |
| | | labelRow.value.projectNo=rowClickIndex.value.project_no |
| | | dialogTableVisibleLabelXJTwo.value = true |
| | | |
| | | |
| | | break |
| | | } |
| | | case 'detailPrinting': { |
| | | if(rowClickIndex.value===null){ |
| | | ElMessage.warning(t('processCard.pleaseSelectProject')) |
| | | return |
| | | } |
| | | router.push({path: '/main/processCard/PrintProjectDetails', query: {projectNo: rowClickIndex.value.project_no}}) |
| | | //dialogTableVisibleLabelXJTwo.value = true |
| | | |
| | | |
| | | break |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | cellClick({ row }){ |
| | | rowClickIndex.value = row |
| | | } |
| | | } |
| | | const printContentLabel = ref({ |
| | | id: 'childLabel', |
| | | }) |
| | | |
| | | const hideButton = () => { |
| | | let name=company.companyName |
| | | // 根据条件值 hidePrintLabels 过滤按钮数组 |
| | | gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => { |
| | | // 这里根据 hidePrintLabels 的值决定是否隐藏 printLabel 和 printLabel2 |
| | | if (name == '金华福喜天成玻璃有限公司') { |
| | | return button.code !== 'printLabel'; |
| | | } |
| | | }) |
| | | } |
| | | const printContent = ref({ |
| | | id: 'child', |
| | | |
| | | }) |
| | | const printCount = ()=>{ |
| | | request.post(`/processCard/updateProjectProcessPrintCount/${printRow.value.project}`).then((res) => { |
| | | if(res.code==='200'){ |
| | | ElMessage.info(t('order.printingNumber')+':'+res.data) |
| | | getWorkOrder() |
| | | } |
| | | }) |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="main-div-customer"> |
| | | <div id="selectForm"> |
| | | <el-row :gutter="0"> |
| | | <div style="width: 100%;height: 100%"> |
| | | <div class="head"> |
| | | <el-date-picker |
| | | v-model="form.date1" |
| | | v-model="orderInfo.workOrderDate" |
| | | :start-placeholder="$t('basicData.startDate')" |
| | | :end-placeholder="$t('basicData.endDate')" |
| | | format="YYYY/MM/DD" |
| | |
| | | :icon="Search" |
| | | type="primary" @click="getWorkOrder">{{ $t('basicData.search') }} |
| | | </el-button> |
| | | </el-row> |
| | | </div> |
| | | <vxe-grid |
| | | ref="xGrid" |
| | | class="mytable-scrollbar" |
| | | height="100%" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | | <!-- 下拉显示所有信息插槽--> |
| | | <template #content="{ row }"> |
| | | <ul class="expand-wrapper"> |
| | | <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined "> |
| | | <span style="font-weight: bold">{{ item.title + ': ' }}</span> |
| | | <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span> |
| | | <span v-else>{{ row[item.field] }}</span> |
| | | <div class="main-table"> |
| | | <vxe-grid |
| | | ref="xGrid" |
| | | class="mytable-scrollbar" |
| | | height="100%" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | | <!-- 下拉显示所有信息插槽--> |
| | | <template #content="{ row }"> |
| | | <ul class="expand-wrapper"> |
| | | <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined "> |
| | | <span style="font-weight: bold">{{ item.title + ': ' }}</span> |
| | | <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span> |
| | | <span v-else>{{ row[item.field] }}</span> |
| | | |
| | | </li> |
| | | </ul> |
| | | </template> |
| | | <!--左边固定显示的插槽--> |
| | | <template #button_slot="{ row }"> |
| | | <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{$t('basicData.edit')}}</el-button> |
| | | </template> |
| | | </li> |
| | | </ul> |
| | | </template> |
| | | <!--左边固定显示的插槽--> |
| | | <template #button_slot="{ row }"> |
| | | <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{$t('machine.cutting')}}</el-button> |
| | | <el-button @click="getTableRow(row,'edit1')" link type="primary" size="small">{{$t('machine.tempering')}}</el-button> |
| | | <el-button @click="getTableRow(row,'edit2')" link type="primary" size="small">{{$t('components.finishedProduct')}}</el-button> |
| | | <el-button @click="getTableRow(row,'edit3')" link type="primary" size="small">{{$t('流程卡')}}</el-button> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input v-model="option.data" type="text" @input="changeFilterEvent($event, option, $panel)"/> |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input v-model="option.data" type="text" |
| | | @keyup.enter.native="$panel.confirmFilter()" |
| | | @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </template> |
| | | |
| | | <template #toolbar_buttons="{ $grid }"> |
| | | <vxe-select @change="changeOrderType" v-model="printStyle" > |
| | | <vxe-option value="1" :label="t('processCard.print1')"></vxe-option> |
| | | <vxe-option value="2" :label="t('processCard.print2')"></vxe-option> |
| | | </vxe-select> |
| | | |
| | | <!-- <el-button |
| | | v-if="hidePrintLabels=='true'" |
| | | type="primary" |
| | | @click="$grid.dispatchEvent('toolbar-button-click', { code: 'printLabel' })" |
| | | > |
| | | {{ t('processCard.finishedProductPrinting2') }} |
| | | </el-button>--> |
| | | |
| | | <el-button |
| | | v-if="hidePrintLabels=='true'" |
| | | type="primary" |
| | | @click="$grid.dispatchEvent('toolbar-button-click', { code: 'detailPrinting' })" |
| | | > |
| | | {{ t('processCard.detailPrinting') }} |
| | | </el-button> |
| | | </template> |
| | | |
| | | <template #toolbar_button2> |
| | | <vxe-select @change="changeOrderType" v-model="print" > |
| | | <vxe-option value="1" label="EPSON LQ-82KF ESC/P2"></vxe-option> |
| | | <vxe-option value="2" label="TSC TTP-244Pro"></vxe-option> |
| | | </vxe-select> |
| | | </template> |
| | | |
| | | |
| | | </vxe-grid> |
| | | |
| | | |
| | | |
| | | </vxe-grid> |
| | | </div> |
| | | <el-dialog |
| | | id="titleStyle" |
| | | :title="$t('processCard.labelStyle')" |
| | |
| | | v-model="titleStyleVisible"> |
| | | <tag-style style="width: 100%;height: 100%"/> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | id="sizeCustom" |
| | | v-model="dialogTableVisibleLabelXJTwo" |
| | | :title="$t('processCard.printLabel')" |
| | | destroy-on-close |
| | | style="width: 80%;height:75%;overflow: auto "> |
| | | <template #header="{ close, titleId, titleClass }"> |
| | | <el-button |
| | | v-print="printContentLabel" |
| | | :icon="Printer" circle/> |
| | | </template> |
| | | <print-custom-label-x-j-two id="childLabel" |
| | | :faceOrientation="labelRow.faceOrientation" |
| | | :type="labelRow.type" |
| | | :dataType="labelRow.dataType" |
| | | :projectNo="labelRow.projectNo" |
| | | style="width: 100%;height: 100%"/> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | id="sizePrintCalrd" |
| | | v-model="dialogTableVisible" |
| | | :title="$t('processCard.print')" |
| | | destroy-on-close |
| | | style="width: 75%;height:75% "> |
| | | <template #header="{ close, titleId, titleClass }"> |
| | | <el-button |
| | | v-print="printContent" |
| | | @click="printCount" |
| | | :icon="Printer" circle /> |
| | | </template> |
| | | <print-process |
| | | id="child" |
| | | :printLike="printRow.like" |
| | | :printList="printRow.list" |
| | | :printMerge="printRow.printMergeVal" |
| | | :printProject="printRow.project" |
| | | :merges="printRow.merge" |
| | | :flashback = "printRow.flashback" |
| | | :compound = "printRow.compound" |
| | | :landingSequence = "printRow.landingSequence" |
| | | style="width: 100%;height: 100%"/> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | id="sizePrintCalrd" |
| | | v-model="dialogTableVisibleStraight" |
| | | :title="$t('processCard.print')" |
| | | destroy-on-close |
| | | style="width: 75%;height:75% "> |
| | | <template #header="{ close, titleId, titleClass }"> |
| | | <el-button v-print="printContent" :icon="Printer" circle @click="printNumber"/> |
| | | </template> |
| | | <print-process-straight |
| | | id="child" |
| | | :printLike="printRow.like" |
| | | :printList="printRow.list" |
| | | :printMerge="printRow.printMergeVal" |
| | | :printProject="printRow.project" |
| | | :merges="printRow.merge" |
| | | style="width: 100%;height: 100%"/> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | |
| | | <style scoped> |
| | | .main-div-customer { |
| | | width: 99%; |
| | | height: 93%; |
| | | .head{ |
| | | width: 100%; |
| | | height: 35px; |
| | | } |
| | | #selectForm { |
| | | width: 60%; |
| | | |
| | | .main-table{ |
| | | width: 100%; |
| | | height: calc(100% - 35px); |
| | | } |
| | | :deep(#titleStyle .el-dialog__body){ |
| | | height: 90%; |
| | | width: 100%; |
| | | } |
| | | |
| | | :deep(#sizePrintCalrd .el-dialog__body) { |
| | | height: 85%; |
| | | width: 100%; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | |
| | | </style> |