Przeglądaj źródła

Merge branch 'dev_v2' of ssh://gogs.zfire.top:2222/zfire-front/supply-front into dev_v2

aXin-0810 2 lat temu
rodzic
commit
96f13b13af

+ 38 - 0
src/api/supply/implement.js

@@ -1,5 +1,43 @@
 import request, { postBlob, handleImport, getBlob } from '@/utils/request'
 
+// 销售执行明细列表-零售订单-V2
+export function retailExecRetailV2(data) {
+  return request({
+    url: `/retail/exec/retail/v2?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+//销售执行明细列表-政策零售订单-V2-导出
+export function retailExecRetailV2Export(data, name) {
+  return postBlob({
+    url: '/retail/exec/retail/export/v2',
+    method: 'post',
+    data,
+    name
+  })
+}
+
+// 销售执行明细列表-政策零售订单-V2
+export function retailExecPolicyListV2(data) {
+  return request({
+    url: `/retail/exec/policy/list/v2?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+//销售执行明细列表-政策零售订单-V2-导出
+export function retailExecPolicyListV2Export(data, name) {
+  return postBlob({
+    url: '/retail/exec/policy/export/v2',
+    method: 'post',
+    data,
+    name
+  })
+}
+
 // 获取列表
 export function getList(params) {
   return request({

+ 20 - 1
src/api/supply/sales.js

@@ -1,4 +1,23 @@
-import request from '@/utils/request'
+import request, { postBlob, handleImport, getBlob } from '@/utils/request'
+
+// 销售执行明细列表-零售订单-V2
+export function saleOrderListV2(data) {
+  return request({
+    url: `/sale/order/listV2?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+//销售执行明细列表-政策零售订单-V2-导出
+export function saleOrderListV2Export(data, name) {
+  return postBlob({
+    url: '/sale/order/listV2/export',
+    method: 'post',
+    data,
+    name
+  })
+}
 
 // 获取列表
 export function getList(params) {

+ 3 - 3
src/views/basic_data/material/modify_list.vue

@@ -269,7 +269,7 @@ export default {
         console.log(row)
         return (
           <div class="operation-btns">
-            {row.examineStatus == 'SAVE' ? (
+            {row.examineStatus == '保存' ? (
               <el-popconfirm
                 onOnConfirm={async () => {
                   this.handleGetPriceSubmit(row.updPriceBillId)
@@ -284,7 +284,7 @@ export default {
               ''
             )}
 
-            {row.examineStatus == 'WAIT' ? (
+            {row.examineStatus == '待审核' ? (
               <el-popconfirm
                 onOnConfirm={async () => {
                   this.approvalFn(row.updPriceBillId)
@@ -299,7 +299,7 @@ export default {
               ''
             )}
 
-            {row.examineStatus == 'SAVE' ? (
+            {row.examineStatus == '保存' ? (
               <el-button
                 size="mini"
                 type="text"

+ 106 - 515
src/views/supply/implement/implement_list.vue

@@ -1,488 +1,39 @@
 <template>
-  <div class="app-container">
-    <div v-show="!isShowDisplaceDetail">
-      <!-- 筛选条件 -->
-      <div class="screen-container">
-        <Collapse :screen-form="screenForm">
-          <template #right_btn>
-            <el-button size="mini" @click="resetScreenForm">清空</el-button>
-            <el-button size="mini" type="primary" @click="submitScreenForm">搜索</el-button>
-          </template>
-          <template #left_btn>
-            <el-radio-group v-model="screenForm.status" @change="getList()" size="mini">
-              <el-radio-button v-for="(item, index) in statusList" :key="index" :label="item.value"
-                >{{ item.label }}
-              </el-radio-button>
-            </el-radio-group>
-          </template>
-          <template #search>
-            <el-form ref="screenForm" :model="screenForm" label-width="120px" size="mini" label-position="left">
-              <el-row :gutter="20">
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="产品编码" prop="goodsCode">
-                    <el-input v-model="screenForm.goodsCode" placeholder="请输入产品编码"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="销售订单" prop="saleNum">
-                    <el-input v-model="screenForm.saleNum" placeholder="请输入销售订单"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="经销商" prop="dealer">
-                    <el-input v-model="screenForm.dealer" placeholder="请输入经销商"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="产品名称" prop="goodsName">
-                    <el-input v-model="screenForm.goodsName" placeholder="请输入产品名称"></el-input>
-                  </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-input>
-                  </el-form-item>
-                </el-col>
-
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="项目名称" prop="enginName">
-                    <el-input v-model="screenForm.enginName" placeholder="请输入项目名称"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="工程登录编号" prop="loginNum">
-                    <el-input v-model="screenForm.loginNum" placeholder="请输入工程登录编号"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="存货类别" prop="k3CategoryNumber">
-                    <el-select v-model="screenForm.k3CategoryNumber" filterable clearable multiple placeholder="请选择">
-                      <el-option
-                        v-for="item in categoryList"
-                        :key="item.number"
-                        :label="item.name"
-                        :value="item.number"
-                      >
-                      </el-option>
-                    </el-select>
-                  </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"
-                      :default-time="['00:00:00', '23:59:59']"
-                      range-separator="至"
-                      style="width: 100%"
-                      value-format="yyyy-MM-dd HH:mm:ss"
-                      start-placeholder="开始日期"
-                      end-placeholder="结束日期"
-                    >
-                    </el-date-picker>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="订单日期" prop="orderDate">
-                    <el-date-picker
-                      v-model="screenForm.orderDate"
-                      type="datetimerange"
-                      :default-time="['00:00:00', '23:59:59']"
-                      range-separator="至"
-                      style="width: 100%"
-                      value-format="yyyy-MM-dd HH:mm:ss"
-                      start-placeholder="开始日期"
-                      end-placeholder="结束日期"
-                    >
-                    </el-date-picker>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="表头业务员" prop="serviceName ">
-                    <el-input v-model="screenForm.serviceName" placeholder="请输入表头业务员"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="表体业务员" prop="itemServiceName">
-                    <el-input v-model="screenForm.itemServiceName" placeholder="请输入表体业务员"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="归属业务员" prop="newServiceName">
-                    <el-input v-model="screenForm.newServiceName" placeholder="请输入归属业务员"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="销售政策编号" prop="policyCode">
-                    <el-input v-model="screenForm.policyCode" placeholder="请输入销售政策编号"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="销售政策说明" prop="policyRemark">
-                    <el-input v-model="screenForm.policyRemark" placeholder="请输入销售政策说明"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="发货是否完成" prop="isOver">
-                    <el-select v-model="screenForm.isOver" clearable placeholder="请选择">
-                      <el-option label="是" :value="true"></el-option>
-                      <el-option label="否" :value="false"></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="是否置换过" prop="isDisplaceOrder">
-                    <el-select v-model="screenForm.isDisplaceOrder" clearable placeholder="请选择">
-                      <el-option label="是" :value="true"></el-option>
-                      <el-option label="否" :value="false"></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="钱包" prop="walletIds1">
-                    <el-select v-model="screenForm.walletIds1" size="mini" multiple filterable>
-                      <el-option
-                        v-for="item in NoRebateWalletList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.id"
-                      />
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-            </el-form>
-          </template>
-        </Collapse>
-      </div>
-
-      <div class="mymain-container">
-        <div class="btn-group clearfix">
-          <div class="fr">
-            <ExportButton :exUrl="'retail/exec/listExport'" :exParams="exParams" />
-          </div>
-        </div>
-        <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="dataList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-            show-summary
-            :summary-method="$getSummaries"
-          >
-            <el-table-column align="left" label="标识" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <el-tag
-                  type="warning"
-                  size="mini"
-                  style="cursor: pointer"
-                  @click="openDisplaceDetail(scope.row)"
-                  v-if="scope.row.isDisplaceOrder"
-                  >置换</el-tag
-                >
-                <el-tag type="success" size="mini" v-if="scope.row.directTransferStatusName !== '非直调'">直调</el-tag>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="物料分组"
-              prop="materialGroupName"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="制单日期"
-              prop="createTime"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="订单日期"
-              prop="theTime"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="left" label="销售订单" prop="id" min-width="140" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.id" />
-                <span>{{ scope.row.id }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="经销商编码"
-              prop="customerNumber"
-              min-width="100"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <CopyButton :copyText="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 :copyText="scope.row.customerName" />
-                <span>{{ scope.row.customerName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="销售类型"
-              prop="saleTypeName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="left" label="物料编码" prop="materialCode" min-width="120" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="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 :copyText="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 :copyText="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 :copyText="scope.row.specification" />
-                <span>{{ scope.row.specification }}</span>
-              </template>
-            </el-table-column>
-
-            <el-table-column
-              align="left"
-              label="直调状态"
-              prop="directTransferStatusName"
-              min-width="100"
-              show-overflow-tooltip
-            >
-            </el-table-column>
-
-            <el-table-column
-              align="left"
-              label="钱包"
-              prop="walletName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="返利钱包"
-              prop="rebateWalletName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="订单未发货数量"
-              prop="refundableQty"
-              min-width="120"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="总数量"
-              prop="qty"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="退订数量"
-              prop="retiredQty"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="退货数量"
-              prop="refundProductQty"
-              min-width="100"
-              show-overflow-tooltip
-            ></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="110"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                {{ scope.row.payRebateAmount | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column align="right" label="发货金额" prop="hasSendAmount" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.hasSendAmount | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column align="right" label="发货数量" prop="hasSendQty" min-width="100" show-overflow-tooltip>
-              <template v-slot="{ row }">
-                {{ row.qty - (row.refundableQty || 0) }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="right"
-              label="格力折扣"
-              prop="totalDiscAmount"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="right" label="原供价" prop="orgPrice" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.orgPrice | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="right"
-              label="出库数量"
-              prop="hasSendQty"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="直调数量"
-              prop="directTransferQty"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="right" label="退订金额" prop="retiredAmount" min-width="100" show-overflow-tooltip>
-              <template slot-scope="scope">
-                {{ scope.row.retiredAmount | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="right"
-              label="退货金额"
-              prop="refundProductAmount"
-              min-width="100"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                {{ scope.row.refundProductAmount | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="表头业务员"
-              prop="serviceName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="表体业务员"
-              prop="itemServiceName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="归属业务员"
-              prop="newServiceName"
-              min-width="100"
-              show-overflow-tooltip
-            ></el-table-column>
-            <!-- <el-table-column align="left" label="订单备注" prop="headerRemark" min-width="160" show-overflow-tooltip></el-table-column> -->
-            <el-table-column
-              align="left"
-              label="表头备注"
-              prop="remark"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="表体备注"
-              prop="itemRemark"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="left" label="销售政策名称" prop="policyTitle" min-width="250" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.policyTitle" />
-                <span>{{ scope.row.policyTitle }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="销售政策编码" prop="policyCode" min-width="250" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.policyCode" />
-                <span>{{ scope.row.policyCode }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="所属集团"
-              prop="customerGroupName"
-              min-width="250"
-              show-overflow-tooltip
-            ></el-table-column>
-          </el-table>
-        </div>
-      </div>
-      <div class="pagination clearfix">
-        <div class="fr">
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="currentPage"
-            :page-sizes="[10, 20, 30, 50]"
-            :page-size="10"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="listTotal"
-          >
-          </el-pagination>
-        </div>
-      </div>
-    </div>
-
-    <DisplaceDetail :listItem="queryItem" v-if="isShowDisplaceDetail" @backListFormDetail="backList" />
-  </div>
-  <!-- <template-page
+  <template-page
     ref="pageRef"
     :getList="getList"
-    :operation="operation()"
-    :optionsEvensGroup="optionsEvensGroup"
     :exportList="exportList"
+    :optionsEvensGroup="optionsEvensGroup"
     :columnParsing="columnParsing"
     :tableAttributes="tableAttributes"
     :tableEvents="tableEvents"
   >
-  </template-page> -->
+    <div slot="moreSearch">
+      <el-radio-group @change="changeType" size="mini" v-model="radioType">
+        <el-radio-button label="政策零售订单"></el-radio-button>
+        <el-radio-button label="零售订单"></el-radio-button>
+        <el-radio-button label="家用工程订单"></el-radio-button>
+        <el-radio-button label="商用工程订单"></el-radio-button>
+      </el-radio-group>
+      <br /><br />
+    </div>
+    <Popu v-if="isShowDisplaceDetail">
+      <DisplaceDetail :listItem="queryItem" @backListFormDetail="backList" />
+    </Popu>
+  </template-page>
 </template>
 
 <script>
 import TemplatePage from '@/components/template/template-page-1.vue'
+import Popu from '@/components/template/popu.vue'
 
-import { getList } from '@/api/supply/implement'
+import {
+  getList,
+  retailExecRetailV2,
+  retailExecRetailV2Export,
+  retailExecPolicyListV2,
+  retailExecPolicyListV2Export
+} from '@/api/supply/implement'
 import { getCategoryList } from '@/api/common'
 import DisplaceDetail from '@/views/supply/implement/components/displace_detail'
 import { getNoRebateWalletList } from '@/api/policy_list'
@@ -491,7 +42,8 @@ let that
 export default {
   components: {
     DisplaceDetail,
-    TemplatePage
+    TemplatePage,
+    Popu
   },
   filters: {
     statusFilter(val) {
@@ -504,12 +56,13 @@ export default {
   },
   data() {
     return {
+      radioType: '政策零售订单',
       // 事件组合
       optionsEvensGroup: [],
       // 表格属性
       tableAttributes: {
         // 启用勾选列
-        selectColumn: true
+        selectColumn: false
       },
       // 表格事件
       tableEvents: {
@@ -590,17 +143,55 @@ export default {
   },
 
   created() {
-    this.getList()
-    this.getCategoryList()
+    // this.getList()
+    // this.getCategoryList()
   },
 
   methods: {
+    changeType() {
+      this.$refs.pageRef.refreshList()
+    },
     // 列表请求函数
-    // getList: levelList,
+    getList(...p) {
+      this.$refs.pageRef.showTable = false
+      if (this.radioType === '政策零售订单') {
+        return retailExecPolicyListV2(...p)
+      }
+      if (this.radioType === '零售订单') {
+        return retailExecRetailV2(...p)
+      }
+    },
+
     // 列表导出函数
-    // exportList: exportLevelList,
+    exportList() {
+      if (this.radioType === '政策零售订单') {
+        return retailExecPolicyListV2Export()
+      }
+      if (this.radioType === '零售订单') {
+        return retailExecRetailV2Export()
+      }
+    },
     // 表格列解析渲染数据更改
     columnParsing(item, defaultData) {
+      if (item.colName === 'is_displace_order') {
+        defaultData.render = (h, { row, index, column }) => {
+          return (
+            <div
+              onClick={() => {
+                console.log(11111)
+                this.openDisplaceDetail(row)
+              }}
+              style="display: flex;justify-content: center;align-items: center;"
+            >
+              {row.isDisplaceOrder === '是' ? (
+                <el-tag size="mini" type="warning">
+                  置换
+                </el-tag>
+              ) : null}
+            </div>
+          )
+        }
+      }
       return defaultData
     },
     // 监听勾选变化
@@ -620,44 +211,44 @@ export default {
     },
 
     // 查询列表
-    getList() {
-      this.listLoading = true
+    // getList() {
+    //   this.listLoading = true
 
-      let params = {
-        pageNum: this.currentPage,
-        pageSize: this.pageSize,
-        type: this.screenForm.status,
-        materialOldNumber: this.screenForm.goodsCode,
-        id: this.screenForm.saleNum,
-        customerName: this.screenForm.dealer,
-        materialName: this.screenForm.goodsName,
-        specification: this.screenForm.model,
-        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
-        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        orderStartTime: this.screenForm.orderDate ? this.screenForm.orderDate[0] : '',
-        orderEndTime: this.screenForm.orderDate ? this.screenForm.orderDate[1] : '',
-        serviceName: this.screenForm.serviceName,
-        newServiceName: this.screenForm.newServiceName,
-        itemServiceName: this.screenForm.itemServiceName,
-        projectName: this.screenForm.enginName,
-        enginRecordNo: this.screenForm.loginNum,
-        k3CategoryNumber: this.screenForm.k3CategoryNumber.join(','),
-        policyCode: this.screenForm.policyCode,
-        policyRemark: this.screenForm.policyRemark,
-        isOver: this.screenForm.isOver,
-        walletIds1: this.screenForm.walletIds1.join(','),
-        isDisplaceOrder: this.screenForm.isDisplaceOrder
-      }
-      getList(params).then(res => {
-        res.data.records.forEach(item => {
-          item.sums1 = ['refundableQty', 'qty', 'retiredQty', 'hasSendQty', 'directTransferQty', 'refundProductQty']
-          item.sums2 = ['payAmount', 'payRebateAmount', 'hasSendAmount', 'retiredAmount', 'refundProductAmount']
-        })
-        this.dataList = res.data.records
-        this.listTotal = res.data.total
-        this.listLoading = false
-      })
-    },
+    //   let params = {
+    //     pageNum: this.currentPage,
+    //     pageSize: this.pageSize,
+    //     type: this.screenForm.status,
+    //     materialOldNumber: this.screenForm.goodsCode,
+    //     id: this.screenForm.saleNum,
+    //     customerName: this.screenForm.dealer,
+    //     materialName: this.screenForm.goodsName,
+    //     specification: this.screenForm.model,
+    //     startTime: this.screenForm.date ? this.screenForm.date[0] : '',
+    //     endTime: this.screenForm.date ? this.screenForm.date[1] : '',
+    //     orderStartTime: this.screenForm.orderDate ? this.screenForm.orderDate[0] : '',
+    //     orderEndTime: this.screenForm.orderDate ? this.screenForm.orderDate[1] : '',
+    //     serviceName: this.screenForm.serviceName,
+    //     newServiceName: this.screenForm.newServiceName,
+    //     itemServiceName: this.screenForm.itemServiceName,
+    //     projectName: this.screenForm.enginName,
+    //     enginRecordNo: this.screenForm.loginNum,
+    //     k3CategoryNumber: this.screenForm.k3CategoryNumber.join(','),
+    //     policyCode: this.screenForm.policyCode,
+    //     policyRemark: this.screenForm.policyRemark,
+    //     isOver: this.screenForm.isOver,
+    //     walletIds1: this.screenForm.walletIds1.join(','),
+    //     isDisplaceOrder: this.screenForm.isDisplaceOrder
+    //   }
+    //   getList(params).then(res => {
+    //     res.data.records.forEach(item => {
+    //       item.sums1 = ['refundableQty', 'qty', 'retiredQty', 'hasSendQty', 'directTransferQty', 'refundProductQty']
+    //       item.sums2 = ['payAmount', 'payRebateAmount', 'hasSendAmount', 'retiredAmount', 'refundProductAmount']
+    //     })
+    //     this.dataList = res.data.records
+    //     this.listTotal = res.data.total
+    //     this.listLoading = false
+    //   })
+    // },
 
     // 获取存货类别列表
     getCategoryList() {

+ 56 - 552
src/views/supply/implement/nsales_list.vue

@@ -1,532 +1,36 @@
 <template>
-  <div class="app-container">
-    <div v-show="!isShowDetail && !isShowExamine && !isShowReturnForm">
-      <!-- 筛选条件 -->
-      <div class="screen-container">
-        <Collapse :screen-form="screenForm">
-          <template #right_btn>
-            <el-button size="mini" @click="resetScreenForm">清空</el-button>
-            <el-button size="mini" type="primary" @click="submitScreenForm">搜索</el-button>
-          </template>
-          <template #left_btn>
-            <el-radio-group v-model="screenForm.status" @change="getList()" size="mini">
-              <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>
-          </template>
-          <template #search>
-            <el-form ref="screenForm" :model="screenForm" label-width="120px" 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="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="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="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="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="chNum">
-                    <el-input v-model="screenForm.chNum" 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="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="date">
-                    <el-date-picker
-                      v-model="screenForm.date"
-                      type="datetimerange"
-                      :default-time="['00:00:00', '23:59:59']"
-                      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="approval">
-                    <el-date-picker
-                      v-model="screenForm.approval"
-                      type="datetimerange"
-                      :default-time="['00:00:00', '23:59:59']"
-                      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="printTime">
-                    <el-date-picker
-                      v-model="screenForm.printTime"
-                      type="datetimerange"
-                      :default-time="['00:00:00', '23:59:59']"
-                      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="printDesc">
-                    <el-select v-model="screenForm.printDesc" clearable filterable>
-                      <el-option label="默认" :value="null" />
-                      <el-option label="倒叙" :value="1" />
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="出库单号" prop="id">
-                    <el-input v-model="screenForm.id" placeholder="请输入出库单号" />
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="金蝶推送状态" prop="syncStatus">
-                    <el-select v-model="screenForm.syncStatus" clearable filterable>
-                      <el-option label="未推送" :value="0" />
-                      <el-option label="推送成功" :value="1" />
-                      <el-option label="失败推送" :value="-1" />
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :lg="6">
-                  <el-form-item label="产品类别" prop="categoryId">
-                    <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="invoiceDate">
-                    <el-date-picker
-                      v-model="screenForm.invoiceDate"
-                      type="datetimerange"
-                      :default-time="['00:00:00', '23:59:59']"
-                      range-separator="至"
-                      style="width: 100%"
-                      value-format="yyyy-MM-dd HH:mm:ss"
-                      start-placeholder="开始日期"
-                      end-placeholder="结束日期"
-                    />
-                  </el-form-item>
-                </el-col>
-              </el-row>
-            </el-form>
-          </template>
-        </Collapse>
-      </div>
-
-      <div class="mymain-container">
-        <div class="btn-group clearfix">
-          <div class="fl">
-            <!-- <el-button size="mini" type="primary" icon="el-icon-plus" @click="toReturnForm()" v-if="$checkBtnRole('refund', $route.meta.roles)">退货申请</el-button>-->
-            <!-- <el-button size="mini" type="warning" icon="el-icon-finished" @click="batchExamine" :disabled="multipleSelection.length < 1" v-if="$checkBtnRole('examine', $route.meta.roles)">批量审批</el-button>-->
-          </div>
-          <div class="fr">
-            <ExportButton :ex-url="'sale/order/export'" :ex-params="exParams" />
-          </div>
-        </div>
-        <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="dataList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            stripe
-            show-summary
-            :summary-method="$getSummaries"
-            @selection-change="handleSelectionChange"
-          >
-            <!-- <el-table-column align="center" type="selection" width="55"></el-table-column>-->
-            <el-table-column
-              align="left"
-              label="金蝶推送状态"
-              prop="syncStatus"
-              min-width="130"
-              show-overflow-tooltip
-              sortable
-            >
-              <template slot-scope="scope">
-                {{ scope.row.syncStatus == 0 ? '未推送' : scope.row.syncStatus == 1 ? '推送成功' : '失败推送' }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="状态"
-              prop="examineStatus"
-              min-width="100"
-              show-overflow-tooltip
-              sortable
-            >
-              <template slot-scope="scope">
-                {{ scope.row.examineStatus | statusFilter }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="打印时间"
-              prop="printTime"
-              min-width="100"
-              show-overflow-tooltip
-              sortable
-            />
-            <el-table-column
-              align="left"
-              label="发货日期"
-              prop="invoiceOrderTime"
-              min-width="100"
-              show-overflow-tooltip
-              sortable
-            />
-
-            <el-table-column
-              align="left"
-              label="订单类型"
-              prop="orderType"
-              min-width="100"
-              show-overflow-tooltip
-              sortable
-            >
-              <template slot-scope="scope">
-                {{ scope.row.orderType | orderTypeFilter }}
-              </template>
-            </el-table-column>
-            <!-- <el-table-column align="left" label="开票状态" prop="billStatus" min-width="100" show-overflow-tooltip sortable>
-              <template slot-scope="scope">
-                {{scope.row.billStatus | billStatusFilter}}
-              </template>
-            </el-table-column> -->
-            <el-table-column
-              align="left"
-              label="发票号"
-              prop="billReceipt"
-              min-width="250"
-              show-overflow-tooltip
-              sortable
-            >
-              <template slot-scope="scope">
-                {{ scope.row.billReceipt }}
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="出库单号" prop="id" min-width="110" show-overflow-tooltip sortable>
-              <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="orderNo"
-              min-width="130"
-              show-overflow-tooltip
-              sortable
-            >
-              <template slot-scope="scope">
-                <CopyButton :copy-text="scope.row.orderNo" />
-                <span>{{ scope.row.orderNo }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="订单号" prop="orderNo" min-width="140" show-overflow-tooltip sortable>
-              <template slot-scope="scope">
-                <CopyButton
-                  :copy-text="
-                    scope.row.orderType === 'TRADE' ||
-                    scope.row.orderType === 'HOME' ||
-                    scope.row.orderType === 'REQUISITION_TRADE' ||
-                    scope.row.orderType === 'REQUISITION_HOME'
-                      ? scope.row.enginOrderNo
-                      : scope.row.mainOrderId
-                  "
-                />
-                <span>{{
-                  scope.row.orderType === 'TRADE' ||
-                  scope.row.orderType === 'HOME' ||
-                  scope.row.orderType === 'REQUISITION_TRADE' ||
-                  scope.row.orderType === 'REQUISITION_HOME'
-                    ? scope.row.enginOrderNo
-                    : scope.row.mainOrderId
-                }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="仓库"
-              prop="correspondName"
-              min-width="100"
-              show-overflow-tooltip
-              sortable
-            />
-            <el-table-column
-              align="left"
-              label="经销商编码"
-              prop="customerNumber"
-              min-width="120"
-              show-overflow-tooltip
-              sortable
-            >
-              <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
-              sortable
-            >
-              <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="saleTypeName"
-              min-width="100"
-              show-overflow-tooltip
-              sortable
-            />
-            <el-table-column
-              align="left"
-              label="物料编码"
-              prop="materialCode"
-              min-width="120"
-              show-overflow-tooltip
-              sortable
-            >
-              <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
-              sortable
-            >
-              <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
-              sortable
-            >
-              <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
-              sortable
-            >
-              <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="unit" min-width="100" show-overflow-tooltip sortable />
-            <el-table-column
-              align="right"
-              label="数量"
-              prop="refundableQty"
-              min-width="100"
-              show-overflow-tooltip
-              sortable
-            />
-            <el-table-column align="right" label="单价" prop="price" min-width="100" show-overflow-tooltip sortable>
-              <template slot-scope="scope">
-                {{ scope.row.price | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="right"
-              label="订单金额"
-              prop="payAmount"
-              min-width="100"
-              show-overflow-tooltip
-              sortable
-            >
-              <template slot-scope="scope">
-                {{ scope.row.payAmount | numToFixed }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="订单备注"
-              prop="headerRemark"
-              min-width="160"
-              show-overflow-tooltip
-              sortable
-            />
-            <el-table-column
-              align="left"
-              label="审核时间"
-              prop="approvalTime"
-              min-width="150"
-              show-overflow-tooltip
-              sortable
-            />
-
-            <el-table-column
-              align="left"
-              label="发货申请备注"
-              prop="remark"
-              min-width="160"
-              show-overflow-tooltip
-              sortable
-            />
-            <el-table-column
-              align="left"
-              label="表体备注"
-              prop="invoiceRemark"
-              min-width="160"
-              show-overflow-tooltip
-              sortable
-            />
-            <el-table-column
-              align="left"
-              label="业务员"
-              prop="serviceName"
-              min-width="120"
-              show-overflow-tooltip
-              sortable
-            />
-            <el-table-column
-              align="left"
-              label="表头业务员"
-              prop="k3ServiceName"
-              min-width="120"
-              show-overflow-tooltip
-              sortable
-            />
-            <!-- <el-table-column align="center" label="操作" width="120" fixed="right">
-              <template slot-scope="scope">
-                <el-button type="text" @click="toDetail(scope.row)">详情</el-button>
-                <el-button type="text" @click="toExamine(scope.row)" v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'WAIT'">审批</el-button>
-                <el-popconfirm
-                  style="margin-left: 10px;"
-                  title="确定弃审吗?"
-                  @onConfirm="handleAbandon(scope.row.id)"
-                  v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'OK'" >
-                  <el-button slot="reference" type="text">弃审</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" />
-
-    <SalesDetail v-if="isShowDetail" :list-item="queryItem" @backListFormDetail="backList" />
-    <SalesExamine v-if="isShowExamine" :list-item="queryItem" @backListFormExamine="backList" />
-    <SalesReturnForm v-if="isShowReturnForm" :list-item="queryItem" @backListFormDetail="backList" />
-  </div>
-  <!-- <template-page
+  <template-page
     ref="pageRef"
     :getList="getList"
-    :operation="operation()"
     :optionsEvensGroup="optionsEvensGroup"
     :exportList="exportList"
     :columnParsing="columnParsing"
     :tableAttributes="tableAttributes"
     :tableEvents="tableEvents"
   >
-  </template-page> -->
+  </template-page>
 </template>
 
 <script>
 import TemplatePage from '@/components/template/template-page-1.vue'
 
-import { abandonData, examineBatch, examineJudge, getList } from '@/api/supply/sales'
-import SalesDetail from '@/views/supply/sales/components/sales_detail'
-import SalesExamine from '@/views/supply/sales/components/sales_examine'
-import SalesReturnForm from '@/views/supply/sales/components/sales_return_form'
-import ExamineDialog from '@/components/Common/examine-dialog'
+import {
+  abandonData,
+  examineBatch,
+  examineJudge,
+  getList,
+  saleOrderListV2,
+  saleOrderListV2Export
+} from '@/api/supply/sales'
+// import SalesDetail from '@/views/supply/sales/components/sales_detail'
+// import SalesExamine from '@/views/supply/sales/components/sales_examine'
+// import SalesReturnForm from '@/views/supply/sales/components/sales_return_form'
+// import ExamineDialog from '@/components/Common/examine-dialog'
 import { getCategoryList } from '@/api/common'
 
 let that
 export default {
   components: {
-    SalesDetail,
-    SalesExamine,
-    SalesReturnForm,
-    ExamineDialog,
     TemplatePage
   },
   filters: {
@@ -559,7 +63,7 @@ export default {
       // 表格属性
       tableAttributes: {
         // 启用勾选列
-        selectColumn: true
+        selectColumn: false
       },
       // 表格事件
       tableEvents: {
@@ -676,15 +180,15 @@ export default {
   },
 
   created() {
-    this.getList()
-    this.getCategoryList()
+    // this.getList()
+    // this.getCategoryList()
   },
 
   methods: {
     // 列表请求函数
-    // getList: levelList,
+    getList: saleOrderListV2,
     // 列表导出函数
-    // exportList: exportLevelList,
+    exportList: saleOrderListV2Export,
     // 表格列解析渲染数据更改
     columnParsing(item, defaultData) {
       return defaultData
@@ -706,44 +210,44 @@ export default {
     },
 
     // 查询列表
-    getList() {
-      this.listLoading = true
+    // getList() {
+    //   this.listLoading = true
 
-      const params = {
-        pageNum: this.currentPage,
-        pageSize: this.pageSize,
-        examineStatus: this.screenForm.status,
-        orderNo: this.screenForm.orderNum,
-        customerName: this.screenForm.jxsName,
-        customerNumber: this.screenForm.jxsNum,
-        materialName: this.screenForm.chName,
-        materialNumber: this.screenForm.chNum,
-        specification: this.screenForm.model,
-        correspondName: this.screenForm.warehouse,
-        syncStatus: this.screenForm.syncStatus,
-        categoryId: this.screenForm.categoryId,
-        invoiceStartTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[0] : '',
-        invoiceEndTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[1] : '',
-        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
-        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        approvalStartTime: this.screenForm.approval ? this.screenForm.approval[0] : '',
-        approvalEndTime: this.screenForm.approval ? this.screenForm.approval[1] : '',
-        printStartTime: this.screenForm.printTime ? this.screenForm.printTime[0] : '',
-        printEndtTime: this.screenForm.printTime ? this.screenForm.printTime[1] : '',
-        printTimeDesc: this.screenForm.printDesc,
-        mainOrderId: this.screenForm.mainOrderId,
-        id: this.screenForm.id
-      }
-      getList(params).then(res => {
-        res.data.records.forEach(item => {
-          item.sums1 = ['refundableQty']
-          item.sums2 = ['price', 'payAmount']
-        })
-        this.dataList = res.data.records
-        this.listTotal = res.data.total
-        this.listLoading = false
-      })
-    },
+    //   const params = {
+    //     pageNum: this.currentPage,
+    //     pageSize: this.pageSize,
+    //     examineStatus: this.screenForm.status,
+    //     orderNo: this.screenForm.orderNum,
+    //     customerName: this.screenForm.jxsName,
+    //     customerNumber: this.screenForm.jxsNum,
+    //     materialName: this.screenForm.chName,
+    //     materialNumber: this.screenForm.chNum,
+    //     specification: this.screenForm.model,
+    //     correspondName: this.screenForm.warehouse,
+    //     syncStatus: this.screenForm.syncStatus,
+    //     categoryId: this.screenForm.categoryId,
+    //     invoiceStartTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[0] : '',
+    //     invoiceEndTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[1] : '',
+    //     startTime: this.screenForm.date ? this.screenForm.date[0] : '',
+    //     endTime: this.screenForm.date ? this.screenForm.date[1] : '',
+    //     approvalStartTime: this.screenForm.approval ? this.screenForm.approval[0] : '',
+    //     approvalEndTime: this.screenForm.approval ? this.screenForm.approval[1] : '',
+    //     printStartTime: this.screenForm.printTime ? this.screenForm.printTime[0] : '',
+    //     printEndtTime: this.screenForm.printTime ? this.screenForm.printTime[1] : '',
+    //     printTimeDesc: this.screenForm.printDesc,
+    //     mainOrderId: this.screenForm.mainOrderId,
+    //     id: this.screenForm.id
+    //   }
+    //   getList(params).then(res => {
+    //     res.data.records.forEach(item => {
+    //       item.sums1 = ['refundableQty']
+    //       item.sums2 = ['price', 'payAmount']
+    //     })
+    //     this.dataList = res.data.records
+    //     this.listTotal = res.data.total
+    //     this.listLoading = false
+    //   })
+    // },
     // updateReceipt() {
     //   if (!this.value1) {
     //     this.$errorMsg('请选择时间')

+ 16 - 13
src/views/supply/price/components/modify_list-apply.vue

@@ -534,7 +534,7 @@
       <el-button style="float: right" type="primary" size="small" @click="centerDialogVisible = true">添加 </el-button>
     </div>
 
-    <el-dialog title="" :visible.sync="centerDialogVisible" width="80%" center>
+    <el-dialog title="" append-to-body :visible.sync="centerDialogVisible" width="80%" center>
       <div>
         <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
           <el-row :gutter="20">
@@ -641,7 +641,7 @@ import Mixin from '@/mixin/index'
 
 export default {
   mixins: [Mixin],
-  props: ['cid'],
+  props: ['cid', 'show'],
   data() {
     return {
       baseURL: '',
@@ -796,10 +796,11 @@ export default {
       this.serviceId = adminCompany.roleId
     },
     goBack() {
-      this.$parent.cid = ''
-      this.$parent.show = 1
+      // this.$parent.cid = ''
+      // this.show = 1
       // 更新父组件数据
-      this.$parent.getList()
+      // this.getList()
+      this.$emit('back')
     },
     indexMethod(index) {
       console.log(index)
@@ -965,7 +966,7 @@ export default {
         wall.data[u].walletName = wall.data[u].name
       }
       this.walleList = wall.data
-      if (this.$parent.show === 5) {
+      if (this.show === 5) {
         getProductRriceDetail({ id: this.cid }).then(res => {
           for (let i = 0; i < res.data.items.length; i++) {
             const linshi = []
@@ -1094,13 +1095,14 @@ export default {
       }
       getProductRriceAdd(params)
         .then(res => {
-          console.log(res.code, 'klkk')
+          // console.log(res.code, 'klkk')
           this.$successMsg('成功')
-          this.$parent.show = 1
-          this.$parent.getList()
+          // this.$parent.show = 1
+          // this.$parent.getList()
+          this.goBack()
         })
         .catch(err => {
-          console.log(err)
+          // console.log(err)
           for (let j = 0; j < this.items.length; j++) {
             this.$set(this.items[j], 'wallets', [])
           }
@@ -1120,9 +1122,10 @@ export default {
       })
         .then(res => {
           this.$successMsg('成功')
-          this.$parent.cid = ''
-          this.$parent.show = 1
-          this.$parent.getList()
+          // this.$parent.cid = ''
+          // this.$parent.show = 1
+          // this.$parent.getList()
+          this.goBack()
         })
         .catch(err => {
           for (let j = 0; j < this.items.length; j++) {

+ 6 - 4
src/views/supply/price/components/modify_list-approval.vue

@@ -230,8 +230,9 @@ export default {
       })[0]?.saleName
     },
     goBack() {
-      console.log(this.$parent)
-      this.$parent.show = 1
+      // console.log(this.$parent)
+      // this.$parent.show = 1
+      this.$emit('back')
     },
     onSubmit() {
       console.log(this.radio)
@@ -244,8 +245,9 @@ export default {
 
       getProductRriceConfirm(params).then(res => {
         this.$successMsg('已提交审核')
-        this.$parent.show = 1
-        this.$parent.getList()
+        // this.$parent.show = 1
+        // this.$parent.getList()
+        this.goBack()
       })
     },
     resetScreenForm() {

+ 3 - 2
src/views/supply/price/components/modify_list-detail.vue

@@ -235,8 +235,9 @@ export default {
       })[0]?.saleName
     },
     goBack() {
-      console.log(this.$parent)
-      this.$parent.show = 1
+      // console.log(this.$parent)
+      // this.$parent.show = 1
+      this.$emit('back')
     }
   }
 }

+ 245 - 457
src/views/supply/price/difference_modify_list.vue

@@ -1,452 +1,141 @@
 <template>
-  <div class="app-container">
-    <div v-if="show === 1">
-      <!-- 筛选条件 -->
-      <div>
-        <div>
-          <Collapse :screen-form="screenForm">
-            <template #right_btn>
-              <el-button size="mini" @click="resetScreenForm">清空</el-button>
-              <el-button size="mini" type="primary" @click="submitScreenForm">搜索</el-button>
-            </template>
-            <template #search>
-              <el-form ref="screenForm" :model="screenForm" label-width="70px" size="mini" label-position="left">
-                <el-row :gutter="20">
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="物料编码" prop="materialNumber">
-                      <el-input placeholder="请输入物料编码" v-model="screenForm.materialNumber"></el-input>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="产品名称" prop="materialName">
-                      <el-input placeholder="请输入产品名称" v-model="screenForm.materialName"></el-input>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="产品编码" prop="materialOldNumber">
-                      <el-input placeholder="请输入产品编码" v-model="screenForm.materialOldNumber"></el-input>
-                    </el-form-item>
-                  </el-col>
-                  <!--              <el-col :xs="24" :sm="12" :lg="6">-->
-                  <!--                <el-form-item label="生效日期" prop="startDate">-->
-                  <!--                  <el-date-picker-->
-                  <!--                    v-model="screenForm.startDate"-->
-                  <!--                    type="datetime"-->
-                  <!--                    placeholder="请输入生效日期"-->
-                  <!--                    value-format="yyyy-MM-dd HH:mm:ss"-->
-                  <!--                  >-->
-                  <!--                  </el-date-picker>-->
-                  <!--                </el-form-item>-->
-                  <!--              </el-col>-->
-                  <!--              <el-col :xs="24" :sm="12" :lg="6">-->
-                  <!--                <el-form-item label="失效日期" prop="endDate">-->
-                  <!--                  <el-date-picker-->
-                  <!--                    v-model="screenForm.endDate"-->
-                  <!--                    type="datetime"-->
-                  <!--                    placeholder="请输入生效日期"-->
-                  <!--                    value-format="yyyy-MM-dd HH:mm:ss "-->
-                  <!--                  >-->
-                  <!--                  </el-date-picker>-->
-                  <!--                </el-form-item>-->
-                  <!--              </el-col>-->
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="销售类型" prop="saleTypeId">
-                      <el-select
-                        v-model="screenForm.saleTypeId"
-                        filterable
-                        placeholder="选择销售类型"
-                        style="width: 100%"
-                      >
-                        <el-option label="全部" value=""></el-option>
-                        <el-option
-                          v-for="item in typeList"
-                          :key="item.id"
-                          :label="item.saleName"
-                          :value="item.id"
-                        ></el-option>
-                      </el-select>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="产品类别" prop="k3CategoryNumber">
-                      <el-select style="width: 100%" placeholder="请选择产品类别" v-model="screenForm.k3CategoryNumber">
-                        <el-option label="全部" value=""></el-option>
-                        <el-option v-for="item in dictList" :label="item.name" :value="item.number"></el-option>
-                      </el-select>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="规格型号" prop="specification">
-                      <el-input placeholder="请输入规格型号" v-model="screenForm.specification"></el-input>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="备注" prop="remark">
-                      <el-input placeholder="请输入备注" v-model="screenForm.remark"></el-input>
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-              </el-form>
-            </template>
-          </Collapse>
-        </div>
-      </div>
-      <!-- 按钮 -->
-      <div class="btn-group clearfix">
-        <div class="fl">
-          <el-button
-            type="primary"
-            v-if="$checkBtnRole('add', $route.meta.roles)"
-            icon="el-icon-plus"
-            size="mini"
-            @click="addFn"
-            >新增</el-button
-          >
-          <!-- <el-button type="primary" size="mini">编辑</el-button> -->
-          <el-upload
-            style="margin-bottom: 10px"
-            class="import-btn"
-            :action="baseURL + 'student/import'"
-            :http-request="handleImport"
-            :file-list="importFileList"
-            :show-file-list="false"
-            :disabled="importLoading"
-            v-loading="importLoading"
-          >
-            <el-button type="primary" size="mini">导入调价单 </el-button>
-          </el-upload>
-          <el-button type="primary" size="mini" @click="hanleDownloadFiles">下载模板 </el-button>
-          <el-popconfirm
-            v-if="$checkBtnRole('del', $route.meta.roles)"
-            confirm-button-text="好的"
-            cancel-button-text="不用了"
-            icon="el-icon-info"
-            icon-color="red"
-            title="内容确定删除吗?"
-            style="margin-right: 10px"
-            @onConfirm="hanleDeleteAll"
-          >
-            <el-button type="primary" size="mini" icon="el-icon-delete" slot="reference" class="el-popover-left"
-              >删除</el-button
-            >
-          </el-popconfirm>
-          <el-button
-            size="mini"
-            v-if="$checkBtnRole('examine', $route.meta.roles)"
-            type="warning"
-            icon="el-icon-finished"
-            @click="batchExamine"
-            >批量审批</el-button
-          >
-        </div>
-        <div class="fr">
-          <ExportButton :exUrl="'product-upd-price/export'" :exParams="exParams" />
-          <!-- <el-button type="primary" size="mini">导入</el-button>
-          <el-button type="primary" size="mini">导出</el-button>
-          <el-button type="primary" size="mini">打印</el-button> -->
-        </div>
-      </div>
-      <div class="mymain-container">
-        <!-- 列表 -->
-        <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="dataList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            @select-all="hanleSelectAll"
-            @select="hanleSelectAll"
-            :row-class-name="tableRowClassName"
-          >
-            <el-table-column type="selection" align="left" width="50"></el-table-column>
-            <el-table-column align="left" label="单据号" prop="updPriceBillId" min-width="200" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.updPriceBillId" />
-                <span>{{ scope.row.updPriceBillId }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="备注"
-              prop="remark"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="销售类型"
-              prop="saleTypeName"
-              :formatter="formatterType"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <!-- <el-table-column
-              align="left"
-              label="产品类别"
-              prop="mainName"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column> -->
-            <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="160" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialNumber" />
-                <span>{{ scope.row.materialNumber }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="产品名称" prop="materialName" min-width="200" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialName" />
-                <span>{{ scope.row.materialName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="产品编码"
-              prop="materialOldNumber"
-              min-width="200"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialOldNumber" />
-                <span>{{ scope.row.materialOldNumber }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="规格型号" prop="specification" min-width="200" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.specification" />
-                <span>{{ scope.row.specification }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="计量单位"
-              prop="unit"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <!-- <el-table-column
-              align="right"
-              label="数量"
-              prop="qty"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column> -->
-            <el-table-column
-              align="right"
-              label="单价"
-              prop="batchPrice"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-
-            <!-- <el-table-column
-              align="right"
-              label="格力折扣"
-              prop="discAmount"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column> -->
-            <el-table-column
-              align="left"
-              label="调价日期"
-              prop="createTime"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="生效日期"
-              prop="startDate"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="失效日期"
-              prop="endDate"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <!-- <el-table-column
-              align="left"
-              label="是否促销价"
-              prop="isPromote"
-              min-width="160"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <el-tag size="mini" type="success" v-if="scope.row.isPromote">是</el-tag>
-                <el-tag size="mini"  type="danger" v-else>否</el-tag>
-              </template>
-            </el-table-column> -->
-            <!-- <el-table-column
-              align="left"
-              label="返利类型(钱包)"
-              prop="wallets"
-              min-width="200"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <template v-for="(item, index) in scope.row.wallets">
-                     <template v-if="item.type === 'REBATE'">
-                        <el-tag
-                  type="success"
-                  style="margin: 0 10px"
-                  size="mini"
-
-                  :key="index"
-                  >
-               {{ item.walletName }}
-                </el-tag>
-                  </template
-                  >
-                </template>
+  <template-page
+    ref="pageRef"
+    :getList="getList"
+    :operation="operation()"
+    :optionsEvensGroup="optionsEvensGroup"
+    :exportList="exportList"
+    :columnParsing="columnParsing"
+    :tableAttributes="tableAttributes"
+    :tableEvents="tableEvents"
+  >
+    <ExamineDialog @submit="submitExamineForm" :isShow.sync="isShowExamineDialog" :examineForm.sync="examineForm" />
 
-              </template>
-            </el-table-column> -->
-            <!-- <el-table-column
-              align="left"
-              label="现金钱包"
-              prop="modifyPriceDepartment"
-              min-width="200"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <template  v-for="(item, index) in scope.row.wallets">
-                  <template v-if="item.type === 'COMMONLY'">
-
-                   <el-tag
-                  type="success"
-                  style="margin: 0 10px"
-                  size="mini"
-
-                  :key="index"
-                >
-                {{ item.walletName }}
-                </el-tag>
-                    </template
-                  >
-                </template>
-
-              </template>
-            </el-table-column> -->
-            <el-table-column
-              align="left"
-              label="调价部门"
-              prop="adminWebsitName"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="调价业务员"
-              prop="serviceName"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="制单日期"
-              prop="createTime"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="审核人"
-              prop="confirmName"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="审核日期"
-              prop="confirmTime"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="left" label="状态" prop="examineStatus" min-width="160" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <el-tag size="mini" type="success" v-if="scope.row.examineStatus == 'SAVE'">保存</el-tag>
-                <el-tag size="mini" type="danger" v-else-if="scope.row.examineStatus == 'WAIT'">待审核</el-tag>
-                <el-tag size="mini" type="danger" v-else-if="scope.row.examineStatus == 'OK'">通过</el-tag>
-                <el-tag size="mini" type="danger" v-else-if="scope.row.examineStatus == 'FAIL'">不通过</el-tag>
-                <el-tag size="mini" type="danger" v-else>审核</el-tag>
-              </template>
-            </el-table-column>
-            <el-table-column align="center" label="操作" fixed="right" min-width="160" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <template v-if="scope.row.examineStatus == 'SAVE'">
-                  <el-popconfirm
-                    title="确定提审吗?"
-                    @onConfirm="handleGetPriceSubmit(scope.row.updPriceBillId)"
-                    style="margin-right: 10px"
-                  >
-                    <el-button type="text" slot="reference">提审</el-button>
-                  </el-popconfirm>
-                </template>
-                <template v-if="scope.row.examineStatus == 'WAIT'">
-                  <el-button type="text" class="textColor" @click="approvalFn(scope.row.updPriceBillId)"
-                    >审批</el-button
-                  >
-                </template>
-                <el-button
-                  v-if="scope.row.examineStatus == 'SAVE'"
-                  type="text"
-                  class="textColor"
-                  @click="editFn(scope.row.updPriceBillId, scope.row)"
-                  >编辑</el-button
-                >
-                <el-button type="text" class="textColor" @click="detailFn(scope.row.updPriceBillId)">详情</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-        <!-- 分页 -->
-        <div class="fr">
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="currentPage"
-            :page-sizes="[10, 20, 30, 50]"
-            :page-size="10"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="listTotal"
-          >
-          </el-pagination>
-        </div>
-      </div>
-    </div>
-    <ModifyListApply v-else-if="show === 2 || show == 5" :cid="cid" />
-    <ModifyListApproval v-else-if="show === 3" :detail="detail" />
-    <ModifyListDetail v-else :detail="detail" />
-    <ExamineDialog :isShow.sync="isShowExamineDialog" :examineForm.sync="examineForm" />
-  </div>
+    <Popu v-if="show !== 1">
+      <!-- <el-page-header slot="head" :content="content" @back="handleClose" /> -->
+      <ModifyListApply v-if="show === 2 || show == 5" :cid="cid" :show="show" @back="handleClose" />
+      <ModifyListApproval v-if="show === 3" :detail="detail" @back="handleClose" />
+      <ModifyListDetail v-if="show === 4" :detail="detail" @back="handleClose" />
+    </Popu>
+  </template-page>
 </template>
 
 <script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import Popu from '@/components/template/popu.vue'
+import import_mixin from '@/components/template/import_mixin.js'
+import add_callback_mixin from '@/components/template/add_callback_mixin.js'
+
 import ModifyListApply from './components/modify_list-apply.vue'
 import ModifyListApproval from './components/modify_list-approval.vue'
 import ModifyListDetail from './components/modify_list-detail.vue'
 import ExamineDialog from '@/components/Common/examine-dialog'
-import Mixin from '@/mixin/index'
+// import Mixin from '@/mixin/index'
 import {
   getPriceSubmit,
   getProductRricedel,
   getProductRriceDetail,
   getProductRriceList,
   getTypeList,
-  examineData
+  examineData,
+  v2ProductUpdPriceList,
+  v2ProductUpdPriceListExport,
+  productUpdPriceDownload,
+  productUpdPriceMaterialImport
 } from '@/api/basic_data/material'
-import { downloadFiles, handleImport } from '@/utils/util'
+// import { downloadFiles, handleImport } from '@/utils/util'
 import { getCategoryList } from '@/api/common'
 
 export default {
-  mixins: [Mixin],
+  mixins: [import_mixin, add_callback_mixin],
   data() {
     return {
+      handleClose: this.addOff(() => {
+        if (this.show === 2 || this.show === 5) {
+          this.cid = ''
+          this.show = 1
+        }
+        this.show = 1
+        this.$refs.pageRef.refreshList()
+      }),
+      // 事件组合
+      optionsEvensGroup: [
+        [
+          [
+            {
+              name: '新增',
+              click: this.addOn(() => {
+                this.addFn()
+              })
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '批量删除',
+              click: async () => {
+                if (this.recordSelected.length === 0) {
+                  this.$message.error('请选择需要删除的数据')
+                  return
+                }
+                this.hanleDeleteAll()
+              },
+              isRole: this.$checkBtnRole('del', this.$route.meta.roles)
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '批量审批',
+              click: async () => {
+                this.batchExamine()
+              }
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '',
+              render: this.importButton(productUpdPriceMaterialImport, '导入', {
+                billType: 'GENERAL'
+              })
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '导入模版',
+              click: () => {
+                productUpdPriceDownload({}, `${this.$route.meta.title}`)
+                  .then(res => {
+                    this.$message({
+                      message: '下载成功',
+                      type: 'success'
+                    })
+                  })
+                  .catch(err => {
+                    this.$message.error('下载失败')
+                  })
+              }
+            }
+          ]
+        ]
+      ],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: true
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: [],
+
       baseURL: '',
       importFileList: [],
       show: 1,
@@ -523,7 +212,9 @@ export default {
     ExamineDialog,
     ModifyListApply,
     ModifyListApproval,
-    ModifyListDetail
+    ModifyListDetail,
+    TemplatePage,
+    Popu
   },
   computed: {
     exParams() {
@@ -557,6 +248,89 @@ export default {
     })
   },
   methods: {
+    // 列表请求函数
+    getList(...p) {
+      let params = {
+        moduleId: p[0].moduleId,
+        orderBy: p[0].orderBy,
+        pageNum: p[0].pageNum,
+        pageSize: p[0].pageSize,
+        params: [...p[0].params, { param: 'a.bill_type', compare: '=', value: 'DIFF' }]
+      }
+      return v2ProductUpdPriceList(params)
+    },
+    // 列表导出函数
+    exportList: v2ProductUpdPriceListExport,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return (
+          <div class="operation-btns">
+            {row.examineStatus == '保存' ? (
+              <el-popconfirm
+                onOnConfirm={async () => {
+                  this.handleGetPriceSubmit(row.updPriceBillId)
+                }}
+                title="是否确定需要提审该项内容?"
+              >
+                <el-button slot="reference" size="mini" type="text">
+                  提审
+                </el-button>
+              </el-popconfirm>
+            ) : (
+              ''
+            )}
+
+            {row.examineStatus == '待审核' ? (
+              <el-popconfirm
+                onOnConfirm={async () => {
+                  this.approvalFn(row.updPriceBillId)
+                }}
+                title="是否确定需要审批该项内容?"
+              >
+                <el-button slot="reference" size="mini" type="text">
+                  审批
+                </el-button>
+              </el-popconfirm>
+            ) : (
+              ''
+            )}
+
+            {row.examineStatus == '保存' ? (
+              <el-button
+                size="mini"
+                type="text"
+                onClick={async () => {
+                  this.editFn(row.updPriceBillId, row)
+                }}
+              >
+                编辑
+              </el-button>
+            ) : (
+              ''
+            )}
+
+            <el-button
+              size="mini"
+              type="text"
+              onClick={async () => {
+                this.detailFn(row.updPriceBillId)
+              }}
+            >
+              详情
+            </el-button>
+          </div>
+        )
+      }
+    },
+
     formatterType(row) {
       for (let i = 0; i < this.typeList.length; i++) {
         if (this.typeList[i].id == row.saleTypeId) {
@@ -567,17 +341,29 @@ export default {
     addFn() {
       this.show = 2
     },
+
+    hanleDeleteAllPromise(id) {
+      return new Promise((resolve, reject) => {
+        const ids = id ? [id] : this.recordSelected.map(v => v.updPriceBillId)
+        if (!ids.length) {
+          this.$errorMsg('请选择删除内容')
+          return
+        }
+        resolve(ids)
+      })
+    },
     hanleDeleteAll(id) {
       this.hanleDeleteAllPromise(id).then(ids => {
         getProductRricedel(ids).then(res => {
           this.$successMsg('删除成功')
-          this.getList()
+          // this.getList()
+          this.$refs.pageRef.refreshList()
         })
       })
     },
     // 打开 批量审批
     batchExamine() {
-      if (this.ids.length) {
+      if (this.recordSelected.length) {
         this.isShowExamineDialog = true
         return
       }
@@ -588,7 +374,7 @@ export default {
       // let ids = this.dis.map(item => {
       //   return item
       // });
-      const ids = [...new Set(this.ids)]
+      const ids = [...new Set(this.recordSelected.map(v => v.updPriceBillId))]
       examineData({
         ids: ids.join(','),
         examineStatus: this.examineForm.status,
@@ -596,14 +382,16 @@ export default {
       }).then(res => {
         this.isShowExamineDialog = false
         this.$successMsg('修改成功')
-        this.getList()
+        // this.getList()
+        this.$refs.pageRef.refreshList()
       })
     },
     handleGetPriceSubmit(id) {
-      console.log(id)
+      // console.log(id)
       getPriceSubmit({ ids: id }).then(res => {
         this.$successMsg('已提审')
-        this.getList()
+        // this.getList()
+        this.$refs.pageRef.refreshList()
       })
     },
     approvalFn(id) {
@@ -619,28 +407,28 @@ export default {
         this.show = 4
       })
     },
-    getList() {
-      this.listLoading = true
-      console.log(456654)
-      let params = {
-        pageNum: this.currentPage,
-        pageSize: this.pageSize,
-        materialName: this.screenForm.materialName,
-        materialNumber: this.screenForm.materialNumber,
-        startDate: this.screenForm.startDate,
-        materialOldNumber: this.screenForm.materialOldNumber,
-        saleTypeId: this.screenForm.saleTypeId,
-        k3CategoryNumber: this.screenForm.k3CategoryNumber,
-        specification: this.screenForm.specification,
-        remark: this.screenForm.remark,
-        billType: 'DIFF'
-      }
-      getProductRriceList(params).then(res => {
-        this.dataList = res.data.records
-        this.listTotal = res.data.total
-        this.listLoading = false
-      })
-    },
+    // getList() {
+    //   this.listLoading = true
+    //   console.log(456654)
+    //   let params = {
+    //     pageNum: this.currentPage,
+    //     pageSize: this.pageSize,
+    //     materialName: this.screenForm.materialName,
+    //     materialNumber: this.screenForm.materialNumber,
+    //     startDate: this.screenForm.startDate,
+    //     materialOldNumber: this.screenForm.materialOldNumber,
+    //     saleTypeId: this.screenForm.saleTypeId,
+    //     k3CategoryNumber: this.screenForm.k3CategoryNumber,
+    //     specification: this.screenForm.specification,
+    //     remark: this.screenForm.remark,
+    //     billType: 'DIFF'
+    //   }
+    //   getProductRriceList(params).then(res => {
+    //     this.dataList = res.data.records
+    //     this.listTotal = res.data.total
+    //     this.listLoading = false
+    //   })
+    // },
     editFn(id, row) {
       this.cid = id
       this.show = 5

+ 242 - 433
src/views/supply/price/modify_list.vue

@@ -1,429 +1,140 @@
 <template>
-  <div class="app-container">
-    <div v-if="show === 1">
-      <!-- 筛选条件 -->
-      <div>
-        <div>
-          <Collapse :screen-form="screenForm">
-            <template #right_btn>
-              <el-button size="mini" @click="resetScreenForm">清空</el-button>
-              <el-button size="mini" type="primary" @click="submitScreenForm">搜索</el-button>
-            </template>
-            <template #search>
-              <el-form ref="screenForm" :model="screenForm" label-width="70px" size="mini" label-position="left">
-                <el-row :gutter="20">
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="物料编码" prop="materialNumber">
-                      <el-input placeholder="请输入物料编码" v-model="screenForm.materialNumber"></el-input>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="产品名称" prop="materialName">
-                      <el-input placeholder="请输入产品名称" v-model="screenForm.materialName"></el-input>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="产品编码" prop="materialOldNumber">
-                      <el-input placeholder="请输入产品编码" v-model="screenForm.materialOldNumber"></el-input>
-                    </el-form-item>
-                  </el-col>
-                  <!--              <el-col :xs="24" :sm="12" :lg="6">-->
-                  <!--                <el-form-item label="生效日期" prop="startDate">-->
-                  <!--                  <el-date-picker-->
-                  <!--                    v-model="screenForm.startDate"-->
-                  <!--                    type="datetime"-->
-                  <!--                    placeholder="请输入生效日期"-->
-                  <!--                    value-format="yyyy-MM-dd HH:mm:ss"-->
-                  <!--                  >-->
-                  <!--                  </el-date-picker>-->
-                  <!--                </el-form-item>-->
-                  <!--              </el-col>-->
-                  <!--              <el-col :xs="24" :sm="12" :lg="6">-->
-                  <!--                <el-form-item label="失效日期" prop="endDate">-->
-                  <!--                  <el-date-picker-->
-                  <!--                    v-model="screenForm.endDate"-->
-                  <!--                    type="datetime"-->
-                  <!--                    placeholder="请输入生效日期"-->
-                  <!--                    value-format="yyyy-MM-dd HH:mm:ss "-->
-                  <!--                  >-->
-                  <!--                  </el-date-picker>-->
-                  <!--                </el-form-item>-->
-                  <!--              </el-col>-->
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="销售类型" prop="saleTypeId">
-                      <el-select
-                        v-model="screenForm.saleTypeId"
-                        filterable
-                        placeholder="选择销售类型"
-                        style="width: 100%"
-                      >
-                        <el-option label="全部" value=""></el-option>
-                        <el-option
-                          v-for="item in typeList"
-                          :key="item.id"
-                          :label="item.saleName"
-                          :value="item.id"
-                        ></el-option>
-                      </el-select>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="产品类别" prop="k3CategoryNumber">
-                      <el-select style="width: 100%" placeholder="请选择产品类别" v-model="screenForm.k3CategoryNumber">
-                        <el-option label="全部" value=""></el-option>
-                        <el-option v-for="item in dictList" :label="item.name" :value="item.number"></el-option>
-                      </el-select>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="规格型号" prop="specification">
-                      <el-input placeholder="请输入规格型号" v-model="screenForm.specification"></el-input>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :xs="24" :sm="12" :lg="6">
-                    <el-form-item label="备注" prop="remark">
-                      <el-input placeholder="请输入备注" v-model="screenForm.remark"></el-input>
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-              </el-form>
-            </template>
-          </Collapse>
-        </div>
-      </div>
-      <!-- 按钮 -->
-      <div class="btn-group clearfix">
-        <div class="fl">
-          <el-button
-            type="primary"
-            v-if="$checkBtnRole('add', $route.meta.roles)"
-            icon="el-icon-plus"
-            size="mini"
-            @click="addFn"
-            >新增</el-button
-          >
-          <!-- <el-button type="primary" size="mini">编辑</el-button> -->
-          <el-upload
-            style="margin-bottom: 10px"
-            class="import-btn"
-            :action="baseURL + 'student/import'"
-            :http-request="handleImport"
-            :file-list="importFileList"
-            :show-file-list="false"
-            :disabled="importLoading"
-            v-loading="importLoading"
-          >
-            <el-button type="primary" size="mini">导入调价单 </el-button>
-          </el-upload>
-          <el-button type="primary" size="mini" @click="hanleDownloadFiles">下载模板 </el-button>
-          <el-popconfirm
-            v-if="$checkBtnRole('del', $route.meta.roles)"
-            confirm-button-text="好的"
-            cancel-button-text="不用了"
-            icon="el-icon-info"
-            icon-color="red"
-            title="内容确定删除吗?"
-            style="margin-right: 10px"
-            @onConfirm="hanleDeleteAll"
-          >
-            <el-button type="primary" size="mini" icon="el-icon-delete" slot="reference" class="el-popover-left"
-              >删除</el-button
-            >
-          </el-popconfirm>
-          <el-button
-            size="mini"
-            type="warning"
-            icon="el-icon-finished"
-            @click="batchExamine"
-            v-if="$checkBtnRole('examine', $route.meta.roles)"
-            >批量审批</el-button
-          >
-        </div>
-        <div class="fr">
-          <ExportButton :exUrl="'product-upd-price/export'" :exParams="exParams" />
-          <!-- <el-button type="primary" size="mini">导入</el-button>
-          <el-button type="primary" size="mini">导出</el-button>
-          <el-button type="primary" size="mini">打印</el-button> -->
-        </div>
-      </div>
-      <div class="mymain-container">
-        <!-- 列表 -->
-        <div class="table">
-          <el-table
-            v-loading="listLoading"
-            :data="dataList"
-            element-loading-text="Loading"
-            border
-            fit
-            highlight-current-row
-            @select-all="hanleSelectAll"
-            @select="hanleSelectAll"
-            :row-class-name="tableRowClassName"
-          >
-            <el-table-column type="selection" align="left" width="50"></el-table-column>
-            <el-table-column align="left" label="单据号" prop="updPriceBillId" min-width="200" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.updPriceBillId" />
-                <span>{{ scope.row.updPriceBillId }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="备注"
-              prop="remark"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="销售类型"
-              prop="saleTypeName"
-              :formatter="formatterType"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <!-- <el-table-column
-              align="left"
-              label="产品类别"
-              prop="mainName"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column> -->
-            <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="160" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialNumber" />
-                <span>{{ scope.row.materialNumber }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="产品名称" prop="materialName" min-width="200" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialName" />
-                <span>{{ scope.row.materialName }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="产品编码"
-              prop="materialOldNumber"
-              min-width="200"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialOldNumber" />
-                <span>{{ scope.row.materialOldNumber }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column align="left" label="规格型号" prop="specification" min-width="200" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.specification" />
-                <span>{{ scope.row.specification }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="计量单位"
-              prop="unit"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="数量"
-              prop="qty"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="right"
-              label="批发价"
-              prop="batchPrice"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
+  <template-page
+    ref="pageRef"
+    :getList="getList"
+    :operation="operation()"
+    :optionsEvensGroup="optionsEvensGroup"
+    :exportList="exportList"
+    :columnParsing="columnParsing"
+    :tableAttributes="tableAttributes"
+    :tableEvents="tableEvents"
+  >
+    <ExamineDialog @submit="submitExamineForm" :isShow.sync="isShowExamineDialog" :examineForm.sync="examineForm" />
 
-            <el-table-column
-              align="right"
-              label="格力折扣"
-              prop="discAmount"
-              min-width="160"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="调价日期"
-              prop="createTime"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="生效日期"
-              prop="startDate"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="失效日期"
-              prop="endDate"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <!-- <el-table-column
-              align="left"
-              label="是否促销价"
-              prop="isPromote"
-              min-width="160"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <el-tag size="mini" type="success" v-if="scope.row.isPromote">是</el-tag>
-                <el-tag size="mini"  type="danger" v-else>否</el-tag>
-              </template>
-            </el-table-column> -->
-            <el-table-column align="left" label="返利类型(钱包)" prop="wallets" min-width="200" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <template v-for="(item, index) in scope.row.wallets">
-                  <template v-if="item.type === 'REBATE'">
-                    <el-tag type="success" style="margin: 0 10px" size="mini" :key="index">
-                      {{ item.walletName }}
-                    </el-tag>
-                  </template>
-                </template>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="现金钱包"
-              prop="modifyPriceDepartment"
-              min-width="200"
-              show-overflow-tooltip
-            >
-              <template slot-scope="scope">
-                <template v-for="(item, index) in scope.row.wallets">
-                  <template v-if="item.type === 'COMMONLY'">
-                    <el-tag type="success" style="margin: 0 10px" size="mini" :key="index">
-                      {{ item.walletName }}
-                    </el-tag>
-                  </template>
-                </template>
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="left"
-              label="调价部门"
-              prop="adminWebsitName"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="调价业务员"
-              prop="serviceName"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="制单日期"
-              prop="createTime"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="审核人"
-              prop="confirmName"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column
-              align="left"
-              label="审核日期"
-              prop="confirmTime"
-              min-width="200"
-              show-overflow-tooltip
-            ></el-table-column>
-            <el-table-column align="left" label="状态" prop="examineStatus" min-width="160" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <el-tag size="mini" type="success" v-if="scope.row.examineStatus == 'SAVE'">保存</el-tag>
-                <el-tag size="mini" type="danger" v-else-if="scope.row.examineStatus == 'WAIT'">待审核</el-tag>
-                <el-tag size="mini" type="danger" v-else-if="scope.row.examineStatus == 'OK'">通过</el-tag>
-                <el-tag size="mini" type="danger" v-else-if="scope.row.examineStatus == 'FAIL'">不通过</el-tag>
-                <el-tag size="mini" type="danger" v-else>审核</el-tag>
-              </template>
-            </el-table-column>
-            <el-table-column align="center" label="操作" fixed="right" min-width="160" show-overflow-tooltip>
-              <template slot-scope="scope">
-                <template v-if="scope.row.examineStatus == 'SAVE'">
-                  <el-popconfirm
-                    title="确定提审吗?"
-                    @onConfirm="handleGetPriceSubmit(scope.row.updPriceBillId)"
-                    style="margin-right: 10px"
-                  >
-                    <el-button type="text" slot="reference">提审</el-button>
-                  </el-popconfirm>
-                </template>
-                <template v-if="scope.row.examineStatus == 'WAIT'">
-                  <el-button type="text" class="textColor" @click="approvalFn(scope.row.updPriceBillId)"
-                    >审批</el-button
-                  >
-                </template>
-                <el-button
-                  v-if="scope.row.examineStatus == 'SAVE'"
-                  type="text"
-                  class="textColor"
-                  @click="editFn(scope.row.updPriceBillId, scope.row)"
-                  >编辑</el-button
-                >
-                <el-button type="text" class="textColor" @click="detailFn(scope.row.updPriceBillId)">详情</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-        <!-- 分页 -->
-        <div class="fr">
-          <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="currentPage"
-            :page-sizes="[10, 20, 30, 50]"
-            :page-size="10"
-            layout="total, sizes, prev, pager, next, jumper"
-            :total="listTotal"
-          >
-          </el-pagination>
-        </div>
-      </div>
-    </div>
-    <ModifyListApply v-else-if="show === 2 || show == 5" :cid="cid" />
-    <ModifyListApproval v-else-if="show === 3" :detail="detail" />
-    <ModifyListDetail v-else :detail="detail" />
-    <ExamineDialog :isShow.sync="isShowExamineDialog" :examineForm.sync="examineForm" />
-  </div>
+    <Popu v-if="show !== 1">
+      <ModifyListApply v-if="show === 2 || show == 5" :cid="cid" :show="show" @back="handleClose" />
+      <ModifyListApproval v-if="show === 3" :detail="detail" @back="handleClose" />
+      <ModifyListDetail v-if="show === 4" :detail="detail" @back="handleClose" />
+    </Popu>
+  </template-page>
 </template>
 
 <script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import Popu from '@/components/template/popu.vue'
+import import_mixin from '@/components/template/import_mixin.js'
+import add_callback_mixin from '@/components/template/add_callback_mixin.js'
+
 import ModifyListApply from './components/modify_list-apply.vue'
 import ModifyListApproval from './components/modify_list-approval.vue'
 import ModifyListDetail from './components/modify_list-detail.vue'
 import ExamineDialog from '@/components/Common/examine-dialog'
-import Mixin from '@/mixin/index'
+// import Mixin from '@/mixin/index'
 import {
   getPriceSubmit,
   getProductRricedel,
   getProductRriceDetail,
   getProductRriceList,
   getTypeList,
-  examineData
+  examineData,
+  v2ProductUpdPriceList,
+  v2ProductUpdPriceListExport,
+  productUpdPriceDownload,
+  productUpdPriceMaterialImport
 } from '@/api/basic_data/material'
-import { downloadFiles, handleImport } from '@/utils/util'
+// import { downloadFiles, handleImport } from '@/utils/util'
 import { getCategoryList } from '@/api/common'
 
 export default {
-  mixins: [Mixin],
+  mixins: [import_mixin, add_callback_mixin],
   data() {
     return {
+      handleClose: this.addOff(() => {
+        if (this.show === 2 || this.show === 5) {
+          this.cid = ''
+          this.show = 1
+        }
+        this.show = 1
+        this.$refs.pageRef.refreshList()
+      }),
+      // 事件组合
+      optionsEvensGroup: [
+        [
+          [
+            {
+              name: '新增',
+              click: this.addOn(() => {
+                this.addFn()
+              })
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '批量删除',
+              click: async () => {
+                if (this.recordSelected.length === 0) {
+                  this.$message.error('请选择需要删除的数据')
+                  return
+                }
+                this.hanleDeleteAll()
+              },
+              isRole: this.$checkBtnRole('del', this.$route.meta.roles)
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '批量审批',
+              click: async () => {
+                this.batchExamine()
+              }
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '',
+              render: this.importButton(productUpdPriceMaterialImport, '导入', {
+                billType: 'GENERAL'
+              })
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '导入模版',
+              click: () => {
+                productUpdPriceDownload({}, `${this.$route.meta.title}`)
+                  .then(res => {
+                    this.$message({
+                      message: '下载成功',
+                      type: 'success'
+                    })
+                  })
+                  .catch(err => {
+                    this.$message.error('下载失败')
+                  })
+              }
+            }
+          ]
+        ]
+      ],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: true
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: [],
+
       baseURL: '',
       importFileList: [],
       show: 1,
@@ -500,7 +211,9 @@ export default {
     ExamineDialog,
     ModifyListApply,
     ModifyListApproval,
-    ModifyListDetail
+    ModifyListDetail,
+    TemplatePage,
+    Popu
   },
   computed: {
     exParams() {
@@ -534,6 +247,89 @@ export default {
     })
   },
   methods: {
+    // 列表请求函数
+    getList(...p) {
+      let params = {
+        moduleId: p[0].moduleId,
+        orderBy: p[0].orderBy,
+        pageNum: p[0].pageNum,
+        pageSize: p[0].pageSize,
+        params: [...p[0].params, { param: 'a.bill_type', compare: '=', value: 'HOME' }]
+      }
+      return v2ProductUpdPriceList(params)
+    },
+    // 列表导出函数
+    exportList: v2ProductUpdPriceListExport,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return (
+          <div class="operation-btns">
+            {row.examineStatus == '保存' ? (
+              <el-popconfirm
+                onOnConfirm={async () => {
+                  this.handleGetPriceSubmit(row.updPriceBillId)
+                }}
+                title="是否确定需要提审该项内容?"
+              >
+                <el-button slot="reference" size="mini" type="text">
+                  提审
+                </el-button>
+              </el-popconfirm>
+            ) : (
+              ''
+            )}
+
+            {row.examineStatus == '待审核' ? (
+              <el-popconfirm
+                onOnConfirm={async () => {
+                  this.approvalFn(row.updPriceBillId)
+                }}
+                title="是否确定需要审批该项内容?"
+              >
+                <el-button slot="reference" size="mini" type="text">
+                  审批
+                </el-button>
+              </el-popconfirm>
+            ) : (
+              ''
+            )}
+
+            {row.examineStatus == '保存' ? (
+              <el-button
+                size="mini"
+                type="text"
+                onClick={async () => {
+                  this.editFn(row.updPriceBillId, row)
+                }}
+              >
+                编辑
+              </el-button>
+            ) : (
+              ''
+            )}
+
+            <el-button
+              size="mini"
+              type="text"
+              onClick={async () => {
+                this.detailFn(row.updPriceBillId)
+              }}
+            >
+              详情
+            </el-button>
+          </div>
+        )
+      }
+    },
+
     formatterType(row) {
       for (let i = 0; i < this.typeList.length; i++) {
         if (this.typeList[i].id == row.saleTypeId) {
@@ -544,17 +340,28 @@ export default {
     addFn() {
       this.show = 2
     },
+    hanleDeleteAllPromise(id) {
+      return new Promise((resolve, reject) => {
+        const ids = id ? [id] : this.recordSelected.map(v => v.updPriceBillId)
+        if (!ids.length) {
+          this.$errorMsg('请选择删除内容')
+          return
+        }
+        resolve(ids)
+      })
+    },
     hanleDeleteAll(id) {
       this.hanleDeleteAllPromise(id).then(ids => {
         getProductRricedel(ids).then(res => {
           this.$successMsg('删除成功')
-          this.getList()
+          // this.getList()
+          this.$refs.pageRef.refreshList()
         })
       })
     },
     // 打开 批量审批
     batchExamine() {
-      if (this.ids.length) {
+      if (this.recordSelected.length) {
         this.isShowExamineDialog = true
         return
       }
@@ -565,7 +372,7 @@ export default {
       // let ids = this.dis.map(item => {
       //   return item
       // });
-      const ids = [...new Set(this.ids)]
+      const ids = [...new Set(this.recordSelected.map(v => v.updPriceBillId))]
       examineData({
         ids: ids.join(','),
         examineStatus: this.examineForm.status,
@@ -573,14 +380,16 @@ export default {
       }).then(res => {
         this.isShowExamineDialog = false
         this.$successMsg('修改成功')
-        this.getList()
+        // this.getList()
+        this.$refs.pageRef.refreshList()
       })
     },
     handleGetPriceSubmit(id) {
       console.log(id)
       getPriceSubmit({ ids: id }).then(res => {
         this.$successMsg('已提审')
-        this.getList()
+        // this.getList()
+        this.$refs.pageRef.refreshList()
       })
     },
     approvalFn(id) {
@@ -596,28 +405,28 @@ export default {
         this.show = 4
       })
     },
-    getList() {
-      this.listLoading = true
-      console.log(456654)
-      let params = {
-        pageNum: this.currentPage,
-        pageSize: this.pageSize,
-        materialName: this.screenForm.materialName,
-        materialNumber: this.screenForm.materialNumber,
-        startDate: this.screenForm.startDate,
-        materialOldNumber: this.screenForm.materialOldNumber,
-        saleTypeId: this.screenForm.saleTypeId,
-        k3CategoryNumber: this.screenForm.k3CategoryNumber,
-        specification: this.screenForm.specification,
-        remark: this.screenForm.remark,
-        billType: 'HOME'
-      }
-      getProductRriceList(params).then(res => {
-        this.dataList = res.data.records
-        this.listTotal = res.data.total
-        this.listLoading = false
-      })
-    },
+    // getList() {
+    //   this.listLoading = true
+    //   console.log(456654)
+    //   let params = {
+    //     pageNum: this.currentPage,
+    //     pageSize: this.pageSize,
+    //     materialName: this.screenForm.materialName,
+    //     materialNumber: this.screenForm.materialNumber,
+    //     startDate: this.screenForm.startDate,
+    //     materialOldNumber: this.screenForm.materialOldNumber,
+    //     saleTypeId: this.screenForm.saleTypeId,
+    //     k3CategoryNumber: this.screenForm.k3CategoryNumber,
+    //     specification: this.screenForm.specification,
+    //     remark: this.screenForm.remark,
+    //     billType: 'HOME'
+    //   }
+    //   getProductRriceList(params).then(res => {
+    //     this.dataList = res.data.records
+    //     this.listTotal = res.data.total
+    //     this.listLoading = false
+    //   })
+    // },
     editFn(id, row) {
       this.cid = id
       this.show = 5