| H5/Js/PurchaseInventoryReturn.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| H5/Js/WCSM.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| H5/PurchaseInventoryReturn.aspx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| H5/PurchaseInventoryReturn.aspx.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| H5/WCSM.aspx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| H5/WCSM.aspx.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
H5/Js/PurchaseInventoryReturn.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,464 @@ var vm = new Vue({ el: '#app', data: function () { return { isLoading: false, userInfo: { "loginGuid": '', "loginAccount": '', }, formData: { sectionCode: "", barcode: "", itemNo: "", weight: "", sumQuantity:0, barcodeQuantity: 0, returnBarcode: "", returnQuantity: 0, billNo: "", remark:"" }, itemInsFormData: {}, tableData: [], itemTableData: [], barMessage: "", Message: "", messageCenter: {}, messageId: 0, showClearIcon: false, focus1: true, focus2: false, isActive: 0, index: 0, currentTab: 0, contentScrollW: 0, // 导èªåºå®½åº¦ scrollLeft: 0, // æ¨ªåæ»å¨æ¡ä½ç½® fullHeight: "", sectionCode:"", depotData: [], ItemDetail: [], } }, mounted() { var that = this; this.userInfo = { loginGuid: this.GetLoginInfor().loginGuid, loginAccount: this.GetLoginInfor().loginAccount, }; }, methods: { handleWeightInput(value) { const source = value === undefined || value === null ? "" : String(value); let sanitized = source.replace(/[^0-9.]/g, ""); const dotIndex = sanitized.indexOf("."); if (dotIndex !== -1) { const before = sanitized.slice(0, dotIndex + 1); const after = sanitized.slice(dotIndex + 1).replace(/\./g, ""); sanitized = before + after; } if (sanitized.startsWith(".")) { sanitized = "0" + sanitized; } if (sanitized === "") { this.formData.weight = ""; return; } this.formData.weight = sanitized; }, handleWeightBlur() { if (this.formData.weight === "") { return; } const numeric = Number(this.formData.weight); if (isNaN(numeric) || numeric <= 0) { this.formData.weight = ""; this.$toast.fail("å éé为大äº0çæ°å"); this.$playSound('error'); } else { this.formData.weight = numeric.toString(); } }, getModel() { var that = this; that.isLoading = true; that.AxiosHttp("post", 'MesDepotSections/GetSectionName', { sectionCode: that.sectionCode }, false) .then(function (res) { var json = res; if (json.status == 0) { that.depotData = json.data.tbBillList; that.$refs.barcode.focus(); } else { that.$toast.fail(json.message); that.$playSound('error'); that.depotData = []; that.sectionCode = ""; } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$toast.fail("ç½ç»é误ï¼è¯·éè¯ï¼"); that.$playSound('error'); that.depotData = []; that.sectionCode = ""; that.$refs.sectionCode.focus(); }); }, getScan() { var that = this; if (that.formData.barcode.length * 1 <= 0) { that.$toast.fail("ç©ææ¡ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } if (that.sectionCode.length * 1 <= 0) { that.$toast.fail("åºä½ç¼ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } if (that.formData.weight !== "" && that.formData.weight !== null && that.formData.weight !== undefined) { var weightValue = Number(that.formData.weight); if (isNaN(weightValue) || weightValue <= 0) { that.formData.weight = ""; that.$toast.fail("å éé为大äº0çæ°å"); that.$playSound('error'); that.$nextTick(() => { if (that.$refs.weight && that.$refs.weight.focus) { that.$refs.weight.focus(); } }); return; } that.formData.weight = weightValue.toString(); } else { that.formData.weight = ""; } that.isLoading = true; that.AxiosHttp("post", 'MesInvItemInCDetails/SaveBarCodes', { sectionCode: that.sectionCode, userName: that.userInfo.loginAccount, barcode: that.formData.barcode, weight: that.formData.weight ? Number(that.formData.weight) : null, remark: that.formData.remark ? that.formData.remark : null }, false) .then(function (res) { var json = res; if (json.status == 0) { that.formData.itemNo = json.data.tbBillList.itemNo; that.formData.sumQuantity = json.data.tbBillList.sumQuantity; that.ItemDetail = json.data.tbBillList.itemInDetails; //that.itemInsFormData = json.data.tbBillList.itemIns; //that.itemTableData = json.data.tbBillList.itemInDetails;g that.tableData = json.data.tbBillList.itemBarCDetails; //that.barMessage = json.data.tbBillList.message; that.$refs.barcode.focus(); that.formData.barcode = null; that.$notify({ type: 'success', message: json.message }); that.$playSound('success'); } else { that.$toast.fail(json.message); that.$playSound('error'); that.$refs.barcode.focus(); that.formData.barcode = null; } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$toast.fail("ç½ç»é误ï¼è¯·éè¯ï¼"); that.$playSound('error'); console.log(error); that.$refs.barcode.focus(); }); }, getReturnScan() { var that = this; if (that.formData.returnBarcode.length * 1 <= 0) { that.$toast.fail("éªéæ¡ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } if (that.sectionCode.length * 1 <= 0) { that.$toast.fail("åºä½ç¼ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } that.isLoading = true; that.AxiosHttp("post", 'MesInvItemInCDetails/GetReturnBarcodeInfo', { sectionCode: that.sectionCode, userName: that.userInfo.loginAccount, returnBarcode: that.formData.returnBarcode, }, false) .then(function (res) { var json = res; if (json.status == 0) { that.formData.returnQuantity = json.data.tbBillList.quantity || 0; // ä»itemBarcodeDetailsè·åitemNoåquantity if (json.data.tbBillList.itemBarcodeDetails) { that.formData.itemNo = json.data.tbBillList.itemBarcodeDetails.itemNo || ''; that.formData.barcodeQuantity = json.data.tbBillList.itemBarcodeDetails.quantity || 0; that.formData.billNo = json.data.tbBillList.itemBarcodeDetails.billNo || ''; } that.$notify({ type: 'success', message: json.message }); that.$playSound('success'); } else { that.$toast.fail(json.message); that.$playSound('error'); that.$refs.returnBarcode.focus(); that.formData.returnBarcode = null; } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$toast.fail("ç½ç»é误ï¼è¯·éè¯ï¼"); that.$playSound('error'); console.log(error); that.$refs.returnBarcode.focus(); }); }, confirmReturn() { var that = this; if (!that.formData.returnBarcode || that.formData.returnBarcode.length <= 0) { that.$toast.fail("éªéæ¡ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } if (!that.formData.returnQuantity || that.formData.returnQuantity * 1 <= 0) { that.$toast.fail("éªéæ°éå¿ é¡»å¤§äº0ï¼"); that.$playSound('error'); return; } if (that.formData.weight !== "" && that.formData.weight !== null && that.formData.weight !== undefined) { var weightValue = Number(that.formData.weight); if (isNaN(weightValue) || weightValue <= 0) { that.formData.weight = ""; that.$toast.fail("å éé为大äº0çæ°å"); that.$playSound('error'); that.$nextTick(() => { if (that.$refs.weight && that.$refs.weight.focus) { that.$refs.weight.focus(); } }); return; } that.formData.weight = weightValue.toString(); } else { that.formData.weight = ""; } if (that.sectionCode.length * 1 <= 0) { that.$toast.fail("åºä½ç¼ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } that.isLoading = true; that.AxiosHttp("post", 'MesInvItemInCDetails/ConfirmReturn', { sectionCode: that.sectionCode, userName: that.userInfo.loginAccount, returnBarcode: that.formData.returnBarcode, returnQuantity: that.formData.returnQuantity, weight: that.formData.weight ? Number(that.formData.weight) : null }, false) .then(function (res) { var json = res; if (json.status == 0) { that.formData.returnBarcode = ""; that.formData.returnQuantity = 0; that.$refs.returnBarcode.focus(); that.$notify({ type: 'success', message: json.message }); that.$playSound('success'); } else { that.$toast.fail(json.message); that.$playSound('error'); } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$toast.fail("ç½ç»é误ï¼è¯·éè¯ï¼"); that.$playSound('error'); console.log(error); }); }, getChaiFen() { var that = this; if (that.modeInfo.daa001.length <= 0) { that.$toast.fail("颿åå·ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } if (that.scanInfo.splitNum * 1 <= 0) { that.$toast.fail("æåæ°éä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } if (that.scanInfo.barcode.length * 1 <= 0) { that.$toast.fail("ç©ææ¡ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); return; } that.isLoading = true; that.AxiosHttp("post", 'Womdaa/ScanCode', { daa001: that.modeInfo.daa001, userName: that.userInfo.loginAccount, barcode: that.modeInfo.barcode, }, false) .then(function (res) { var json = res; if (json.status == 0) { // that.modeInfo = json.data.tbBillList; } else { that.$toast.fail(json.message); that.$playSound('error'); } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$toast.fail("ç½ç»é误ï¼è¯·éè¯ï¼"); that.$playSound('error'); console.log(error); }); }, cleraCode() { this.sectionCode = ""; this.$refs.sectionCode.focus(); }, ToErp() { this.Message = ""; if (this.tableData.length == 0) { this.Message = "æ¡ç ä¸ºç©ºï¼æ æ³æ¨éERP"; return; } let userName = this.$loginInfo.account; this.Message = "æ£å¨æ¨ééè´å ¥åºå[" + this.itemInsFormData.billNo + "]å°ERP.... 请ç¨å"; this.$post({ url: '/MesInvItemInCDetails/SaveMessageCenter', data: { id: this.itemInsFormData.id, userName: userName, billNo: this.itemInsFormData.billNo, type: "A" } }).then(res => { this.messageCenter = res.data.tbBillList; this.sendPostRequest(this.messageCenter); }); }, sendPostRequest(e) { this.$sendPostRequest(e).then(res => { //è®°å½ä¸ä¸MESçåè° this.saveMessage("A", { url: this.$store.state.serverInfo.serverAPI + '/MesInvItemInCDetails/Audit', data: { billNo: this.itemInsFormData.billNo } }); if (res.state == 200) { this.Message += " æ£å¨æ§è¡MESåè°ï¼è¯·ç¨å" //æ§è¡MESåè° this.audit(); } else { this.Message += " ERPè¿åä¿¡æ¯ï¼" + res.msg; //æ´æ°æ¥å£è®°å½è¡¨ this.messageCenter.result = 0; this.messageCenter.dealWith = 0; this.messageCenter.status = 1; this.messageCenter.resultData = res.msg; this.updateMessage(this.messageCenter); } }); }, //å®¡æ ¸çMESåè° audit() { this.$post({ url: '/MesInvItemInCDetails/Audit', data: { id: this.itemInsFormData.id, billNo: this.itemInsFormData.billNo } }).then(res => { if (res.data.tbBillList) { this.Message += " å®¡æ ¸æåï¼"; } else { this.Message += " å®¡æ ¸å¤±è´¥ï¼"; } let entity = { id: this.messageId, resultData: JSON.stringify(res.data), dealWith: res.data.tbBillList ? 1 : 0, result: res.data.tbBillList ? 1 : 0, } this.updateMessage(entity); }); }, saveMessage(s, item) { let title = "éè´å ¥åºå" + this.itemInsFormData.billNo + "å®¡æ ¸"; let tableName = "MES_INV_ITEM_INS_" + s; if (s == "B") { title = "éè´å ¥åºå" + this.itemInsFormData.billNo + "åå®¡æ ¸"; } let entity = { data: JSON.stringify(item.data), url: item.url, pid: this.messageCenter.id, dealWith: 0, result: 0, status: 1, seq: this.messageCenter.seq + 1, createBy: this.$loginInfo.account, title: title, route: this.itemInsFormData.billNo, tableName: tableName, contentType: "application/json", } this.$post({ url: "/MessageCenter/Insert", data: entity }).then(res => { this.messageId = res.data.tbBillList; }); }, //æ´æ°æ¥å£è®°å½è¡¨ updateMessage(messageCenter) { this.$post({ url: "/MessageCenter/ResetUpdate", data: messageCenter }).then(res => { if (res.data.tbBillList > 0) { this.Message += " [é®é¢è®°å½æå!]"; } else { this.Message += " [é®é¢è®°å½å¤±è´¥!!!]"; } }); }, } }) H5/Js/WCSM.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,214 @@ var vm = new Vue({ el: '#app', data: function () { return { // å è½½ç¶æ isLoading: false, // ç¨æ·ä¿¡æ¯ userInfo: { loginGuid: '', loginAccount: '', }, // åºä½ç¸å ³ sectionCode: "", // åºä½ç¼ç depotData: { // ä»åºæ°æ® depotName: "", depotCode: "" }, // è¡¨åæ°æ® formData: { barcode: "", // ç©ææ¡ç itemNo: "", // ç©æç¼ç itemName: "", // ç©æåç§° itemModel: "", // ç©æè§æ ¼ sumQuantity: 0, // å·²å ¥æ»æ° quantity: 0, // å°è´§åæ°é cbillNo: "", // å°è´§åå· paperBillNo:"", // å°è´§åå· +éè´§åå· dhdQty: 0, // å°è´§åæ°é tmsyQty: 0 // å©ä½æªæ«æ¡ç å¼ æ° }, // æ ç¾é¡µæ°æ® - å©ä½æªæ« unscannedList: [], // æ ç¾é¡µæ°æ® - å©ä½æªæ«ï¼å ¶ä»ç©ææ±æ»ï¼ otherUnscannedList: [], // æ ç¾é¡µæ°æ® - å°è´§åæ«ç è¿åº¦ scanProgressList: [] } }, mounted() { var that = this; // è·åç»å½ä¿¡æ¯ this.userInfo = { loginGuid: this.GetLoginInfor().loginGuid, loginAccount: this.GetLoginInfor().loginAccount, }; }, methods: { /** * è·ååºä½ä¿¡æ¯ * è§¦åæ¶æºï¼æ«æåºä½ç¼ç åæåè½¦é® */ getModel() { var that = this; that.$refs.barcode.focus(); }, /** * æ«æç©ææ¡ç å ¥åº * è§¦åæ¶æºï¼æ«æç©ææ¡ç åæåè½¦é® */ getScan() { var that = this; // è¾å ¥éªè¯ if (!that.formData.barcode || that.formData.barcode.trim() === "") { that.$toast.fail("ç©ææ¡ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); that.$refs.barcode.focus(); return; } // if (!that.sectionCode || that.sectionCode.trim() === "") { // that.$toast.fail("åºä½ç¼ç ä¸è½ä¸ºç©ºï¼"); // that.$playSound('error'); // that.$refs.sectionCode.focus(); // return; // } that.isLoading = true; that.AxiosHttp("post", 'MesInvItemInCDetails/WcsmBar', { sectionCode: that.sectionCode.trim(), userName: that.userInfo.loginAccount, barcode: that.formData.barcode.trim(), }, false) .then(function (res) { var json = res; if (json.status == 0) { // æ¸ ç©ºæ¡ç è¾å ¥æ¡ var dab001 = that.formData.barcode that.formData.barcode = ""; // éæ°èç¦å°æ¡ç è¾å ¥æ¡ï¼æ¯æè¿ç»æ«ç ï¼ that.$refs.barcode.focus(); // æç¤ºæå that.$notify({ type: 'success', message: json.message || 'æ«ææå' }); that.$playSound('success'); //æ ¹æ®æ¡ç è·åä¿¡æ¯ that.selectByBarcode(dab001); } else { // 失败å¤ç that.$toast.fail(json.message || "æ«æå¤±è´¥ï¼"); that.$playSound('error'); // æ¸ ç©ºæ¡ç è¾å ¥æ¡ that.formData.barcode = ""; // éæ°èç¦å°æ¡ç è¾å ¥æ¡ that.$refs.barcode.focus(); } that.isLoading = false; }) .catch(function (error) { // å¼å¸¸å¤ç that.isLoading = false; that.$toast.fail("ç½ç»é误ï¼è¯·éè¯ï¼"); that.$playSound('error'); console.error("getScan error:", error); // æ¸ ç©ºæ¡ç è¾å ¥æ¡ that.formData.barcode = ""; // éæ°èç¦å°æ¡ç è¾å ¥æ¡ that.$refs.barcode.focus(); }); }, /** * æ¸ é¤åºä½ç¼ç */ clearSectionCode() { this.sectionCode = ""; this.depotData = { depotName: "", depotCode: "" }; this.$refs.sectionCode.focus(); }, /// <summary> /// æ ¹æ®æ¡ç æ¥è¯¢ç¸å ³ä¿¡æ¯ /// </summary> selectByBarcode(dab001) { var that = this; if (!dab001 || dab001.length <= 0) { that.$toast.fail("æ¡ç ä¸è½ä¸ºç©ºï¼"); that.$playSound('error'); that.$refs.barcode.focus(); return; } that.isLoading = true; that.AxiosHttp("post", 'MesInvItemInCDetails/WcsmDetail', { barcode: dab001 }, false) .then(function (res) { var json = res; if (json.status == 0) { // æ ç¾é¡µæ°æ®èµå¼ that.unscannedList = json.data.tbBillList.unscannedList; that.otherUnscannedList = json.data.tbBillList.otherUnscannedList; that.scanProgressList = json.data.tbBillList.scanProgressList; // è¡¨åæ°æ®èµå¼ï¼ä»daaInfoè·åï¼ var daaInfo = json.data.tbBillList.daaInfo; if (daaInfo && daaInfo.length > 0) { var info = daaInfo[0]; that.formData.itemNo = info.itemNo || ''; // ç©æç¼ç that.formData.itemName = info.itemName || ''; // ç©æç¼ç that.formData.itemModel = info.itemModel || ''; // ç©æç¼ç that.formData.cbillNo = info.cbillNo || ''; // å°è´§åå· that.formData.paperBillNo = info.paperBillNo || ''; // å°è´§åå·+éè´§åå· that.formData.quantity = info.quantity || 0; // å½åæ¡ç æ°é that.formData.dhdQty = info.dhdQty || 0; // å°è´§åæ°é that.formData.sumQuantity = info.sumQuantity || 0; // å·²å ¥æ»æ° that.formData.tmsyQty = info.tmsyQty || 0; // å©ä½æªæ«æ¡ç å¼ æ° } that.$refs.barcode.focus(); } else { that.$toast.fail(json.message); that.$playSound('error'); that.$refs.barcode.focus(); } that.isLoading = false; }) .catch(function (error) { that.isLoading = false; that.$toast.fail("ç½ç»é误ï¼è¯·éè¯ï¼"); that.$playSound('error'); }); }, /** * è¿åä¸ä¸é¡µ */ GoBack() { window.history.back(); } } }); H5/PurchaseInventoryReturn.aspx
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,258 @@ <%@ Page Title="éè´å ¥åºï¼æ°ï¼" Language="C#" MasterPageFile="~/Mst.master" AutoEventWireup="true" CodeFile="PurchaseInventoryReturn.aspx.cs" Inherits="H5_Scll" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> <style> /* åºç¡èæ¯æ ·å¼ */ .bg-info { background-color: #fff; } /* éªéç¸å ³è¦åæ ·å¼ */ .return-warning { color: #ff4444 !important; font-weight: bold; } .return-field .van-field__label { color: #ff4444 !important; font-weight: bold; } .return-field .van-field__control { color: #ff4444 !important; font-weight: bold; } .return-button { background: linear-gradient(135deg, #ff6b6b, #ee5a52) !important; border: none !important; box-shadow: 0 2px 8px rgba(255, 107, 107, 0.3) !important; } /* å éè¾å ¥æ¡æ ·å¼ */ .weight-field { background: linear-gradient(135deg, rgba(15, 157, 88, 0.12), rgba(15, 157, 88, 0.02)); border-left: 4px solid #0f9d58; border-radius: 8px; box-shadow: 0 2px 12px rgba(15, 157, 88, 0.18); margin-bottom: 12px; } .weight-field .van-field__label, .weight-field .van-field__control { color: #0f9d58 !important; font-weight: 600; } .weight-field input { color: #0b7a45 !important; font-weight: 600; } </style> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> <!-- å¯¼èªæ --> <van-nav-bar title="éè´å ¥åºï¼æ°ï¼" left-text="è¿å" left-arrow @click-left="GoBack()" ></van-nav-bar> <!-- æ ¸å¿è¡¨ååºå --> <van-cell-group> <!-- åºä½ç¼ç --> <van-field ref="sectionCode" v-model="sectionCode" label="åºä½ç¼ç " clearable placeholder="请æ«ç " :right-icon-size="19" v-focus.noKeyboard @keyup.enter.native="getModel" autofocus="true" ></van-field> <!-- ä»åºä¿¡æ¯ï¼ç¦ç¨ç¶æï¼ --> <van-field v-model="depotData.depotName" label="ä»åºåç§°" placeholder="" disabled ></van-field> <van-field v-model="depotData.depotCode" label="ä»åºç¼ç " placeholder="" disabled ></van-field> <!-- å éè¾å ¥ --> <van-field ref="weight" v-model="formData.weight" label="å é" clearable placeholder="请è¾å ¥å é" type="text" inputmode="decimal" class="weight-field" @input="handleWeightInput" @blur="handleWeightBlur" ></van-field> <!-- å ¥åºå¤æ³¨è¾å ¥ --> <van-field ref="remark" v-model="formData.remark" label="å ¥åºå¤æ³¨" clearable placeholder="请è¾å ¥å¤æ³¨" type="text" inputmode="nvachar" class="weight-field" ></van-field> <!-- ç©ææ¡ç --> <van-field ref="barcode" v-model="formData.barcode" label="ç©ææ¡ç " clearable placeholder="请æ«ç " :right-icon-size="19" v-focus.noKeyboard @keyup.enter.native="getScan" ></van-field> <%--<!-- éªéç¸å ³å段ï¼çº¢è²è¦åæ ·å¼ï¼ --> <van-field ref="returnBarcode" v-model="formData.returnBarcode" label="â ï¸ éªéæ¡ç " clearable placeholder="请æ«ç " :right-icon-size="19" v-focus.noKeyboard @keyup.enter.native="getReturnScan" class="return-field" ></van-field> <!-- éªéæ°é + éªéæé® --> <van-row> <van-col span="18"> <van-field v-model="formData.returnQuantity" label="â ï¸ éªéæ°é" clearable placeholder="请è¾å ¥éªéæ°é" type="number" class="return-field" ></van-field> </van-col> <van-col span="6" style="padding: 10px;"> <van-button type="primary" size="small" @click="confirmReturn" class="return-button" >â ï¸ éªé</van-button> </van-col> </van-row>--%> <!-- åªè¯»ä¿¡æ¯å±ç¤º --> <van-field v-model="formData.itemNo" label="ç©æç¼ç " placeholder="" disabled ></van-field> <van-field v-model="formData.billNo" label="å°è´§åå·" placeholder="" disabled ></van-field> <van-field v-model="formData.barcodeQuantity" label="æ¡ç æ°é" placeholder="" disabled ></van-field> <van-field v-model="formData.sumQuantity" label="å·²å ¥æ»æ°" placeholder="" disabled ></van-field> </van-cell-group> <!-- æ ç¾é¡µåºå --> <van-tabs color="#000" title-active-color="#0283EF"> <!-- å ¥åºç©ææ ç¾é¡µ --> <van-tab title="å ¥åºç©æ" class="mySolid font"> <van-row> <van-col span="8" class="text-left padding-left">ç©æ</van-col> <van-col span="8" class="text-left padding-left">è§æ ¼</van-col> <van-col span="5">ç©æååº</van-col> <van-col span="3">å·²å ¥åºæ°</van-col> </van-row> <!-- ç©æåè¡¨å¾ªç¯ --> <van-row v-for="(itm, index) in ItemDetail" :key="index"> <van-col span="8" class="text-left padding-left"> <div class="blue-text">{{itm.itemNo}}</div> <div>{{itm.itemName}}</div> </van-col> <van-col span="8" class="text-left padding-left"> <div>{{itm.itemModel}}</div> </van-col> <van-col span="3" class="blue-text">{{itm.fQty}}</van-col> <van-col span="5" class="blue-text">{{itm.fQty}}</van-col> </van-row> </van-tab> <!-- å ¥åºæ¡ç æ ç¾é¡µ --> <van-tab title="å ¥åºæ¡ç " class="mySolid font"> <van-row> <van-col span="8" class="text-left padding-left">æ¡ç </van-col> <van-col span="8" class="text-left padding-left">ç©æ</van-col> <van-col span="4">æ°é</van-col> <van-col span="4">åºä½ç¼ç </van-col> </van-row> <!-- æ¡ç åè¡¨å¾ªç¯ --> <van-row v-for="(itm, index) in tableData" :key="index"> <van-col span="8" class="text-left padding-left"> <div>{{itm.barcode}}</div> </van-col> <van-col span="8" class="text-left padding-left"> <div>{{itm.itemNo}}</div> <div>{{itm.itemName}}</div> </van-col> <van-col span="4">{{itm.fQty}}</van-col> <van-col span="4">{{itm.kw}}</van-col> </van-row> </van-tab> </van-tabs> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" Runat="Server"> <!-- å è½½ç»ä»¶ --> <comloading v-if="isLoading"></comloading> </asp:Content> <asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder4" Runat="Server"> <!-- å¼å ¥JSæä»¶ï¼å¸¦çæ¬å·é²ç¼åï¼ --> <script src="Js/PurchaseInventoryReturn.js?<%=123611111 %>"></script> </asp:Content> H5/PurchaseInventoryReturn.aspx.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class H5_Scll : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } H5/WCSM.aspx
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,513 @@ <%@ Page Title="å¤ä»äººåæ«ç " Language="C#" AutoEventWireup="true" MasterPageFile="~/Mst.master" CodeFile="WCSM.aspx.cs" Inherits="H5_WCSM" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> <style> /* å ¨å±æ ·å¼ */ #app { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; padding: 0; margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; } /* å¡çå¼å®¹å¨æ ·å¼ */ .card-container { margin: 4px 16px 4px; border-radius: 16px; background-color: #fff; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); overflow: hidden; transition: all 0.3s ease; } .card-container:hover { box-shadow: 0 12px 48px rgba(0, 0, 0, 0.15); transform: translateY(-2px); } /* å¡ç头é¨åæ 颿 ·å¼ */ .card-header { padding: 16px 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #fff; } .card-title { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: 0.5px; } /* å¡çå å®¹åºæ ·å¼ */ .card-body { padding: 10px 18px; } /* æ«ç åºååæ®µæ ·å¼ */ .scan-field { margin-bottom: 10px; border-radius: 8px; overflow: hidden; } /* æ°æ®å±ç¤ºç½æ ¼å¸å± */ .data-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; } .data-field { border-radius: 8px; overflow: hidden; } /* å¯¼èªæ æ ·å¼ä¼å */ .van-nav-bar { background: linear-gradient(135deg, #5568d3 0%, #6b46c1 100%); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .van-nav-bar__title { font-size: 17px; font-weight: 700; letter-spacing: 0.5px; } /* 表ååæ®µæ ·å¼ */ .van-field { padding: 8px 10px; border-bottom: 1px solid #ebedf0; transition: background-color 0.2s ease; } .van-field:last-child { border-bottom: none; } /* è¾å ¥æ¡èç¦æ ·å¼ */ .van-field--focused { background-color: #fafafa; border-left: 3px solid #0283EF; } /* è¾å ¥æ¡æ ·å¼ */ .van-cell__value { font-size: 14px; color: #323233; line-height: 1.5; } /* æ ç¾æ ·å¼ */ .van-cell__title { font-size: 14px; color: #323233; font-weight: 500; } /* åªè¯»åæ®µæ ·å¼ */ .van-field--disabled { background-color: #fafafa; } .van-field--disabled .van-cell__title, .van-field--disabled .van-cell__value { font-weight: bold; color: #323233; } .van-field--disabled .van-cell__value { background-color: #e8ebed; border-radius: 6px; padding: 6px 10px; } /* æ ç¾é¡µæ ·å¼ */ .van-tabs { margin: 8px 16px; background-color: #fff; border-radius: 16px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); overflow: hidden; } /* æ ç¾é¡µå¤´é¨æ ·å¼ */ .van-tabs__nav { border-bottom: 2px solid #f0f2f5; padding: 0 16px; background: #fafbfc; } /* æ ç¾æ ·å¼ */ .van-tab { font-size: 14px; color: #4e4e4e; padding: 12px 16px 10px; transition: all 0.3s ease; font-weight: 500; } /* æ¿æ´»æ ç¾æ ·å¼ */ .van-tab--active { font-weight: 700; color: #667eea; } /* æ¿æ´»æ ç¾ä¸åçº¿æ ·å¼ */ .van-tabs__line { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); height: 3px; bottom: 0; transform: translateY(0); } /* è¡¨æ ¼è¡æ ·å¼ */ .bg-info { background-color: #fff; } .van-row { padding: 10px 12px; border-bottom: 1px solid #ebedf0; transition: all 0.3s ease; } .van-row:last-child { border-bottom: none; } /* è¡¨æ ¼è¡æ¬åæ ·å¼ */ .van-row:hover { background-color: #f0f4ff; transform: translateX(4px); } /* è¡¨æ ¼å¤´é¨æ ·å¼ */ .van-row:nth-child(1) { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); font-weight: 700; color: #fff; } /* 交æ¿è¡æ ·å¼ */ .van-row:nth-child(even) { background-color: #fafbfc; } /* åå æ ¼æ ·å¼ */ .van-col { display: flex; align-items: center; justify-content: center; font-size: 14px; color: #323233; line-height: 1.6; } /* 左对é½åå æ ¼ */ .text-left { justify-content: flex-start; } /* å è¾¹è· */ .padding-left { padding-left: 12px; } /* è¾å ¥æ¡å ä½ç¬¦æ ·å¼ */ ::placeholder { color: #c8c9cc; } /* å¼ºå¶ææ¬æ¢è¡ */ .van-cell__value { word-wrap: break-word; word-break: break-all; } /* å°å±å¹éé */ @media (max-width: 480px) { .card-container { margin: 8px; } .card-body { padding: 16px 20px; } .data-grid { grid-template-columns: 1fr; } .van-tabs { margin: 8px; } .van-row { padding: 12px 14px; } .van-col { font-size: 13px; } } /* å¯¼èªæ ææ¬æ ·å¼ */ .van-nav-bar__text { color: #fff; font-weight: 500; } /* å è½½ç»ä»¶æ ·å¼ */ comloading { display: flex; justify-content: center; align-items: center; padding: 60px 20px; font-size: 14px; color: #4e4e4e; } /* è¾å ¥æ¡æ ·å¼ä¼å */ .van-field__control { border-radius: 6px; transition: all 0.3s ease; } .van-field__control:focus { box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); } /* æé®æ ·å¼ä¼å */ .van-button { border-radius: 8px; font-weight: 500; transition: all 0.3s ease; } .van-button--primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border: none; } .van-button--primary:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(102, 126, 234, 0.3); } /* å è½½ç»ä»¶æ ·å¼ */ comloading { display: flex; justify-content: center; align-items: center; padding: 60px 20px; font-size: 14px; color: #4e4e4e; } </style> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server"> <div id="app"> <!-- å¯¼èªæ --> <van-nav-bar title="å¤ä»äººåæ«ç " left-text="è¿å" left-arrow @click-left="GoBack()" ></van-nav-bar> <!-- æ«ç æ ¸å¿åº --> <div class="card-container scan-core"> <div class="card-header"> <h2 class="card-title">æ«ç æ ¸å¿åº</h2> </div> <div class="card-body"> <!-- åºä½ç¼ç è¾å ¥ --> <van-field ref="sectionCode" v-model="sectionCode" label="åºä½ç¼ç " clearable placeholder="è¯·æ«æåºä½æ¡ç " :right-icon-size="19" v-focus.noKeyboard @keyup.enter.native="getModel" autofocus="true" class="scan-field" ></van-field> <!-- ç©ææ¡ç è¾å ¥ --> <van-field ref="barcode" v-model="formData.barcode" label="ç©ææ¡ç " clearable placeholder="è¯·æ«æç©ææ¡ç " :right-icon-size="19" v-focus.noKeyboard @keyup.enter.native="getScan" class="scan-field" ></van-field> </div> </div> <!-- æ°æ®å±ç¤ºåº --> <div class="card-container data-display"> <div class="card-header"> <h2 class="card-title">ç©æä¿¡æ¯</h2> </div> <div class="card-body"> <div class="data-grid"> <!-- ç©æç¼ç ï¼åªè¯»ï¼ --> <van-field v-model="formData.itemNo" label="ç©æç¼ç " disabled class="data-field" ></van-field> <!-- ç©æåç§°ï¼åªè¯»ï¼ --> <van-field v-model="formData.itemName" label="ç©æåç§°" disabled class="data-field" ></van-field> <!-- ç©æè§æ ¼ï¼åªè¯»ï¼ --> <van-field v-model="formData.itemModel" label="ç©æè§æ ¼" disabled class="data-field" ></van-field> <!-- æ«ç æ°éï¼åªè¯»ï¼ --> <van-field v-model="formData.quantity" label="æ«ç æ°é" disabled class="data-field" ></van-field> <!-- å°è´§åå·+éè´§åå·ï¼åªè¯»ï¼ --> <van-field v-model="formData.paperBillNo" label="å°è´§åå·" disabled class="data-field" ></van-field> <!-- å°è´§åæ°éï¼åªè¯»ï¼ --> <van-field v-model="formData.dhdQty" label="å°è´§åæ°é" disabled class="data-field" ></van-field> <!-- å·²å ¥æ»æ°ï¼åªè¯»ï¼ --> <van-field v-model="formData.sumQuantity" label="å·²å ¥æ»æ°" disabled class="data-field" ></van-field> <!-- å©ä½æªæ«æ¡ç å¼ æ°ï¼åªè¯»ï¼ --> <van-field v-model="formData.tmsyQty" label="å©ä½æªæ«å¼ æ°" disabled class="data-field" ></van-field> </div> </div> </div> <!-- æ ç¾é¡µåºå --> <van-tabs> <!-- 第ä¸ä¸ªæ ç¾é¡µï¼å©ä½æªæ« --> <van-tab title="å©ä½æªæ«"> <van-row class="bg-info"> <van-col span="8" class="text-left padding-left">åºå·</van-col> <van-col span="8" class="text-left padding-left">æ¡ç </van-col> <van-col span="8">æ°é</van-col> </van-row> <van-row v-for="(itm, index) in unscannedList" :key="index" class="bg-info"> <van-col span="8" class="text-left padding-left"> <div>{{index + 1}}</div> </van-col> <van-col span="8" class="text-left padding-left"> <div>{{itm.barcode}}</div> </van-col> <van-col span="8"> <div>{{itm.fQty}}</div> </van-col> </van-row> </van-tab> <!-- 第äºä¸ªæ ç¾é¡µï¼å©ä½æªæ«ï¼å ¶ä»ç©ææ±æ»ï¼ --> <van-tab title="å ¶ä½æªæ«"> <van-row class="bg-info"> <van-col span="8" class="text-left padding-left">åºå·</van-col> <van-col span="8" class="text-left padding-left">æ¡ç </van-col> <van-col span="8">æ°é</van-col> </van-row> <van-row v-for="(itm, index) in otherUnscannedList" :key="index" class="bg-info"> <van-col span="8" class="text-left padding-left"> <div>{{index + 1}}</div> </van-col> <van-col span="8" class="text-left padding-left"> <div>{{itm.barcode}}</div> </van-col> <van-col span="8"> <div>{{itm.fQty}}</div> </van-col> </van-row> </van-tab> <!-- 第ä¸ä¸ªæ ç¾é¡µï¼å°è´§åæ«ç è¿åº¦ --> <van-tab title="å°è´§åè¿åº¦"> <van-row class="bg-info"> <van-col span="4" class="text-left padding-left">åºå·</van-col> <van-col span="6" class="text-left padding-left">ç©æç¼ç </van-col> <van-col span="6" class="text-left padding-left">éæ±è·è¸ªå·</van-col> <van-col span="4">å°è´§æ°é</van-col> <van-col span="4">æ«ç æ°é</van-col> </van-row> <van-row v-for="(itm, index) in scanProgressList" :key="index" class="bg-info"> <van-col span="4" class="text-left padding-left"> <div>{{index + 1}}</div> </van-col> <van-col span="6" class="text-left padding-left"> <div>{{itm.itemNo}}</div> </van-col> <van-col span="6" class="text-left padding-left"> <div>{{itm.planTrackingNo}}</div> </van-col> <van-col span="4"> <div>{{itm.arrivalQty}}</div> </van-col> <van-col span="4"> <div>{{itm.scannedQty}}</div> </van-col> </van-row> </van-tab> </van-tabs> </div> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" runat="server"> <comloading v-if="isLoading"></comloading> </asp:Content> <asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder4" runat="server"> <script src="Js/WCSM.js?=20251118"></script> </asp:Content> H5/WCSM.aspx.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; /// <summary> /// å¤ä»äººåæ«ç é¡µé¢ /// åè½ï¼åºä½æ«ç éªè¯ + ç©ææ¡ç å ¥åº /// åå»ºæ¥æï¼2025-11-18 /// </summary> public partial class H5_WCSM : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // 页é¢å è½½é»è¾ï¼å¦éè¦å¯å¨æ¤æ·»å ï¼ } }