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