LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
@@ -17,6 +17,12 @@ //PageStockQuanForXjd= '/api/WmsOrderMovement/GetKcMaterialGroup', PageStockQuanForXjd= '/api/v_wms_stock_quan_group/Page', PageWmsLocationViewDetail = '/api/WmsPlaceContainerInfo/Detail', ValdateQiTao = '/api/WmsOperationTask/ValdateQiTao', ValdateLabel = '/api/WmsOperationTask/ValdateLabel', } // å¢å 宿¶åºå @@ -151,3 +157,24 @@ method: 'get', data: params }); ///夿é½å¥ export const ValdateQiTao = (params?: any) => request({ url: Api.ValdateQiTao, method: 'post', data: params }); export const ValdateLabel = (params?: any) => request({ url: Api.ValdateLabel, method: 'post', data: params }); LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/kittingList/component/openAllprop.vue
@@ -281,9 +281,7 @@ <el-form-item label-width="20px"> <el-button type="primary" icon="el-icon-search" @click="getDetail">æ¥è¯¢</el-button> <!-- <el-button type="primary" icon="ele-Printer" @click="getPrint">æå°</el-button> --> <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> æå° </el-button> <!-- <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> æå° </el-button> --> </el-form-item> </el-col> </el-row> LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeed/index.vue
@@ -11,7 +11,6 @@ ref="materialCodeInput" clearable="" placeholder="请æ«é¨ä»¶æ¡ç " @input="handleChange" @keyup.enter.prevent="handleEnter" @confirm.enter.prevent="handleEnter" /> @@ -33,7 +32,29 @@ </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> @@ -62,11 +83,51 @@ <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">info3:</span> <span class="text_rt">{{ tableData.info3 }}</span> </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.info7 }}</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.info11 }}</span> </li> <li> <span class="text_left">å è£ é¨ä»¶æ»æ°é:</span> <span class="text_rt">{{ tableData.info12 }}</span> </li> <li> <span class="text_left">å è£ é¢ç§¯:</span> <span class="text_rt">{{ tableData.info13 }}</span> </li> <!-- <li> <span class="text_left">客æ·åç§°:</span> <span class="text_rt">{{ tableData.Info10 }}</span> @@ -128,22 +189,16 @@ </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 { formatDate } from '/@/utils/formatTime'; import { listMes_BatchOrderUPI_New, deleteMes_BatchOrderUPI_New, importExcelMes_BatchOrderUPI_New, downloadExcelTemplateMes_BatchOrderUPI_New } from '/@/api/main/WmsOrder/mes_BatchOrderUPI_New'; 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'; const showAdvanceQueryUI = ref(false); const printDialogRef = ref(); const editDialogRef = ref(); const loading = ref(false); const tableData = ref<any>([]); const tableData = ref<any>({}); const queryParams = ref<any>({ upi: '', }); @@ -152,129 +207,68 @@ pageSize: 10, total: 0, }); const getIsDisabledData = [ { value: true, text: 'æ¯', }, { value: false, text: 'å¦', }, ]; const printWmsSubstituteGoodTitle = ref(''); const editWmsSubstituteGoodTitle = ref(''); // æ¹åé«çº§æ¥è¯¢çæ§ä»¶æ¾ç¤ºç¶æ const changeAdvanceQueryUI = () => { showAdvanceQueryUI.value = !showAdvanceQueryUI.value; //=======================é¼ æ å®ä½ ç¨äºå¼ç¨è¾å ¥æ¡===================== 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ç§æªæä½åèªå¨èç¦ }; // ç¨äºå¼ç¨è¾å ¥æ¡ const materialCodeInput = ref(null); 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) { 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 = []; queryParams.value.upi = ''; 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(); // 黿¢é»è®¤äºä»¶ @@ -301,7 +295,8 @@ line-height: 30px; text-align: left; list-style-type: none; width: 25%; width: 48%; display: inline-block; word-wrap: break-word; } } @@ -309,4 +304,15 @@ .text_left { font-weight: 700; } .my-icon { font-size: 36px; /* è°æ´åä½å¤§å° */ color: #00ff11; /* è®¾ç½®å¾æ é¢è² */ } .titleTip { text-align: center; font-size: 36px; /* è°æ´åä½å¤§å° */ .okText { margin-bottom: 20px; } } </style> LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue
@@ -4,13 +4,13 @@ <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-form-item label="å è£ å·" size="large"> <el-input size="large" v-model="queryParams.upi" v-model="queryParams.packageCode" ref="materialCodeInput" clearable="" placeholder="请æ«é¨ä»¶æ¡ç " placeholder="请æ«å è£ å·" @input="handleChange" @keyup.enter.prevent="handleEnter" @confirm.enter.prevent="handleEnter" @@ -33,17 +33,30 @@ </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> @@ -62,40 +75,52 @@ <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.info7 }}</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å --> @@ -128,7 +153,7 @@ </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'; @@ -137,7 +162,7 @@ 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(); @@ -145,7 +170,7 @@ const loading = ref(false); const tableData = ref<any>([]); const queryParams = ref<any>({ upi: '', packageCode: '', }); const tableParams = ref({ page: 1, @@ -169,31 +194,68 @@ 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) => { @@ -301,7 +363,8 @@ line-height: 30px; text-align: left; list-style-type: none; width: 25%; width: 48%; display: inline-block; word-wrap: break-word; } } @@ -309,4 +372,15 @@ .text_left { font-weight: 700; } .my-icon { font-size: 36px; /* è°æ´åä½å¤§å° */ color: #00ff11; /* è®¾ç½®å¾æ é¢è² */ } .titleTip { text-align: center; font-size: 36px; /* è°æ´åä½å¤§å° */ .okText { margin-bottom: 20px; } } </style> LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/component/openAllprop.vue
@@ -280,7 +280,7 @@ <el-col :span="4"> <el-form-item label-width="20px"> <el-button type="primary" icon="el-icon-search" @click="getDetail">æ¥è¯¢</el-button> <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> æå° </el-button> <!-- <el-button type="primary" style="margin-left: 5px" icon="ele-Printer" @click="handleHtmlPrint"> æå° </el-button> --> </el-form-item> </el-col> </el-row> LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/packList/index.vue
@@ -87,7 +87,7 @@ <el-button type="primary" icon="ele-Search" @click="handleQuery"> æ¥è¯¢ </el-button> <el-button icon="ele-Refresh" @click="() => (queryParams = {})"> éç½® </el-button> <el-button icon="ele-Refresh" @click="clickOut"> 强å¶åºåº </el-button> <el-button icon="ele-Finished" @click="clickOut"> 强å¶åºåº </el-button> <!-- <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left: 5px"> é«çº§æ¥è¯¢ </el-button> <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left: 5px"> éè </el-button> --> LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/component/editDialog.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,120 @@ <template> <div class="wmsSubstituteGood-container"> <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false"> <template #header> <div style="color: #fff"> <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>--> <span>{{ props.title }}</span> </div> </template> <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules"> <el-row :gutter="35"> <el-form-item v-show="false"> <el-input v-model="ruleForm.id" /> </el-form-item> </el-row> </el-form> <template #footer> <span class="dialog-footer"> <el-button @click="cancel">å æ¶</el-button> <el-button type="primary" @click="submit">ç¡® å®</el-button> </span> </template> </el-dialog> </div> </template> <style scoped> :deep(.el-select), :deep(.el-input-number) { width: 100%; } </style> <script lang="ts" setup> import { ref,onMounted } from "vue"; import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils'; import { ElMessage } from "element-plus"; import type { FormRules } from "element-plus"; import { addWmsSubstituteGood, updateWmsSubstituteGood, detailWmsSubstituteGood } from "/@/api/main/WmsBase/wmsSubstituteGood"; //ç¶çº§ä¼ 鿥çåæ° var props = defineProps({ title: { type: String, default: "", }, }); //ç¶çº§ä¼ 鿥ç彿°ï¼ç¨äºåè° const emit = defineEmits(["reloadTable"]); const ruleFormRef = ref(); const isShowDialog = ref(false); const ruleForm = ref<any>({}); //èªè¡æ·»å å ¶ä»è§å const rules = ref<FormRules>({ substituteCode: [{required: true, message: '请è¾å ¥æ¿ä»£ç¼å·ï¼', trigger: 'blur',},], materialCode: [{required: true, message: 'è¯·éæ©ç©æç¼å·ï¼', trigger: 'change',},], materialName: [{required: true, message: '请è¾å ¥ç©æåç§°ï¼', trigger: 'blur',},], substituteMaterialCode: [{required: true, message: '请è¾å ¥æ¿ä»£åç©æç¼å·ï¼', trigger: 'blur',},], substituteMaterialName: [{required: true, message: '请è¾å ¥æ¿ä»£åç©æåç§°ï¼', trigger: 'blur',},], substituteIndex: [{required: true, message: '请è¾å ¥æ¿ä»£æ¬¡åºï¼', trigger: 'blur',},], }); // æå¼å¼¹çª const openDialog = async (row: any) => { // ruleForm.value = JSON.parse(JSON.stringify(row)); // æ¹ç¨detailè·åææ°æ°æ®æ¥ç¼è¾ let rowData = JSON.parse(JSON.stringify(row)); if (rowData.id) ruleForm.value = (await detailWmsSubstituteGood(rowData.id)).data.result; else ruleForm.value = rowData; isShowDialog.value = true; }; // å ³éå¼¹çª const closeDialog = () => { emit("reloadTable"); isShowDialog.value = false; }; // åæ¶ const cancel = () => { isShowDialog.value = false; }; // æäº¤ const submit = async () => { ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => { if (isValid) { let values = ruleForm.value; if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) { await addWmsSubstituteGood(values); } else { await updateWmsSubstituteGood(values); } closeDialog(); } else { ElMessage({ message: `表åæ${Object.keys(fields).length}å¤éªè¯å¤±è´¥ï¼è¯·ä¿®æ¹ååæäº¤`, type: "error", }); } }); }; // 页é¢å è½½æ¶ onMounted(async () => { }); //å°å±æ§æè 彿°æ´é²ç»ç¶ç»ä»¶ defineExpose({ openDialog }); </script> LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/scanCodeKitting/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,315 @@ <template> <div class="wmsSubstituteGood-container"> <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="8" :xl="4" class="mb10"> <el-form-item label="å è£ å·" size="large"> <el-input size="large" v-model="queryParams.packageCode" ref="materialCodeInput" clearable="" placeholder="请æ«å è£ å·" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> <el-form-item label="é¨ä»¶æ¡ç " size="large"> <el-input size="large" v-model="queryParams.upi" ref="materialCodeInputupi" clearable="" placeholder="请æ«é¨ä»¶æ¡ç " @keyup.enter.prevent="handleEnterUip" @confirm.enter.prevent="handleEnterUip" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="3" :xl="3" class="mb10"> <el-form-item> <el-button-group style="display: flex; align-items: center"> <el-button size="large" type="primary" icon="ele-Search" @click="handleQuery"> æ¥è¯¢ </el-button> <el-button size="large" icon="ele-Refresh" @click="() => (queryParams = {})"> éç½® </el-button> <!-- <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> é«çº§æ¥è¯¢ </el-button> <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> éè </el-button> --> <!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsSubstituteGood" v-auth="'wmsSubstituteGood:add'"> æ°å¢ </el-button> --> </el-button-group> </el-form-item> </el-col> </el-row> </el-form> <br /> <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">{{ tableData.planNo }}</span> </li> <li> <span class="text_left">订åå·:</span> <span class="text_rt">{{ tableData.orderId }}</span> </li> <li> <span class="text_left">ç产åå·:</span> <span class="text_rt">{{ tableData.info5 }}</span> </li> <li> <span class="text_left">å è£ å·:</span> <span class="text_rt">{{ tableData.packageCode }}</span> </li> <!-- <li> <span class="text_left">åºå代ç :</span> <span class="text_rt">{{ tableData.areaCode }}</span> </li> --> <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> <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.info7 }}</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.info11 }}</span> </li> <li> <span class="text_left">å è£ é¨ä»¶æ»æ°é:</span> <span class="text_rt">{{ tableData.info12 }}</span> </li> <li> <span class="text_left">å è£ é¢ç§¯:</span> <span class="text_rt">{{ tableData.info13 }}</span> </li> </ul> </div> </el-card> </div> </template> <script lang="ts" setup="" name="wmsSubstituteGood"> 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 { formatDate } from '/@/utils/formatTime'; import { listMes_BatchOrderUPI_New, deleteMes_BatchOrderUPI_New, importExcelMes_BatchOrderUPI_New, downloadExcelTemplateMes_BatchOrderUPI_New } from '/@/api/main/WmsOrder/mes_BatchOrderUPI_New'; import { ShortageList, ValdateLabel } from '/@/api/main/ReportCenter/wmsStockQuan'; const loading = ref(false); const tableData = ref<any>({}); const queryParams = ref<any>({ upi: '', packageCode: '', }); // å®ä¹åçæ¥å£ interface Column { ColumnName: string; ColumnDescription: string; } // åè¡¨æ°æ® const arrList = ref<Column[]>([ { ColumnName: 'info1', ColumnDescription: '纸箱é¿' }, { ColumnName: 'info2', ColumnDescription: '纸箱宽' }, { ColumnName: 'info3', ColumnDescription: '纸箱é«' }, { ColumnName: 'info4', ColumnDescription: 'éå®åååå·' }, { ColumnName: 'info5', ColumnDescription: 'ç产åå·' }, { ColumnName: 'info6', ColumnDescription: '第å å ' }, { ColumnName: 'info7', ColumnDescription: 'ç»éåºåç§°' }, { ColumnName: 'info8', ColumnDescription: '产ååç§°' }, { ColumnName: 'info9', ColumnDescription: 'å è£ ç¼ç ' }, { ColumnName: 'info10', ColumnDescription: '客æ·åç§°' }, { ColumnName: 'info11', ColumnDescription: 'èªæoråè´§' }, { ColumnName: 'info12', ColumnDescription: 'å è£ é¨ä»¶æ»æ°é' }, { ColumnName: 'info13', ColumnDescription: 'å è£ é¢ç§¯' }, { ColumnName: 'info14', ColumnDescription: 'é¨ä»¶åç§°' }, { ColumnName: 'info15', ColumnDescription: 'é¨ä»¶æ°é' }, { ColumnName: 'info16', ColumnDescription: 'é¨ä»¶å°ºå¯¸' }, { ColumnName: 'info17', ColumnDescription: 'æºæ¢°èæ¯å¦æè½¬' }, ]); //=======================é¼ æ å®ä½ ç¨äºå¼ç¨è¾å ¥æ¡===================== let materialCodeInput = ref(null); let materialCodeInputupi = ref(null); let inactivityTimer = null; // å¤çç¨æ·æ´»å¨ç彿° const handleUserActivity = () => { if (inactivityTimer) { clearTimeout(inactivityTimer); } inactivityTimer = setTimeout(() => { //1没å¼å°±èç¦ if (!materialCodeInput.value.$el.querySelector('input').value) { materialCodeInput.value.$el.querySelector('input').focus(); return; } //齿å¼å°±è¿å ä¸ºäºæ¹ä¾¿è¯·æ±æ¥å£ if (materialCodeInput.value.$el.querySelector('input').value && materialCodeInputupi.value.$el.querySelector('input').value) { return; } // æ¸ ç©ºè¾å ¥æ¡çå¼ if (materialCodeInput.value.$el.querySelector('input').value) { console.log('æå¼'); materialCodeInputupi.value.$el.querySelector('input').value = ''; materialCodeInputupi.value.$el.querySelector('input').focus(); isSuccess.value = ''; tableData.value = {}; } else { materialCodeInput.value.$el.querySelector('input').value = ''; materialCodeInputupi.value.$el.querySelector('input').value = ''; materialCodeInput.value.$el.querySelector('input').focus(); } }, 1000); // 设å®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 && !queryParams.value.packageCode) { return; } loading.value = true; var res = await ValdateLabel({ PackageCode: queryParams.value.packageCode, Upi: queryParams.value.upi, }); handleResponse(res); }; function handleResponse(res:any) { tableData.value = res.data.result ?? {}; materialCodeInput.value.$el.querySelector('input').value = ''; materialCodeInputupi.value.$el.querySelector('input').value = ''; materialCodeInput.value.$el.querySelector('input').focus(); if (res.data.code == 200) { isSuccess.value = res.data.result.packageCode ? 'æå' : 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; } } const handleEnterUip = (event: Event) => { event.preventDefault(); // 黿¢é»è®¤äºä»¶ handleQuery(); }; </script> <style scoped> :deep(.el-input), :deep(.el-select), :deep(.el-input-number) { width: 100%; } .detailBox { width: 90%; margin: 0 auto; display: block; padding-bottom: 10px; ul { margin: 0; padding: 0; li { display: block; line-height: 30px; text-align: left; list-style-type: none; 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> LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
@@ -327,16 +327,17 @@ /// [HttpGet] [ApiDescriptionSettings(Name = "ShortageList")] [Description("WmsStockQuan/ShortageList")] public async Task<List<WmsShortageListOutput>> ShortageList(KittingListInput input) public async Task<WmsShortageListOutput> ShortageList(KittingListInput input) { var listRes = await GetShortageListCore(input); var resJson = new WmsShortageListOutput(); if (!string.IsNullOrWhiteSpace(input.UPI)) { listRes = listRes.Where(u => u.UPI == input.UPI).ToList(); resJson = listRes.FirstOrDefault(u => u.UPI == input.UPI); //var filteredResult = listRes.FirstOrDefault(u => u.UPI == input.UPI); } return listRes; return resJson; } /// <summary> LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsTask/WmsOperationTaskService.cs
@@ -114,7 +114,7 @@ { throw Oops.Oh($"没æé ç½® 夿é½å¥ å¼"); } if (!string.IsNullOrEmpty(sysConfig.Value)) if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value!="æ ") { throw Oops.Oh($"夿é½å¥å¼å·²ç»åå¨å¼{sysConfig.Value},ä¸å 许æä½"); }