소스 검색

feat: 修改零售发货申请

aXin-0810 2 년 전
부모
커밋
cdde182255
2개의 변경된 파일278개의 추가작업 그리고 565개의 파일을 삭제
  1. 275 564
      src/views/supply/apply/apply_list.vue
  2. 3 1
      src/views/supply/deliver/deliver_list.vue

+ 275 - 564
src/views/supply/apply/apply_list.vue

@@ -1,521 +1,31 @@
 <template>
-  <div class="app-container">
-    <div v-show="!isShowDetail && !isShowExamine && !isShowForm && !isShowReturnForm">
-      <!-- 筛选条件 -->
-      <div class="screen-container">
-        <Collapse :screen-form="screenForm">
-          <template #left_btn>
-            <el-radio-group v-model="screenForm.status" size="mini" @change="getList()">
-              <el-radio-button label="">全部</el-radio-button>
-              <template v-for="(item, index) in statusList">
-                <el-radio-button v-if="index !== 3" :key="index" :label="item.value">{{
-                    item.label
-                  }}
-                </el-radio-button>
-              </template>
-            </el-radio-group>
-          </template>
-          <template #right_btn>
-            <div>
-              <el-button size="mini" @click="resetScreenForm">清空</el-button>
-              <el-button type="primary" size="mini" @click="submitScreenForm">搜索</el-button>
-            </div>
-          </template>
-          <template #search>
-            <el-form ref="screenForm" :model="screenForm" label-width="100px" size="mini" label-position="left">
-              <el-row :gutter="20">
-                <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="12" :lg="6">
-                  <el-form-item label="订单状态" prop="automaticStatus">
-                    <el-select v-model="screenForm.automaticStatus" clearable placeholder="请选择">
-                      <el-option label="非计划单" :value="1"></el-option>
-                      <el-option label="计划单" :value="0"></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6"></el-col>
-              </el-row>
-            </el-form>
-          </template>
-        </Collapse>
-      </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" :selectable="selectable" />
-            <el-table-column align="left" label="订单状态" prop="type" min-width="120" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.automaticStatus ? '非计划单推发货' : '计划单推发货' }}
-              </template>
-            </el-table-column>
-            <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="{row}">
-                {{ row.gejiangSync === 1 ? '同步成功' : row.gejiangSync === 0 ? '待同步' : 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) &&
-                    (( !isCustomer && !scope.row.automaticStatus &&
-                    (scope.row.examineStatus === 'SAVE'|| scope.row.examineStatus === 'FAIL'))||(isCustomer && !scope.row.automaticStatus &&
-                    (scope.row.examineStatus === 'SAVE'|| scope.row.examineStatus === 'FAIL') && scope.row.type!=2) || (
-                    !isCustomer  &&  scope.row.automaticStatus &&
-                     (scope.row.examineStatus === 'SAVE'|| scope.row.examineStatus === 'FAIL') &&
-                     scope.row.type===2
-                    ) )
-                  "
-                  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) &&
-                    ((!isCustomer &&!scope.row.automaticStatus &&
-                    scope.row.examineStatus === 'WAIT') ||(isCustomer && !scope.row.automaticStatus &&
-                    scope.row.examineStatus === 'WAIT' && scope.row.type!=2)||( !isCustomer  && scope.row.automaticStatus &&
-                    scope.row.examineStatus === 'WAIT'&& scope.row.type==2))
-                  "
-                  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) &&
-                    ((!isCustomer &&!scope.row.automaticStatus &&
-                    scope.row.examineStatus === 'OK')||(isCustomer && !scope.row.automaticStatus &&
-                    scope.row.examineStatus === 'OK' && scope.row.type!=2)||( !isCustomer && scope.row.automaticStatus &&
-                    scope.row.examineStatus === 'OK' && scope.row.type==2))
-                  "
-                  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.automaticStatus &&
-                    (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) &&
-                      ((!isCustomer && !scope.row.automaticStatus &&
-                      (scope.row.examineStatus === 'SAVE' || scope.row.examineStatus === 'FAIL') &&
-                      scope.row.type === 2)||(isCustomer && !scope.row.automaticStatus &&
-                    (scope.row.examineStatus === 'SAVE' || scope.row.examineStatus === 'FAIL') && scope.row.type!=2 && scope.row.type !==1)  ||
-                      ( !isCustomer && scope.row.automaticStatus &&
-                     (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) &&
-                    ((!isCustomer &&!scope.row.automaticStatus &&
-                    scope.row.examineStatus === 'WAIT') ||(isCustomer && !scope.row.automaticStatus &&
-                    scope.row.examineStatus !== 'WAIT' && scope.row.type!=2) || (!isCustomer && scope.row.automaticStatus &&
-                    scope.row.examineStatus === 'WAIT' && scope.row.type==2))
-                  "
-                  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) &&
-                    ((!isCustomer && !scope.row.automaticStatus &&
-                    scope.row.examineStatus !== 'OK' ) ||(isCustomer && !scope.row.automaticStatus &&
-                    scope.row.examineStatus !== 'OK' && scope.row.type!=2)   || ( !isCustomer &&scope.row.automaticStatus && scope.row.examineStatus !== 'OK' && scope.row.type==2 ) )
-                  "
-                  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>
-
+  <div style="width: 100%; height: 100%; overflow-y: auto">
+    <template-page
+      v-show="!isShowDetail && !isShowExamine && !isShowForm && !isShowReturnForm"
+      ref="pageRef"
+      :tableEvents="tableEvents"
+      :tableAttributes="tableAttributes"
+      :getList="getList"
+      :exportList="exportList"
+      :operation="operation()"
+      :operationColumnWidth="200"
+      :columnParsing="columnParsing"
+      :optionsEvensGroup="optionsEvensGroup"
+    >
+    </template-page>
     <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 class="app-container" v-if="isShowDetail">
+      <ApplyDetail ref="refDetail" :list-item="queryItem" @backListFormDetail="backList" />
+    </div>
+    <div class="app-container" v-if="isShowExamine">
+      <ApplyExamine :list-item="queryItem" @backListFormDetail="backList" />
+    </div>
+    <div class="app-container" v-if="isShowForm">
+      <ApplyForm :list-item="queryItem" @backListFormDetail="backList" />
+    </div>
+    <div class="app-container" v-if="isShowReturnForm">
+      <ApplyReturnForm :list-item="queryItem" :is-show="isShow" @backListFormDetail="backList" />
+    </div>
   </div>
 </template>
 
@@ -527,10 +37,12 @@ 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'
-
+import { invoiceListRetailV2, invoiceListRetailV2Export } from '@/api/deliver_list_v2'
+import TemplatePage from '@/components/template/template-page-1.vue'
 let that
 export default {
   components: {
+    TemplatePage,
     ApplyDetail,
     ApplyExamine,
     ApplyForm,
@@ -572,7 +84,7 @@ export default {
         categoryId: '',
         approvalName: '',
         createBy: '',
-        automaticStatus:''
+        automaticStatus: ''
       },
       statusList: [
         { label: '已保存', value: 'SAVE' },
@@ -602,12 +114,59 @@ export default {
         remark: ''
       },
       categoryList: [],
-      isCustomer: JSON.parse(localStorage.getItem('supply_user')).isCustomer
-
+      isCustomer: JSON.parse(localStorage.getItem('supply_user')).isCustomer,
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: true,
+        summaryMethod: this.$getSummaries
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: []
     }
   },
 
   computed: {
+    optionsEvensGroup() {
+      return [
+        [
+          [
+            {
+              isRole: this.$checkBtnRole('add', this.$route.meta.roles),
+              name: '发货申请',
+              click: this.toForm
+            }
+          ]
+        ],
+        [
+          [
+            {
+              isRole: this.$checkBtnRole('refund', this.$route.meta.roles),
+              name: '退货申请',
+              click: this.toReturnForm
+            }
+          ]
+        ],
+        [
+          [
+            {
+              isRole: this.$checkBtnRole('examine', this.$route.meta.roles),
+              name: '批量审批',
+              click: () => {
+                if (!this.multipleSelection.length) {
+                  this.$message.info('请选择数据!')
+                  return
+                }
+                this.batchExamine()
+              }
+            }
+          ]
+        ]
+      ]
+    },
     exParams() {
       return {
         id: this.screenForm.orderNum,
@@ -616,7 +175,7 @@ export default {
         customerName: this.screenForm.jxsName,
         productName: this.screenForm.chName,
         specification: this.screenForm.model,
-        automaticStatus:this.screenForm.automaticStatus,
+        automaticStatus: this.screenForm.automaticStatus,
 
         startTime: this.screenForm.date ? this.screenForm.date[0] : '',
         endTime: this.screenForm.date ? this.screenForm.date[1] : '',
@@ -650,12 +209,11 @@ export default {
 
   created() {
     this.getSalesmanList()
-    this.getList()
+    // this.getList()
     this.getCategoryList()
     this.isShow = false
     if (this.$route.query && this.$route.query.isShow) {
       this.isShow = this.$route.query.isShow
-
       this.toReturnForm()
     }
   },
@@ -669,6 +227,159 @@ export default {
 
   // },
   methods: {
+    // 列表请求函数
+    getList: invoiceListRetailV2,
+    // 列表导出函数
+    exportList: invoiceListRetailV2Export,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.multipleSelection = data
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return (
+          <div class="operation-btns">
+            {this.$checkBtnRole('apply', this.$route.meta.roles) &&
+            ((!this.isCustomer &&
+              !row.automaticStatus &&
+              (row.examineStatus === '保存' || row.examineStatus === '不通过')) ||
+              (this.isCustomer &&
+                !row.automaticStatus &&
+                (row.examineStatus === '保存' || row.examineStatus === '不通过') &&
+                row.type != 2) ||
+              (!this.isCustomer &&
+                row.automaticStatus &&
+                (row.examineStatus === '保存' || row.examineStatus === '不通过') &&
+                row.type === 2)) ? (
+              <el-popconfirm
+                style="margin-right: 10px"
+                title="确定申请吗?"
+                onOnConfirm={() => {
+                  this.handleSubmit(row.id, 'WAIT')
+                }}
+              >
+                <el-button slot="reference" type="text">
+                  申请
+                </el-button>
+              </el-popconfirm>
+            ) : null}
+
+            {this.$checkBtnRole('apply', this.$route.meta.roles) &&
+            ((!this.isCustomer && !row.automaticStatus && row.examineStatus === '待审核') ||
+              (this.isCustomer && !row.automaticStatus && row.examineStatus === '待审核' && row.type != 2) ||
+              (!this.isCustomer && row.automaticStatus && row.examineStatus === '待审核' && row.type == 2)) ? (
+              <el-popconfirm
+                style="margin-right: 10px"
+                title="确定撤回吗?"
+                onOnConfirm={() => {
+                  this.handleSubmit(row.id, 'SAVE')
+                }}
+              >
+                <el-button slot="reference" type="text">
+                  撤回
+                </el-button>
+              </el-popconfirm>
+            ) : null}
+            {this.$checkBtnRole('examine', this.$route.meta.roles) &&
+            ((!this.isCustomer && !row.automaticStatus && row.examineStatus === '通过') ||
+              (this.isCustomer && !row.automaticStatus && row.examineStatus === '通过' && row.type != 2) ||
+              (!this.isCustomer && row.automaticStatus && row.examineStatus === '通过' && row.type == 2)) ? (
+              <el-popconfirm
+                style="margin-right: 10px"
+                title="确定弃审吗?"
+                onOnConfirm={() => {
+                  this.handleAbandon(row.id)
+                }}
+              >
+                <el-button slot="reference" type="text">
+                  弃审
+                </el-button>
+              </el-popconfirm>
+            ) : null}
+
+            {this.$checkBtnRole('edit', this.$route.meta.roles) &&
+            !row.automaticStatus &&
+            (row.examineStatus === '保存' || row.examineStatus === '不通过') &&
+            row.type === 1 ? (
+              <el-button
+                type="text"
+                onClick={() => {
+                  this.toForm(row)
+                }}
+              >
+                编辑
+              </el-button>
+            ) : null}
+            {this.$checkBtnRole('edit', this.$route.meta.roles) &&
+            ((!this.isCustomer &&
+              !row.automaticStatus &&
+              (row.examineStatus === '保存' || row.examineStatus === '不通过') &&
+              row.type === 2) ||
+              (this.isCustomer &&
+                !row.automaticStatus &&
+                (row.examineStatus === '保存' || row.examineStatus === '不通过') &&
+                row.type != 2 &&
+                row.type !== 1) ||
+              (!this.isCustomer &&
+                row.automaticStatus &&
+                (row.examineStatus === '保存' || row.examineStatus === '不通过') &&
+                row.type === 2)) ? (
+              <el-button
+                type="text"
+                onClick={() => {
+                  this.toReturnForm(row)
+                }}
+              >
+                编辑
+              </el-button>
+            ) : null}
+
+            {this.$checkBtnRole('examine', this.$route.meta.roles) &&
+            ((!this.isCustomer && !row.automaticStatus && row.examineStatus === '待审核') ||
+              (this.isCustomer && !row.automaticStatus && row.examineStatus !== '待审核' && row.type != 2) ||
+              (!this.isCustomer && row.automaticStatus && row.examineStatus === '待审核' && row.type == 2)) ? (
+              <el-button
+                type="text"
+                onClick={() => {
+                  this.toExamine(row)
+                }}
+              >
+                审核
+              </el-button>
+            ) : null}
+
+            {this.$checkBtnRole('del', this.$route.meta.roles) &&
+            ((!this.isCustomer && !row.automaticStatus && row.examineStatus !== '通过') ||
+              (this.isCustomer && !row.automaticStatus && row.examineStatus !== '通过' && row.type != 2) ||
+              (!this.isCustomer && row.automaticStatus && row.examineStatus !== '通过' && row.type == 2)) ? (
+              <el-popconfirm
+                style="margin-left: 10px"
+                title="确定删除吗?"
+                onOnConfirm={() => {
+                  this.handleDelete(row.id)
+                }}
+              >
+                <el-button slot="reference" type="text" style="color: #f56c6c">
+                  删除
+                </el-button>
+              </el-popconfirm>
+            ) : null}
+            <el-button
+              type="text"
+              onClick={() => {
+                this.toDetail(row)
+              }}
+            >
+              详情
+            </el-button>
+          </div>
+        )
+      }
+    },
     // 获取业务员列表
     getSalesmanList() {
       getSalesmanList({
@@ -681,41 +392,41 @@ export default {
       })
     },
 
-    // 查询列表
-    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,
-        automaticStatus:this.screenForm.automaticStatus,
-        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.serviceId,
-        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
-      })
-    },
+    // // 查询列表
+    // 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,
+    //     automaticStatus: this.screenForm.automaticStatus,
+    //     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.serviceId,
+    //     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() {
@@ -725,7 +436,7 @@ export default {
 
     // 重置筛选表单
     resetScreenForm() {
-        this.$refs.screenForm.resetFields()
+      this.$refs.screenForm.resetFields()
       this.currentPage = 1
       this.getList()
     },
@@ -783,7 +494,7 @@ export default {
     handleDelete(id) {
       deleteApply({ id }).then(res => {
         this.$successMsg()
-        this.getList()
+        this.$refs.pageRef.refreshList()
       })
     },
 
@@ -791,7 +502,7 @@ export default {
     handleSubmit(id, examineStatus) {
       submitApply({ id, examineStatus }).then(res => {
         this.$successMsg()
-        this.getList()
+        this.$refs.pageRef.refreshList()
       })
     },
 
@@ -799,7 +510,7 @@ export default {
     handleAbandon(id) {
       abandonApply({ id }).then(res => {
         this.$successMsg()
-        this.getList()
+        this.$refs.pageRef.refreshList()
       })
     },
 
@@ -835,7 +546,7 @@ export default {
         approvalRemark: this.examineForm.remark
       }).then(res => {
         this.isShowExamineDialog = false
-        this.getList()
+        this.$refs.pageRef.refreshList()
         this.$successMsg('审批成功')
       })
     },
@@ -855,7 +566,7 @@ export default {
      * @param {String} index - 索引值
      * @return Boolean
      */
-    selectable: function(row, index) {
+    selectable: function (row, index) {
       if (row.automaticStatus) {
         return false
       }

+ 3 - 1
src/views/supply/deliver/deliver_list.vue

@@ -51,7 +51,9 @@
         <el-button @click="isShowDialog = false">关 闭</el-button>
       </div>
     </el-dialog>
-    <DeliverDetail :listItem="queryItem" v-if="isShowDetail" @backListFormDetail="backList" ref="refDetail" />
+    <div class="app-container" v-if="isShowDetail">
+      <DeliverDetail :listItem="queryItem" @backListFormDetail="backList" ref="refDetail" />
+    </div>
   </div>
 </template>