From 92055daa17b8d7f9d6e60113f17af269efcf2152 Mon Sep 17 00:00:00 2001 From: liuying <1427574514@qq.com> Date: 周三, 27 11月 2024 12:48:36 +0800 Subject: [PATCH] 前端 --- /dev/null | 399 ---------------------------- LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/component/editDialog.vue | 120 ++++++++ LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue | 312 ++++++++++++++++++++++ 3 files changed, 432 insertions(+), 399 deletions(-) diff --git "a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/\345\244\207\344\273\275index.vue" "b/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/\345\244\207\344\273\275index.vue" deleted file mode 100644 index 9bd7970..0000000 --- "a/LA24030_LuLiPackageLine_Web/src/views/main/ReportCenter/storageView/component/\345\244\207\344\273\275index.vue" +++ /dev/null @@ -1,399 +0,0 @@ -<template> - <div> - <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> - <el-form :model="formModel" ref="queryForm" labelWidth="90"> - <el-row> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label="鍏抽敭瀛�"> - <el-input v-model="formModel.searchKey" clearable="" - placeholder="搴撲綅缂栧彿,瀹瑰櫒缂栧彿" /> - </el-form-item> - </el-col> - - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> - <el-form-item label="鎵�鍦ㄥ簱鍖�" prop="areaCode"> - <el-select v-model="formModel.areaCode" placeholder="璇烽�夋嫨鎵�鍦ㄥ簱鍖�"> - <el-option v-for="(item,index) in arr1" :key="index" :value="item.code" :label="`[${item.code}] ${item.value}`"></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> - <el-form-item label="搴撲綅缂栧彿:"> - <el-input v-model.trim="formModel.WareLocationCode" placeholder="璇疯緭鍏ュ簱浣嶇紪鍙�" clearable></el-input> - </el-form-item> - </el-col> - - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUIWmsStockQuan"> - <el-form-item label="瀹瑰櫒缂栧彿:"> - <el-input v-model.trim="formModel.WareContainerCode" placeholder="璇疯緭鍏ュ鍣ㄧ紪鍙�" clearable></el-input> - </el-form-item> - </el-col> - - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label="搴撲綅鐘舵��:"> - <el-select v-model="formModel.inventoryType" clearable placeholder="璇烽�夋嫨搴撲綅鐘舵��" style="width: 100%;"> - <el-option v-for="item in storageStatusEnum" :key="item.value" :label="item.title" - :value="item.value" /> - </el-select> - </el-form-item> - </el-col> - - <!-- 闅愯棌鐨勭瓫閫夋潯浠� --> - <!-- <template> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label="閿佸畾鐘舵��:"> - <el-select v-model="formModel.isLocked" clearable placeholder="璇烽�夋嫨閿佸畾鐘舵��"> - <el-option v-for="item in isAutoEnum" :key="item.value" :label="item.title" :value="item.value" /> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - - <el-form-item label="宸烽亾:"> - <el-select v-model="formModel.Lane" clearable placeholder="璇烽�夋嫨宸烽亾"> - <el-option v-for="item in LangEnum" :key="item.value" :label="item.title" :value="item.value" /> - </el-select> - </el-form-item> - </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label="鎵�灞炴帓:"> - <el-select v-model="formModel.Row" clearable placeholder="璇烽�夋嫨鎵�灞炴帓"> - <el-option v-for="(item, index) in strorageRowEnum" :key="item" :label="`绗�${index + 1}鎺抈" - :value="index + 1" /> - </el-select> - </el-form-item> - </el-col> - </template> --> - <!-- <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> - <el-form-item label-width="20px"> - <el-button type="primary" icon="el-icon-search" @click="getLocationPage(2)">鏌ヨ</el-button> - <el-button icon="ele-Refresh" @click="() => formModel = {}"> 閲嶇疆 </el-button> - </el-form-item> - </el-col> --> - - - <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10"> - <el-form-item> - <el-button-group style="display: flex; align-items: center"> - <el-button type="primary" icon="ele-Search" @click="getLocationPage(2)"> - 鏌ヨ - </el-button> - <el-button icon="ele-Refresh" @click="() => formModel = {}"> - 閲嶇疆 - </el-button> - <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUIWmsStockQuan" - v-if="!showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> - 楂樼骇鏌ヨ - </el-button> - <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUIWmsStockQuan" - v-if="showAdvanceQueryUIWmsStockQuan" style="margin-left: 5px"> - 闅愯棌 - </el-button> - - </el-button-group> - </el-form-item> - </el-col> - - </el-row> - - </el-form> - </el-card> - -<el-card class="full-table" shadow="hover" style="margin-top: 5px"> - <div class="msi-content" style="height:calc(100vh - 200px)"> - -<div> - <p>1#绔嬩綋搴�</p> - <div class="storage-grid"> - <!-- 閬嶅巻姣忎竴鎺� --> - <div class="row" :class="'rowMy' + rowIndex" v-for="(row, rowIndex) in storageList" :key="rowIndex"> - <!-- 閬嶅巻姣忎竴鍧� --> - <div class="cell " v-for="(cell, cellIndex) in row" :key="cellIndex"> - {{ cell }} <!-- 鏄剧ず姣忎釜搴撲綅鐨勫唴瀹� --> - </div> - </div> - </div> -</div> - - - <!-- 缁熻鍖哄煙 --> - <count-view :countData="countList"></count-view> - <!-- 搴撲綅灞曠ず --> - <content-view :contentData="dataList"></content-view> - </div> -</el-card> - - </div> -</template> -<script lang="ts" setup> -import { nextTick, onMounted, ref } from 'vue' -//import SearchBar from '@/components/SearchBar.vue' -import { getStorageView } from '/@/api/main/ReportCenter/storageView'; - -import CountView from './component/CountView.vue' -import ContentView from './component/ContentView.vue' -import { ElMessage } from 'element-plus'; -import { handleSlectDataWmsArea } from '/@/utils/selectData'; - -const showAdvanceQueryUIWmsStockQuan = ref(false); -// 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� -const changeAdvanceQueryUIWmsStockQuan = () => { - showAdvanceQueryUIWmsStockQuan.value = !showAdvanceQueryUIWmsStockQuan.value; -}; - - -const LangEnum = ref([ // 鎵�灞炲贩閬� - { - value: '1', - title: '1宸烽亾' - }, - { - value: '2', - title: '2宸烽亾' - }, - { - value: '3', - title: '3宸烽亾' - } -]) -const isAutoEnum: any[] = [ - { - title: '鍚�', - value: 0 - }, - { - title: '鏄�', - value: 1 - } -] - - -//搴撲綅鐘舵�� -const storageStatusEnum = ref([ - { - value: '0', - title: '绌哄簱浣�' - }, - { - value: '1', - title: '绌哄鍣ㄥ簱浣�' - }, - { - value: '2', - title: '鏈夎揣搴撲綅' - }, -]) - -const strorageRowEnum = ref<any>([]) // 鎵�灞炴帓 -//鍒楄〃璇锋眰鏁版嵁 -const formModel = ref({ - Lane: '', - Row: '', - MaterialCode: '', - inventoryType: '', - ShelfCode: '', - Code: '', - ContainerCode: '', - Status: '', - isLocked: '', - areaCode:"A2", - PageNo: 1, - PageSize: 10000 -}) - -//搴撲綅鍒楄〃鏁版嵁 -const dataList = ref([]); -//缁熻鐨勬暟鎹� -const countList = ref([ - { - type: 0, - title: '绌哄簱浣�:', - count: 0 - }, - { - type: 1, - title: '鏈夎揣搴撲綅锛堢┖瀹瑰櫒锛�:', - count: 0 - }, - { - type: 2, - title: '鏈夎揣搴撲綅锛堢墿鏂欙級:', - count: 0 - }, - // { - // type: 3, - // title: '閿佸畾搴撲綅:', - // count: 0 - // }, - // { - // type: 4, - // title: '绂佺敤搴撲綅:', - // count: 0 - // } -]); - -// 鎸夌収琛屽垪鐩稿悓杩涜鍒嗙粍 -const sortClass = (sortData: any) => { - const groupBy = (array: any, f: any) => { - let groups = {}; - array.forEach((o) => { - let group = JSON.stringify(f(o)); - groups[group] = groups[group] || []; - groups[group].push(o); - }); - return Object.keys(groups).map((group) => { - return groups[group]; - }); - }; - const sorted = groupBy(sortData, (item) => { - return item.lane + '-' + item.column; // 杩斿洖闇�瑕佸垎缁勭殑瀵硅薄 - }); - return sorted; -}; - -// 鍒嗙粍鍓� -// console.log(listData); -// 鍒嗙粍鍚� -// console.log(sortClass(listData)); - -//搴撲綅鍥惧垪琛� -const getLocationPage = async (param?: any) => { - if (param && param == 2) { - if (formModel.value.Lane == "" && formModel.value.Row != "") { - ElMessage.warning("璇烽�夋嫨鎵�灞炲贩閬擄紒") - return - } - } - - if(!formModel.value.areaCode){ - ElMessage.warning("璇烽�夋嫨鎵�鍦ㄥ簱鍖猴紒") - return - } - - var res = await getStorageView(Object.assign(formModel.value, {})); - if (res.data.code == 200) { - const { data } = res; - const result = data.result; - strorageRowEnum.value = new Array(4).fill(0); - countList.value[0].count = result.emptyLocation || 0; //绌哄簱浣� - countList.value[1].count = result.emptyContainerLocation || 0; //绌哄鍣ㄥ簱浣� - countList.value[2].count = result.materialLocation || 0; //鏈夎揣搴撲綅 - // countList.value[3].count = result.lockedLocation || 0; //閿佸畾搴撲綅 - // countList.value[4].count = result.disableLocation || 0; //绂佺敤搴撲綅 - debugger - if (res.data.result.lanes) { - res.data.result.lanes.forEach((element: any) => { - element.rows.forEach((item: any) => { - item.rowLocations2 = sortClass(item.rowLocations) - }) - }); - } - dataList.value = res.data.result.lanes; - - } - -} -getLocationPage() - -const resetFormModel = JSON.parse(JSON.stringify(formModel.value)); -//閲嶇疆鎼滅储 -const resetForm = () => { - formModel.value = JSON.parse(JSON.stringify(resetFormModel)); - // getLocationPage() -}; - -let arr1:any =ref("") //涓嬫媺璇诲彇鎺ュ彛 -// 椤甸潰鍔犺浇鏃� -onMounted(async () => { - nextTick(async () => { - arr1.value = await handleSlectDataWmsArea({ - page: 1, - pageSize: 1000, - total: 0, - IsDisabled:false, - isVirtually:false, - areaType:1 //绔嬩綋搴� - }); //涓嬫媺璇诲彇鎺ュ彛 - }); -}); - - - - - - - -//==================88888888888888====================== - -const storageList = ref([]); // 鐢ㄤ簬瀛樻斁搴撲綅鐨勬暟缁� - -onMounted(() => { - initializeStorage(); // 鍦ㄧ粍浠舵寕杞藉悗鍒濆鍖栧簱浣嶆暟鎹� -}); - -function initializeStorage() { - const rows = 3; // 鎬绘帓鏁� - const cellsPerRow = 20; // 姣忔帓鐨勬牸瀛愭暟 - - for (let i = 0; i < rows; i++) { - let row = []; // 姣忔帓鐨勬牸瀛愭暟缁� - for (let j = 1; j <= cellsPerRow; j++) { - // 鏍规嵁琛屾暟鍜屽垪鏁扮敓鎴愬簱浣嶅悕绉� - row.push(` ${(i * cellsPerRow) + j}`); - } - storageList.value.push(row); // 灏嗘瘡鎺掔殑搴撲綅鏁扮粍鎺ㄥ叆鎬绘暟缁� - } -} - - - -</script> -<style lang="less" scoped> -.msi-content { - overflow: auto; -} - - - - -.storage-grid { - width: 48%; - display: flex; - flex-direction: column; /* 鍨傜洿鎺掑垪姣忎竴鎺� */ -} - -.row { - display: flex; /* 姘村钩鎺掑垪姣忎竴琛� */ -} - -.cell { - border: 1px solid black; /* 姣忎釜鏍煎瓙鐨勯粦绾� */ - flex: 1; /* 姣忎釜鏍煎瓙瀹藉害鐩哥瓑 */ - height: 50px; /* 姣忎釜鏍煎瓙鐨勯珮搴� */ - display: flex; - justify-content: center; - align-items: center; /* 灞呬腑鏄剧ず鍐呭 */ -} - - -.rowMy0 { - // background-color: #f9f9f9; /* 绗竴鎺掔殑鑳屾櫙鑹� */ - div{ - height: 120px; - } -} - -.rowMy1 { - // background-color: #eeeeee; /* 绗簩鎺掔殑鑳屾櫙鑹� */ - div{ - height: 50px; - } -} - -.rowMy2 { - // background-color: #dddddd; /* 绗笁鎺掔殑鑳屾櫙鑹� */ - div{ - height: 80px; - } -} -</style> \ No newline at end of file diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/component/editDialog.vue new file mode 100644 index 0000000..15fdbf0 --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/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: '璇疯緭鍏ユ浛浠g紪鍙凤紒', trigger: 'blur',},], + materialCode: [{required: true, message: '璇烽�夋嫨鐗╂枡缂栧彿锛�', trigger: 'change',},], + materialName: [{required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒', trigger: 'blur',},], + substituteMaterialCode: [{required: true, message: '璇疯緭鍏ユ浛浠e搧鐗╂枡缂栧彿锛�', trigger: 'blur',},], + substituteMaterialName: [{required: true, message: '璇疯緭鍏ユ浛浠e搧鐗╂枡鍚嶇О锛�', trigger: 'blur',},], + substituteIndex: [{required: true, message: '璇疯緭鍏ユ浛浠f搴忥紒', 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> + + + + diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue new file mode 100644 index 0000000..55d7381 --- /dev/null +++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKitting/index.vue @@ -0,0 +1,312 @@ +锘�<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="10" :xl="4" class="mb10"> + <el-form-item label="閮ㄤ欢鏉$爜" size="large"> + <el-input + size="large" + v-model="queryParams.upi" + ref="materialCodeInput" + clearable="" + placeholder="璇锋壂閮ㄤ欢鏉$爜" + @input="handleChange" + @keyup.enter.prevent="handleEnter" + @confirm.enter.prevent="handleEnter" + /> + </el-form-item> + </el-col> + + <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" 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"> + <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_rt">{{ tableData.planNo }}</span> + </li> + <li> + <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.Info10 }}</span> + </li> --> + + <!-- <li> + <span class="text_left">闀�:</span> + <span class="text_rt">{{ tableData.length }}</span> + </li> + <li> + <span class="text_left">瀹�:</span> + <span class="text_rt">{{ tableData.width }}</span> + </li> + <li> + <span class="text_left">鍘�:</span> + <span class="text_rt">{{ tableData.thk }}</span> + </li> + <li> + <span class="text_left">閮ㄤ欢绾圭悊:</span> + <span class="text_rt">{{ tableData.matgrid }}</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鍖� --> + <!-- 鐢熸垚form 榻愬 榻愬寘 璁剧疆ng鍖� --> + <!-- <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-form-item label="榻愬" prop="completeSet"> + <el-select v-model="ruleForm.completeSet" placeholder="璇烽�夋嫨榻愬"> + <el-option label="閫夐」1" value="option1"></el-option> + <el-option label="閫夐」2" value="option2"></el-option> + </el-select> + </el-form-item> + + <el-form-item label="榻愬寘" prop="packageSetup"> + <el-input v-model="ruleForm.packageSetup" placeholder="璇疯緭鍏ラ綈鍖呰缃�"></el-input> + </el-form-item> + + <el-form-item label="ng鍖�" prop="ngPackage"> + <el-input v-model="ruleForm.ngPackage" placeholder="璇疯緭鍏g鍖�"></el-input> + </el-form-item> + + </el-row> + </el-form> --> + </el-card> + </div> +</template> + +<script lang="ts" setup="" name="wmsSubstituteGood"> +import { 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 queryParams = ref<any>({ + upi: '', +}); +const tableParams = ref({ + page: 1, + pageSize: 10, + total: 0, +}); +const getIsDisabledData = [ + { + value: true, + text: '鏄�', + }, + { + value: false, + text: '鍚�', + }, +]; +const printWmsSubstituteGoodTitle = ref(''); +const editWmsSubstituteGoodTitle = ref(''); + +// 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬� +const changeAdvanceQueryUI = () => { + showAdvanceQueryUI.value = !showAdvanceQueryUI.value; +}; +// 鐢ㄤ簬寮曠敤杈撳叆妗� +const materialCodeInput = ref(null); + +onMounted(() => { + // 鍦ㄧ粍浠舵寕杞藉悗杩涜鑱氱劍 + materialCodeInput.value.$el.querySelector('input').focus(); +}); + +// 鏌ヨ鎿嶄綔 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 = []; + 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: '璇疯緭鍏g鍖�', 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(); // 闃绘榛樿浜嬩欢 + 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: 25%; + word-wrap: break-word; + } + } +} +.text_left { + font-weight: 700; +} +</style> -- Gitblit v1.9.3