| | |
| | | <el-card class="full-table" shadow="hover" style="margin-top: 5px"> |
| | | <el-form :model="queryParams" @submit.native.prevent ref="queryForm" labelWidth="100"> |
| | | <el-row> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="10" :xl="4" class="mb10"> |
| | | <el-form-item label="部件条码" size="large"> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="10" :xl="10" class="mb10"> |
| | | <el-form-item label="包装号" size="large"> |
| | | <el-input |
| | | size="large" |
| | | v-model="queryParams.upi" |
| | | v-model="queryParams.packageCode" |
| | | ref="materialCodeInput" |
| | | clearable="" |
| | | placeholder="请扫部件条码" |
| | | @input="handleChange" |
| | | @keyup.enter.prevent="handleEnter" |
| | | placeholder="请扫包装号" |
| | | @keyup.enter.prevent="handleEnter" |
| | | @confirm.enter.prevent="handleEnter" |
| | | /> |
| | | </el-form-item> |
| | |
| | | </el-row> |
| | | </el-form> |
| | | <br /> |
| | | <div class="detailBox"> |
| | | <div class="detailBox" style="height: calc(65vh)"> |
| | | <div class="titleTip"> |
| | | <div class="" v-show="isSuccess == '成功'"> |
| | | <svg t="1732788314050" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11359" width="100" height="100"> |
| | | <path |
| | | d="M874.119618 149.859922A510.816461 510.816461 0 0 0 511.997 0.00208a509.910462 509.910462 0 0 0-362.119618 149.857842c-199.817789 199.679789-199.817789 524.581447 0 724.260236a509.969462 509.969462 0 0 0 362.119618 149.857842A508.872463 508.872463 0 0 0 874.119618 874.120158c199.836789-199.679789 199.836789-524.581447 0-724.260236zM814.94268 378.210681L470.999043 744.132295a15.359984 15.359984 0 0 1-5.887994 4.095996c-1.751998 1.180999-2.913997 2.362998-5.276994 2.913997a34.499964 34.499964 0 0 1-13.469986 2.914997 45.547952 45.547952 0 0 1-12.897986-2.303998l-4.095996-2.363997a45.291952 45.291952 0 0 1-7.009992-4.095996l-196.902793-193.789796a34.126964 34.126964 0 0 1-10.555989-25.186973c0-9.37399 3.583996-18.74698 9.98399-25.186974a36.429962 36.429962 0 0 1 50.372947 0l169.98382 167.423824L763.389735 330.220732a37.059961 37.059961 0 0 1 50.371947-1.732998 33.647965 33.647965 0 0 1 11.165988 25.186973 35.544963 35.544963 0 0 1-9.98399 24.575974v-0.04z m0 0" |
| | | fill="#52C41A" |
| | | p-id="11360" |
| | | ></path> |
| | | </svg> |
| | | <p class="okText">获取标签信息成功!</p> |
| | | </div> |
| | | <div class="" v-show="isSuccess && isSuccess != '成功'"> |
| | | <svg t="1732842594517" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4303" width="100" height="100"> |
| | | <path |
| | | d="M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z" |
| | | fill="#E84335" |
| | | p-id="4304" |
| | | ></path> |
| | | </svg> |
| | | <p class="okText">{{ isSuccess }}</p> |
| | | </div> |
| | | </div> |
| | | <ul> |
| | | <!-- <li> |
| | | <span class="text_left">是否齐包:</span> |
| | | <span class="text_rt"></span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">是否齐套:</span> |
| | | <span class="text_rt"></span> |
| | | </li> --> |
| | | |
| | | <li> |
| | | <span class="text_left">部件条码:</span> |
| | | <span class="text_rt">{{ tableData.upi }}</span> |
| | | </li> |
| | | |
| | | <li> |
| | | <span class="text_left">部件名称:</span> |
| | | <span class="text_rt">{{ tableData.detailName }}</span> |
| | | </li> |
| | | |
| | | <li> |
| | | <span class="text_left">批次号:</span> |
| | |
| | | <span class="text_left">订单号:</span> |
| | | <span class="text_rt">{{ tableData.orderId }}</span> |
| | | </li> |
| | | <br /> <br /> <br /> <br /> <br /> <br /> |
| | | <br /> <br /> <br /> <br /> <br /> |
| | | <br /> <br /> <br /> <br /> <br /> <br /> |
| | | <li> |
| | | <span class="text_left">纸箱长:</span> |
| | | <span class="text_rt">{{ tableData.info1 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">纸箱宽:</span> |
| | | <span class="text_rt">{{ tableData.info2 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">纸箱高:</span> |
| | | <span class="text_rt">{{ tableData.info3 }}</span> |
| | | </li> |
| | | |
| | | |
| | | <!-- <li> |
| | | <li> |
| | | <span class="text_left">销售合同单号:</span> |
| | | <span class="text_rt">{{ tableData.info4 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">第几包:</span> |
| | | <span class="text_rt">{{ tableData.info6 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">产品名称:</span> |
| | | <span class="text_rt">{{ tableData.info8 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">客户名称:</span> |
| | | <span class="text_rt">{{ tableData.Info10 }}</span> |
| | | </li> --> |
| | | |
| | | <!-- <li> |
| | | <span class="text_left">长:</span> |
| | | <span class="text_rt">{{ tableData.length }}</span> |
| | | <span class="text_rt">{{ tableData.info10 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">宽:</span> |
| | | <span class="text_rt">{{ tableData.width }}</span> |
| | | <span class="text_left">自提或发货:</span> |
| | | <span class="text_rt">{{ tableData.info11 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">厚:</span> |
| | | <span class="text_rt">{{ tableData.thk }}</span> |
| | | <span class="text_left">包装部件总数量:</span> |
| | | <span class="text_rt">{{ tableData.info12 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">部件纹理:</span> |
| | | <span class="text_rt">{{ tableData.matgrid }}</span> |
| | | <span class="text_left">包装面积:</span> |
| | | <span class="text_rt">{{ tableData.info13 }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">是否封边:</span> |
| | | <span class="text_rt">{{ tableData.isEB }}</span> |
| | | </li> |
| | | <li> |
| | | <span class="text_left">打孔设备编号:</span> |
| | | <span class="text_rt">{{ tableData.dRNum }}</span> |
| | | </li> --> |
| | | |
| | | </ul> |
| | | </div> |
| | | <!-- 生成form 齐套 齐包 设置ng包 --> |
| | |
| | | </template> |
| | | |
| | | <script lang="ts" setup="" name="wmsSubstituteGood"> |
| | | import { onMounted, ref } from 'vue'; |
| | | import { onBeforeUnmount, onMounted, ref } from 'vue'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import { auth } from '/@/utils/authFunction'; |
| | | import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; |
| | |
| | | import printDialog from '/@/views/system/print/component/hiprint/preview.vue'; |
| | | import editDialog from '/@/views/main/WmsBase/wmsSubstituteGood/component/editDialog.vue'; |
| | | import { pageWmsSubstituteGood, deleteWmsSubstituteGood } from '/@/api/main/WmsBase/wmsSubstituteGood'; |
| | | import { ShortageList } from '/@/api/main/ReportCenter/wmsStockQuan'; |
| | | import { ShortageList, ValdateQiTao } from '/@/api/main/ReportCenter/wmsStockQuan'; |
| | | |
| | | const showAdvanceQueryUI = ref(false); |
| | | const printDialogRef = ref(); |
| | |
| | | const loading = ref(false); |
| | | const tableData = ref<any>([]); |
| | | const queryParams = ref<any>({ |
| | | upi: '', |
| | | packageCode: '', |
| | | }); |
| | | const tableParams = ref({ |
| | | page: 1, |
| | |
| | | const changeAdvanceQueryUI = () => { |
| | | showAdvanceQueryUI.value = !showAdvanceQueryUI.value; |
| | | }; |
| | | // 用于引用输入框 |
| | | const materialCodeInput = ref(null); |
| | | |
| | | //=======================鼠标定位 用于引用输入框===================== |
| | | let materialCodeInput = ref(null); |
| | | let inactivityTimer = null; |
| | | |
| | | // 处理用户活动的函数 |
| | | const handleUserActivity = () => { |
| | | if (inactivityTimer) { |
| | | clearTimeout(inactivityTimer); |
| | | } |
| | | inactivityTimer = setTimeout(() => { |
| | | // 清空输入框的值 |
| | | materialCodeInput.value.$el.querySelector('input').value = ''; |
| | | materialCodeInput.value.$el.querySelector('input').focus(); |
| | | }, 2000); // 设定2秒未操作则自动聚焦 |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | // 在组件挂载后进行聚焦 |
| | | materialCodeInput.value.$el.querySelector('input').focus(); |
| | | document.addEventListener('mousemove', handleUserActivity); |
| | | document.addEventListener('keydown', handleUserActivity); |
| | | }); |
| | | |
| | | onBeforeUnmount(() => { |
| | | clearTimeout(inactivityTimer); |
| | | document.removeEventListener('mousemove', handleUserActivity); |
| | | document.removeEventListener('keydown', handleUserActivity); |
| | | }); |
| | | |
| | | //=======================end鼠标定位 用于引用输入框===================== |
| | | const isSuccess = ref(''); |
| | | // 查询操作 888888888 |
| | | const handleQuery = async () => { |
| | | console.log('8888888进入方法', queryParams.value); |
| | | if (!queryParams.value.upi) { |
| | | if (!queryParams.value.packageCode) { |
| | | return; |
| | | } |
| | | console.log('查询'); |
| | | loading.value = true; |
| | | var res = await ShortageList(Object.assign(queryParams.value, tableParams.value)); |
| | | if (res.data.result.length != 1) { |
| | | ElMessage.warning('此条码不存在或不在缺料清单中!'); |
| | | tableData.value = []; |
| | | var res = await ValdateQiTao(Object.assign(queryParams.value, tableParams.value)); |
| | | queryParams.value.packageCode = ''; |
| | | handleResponse(res); |
| | | |
| | | }; |
| | | function handleResponse(res: any) { |
| | | tableData.value = res.data.result ?? {}; |
| | | materialCodeInput.value.$el.querySelector('input').value = ''; |
| | | materialCodeInput.value.$el.querySelector('input').focus(); |
| | | if (res.data.code == 200) { |
| | | isSuccess.value = res.data.result ? '成功' : res.data.message || '未查询到数据'; |
| | | } else if (res.data.code == 400) { |
| | | loading.value = false; |
| | | isSuccess.value = res.data.message || '未查询到数据'; |
| | | return; |
| | | } else { |
| | | loading.value = false; |
| | | isSuccess.value = ''; |
| | | ElMessage.warning('网络异常 请求失败'); |
| | | return; |
| | | } |
| | | tableData.value = res.data.result[0] ?? []; |
| | | loading.value = false; |
| | | }; |
| | | } |
| | | |
| | | // 列排序 |
| | | const sortChange = async (column: any) => { |
| | | queryParams.value.field = column.prop; |
| | | queryParams.value.order = column.order; |
| | | await handleQuery(); |
| | | }; |
| | | |
| | | // 打开新增页面 |
| | | const openAddWmsSubstituteGood = () => { |
| | | editWmsSubstituteGoodTitle.value = '添加替代品管理'; |
| | | editDialogRef.value.openDialog({}); |
| | | }; |
| | | |
| | | // 打开打印页面 |
| | | const openPrintWmsSubstituteGood = async (row: any) => { |
| | | printWmsSubstituteGoodTitle.value = '打印替代品管理'; |
| | | }; |
| | | |
| | | // 打开编辑页面 |
| | | const openEditWmsSubstituteGood = (row: any) => { |
| | | editWmsSubstituteGoodTitle.value = '编辑替代品管理'; |
| | | editDialogRef.value.openDialog(row); |
| | | }; |
| | | |
| | | // 删除 |
| | | const delWmsSubstituteGood = (row: any) => { |
| | | ElMessageBox.confirm(`确定要删除吗?`, '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then(async () => { |
| | | var ret = await deleteWmsSubstituteGood(row); |
| | | if (ret.data.type == 'success') { |
| | | handleQuery(); |
| | | ElMessage.success('删除成功'); |
| | | } |
| | | }) |
| | | .catch(() => {}); |
| | | }; |
| | | |
| | | // 改变页面容量 |
| | | const handleSizeChange = (val: number) => { |
| | | tableParams.value.pageSize = val; |
| | | handleQuery(); |
| | | }; |
| | | |
| | | // 改变页码序号 |
| | | const handleCurrentChange = (val: number) => { |
| | | tableParams.value.page = val; |
| | | handleQuery(); |
| | | }; |
| | | |
| | | // handleQuery(); |
| | | |
| | | const rules = { |
| | | // 这里定义表单验证规则 |
| | | completeSet: [{ required: true, message: '请选择齐套', trigger: 'change' }], |
| | | packageSetup: [{ required: true, message: '请输入齐包设置', trigger: 'blur' }], |
| | | ngPackage: [{ required: true, message: '请输入ng包', trigger: 'blur' }], |
| | | }; |
| | | |
| | | const ruleForm = ref({ |
| | | id: '', |
| | | completeSet: '', |
| | | packageSetup: '', |
| | | ngPackage: '', |
| | | }); |
| | | |
| | | const sourceEnum: any = ref([ |
| | | { |
| | | value: 'id', |
| | | text: 'ID', |
| | | }, |
| | | ]); |
| | | |
| | | const handleChange = (event: Event) => { |
| | | console.log('77777777777'); |
| | | handleQuery(); |
| | | }; |
| | | |
| | | const handleEnter = (event: Event) => { |
| | | event.preventDefault(); // 阻止默认事件 |
| | |
| | | line-height: 30px; |
| | | text-align: left; |
| | | list-style-type: none; |
| | | width: 25%; |
| | | width: 48%; |
| | | display: inline-block; |
| | | word-wrap: break-word; |
| | | } |
| | | } |
| | |
| | | .text_left { |
| | | font-weight: 700; |
| | | } |
| | | .my-icon { |
| | | font-size: 36px; /* 调整字体大小 */ |
| | | color: #00ff11; /* 设置图标颜色 */ |
| | | } |
| | | .titleTip { |
| | | text-align: center; |
| | | font-size: 36px; /* 调整字体大小 */ |
| | | .okText { |
| | | margin-bottom: 20px; |
| | | } |
| | | } |
| | | </style> |