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