Browse Source

Merge branch 'master' of http://192.168.1.160:3000/zhaohanlin/rtk-web-wms-cloud

yesheng 2 weeks ago
parent
commit
4d755d401a

+ 2 - 2
.env.dev

@@ -7,8 +7,8 @@ VUE_APP_TITLE = WMS开发环境
 # 芋道管理系统/开发环境
 # VUE_APP_BASE_API = 'http://192.168.1.94:48080'
 # VUE_APP_BASE_API = 'http://127.0.0.1:48080'
-VUE_APP_BASE_API = 'http://113.105.183.190:42699'
-# VUE_APP_BASE_API = 'http://192.168.1.85:48080'
+# VUE_APP_BASE_API = 'http://113.105.183.190:42699'
+VUE_APP_BASE_API = 'http://192.168.1.85:48080'
 # VUE_APP_ETM_URL = 'http://localhost:81/index'
 # VUE_APP_ETM_URL = 'http://192.168.1.163:8181/etm/'
 # VUE_APP_MES_URL = 'http://192.168.1.163:8181/mes/'

+ 53 - 0
src/api/wms/output/inoutrequestdetail.js

@@ -0,0 +1,53 @@
+import request from "@/utils/request";
+
+// 创建出入库申请明细
+export function createInoutRequestDetail(data) {
+  return request({
+    url: "/rtkwms/inout-request-detail/create",
+    method: "post",
+    data: data,
+  });
+}
+
+// 更新出入库申请明细
+export function updateInoutRequestDetail(data) {
+  return request({
+    url: "/rtkwms/inout-request-detail/update",
+    method: "put",
+    data: data,
+  });
+}
+
+// 删除出入库申请明细
+export function deleteInoutRequestDetail(id) {
+  return request({
+    url: "/rtkwms/inout-request-detail/delete?id=" + id,
+    method: "delete",
+  });
+}
+
+// 获得出入库申请明细
+export function getInoutRequestDetail(id) {
+  return request({
+    url: "/rtkwms/inout-request-detail/get?id=" + id,
+    method: "get",
+  });
+}
+
+// 获得出入库申请明细分页
+export function getInoutRequestDetailPage(params) {
+  return request({
+    url: "/rtkwms/inout-request-detail/page",
+    method: "get",
+    params,
+  });
+}
+// 导出出入库申请明细 Excel
+export function exportInoutRequestDetailExcel(params) {
+  return request({
+    url: "/rtkwms/inout-request-detail/export-excel",
+    method: "get",
+    params,
+    responseType: "blob",
+  });
+}

+ 53 - 0
src/api/wms/output/inrequest.js

@@ -0,0 +1,53 @@
+import request from "@/utils/request";
+
+// 创建入库申请主
+export function createInRequest(data) {
+  return request({
+    url: "/rtkwms/inout-request/createOutRequestOrder",
+    method: "post",
+    data: data,
+  });
+}
+
+// 更新入库申请主
+export function updateInRequest(data) {
+  return request({
+    url: "/rtkwms/inout-request/updateOutRequestOrder",
+    method: "put",
+    data: data,
+  });
+}
+
+// 删除入库申请主
+export function deleteInRequest(id) {
+  return request({
+    url: "/rtkwms/in-request/delete?id=" + id,
+    method: "delete",
+  });
+}
+
+// 获得入库申请主
+export function getInRequest(id) {
+  return request({
+    url: "/rtkwms/in-request/get?id=" + id,
+    method: "get",
+  });
+}
+
+// 获得入库申请主分页
+export function getInRequestPage(params) {
+  return request({
+    url: "/rtkwms/in-request/page",
+    method: "get",
+    params,
+  });
+}
+// 导出入库申请主 Excel
+export function exportInRequestExcel(params) {
+  return request({
+    url: "/rtkwms/in-request/export-excel",
+    method: "get",
+    params,
+    responseType: "blob",
+  });
+}

+ 315 - 0
src/views/wms/output/inrequest/components/InRequestForm.vue

@@ -0,0 +1,315 @@
+<template>
+  <div class="app-container">
+    <!-- 对话框(添加 / 修改) -->
+    <el-dialog
+      v-dialogDrag
+      :title="dialogTitle"
+      :visible.sync="dialogVisible"
+      width="45%"
+      append-to-body
+    >
+      <el-form
+        ref="formRef"
+        v-loading="formLoading"
+        :model="formData"
+        :rules="formRules"
+        label-width="100px"
+      >
+        <el-form-item label="申请单号" prop="requestNo">
+          <el-input v-model="formData.requestNo" placeholder="请输入申请单号" />
+        </el-form-item>
+        <el-form-item label="申请类型" prop="requestType">
+          <el-select
+            v-model="formData.requestType"
+            placeholder="请选择申请类型"
+          >
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="业务类型" prop="businessType">
+          <el-select
+            v-model="formData.businessType"
+            placeholder="请选择业务类型"
+          >
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="业务分类编码" prop="businessCategory">
+          <el-input
+            v-model="formData.businessCategory"
+            placeholder="请输入业务分类编码"
+          />
+        </el-form-item>
+        <el-form-item label="业务分类名称" prop="businessDescribe">
+          <el-input
+            v-model="formData.businessDescribe"
+            placeholder="请输入业务分类名称"
+          />
+        </el-form-item>
+        <el-form-item label="业务子类型" prop="businessSubType">
+          <el-select
+            v-model="formData.businessSubType"
+            placeholder="请选择业务子类型"
+          >
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select v-model="formData.status" placeholder="请选择状态">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="优先级" prop="priority">
+          <el-input v-model="formData.priority" placeholder="请输入优先级" />
+        </el-form-item>
+        <el-form-item label="供应商编码" prop="supplierCode">
+          <el-input
+            v-model="formData.supplierCode"
+            placeholder="请输入供应商编码"
+          />
+        </el-form-item>
+        <el-form-item label="客户编码" prop="customerCode">
+          <el-input
+            v-model="formData.customerCode"
+            placeholder="请输入客户编码"
+          />
+        </el-form-item>
+        <el-form-item label="源单编号" prop="sourceOrderNo">
+          <el-input
+            v-model="formData.sourceOrderNo"
+            placeholder="请输入源单编号"
+          />
+        </el-form-item>
+        <el-form-item label="预计出入库时间" prop="expectedTime">
+          <el-date-picker
+            v-model="formData.expectedTime"
+            clearable
+            type="date"
+            value-format="timestamp"
+            placeholder="选择预计出入库时间"
+          />
+        </el-form-item>
+        <el-form-item label="实际出入库时间" prop="actualTime">
+          <el-date-picker
+            v-model="formData.actualTime"
+            clearable
+            type="date"
+            value-format="timestamp"
+            placeholder="选择实际出入库时间"
+          />
+        </el-form-item>
+        <el-form-item label="总数量" prop="totalQty">
+          <el-input v-model="formData.totalQty" placeholder="请输入总数量" />
+        </el-form-item>
+        <el-form-item label="总SKU数" prop="totalSku">
+          <el-input v-model="formData.totalSku" placeholder="请输入总SKU数" />
+        </el-form-item>
+        <el-form-item label="总行数" prop="totalLine">
+          <el-input v-model="formData.totalLine" placeholder="请输入总行数" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="formData.remark" placeholder="请输入备注" />
+        </el-form-item>
+        <el-form-item label="提交人" prop="submitter">
+          <el-input v-model="formData.submitter" placeholder="请输入提交人" />
+        </el-form-item>
+        <el-form-item label="提交时间" prop="submitTime">
+          <el-date-picker
+            v-model="formData.submitTime"
+            clearable
+            type="date"
+            value-format="timestamp"
+            placeholder="选择提交时间"
+          />
+        </el-form-item>
+        <el-form-item label="审核人" prop="auditor">
+          <el-input v-model="formData.auditor" placeholder="请输入审核人" />
+        </el-form-item>
+        <el-form-item label="审核时间" prop="auditTime">
+          <el-date-picker
+            v-model="formData.auditTime"
+            clearable
+            type="date"
+            value-format="timestamp"
+            placeholder="选择审核时间"
+          />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" :disabled="formLoading" @click="submitForm"
+          >确 定</el-button
+        >
+        <el-button @click="dialogVisible = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import * as InRequestApi from "@/api/wms/output/inrequest";
+export default {
+  name: "InRequestForm",
+  components: {},
+  data() {
+    return {
+      // 弹出层标题
+      dialogTitle: "",
+      // 是否显示弹出层
+      dialogVisible: false,
+      // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
+      formLoading: false,
+      // 表单参数
+      formData: {
+        id: undefined,
+        requestNo: undefined,
+        requestType: undefined,
+        businessType: undefined,
+        businessCategory: undefined,
+        businessDescribe: undefined,
+        businessSubType: undefined,
+        status: undefined,
+        priority: undefined,
+        warehouseId: undefined,
+        relatedWarehouseId: undefined,
+        supplierCode: undefined,
+        customerCode: undefined,
+        sourceOrderNo: undefined,
+        expectedTime: undefined,
+        actualTime: undefined,
+        totalQty: undefined,
+        totalSku: undefined,
+        totalLine: undefined,
+        remark: undefined,
+        extendInfo: undefined,
+        submitter: undefined,
+        submitTime: undefined,
+        auditor: undefined,
+        auditTime: undefined,
+        erpWriteFlag: undefined,
+        erpErrMsg: undefined,
+        erpBackId: undefined,
+      },
+      // 表单校验
+      formRules: {
+        requestNo: [
+          { required: true, message: "申请单号不能为空", trigger: "blur" },
+        ],
+        requestType: [
+          {
+            required: true,
+            message: "申请类型(0入库 1出库)不能为空",
+            trigger: "change",
+          },
+        ],
+        businessType: [
+          {
+            required: true,
+            message:
+              "业务类型(0采购入库 3生产退料 4成品入库 6销售退货 8委外退料 9委外入库 11其他入库 13转移调拨 14仓库盘点)不能为空",
+            trigger: "change",
+          },
+        ],
+        businessSubType: [
+          {
+            required: true,
+            message: "业务子类型(0正常 1补料)不能为空",
+            trigger: "change",
+          },
+        ],
+        status: [
+          {
+            required: true,
+            message:
+              "状态(0草稿 1已提交 2已审核 3执行中 4已完成 5已取消)不能为空",
+            trigger: "blur",
+          },
+        ],
+        priority: [
+          {
+            required: true,
+            message: "优先级(0普通 1紧急 2加急)不能为空",
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  methods: {
+    /** 打开弹窗 */
+    async open(id) {
+      this.dialogVisible = true;
+      this.reset();
+      // 修改时,设置数据
+      if (id) {
+        this.formLoading = true;
+        try {
+          const res = await InRequestApi.getInRequest(id);
+          this.formData = res.data;
+          this.title = "修改入库申请主";
+        } finally {
+          this.formLoading = false;
+        }
+      }
+      this.title = "新增入库申请主";
+    },
+    /** 提交按钮 */
+    async submitForm() {
+      // 校验主表
+      await this.$refs["formRef"].validate();
+      this.formLoading = true;
+      try {
+        const data = this.formData;
+        // 修改的提交
+        if (data.id) {
+          await InRequestApi.updateInRequest(data);
+          this.$modal.msgSuccess("修改成功");
+          this.dialogVisible = false;
+          this.$emit("success");
+          return;
+        }
+        // 添加的提交
+        await InRequestApi.createInRequest(data);
+        this.$modal.msgSuccess("新增成功");
+        this.dialogVisible = false;
+        this.$emit("success");
+      } finally {
+        this.formLoading = false;
+      }
+    },
+    /** 表单重置 */
+    reset() {
+      this.formData = {
+        id: undefined,
+        requestNo: undefined,
+        requestType: undefined,
+        businessType: undefined,
+        businessCategory: undefined,
+        businessDescribe: undefined,
+        businessSubType: undefined,
+        status: undefined,
+        priority: undefined,
+        warehouseId: undefined,
+        relatedWarehouseId: undefined,
+        supplierCode: undefined,
+        customerCode: undefined,
+        sourceOrderNo: undefined,
+        expectedTime: undefined,
+        actualTime: undefined,
+        totalQty: undefined,
+        totalSku: undefined,
+        totalLine: undefined,
+        remark: undefined,
+        extendInfo: undefined,
+        submitter: undefined,
+        submitTime: undefined,
+        auditor: undefined,
+        auditTime: undefined,
+        erpWriteFlag: undefined,
+        erpErrMsg: undefined,
+        erpBackId: undefined,
+      };
+      this.resetForm("formRef");
+    },
+  },
+};
+</script>

+ 251 - 0
src/views/wms/output/inrequest/components/InoutRequestDetailForm.vue

@@ -0,0 +1,251 @@
+<template>
+  <div class="app-container">
+    <!-- 对话框(添加 / 修改) -->
+    <el-dialog
+      v-dialogDrag
+      :title="dialogTitle"
+      :visible.sync="dialogVisible"
+      width="45%"
+      append-to-body
+    >
+      <el-form
+        ref="formRef"
+        v-loading="formLoading"
+        :model="formData"
+        :rules="formRules"
+        label-width="100px"
+      >
+        <el-form-item label="行号" prop="lineNo">
+          <el-input v-model="formData.lineNo" placeholder="请输入行号" />
+        </el-form-item>
+        <el-form-item label="物料编码" prop="materialNo">
+          <el-input
+            v-model="formData.materialNo"
+            placeholder="请输入物料编码"
+          />
+        </el-form-item>
+        <el-form-item label="物料名称" prop="materialName">
+          <el-input
+            v-model="formData.materialName"
+            placeholder="请输入物料名称"
+          />
+        </el-form-item>
+        <el-form-item label="物料规格" prop="materialSpec">
+          <el-input
+            v-model="formData.materialSpec"
+            placeholder="请输入物料规格"
+          />
+        </el-form-item>
+        <el-form-item label="批号" prop="batchNumber">
+          <el-input v-model="formData.batchNumber" placeholder="请输入批号" />
+        </el-form-item>
+        <el-form-item label="单位" prop="unit">
+          <el-input v-model="formData.unit" placeholder="请输入单位" />
+        </el-form-item>
+        <el-form-item label="计划数量" prop="planQty">
+          <el-input v-model="formData.planQty" placeholder="请输入计划数量" />
+        </el-form-item>
+        <el-form-item label="实际数量" prop="actualQty">
+          <el-input v-model="formData.actualQty" placeholder="请输入实际数量" />
+        </el-form-item>
+        <el-form-item label="已完成数量" prop="completedQty">
+          <el-input
+            v-model="formData.completedQty"
+            placeholder="请输入已完成数量"
+          />
+        </el-form-item>
+        <el-form-item label="质量状态" prop="qualityStatus">
+          <el-radio-group v-model="formData.qualityStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="生产日期" prop="productionDate">
+          <el-date-picker
+            v-model="formData.productionDate"
+            clearable
+            type="date"
+            value-format="timestamp"
+            placeholder="选择生产日期"
+          />
+        </el-form-item>
+        <el-form-item label="失效日期" prop="expirationDate">
+          <el-date-picker
+            v-model="formData.expirationDate"
+            clearable
+            type="date"
+            value-format="timestamp"
+            placeholder="选择失效日期"
+          />
+        </el-form-item>
+        <el-form-item label="库存状态" prop="inventoryStatus">
+          <el-radio-group v-model="formData.inventoryStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="源明细行号" prop="sourceLineNo">
+          <el-input
+            v-model="formData.sourceLineNo"
+            placeholder="请输入源明细行号"
+          />
+        </el-form-item>
+        <el-form-item label="源批次号" prop="sourceBatchNumber">
+          <el-input
+            v-model="formData.sourceBatchNumber"
+            placeholder="请输入源批次号"
+          />
+        </el-form-item>
+        <el-form-item label="行备注" prop="remark">
+          <el-input v-model="formData.remark" placeholder="请输入行备注" />
+        </el-form-item>
+        <el-form-item label="行状态" prop="status">
+          <el-radio-group v-model="formData.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" :disabled="formLoading" @click="submitForm"
+          >确 定</el-button
+        >
+        <el-button @click="dialogVisible = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import * as InoutRequestDetailApi from "@/api/wms/output/inoutrequestdetail";
+export default {
+  name: "InoutRequestDetailForm",
+  components: {},
+  data() {
+    return {
+      // 弹出层标题
+      dialogTitle: "",
+      // 是否显示弹出层
+      dialogVisible: false,
+      // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
+      formLoading: false,
+      // 表单参数
+      formData: {
+        id: undefined,
+        requestId: undefined,
+        lineNo: undefined,
+        materialNo: undefined,
+        materialName: undefined,
+        materialSpec: undefined,
+        batchNumber: undefined,
+        unit: undefined,
+        planQty: undefined,
+        actualQty: undefined,
+        completedQty: undefined,
+        qualityStatus: undefined,
+        productionDate: undefined,
+        expirationDate: undefined,
+        inventoryStatus: undefined,
+        sourceLineNo: undefined,
+        sourceBatchNumber: undefined,
+        sourceReference: undefined,
+        remark: undefined,
+        status: undefined,
+        stockCode: undefined,
+        areaCode: undefined,
+        locationCode: undefined,
+        sourceRequestId: undefined,
+        sourceDetailId: undefined,
+      },
+      // 表单校验
+      formRules: {
+        lineNo: [{ required: true, message: "行号不能为空", trigger: "blur" }],
+        materialNo: [
+          { required: true, message: "物料编码不能为空", trigger: "blur" },
+        ],
+        planQty: [
+          { required: true, message: "计划数量不能为空", trigger: "blur" },
+        ],
+        status: [
+          {
+            required: true,
+            message: "行状态不能为空",
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  methods: {
+    /** 打开弹窗 */
+    async open(id) {
+      this.dialogVisible = true;
+      this.reset();
+      // 修改时,设置数据
+      if (id) {
+        this.formLoading = true;
+        try {
+          const res = await InoutRequestDetailApi.getInoutRequestDetail(id);
+          this.formData = res.data;
+          this.title = "修改出入库申请明细";
+        } finally {
+          this.formLoading = false;
+        }
+      }
+      this.title = "新增出入库申请明细";
+    },
+    /** 提交按钮 */
+    async submitForm() {
+      // 校验主表
+      await this.$refs["formRef"].validate();
+      this.formLoading = true;
+      try {
+        const data = this.formData;
+        // 修改的提交
+        if (data.id) {
+          await InoutRequestDetailApi.updateInoutRequestDetail(data);
+          this.$modal.msgSuccess("修改成功");
+          this.dialogVisible = false;
+          this.$emit("success");
+          return;
+        }
+        // 添加的提交
+        await InoutRequestDetailApi.createInoutRequestDetail(data);
+        this.$modal.msgSuccess("新增成功");
+        this.dialogVisible = false;
+        this.$emit("success");
+      } finally {
+        this.formLoading = false;
+      }
+    },
+    /** 表单重置 */
+    reset() {
+      this.formData = {
+        id: undefined,
+        requestId: undefined,
+        lineNo: undefined,
+        materialNo: undefined,
+        materialName: undefined,
+        materialSpec: undefined,
+        batchNumber: undefined,
+        unit: undefined,
+        planQty: undefined,
+        actualQty: undefined,
+        completedQty: undefined,
+        qualityStatus: undefined,
+        productionDate: undefined,
+        expirationDate: undefined,
+        inventoryStatus: undefined,
+        sourceLineNo: undefined,
+        sourceBatchNumber: undefined,
+        sourceReference: undefined,
+        remark: undefined,
+        status: undefined,
+        stockCode: undefined,
+        areaCode: undefined,
+        locationCode: undefined,
+        sourceRequestId: undefined,
+        sourceDetailId: undefined,
+      };
+      this.resetForm("formRef");
+    },
+  },
+};
+</script>

+ 538 - 0
src/views/wms/output/inrequest/details.vue

@@ -0,0 +1,538 @@
+<template>
+  <div class="app-container">
+    <!-- 搜索工作栏 -->
+    <el-form
+      v-show="showSearch"
+      ref="queryForm"
+      :model="queryParams"
+      size="small"
+      label-width="68px"
+    >
+      <QueryFormWrapper>
+        <el-col :span="8">
+          <el-form-item label="行号" prop="lineNo">
+            <el-input
+              v-model="queryParams.lineNo"
+              placeholder="请输入行号"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="物料编码" prop="materialNo">
+            <el-input
+              v-model="queryParams.materialNo"
+              placeholder="请输入物料编码"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="物料名称" prop="materialName">
+            <el-input
+              v-model="queryParams.materialName"
+              placeholder="请输入物料名称"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+        </el-col>
+        <div slot="right">
+          <el-form-item label-width="0" class="text-right">
+            <EasyAdvancedQuery
+              class="mr10"
+              label-width="98px"
+              @advQuery="advQuery"
+            >
+              <template #default="{ model }">
+                <el-col :span="12">
+                  <el-form-item label="物料规格" prop="materialSpec">
+                    <el-input
+                      v-model="queryParams.materialSpec"
+                      placeholder="请输入物料规格"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="批号" prop="batchNumber">
+                    <el-input
+                      v-model="queryParams.batchNumber"
+                      placeholder="请输入批号"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="单位" prop="unit">
+                    <el-input
+                      v-model="queryParams.unit"
+                      placeholder="请输入单位"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="计划数量" prop="planQty">
+                    <el-input
+                      v-model="queryParams.planQty"
+                      placeholder="请输入计划数量"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="实际数量" prop="actualQty">
+                    <el-input
+                      v-model="queryParams.actualQty"
+                      placeholder="请输入实际数量"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="已完成数量" prop="completedQty">
+                    <el-input
+                      v-model="queryParams.completedQty"
+                      placeholder="请输入已完成数量"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="质量状态" prop="qualityStatus">
+                    <el-select
+                      v-model="queryParams.qualityStatus"
+                      placeholder="请选择质量状态"
+                      clearable
+                      size="small"
+                    >
+                      <el-option label="请选择字典生成" value="" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="生产日期" prop="productionDate">
+                    <el-date-picker
+                      v-model="queryParams.productionDate"
+                      style="width: 240px"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="daterange"
+                      range-separator="-"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :default-time="['00:00:00', '23:59:59']"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="失效日期" prop="expirationDate">
+                    <el-date-picker
+                      v-model="queryParams.expirationDate"
+                      style="width: 240px"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="daterange"
+                      range-separator="-"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :default-time="['00:00:00', '23:59:59']"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="库存状态" prop="inventoryStatus">
+                    <el-select
+                      v-model="queryParams.inventoryStatus"
+                      placeholder="请选择库存状态"
+                      clearable
+                      size="small"
+                    >
+                      <el-option label="请选择字典生成" value="" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="源明细行号" prop="sourceLineNo">
+                    <el-input
+                      v-model="queryParams.sourceLineNo"
+                      placeholder="请输入源明细行号"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="源批次号" prop="sourceBatchNumber">
+                    <el-input
+                      v-model="queryParams.sourceBatchNumber"
+                      placeholder="请输入源批次号"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="行备注" prop="remark">
+                    <el-input
+                      v-model="queryParams.remark"
+                      placeholder="请输入行备注"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="行状态" prop="status">
+                    <el-select
+                      v-model="queryParams.status"
+                      placeholder="请选择行状态"
+                      clearable
+                      size="small"
+                    >
+                      <el-option label="请选择字典生成" value="" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="创建时间" prop="createTime">
+                    <el-date-picker
+                      v-model="queryParams.createTime"
+                      style="width: 240px"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="daterange"
+                      range-separator="-"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :default-time="['00:00:00', '23:59:59']"
+                    />
+                  </el-form-item>
+                </el-col>
+              </template>
+            </EasyAdvancedQuery>
+            <el-button type="primary" icon="el-icon-search" @click="handleQuery"
+              >搜索</el-button
+            >
+            <el-button icon="el-icon-refresh" @click="resetQuery"
+              >重置</el-button
+            >
+          </el-form-item>
+        </div>
+      </QueryFormWrapper>
+    </el-form>
+
+    <!-- 操作工具栏 -->
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          v-hasPermi="['rtkwms:inout-request-detail:create']"
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="openForm(undefined)"
+          >新增</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          v-hasPermi="['rtkwms:inout-request-detail:export']"
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          >导出</el-button
+        >
+      </el-col>
+      <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
+    </el-row>
+
+    <el-table
+      v-loading="loading"
+      :data="list"
+      :stripe="true"
+      :show-overflow-tooltip="true"
+    >
+      <el-table-column label="行号" align="center" prop="lineNo" />
+      <el-table-column label="物料编码" align="center" prop="materialNo" />
+      <el-table-column label="物料名称" align="center" prop="materialName" />
+      <el-table-column label="物料规格" align="center" prop="materialSpec" />
+      <el-table-column label="批号" align="center" prop="batchNumber" />
+      <el-table-column label="单位" align="center" prop="unit" />
+      <el-table-column label="计划数量" align="center" prop="planQty" />
+      <el-table-column label="实际数量" align="center" prop="actualQty" />
+      <el-table-column label="已完成数量" align="center" prop="completedQty" />
+      <el-table-column label="质量状态" align="center" prop="qualityStatus" />
+      <el-table-column label="生产日期" align="center" prop="productionDate" />
+      <el-table-column label="失效日期" align="center" prop="expirationDate" />
+      <el-table-column label="库存状态" align="center" prop="inventoryStatus" />
+      <el-table-column label="源明细行号" align="center" prop="sourceLineNo" />
+      <el-table-column
+        label="源批次号"
+        align="center"
+        prop="sourceBatchNumber"
+      />
+      <el-table-column label="行备注" align="center" prop="remark" />
+      <el-table-column label="行状态" align="center" prop="status" />
+      <el-table-column
+        label="创建时间"
+        align="center"
+        prop="createTime"
+        width="180"
+      >
+        <template v-slot="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template v-slot="scope">
+          <el-button
+            v-hasPermi="['rtkwms:inout-request-detail:update']"
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="openForm(scope.row.id)"
+            >修改</el-button
+          >
+          <el-button
+            v-hasPermi="['rtkwms:inout-request-detail:delete']"
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页组件 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNo"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+    <!-- 对话框(添加 / 修改) -->
+    <InoutRequestDetailForm ref="formRef" @success="getList" />
+  </div>
+</template>
+
+<script>
+import * as InoutRequestDetailApi from "@/api/wms/output/inoutrequestdetail";
+import InoutRequestDetailForm from "./components/InoutRequestDetailForm.vue";
+import QueryFormWrapper from "@/components/QueryFormWrapper";
+import EasyAdvancedQuery from "@/components/EasyAdvancedQuery";
+export default {
+  name: "InoutRequestDetail",
+  components: {
+    InoutRequestDetailForm,
+    QueryFormWrapper,
+    EasyAdvancedQuery,
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 出入库申请明细列表
+      list: [],
+      // 是否展开,默认全部展开
+      isExpandAll: true,
+      // 重新渲染表格状态
+      refreshTable: true,
+      // 选中行
+      currentRow: {},
+      // 查询参数
+      queryParams: {
+        pageNo: 1,
+        pageSize: 10,
+        requestId: null,
+        lineNo: null,
+        materialNo: null,
+        materialName: null,
+        materialSpec: null,
+        batchNumber: null,
+        unit: null,
+        planQty: null,
+        actualQty: null,
+        completedQty: null,
+        qualityStatus: null,
+        productionDate: [],
+        expirationDate: [],
+        inventoryStatus: null,
+        sourceLineNo: null,
+        sourceBatchNumber: null,
+        sourceReference: null,
+        remark: null,
+        status: null,
+        createTime: [],
+        stockCode: null,
+        areaCode: null,
+        locationCode: null,
+        sourceRequestId: null,
+        sourceDetailId: null,
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 高级查询处理 */
+    advQuery(advQueryParams) {
+      this.advParams = advQueryParams;
+      this.handleQuery();
+    },
+
+    /** 查询列表 */
+    async getList() {
+      this.loading = true;
+      const params = { ...this.queryParams, ...this.advParams };
+      await InoutRequestDetailApi.getInoutRequestDetailPage(params)
+        .then((res) => {
+          this.list = res.data.list;
+          this.total = res.data.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNo = 1;
+      this.getList();
+    },
+
+    /** 重置按钮操作 */
+    resetQuery() {
+      // 重置表单
+      if (this.$refs.queryForm) {
+        this.$refs.queryForm.resetFields();
+      }
+      // 重置查询参数
+      Object.assign(this.queryParams, {
+        pageNo: 1,
+        pageSize: 10,
+        requestId: null,
+        lineNo: null,
+        materialNo: null,
+        materialName: null,
+        materialSpec: null,
+        batchNumber: null,
+        unit: null,
+        planQty: null,
+        actualQty: null,
+        completedQty: null,
+        qualityStatus: null,
+        productionDate: [],
+        expirationDate: [],
+        inventoryStatus: null,
+        sourceLineNo: null,
+        sourceBatchNumber: null,
+        sourceReference: null,
+        remark: null,
+        status: null,
+        createTime: [],
+        stockCode: null,
+        areaCode: null,
+        locationCode: null,
+        sourceRequestId: null,
+        sourceDetailId: null,
+      });
+      this.handleQuery();
+    },
+
+    /** 添加/修改操作 */
+    openForm(id) {
+      this.$refs["formRef"].open(id);
+    },
+
+    /** 删除按钮操作 */
+    async handleDelete(row) {
+      const id = row.id;
+      await this.$modal.confirm(
+        '是否确认删除出入库申请明细编号为"' + id + '"的数据项?'
+      );
+      try {
+        await InoutRequestDetailApi.deleteInoutRequestDetail(id);
+        await this.getList();
+        this.$modal.msgSuccess("删除成功");
+      } catch {}
+    },
+
+    /** 导出按钮操作 */
+    async handleExport() {
+      await this.$modal.confirm("是否确认导出所有出入库申请明细数据项?");
+      try {
+        this.exportLoading = true;
+        // 处理导出参数,与getList保持一致
+        const params = { ...this.queryParams };
+
+        // 处理日期范围参数
+        const handleDateRange = (dateRange) => {
+          if (Array.isArray(dateRange) && dateRange.length === 2) {
+            return {
+              beginTime: dateRange[0],
+              endTime: dateRange[1],
+            };
+          }
+          return {};
+        };
+
+        // 合并高级查询参数
+        const exportParams = {
+          ...params,
+          ...handleDateRange(
+            params.productionDate
+              ? {
+                  productionBeginDate: params.productionDate[0],
+                  productionEndDate: params.productionDate[1],
+                }
+              : {}
+          ),
+          ...handleDateRange(
+            params.expirationDate
+              ? {
+                  expirationBeginDate: params.expirationDate[0],
+                  expirationEndDate: params.expirationDate[1],
+                }
+              : {}
+          ),
+          ...handleDateRange(
+            params.createTime
+              ? {
+                  createBeginTime: params.createTime[0],
+                  createEndTime: params.createTime[1],
+                }
+              : {}
+          ),
+        };
+
+        // 删除原始日期范围数组
+        delete exportParams.productionDate;
+        delete exportParams.expirationDate;
+        delete exportParams.createTime;
+
+        const data = await InoutRequestDetailApi.exportInoutRequestDetailExcel(
+          exportParams
+        );
+        this.$download.excel(data, "出入库申请明细.xls");
+      } catch {
+      } finally {
+        this.exportLoading = false;
+      }
+    },
+  },
+};
+</script>

+ 598 - 0
src/views/wms/output/inrequest/index.vue

@@ -0,0 +1,598 @@
+<template>
+  <div class="app-container">
+    <!-- 搜索工作栏 -->
+    <el-form
+      v-show="showSearch"
+      ref="queryForm"
+      :model="queryParams"
+      size="small"
+      label-width="68px"
+    >
+      <QueryFormWrapper>
+        <el-col :span="8">
+          <el-form-item label="申请单号" prop="requestNo">
+            <el-input
+              v-model="queryParams.requestNo"
+              placeholder="请输入申请单号"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="申请类型" prop="requestType">
+            <el-select
+              v-model="queryParams.requestType"
+              placeholder="请选择申请类型"
+              clearable
+              size="small"
+            >
+              <el-option label="请选择字典生成" value="" />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="业务类型" prop="businessType">
+            <el-select
+              v-model="queryParams.businessType"
+              placeholder="请选择业务类型"
+              clearable
+              size="small"
+            >
+              <el-option label="请选择字典生成" value="" />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <div slot="right">
+          <el-form-item label-width="0" class="text-right">
+            <EasyAdvancedQuery
+              class="mr10"
+              label-width="98px"
+              @advQuery="advQuery"
+            >
+              <template #default="{ model }">
+                <el-col :span="12">
+                  <el-form-item label="业务分类编码" prop="businessCategory">
+                    <el-input
+                      v-model="queryParams.businessCategory"
+                      placeholder="请输入业务分类编码"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="业务分类名称" prop="businessDescribe">
+                    <el-input
+                      v-model="queryParams.businessDescribe"
+                      placeholder="请输入业务分类名称"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="业务子类型" prop="businessSubType">
+                    <el-select
+                      v-model="queryParams.businessSubType"
+                      placeholder="请选择业务子类型"
+                      clearable
+                      size="small"
+                    >
+                      <el-option label="请选择字典生成" value="" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="状态" prop="status">
+                    <el-select
+                      v-model="queryParams.status"
+                      placeholder="请选择状态"
+                      clearable
+                      size="small"
+                    >
+                      <el-option label="请选择字典生成" value="" />
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="优先级" prop="priority">
+                    <el-input
+                      v-model="queryParams.priority"
+                      placeholder="请输入优先级"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="供应商编码" prop="supplierCode">
+                    <el-input
+                      v-model="queryParams.supplierCode"
+                      placeholder="请输入供应商编码"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="客户编码" prop="customerCode">
+                    <el-input
+                      v-model="queryParams.customerCode"
+                      placeholder="请输入客户编码"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="源单编号" prop="sourceOrderNo">
+                    <el-input
+                      v-model="queryParams.sourceOrderNo"
+                      placeholder="请输入源单编号"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="预计出入库时间" prop="expectedTime">
+                    <el-date-picker
+                      v-model="queryParams.expectedTime"
+                      style="width: 240px"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="daterange"
+                      range-separator="-"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :default-time="['00:00:00', '23:59:59']"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="实际出入库时间" prop="actualTime">
+                    <el-date-picker
+                      v-model="queryParams.actualTime"
+                      style="width: 240px"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="daterange"
+                      range-separator="-"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :default-time="['00:00:00', '23:59:59']"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="总数量" prop="totalQty">
+                    <el-input
+                      v-model="queryParams.totalQty"
+                      placeholder="请输入总数量"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="总SKU数" prop="totalSku">
+                    <el-input
+                      v-model="queryParams.totalSku"
+                      placeholder="请输入总SKU数"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="总行数" prop="totalLine">
+                    <el-input
+                      v-model="queryParams.totalLine"
+                      placeholder="请输入总行数"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="备注" prop="remark">
+                    <el-input
+                      v-model="queryParams.remark"
+                      placeholder="请输入备注"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="创建时间" prop="createTime">
+                    <el-date-picker
+                      v-model="queryParams.createTime"
+                      style="width: 240px"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="daterange"
+                      range-separator="-"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :default-time="['00:00:00', '23:59:59']"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="提交人" prop="submitter">
+                    <el-input
+                      v-model="queryParams.submitter"
+                      placeholder="请输入提交人"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="提交时间" prop="submitTime">
+                    <el-date-picker
+                      v-model="queryParams.submitTime"
+                      style="width: 240px"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="daterange"
+                      range-separator="-"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :default-time="['00:00:00', '23:59:59']"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="审核人" prop="auditor">
+                    <el-input
+                      v-model="queryParams.auditor"
+                      placeholder="请输入审核人"
+                      clearable
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="审核时间" prop="auditTime">
+                    <el-date-picker
+                      v-model="queryParams.auditTime"
+                      style="width: 240px"
+                      value-format="yyyy-MM-dd HH:mm:ss"
+                      type="daterange"
+                      range-separator="-"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :default-time="['00:00:00', '23:59:59']"
+                    />
+                  </el-form-item>
+                </el-col>
+              </template>
+            </EasyAdvancedQuery>
+            <el-button type="primary" icon="el-icon-search" @click="handleQuery"
+              >搜索</el-button
+            >
+            <el-button icon="el-icon-refresh" @click="resetQuery"
+              >重置</el-button
+            >
+          </el-form-item>
+        </div>
+      </QueryFormWrapper>
+    </el-form>
+
+    <!-- 操作工具栏 -->
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="openForm(undefined)"
+          >新增</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          >导出</el-button
+        >
+        <el-button type="info" plain size="small" icon="el-icon-s-check"
+          >审核</el-button
+        >
+      </el-col>
+      <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
+    </el-row>
+
+    <el-table
+      v-loading="loading"
+      :data="list"
+      :stripe="true"
+      :show-overflow-tooltip="true"
+    >
+      <el-table-column label="申请单ID" align="center" prop="id" />
+      <el-table-column label="申请单号" align="center" prop="requestNo">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            @click="handleToDemerge(scope.row)"
+            >{{ scope.row.requestNo }}</el-button
+          >
+        </template>
+      </el-table-column>
+      <el-table-column label="申请类型" align="center" prop="requestType" />
+      <el-table-column label="业务类型" align="center" prop="businessType" />
+      <el-table-column
+        label="业务分类编码"
+        align="center"
+        prop="businessCategory"
+      />
+      <el-table-column
+        label="业务分类名称"
+        align="center"
+        prop="businessDescribe"
+      />
+      <el-table-column
+        label="业务子类型"
+        align="center"
+        prop="businessSubType"
+      />
+      <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="优先级" align="center" prop="priority" />
+      <el-table-column label="供应商编码" align="center" prop="supplierCode" />
+      <el-table-column label="客户编码" align="center" prop="customerCode" />
+      <el-table-column label="源单编号" align="center" prop="sourceOrderNo" />
+      <el-table-column
+        label="预计出入库时间"
+        align="center"
+        prop="expectedTime"
+        width="180"
+      >
+        <template v-slot="scope">
+          <span>{{ parseTime(scope.row.expectedTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="实际出入库时间"
+        align="center"
+        prop="actualTime"
+        width="180"
+      >
+        <template v-slot="scope">
+          <span>{{ parseTime(scope.row.actualTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="总数量" align="center" prop="totalQty" />
+      <el-table-column label="总SKU数" align="center" prop="totalSku" />
+      <el-table-column label="总行数" align="center" prop="totalLine" />
+      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column
+        label="创建时间"
+        align="center"
+        prop="createTime"
+        width="180"
+      >
+        <template v-slot="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="提交人" align="center" prop="submitter" />
+      <el-table-column
+        label="提交时间"
+        align="center"
+        prop="submitTime"
+        width="180"
+      >
+        <template v-slot="scope">
+          <span>{{ parseTime(scope.row.submitTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="审核人" align="center" prop="auditor" />
+      <el-table-column
+        label="审核时间"
+        align="center"
+        prop="auditTime"
+        width="180"
+      >
+        <template v-slot="scope">
+          <span>{{ parseTime(scope.row.auditTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template v-slot="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="openForm(scope.row.id)"
+            >修改</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页组件 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNo"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+    <!-- 对话框(添加 / 修改) -->
+    <InRequestForm ref="formRef" @success="getList" />
+  </div>
+</template>
+
+<script>
+import * as InRequestApi from "@/api/wms/output/inrequest";
+import InRequestForm from "./components/InRequestForm.vue";
+import QueryFormWrapper from "@/components/QueryFormWrapper";
+import EasyAdvancedQuery from "@/components/EasyAdvancedQuery";
+export default {
+  name: "InRequest",
+  components: {
+    InRequestForm,
+    QueryFormWrapper,
+    EasyAdvancedQuery,
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 入库申请主列表
+      list: [],
+      // 是否展开,默认全部展开
+      isExpandAll: true,
+      // 重新渲染表格状态
+      refreshTable: true,
+      // 选中行
+      currentRow: {},
+      // 查询参数
+      queryParams: {
+        pageNo: 1,
+        pageSize: 10,
+        requestNo: null,
+        requestType: null,
+        businessType: null,
+        businessCategory: null,
+        businessDescribe: null,
+        businessSubType: null,
+        status: null,
+        priority: null,
+        warehouseId: null,
+        relatedWarehouseId: null,
+        supplierCode: null,
+        customerCode: null,
+        sourceOrderNo: null,
+        expectedTime: [],
+        actualTime: [],
+        totalQty: null,
+        totalSku: null,
+        totalLine: null,
+        remark: null,
+        extendInfo: null,
+        createTime: [],
+        submitter: null,
+        submitTime: [],
+        auditor: null,
+        auditTime: [],
+        erpWriteFlag: null,
+        erpErrMsg: null,
+        erpBackId: null,
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 高级查询处理 */
+    advQuery(advQueryParams) {
+      this.advParams = advQueryParams;
+      this.handleQuery();
+    },
+    /** 查询列表 */
+    async getList() {
+      this.loading = true;
+      const params = { ...this.queryParams, ...this.advParams };
+      await InRequestApi.getInRequestPage(params)
+        .then((res) => {
+          this.list = res.data.list;
+          this.total = res.data.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNo = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      // 重置表单
+      this.resetForm("queryForm");
+      // 重置查询参数
+      Object.assign(this.queryParams, {
+        pageNo: 1,
+        pageSize: 10,
+        requestNo: null,
+        requestType: null,
+        businessType: null,
+        businessCategory: null,
+        businessDescribe: null,
+        businessSubType: null,
+        status: null,
+        priority: null,
+        warehouseId: null,
+        relatedWarehouseId: null,
+        supplierCode: null,
+        customerCode: null,
+        sourceOrderNo: null,
+        expectedTime: [],
+        actualTime: [],
+        totalQty: null,
+        totalSku: null,
+        totalLine: null,
+        remark: null,
+        extendInfo: null,
+        createTime: [],
+        submitter: null,
+        submitTime: [],
+        auditor: null,
+        auditTime: [],
+        erpWriteFlag: null,
+        erpErrMsg: null,
+        erpBackId: null,
+      });
+      this.handleQuery();
+    },
+    /** 添加/修改操作 */
+    openForm(id) {
+      this.$refs["formRef"].open(id);
+    },
+    /** 删除按钮操作 */
+    async handleDelete(row) {
+      const id = row.id;
+      await this.$modal.confirm(
+        '是否确认删除入库申请主编号为"' + id + '"的数据项?'
+      );
+      try {
+        await InRequestApi.deleteInRequest(id);
+        await this.getList();
+        this.$modal.msgSuccess("删除成功");
+      } catch {}
+    },
+    /** 导出按钮操作 */
+    async handleExport() {
+      await this.$modal.confirm("是否确认导出所有入库申请主数据项?");
+      try {
+        this.exportLoading = true;
+        const data = await InRequestApi.exportInRequestExcel(this.queryParams);
+        this.$download.excel(data, "入库申请主.xls");
+      } catch {
+      } finally {
+        this.exportLoading = false;
+      }
+    },
+    // 跳转分拆单详情
+    handleToDemerge(row) {
+      const { id, requestNo } = row;
+      this.$router.push({
+        path: "/entry-exit/inrequestdetails",
+        query: { id, requestNo },
+      });
+    },
+  },
+};
+</script>