Browse Source

【修改】发货汇总退货按钮跳转

howie 2 năm trước cách đây
mục cha
commit
cc7fe6d9a3
2 tập tin đã thay đổi với 2198 bổ sung0 xóa
  1. 1067 0
      src/views/supply/apply/new_apply.vue
  2. 1131 0
      src/views/supply/apply/new_engin.vue

+ 1067 - 0
src/views/supply/apply/new_apply.vue

@@ -0,0 +1,1067 @@
+<template>
+  <div class="app-container">
+    <div
+      v-show="
+        !isShowDetail && !isShowExamine && !isShowForm && !isShowReturnForm
+      "
+    >
+      <!-- 筛选条件 -->
+      <div class="screen-container">
+        <el-form
+          ref="screenForm"
+          :model="screenForm"
+          label-width="100px"
+          size="mini"
+          label-position="left"
+        >
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="24" :lg="24">
+              <el-form-item prop="status" label-width="0">
+                <el-radio-group v-model="screenForm.status" @change="getList()">
+                  <el-radio-button label="">全部</el-radio-button>
+                  <el-radio-button
+                    v-for="(item, index) in statusList"
+                    :key="index"
+                    :label="item.value"
+                    >{{ item.label }}</el-radio-button
+                  >
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请单" prop="orderNum">
+                <el-input
+                  v-model="screenForm.orderNum"
+                  placeholder="请输入发货申请单"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="仓库名称" prop="warehouse">
+                <el-input
+                  v-model="screenForm.warehouse"
+                  placeholder="请输入仓库名称"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编码" prop="jxsNum">
+                <el-input
+                  v-model="screenForm.jxsNum"
+                  placeholder="请输入经销商编码"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="jxsName">
+                <el-input
+                  v-model="screenForm.jxsName"
+                  placeholder="请输入经销商名称"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请日期" prop="date">
+                <el-date-picker
+                  v-model="screenForm.date"
+                  type="datetimerange"
+                  range-separator="至"
+                  style="width: 100%"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品名称" prop="chName">
+                <el-input
+                  v-model="screenForm.chName"
+                  placeholder="请输入产品名称"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="model">
+                <el-input
+                  v-model="screenForm.model"
+                  placeholder="请输入规格型号"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="表头业务员" prop="k3ServiceId">
+                <el-select
+                  v-model="screenForm.k3ServiceId"
+                  placeholder="选择表头业务员"
+                  size="small"
+                  clearable
+                  filterable
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item in salesmanList"
+                    :key="item.adminUserId"
+                    :label="item.nickName"
+                    :value="item.adminUserId"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="表体业务员" prop="serviceId">
+                <el-select
+                  v-model="screenForm.serviceId"
+                  placeholder="选择表体业务员"
+                  size="mini"
+                  clearable
+                  filterable
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item in salesmanList"
+                    :key="item.adminUserId"
+                    :label="item.nickName"
+                    :value="item.adminUserId"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="订单类型" prop="orderType">
+                <el-select
+                  v-model="screenForm.orderType"
+                  placeholder="请选择"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in orderTypeList"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="订单号" prop="mainOrderId">
+                <el-input
+                  v-model="screenForm.mainOrderId"
+                  placeholder="请输入订单号"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品类别">
+                <el-select
+                  v-model="screenForm.categoryId"
+                  style="width: 100%"
+                  placeholder="选择产品类别"
+                  filterable
+                  clearable
+                >
+                  <el-option
+                    v-for="item in categoryList"
+                    :key="item.name"
+                    :label="item.name"
+                    :value="item.id"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="审核人" prop="approvalName">
+                <el-input
+                  v-model="screenForm.approvalName"
+                  placeholder="请输入审核人"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="制单人" prop="createBy">
+                <el-input
+                  v-model="screenForm.createBy"
+                  placeholder="请输入制单人"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="24" :lg="24" class="tr">
+              <el-form-item label="">
+                <el-button @click="resetScreenForm">清空</el-button>
+                <el-button type="primary" @click="submitScreenForm"
+                  >搜索</el-button
+                >
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+
+      <div class="mymain-container">
+        <div class="btn-group clearfix">
+          <div class="fl">
+            <el-button
+              v-if="$checkBtnRole('add', $route.meta.roles)"
+              size="mini"
+              type="primary"
+              icon="el-icon-plus"
+              @click="toForm()"
+              >发货申请</el-button
+            >
+            <el-button
+              v-if="$checkBtnRole('refund', $route.meta.roles)"
+              size="mini"
+              type="primary"
+              icon="el-icon-plus"
+              @click="toReturnForm()"
+              >退货申请</el-button
+            >
+            <el-button
+              v-if="$checkBtnRole('examine', $route.meta.roles)"
+              size="mini"
+              type="warning"
+              icon="el-icon-finished"
+              :disabled="multipleSelection.length < 1"
+              @click="batchExamine"
+              >批量审批</el-button
+            >
+          </div>
+          <div class="fr">
+            <ExportButton
+              :ex-url="'invoice/listExport'"
+              :ex-params="exParams"
+            />
+          </div>
+        </div>
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            :row-style="rowClass"
+            show-summary
+            :summary-method="$getSummaries"
+            @selection-change="handleSelectionChange"
+          >
+            <el-table-column
+              align="center"
+              type="selection"
+              width="55"
+              fixed="left"
+            />
+            <el-table-column
+              align="left"
+              label="订单类型"
+              prop="type"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.type | orderTypeFilter }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="发货申请单"
+              prop="id"
+              min-width="130"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.id" />
+                <span>{{ scope.row.id }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="发货申请日期"
+              prop="createTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="仓库"
+              prop="correspondName"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{
+                  scope.row.type === 3
+                    ? scope.row.stockName
+                    : scope.row.correspondName
+                }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="订单号"
+              prop="mainOrderId"
+              min-width="140"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.mainOrderId" />
+                <span>{{ scope.row.mainOrderId }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="经销商编码"
+              prop="customerNumber"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerNumber" />
+                <span>{{ scope.row.customerNumber }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="经销商名称"
+              prop="customerName"
+              min-width="250"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerName" />
+                <span>{{ scope.row.customerName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="物料编码"
+              prop="materialCode"
+              min-width="120"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.materialCode" />
+                <span>{{ scope.row.materialCode }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品编码"
+              prop="materialOldNumber"
+              min-width="140"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.materialOldNumber" />
+                <span>{{ scope.row.materialOldNumber }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.materialName" />
+                <span>{{ scope.row.materialName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="规格型号"
+              prop="specification"
+              min-width="350"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.specification" />
+                <span>{{ scope.row.specification }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品类别"
+              prop="categoryName"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <span>{{ scope.row.categoryName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="销售政策名称"
+              prop="policyTitle"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="文件编号"
+              prop="itemFileNo"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="单位"
+              prop="unit"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="refundableQty"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="已退数量"
+              prop="retiredQty"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="含税单价"
+              prop="singlePayPrice"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.singlePayPrice | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="价税合计"
+              prop="payAmount"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.payAmount | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="返利金额"
+              prop="payRebateAmount"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.payRebateAmount | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="格力折扣"
+              prop="totalDiscAmount"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.totalDiscAmount | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="订单备注"
+              prop="headerRemark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="发货申请备注"
+              prop="remark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="表体备注"
+              prop="invoiceRemark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="审批说明"
+              prop="approvalRemark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="业务员"
+              prop="serviceName"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="表头业务员"
+              prop="k3ServiceName"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="制单人"
+              prop="createBy"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="制单日期"
+              prop="createTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="审核人"
+              prop="approvalName"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="审核日期"
+              prop="approvalTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="审核状态"
+              prop="examineStatus"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.examineStatus | statusFilter }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              v-if="
+                this.$store.getters.customerNumber === '100093' ||
+                this.$store.getters.customerNumber === '600023'
+              "
+              align="left"
+              label="同步到格匠采购入库单"
+              prop="gejiangSync"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{
+                  scope.row.gejiangSync === 1
+                    ? "同步成功"
+                    : scope.row.gejiangSync === 0
+                    ? "待同步"
+                    : scope.row.gejiangSync === -1
+                    ? "同步失败"
+                    : ""
+                }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              v-if="
+                this.$store.getters.customerNumber === '100093' ||
+                this.$store.getters.customerNumber === '600023'
+              "
+              label="同步格匠失败原因"
+              prop="gejiangSyncRemark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="center"
+              label="操作"
+              width="180"
+              fixed="right"
+            >
+              <template slot-scope="scope">
+                <el-popconfirm
+                  v-if="
+                    $checkBtnRole('apply', $route.meta.roles) &&
+                    scope.row.examineStatus === 'SAVE'
+                  "
+                  style="margin-right: 10px"
+                  title="确定申请吗?"
+                  @onConfirm="handleSubmit(scope.row.id, 'WAIT')"
+                >
+                  <el-button slot="reference" type="text">申请</el-button>
+                </el-popconfirm>
+                <el-popconfirm
+                  v-if="
+                    $checkBtnRole('apply', $route.meta.roles) &&
+                    scope.row.examineStatus === 'WAIT'
+                  "
+                  style="margin-right: 10px"
+                  title="确定撤回吗?"
+                  @onConfirm="handleSubmit(scope.row.id, 'SAVE')"
+                >
+                  <el-button slot="reference" type="text">撤回</el-button>
+                </el-popconfirm>
+                <el-popconfirm
+                  v-if="
+                    $checkBtnRole('examine', $route.meta.roles) &&
+                    scope.row.examineStatus === 'OK'
+                  "
+                  style="margin-right: 10px"
+                  title="确定弃审吗?"
+                  @onConfirm="handleAbandon(scope.row.id)"
+                >
+                  <el-button slot="reference" type="text">弃审</el-button>
+                </el-popconfirm>
+                <el-button
+                  v-if="
+                    $checkBtnRole('edit', $route.meta.roles) &&
+                    (scope.row.examineStatus === 'SAVE' ||
+                      scope.row.examineStatus === 'FAIL') &&
+                    scope.row.type === 1
+                  "
+                  type="text"
+                  @click="toForm(scope.row)"
+                >
+                  编辑
+                </el-button>
+                <el-button
+                  v-if="
+                    $checkBtnRole('edit', $route.meta.roles) &&
+                    (scope.row.examineStatus === 'SAVE' ||
+                      scope.row.examineStatus === 'FAIL') &&
+                    scope.row.type === 2
+                  "
+                  type="text"
+                  @click="toReturnForm(scope.row)"
+                >
+                  编辑
+                </el-button>
+                <el-button
+                  v-if="
+                    $checkBtnRole('examine', $route.meta.roles) &&
+                    scope.row.examineStatus === 'WAIT'
+                  "
+                  type="text"
+                  @click="toExamine(scope.row)"
+                >
+                  审单
+                </el-button>
+                <el-button type="text" @click="toDetail(scope.row)">
+                  详情
+                </el-button>
+                <el-popconfirm
+                  v-if="
+                    $checkBtnRole('del', $route.meta.roles) &&
+                    scope.row.examineStatus !== 'OK'
+                  "
+                  style="margin-left: 10px"
+                  title="确定删除吗?"
+                  @onConfirm="handleDelete(scope.row.id)"
+                >
+                  <el-button slot="reference" type="text" style="color: #f56c6c"
+                    >删除</el-button
+                  >
+                </el-popconfirm>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+    </div>
+
+    <ExamineDialog
+      :is-show.sync="isShowExamineDialog"
+      :examine-form.sync="examineForm"
+    />
+
+    <ApplyDetail
+      v-if="isShowDetail"
+      ref="refDetail"
+      :list-item="queryItem"
+      @backListFormDetail="backList"
+    />
+    <ApplyExamine
+      v-if="isShowExamine"
+      :list-item="queryItem"
+      @backListFormDetail="backList"
+    />
+    <ApplyForm
+      v-if="isShowForm"
+      :list-item="queryItem"
+      @backListFormDetail="backList"
+    />
+    <ApplyReturnForm
+      v-if="isShowReturnForm"
+      :list-item="queryItem"
+      :is-show="isShow"
+      @backListFormDetail="backList"
+    />
+  </div>
+</template>
+
+<script>
+import {
+  getApplyList,
+  submitApply,
+  deleteApply,
+  abandonApply,
+  examineBatchApply,
+} from "@/api/supply/apply";
+import { getCategoryList, getSalesmanList } from "@/api/common";
+import ApplyDetail from "@/views/supply/apply/components/apply_detail";
+import ApplyExamine from "@/views/supply/apply/components/apply_examine";
+import ApplyForm from "@/views/supply/apply/components/apply_form";
+import ApplyReturnForm from "@/views/supply/apply/components/apply_return_form";
+import ExamineDialog from "@/components/Common/examine-dialog";
+
+let that;
+export default {
+  components: {
+    ApplyDetail,
+    ApplyExamine,
+    ApplyForm,
+    ApplyReturnForm,
+    ExamineDialog,
+  },
+  filters: {
+    statusFilter(val) {
+      const obj = that.statusList.find((o) => o.value == val);
+      return obj ? obj.label : "";
+    },
+    orderTypeFilter(val) {
+      const obj = that.orderTypeList.find((o) => o.value == val);
+      return obj ? obj.label : "";
+    },
+  },
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: {
+        // 筛选表单数据
+        status: "",
+        orderNum: "",
+        warehouse: "",
+        jxsNum: "",
+        jxsName: "",
+        date: "",
+        chName: "",
+        model: "",
+        salesMan: "",
+        orderType: "",
+        mainOrderId: "",
+        k3ServiceId: "",
+        serviceId: "",
+        categoryId: "",
+        approvalName: "",
+        createBy: "",
+      },
+      statusList: [
+        { label: "已保存", value: "SAVE" },
+        { label: "待审核", value: "WAIT" },
+        { label: "审核通过", value: "OK" },
+        //  // { label: '审核驳回', value: 'FAIL' },,
+        { label: "已关闭", value: "CLOSE" },
+      ],
+      orderTypeList: [
+        { label: "发货申请单", value: 1 },
+        { label: "退货申请单", value: 2 },
+        { label: "直调发货单", value: 3 },
+      ],
+      salesmanList: [],
+
+      queryItem: {},
+      isShowDetail: false,
+      isShowExamine: false,
+      isShowForm: false,
+      isShowReturnForm: false,
+
+      selectRow: [],
+      multipleSelection: [],
+      isShowExamineDialog: false,
+      examineForm: {
+        status: "",
+        remark: "",
+      },
+      categoryList: [],
+    };
+  },
+
+  computed: {
+    exParams() {
+      return {
+        id: this.screenForm.orderNum,
+        correspondName: this.screenForm.warehouse,
+        customerNumber: this.screenForm.jxsNum,
+        customerName: this.screenForm.jxsName,
+        productName: this.screenForm.chName,
+        specification: this.screenForm.model,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : "",
+        endTime: this.screenForm.date ? this.screenForm.date[1] : "",
+        examineStatus: this.screenForm.status,
+        k3ServiceId: this.screenForm.k3ServiceId,
+        serviceId: this.screenForm.serviceId,
+        createBy: this.screenForm.createBy,
+        type: this.screenForm.orderType,
+        mainOrderId: this.screenForm.mainOrderId,
+        categoryId: this.screenForm.categoryId,
+        approvalName: this.screenForm.approvalName,
+      };
+    },
+  },
+
+  watch: {
+    multipleSelection(data) {
+      // 监听选中状态
+      this.selectRow = [];
+      if (data.length > 0) {
+        data.forEach((item, index) => {
+          this.selectRow.push(item.id);
+        });
+      }
+    },
+  },
+
+  beforeCreate() {
+    that = this;
+  },
+
+  created() {
+    this.getSalesmanList();
+    this.getList();
+    this.getCategoryList();
+    this.isShow = false;
+    if (this.$route.query && this.$route.query.isShow) {
+      this.isShow = this.$route.query.isShow;
+
+      this.toReturnForm();
+    }
+  },
+  //   activated() {
+  //       this.isShow = false
+  //   if (this.$route.query && this.$route.query.isShow) {
+  //     this.isShow = this.$route.query.isShow
+
+  //       this.toReturnForm()
+  //   }
+
+  // },
+  methods: {
+    // 获取业务员列表
+    getSalesmanList() {
+      getSalesmanList({
+        pageNum: 1,
+        pageSize: -1,
+        isCustomer: 0,
+        status: true,
+      }).then((res) => {
+        this.salesmanList = res.data.records;
+      });
+    },
+
+    // 查询列表
+    getList() {
+      this.listLoading = true;
+
+      const params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        id: this.screenForm.orderNum,
+        correspondName: this.screenForm.warehouse,
+        customerNumber: this.screenForm.jxsNum,
+        createBy: this.screenForm.createBy,
+
+        customerName: this.screenForm.jxsName,
+        productName: this.screenForm.chName,
+        specification: this.screenForm.model,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : "",
+        endTime: this.screenForm.date ? this.screenForm.date[1] : "",
+        examineStatus: this.screenForm.status,
+        serviceId: this.screenForm.salesMan,
+        type: this.screenForm.orderType,
+        k3ServiceId: this.screenForm.k3ServiceId,
+        mainOrderId: this.screenForm.mainOrderId,
+        categoryId: this.screenForm.categoryId,
+        approvalName: this.screenForm.approvalName,
+      };
+      getApplyList(params).then((res) => {
+        res.data.records.forEach((item) => {
+          item.sums1 = ["refundableQty", "retiredQty"];
+          item.sums2 = [
+            "singlePayPrice",
+            "payAmount",
+            "payRebateAmount",
+            "totalDiscAmount",
+          ];
+        });
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      });
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 进入表单
+    toForm(item) {
+      this.queryItem = item;
+      this.isShowForm = true;
+    },
+
+    // 进入表单
+    toReturnForm(item) {
+      this.queryItem = item;
+      this.isShowReturnForm = true;
+    },
+
+    // 进入审批
+    toExamine(item) {
+      this.queryItem = item;
+      this.isShowExamine = true;
+    },
+
+    // 进入详情
+    toDetail(item) {
+      this.queryItem = item;
+      this.isShowDetail = true;
+      this.$nextTick(() => {
+        this.$refs.refDetail.initPrint();
+      });
+
+      // this.$refs.refDetail.initPrint()
+    },
+
+    backList() {
+      this.queryItem = {};
+      this.isShowDetail = false;
+      this.isShowExamine = false;
+      this.isShowForm = false;
+      this.isShowReturnForm = false;
+    },
+
+    handleDelete(id) {
+      deleteApply({ id }).then((res) => {
+        this.$successMsg();
+        this.getList();
+      });
+    },
+
+    // 申请/撤回
+    handleSubmit(id, examineStatus) {
+      submitApply({ id, examineStatus }).then((res) => {
+        this.$successMsg();
+        this.getList();
+      });
+    },
+
+    // 弃审
+    handleAbandon(id) {
+      abandonApply({ id }).then((res) => {
+        this.$successMsg();
+        this.getList();
+      });
+    },
+
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+      if (val) {
+        this.selections = val;
+      } else {
+        this.selections = [];
+      }
+    },
+
+    rowClass({ row, rowIndex }) {
+      if (this.selectRow.includes(row.id)) {
+        return { "background-color": "#ecf5ff" };
+      }
+    },
+
+    // 打开 批量审批
+    batchExamine() {
+      this.isShowExamineDialog = true;
+    },
+
+    // 提交 批量审批
+    submitExamineForm() {
+      let ids = this.multipleSelection.map((item) => {
+        return item.id;
+      });
+      ids = Array.from(new Set(ids));
+      examineBatchApply({
+        ids: ids.join(","),
+        examineStatus: this.examineForm.status,
+        approvalRemark: this.examineForm.remark,
+      }).then((res) => {
+        this.isShowExamineDialog = false;
+        this.getList();
+        this.$successMsg("审批成功");
+      });
+    },
+    // 获取存货类别列表
+    getCategoryList() {
+      getCategoryList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then((res) => {
+        this.categoryList = res.data.records;
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 1131 - 0
src/views/supply/apply/new_engin.vue

@@ -0,0 +1,1131 @@
+<template>
+  <div class="app-container">
+    <div
+      v-show="
+        !isShowDetail && !isShowExamine && !isShowForm && !isShowReturnForm
+      "
+    >
+      <!-- 筛选条件 -->
+      <div class="screen-container">
+        <el-form
+          ref="screenForm"
+          :model="screenForm"
+          label-width="100px"
+          size="mini"
+          label-position="left"
+        >
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="24" :lg="24">
+              <el-form-item prop="status" label-width="0">
+                <el-radio-group v-model="screenForm.status" @change="getList()">
+                  <el-radio-button label="">全部</el-radio-button>
+                  <el-radio-button
+                    v-for="(item, index) in statusList"
+                    :key="index"
+                    :label="item.value"
+                    >{{ item.label }}</el-radio-button
+                  >
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请单" prop="orderNum">
+                <el-input
+                  v-model="screenForm.orderNum"
+                  placeholder="请输入发货申请单"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="仓库名称" prop="warehouse">
+                <el-input
+                  v-model="screenForm.warehouse"
+                  placeholder="请输入仓库名称"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编码" prop="jxsNum">
+                <el-input
+                  v-model="screenForm.jxsNum"
+                  placeholder="请输入经销商编码"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="jxsName">
+                <el-input
+                  v-model="screenForm.jxsName"
+                  placeholder="请输入经销商名称"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请日期" prop="date">
+                <el-date-picker
+                  v-model="screenForm.date"
+                  type="datetimerange"
+                  range-separator="至"
+                  style="width: 100%"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品名称" prop="chName">
+                <el-input
+                  v-model="screenForm.chName"
+                  placeholder="请输入产品名称"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="model">
+                <el-input
+                  v-model="screenForm.model"
+                  placeholder="请输入规格型号"
+                />
+              </el-form-item>
+            </el-col>
+
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="订单类型" prop="orderType">
+                <el-select
+                  v-model="screenForm.orderType"
+                  placeholder="请选择"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in orderTypeList"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="订单号" prop="mainOrderId">
+                <el-input
+                  v-model="screenForm.mainOrderId"
+                  placeholder="请输入订单号"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程登录编号" prop="refEnginRecordNo">
+                <el-input
+                  v-model="screenForm.refEnginRecordNo"
+                  placeholder="请输入工程登录编号"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="使用单位" prop="refUseUnit">
+                <el-input
+                  v-model="screenForm.refUseUnit"
+                  placeholder="请输入使用单位"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="表头业务员" prop="k3ServiceId">
+                <el-select
+                  v-model="screenForm.k3ServiceId"
+                  placeholder="选择表头业务员"
+                  clearable
+                  filterable
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item in salesmanList"
+                    :key="item.adminUserId"
+                    :label="item.nickName"
+                    :value="item.adminUserId"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="表体业务员" prop="salesMan">
+                <el-select
+                  v-model="screenForm.salesMan"
+                  placeholder="选择表体业务员"
+                  clearable
+                  filterable
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="item in salesmanList"
+                    :key="item.adminUserId"
+                    :label="item.nickName"
+                    :value="item.adminUserId"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品类别">
+                <el-select
+                  v-model="screenForm.categoryId"
+                  style="width: 100%"
+                  placeholder="选择产品类别"
+                  filterable
+                  clearable
+                >
+                  <el-option
+                    v-for="item in categoryList"
+                    :key="item.name"
+                    :label="item.name"
+                    :value="item.id"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="审核人" prop="approvalName">
+                <el-input
+                  v-model="screenForm.approvalName"
+                  placeholder="请输入审核人"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="区域" prop="refRegionWork">
+                <el-input
+                  v-model="screenForm.refRegionWork"
+                  placeholder="请输入区域"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="制单人" prop="createBy">
+                <el-input
+                  v-model="screenForm.createBy"
+                  placeholder="请输入制单人"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="24" :lg="24" class="tr">
+              <el-form-item label="">
+                <el-button @click="resetScreenForm">清空</el-button>
+                <el-button type="primary" @click="submitScreenForm"
+                  >搜索</el-button
+                >
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+
+      <div class="mymain-container">
+        <div class="btn-group clearfix">
+          <div class="fl">
+            <el-button
+              v-if="$checkBtnRole('add', $route.meta.roles)"
+              size="mini"
+              type="primary"
+              icon="el-icon-plus"
+              @click="toForm()"
+              >发货申请</el-button
+            >
+            <el-button
+              v-if="$checkBtnRole('refund', $route.meta.roles)"
+              size="mini"
+              type="primary"
+              icon="el-icon-plus"
+              @click="toReturnForm()"
+              >退货申请</el-button
+            >
+            <el-button
+              v-if="$checkBtnRole('examine', $route.meta.roles)"
+              size="mini"
+              type="warning"
+              icon="el-icon-finished"
+              :disabled="multipleSelection.length < 1"
+              @click="batchExamine"
+              >批量审批</el-button
+            >
+          </div>
+          <div class="fr">
+            <ExportButton
+              :ex-url="'invoice/listProjectExport'"
+              :ex-params="exParams"
+            />
+          </div>
+        </div>
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            :row-style="rowClass"
+            show-summary
+            :summary-method="$getSummaries"
+            @selection-change="handleSelectionChange"
+          >
+            <!--            :selectable="selectable"-->
+            <el-table-column
+              align="center"
+              type="selection"
+              width="55"
+              fixed="left"
+            />
+            <el-table-column
+              align="left"
+              label="订单类型"
+              prop="type"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.type | orderTypeFilter }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="发货申请单"
+              prop="id"
+              min-width="130"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.id" />
+                <span>{{ scope.row.id }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="发货申请日期"
+              prop="createTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="仓库"
+              prop="correspondName"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{
+                  scope.row.type === 3
+                    ? scope.row.stockName
+                    : scope.row.correspondName
+                }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="订单号"
+              prop="enginOrderNo"
+              min-width="140"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.enginOrderNo" />
+                <span>{{ scope.row.enginOrderNo }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="工程登录编号"
+              prop="refEnginRecordNo"
+              min-width="200"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.refEnginRecordNo" />
+                <span>{{ scope.row.refEnginRecordNo }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="项目名称"
+              prop="refProjectName"
+              min-width="120"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="项目类别"
+              prop="refProjectCategory"
+              min-width="120"
+              show-overflow-tooltip
+            />
+
+            <el-table-column
+              align="left"
+              label="使用单位"
+              prop="refUseUnit"
+              min-width="120"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="经销商编码"
+              prop="customerNumber"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerNumber" />
+                <span>{{ scope.row.customerNumber }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="经销商名称"
+              prop="customerName"
+              min-width="250"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerName" />
+                <span>{{ scope.row.customerName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="物料编码"
+              prop="materialCode"
+              min-width="120"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.materialCode" />
+                <span>{{ scope.row.materialCode }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品编码"
+              prop="materialOldNumber"
+              min-width="140"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.materialOldNumber" />
+                <span>{{ scope.row.materialOldNumber }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.materialName" />
+                <span>{{ scope.row.materialName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="规格型号"
+              prop="specification"
+              min-width="350"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.specification" />
+                <span>{{ scope.row.specification }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品类别"
+              prop="categoryName"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <span>{{ scope.row.categoryName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="单位"
+              prop="unit"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="文件编号"
+              prop="itemFileNo"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="refundableQty"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="含税单价"
+              prop="singlePayPrice"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.singlePayPrice | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="价税合计"
+              prop="payAmount"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.payAmount | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="返利金额"
+              prop="payRebateAmount"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.payRebateAmount | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="格力折扣"
+              prop="totalDiscAmount"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.totalDiscAmount | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="订单备注"
+              prop="headerRemark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="发货申请备注"
+              prop="remark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="表体备注"
+              prop="invoiceRemark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="业务员"
+              prop="serviceName"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="表头业务员"
+              prop="k3ServiceName"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="制单人"
+              prop="createBy"
+              min-width="100"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="制单日期"
+              prop="createTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="区域"
+              prop="refRegionWork"
+              min-width="160"
+              show-overflow-tooltip
+            />
+
+            <el-table-column
+              align="left"
+              label="审核人"
+              prop="approvalName"
+              min-width="100"
+              show-overflow-tooltip
+            />
+
+            <el-table-column
+              align="left"
+              label="审核日期"
+              prop="approvalTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="审核状态"
+              prop="examineStatus"
+              min-width="100"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.examineStatus | statusFilter }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              v-if="
+                this.$store.getters.customerNumber === '100093' ||
+                this.$store.getters.customerNumber === '600023'
+              "
+              align="left"
+              label="同步到格匠采购入库单"
+              prop="gejiangSync"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{
+                  scope.row.gejiangSync === 1
+                    ? "同步成功"
+                    : scope.row.gejiangSync === 0
+                    ? "待同步"
+                    : scope.row.gejiangSync === -1
+                    ? "同步失败"
+                    : ""
+                }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              v-if="
+                this.$store.getters.customerNumber === '100093' ||
+                this.$store.getters.customerNumber === '600023'
+              "
+              label="同步格匠失败原因"
+              prop="gejiangSyncRemark"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="center"
+              label="操作"
+              width="180"
+              fixed="right"
+            >
+              <template slot-scope="scope">
+                <el-popconfirm
+                  v-if="
+                    $checkBtnRole('apply', $route.meta.roles) &&
+                    scope.row.examineStatus === 'SAVE'
+                  "
+                  style="margin-right: 10px"
+                  title="确定申请吗?"
+                  @onConfirm="handleSubmit(scope.row.id, 'WAIT')"
+                >
+                  <el-button slot="reference" type="text">申请</el-button>
+                </el-popconfirm>
+                <el-popconfirm
+                  v-if="
+                    $checkBtnRole('apply', $route.meta.roles) &&
+                    scope.row.examineStatus === 'WAIT'
+                  "
+                  style="margin-right: 10px"
+                  title="确定撤回吗?"
+                  @onConfirm="handleSubmit(scope.row.id, 'SAVE')"
+                >
+                  <el-button slot="reference" type="text">撤回</el-button>
+                </el-popconfirm>
+                <el-popconfirm
+                  v-if="
+                    $checkBtnRole('examine', $route.meta.roles) &&
+                    scope.row.examineStatus === 'OK'
+                  "
+                  style="margin-right: 10px"
+                  title="确定弃审吗?"
+                  @onConfirm="handleAbandon(scope.row.id)"
+                >
+                  <el-button slot="reference" type="text">弃审</el-button>
+                </el-popconfirm>
+                <el-button
+                  v-if="
+                    $checkBtnRole('edit', $route.meta.roles) &&
+                    (scope.row.examineStatus === 'SAVE' ||
+                      scope.row.examineStatus === 'FAIL') &&
+                    scope.row.type === 1
+                  "
+                  type="text"
+                  @click="toForm(scope.row)"
+                >
+                  编辑
+                </el-button>
+                <el-button
+                  v-if="
+                    $checkBtnRole('edit', $route.meta.roles) &&
+                    (scope.row.examineStatus === 'SAVE' ||
+                      scope.row.examineStatus === 'FAIL') &&
+                    scope.row.type === 2
+                  "
+                  type="text"
+                  @click="toReturnForm(scope.row)"
+                >
+                  编辑
+                </el-button>
+                <el-button
+                  v-if="
+                    $checkBtnRole('examine', $route.meta.roles) &&
+                    scope.row.examineStatus === 'WAIT'
+                  "
+                  type="text"
+                  @click="toExamine(scope.row)"
+                >
+                  审单
+                </el-button>
+                <el-button type="text" @click="toDetail(scope.row)">
+                  详情
+                </el-button>
+                <!--             !scope.row.automaticStatus &&  -->
+                <el-popconfirm
+                  v-if="scope.row.examineStatus !== 'OK'"
+                  style="margin-left: 10px"
+                  title="确定删除吗?"
+                  @onConfirm="handleDelete(scope.row.id)"
+                >
+                  <el-button slot="reference" type="text" style="color: #f56c6c"
+                    >删除</el-button
+                  >
+                </el-popconfirm>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+    </div>
+
+    <ExamineDialog
+      :is-show.sync="isShowExamineDialog"
+      :examine-form.sync="examineForm"
+    />
+
+    <EnginDetail
+      v-if="isShowDetail"
+      ref="refDetail"
+      :list-item="queryItem"
+      @backListFormDetail="backList"
+    />
+    <EnginExamine
+      v-if="isShowExamine"
+      :list-item="queryItem"
+      @backListFormDetail="backList"
+    />
+    <EnginForm
+      v-if="isShowForm"
+      :list-item="queryItem"
+      @backListFormDetail="backList"
+    />
+    <EnginReturnForm
+      v-if="isShowReturnForm"
+      :list-item="queryItem"
+      @backListFormDetail="backList"
+    />
+  </div>
+</template>
+
+<script>
+import {
+  getEnginList,
+  submitEngin,
+  deleteEngin,
+  abandonEngin,
+  examineBatchEngin,
+} from "@/api/supply/apply";
+import { getCategoryList, getSalesmanList } from "@/api/common";
+import EnginDetail from "@/views/supply/apply/components/engin_detail";
+import EnginExamine from "@/views/supply/apply/components/engin_examine";
+import EnginForm from "@/views/supply/apply/components/engin_form";
+import EnginReturnForm from "@/views/supply/apply/components/engin_return_form";
+import ExamineDialog from "@/components/Common/examine-dialog";
+
+let that;
+export default {
+  components: {
+    EnginDetail,
+    EnginExamine,
+    EnginForm,
+    EnginReturnForm,
+    ExamineDialog,
+  },
+  filters: {
+    statusFilter(val) {
+      const obj = that.statusList.find((o) => o.value == val);
+      return obj ? obj.label : "";
+    },
+    orderTypeFilter(val) {
+      const obj = that.orderTypeList.find((o) => o.value == val);
+      return obj ? obj.label : "";
+    },
+  },
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: {
+        // 筛选表单数据
+        status: "",
+        orderNum: "",
+        warehouse: "",
+        jxsNum: "",
+        jxsName: "",
+        date: "",
+        chName: "",
+        model: "",
+        salesMan: "",
+        orderType: "",
+        mainOrderId: "",
+        refEnginRecordNo: "",
+        refUseUnit: "",
+        k3ServiceId: "",
+        categoryId: "",
+        approvalName: "",
+        refRegionWork: "",
+        createBy: "",
+      },
+      statusList: [
+        { label: "已保存", value: "SAVE" },
+        { label: "待审核", value: "WAIT" },
+        { label: "审核通过", value: "OK" },
+        //  // { label: '审核驳回', value: 'FAIL' },,
+        { label: "已关闭", value: "CLOSE" },
+      ],
+      orderTypeList: [
+        { label: "发货申请单", value: 1 },
+        { label: "退货申请单", value: 2 },
+        { label: "直调发货单", value: 3 },
+      ],
+      salesmanList: [],
+
+      queryItem: {},
+      isShowDetail: false,
+      isShowExamine: false,
+      isShowForm: false,
+      isShowReturnForm: false,
+
+      selectRow: [],
+      multipleSelection: [],
+      isShowExamineDialog: false,
+      examineForm: {
+        status: "",
+        remark: "",
+      },
+      isShow: false,
+      categoryList: [],
+    };
+  },
+
+  computed: {
+    exParams() {
+      return {
+        id: this.screenForm.orderNum,
+        correspondName: this.screenForm.warehouse,
+        customerNumber: this.screenForm.jxsNum,
+        customerName: this.screenForm.jxsName,
+        productName: this.screenForm.chName,
+        specification: this.screenForm.model,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : "",
+        endTime: this.screenForm.date ? this.screenForm.date[1] : "",
+        examineStatus: this.screenForm.status,
+        serviceId: this.screenForm.salesMan,
+        k3ServiceId: this.screenForm.k3ServiceId,
+        type: this.screenForm.orderType,
+        mainOrderId: this.screenForm.mainOrderId,
+        createBy: this.screenForm.createBy,
+        refEnginRecordNo: this.screenForm.refEnginRecordNo,
+        refUseUnit: this.screenForm.refUseUnit,
+        categoryId: this.screenForm.categoryId,
+        approvalName: this.screenForm.approvalName,
+        refRegionWork: this.screenForm.refRegionWork,
+      };
+    },
+  },
+
+  watch: {
+    multipleSelection(data) {
+      // 监听选中状态
+      this.selectRow = [];
+      if (data.length > 0) {
+        data.forEach((item, index) => {
+          this.selectRow.push(item.id);
+        });
+      }
+    },
+  },
+
+  beforeCreate() {
+    that = this;
+  },
+
+  created() {
+    this.getSalesmanList();
+    this.getList();
+    this.getCategoryList();
+    this.isShow = false;
+    if (this.$route.query && this.$route.query.isShow) {
+      this.isShow = this.$route.query.isShow;
+      this.toReturnForm();
+    }
+  },
+  // activated() {
+  //   // keepAlice  activated 主要是从发货单汇总调用退货申请按钮
+  //   this.isShow = false
+  //   if(this.$route.query && this.$route.query.isShow){
+  //     this.isShow = this.$route.query.isShow
+  //       this.toReturnForm()
+  //   }
+  // },
+  methods: {
+    // 获取业务员列表
+    getSalesmanList() {
+      getSalesmanList({
+        pageNum: 1,
+        pageSize: -1,
+        isCustomer: 0,
+        status: true,
+      }).then((res) => {
+        this.salesmanList = res.data.records;
+      });
+    },
+
+    // 查询列表
+    getList() {
+      this.listLoading = true;
+
+      const params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        id: this.screenForm.orderNum,
+        correspondName: this.screenForm.warehouse,
+        customerNumber: this.screenForm.jxsNum,
+        customerName: this.screenForm.jxsName,
+        productName: this.screenForm.chName,
+        specification: this.screenForm.model,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : "",
+        endTime: this.screenForm.date ? this.screenForm.date[1] : "",
+        examineStatus: this.screenForm.status,
+        createBy: this.screenForm.createBy,
+
+        serviceId: this.screenForm.salesMan,
+        k3ServiceId: this.screenForm.k3ServiceId,
+        type: this.screenForm.orderType,
+        mainOrderId: this.screenForm.mainOrderId,
+        refEnginRecordNo: this.screenForm.refEnginRecordNo,
+        refUseUnit: this.screenForm.refUseUnit,
+        categoryId: this.screenForm.categoryId,
+        approvalName: this.screenForm.approvalName,
+        refRegionWork: this.screenForm.refRegionWork,
+      };
+      getEnginList(params).then((res) => {
+        res.data.records.forEach((item) => {
+          item.sums1 = ["refundableQty"];
+          item.sums2 = [
+            "singlePayPrice",
+            "payAmount",
+            "payRebateAmount",
+            "totalDiscAmount",
+          ];
+        });
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      });
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+
+    // 进入表单
+    toForm(item) {
+      this.queryItem = item;
+      this.isShowForm = true;
+    },
+
+    // 进入表单
+    toReturnForm(item) {
+      this.queryItem = item;
+      this.isShowReturnForm = true;
+    },
+
+    // 进入审批
+    toExamine(item) {
+      this.queryItem = item;
+      this.isShowExamine = true;
+    },
+
+    // 进入详情
+    toDetail(item) {
+      this.queryItem = item;
+      this.isShowDetail = true;
+      this.$nextTick(() => {
+        this.$refs.refDetail.initPrint();
+      });
+    },
+
+    backList() {
+      this.queryItem = {};
+      this.isShowDetail = false;
+      this.isShowExamine = false;
+      this.isShowForm = false;
+      this.isShowReturnForm = false;
+    },
+
+    handleDelete(id) {
+      deleteEngin({ id }).then((res) => {
+        this.$successMsg();
+        this.getList();
+      });
+    },
+
+    // 申请/撤回
+    handleSubmit(id, examineStatus) {
+      submitEngin({ id, examineStatus }).then((res) => {
+        this.$successMsg();
+        this.getList();
+      });
+    },
+
+    // 弃审
+    handleAbandon(id) {
+      abandonEngin({ id }).then((res) => {
+        this.$successMsg();
+        this.getList();
+      });
+    },
+
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+      if (val) {
+        this.selections = val;
+      } else {
+        this.selections = [];
+      }
+    },
+
+    rowClass({ row, rowIndex }) {
+      if (this.selectRow.includes(row.id)) {
+        return { "background-color": "#ecf5ff" };
+      }
+    },
+
+    // 打开 批量审批
+    batchExamine() {
+      this.isShowExamineDialog = true;
+    },
+
+    // 提交 批量审批
+    submitExamineForm() {
+      let ids = this.multipleSelection.map((item) => {
+        return item.id;
+      });
+      ids = Array.from(new Set(ids));
+      examineBatchEngin({
+        ids: ids.join(","),
+        examineStatus: this.examineForm.status,
+        approvalRemark: this.examineForm.remark,
+      }).then((res) => {
+        this.isShowExamineDialog = false;
+        this.getList();
+        this.$successMsg("审批成功");
+      });
+    },
+    // 获取存货类别列表
+    getCategoryList() {
+      getCategoryList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then((res) => {
+        this.categoryList = res.data.records;
+      });
+    },
+    /**
+     * 根据条件禁用行复选框
+     * 函数返回值为false则禁用选择(反之亦然)
+     * @param {Object} row - 行数据
+     * @param {String} index - 索引值
+     * @return Boolean
+     */
+    selectable: function (row, index) {
+      if (row.automaticStatus) {
+        return false;
+      }
+      return true;
+      // 函数必须有返回值且是布尔值
+      // 页面刷新后该函数会执行 N 次进行判断(N 为表格行数)
+      // 如果没有返回值则默认返回false(全部无法选中)
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>