自动化立体仓库 - WMS系统
#
zhou zhou
2025-10-24 83dbb84a938031d9c0d7fd2baced339bb84fedef
src/main/webapp/views/erpReceiving/erpReceiving.html
@@ -14,9 +14,28 @@
    <div id="app">
        <el-card>
        <el-form :inline="true">
            <el-form-item label="开工日期">
                <el-date-picker
                        v-model="tableSearchParam.fplancommitdate"
                        type="date"
                        placeholder="选择日期"
                        :default-value="defaultTime"
                />
            </el-form-item>
            <el-form-item label="生产单号">
            <el-input v-model="tableSearchParam.produce_no" placeholder="请输入生产单号"></el-input>
            <el-input v-model="tableSearchParam.soCode" placeholder="请输入生产单号"></el-input>
         </el-form-item>
            <el-form-item label="车间">
                <el-select v-model="tableSearchParam.depName" placeholder="选择车间" style="width: 240px" >
                    <el-option
                            v-for="item in options"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value"
                    />
                </el-select>
            </el-form-item>
            <el-form-item label="">
                <el-button type="primary" @click="page" circle >
                    <el-icon><Search /></el-icon>
@@ -25,52 +44,52 @@
        </el-form>
        <el-form :inline="true">
            <el-form-item label="">
               <el-button type="primary">同步</el-button>
               <el-button type="primary" @click="tongbu" >同步</el-button>
            </el-form-item>
            <el-form-item label="">
               <el-button type="primary">撤销同步</el-button>
               <el-button type="primary" @click="caneltongbu1">撤销同步</el-button>
            </el-form-item>
            <el-form-item label="">
               <el-button type="primary">退料</el-button>
               <el-button type="primary" @click="tongbureturn">退料</el-button>
            </el-form-item>
            <el-form-item label="">
               <el-button type="primary">撤销退料</el-button>
               <el-button type="primary" @click="caneltongbureturn">撤销退料</el-button>
            </el-form-item>
        </el-form>
        <el-table :data="tableData" border style="width: 100%" row-key="id" @selection-change="handleSelectionChange">
        <el-table :data="tableData" border style="width: 100%" row-key="finterid" @selection-change="handleSelectionChange" max-height="650">
            <el-table-column type="selection" >
            </el-table-column>
            <el-table-column type="index" width="50" >
            </el-table-column>
            <el-table-column prop="produceNo" label="生产单号" >
            <el-table-column prop="soCode" label="生产单号" >
            </el-table-column>
            <el-table-column prop="jobNo" label="任务单号">
            <el-table-column prop="fbillno" label="任务单号">
            </el-table-column>
            <el-table-column prop="matnr" label="物料编码">
            <el-table-column prop="invCode" label="物料编码">
            </el-table-column>
            <el-table-column prop="name" label="物料名称">
            <el-table-column prop="invName" label="物料名称" width="300" :show-overflow-tooltip="true">
            </el-table-column>
            <el-table-column prop="specs" label="规格">
            <el-table-column prop="invStd" label="规格" width="200" :show-overflow-tooltip="true">
            </el-table-column>
            <el-table-column prop="workshop" label="车间">
            <el-table-column prop="depName" label="车间">
            </el-table-column>
            <el-table-column prop="anfme" label="数量">
            <el-table-column prop="fauxqty" label="数量" width="90">
            </el-table-column>
            <el-table-column prop="startTime" label="计划开工时间">
            <el-table-column prop="fplancommitdate" label="计划开工时间">
            </el-table-column>
            <el-table-column prop="endTime" label="计划完工时间">
            <el-table-column prop="fplanfinishdate" label="计划完工时间">
            </el-table-column>
            <el-table-column prop="sync" label="是否同步">
            <el-table-column prop="izSyncReceive" label="是否同步" width="90">
            </el-table-column>
            <el-table-column prop="matnrReturn" label="是否退料">
            <el-table-column prop="izSyncReceiveReturn" label="是否退料" width="90">
            </el-table-column>
        </el-table>
            <div style="margin-top: 10px">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                               :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
                               layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
                </el-pagination>
            </div>
<!--            <div style="margin-top: 10px">-->
<!--                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"-->
<!--                               :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"-->
<!--                               layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">-->
<!--                </el-pagination>-->
<!--            </div>-->
            
        </el-card>
@@ -83,7 +102,7 @@
    <script src="../../static/evn/icons-vue.js"></script>
    <script type="module">
        // 导入中文语言包
        import zhCn from './zh-cn.js';
        import zhCn from '../../static/js/erp/zh-cn.js';
        
        const { createApp, ref, onMounted } = Vue;
       
@@ -91,13 +110,31 @@
        const app = createApp({
            setup() {
                const currentPage = ref(1)
                const pageSizes = ref([16, 30, 50, 100, 150, 200])
                const pageSize = ref(16)
                const pageSizes = ref([15,20, 30, 50, 100, 200])
                const pageSize = ref(15)
                const pageTotal = ref(0)
                const tableSearchParam = ref({
                    produce_no: null
                    soCode: null,
                    fplancommitdate: new Date(),
                    depName:null
                })
                const tableData = ref([])
                const defaultTime = ref(new Date())
                const fullscreenLoading = ref(false)
                const options = [
                    {
                        value: '南区车间',
                        label: '南区车间'
                    },
                    {
                        value: '北区车间',
                        label: '北区车间'
                    },
                ]
                const selectList = ref([])
                
                function page(){
                    let data = JSON.parse(JSON.stringify(tableSearchParam.value))
@@ -107,8 +144,13 @@
                        data.datetime = null
                        data.create_time = tableSearchParam.value.datetime[0] + " - " + tableSearchParam.value.datetime[1]
                    }
                    const loading = ElementPlus.ElLoading.service({
                        lock: true,
                        text: 'Loading',
                        background: 'rgba(0, 0, 0, 0.7)',
                    })
                    $.ajax({
                        url: baseUrl + "/erpReceiving/list/auth",
                        url: "http://127.0.0.1:9090/mo/materialreceive/getList",
                        headers: {
                            'token': localStorage.getItem('token')
                        },
@@ -117,15 +159,185 @@
                        contentType: 'application/json;charset=UTF-8',
                        method: 'GET',
                        success: function(res) {
                            loading.close()
                            if (res.code == 200) {
                                // 修复:直接赋值给 ref 变量
                                tableData.value = res.data.records
                                pageTotal.value = res.data.total
                                tableData.value = res.data
                                ElementPlus.ElMessage({
                                    message: "拉取数据完成",
                                    type: 'success'
                                });
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                // 修复:使用 ElMessage 而不是 this.$message
                                ElMessage({
                                ElementPlus.ElMessage({
                                    message: res.msg,
                                    type: 'error'
                                });
                            }
                        }
                    });
                }
                function tongbu(){
                    if (selectList.value.length === 0){
                        ElementPlus.ElMessage({
                            message: "请先选择",
                            type: 'error'
                        });
                        return ;
                    }
                    const loading = ElementPlus.ElLoading.service({
                        lock: true,
                        text: 'Loading',
                        background: 'rgba(0, 0, 0, 0.7)',
                    })
                    $.ajax({
                        url:"http://127.0.0.1:9090/mo/materialreceive/tongbu",
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: JSON.stringify(selectList.value),
                        dataType: 'json',
                        contentType: 'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function(res) {
                            loading.close();
                            if (res.code == 200) {
                                ElementPlus.ElMessage({
                                    message: "同步完成",
                                    type: 'success'
                                });
                                page()
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                ElementPlus.ElMessage({
                                    message: res.msg,
                                    type: 'error'
                                });
                            }
                        }
                    });
                }
                function caneltongbu1(){
                    if (selectList.value.length === 0){
                        ElementPlus.ElMessage({
                            message: "请先选择",
                            type: 'error'
                        });
                        return ;
                    }
                    const loading = ElementPlus.ElLoading.service({
                        lock: true,
                        text: 'Loading',
                        background: 'rgba(0, 0, 0, 0.7)',
                    })
                    $.ajax({
                        url: "http://127.0.0.1:9090/mo/materialreceive/caneltongbu1",
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: JSON.stringify(selectList.value),
                        dataType: 'json',
                        contentType: 'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function(res) {
                            loading.close();
                            if (res.code == 200) {
                                ElementPlus.ElMessage({
                                    message: "撤销同步完成",
                                    type: 'success'
                                });
                                page()
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                ElementPlus.ElMessage({
                                    message: res.msg,
                                    type: 'error'
                                });
                            }
                        }
                    });
                }
                function tongbureturn(){
                    if (selectList.value.length === 0){
                        ElementPlus.ElMessage({
                            message: "请先选择",
                            type: 'error'
                        });
                        return ;
                    }
                    const loading = ElementPlus.ElLoading.service({
                        lock: true,
                        text: 'Loading',
                        background: 'rgba(0, 0, 0, 0.7)',
                    })
                    $.ajax({
                        url: "http://127.0.0.1:9090/mo/materialreceive/tongbureturn",
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: JSON.stringify(selectList.value),
                        dataType: 'json',
                        contentType: 'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function(res) {
                            loading.close();
                            if (res.code == 200) {
                                ElementPlus.ElMessage({
                                    message: "退料完成",
                                    type: 'success'
                                });
                                page()
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                ElementPlus.ElMessage({
                                    message: res.msg,
                                    type: 'error'
                                });
                            }
                        }
                    });
                }
                function caneltongbureturn(){
                    if (selectList.value.length === 0){
                        ElementPlus.ElMessage({
                            message: "请先选择",
                            type: 'error'
                        });
                        return ;
                    }
                    const loading = ElementPlus.ElLoading.service({
                        lock: true,
                        text: 'Loading',
                        background: 'rgba(0, 0, 0, 0.7)',
                    })
                    $.ajax({
                        url: "http://127.0.0.1:9090/mo/materialreceive/caneltongbureturn",
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: JSON.stringify(selectList.value),
                        dataType: 'json',
                        contentType: 'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function(res) {
                            loading.close();
                            if (res.code == 200) {
                                ElementPlus.ElMessage({
                                    message: "撤销退料完成",
                                    type: 'success'
                                });
                                page()
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                ElementPlus.ElMessage({
                                    message: res.msg,
                                    type: 'error'
                                });
@@ -144,8 +356,9 @@
                    currentPage.value = val
                    page()
                }
                function handleSelectionChange(val) {
                function handleSelectionChange(val) {
                    console.log(val)
                    selectList.value = val
                }
                onMounted(() => {
@@ -159,7 +372,13 @@
                    pageSize,
                    pageTotal,
                    tableSearchParam,
                    defaultTime,
                    options,
                    page,
                    tongbu,
                    caneltongbu1,
                    tongbureturn,
                    caneltongbureturn,
                    handleSizeChange,
                    handleCurrentChange,
                    handleSelectionChange