howie 3 лет назад
Родитель
Сommit
e344590f6c

+ 4 - 1
src/views/sales_policy/components/AddCondition.vue

@@ -538,7 +538,10 @@ export default {
     getList() {},
     handleBack() {
       if (this.$parent.isShow == 10) {
-        this.$parent.isShow = 8;
+             this.$parent.isShow = 8
+
+      }else if(this.$parent.isShow == 12){
+              this.$parent.isShow = 4
       } else {
         this.$parent.isCondition = 0;
         Object.assign(this.$data, this.$options.data());

+ 19 - 4
src/views/sales_policy/components/Examine.vue

@@ -3,7 +3,7 @@
     <div v-if="isEdit == 1">
       <el-header height="50px" class="header">
         <el-page-header
-          :content="comTitle"
+          :content="funTitle()"
           @back="($parent.isShow = 1), ($parent.id = '')"
         />
       </el-header>
@@ -360,7 +360,8 @@
                   type="text"
                   size="small"
                   @click="
-                    ($parent.isShow = 10), ($parent.policyId = scope.row.id)
+                    ($parent.isShow = 10), ($parent.policyId = scope.row.id) ,
+                    $parent.isShow ===8?detailFang = false :detailFang=true
                   "
                 >查看条件</el-button>
               </template>
@@ -705,15 +706,17 @@ export default {
           value: 'LIMIT',
           label: '限量'
         }
-      ]
+      ],
+      detailFang:false,
     }
   },
   computed: {
     comTitle() {
+        console.log(this.detailFang,'kkk')
       let title = '详情页'
       if (this.$parent.isShow == 5) {
         title = '编辑页'
-      } else if (this.$parent.isShow == 8) {
+      } else if (this.$parent.isShow == 8 && !this.detailFang) {
         title = '审核页'
       } else {
         title = '详情页'
@@ -723,6 +726,18 @@ export default {
   },
   created() {},
   methods: {
+    funTitle(){
+          console.log();
+      let title = '详情页'
+      if (this.$parent.isShow == 5) {
+        title = '编辑页'
+      } else if (this.$parent.isShow == 8 && !this.detailFang) {
+        title = '审核页'
+      } else {
+        title = '详情页'
+      }
+      return title
+    },
     getList() {
       this.listLoading = true
       getPolicyDetail({ policyId: this.$parent.id }).then((res) => {

+ 1097 - 0
src/views/sales_policy/components/details.vue

@@ -0,0 +1,1097 @@
+<template>
+  <div class="app-container">
+    <div v-if="isEdit == 1">
+      <el-header height="50px" class="header">
+        <el-page-header
+          :content="funTitle()"
+          @back="($parent.isShow = 1), ($parent.id = '')"
+        />
+      </el-header>
+      <div >
+        <div class="diy-table-1">
+          <el-row>
+            <el-col :span="8" class="item">
+              <div class="label">销售政策编号</div>
+              <div class="value">{{ detail.code }}</div>
+            </el-col>
+            <el-col :span="8" class="item">
+              <div class="label">销售政策说明</div>
+              <div class="value">
+                <el-input
+                  v-model="detail.title"
+                  placeholder="请输入政策说明"
+                />
+              </div>
+            </el-col>
+            <el-col :span="8" class="item">
+              <div class="label">状态</div>
+              <div class="value">
+                {{ detail.status == 1 ? "已生效" : "未生效" }}
+              </div>
+            </el-col>
+            <el-col :span="24" class="item">
+              <div class="label">销售政策类型</div>
+              <div class="value">
+                <el-select
+                  v-model="detail.type"
+                  size="small"
+                  placeholder="销售政策类型"
+                  class="select_height"
+                >
+                  <el-option
+                    v-for="(item, index) in typeOptions"
+                    :key="index"
+                    :label="item.label"
+                    :value="item.value"
+                  />
+                </el-select>
+
+              </div>
+            </el-col>
+
+            <el-col :span="24" class="item">
+              <div class="label">备注</div>
+              <div class="value">
+                <el-input
+                  v-model="detail.remark"
+                  placeholder="请输入备注"
+                />
+              </div>
+            </el-col>
+
+            <el-col :span="8" class="item">
+              <div class="label">制单人</div>
+              <div class="value">{{ detail.createBy }}</div>
+            </el-col>
+            <el-col :span="8" class="item">
+              <div class="label">制单日期</div>
+              <div class="value">
+                <el-date-picker
+                  v-model="detail.createTime"
+                  type="datetime"
+                  placeholder="制单日期"
+                  default-time="00:00:00"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                />
+              </div>
+            </el-col>
+            <el-col :span="8" class="item">
+              <div class="label">生效日期</div>
+              <div class="value">
+                <el-date-picker
+                  v-model="detail.startTime"
+                  type="datetime"
+                  placeholder="生效日期"
+                  default-time="00:00:00"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                /> </el-form-item>
+              </div>
+            </el-col>
+            <el-col :span="24" class="item">
+              <div class="label">失败日期</div>
+              <div class="value">
+                <el-date-picker
+                  v-model="detail.endTime"
+                  type="datetime"
+                  placeholder="生效日期"
+                  default-time="00:00:00"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                /> </el-form-item>
+              </div>
+            </el-col>
+          </el-row>
+          <el-row v-if="detail.imgSrc && $parent.isShow !== 5" class="img-box">
+            <el-col :span="24" class="item">
+              <div class="label" style="height: 150px">政策封面图</div>
+              <div class="value" style="height: 150px">
+                <el-image
+                  style="height: 120px; widht: 120px"
+                  :src="$imageUrl + detail.imgSrc"
+                  fit="fill"
+                  :preview-src-list="srcList"
+                />
+              </div>
+            </el-col>
+          </el-row>
+          <el-row v-if="$parent.isShow == 5">
+            <el-col :span="24" class="item">
+              <div class="label" style="height: 150px">政策封面图</div>
+              <div class="value" style="height: 150px">
+                <ImageUpload :file-list="fileList" :multiple="false" />
+              </div>
+            </el-col>
+          </el-row>
+          <el-row v-if="this.$parent.isShow == 4">
+            <el-col :span="8" class="item">
+              <div class="label">审核人</div>
+              <div class="value">{{ detail.examineBy }}</div>
+            </el-col>
+            <el-col :span="16" class="item">
+              <div class="label">审核日期</div>
+              <div class="value">{{ detail.examineTime }}</div>
+            </el-col>
+            <!--            <el-col :span="8" class="item">-->
+            <!--              <div class="label">关闭人</div>-->
+            <!--              <div class="value"></div>-->
+            <!--            </el-col>-->
+            <!--            <el-col :span="24" class="item">-->
+            <!--              <div class="label">关闭日期</div>-->
+            <!--              <div class="value"></div>-->
+            <!--            </el-col>-->
+          </el-row>
+        </div>
+        <div class="mymain-container">
+          <el-row>
+            <el-divider />
+            <el-row type="flex">
+              <el-col :span="12">
+                <h4 style="display: inline-block; margin-right: 20px">
+                  货品信息
+                </h4>
+                <ExportButton v-if="$parent.isShow ===4" style="display: inline-block" :exUrl="'/policy/material/export'"  exText="导出货品"
+                              :ex-params="{policyId: detail.code}"></ExportButton>
+
+                <el-upload
+                  v-if="$parent.isShow == 5"
+                  class="import-btn"
+                  :action="baseURL + 'student/import'"
+                  :http-request="handleImport"
+                  :file-list="importFileList"
+                  :show-file-list="false"
+                >
+                  <el-button size="small">导入货品价格表</el-button>
+                </el-upload>
+              </el-col>
+              <el-col :span="12" class="tr">
+                <!-- <el-button size="small" @click="$parent.isShow = 10"
+                >查看条件</el-button
+              > -->
+              </el-col>
+            </el-row>
+            <el-divider />
+          </el-row>
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              fixed
+              type="index"
+              label="序号"
+              width="50"
+              align="left"
+            />
+            <el-table-column
+              prop="materialNumber"
+              label="物料编码"
+              min-width="160"
+              show-overflow-tooltip
+              align="left"
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialNumber" />
+                <span>{{scope.row.materialNumber}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="materialName"
+              label="产品名称"
+              min-width="160"
+              show-overflow-tooltip
+              align="left"
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialName" />
+                <span>{{scope.row.materialName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="specification"
+              label="规格型号"
+              min-width="300"
+              show-overflow-tooltip
+              align="left"
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.specification}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="saleTypeCode"
+              label="销售类型编码"    min-width="160"
+              show-overflow-tooltip
+              align="left"
+            />
+            <el-table-column
+              prop="saleTypeName"
+              label="销售类型"
+              min-width="160"
+              show-overflow-tooltip
+              align="left"
+            />
+            <el-table-column prop="discAmount" label="格力折扣" align="right" />
+            <el-table-column prop="price" label="单价" align="right" />
+            <el-table-column label="返利钱包" align="left"     min-width="160"
+                             show-overflow-tooltip>
+              <template slot-scope="scope">
+                <template  v-for="item in scope.row.walletRelaList">
+                  <el-tag
+                    v-if="item.type==='REBATE'"
+                    style="margin: 5px"
+                    type="success"
+                    size="small"
+                  >{{ item.walletName }}</el-tag>
+                </template>
+              </template>
+            </el-table-column>
+            <el-table-column label="现金钱包" align="left"     min-width="160"
+                             show-overflow-tooltip>
+              <template slot-scope="scope">
+                <template  v-for="item in scope.row.walletRelaList">
+                  <el-tag
+                   v-if="item.type==='COMMONLY'"
+                    style="margin: 5px"
+                    type="success"
+                    size="small"
+                  >{{ item.walletName }}</el-tag>
+                </template>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column
+              label="操作"
+              align="left"
+              width="150"
+              v-if="$parent.isShow == 5 && detail.examineStatus == 'SAVE'"
+            >
+              <template slot-scope="scope">
+                <el-popconfirm
+                  confirm-button-text="好的"
+                  cancel-button-text="不用了"
+                  icon="el-icon-info"
+                  icon-color="red"
+                  title="内容确定删除吗?"
+                  @onConfirm="hanleDelete(scope.row.id)"
+                >
+                  <el-button
+                    slot="reference"
+                    type="text"
+                    class="textColor el-popover-left"
+                    >删除</el-button
+                  >
+                </el-popconfirm>
+              </template>
+            </el-table-column> -->
+          </el-table>
+          <!-- 分页 -->
+          <div style="margin: 20px 0">
+            <el-pagination
+              :current-page="dcurrentPage"
+              :page-sizes="[10, 20, 30, 50]"
+              :page-size="10"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="dlistTotal"
+              @size-change="handleSizeChange2"
+              @current-change="handleCurrentChange2"
+            />
+          </div>
+          <el-row>
+            <el-divider />
+            <el-row type="flex">
+              <el-col :span="12">
+                <h4 style="display: inline-block; margin-right: 20px">
+                  条件信息
+                </h4>
+
+              </el-col>
+            </el-row>
+            <el-divider />
+          </el-row>
+          <el-table
+            :data="conditionList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              fixed
+              type="index"
+              label="序号"
+              width="50"
+              align="left"
+            />
+            <el-table-column prop="name" label="限定条件" align="left">
+              <template slot-scope="scope">
+                {{ scope.row.name }}
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="left" width="150">
+              <template slot-scope="scope">
+                <template v-if="$parent.isShow == 5">
+                  <el-button
+                    type="text"
+                    size="small"
+                    @click="getCommonApi(scope.row)"
+                  >编辑</el-button>
+                  <el-popconfirm
+                    confirm-button-text="好的"
+                    cancel-button-text="不用了"
+                    icon="el-icon-info"
+                    icon-color="red"
+                    title="内容确定删除吗?"
+                    @onConfirm="handleCondition(scope.row.id, scope.$index)"
+                  >
+                    <el-button
+                      slot="reference"
+                      type="text"
+                      class="textColor el-popover-left"
+                    >删除</el-button>
+                  </el-popconfirm>
+                </template>
+                <el-button
+                  v-else
+                  type="text"
+                  size="small"
+                  @click="
+                    ($parent.isShow = 12), ($parent.policyId = scope.row.id)
+
+                  "
+                >查看条件</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <el-row>
+            <el-divider />
+            <el-row type="flex">
+              <el-col :span="12">
+                <h4 style="display: inline-block; margin-right: 20px">
+                  经销商使用范围
+                </h4>
+
+                <ExportButton style="display: inline-block"  v-if="$parent.isShow ===4" :exUrl="'/policy/customer/export'"  exText="导出经销商"
+                              :ex-params="{policyId:detail.code}"></ExportButton>
+              </el-col>
+            </el-row>
+            <el-divider />
+          </el-row>
+          <template v-if="$parent.isShow != 5">
+            <el-table
+              v-loading="listLoading"
+              :data="custoList"
+              element-loading-text="Loading"
+              border
+              fit
+              highlight-current-row
+              stripe
+            >
+              <el-table-column
+                fixed
+                type="index"
+                label="序号"
+                width="50"
+                align="left"
+              />
+              <el-table-column
+                prop="customerNumber"
+                label="经销商编码"
+                align="left"
+              >    <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerNumber" />
+                <span>{{ scope.row.customerNumber }}</span>
+              </template></el-table-column>
+              <el-table-column
+                prop="customerName"
+                label="经销商名称"
+                align="left"
+              >
+                <template slot-scope="scope">
+                  <CopyButton :copy-text="scope.row.customerName" />
+                  <span>{{ scope.row.customerName }}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+            <!-- 分页 -->
+            <div style="margin: 20px 0">
+              <el-pagination
+                :current-page="currentPages"
+                :page-sizes="[10, 20, 30, 50]"
+                :page-size="10"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="clistTotals"
+                @size-change="handleSizeChanges"
+                @current-change="handleCurrentChanges"
+              />
+            </div>
+          </template>
+          <template v-else>
+            <el-row :gutter="20">
+              <el-col :span="10" :offset="0">
+                <h5>未选经销商</h5>
+                <el-divider
+                  direction="horizontal"
+                  content-position="left"
+                />
+
+                <el-table
+                  ref="multipleTable"
+                  :data="dataL"
+                  element-loading-text="Loading"
+                  border
+                  height="480px"
+                  fit
+                  highlight-current-row
+                  @select-all="handleSelectionAllChange"
+                  @selection-change="handleSelectionChange"
+                >
+                  <el-table-column
+                    type="selection"
+                    width="55"
+                    :selectable="selectable"
+                    align="left"
+                  />
+                  <el-table-column
+                    prop="number"
+                    label="经销商编码"
+                    align="left"
+                  >
+                    <template slot-scope="scope">
+                      <CopyButton :copy-text="scope.row.number" />
+                      <span>{{ scope.row.number }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    prop="name"
+                    label="经销商名称"
+                    align="left"
+                  >
+                    <template slot-scope="scope">
+                      <CopyButton :copy-text="scope.row.name" />
+                      <span>{{ scope.row.name }}</span>
+                    </template>
+                  </el-table-column>
+                </el-table>
+                <!-- 分页 -->
+                <div style="margin: 20px 0">
+                  <el-pagination
+                    :current-page="currentPages"
+                    :page-sizes="[10, 20, 30, 50]"
+                    :page-size="10"
+                    layout="total, sizes, prev, pager, next, jumper"
+                    :total="clistTotal"
+                    @size-change="handleSizeChanges"
+                    @current-change="handleCurrentChanges"
+                  />
+                </div>
+              </el-col>
+              <el-col :span="4" class="middle_box" :offset="0">
+                <el-col>
+                  <el-button
+                    size="small"
+                    :disabled="type == 2"
+                    @click="handleAllAdd"
+                  >全部添加</el-button></el-col>
+                <el-col>
+                  <el-button
+                    size="small"
+                    :disabled="type == 2"
+                    @click="handleAdd"
+                  >增加</el-button></el-col>
+                <el-col>
+                  <el-button
+                    size="small"
+                    :disabled="type == 1"
+                    @click="handleDelete"
+                  >删除</el-button></el-col>
+                <el-col>
+                  <el-button
+                    size="small"
+                    :disabled="type == 1"
+                    @click="handleAllDelete"
+                  >全部删除</el-button></el-col>
+              </el-col>
+              <el-col :span="10" :offset="0">
+                <h5>已选经销商</h5>
+                <el-divider
+                  direction="horizontal"
+                  content-position="left"
+                />
+
+                <el-table
+                  v-loading="listLoading"
+                  :data="custoList"
+                  element-loading-text="Loading"
+                  border
+                  height="480px"
+                  fit
+                  highlight-current-row
+                  stripe
+                  @select-all="handleSelectionAllChange2"
+                  @selection-change="handleSelectionChange2"
+                >
+                  <el-table-column type="selection" width="55" align="left" />
+                  <el-table-column
+                    prop="customerNumber"
+                    label="经销商编码"
+                    align="left"
+                  >
+                    <template slot-scope="scope">
+                      <CopyButton :copy-text="scope.row.customerNumber" />
+                      <span>{{ scope.row.customerNumber }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    prop="customerName"
+                    label="经销商名称"
+                    align="left"
+                  >
+                    <template slot-scope="scope">
+                      <CopyButton :copy-text="scope.row.customerName" />
+                      <span>{{ scope.row.customerName }}</span>
+                    </template>
+                  </el-table-column>
+                </el-table>
+                <!-- 分页 -->
+                <!-- <div style="margin: 20px 0">
+                  <el-pagination
+                    @size-change="handleSizeChanges"
+                    @current-change="handleCurrentChanges"
+                    :current-page="currentPages"
+                    :page-sizes="[10, 20, 30, 50]"
+                    :page-size="10"
+                    layout="total, sizes, prev, pager, next, jumper"
+                    :total="clistTotals"
+                  >
+                  </el-pagination>
+                </div> -->
+              </el-col>
+            </el-row>
+          </template>
+          <div
+            v-if="$parent.isShow == 8 && detail.examineStatus == 'WAIT'"
+            class="descriptions diy-table-1"
+          >
+            <el-row>
+              <el-col :span="6">审核人</el-col>
+              <el-col :span="6">{{ $store.getters.name }}</el-col>
+              <el-col :span="6">审核结果</el-col>
+              <el-col :span="6">
+                <template>
+                  <el-radio-group v-model="examineStatus">
+                    <el-radio :label="'OK'">通过</el-radio>
+                    <el-radio :label="'FAIL'">驳回</el-radio>
+                  </el-radio-group>
+                </template>
+              </el-col>
+            </el-row>
+            <el-row  class="item">
+              <el-col :span="4">审批说明</el-col>
+              <el-col :span="20" class="col value" style="padding-left: 10px">
+                <el-input
+                  v-model="remark"
+                  size="small"
+                  placeholder="请输入内容"
+                />
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-button
+                type="primary"
+                size="small"
+                @click="handleSubmit"
+              >审核通过</el-button>
+            </el-row>
+          </div>
+        </div>
+        <div>
+          <el-button
+            v-if="$parent.isShow == 5"
+            type="primary"
+            size="default"
+            @click="handleSave"
+          >保存</el-button>
+        </div>
+      </div>
+    </div>
+    <EditCondition v-else :id="cid" :policy-id="cpolicyId" />
+  </div>
+</template>
+
+<script>
+import {
+  deleteCondition,
+  deleteMaterialPolicy,
+  getConditionList,
+  getCrList,
+  getCustomerList,
+  getMaterialList,
+  getPolicyDetail,
+  toExamine,
+  updatePolicy
+} from '@/api/policy_list'
+import EditCondition from './EditCondition'
+import ImageUpload from '@/components/Common/image-upload.vue'
+
+import { handleImport } from '@/utils/util'
+
+import Minxin from '@/mixin'
+
+export default {
+  name: 'Examine',
+  components: {
+    EditCondition,
+    ImageUpload
+  },
+  mixins: [Minxin],
+  data() {
+    return {
+      baseURL: '',
+      dcurrentPage: 1,
+      dpageSize: 10,
+      dlistTotal: 0,
+      currentPages: 1, // 当前页码
+      pageSizes: 10, // 每页数量
+      clistTotal: 0,
+      input: '',
+      remark: '',
+      fileList: [],
+      listLoading: false,
+      imageUrl: '',
+      dataList: [],
+      examineStatus: 'OK',
+      options: {},
+      value: '',
+      detail: {},
+      srcList: [],
+      screenForm: {
+        code: '',
+        createBy: '',
+        endCreateTime: '',
+        endTime1: '',
+        endTime2: '',
+        examineBy: '',
+        remark: '',
+        startCreateTime: '',
+        startTime1: '',
+        startTime2: '',
+        status: '',
+        title: '',
+        type: ''
+      },
+      conditionList: [],
+      custoList: [],
+      isEdit: 1,
+      cid: '',
+      cpolicyId: '',
+      dataL: [],
+      clistTotal: 0,
+      clistTotals: 0,
+      type: 1,
+      fileList: [],
+      importFileList: [],
+      leftData: [],
+      rightData: [],
+      typeOptions: [
+        {
+          value: 'PROVISION',
+          label: '配提'
+        },
+        {
+          value: 'LIMIT',
+          label: '限量'
+        }
+      ],
+      detailFang:false,
+    }
+  },
+  computed: {
+    comTitle() {
+        console.log(this.detailFang,'kkk')
+      let title = '详情页'
+      if (this.$parent.isShow == 5) {
+        title = '编辑页'
+      } else if (this.$parent.isShow == 8 && !this.detailFang) {
+        title = '审核页'
+      } else {
+        title = '详情页'
+      }
+      return title
+    }
+  },
+  created() {},
+  methods: {
+    funTitle(){
+      let title = '详情页'
+      return title
+    },
+    getList() {
+      this.listLoading = true
+      getPolicyDetail({ policyId: this.$parent.id }).then((res) => {
+        this.detail = res.data
+        this.srcList = [this.$imageUrl + this.detail.imgSrc]
+        if (this.$parent.isShow == 5 && this.detail.imgSrc) {
+          this.fileList = [
+            {
+              hover: '',
+              url: this.detail.imgSrc
+            }
+          ]
+        }
+        this.handletwoList()
+        // 获取条件政策
+        this.getConditionList()
+        this.getCond()
+      })
+    },
+
+    getCrList() {
+      const customerParams = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        keyword: this.region == 1 || this.region == '' ? '' : this.keyword,
+        region: this.region == 1 ? this.keyword : ''
+      }
+      // 获取经销商列表
+      getCrList(customerParams).then((res) => {
+        for (let j = 0; j < this.custoList.length; j++) {
+          for (let i = 0; i < res.data.records.length; i++) {
+            if (res.data.records[i].id == this.custoList[j].customerId) {
+              res.data.records[i].disabled = true
+            }
+          }
+        }
+        this.dataL = res.data.records
+        for (let k = 0; k < this.dataL.length; k++) {
+          (this.dataL[k].customerId = this.dataL[k].id),
+          (this.dataL[k].customerName = this.dataL[k].name),
+          (this.dataL[k].customerNumber = this.dataL[k].number)
+        }
+
+        console.log(this.dataL, '获取经销商列表')
+        this.clistTotal = res.data.total
+      })
+    },
+    // 更改每页数量
+    handleSizeChanges(val) {
+      this.pageSizes = val
+      this.currentPages = 1
+      this.getCond()
+    },
+    // 更改当前页
+    handleCurrentChanges(val) {
+      this.currentPages = val
+      this.getCond()
+    },
+    // 更改每页数量
+    handleSizeChange2(val) {
+      this.dpageSize = val
+      this.dcurrentPage = 1
+      this.handletwoList()
+    },
+    // 更改当前页
+    handleCurrentChange2(val) {
+      this.dcurrentPage = val
+      this.handletwoList()
+    },
+    getCommonApi(row) {
+      (this.isEdit = 2), (this.cid = row.id), (this.cpolicyId = row.policyId)
+      console.log(
+        this.cpolicyId,
+        this.detail.code,
+        this.cpolicyId == this.detail.code
+      )
+    },
+    getCond() {
+      this.listLoading = true
+      const custoParams = {
+        pageNum: this.currentPages,
+        pageSize: this.pageSizes,
+        policyId: this.detail.code
+      }
+      getCustomerList(custoParams).then((res) => {
+        this.custoList = res.data.records
+        this.clistTotals = res.data.total
+        this.listLoading = false
+        this.getCrList()
+      })
+    },
+    handleSubmit() {
+      toExamine({
+        examineStatus: this.examineStatus,
+        policyId: this.$parent.id,
+        examineRemark: this.remark
+      }).then((res) => {
+        this.$successMsg('已提交审核')
+        this.$parent.isShow = 1
+        this.$parent.getList()
+      })
+    },
+    // 获取货品信息
+    handletwoList() {
+      // this.searchForm.type
+      const paramss = {
+        pageNum: this.dcurrentPage,
+        pageSize: this.dpageSize,
+        policyId: this.detail.code,
+        saleTypeCode: ''
+      }
+      getMaterialList(paramss)
+        .then((result) => {
+          this.dataList = result.data.records
+          this.dlistTotal = result.data.total
+          this.listLoading = false
+        })
+        .catch((err) => {
+          console.error(err)
+        })
+    },
+    // 导入
+    async handleImport(param) {
+      this.importLoading = true
+      const file = param.file
+      console.log(file, 123)
+      const formData = new FormData()
+      formData.append('file', file)
+      formData.append('policyId', this.detail.code)
+      // formData.append("mainId", this.detail.mainId);
+      const result = await handleImport('/policy/material/import', formData)
+      this.importLoading = false
+      this.importFileList = []
+      if (result.code == 200) {
+        this.$alert(result.message, '导入成功', {
+          confirmButtonText: '确定'
+        })
+
+        this.handletwoList()
+      } else {
+        this.$alert(result.message, '导入失败', {
+          confirmButtonText: '确定'
+        })
+      }
+    },
+    handleCondition(id, index) {
+      deleteCondition({ id }).then((res) => {
+        // this.conditionList.splice(index, 1);
+        // Object.assign(
+        //   this.$children[9].$data,
+        //   this.$children[9].$options.data()
+        // );
+        this.getConditionList()
+        this.$successMsg('删除成功')
+      })
+    },
+    getConditionList() {
+      const condParams = {
+        policyId: this.detail.code
+      }
+      getConditionList(condParams).then((res) => {
+        this.conditionList = res.data
+      })
+    },
+    // 删除
+    hanleDelete(id) {
+      const params = { policyMaterialId: id }
+      deleteMaterialPolicy(params).then((res) => {
+        this.$successMsg('删除成功')
+        this.handletwoList()
+      })
+    },
+    /**
+     * 根据条件禁用行复选框
+     * 函数返回值为false则禁用选择(反之亦然)
+     * @param {Object} row - 行数据
+     * @param {String} index - 索引值
+     * @return Boolean
+     */
+    selectable: function(row, index) {
+      // row.disabled == undefined 才能被选中
+      if (row.disabled == undefined || row.disabled == false) {
+        return true
+      } else {
+        return false
+      }
+      // 函数必须有返回值且是布尔值
+      // 页面刷新后该函数会执行 N 次进行判断(N 为表格行数)
+      // 如果没有返回值则默认返回false(全部无法选中)
+    },
+    handleSelectionAllChange(e) {
+      this.leftData = e
+      this.type = 1
+    },
+    handleSelectionChange(e) {
+      this.leftData = e
+      this.type = 1
+    },
+    handleSelectionAllChange2(e) {
+      this.rightData = e
+      this.type = 2
+    },
+    handleSelectionChange2(e) {
+      this.rightData = e
+      this.type = 2
+    },
+    handleLeft(e) {
+      this.type = 1
+    },
+    handleRight(e) {
+      this.type = 2
+    },
+    handleAllAdd() {
+      if (this.type == 1 && this.leftData.length) {
+        for (let i = 0; i < this.dataL.length; i++) {
+          for (let j = 0; j < this.leftData.length; j++) {
+            if (this.dataL[i].id == this.leftData[j].id) {
+              this.dataL[i].disabled = true
+            }
+          }
+        }
+        this.custoList = [...this.custoList, ...this.leftData]
+        this.$refs.multipleTable.clearSelection()
+      } else {
+        this.$errorMsg('请选择要添加的经销商')
+      }
+    },
+    handleAllDelete() {
+      if (this.type == 2 && this.rightData.length) {
+        for (let i = 0; i < this.dataL.length; i++) {
+          for (let j = 0; j < this.rightData.length; j++) {
+            if (this.dataL[i].id == this.rightData[j].customerId) {
+              this.$set(this.dataL[i], 'disabled', false)
+            }
+          }
+        }
+        const arr = this.resArr(this.custoList, this.rightData)
+        this.custoList = arr
+      } else {
+        this.$errorMsg('请选择要删除的经销商')
+      }
+    },
+    handleAdd() {
+      if (this.type == 1 && this.leftData.length) {
+        for (let i = 0; i < this.dataL.length; i++) {
+          for (let j = 0; j < this.leftData.length; j++) {
+            if (this.dataL[i].id == this.leftData[j].id) {
+              this.dataL[i].disabled = true
+            }
+          }
+        }
+        this.custoList = [...this.custoList, ...this.leftData]
+        this.leftData = []
+        this.$refs.multipleTable.clearSelection()
+      } else {
+        this.$errorMsg('请选择要添加的经销商')
+      }
+    },
+    handleDelete() {
+      if (this.type == 2 && this.rightData.length) {
+        for (let i = 0; i < this.dataL.length; i++) {
+          for (let j = 0; j < this.rightData.length; j++) {
+            if (this.dataL[i].id == this.rightData[j].customerId) {
+              this.$set(this.dataL[i], 'disabled', false)
+            }
+          }
+        }
+        const arr = this.resArr(this.custoList, this.rightData)
+        this.custoList = arr
+      } else {
+        this.$errorMsg('请选择要删除的经销商')
+      }
+    },
+    // 去掉相同数据
+    resArr(arr1, arr2) {
+      return arr1.filter((v) => arr2.every((val) => val.id != v.id))
+    },
+    async handleSave() {
+      if (this.custoList.length) {
+        var arr = []
+        this.custoList.forEach((el) => {
+          arr.push({
+            customerId: el.customerId,
+            customerName: el.customerName,
+            customerNumber: el.customerNumber,
+            lastOrderTime: '',
+            limitTakeNum: 0,
+            policyId: this.detail.code,
+            policyTitle: '',
+            remark: ''
+          })
+        })
+
+        const params = {
+          ...this.detail,
+          policyCustomers: arr,
+          imgSrc: this.fileList.length ? this.fileList[0].url : ''
+        }
+        await updatePolicy(params)
+        await this.getCond()
+        this.$successMsg('编辑成功')
+        this.fileList = []
+        this.$parent.isShow = 1
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.el-col {
+  overflow: hidden;
+}
+.value{
+  ::v-deep .el-input__prefix{
+    display: none;
+  }
+}
+.descriptions {
+  // border: #EBEEF5;
+  border: 1px solid #ebeef5;
+  border-bottom: none;
+  .el-row {
+    height: 40px;
+    line-height: 40px;
+  }
+  .el-col:nth-child(odd) {
+    background-color: #ebeef5;
+  }
+  .el-col {
+    padding: 0 15px;
+    height: 100%;
+    border-bottom: 1px solid #ebeef5;
+  }
+}
+.el-divider--horizontal {
+  margin: 20px 0;
+}
+.col {
+  height: 100px;
+}
+
+.import-btn {
+  margin-right: 10px;
+  display: inline-block;
+}
+::v-deep .el-input__icon .el-icon-time{
+  display: none;
+}
+.middle_box {
+  margin-top: 80px;
+  text-align: center;
+  height: 430px;
+  display: flex;
+  flex-direction: column;
+  align-content: center;
+  justify-content: space-between;
+  align-items: center;
+}
+.img-box {
+  height: 150px;
+  display: flex;
+  align-items: center;
+}
+</style>

+ 14 - 20
src/views/sales_policy/components/editPolicy.vue

@@ -139,7 +139,7 @@
             v-loading="listLoading"
             :data="dataList"
             element-loading-text="Loading"
-
+            max-height="600"
             border
             fit
             highlight-current-row
@@ -365,17 +365,16 @@
                 @click="handleSave"
               >保存</el-button>
             </div>
-                       <el-pagination
-                         :current-page="dcurrentPage"
-                         :page-sizes="pageSizeArr"
-                         :page-size="size"
-                         layout="total, sizes, prev, pager, next, jumper"
-                         :total="listTotal"
-                         @size-change="handleSizeChange2"
-                         @current-change="handleCurrentChange2"
-                       />
+            <!--            <el-pagination-->
+            <!--              :current-page="dcurrentPage"-->
+            <!--              :page-sizes="pageSizeArr"-->
+            <!--              :page-size="size"-->
+            <!--              layout="total, sizes, prev, pager, next, jumper"-->
+            <!--              :total="listTotal"-->
+            <!--              @size-change="handleSizeChange2"-->
+            <!--              @current-change="handleCurrentChange2"-->
+            <!--            />-->
           </div>
-
           <el-row>
             <el-divider />
             <el-row type="flex">
@@ -531,7 +530,7 @@ export default {
       conditName:'',
       dataList: [],
       addList: [],
-      pageSizeArr: [10],
+      pageSizeArr: [10, 20, 30, 50],
       size: 10,
       listLoading: false,
       dialogVisible: false,
@@ -923,18 +922,11 @@ export default {
       if (!this.dataList.length) {
         this.dcurrentPage !== 1 ? this.dcurrentPage -= 1 : this.dcurrentPage = 1
       }
-      this.listTotal -= 1;
+      // this.listTotal -= 1;
       this.$successMsg('删除成功')
     },
     handleNewInfo() {
       // 物料列表
-       this.sleectBox.currentPage = 1
-        this.listTotal += 1;
-      //  if (this.dataList.length ===10 ) {
-      //   this.dataList = []
-      //   this.dcurrentPage +=(this.listTotal /10)+1
-      //  }
-
 
       this.dataList.push({
         id: '',
@@ -952,6 +944,8 @@ export default {
         walletIds: [this.NoRebateWalletList[0].id],
         walletRelaList: []
       })
+      this.sleectBox.currentPage = 1
+      // this.listTotal += 1;
       // this.dataList.push(this.addList[this.addList.length-1])
     },
     handleSave() {

+ 4 - 1
src/views/sales_policy/policy_list.vue

@@ -350,8 +350,9 @@
 
   </div>
   <AddPolicy v-else-if="isShow === 2" />
-  <AddCondition v-else-if="isShow === 10" :id="id" :policy-id="policyId" />
+  <AddCondition v-else-if="isShow === 10 ||isShow === 12  " :id="id" :policy-id="policyId" />
   <EditPolicy v-else-if="isShow===5" />
+  <Details v-else-if="isShow===4" />
   <Examine v-else />
 </template>
 
@@ -374,6 +375,7 @@ import EditPolicy from './components/editPolicy'
 import AddModel from './components/AddModel'
 import Pagination from './components/Pagination'
 import AddCondition from './components/AddCondition'
+import Details from './components/details.vue'
 import Examine from './components/Examine'
 import { mapState } from 'vuex'
 
@@ -578,6 +580,7 @@ export default {
   },
   components: {
     Examine,
+    Details,
     AddModel,
     AddPolicy,
     EditPolicy,