From 478fa37ec863b2f7eb20ce19ad5cce96072bd4f9 Mon Sep 17 00:00:00 2001
From: liuying <1427574514@qq.com>
Date: 周日, 01 12月 2024 17:22:19 +0800
Subject: [PATCH] 标记ng页面

---
 LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts                            |   10 
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/component/editDialog.vue |  120 +++++++++++++++
 LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/index.vue                |  314 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 441 insertions(+), 3 deletions(-)

diff --git a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
index 5b60f7f..f415d69 100644
--- a/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
+++ b/LA24030_LuLiPackageLine_Web/src/api/main/ReportCenter/wmsStockQuan.ts
@@ -20,8 +20,7 @@
   ValdateQiTao = '/api/WmsOperationTask/ValdateQiTao',
 
   ValdateLabel = '/api/WmsOperationTask/ValdateLabel',
-
-  
+  ConfirmNg = '/api/WmsOperationTask/ConfirmNg',
   
 }
 
@@ -177,4 +176,9 @@
 			data: params
 		});
 
-		
\ No newline at end of file
+export const ConfirmNgF = (params?: any) => 
+	request({
+			url: Api.ConfirmNg,
+			method: 'post',
+			data: params
+		});
diff --git a/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/component/editDialog.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/component/editDialog.vue
new file mode 100644
index 0000000..15fdbf0
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/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/manualFeedKittingNg/index.vue b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/index.vue
new file mode 100644
index 0000000..7957722
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Web/src/views/main/WmsOrder/manualFeedKittingNg/index.vue
@@ -0,0 +1,314 @@
+锘�<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.packageCode"
+								ref="materialCodeInput"
+								clearable=""
+								placeholder="璇锋壂鍖呰鍙�"
+							@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-Finished" @click="ConfirmNg"> 鏍囪Ng </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.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.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>
+			<!-- 鐢熸垚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 { 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, ValdateQiTao ,ConfirmNgF} 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>({
+	packageCode: '',
+});
+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;
+};
+
+//=======================榧犳爣瀹氫綅 鐢ㄤ簬寮曠敤杈撳叆妗�=====================
+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.packageCode) {
+		return;
+	}
+	console.log('鏌ヨ');
+	loading.value = true;
+	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;
+	}
+}
+
+
+const handleEnter = (event: Event) => {
+	event.preventDefault(); // 闃绘榛樿浜嬩欢
+	handleQuery();
+};
+
+
+const ConfirmNg = () => {
+  ElMessageBox.confirm("鏄惁纭鏍囪Ng锛�", "鎻愮ず", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning"
+  })
+    .then(() => {
+		ConfirmNgF({ 
+			...tableData.value,
+		})
+        .then((res) => {
+          if (res.code == 200) {
+            ElMessage.success("鏍囪鎴愬姛");
+			tableData.value ={}
+          } else {
+            ElMessage.error(`澶辫触${res.code}:${JSON.stringify(res.message)}`);
+          }
+        });
+    })
+};
+
+</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>

--
Gitblit v1.9.3