Explorar o código

Finish Hotfix-zh-301

howie %!s(int64=2) %!d(string=hai) anos
pai
achega
4597872ffa

+ 49 - 40
src/router/index.js

@@ -1,10 +1,10 @@
-import Vue from 'vue'
-import Router from 'vue-router'
+import Vue from "vue";
+import Router from "vue-router";
 
-Vue.use(Router)
+Vue.use(Router);
 
 /* Layout */
-import Layout from '@/layout'
+import Layout from "@/layout";
 
 /**
  * Note: sub-menu only appear when route children.length >= 1
@@ -32,33 +32,46 @@ import Layout from '@/layout'
  */
 export const constantRoutes = [
   {
-    path: '/login',
-    component: () => import('@/views/login/index'),
-    hidden: true
+    path: "/login",
+    component: () => import("@/views/login/index"),
+    hidden: true,
   },
   {
-    path: '/external/open_engin',
-    name: 'open_engin',
-    component: () => import('@/views/external/open_engin'),
-    hidden: true
+    path: "/external/open_engin",
+    name: "open_engin",
+    component: () => import("@/views/external/open_engin"),
+    hidden: true,
   },
   {
-    path: '/404',
-    component: () => import('@/views/404'),
-    hidden: true
+    path: "/404",
+    component: () => import("@/views/404"),
+    hidden: true,
   },
 
-  // {
-  //   path: '/',
-  //   component: Layout,
-  //   redirect: '/dashboard',
-  //   children: [{
-  //     path: 'dashboard',
-  //     name: 'Dashboard',
-  //     component: () => import('@/views/dashboard/index'),
-  //     meta: { title: '首页', icon: 'dashboard'}
-  //   }]
-  // },
+  {
+    path: "/supply",
+    component: Layout,
+    children: [
+      {
+        path: "deliver/new_apply",
+        name: "new_apply",
+        component: () => import("@/views/supply/apply/new_apply"),
+        meta: { title: "零售退货申请", icon: "" },
+      },
+    ],
+  },
+  {
+    path: "/supply",
+    component: Layout,
+    children: [
+      {
+        path: "deliver/new_engin",
+        name: "new_apply",
+        component: () => import("@/views/supply/apply/new_engin"),
+        meta: { title: "工程退货申请", icon: "" },
+      },
+    ],
+  },
   // {
   //   path: '/goods',
   //   component: Layout,
@@ -265,27 +278,23 @@ export const constantRoutes = [
   //   ]
   // },
 
-
   // 404 page must be placed at the end !!!
   // { path: '*', redirect: '/404', hidden: true }
-]
-
+];
 
+const createRouter = () =>
+  new Router({
+    // mode: 'history', // require service support
+    scrollBehavior: () => ({ y: 0 }),
+    routes: constantRoutes,
+  });
 
-const createRouter = () => new Router({
-  // mode: 'history', // require service support
-  scrollBehavior: () => ({ y: 0 }),
-  routes: constantRoutes
-})
-
-const router = createRouter()
+const router = createRouter();
 
 // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
 export function resetRouter() {
-  const newRouter = createRouter()
-  router.matcher = newRouter.matcher // reset router
+  const newRouter = createRouter();
+  router.matcher = newRouter.matcher; // reset router
 }
 
-
-
-export default router
+export default router;

+ 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>

+ 226 - 229
src/views/supply/deliver/sum_list.vue

@@ -214,15 +214,8 @@
                   filterable
                   style="width: 100%"
                 >
-                  <el-option
-                    label="是"
-                    :value="1"
-                  />
-                  <el-option
-                    label="否"
-                    :value="0"
-                  />
-
+                  <el-option label="是" :value="1" />
+                  <el-option label="否" :value="0" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -235,15 +228,8 @@
                   filterable
                   style="width: 100%"
                 >
-                  <el-option
-                    label="广州"
-                    value="GZ"
-                  />
-                  <el-option
-                    label="佛山"
-                    value="FS"
-                  />
-
+                  <el-option label="广州" value="GZ" />
+                  <el-option label="佛山" value="FS" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -257,16 +243,18 @@
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
               <el-form-item label="制单人" prop="createBy">
-                <el-input v-model="screenForm.createBy" placeholder="请输入制单人" />
+                <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-button type="primary" @click="submitScreenForm"
+                  >搜索</el-button
+                >
               </el-form-item>
             </el-col>
           </el-row>
@@ -281,7 +269,7 @@
               size="mini"
               :disabled="tableSelection.length < 1"
               @click="toPrint"
-            >打印发货单
+              >打印发货单
             </el-button>
             <div v-if="totalNum" class="num">
               当前列表总发货数量:{{ totalNum }}
@@ -295,16 +283,18 @@
               type="primary"
               style="margin-right: 10px"
               icon="el-icon-plus"
-              @click="$router.push('/supply/deliver/apply_list?isShow=true')"
-            >零售退货申请</el-button>
+              @click="$router.push('/supply/deliver/new_apply?isShow=true')"
+              >零售退货申请</el-button
+            >
             <el-button
               v-if="$checkBtnRole('refund', $route.meta.roles)"
               size="mini"
               type="primary"
               style="margin-right: 10px"
               icon="el-icon-plus"
-              @click="$router.push('/supply/deliver/engin_list?isShow=true')"
-            >工程退货申请</el-button>
+              @click="$router.push('/supply/deliver/new_engin?isShow=true')"
+              >工程退货申请</el-button
+            >
             <!-- <el-button   size="mini"
               type="primary"
               icon="el-icon-download"
@@ -334,11 +324,7 @@
             @select="handleSelect"
             @select-all="handleSelectAll"
           >
-            <el-table-column
-              align="center"
-              type="selection"
-              width="55"
-            />
+            <el-table-column align="center" type="selection" width="55" />
             <el-table-column
               align="right"
               label="打印次数"
@@ -409,14 +395,14 @@
                 <CopyButton
                   :copy-text="
                     scope.row.enginOrderType == 'HOME' ||
-                      scope.row.enginOrderType == 'TRADE'
+                    scope.row.enginOrderType == 'TRADE'
                       ? scope.row.enginOrderNo
                       : scope.row.mainOrderId
                   "
                 />
                 <span>{{
                   scope.row.enginOrderType == "HOME" ||
-                    scope.row.enginOrderType == "TRADE"
+                  scope.row.enginOrderType == "TRADE"
                     ? scope.row.enginOrderNo
                     : scope.row.mainOrderId
                 }}</span>
@@ -756,7 +742,13 @@
               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="createBy"
+              min-width="100"
+              show-overflow-tooltip
+            />
 
             <el-table-column
               align="left"
@@ -847,55 +839,60 @@
       </div>
     </el-dialog>
 
-    <el-dialog
-      title="导出项"
-      :visible.sync="dialogVisible"
-      width="50%"
-    >
-      <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">全选</el-checkbox>
-      <div style="margin: 15px 0;" />
+    <el-dialog title="导出项" :visible.sync="dialogVisible" width="50%">
+      <el-checkbox
+        v-model="checkAll"
+        :indeterminate="isIndeterminate"
+        @change="handleCheckAllChange"
+        >全选</el-checkbox
+      >
+      <div style="margin: 15px 0" />
       <el-checkbox-group v-model="check" @change="handleCheckedCitiesChange">
-        <el-checkbox v-for="item in excelData" :label="item.value">{{ item.name }}</el-checkbox>
+        <el-checkbox v-for="item in excelData" :label="item.value">{{
+          item.name
+        }}</el-checkbox>
       </el-checkbox-group>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+        <el-button type="primary" @click="dialogVisible = false"
+          >确 定</el-button
+        >
       </span>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { getSumList } from '@/api/supply/deliver'
-import print from '@/mixin/print'
-import { checkPassword, getListInvoiceNumber } from '@/api/supply/pickup'
-import { getCategoryList, getSalesmanList } from '@/api/common'
-import SumPrint from '@/views/supply/deliver/components/sum_print'
-import { getWarehouseList } from '@/api/supply/apply'
-import printPreview from './components/design/preview.vue'
+import { getSumList } from "@/api/supply/deliver";
+import print from "@/mixin/print";
+import { checkPassword, getListInvoiceNumber } from "@/api/supply/pickup";
+import { getCategoryList, getSalesmanList } from "@/api/common";
+import SumPrint from "@/views/supply/deliver/components/sum_print";
+import { getWarehouseList } from "@/api/supply/apply";
+import printPreview from "./components/design/preview.vue";
 export default {
   components: {
     SumPrint,
-    printPreview
+    printPreview,
   },
   filters: {
     orderTypeFilter(val) {
       const MAP = {
-        HOME: '家用单',
-        TRADE: '商用单',
-        RETAIL: '零售单',
-        RETAIL_POLICY: '销售政策单',
-        PERMU_HOME: '置换家用单',
-        PERMU_TRADE: '置换商用单',
-        PERMU_RETAIL: '置换零售单',
-        PERMU_RETAIL_POLICY: '置换销售政策单',
-        REQUISITION_HOME: '调拨家用单',
-        REQUISITION_TRADE: '调拨商用单',
-        REQUISITION_RETAIL: '调拨零售单',
-        REQUISITION_RETAIL_POLICY: '调拨销售政策单'
-      }
-      return MAP[val]
-    }
+        HOME: "家用单",
+        TRADE: "商用单",
+        RETAIL: "零售单",
+        RETAIL_POLICY: "销售政策单",
+        PERMU_HOME: "置换家用单",
+        PERMU_TRADE: "置换商用单",
+        PERMU_RETAIL: "置换零售单",
+        PERMU_RETAIL_POLICY: "置换销售政策单",
+        REQUISITION_HOME: "调拨家用单",
+        REQUISITION_TRADE: "调拨商用单",
+        REQUISITION_RETAIL: "调拨零售单",
+        REQUISITION_RETAIL_POLICY: "调拨销售政策单",
+      };
+      return MAP[val];
+    },
   },
   mixins: [print],
   data() {
@@ -907,40 +904,40 @@ export default {
       listLoading: false, // 列表加载loading
       screenForm: {
         // 筛选表单数据
-        goodsName: '',
-        goodsCode: '',
-        goodsOldCode: '',
-        model: '',
-        createDate: '',
-        deliverDate: '',
+        goodsName: "",
+        goodsCode: "",
+        goodsOldCode: "",
+        model: "",
+        createDate: "",
+        deliverDate: "",
         correspondId: [],
-        jxsNum: '',
-        jxsName: '',
-        orderNum: '',
-        type: '',
-        salesMan: '',
-        k3ServiceId: '',
-        mainOrderId: '',
-        approvaTime: '',
-        types: '',
-        printStatus: '',
-        discriminate: '',
-        refEnginRecordNo: '',
-        createBy: ''
+        jxsNum: "",
+        jxsName: "",
+        orderNum: "",
+        type: "",
+        salesMan: "",
+        k3ServiceId: "",
+        mainOrderId: "",
+        approvaTime: "",
+        types: "",
+        printStatus: "",
+        discriminate: "",
+        refEnginRecordNo: "",
+        createBy: "",
       },
       invoiceList: [
         {
           value: 1,
-          label: '申请发货单'
+          label: "申请发货单",
         },
         {
           value: 2,
-          label: '退货单'
+          label: "退货单",
         },
         {
           value: 3,
-          label: '直调发货单'
-        }
+          label: "直调发货单",
+        },
       ],
       categoryList: [],
       salesmanList: [],
@@ -950,29 +947,29 @@ export default {
       totalNum: 0,
       isShowDialog: false,
       dialogForm: {
-        password: '',
-        createMan: '',
-        createDate: ''
+        password: "",
+        createMan: "",
+        createDate: "",
       },
       warehouseList: [],
       dialogFormRules: {
-        password: [{ required: true, message: '请输入密码', trigger: 'blur' }]
+        password: [{ required: true, message: "请输入密码", trigger: "blur" }],
       },
       dialogVisible: false,
       excelData: [
         {
           value: 1,
-          name: '状态'
+          name: "状态",
         },
         {
           value: 2,
-          name: '打印时间'
-        }
+          name: "打印时间",
+        },
       ],
       check: [],
       checkAll: false,
-      isIndeterminate: false
-    }
+      isIndeterminate: false,
+    };
   },
   computed: {
     exParams() {
@@ -986,16 +983,16 @@ export default {
         createBy: this.screenForm.createBy,
         createStartTime: this.screenForm.createDate
           ? this.screenForm.createDate[0]
-          : '',
+          : "",
         createEndTime: this.screenForm.createDate
           ? this.screenForm.createDate[1]
-          : '',
+          : "",
         startTime: this.screenForm.deliverDate
           ? this.screenForm.deliverDate[0]
-          : '',
+          : "",
         endTime: this.screenForm.deliverDate
           ? this.screenForm.deliverDate[1]
-          : '',
+          : "",
         customerNumber: this.screenForm.jxsNum,
         customerName: this.screenForm.jxsName,
         id: this.screenForm.orderNum,
@@ -1006,27 +1003,27 @@ export default {
         printStatus: this.screenForm.printStatus,
         approvalEndTime: this.screenForm.approvaTime
           ? this.screenForm.approvaTime[1]
-          : '',
+          : "",
         approvalStartTime: this.screenForm.approvaTime
           ? this.screenForm.approvaTime[0]
-          : '',
-        correspondId: this.screenForm.correspondId.join(','),
-        type: this.screenForm.types
-      }
+          : "",
+        correspondId: this.screenForm.correspondId.join(","),
+        type: this.screenForm.types,
+      };
     },
     comRefundableQty() {
       return (type, status, row) => {
         if (type == 2) {
-          return ''
+          return "";
         } else {
-          if (status == 'OK') {
-            return 0
+          if (status == "OK") {
+            return 0;
           } else {
-            return row.refundableQty
+            return row.refundableQty;
           }
         }
-      }
-    }
+      };
+    },
   },
   watch: {
     dataList: {
@@ -1034,45 +1031,45 @@ export default {
         if (newValue && newValue.length) {
           newValue.forEach((item, index) => {
             this.dataList[index].compute_zkeAmount =
-              item.totalDiscAmount + item.payRebateAmount
+              item.totalDiscAmount + item.payRebateAmount;
             this.dataList[index].compute_wckNum = this.comRefundableQty(
               item.type,
               item.salesExamineStatus,
               item
-            )
-          })
+            );
+          });
         }
       },
       immediate: true,
-      deep: true
-    }
+      deep: true,
+    },
   },
   created() {
-    this.getSalesmanList()
-    this.getCategoryList()
-    this.getList()
-    this.getWarehouseList()
+    this.getSalesmanList();
+    this.getCategoryList();
+    this.getList();
+    this.getWarehouseList();
   },
   mounted() {
-    this.initPrint()
+    this.initPrint();
   },
   methods: {
     handleFilterData() {
-      this.dialogVisible = true
+      this.dialogVisible = true;
     },
 
     handleCheckAllChange(val) {
-      const arr = []
+      const arr = [];
       if (val) {
         for (let i = 1; i <= this.excelData.length; i++) {
-          arr.push(i)
+          arr.push(i);
         }
       }
-      this.check = val ? arr : []
-      this.isIndeterminate = false
+      this.check = val ? arr : [];
+      this.isIndeterminate = false;
     },
     handleCheckedCitiesChange() {
-      console.log(this.checkAll)
+      console.log(this.checkAll);
     },
     // 获取业务员列表
     getSalesmanList() {
@@ -1080,33 +1077,33 @@ export default {
         pageNum: 1,
         pageSize: -1,
         isCustomer: 0,
-        status: true
+        status: true,
       }).then((res) => {
-        this.salesmanList = res.data.records
-      })
+        this.salesmanList = res.data.records;
+      });
     },
 
     // 获取存货类别列表
     getCategoryList() {
       getCategoryList({
         pageNum: 1,
-        pageSize: -1
+        pageSize: -1,
       }).then((res) => {
-        this.categoryList = res.data.records
-      })
+        this.categoryList = res.data.records;
+      });
     },
     // 获取仓库列表
     getWarehouseList() {
       getWarehouseList({
         pageNum: 1,
-        pageSize: -1
+        pageSize: -1,
       }).then((res) => {
-        this.warehouseList = res.data.records
-      })
+        this.warehouseList = res.data.records;
+      });
     },
     // 查询列表
     getList() {
-      this.listLoading = true
+      this.listLoading = true;
       const params = {
         pageNum: this.currentPage,
         pageSize: this.pageSize,
@@ -1122,16 +1119,16 @@ export default {
 
         createStartTime: this.screenForm.createDate
           ? this.screenForm.createDate[0]
-          : '',
+          : "",
         createEndTime: this.screenForm.createDate
           ? this.screenForm.createDate[1]
-          : '',
+          : "",
         startTime: this.screenForm.deliverDate
           ? this.screenForm.deliverDate[0]
-          : '',
+          : "",
         endTime: this.screenForm.deliverDate
           ? this.screenForm.deliverDate[1]
-          : '',
+          : "",
         customerNumber: this.screenForm.jxsNum,
         customerName: this.screenForm.jxsName,
         id: this.screenForm.orderNum,
@@ -1141,33 +1138,32 @@ export default {
         mainOrderId: this.screenForm.mainOrderId,
         approvalEndTime: this.screenForm.approvaTime
           ? this.screenForm.approvaTime[1]
-          : '',
+          : "",
         approvalStartTime: this.screenForm.approvaTime
           ? this.screenForm.approvaTime[0]
-          : '',
-        correspondId: this.screenForm.correspondId.join(','),
-        type: this.screenForm.types
-
-      }
+          : "",
+        correspondId: this.screenForm.correspondId.join(","),
+        type: this.screenForm.types,
+      };
 
       getSumList(params).then((res) => {
         res.data.records.forEach((item) => {
-          item.notOutNumber = item.salesStatus ? 0 : item.refundableQty
-          item.sums1 = ['refundableQty', 'compute_wckNum']
+          item.notOutNumber = item.salesStatus ? 0 : item.refundableQty;
+          item.sums1 = ["refundableQty", "compute_wckNum"];
           item.sums2 = [
-            'payAmount',
-            'payRebateAmount',
-            'discAmount',
-            'totalDiscAmount',
-            'singlePayPrice',
-            'compute_zkeAmount'
-          ]
-        })
-        this.dataList = res.data.records
-        this.listTotal = res.data.total
-        this.listLoading = false
-      })
-      this.getListInvoiceNumber()
+            "payAmount",
+            "payRebateAmount",
+            "discAmount",
+            "totalDiscAmount",
+            "singlePayPrice",
+            "compute_zkeAmount",
+          ];
+        });
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      });
+      this.getListInvoiceNumber();
     },
 
     getListInvoiceNumber() {
@@ -1180,16 +1176,16 @@ export default {
 
         createStartTime: this.screenForm.createDate
           ? this.screenForm.createDate[0]
-          : '',
+          : "",
         createEndTime: this.screenForm.createDate
           ? this.screenForm.createDate[1]
-          : '',
+          : "",
         startTime: this.screenForm.deliverDate
           ? this.screenForm.deliverDate[0]
-          : '',
+          : "",
         endTime: this.screenForm.deliverDate
           ? this.screenForm.deliverDate[1]
-          : '',
+          : "",
         customerNumber: this.screenForm.jxsNum,
         customerName: this.screenForm.jxsName,
         id: this.screenForm.orderNum,
@@ -1199,82 +1195,81 @@ export default {
         mainOrderId: this.screenForm.mainOrderId,
         approvalEndTime: this.screenForm.approvaTime
           ? this.screenForm.approvaTime[1]
-          : '',
+          : "",
         approvalStartTime: this.screenForm.approvaTime
           ? this.screenForm.approvaTime[0]
-          : '',
-        correspondId: this.screenForm.correspondId.join(','),
-        type: this.screenForm.types
-
-      }
+          : "",
+        correspondId: this.screenForm.correspondId.join(","),
+        type: this.screenForm.types,
+      };
       getListInvoiceNumber(params).then((res) => {
         // console.log(res,'ii');
-        this.totalNum = res.data
-      })
+        this.totalNum = res.data;
+      });
     },
     // 提交筛选表单
     submitScreenForm() {
-      this.currentPage = 1
-      this.getList()
+      this.currentPage = 1;
+      this.getList();
     },
 
     // 重置筛选表单
     resetScreenForm() {
-      this.$refs.screenForm.resetFields()
-      this.currentPage = 1
-      this.getList()
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
     },
 
     // 更改每页数量
     handleSizeChange(val) {
-      this.pageSize = val
-      this.currentPage = 1
-      this.getList()
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
     },
 
     // 更改当前页
     handleCurrentChange(val) {
-      this.currentPage = val
-      this.getList()
+      this.currentPage = val;
+      this.getList();
     },
 
     handleSelect(selection, row) {
-      this.$refs.table.toggleRowSelection(row)
+      this.$refs.table.toggleRowSelection(row);
       this.dataList.forEach((item) => {
         if (item.id === row.id) {
-          this.$refs.table.toggleRowSelection(item)
+          this.$refs.table.toggleRowSelection(item);
         }
-      })
-      this.tableSelection = this.$refs.table.selection
+      });
+      this.tableSelection = this.$refs.table.selection;
     },
 
     handleSelectAll(selection) {
-      this.tableSelection = this.$refs.table.selection
+      this.tableSelection = this.$refs.table.selection;
     },
 
     // 点击打印
     toPrint() {
-      this.queryItem = this.tableSelection
+      this.queryItem = this.tableSelection;
       if (!this.tableSelection[0].printNum) {
-        this.queryItem = this.tableSelection
-        this.getDateil(this.tableSelection, 'getDeliverDetail').then(res => {
-          this.$endLoading()
-          this.$refs.preView.show(this.hiprintTemplate, this.outputData)
-        })
+        this.queryItem = this.tableSelection;
+        this.getDateil(this.tableSelection, "getDeliverDetail").then((res) => {
+          this.$endLoading();
+          this.$refs.preView.show(this.hiprintTemplate, this.outputData);
+        });
       } else {
-        this.queryItem = this.tableSelection
+        this.queryItem = this.tableSelection;
         this.dialogForm.createMan = JSON.parse(
-          localStorage.getItem('supply_user')
-        ).nickName
-        this.dialogForm.createDate = this.getDate()
-        this.isShowDialog = true
+          localStorage.getItem("supply_user")
+        ).nickName;
+        this.dialogForm.createDate = this.getDate();
+        this.isShowDialog = true;
       }
     },
 
     // 关闭弹窗
     cancelDialogForm() {
-      this.isShowDialog = false
-      this.$refs.dialogForm.resetFields()
+      this.isShowDialog = false;
+      this.$refs.dialogForm.resetFields();
     },
 
     // 提交 弹窗
@@ -1283,41 +1278,43 @@ export default {
         if (valid) {
           const params = {
             shipId: this.queryItem[0].invoiceId,
-            password: this.dialogForm.password
-          }
+            password: this.dialogForm.password,
+          };
           checkPassword(params).then((res) => {
-            this.getDateil(this.tableSelection, 'getDeliverDetail').then(res => {
-              this.$endLoading()
-              this.$refs.preView.show(this.hiprintTemplate, this.outputData)
-            })
-            this.cancelDialogForm()
-          })
+            this.getDateil(this.tableSelection, "getDeliverDetail").then(
+              (res) => {
+                this.$endLoading();
+                this.$refs.preView.show(this.hiprintTemplate, this.outputData);
+              }
+            );
+            this.cancelDialogForm();
+          });
         }
-      })
+      });
     },
 
     getDate() {
-      var date = new Date()
-      var seperator1 = '-'
-      var year = date.getFullYear()
-      var month = date.getMonth() + 1
-      var strDate = date.getDate()
+      var date = new Date();
+      var seperator1 = "-";
+      var year = date.getFullYear();
+      var month = date.getMonth() + 1;
+      var strDate = date.getDate();
       if (month >= 1 && month <= 9) {
-        month = '0' + month
+        month = "0" + month;
       }
       if (strDate >= 0 && strDate <= 9) {
-        strDate = '0' + strDate
+        strDate = "0" + strDate;
       }
-      var currentdate = year + seperator1 + month + seperator1 + strDate
-      return currentdate
+      var currentdate = year + seperator1 + month + seperator1 + strDate;
+      return currentdate;
     },
 
     backList() {
-      this.queryItem = {}
-      this.isShowPrint = false
-    }
-  }
-}
+      this.queryItem = {};
+      this.isShowPrint = false;
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>