| | |
| | | import {VXETable} from "vxe-table"; |
| | | import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove"; |
| | | import PrintProcess from '@/components/pp/PrintProcess.vue' |
| | | import PrintProcessStraight from '@/components/pp/PrintProcessStraight.vue' |
| | | import PrintLabel from '@/views/pp/processCard/PrintLabel.vue' |
| | | import PrintCustomLabel from '@/components/pp/PrintCustomLabel.vue' |
| | | import PrintCustomLabelXJ from '@/components/pp/PrintCustomLabelXJ.vue' |
| | |
| | | import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global"; |
| | | import TagStyleDesigner from "@/components/pp/TagStyleDesigner.vue"; |
| | | import useUserInfoStore from "@/stores/userInfo"; |
| | | import { ElCheckbox } from 'element-plus' |
| | | |
| | | |
| | | const company = companyInfo() |
| | | const userStore = useUserInfoStore() |
| | | const userId = userStore.user.userId |
| | |
| | | const dialogTableVisibleLabel = ref(false) |
| | | const dialogTableVisibleLabelXJ = ref(false) |
| | | const dialogTableVisibleCustomLabel = ref(false) |
| | | const dialogTableVisibleStraight = ref(false) |
| | | const printVisible = ref(false) |
| | | let selectRecords = ref(null) |
| | | let titleStyleVisible = ref(false) |
| | |
| | | let printRow = ref({ |
| | | list: null, |
| | | printMergeVal: null, |
| | | like: null |
| | | like: null, |
| | | merge: null, |
| | | printFc:null, |
| | | flashback:null, |
| | | landingSequence:null, |
| | | compound:null |
| | | }) |
| | | |
| | | //标签 |
| | |
| | | lableType: null//标签类型 |
| | | }) |
| | | |
| | | //倒叙 |
| | | let flashback = ref(1) |
| | | //落架顺序 |
| | | let landingSequence= ref(1) |
| | | //合架打印 |
| | | let compound = ref(null) |
| | | |
| | | const getTableRow = (row, type) => { |
| | | switch (type) { |
| | |
| | | }, |
| | | ] |
| | | let hidePrintLabels = company.printLabel.hideButton; |
| | | let btnType = company.printBtn; |
| | | |
| | | if (hidePrintLabels == 'true') { |
| | | filteredOptions = lableTypeOptions.filter((option, index) => index !== 2); |
| | |
| | | let orderId = route.query.orderId |
| | | data.value.printList = JSON.parse(route.query.printList) |
| | | |
| | | let printFc = route.query.printNumberFc |
| | | let inquiryMode = route.query.checkedValue |
| | | |
| | | // 第一次加载查询 |
| | | request.post(`/processCard/selectPrint/${inquiryMode}`, data.value).then((res) => { |
| | | |
| | |
| | | gridOptions.loading = false |
| | | |
| | | |
| | | hideButton() |
| | | hideHead() |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | |
| | | |
| | | |
| | | const gridOptions = reactive({ |
| | | toolbar: true, |
| | | loading: true, |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | |
| | | field: 'technology_number', |
| | | title: t('processCard.technologyNumber'), |
| | | showOverflow: "ellipsis", |
| | | width: 110, |
| | | width: 120, |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged, |
| | | sortable: true |
| | | }, |
| | | {field: 'glass_address', title: t('processCard.glassAddress'), width: 90}, |
| | | {field: 'quantity', title: t('order.quantity'), width: 90}, |
| | |
| | | ],//表头按钮 |
| | | |
| | | toolbarConfig: { |
| | | slots:{ |
| | | buttons: "toolbar_buttons" |
| | | }, |
| | | buttons: [ |
| | | {code: 'print', name: t('processCard.print'), status: 'primary'}, |
| | | {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'}, |
| | | {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'}, |
| | | {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'}, |
| | | {code: 'sortTable', name: t('processCard.sortSummary'), status: 'primary'}, |
| | | // {code: 'printTest', name: "测试打印", status: 'primary'}, |
| | | // {code: 'printLike', name: "同配置打印", status: 'primary'}, |
| | | // {code: 'print', name: t('processCard.print'), status: 'primary'}, |
| | | // {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'}, |
| | | // {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'}, |
| | | // {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'}, |
| | | // {code: 'sortTable', name: t('processCard.sortSummary'), status: 'primary'}, |
| | | ], |
| | | // import: false, |
| | | // export: true, |
| | |
| | | let lableTitle = lableType.text |
| | | if ($grid) { |
| | | switch (code) { |
| | | //打印流程卡 |
| | | case 'print': { |
| | | if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { |
| | | ElMessage.warning(t('searchOrder.msgList.checkOrder')) |
| | |
| | | printRow.value.list = JSON.stringify(selectRecords) |
| | | printRow.value.printMergeVal = printMerge.value |
| | | printRow.value.like = null |
| | | printRow.value.merge = company.flowCardMerge |
| | | printRow.value.printFc= printFc |
| | | printRow.value.flashback = flashback.value |
| | | printRow.value.landingSequence=landingSequence.value |
| | | printRow.value.compound = compound.value |
| | | // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}}) |
| | | dialogTableVisible.value = true |
| | | if(company.companyName=='常州市吉利玻璃有限公司'){ |
| | | dialogTableVisibleStraight.value = true |
| | | }else{ |
| | | dialogTableVisible.value = true |
| | | } |
| | | |
| | | break |
| | | } |
| | | |
| | | //标签打印 |
| | | case 'printLabel': { |
| | | if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { |
| | | ElMessage.warning(t('searchOrder.msgList.checkOrder')) |
| | |
| | | |
| | | break |
| | | } |
| | | //标签打印2 |
| | | case 'printLabel2': { |
| | | if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { |
| | | ElMessage.warning(t('searchOrder.msgList.checkOrder')) |
| | |
| | | |
| | | break |
| | | } |
| | | //排序汇总 |
| | | case 'sort': { |
| | | const $table = xGridDetail.value |
| | | let data = $table.getTableData().fullData |
| | |
| | | }) |
| | | break |
| | | } |
| | | //自定义打印 |
| | | case 'customLabel': { |
| | | if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { |
| | | ElMessage.warning(t('searchOrder.msgList.checkOrder')) |
| | |
| | | id += selectRecords[i].id + "|" |
| | | } |
| | | } |
| | | //成品标签1 |
| | | if (lableTypes == 1) { |
| | | |
| | | labelRow.value.list = JSON.stringify(selectRecords) |
| | |
| | | dialogTableVisibleLabel.value = true |
| | | } |
| | | |
| | | } else if (company.label === 2) { |
| | | } |
| | | //常州项目 |
| | | else if (company.label === 2) { |
| | | router.push({ |
| | | path: '/main/processCard/PrintCustomLabelCZ', |
| | | query: { |
| | |
| | | }) |
| | | } |
| | | |
| | | } else if (lableTypes == 2) { |
| | | } |
| | | //成品标签2 |
| | | else if (lableTypes == 2) { |
| | | labelRow.value.list = JSON.stringify(selectRecords) |
| | | labelRow.value.faceOrientation = faceOrientation |
| | | labelRow.value.type = type |
| | | labelRow.value.lableType = lableTypes |
| | | if (company.label === 1) { |
| | | dialogTableVisibleCustomLabel.value = true |
| | | } else if (company.label === 2) { |
| | | } |
| | | //常州项目 |
| | | else if (company.label === 2) { |
| | | router.push({ |
| | | path: '/main/processCard/PrintCustomLabelSemiCZ', |
| | | query: { |
| | |
| | | } |
| | | }) |
| | | } |
| | | } else if (lableTypes == 3) { |
| | | } |
| | | //成品标签3 常州项目 |
| | | else if (lableTypes == 3) { |
| | | router.push({ |
| | | path: '/main/processCard/PrintLabel1', |
| | | query: { |
| | |
| | | return |
| | | } |
| | | if (printMerge.value === null || printMerge.value === '') { |
| | | ElMessage.warning('请填入需要合并的层') |
| | | ElMessage.warning(t('rework.msg1')) |
| | | return |
| | | } |
| | | |
| | |
| | | printRow.value.printMergeVal = printMerge.value |
| | | printRow.value.like = "1" |
| | | // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}}) |
| | | dialogTableVisible.value = true |
| | | if(company.companyName=='常州市吉利玻璃有限公司'){ |
| | | dialogTableVisibleStraight.value = true |
| | | }else{ |
| | | dialogTableVisible.value = true |
| | | } |
| | | break |
| | | } |
| | | case 'sortTable': { |
| | |
| | | addListener(xGridDetail.value, detailGridOptions) |
| | | } |
| | | |
| | | const hideButton = () => { |
| | | // 根据条件值 hidePrintLabels 过滤按钮数组 |
| | | gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => { |
| | | // 这里根据 hidePrintLabels 的值决定是否隐藏 printLabel 和 printLabel2 |
| | | if (hidePrintLabels == 'true') { |
| | | return button.code !== 'printLabel' && button.code !== 'printLabel2' ; |
| | | } else { |
| | | return true && button.code !== 'printLike'; // 显示该按钮 |
| | | } |
| | | }) |
| | | |
| | | //判断某个按钮 code 是否要显示 |
| | | function isButtonVisible(code) { |
| | | // 如果要隐藏 printLabel/printLabel2 |
| | | if (hidePrintLabels && (code === 'printLabel' || code === 'printLabel2')) { |
| | | return false |
| | | } |
| | | // 如果 btnType 为 1,要隐藏 customLabel |
| | | if (btnType === 1 && code === 'customLabel') { |
| | | return false |
| | | } |
| | | return true |
| | | } |
| | | |
| | | const hideHead = () => { |
| | | // 判断 btnType 是否等于 '1' (可以根据需要调整为数字 1) |
| | | if (btnType == 1) { |
| | | const headDiv = document.querySelector('.head'); |
| | | if (headDiv) { |
| | | headDiv.style.display = 'none'; // 隐藏 class="head" 的 div |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 监听打印完成事件 |
| | | const printNumber = () => { |
| | |
| | | }) |
| | | } |
| | | |
| | | function onFlashbackChange(checked) { |
| | | flashback.value = checked ? 0 : 1 |
| | | } |
| | | |
| | | function onlandingSequenceChange(checked) { |
| | | landingSequence.value = checked ? 0 : 1 |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | |
| | | |
| | | > |
| | | <!-- 自定义 toolbar_buttons 插槽 --> |
| | | <template #toolbar_buttons="{ $grid }"> |
| | | |
| | | |
| | | <!-- 手动写出所有按钮 --> |
| | | <el-button |
| | | v-if="isButtonVisible('print')" |
| | | type="primary" |
| | | style="margin-right:8px;" |
| | | @click="$grid.dispatchEvent('toolbar-button-click', { code: 'print' })" |
| | | > |
| | | {{ t('processCard.print') }} |
| | | </el-button> |
| | | |
| | | <el-button |
| | | v-if="isButtonVisible('customLabel')" |
| | | type="primary" |
| | | style="margin-right:8px;" |
| | | @click="$grid.dispatchEvent('toolbar-button-click', { code: 'customLabel' })" |
| | | > |
| | | {{ t('processCard.customLabelPrinting') }} |
| | | </el-button> |
| | | |
| | | <el-button |
| | | v-if="isButtonVisible('printLabel')" |
| | | type="primary" |
| | | style="margin-right:8px;" |
| | | @click="$grid.dispatchEvent('toolbar-button-click', { code: 'printLabel' })" |
| | | > |
| | | {{ t('processCard.labelPrinting') }} |
| | | </el-button> |
| | | |
| | | <el-button |
| | | v-if="isButtonVisible('printLabel2')" |
| | | type="primary" |
| | | style="margin-right:8px;" |
| | | @click="$grid.dispatchEvent('toolbar-button-click', { code: 'printLabel2' })" |
| | | > |
| | | {{ t('processCard.labelPrinting2') }} |
| | | </el-button> |
| | | |
| | | <el-button |
| | | v-if="isButtonVisible('sortTable')" |
| | | type="primary" |
| | | style="margin-right:8px;" |
| | | @click="$grid.dispatchEvent('toolbar-button-click', { code: 'sortTable' })" |
| | | > |
| | | {{ t('processCard.sortSummary') }} |
| | | </el-button> |
| | | |
| | | <el-checkbox |
| | | :model-value="flashback === 0" |
| | | @change="onFlashbackChange" |
| | | > |
| | | {{ t('processCard.flashback') }} |
| | | </el-checkbox> |
| | | <el-checkbox |
| | | :model-value="landingSequence === 0" |
| | | @change="onlandingSequenceChange" |
| | | > |
| | | {{ t('processCard.landingSequence') }} |
| | | </el-checkbox> |
| | | <el-input |
| | | v-model="compound" |
| | | :placeholder="$t('processCard.printCompound')" |
| | | clearable |
| | | style="margin-left:20px; width: 110px;" |
| | | /> |
| | | |
| | | </template> |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | | <!-- 下拉显示所有信息插槽--> |
| | | <template #content="{ row }"> |
| | |
| | | :printLike="printRow.like" |
| | | :printList="printRow.list" |
| | | :printMerge="printRow.printMergeVal" |
| | | :printFc="printRow.printFc" |
| | | :merges="printRow.merge" |
| | | :flashback = "printRow.flashback" |
| | | :landingSequence = "printRow.landingSequence" |
| | | :compound = "printRow.compound" |
| | | 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" |
| | | :merges="printRow.merge" |
| | | style="width: 100%;height: 100%"/> |
| | | </el-dialog> |
| | | |