This commit is contained in:
2025-05-12 09:22:57 +08:00
parent eef4079220
commit d6dbe5ea23
17 changed files with 196 additions and 127 deletions

View File

@@ -25,7 +25,7 @@
</el-tooltip>
</template>
<template #printBtn="{ row }">
<el-button type="text" @click="printPackingFun(row,expandObj.row)">包装打印</el-button>
<el-button type="text" @click="printPackingFun(row,expandObj.row)">{{ t('message.index.print') }}</el-button>
</template>
</avue-crud>
</div>
@@ -44,18 +44,18 @@
</div>
<div class="selectItem">
<el-input v-model="state.indexRow.fBillNo" style="width: 280px" size="default" disabled>
<template #prepend>收料通知单</template>
<template #prepend>{{ t('message.tiaoma.grn') }}</template>
</el-input>
</div>
<div class="selectItem">
<el-select v-model="state.printSelection" clearable placeholder="请选择打印模板" size="default" style="width: 150px">
<el-option label="珠海" value="0" />
<el-option label="泰国" value="1" />
<el-select v-model="state.printSelection" clearable :placeholder="t('message.tiaoma.qxzdymb')" size="default" style="width: 150px">
<el-option :label="t('message.tiaoma.zhuhai')" value="0" />
<el-option :label="t('message.tiaoma.taiguo')" value="1" />
</el-select>
</div>
<el-button type="primary" size="default" @click="printCheckAllFun">整单打印</el-button>
<el-button type="primary" size="default" @click="defaultPrinterFun">选择默认打印机</el-button>
<el-button type="danger" size="default" v-if="state.timer !== null" @click="printCheckDangerFun">取消打印 </el-button>
<el-button type="primary" size="default" @click="printCheckAllFun">{{ t('message.tiaoma.zddy') }}</el-button>
<el-button type="primary" size="default" @click="defaultPrinterFun">{{ t('message.tiaoma.xzdyj') }}</el-button>
<!-- <el-button type="danger" size="default" v-if="state.timer !== null" @click="printCheckDangerFun">取消打印</el-button> -->
</div>
</template>
</avue-crud>
@@ -102,8 +102,8 @@ const state: any = reactive({
{ label: computed(() => t('message.index.supplierCode')), prop: 'supplierId' },
{ label: computed(() => t('message.index.supplierName')), prop: 'supplierName'},
{ label: computed(() => t('message.index.shipmentQTY')), prop: 'qty' },
{ label: '每包数', prop: 'packagingQuantity' },
{ label: '包装数 / 序号', prop: 'quantityPerPackage' },
{ label: computed(() => t('message.tiaoma.mbs')), prop: 'packagingQuantity' },
{ label: computed(() => t('message.tiaoma.bzsxh')), prop: 'quantityPerPackage' },
{ label: computed(() => t('message.index.print')), prop: 'printBtn' },
],
},
@@ -131,8 +131,8 @@ const state: any = reactive({
{ label: computed(() => t('message.index.supplierCode')), prop: 'supplierId' },
{ label: computed(() => t('message.index.supplierName')), prop: 'supplierName' },
{ label: computed(() => t('message.index.shipmentQTY')), prop: 'qty' },
{ label: '每包数', prop: 'packagingQuantity' },
{ label: '包装数 / 序号', prop: 'quantityPerPackage' },
{ label: computed(() => t('message.tiaoma.mbs')), prop: 'packagingQuantity' },
{ label: computed(() => t('message.tiaoma.bzsxh')), prop: 'quantityPerPackage' },
{ label: computed(() => t('message.index.print')), prop: 'printBtn' },
],
},
@@ -150,22 +150,15 @@ const state: any = reactive({
//打印校验
const printVerification = () => {
if (state.printSelection === '') {
ElMessage.warning('请选择打印模板');
ElMessage.warning(t('message.tiaoma.qxzdymb'));
return false;
}
if (state.timer !== null) {
ElMessage.warning('打印机正在工作中');
ElMessage.warning(t('message.tiaoma.dyjzzgzz'));
return false;
}
return true;
};
//取消打印
const printCheckDangerFun = () => {
LODOP.SET_PRINT_MODE(`CONTROL_PRINTER:${state.printJQ}`, 'PURGE');
clearInterval(state.allSetTime);
clearInterval(state.timer);
state.timer = null;
};
//切换打印机
const defaultPrinterFun = () => {
LODOP.SELECT_PRINTER();
@@ -177,7 +170,7 @@ const printCheckAllFun = () => {
closeOnClickModal: false,
closeOnPressEscape: false,
title: t('message.index.prompt'),
message: '确定要打印整单吗?',
message: t('message.index.qdyzddym'),
confirmButtonText: t('message.index.confirm'),
cancelButtonText: t('message.user.logOutCancel'),
showCancelButton: true,
@@ -194,7 +187,7 @@ const printCheckAllFun = () => {
clearInterval(state.allSetTime);
state.allSetTime = null;
}
}, 500);
}, 1000);
done();
} else {
done();
@@ -274,10 +267,10 @@ const AddPrintContentZhuhai = (row: any) => {
//泰国模板
const AddPrintContentTaiguo = (row: any) => {
LODOP.ADD_PRINT_BARCODE(25, 15, 150, 150, 'QRCode', row.fBarCode);
LODOP.ADD_PRINT_TEXT(28, 160, 300, 20, `物料编码${row.materialCode}`);
LODOP.ADD_PRINT_TEXT(58, 160, 300, 20, `包装数量${row.packagingQuantity}`);
LODOP.ADD_PRINT_TEXT(88, 160, 300, 20, `美塞斯批号${row.mssSupplierLot}`);
LODOP.ADD_PRINT_TEXT(118, 160, 300, 20, `供应商批号${row.fSupplierLot}`);
LODOP.ADD_PRINT_TEXT(28, 160, 300, 20, `${t('message.tiaoma.pno')}${row.materialCode}`);
LODOP.ADD_PRINT_TEXT(58, 160, 300, 20, `${t('message.tiaoma.qty')}${row.packagingQuantity}`);
LODOP.ADD_PRINT_TEXT(88, 160, 300, 20, `${t('message.tiaoma.bn')}${row.mssSupplierLot}`);
LODOP.ADD_PRINT_TEXT(118, 160, 300, 20, `${t('message.tiaoma.po')}${row.purchaseBillNo}`);
};
//本地分包算法
const inputNumberFun = (e: any, row: any) => {
@@ -307,10 +300,8 @@ const inputNumberFun = (e: any, row: any) => {
);
child.quantityPerPackage = i + 1;
child.printBtn = '打印此包装';
child.printBtn = t('message.index.print');
child.supplierName = item.supplierName
console.log(item)
console.log(child)
if (i === packages - 1 && item.qty % e !== 0) {
child.packagingQuantity = item.qty % e;
child.qty = child.packagingQuantity
@@ -327,8 +318,8 @@ const inputNumberFun = (e: any, row: any) => {
const openShowDataFun = (row: any) => {
if (LODOP === undefined) {
ElNotification({
title: '提示',
message: '检测到无打印插件,正在下载',
title: t('message.index.prompt'),
message: t('message.tiaoma.jcdwdypz'),
type: 'warning',
duration: 0,
position: 'top-left',
@@ -338,8 +329,8 @@ const openShowDataFun = (row: any) => {
window.location.href = 'http://58.252.252.77:8085/CLodop_Setup_for_Win64NT_6.623EN.exe';
} else if (userAgent.includes('mac')) {
ElNotification({
title: '提示',
message: 'MAC无打印配置',
title: t('message.index.prompt'),
message: t('message.index.noMac'),
type: 'error',
duration: 0,
position: 'top-left',
@@ -357,7 +348,7 @@ const openShowDataFun = (row: any) => {
item.packagingQuantity = item.qty;
item.quantityPerPackage = 1;
item.children = [];
item.printBtn = '打印条码';
item.printBtn = t('message.index.print');
});
state.show = true;
}

View File

@@ -27,7 +27,6 @@
<div class="multi-line-omit">{{ row.supplierName }}</div>
</el-tooltip>
</template>
43
<template #menu-left>
<div class="selectBoxes">
<div class="selectItem">
@@ -50,11 +49,7 @@
<el-button type="primary" size="default" @click="selectFun">{{ t('message.index.search') }}</el-button>
<el-button size="default" @click="resetFun">{{ t('message.index.reset') }}</el-button>
<el-button type="primary" size="default" @click="state.selectedDataShow = true">
<span
>{{ t('message.index.selected') }} {{ state.selectedData.length }} {{ t('message.index.items') }}{{
t('message.index.print')
}}</span
>
<span>{{ t('message.index.selected') }} {{ state.selectedData.length }} {{ t('message.index.items') }}{{ t('message.index.print') }}</span>
</el-button>
</div>
</template>

View File

@@ -5,16 +5,17 @@
</div>
<div class="btnList">
<el-button type="primary" @click="printElement">打印</el-button>
<el-button type="primary" @click="printElement">{{ t('message.index.print') }}</el-button>
</div>
</el-dialog>
</template>
<script setup lang="ts">
import { defineProps, reactive, ref, nextTick, defineEmits } from 'vue';
import { defineProps, reactive, ref, defineEmits } from 'vue';
import ceshi from './ceshi.vue';
import printJS from 'print-js';
import html2canvas from 'html2canvas';
import { useI18n } from 'vue-i18n';
const { t } = useI18n()
const ceshiRef = ref();
const emits = defineEmits(['close']);
const props = defineProps({
@@ -36,7 +37,6 @@ const closeFun = () => {
const printElement = () => {
captureSnapshot();
// 获取 DOM 元素的 HTML
};
// 截图函数
const captureSnapshot = async () => {

View File

@@ -20,7 +20,7 @@
</el-tooltip>
</template>
<template #fCancelStatus="{ row }">
{{ row.ifHidden === 0 ? (row.fCancelStatus === 'A' ? t('message.index.closed') : t('message.index.unclosed')) : '' }}
{{ row.ifHidden === 0 ? (row.fCancelStatus === 'A' ? t('message.index.unclosed') : t('message.index.unclosed')) : '' }}
</template>
<template #materialName="{ row }">
<el-tooltip :content="row.materialName" placement="top">
@@ -168,8 +168,8 @@ const state = reactive({
prop: 'fCancelStatus',
filters: true,
dicData: [
{ label: computed(() => t('message.index.unclosed')), value: 'A' },
{ label: computed(() => t('message.index.closed')), value: 'B' },
{ label: computed(() => t('message.index.unclosed')), value: 'A' },
{ label: computed(() => t('message.index.closed1')), value: 'B' },
],
width: '110',
},
@@ -186,8 +186,8 @@ const state = reactive({
searchSpan: 3,
filters: true,
dicData: [
{ label: computed(() => t('message.index.normal')), value: 'A' },
{ label: computed(() => t('message.index.closed')), value: 'B' },
{ label: computed(() => t('message.index.normal')), value: 'A' },
{ label: computed(() => t('message.index.closed')), value: 'B' },
],
width: '110',
},

View File

@@ -0,0 +1,24 @@
<template>
<div class="system-user-container layout-padding">
<el-card class="layout-padding-auto" shadow="hover">
</el-card>
</div>
</template>
<script lang="ts" setup>
import { reactive, onMounted } from 'vue';
// import { listApi } from '../../../api/list/index';
// import { ElMessage } from 'element-plus';
// 定义变量内容
const state = reactive({
data: {},
});
// 页面加载时
onMounted(() => {});
</script>
<style lang="scss" scoped>
</style>