自动化立体仓库 - WMS系统
*
lsh
6 天以前 f0a7fa09eeef7fd9dc97173b5ef8e319d17c7f28
src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
@@ -104,7 +104,7 @@
         <div class="search-item">
            <span class="search-label">组货单号:</span>
            <el-input
                  v-model="searchForm.uuid"
                  v-model="searchForm.itemName"
                  placeholder="请输入组货单号"
                  clearable
                  style="width: 150px;"
@@ -121,6 +121,16 @@
                  @keyup.enter.native="handleSearch"
            ></el-input>
         </div>
<!--         <div class="search-item">-->
<!--            <span class="search-label">订单编号:</span>-->
<!--            <el-input-->
<!--                  v-model="searchForm.orderNo"-->
<!--                  placeholder="请输入订单编号"-->
<!--                  clearable-->
<!--                  style="width: 150px;"-->
<!--                  @keyup.enter.native="handleSearch"-->
<!--            ></el-input>-->
<!--         </div>-->
         <div class="search-item">
            <span class="search-label">状态:</span>
            <el-select
@@ -130,19 +140,16 @@
                  style="width: 150px;"
            >
               <el-option label="全部" value=""></el-option>
               <el-option label="正常" value="1"></el-option>
               <el-option label="禁用" value="0"></el-option>
               <el-option label="待处理" value="10"></el-option>
               <el-option label="检验中" value="11"></el-option>
               <el-option label="出库中" value="12"></el-option>
               <el-option label="存在不合格" value="13"></el-option>
               <el-option label="待上报" value="15"></el-option>
               <el-option label="上报完成" value="16"></el-option>
               <el-option label="上报失败" value="17"></el-option>
               <el-option label="异常" value="98"></el-option>
               <el-option label="废弃" value="99"></el-option>
            </el-select>
         </div>
         <div class="search-item">
            <span class="search-label">订单编号:</span>
            <el-input
                  v-model="searchForm.orderNo"
                  placeholder="请输入订单编号"
                  clearable
                  style="width: 150px;"
                  @keyup.enter.native="handleSearch"
            ></el-input>
         </div>
         <div class="search-actions">
            <el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
@@ -161,12 +168,13 @@
            style="width: 100%"
            v-loading="loading"
            @sort-change="handleSortChange">
         <el-table-column prop="uuid" label="组货单号" width="120" align="center" sortable="custom"></el-table-column>
         <el-table-column prop="orderNo" label="订单编号" min-width="140" align="center"></el-table-column>
         <el-table-column prop="itemName" label="组货单号" width="120" align="center" sortable="custom"></el-table-column>
<!--         <el-table-column prop="orderNo" label="订单编号" min-width="140" align="center"></el-table-column>-->
<!--         <el-table-column prop="memo" label="备注" min-width="120" align="center"></el-table-column>-->
         <el-table-column prop="cstmrName" label="客户名称" min-width="120" align="center"></el-table-column>
         <el-table-column prop="settle" label="状态" min-width="100" align="center" :formatter="formatStatus"></el-table-column>
         <el-table-column prop="totalFee" label="合计金额" min-width="100" align="center" :formatter="formatCurrency"></el-table-column>
         <el-table-column prop="createTime" label="创建时间" min-width="140" align="center" sortable="custom"></el-table-column>
<!--         <el-table-column prop="totalFee" label="合计金额" min-width="100" align="center" :formatter="formatCurrency"></el-table-column>-->
<!--         <el-table-column prop="createTime" label="创建时间" min-width="140" align="center" sortable="custom"></el-table-column>-->
         <el-table-column label="操作" width="150" align="center" fixed="right">
            <template slot-scope="scope">
               <div class="operation-cell">
@@ -203,12 +211,11 @@
         class="detail-dialog"
         @close="closeDetailDialog">
      <div v-if="currentRow">
         <h3>组货单主表 (组货单号: {{ currentRow.uuid }})</h3>
         <h3>组货单主表 (组货单号: {{ currentRow.itemName }})</h3>
         <el-descriptions :column="2" border>
            <el-descriptions-item label="订单编号">{{ currentRow.orderNo }}</el-descriptions-item>
<!--            <el-descriptions-item label="订单编号">{{ currentRow.orderNo }}</el-descriptions-item>-->
            <el-descriptions-item label="客户名称">{{ currentRow.cstmrName }}</el-descriptions-item>
            <el-descriptions-item label="状态">{{ formatStatus(currentRow) }}</el-descriptions-item>
            <el-descriptions-item label="合计金额">{{ formatCurrency(currentRow) }}</el-descriptions-item>
            <el-descriptions-item label="状态">{{ formatStatus(currentRow)}}</el-descriptions-item>
            <el-descriptions-item label="创建时间">{{ formatDate(currentRow.createTime) }}</el-descriptions-item>
            <el-descriptions-item label="备注">{{ currentRow.memo || '无' }}</el-descriptions-item>
         </el-descriptions>
@@ -219,10 +226,13 @@
               :data="tableDataB"
               style="width: 100%"
               v-loading="detailLoading">
            <el-table-column prop="productName" label="产品名称" min-width="120" align="center"></el-table-column>
            <el-table-column prop="quantity" label="数量" min-width="80" align="center"></el-table-column>
            <el-table-column prop="price" label="单价" min-width="100" align="center" :formatter="formatCurrency"></el-table-column>
            <el-table-column prop="totalPrice" label="金额" min-width="100" align="center" :formatter="formatCurrency"></el-table-column>
            <el-table-column prop="matnr" label="规格" min-width="120" align="center"></el-table-column>
            <el-table-column prop="batch" label="箱号" min-width="80" align="center"></el-table-column>
            <el-table-column prop="model" label="卷号" min-width="100" align="center" ></el-table-column>
            <el-table-column prop="origin" label="位置" min-width="100" align="center"></el-table-column>
            <el-table-column prop="danger" label="待判" min-width="100" align="center"></el-table-column>
            <el-table-column prop="memo" label="备注" min-width="100" align="center"></el-table-column>
            <el-table-column prop="status" label="状态" min-width="100" align="center" :formatter="formatStatusB"></el-table-column>
            <!-- 可根据实际需求添加更多子表列 -->
         </el-table>
@@ -258,10 +268,10 @@
      data: {
         // 搜索表单
         searchForm: {
            uuid: '',
            cstmrName: '',
            item_name: '',
            cstmr_name: '',
            settle: '',
            orderNo: ''
            order_no: ''
         },
         // 排序相关
         orderByField: '',
@@ -296,7 +306,7 @@
            // 每5秒自动刷新数据
            setInterval(() => {
               this.getTableDataA();
            }, 5000);
            }, 10000);
         },
         // 获取主表A数据 - 使用新的API
@@ -319,13 +329,21 @@
            // 添加搜索参数
            Object.keys(that.searchForm).forEach(key => {
               if (that.searchForm[key] !== '') {
                  params[key] = that.searchForm[key];
                  if (key === 'orderNo'){
                     params['order_no'] = that.searchForm[key];
                  } else if (key === 'itemName'){
                     params['item_name'] = that.searchForm[key];
                  } else if (key === 'cstmrName'){
                     params['cstmr_name'] = that.searchForm[key];
                  } else {
                     params[key] = that.searchForm[key];
                  }
               }
            });
            $.ajax({
               // url: baseUrl + "/order/pakout/order/cargo/grouping/auth/v1",
               url: baseUrl + "/order/head/page/auth",
               url: baseUrl + "/order/pakout/order/cargo/grouping/auth/v1",
               // url: baseUrl + "/order/head/page/auth",
               headers: {
                  'token': localStorage.getItem('token')
               },
@@ -354,33 +372,43 @@
         },
         // 获取子表B数据(根据实际业务调整)
         getTableDataB(uuid) {
         getTableDataB(itemName) {
            let that = this;
            that.detailLoading = true;
            // 构建请求参数
            let params = {
               item_name: itemName,
               curr: that.detailCurrentPage,
               limit: that.detailPageSize
            };
            // 模拟API调用 - 根据实际业务调整API地址
            $.ajax({
               url: baseUrl + "/api/order/detail/list",
               url: baseUrl + "/order/pakout/orderDetl/cargo/grouping/auth",
               // url: baseUrl + "/orderDetl/list/auth",
               headers: {
                  'token': localStorage.getItem('token')
               },
               data: {
                  uuid: uuid,
                  page: that.detailCurrentPage,
                  size: that.detailPageSize
               },
               data: params,
               dataType: 'json',
               contentType: 'application/json;charset=UTF-8',
               method: 'post',
               method: 'get',
               success: function (res) {
                  that.tableDataB = res.data || [];
                  that.detailTotal = res.total || 0;
                  if (res.code === 200 || res.success) {
                     that.tableDataB = res.data.records || [];
                     that.detailTotal = res.data.total || 0;
                  } else {
                     that.$message.error(res.message || '获取数据失败');
                     that.tableDataB = [];
                     that.detailTotal = 0;
                  }
                  that.detailLoading = false;
               },
               error: function() {
                  that.detailLoading = false;
                  // 实际项目中应使用真实API,这里使用模拟数据
                  that.mockTableBData(uuid);
                  that.mockTableBData(itemName);
               }
            });
         },
@@ -405,7 +433,7 @@
               return;
            }
            const groupOrderNo = this.currentRow.uuid;
            const groupOrderNo = this.currentRow.itemName;
            this.$confirm(
                  `是否确认开始上报组货单号 <strong style="color: #F56C6C; font-size: 16px;">${groupOrderNo}</strong>?<br/><br/>将生成实际组货单,单一组货单号只能操作一次!!!`,
@@ -447,7 +475,7 @@
                  'token': localStorage.getItem('token')
               },
               data: JSON.stringify({
                  uuid: groupOrderNo // 传递组货单号
                  item_name: groupOrderNo // 传递组货单号
               }),
               dataType: 'json',
               contentType: 'application/json;charset=UTF-8',
@@ -495,10 +523,10 @@
         // 重置搜索条件
         handleReset() {
            this.searchForm = {
               uuid: '',
               cstmrName: '',
               item_name: '',
               cstmr_name: '',
               settle: '',
               orderNo: ''
               order_no: ''
            };
            this.orderByField = '';
            this.orderByType = 'asc';
@@ -511,7 +539,7 @@
            this.currentRow = row;
            this.detailDialogVisible = true;
            this.detailCurrentPage = 1;
            this.getTableDataB(row.uuid);
            this.getTableDataB(row.itemName);
         },
         // 关闭详情弹窗
@@ -540,7 +568,7 @@
            this.detailPageSize = val;
            this.detailCurrentPage = 1;
            if (this.currentRow) {
               this.getTableDataB(this.currentRow.uuid);
               this.getTableDataB(this.currentRow.itemName);
            }
         },
@@ -548,18 +576,47 @@
         handleDetailCurrentChange(val) {
            this.detailCurrentPage = val;
            if (this.currentRow) {
               this.getTableDataB(this.currentRow.uuid);
               this.getTableDataB(this.currentRow.itemName);
            }
         },
         // 格式化状态显示
         formatStatus(row) {
            if (row.settle === 1) {
               return '正常';
            } else if (row.settle === 0) {
               return '禁用';
            if (row.settle === 10) {
               return '待处理';
            } else if (row.settle === 11) {
               return '检验中';
            } else if (row.settle === 12) {
               return '出库中';
            } else if (row.settle === 13) {
               return '存在不合格';
            } else if (row.settle === 15) {
               return '待上报';
            } else if (row.settle === 16) {
               return '上报完成';
            } else if (row.settle === 17) {
               return '上报失败';
            } else if (row.settle === 98) {
               return '异常';
            } else if (row.settle === 99) {
               return '废弃';
            } else {
               return row.settle || '未知';
            }
         },
         // 格式化状态显示
         formatStatusB(row) {
            if (row.status === 0) {
               return '异常';
            } else if (row.status === 1) {
               return '正常';
            } else if (row.status === 2) {
               return '待上报';
            } else if (row.status === 3) {
               return '已上报';
            } else {
               return row.status || '未知';
            }
         },
@@ -582,7 +639,7 @@
         mockTableAData() {
            this.tableDataA = [
               {
                  uuid: 'ZH1001',
                  itemName: 'ZH1001',
                  orderNo: 'ORDER2024001',
                  cstmrName: '示例客户A',
                  settle: 1,
@@ -591,7 +648,7 @@
                  memo: '测试数据'
               },
               {
                  uuid: 'ZH1002',
                  itemName: 'ZH1002',
                  orderNo: 'ORDER2024002',
                  cstmrName: '示例客户B',
                  settle: 1,
@@ -605,10 +662,10 @@
         },
         // 模拟子表数据 - 实际项目中应删除
         mockTableBData(uuid) {
         mockTableBData(itemName) {
            this.tableDataB = [
               { productName: `产品A-${uuid}`, quantity: 2, price: 500.00, totalPrice: 1000.00 },
               { productName: `产品B-${uuid}`, quantity: 1, price: 300.50, totalPrice: 300.50 }
               { productName: `产品A-${itemName}`, quantity: 2, price: 500.00, totalPrice: 1000.00 },
               { productName: `产品B-${itemName}`, quantity: 1, price: 300.50, totalPrice: 300.50 }
            ];
            this.detailTotal = 2;
            this.detailLoading = false;