南骏 池
2025-05-28 70cb04a1eabdf0ffdddc017f219eb6bc9f13de66
1.现场收料字段优化
已添加3个文件
已修改1个文件
395 ■■■■■ 文件已修改
H5/Js/Xctl.js 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Xcsl.aspx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Xctl.aspx 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Xctl.aspx.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Js/Xctl.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,174 @@
var vm = new Vue({
    el: '#app',
    data: function () {
        return {
            isLoading: false,
            userInfo: {
                "loginGuid": '',
                "loginAccount": '',
            },
            Bar: "",//箱条码
            UserName: Cookies.get('loginName'),//用户名称
            KbBarInfo: [],
            KbBarMxInfo: [],
            Xvalue:4,
            XbarInfo: [],
            DAA001: "",
            DAANum: "",
            xcslItemList: [], //材料列表
            xcslWjsBarList: [],//未接收列表
            xcslYjsBarList: [],//已接收列表
            selectKey: "",//查询关键字
            actions: [],//列表的值
            show: false,//列表展示
        }
    },
    mounted() {
        var that = this;
        this.userInfo = {
            loginGuid: this.GetLoginInfor().loginGuid,
            loginAccount: this.GetLoginInfor().loginAccount,
        };
    },
    methods: {
        GetItemsXcsl() {
            var that = this;
            if (!that.DAA001 || that.DAA001.length <= 0) {
                that.$toast.fail("工单单号不能为空!");
                that.$refs.DAA001.focus();
                return;
            }
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/GetItemsXcsl', {
                daa001: that.DAA001
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.DAANum = json.data.tbBillList.gD_Num;
                        that.xcslItemList = json.data.tbBillList.xcslItemList;
                        that.xcslWjsBarList = json.data.tbBillList.xcslWjsBarList;
                        that.xcslYjsBarList = json.data.tbBillList.xcslYjsBarList;
                        that.$refs.Bar.focus();
                    }
                    else {
                        that.$toast.fail(json.message);
                        that.$refs.DAA001.focus();
                        that.DAA001 = "";
                    }
                    that.isLoading = false;
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("网络错误,请重试!");
                });
        },
        ScanXcsl() {
            // æ·»åŠ é˜²æŠ–åˆ¤æ–­
            if (this.isLoading) {
                return;
            }
            var that = this;
            if (!that.Bar ||that.Bar.length <= 0) {
                that.$toast.fail("物料条码不能为空!");
                that.$refs.Bar.focus();
                return;
            }
            if (!that.DAA001 ||that.DAA001.length <= 0) {
                that.$toast.fail("工单单号不能为空!");
                that.$refs.DAA001.focus();
                return;
            }
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/ScanXcsl', {
                DAA001: that.DAA001,
                Bar: that.Bar,
                userAccount: that.userInfo.loginAccount,
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        // that.scanInfo = json.data.tbBillList;
                        that.$notify({ type: 'success', message: json.message });
                        that.GetItemsXcsl();
                    }
                    else {
                        that.$toast.fail(json.message);
                    }
                    that.isLoading = false;
                    that.$refs.Bar.focus();
                    that.Bar = "";
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("网络错误,请重试!");
                });
        },
        //获取工单信息
        getInfo() {
            this.show = true;
            var that = this;
            that.actions = [];
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/GetXcslDaa', {
                selectKey: that.selectKey,
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        if (json.data.tbBillList.length <= 0) {
                            that.$toast.fail("没有可用的数据");
                            that.$playSound('error');
                        } else {
                            that.itemInfo = json.data.tbBillList;
                            that.actions = json.data.tbBillList.map(item => {
                                return {
                                    name: item.daaInfo  // æ‹¼æŽ¥å­—段
                                };
                            });
                        }
                    }
                    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);
                });
        },
        onSelect(item) {
            // é»˜è®¤æƒ…况下点击选项时不会自动收起
            // å¯ä»¥é€šè¿‡ close-on-click-action å±žæ€§å¼€å¯è‡ªåŠ¨æ”¶èµ·
            this.show = false;
            console.log(item);
            // æ­£åˆ™åŒ¹é…ç¬¬ä¸€ä¸ªæ–¹æ‹¬å·å†…容
            const regex = /\[([^\]]+)\]/;
            const matchResult = item.name.match(regex);
            if (matchResult && matchResult[1]) {
                this.DAA001 = matchResult[1]; // PPBOM00000088-1
                console.log('提取的DAA001:', this.DAA001);
            } else {
                this.$toast.fail('工单号格式异常');
                this.DAA001 = '';
            }
            this.GetItemsXcsl();
            //this.$toast(item.name);
        },
    }
})
H5/Xcsl.aspx
@@ -113,20 +113,20 @@
            <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-col span="8" class="text-left padding-left">所属单据</van-col>
                </van-row>
                <van-row v-for="(itm,index) in xcslItemList" :key="index">
                    <van-col span="8" class="text-left padding-left">
                        <div class="blue-text">{{itm.item_no}}</div>
                        <div>{{itm.item_name}}</div>
                    </van-col>
                    <van-col span="4" class="blue-text">{{itm.bL_Num}}</van-col>
                    <van-col span="4" class="blue-text">{{itm.jS_Num}}</van-col>
                    <van-col span="8" class="text-left padding-left">
                        <div>{{itm.item_out_no}}</div>
                        <div>{{itm.item_model}}</div>
                    </van-col>
                    <van-col span="4" class="blue-text">{{itm.bL_Num}}</van-col>
                    <van-col span="4" class="blue-text">{{itm.jS_Num}}</van-col
                </van-row>
            </van-tab>
            <van-tab title="未接收列表" class="mySolid font">
H5/Xctl.aspx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,199 @@
<%@ Page Title="现场投料" Language="C#" MasterPageFile="~/Mst.master" AutoEventWireup="true" CodeFile="Xctl.aspx.cs" Inherits="H5_Cpdbsj" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
  <style>
    .si-status-box,
    .si-status__left
    {
        background-color: transparent !important; /* é€æ˜ŽèƒŒæ™¯ */
        border: 1px solid #000 !important; /* é»‘色外框 */
        color: #000 !important; /* å…¨å±€æ–‡å­—颜色 */
        height: 0.5rem;
    }
    .si-status__left::after {
        content: none !important;
    }
    .si-status__label,
    .si-status__right {
        font-size: 0.33rem !important; /* ç»Ÿä¸€å­—体大小 */
        color: inherit !important; /* ç»§æ‰¿çˆ¶çº§æ–‡å­—颜色 */
    }
    /* å±…中核心样式 */
.centered-stepper-field {
  .stepper-container {
    display: flex;
    justify-content: center; /* æ°´å¹³å±…中 */
    width: 100%;
  }
  /* è°ƒæ•´æ­¥è¿›å™¨æŒ‰é’®é—´è· */
  .van-stepper__minus {
    margin-right: 12px;
  }
  .van-stepper__plus {
    margin-left: 12px;
  }
}
      /* æ–°å¢žæ ·å¼ */
    .button-container {
        display: flex;
        width: 100%;
        gap: 12px; /* æŒ‰é’®é—´è· */
        padding: 0 16px; /* å·¦å³ç•™ç™½ */
        box-sizing: border-box;
    }
    .action-button {
        flex: 1; /* ç­‰åˆ†å‰©ä½™ç©ºé—´ */
        min-width: 0; /* é˜²æ­¢å†…容溢出 */
    }
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
    <div class="content-wrapper">
        <van-nav-bar
            title="现场投料"
            left-text="返回"
            left-arrow
            @click-left="GoBack()">
        </van-nav-bar>
        <div class="mySolid">
            <van-cell-group>
                <van-field
                    ref ="selectKey"
                value=""
                label="工单查询"
                clearable
                    placeholder="请输入工单号进行查询"
                :right-icon-size="19"
                    v-model="selectKey"
                    @keyup.enter.native="GetMesItemBlDetailByBillNo"
                ><template #button>
                <van-button size="small" type="info" plain @click="getInfo" >选择</van-button>
                </template></van-field>
                <van-field
                    ref="DAA001"
                    v-model="DAA001"
                    label="指令工单"
                    placeholder="指令工单"
                    @keyup.enter.native="GetItemsXcsl"
                    autofocus="true"
                    >
                </van-field>
                <van-field
                    v-model="DAANum"
                    label="工单数量"
                    placeholder="工单数量"
                    autofocus="true"
                    readonly>
                </van-field>
                <van-field
                    ref="Bar"
                    v-model="Bar"
                    label="物料条码"
                    placeholder="请扫物料条码"
                    @keyup.enter.native="ScanXcsl"
                    autofocus="true">
                </van-field>
            </van-cell-group>
        </div>
            <van-action-sheet v-model="show" :actions="actions" @select="onSelect" ></van-action-sheet>
        <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="4">备料数</van-col>
                    <van-col span="4">接收数</van-col>
                    <van-col span="4">投料数</van-col>
                    <van-col span="4" class="text-left padding-left">所属单据</van-col>
                </van-row>
                <van-row v-for="(itm,index) in xcslItemList" :key="index">
                    <van-col span="8" class="text-left padding-left">
                        <div class="blue-text">{{itm.item_no}}</div>
                        <div>{{itm.item_name}}</div>
                    </van-col>
                    <van-col span="4" class="blue-text">{{itm.bL_Num}}</van-col>
                    <van-col span="4" class="blue-text">{{itm.jS_Num}}</van-col>
                    <van-col span="4" class="blue-text">{{itm.jS_Num}}</van-col>
                    <van-col span="4" class="text-left padding-left">
                        <div>{{itm.item_out_no}}</div>
                    </van-col>
                </van-row>
            </van-tab>
            <van-tab title="未投料列表" class="mySolid font">
                <van-row>
                    <van-col span="5" class="text-left padding-left">条码</van-col>
                    <van-col span="8" class="text-left padding-left">物料</van-col>
                    <van-col span="3" class="text-left padding-left">数量</van-col>
                    <van-col span="3" >人员</van-col>
                    <van-col span="5" >时间</van-col>
                </van-row>
                <van-row
                    v-for="(itm,index) in xcslWjsBarList"
                    :key="index">
                    <van-col span="5" class="text-left padding-left">{{itm.iteM_BARCODE}}</van-col>
                    <van-col span="8" class="text-left padding-left">
                        <div class="blue-text">{{itm.item_no}}</div>
                        <div>{{itm.item_name}}</div>
                    </van-col>
                    <van-col span="3" class="text-left padding-left">
                        <div>{{itm.quantity}}</div>
                    </van-col>
                    <van-col span="3">
                        <div>{{itm.useR_NAME}}</div>
                    </van-col>
                    <van-col span="5">
                        <div>{{itm.create_date}}</div>
                    </van-col>
                </van-row>
            </van-tab>
            <van-tab title="已投料列表" class="mySolid font">
                <van-row>
                    <van-col span="5" class="text-left padding-left">条码</van-col>
                    <van-col span="8" class="text-left padding-left">物料</van-col>
                    <van-col span="3" class="text-left padding-left">数量</van-col>
                    <van-col span="3" >接收人</van-col>
                    <van-col span="5" >接收时间</van-col>
                </van-row>
                <van-row
                    v-for="(itm,index) in xcslYjsBarList"
                    :key="index">
                    <van-col span="5" class="text-left padding-left">{{itm.iteM_BARCODE}}</van-col>
                    <van-col span="8" class="text-left padding-left">
                        <div class="blue-text">{{itm.item_no}}</div>
                        <div>{{itm.item_name}}</div>
                    </van-col>
                    <van-col span="3" class="text-left padding-left">
                        <div>{{itm.quantity}}</div>
                    </van-col>
                    <van-col span="3">
                        <div>{{itm.useR_NAME}}</div>
                    </van-col>
                    <van-col span="5">
                        <div>{{itm.xcsL_CREATE_DATE}}</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/Xctl.js?<%=1 %>"></script>
</asp:Content>
H5/Xctl.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_Cpdbsj : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}