You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
846 lines
26 KiB
846 lines
26 KiB
<!-- -->
|
|
<template>
|
|
<div>
|
|
<div class="pending">
|
|
<el-tabs v-model="activeName">
|
|
<el-tab-pane label="活动信息" name="first">
|
|
<div class="shop_info">
|
|
<h3 class="detail_title">店铺信息</h3>
|
|
<div class="shopInfo_left">
|
|
<p class="detail_text">
|
|
<span>活动名称:</span>
|
|
<span class="text">{{ form.activityName }}</span>
|
|
</p>
|
|
<p class="detail_text">
|
|
<span>活动介绍:</span>
|
|
<span class="text">{{ form.activityIntroduce }}</span>
|
|
</p>
|
|
<p class="detail_text">
|
|
<span>报名时间:</span>
|
|
<span
|
|
class="text"
|
|
>{{ form.signStartTime }}-{{ form.signEndTime }}</span>
|
|
</p>
|
|
<p class="detail_text">
|
|
<span>起止时间:</span>
|
|
<span
|
|
class="text"
|
|
>{{ form.activityStartTime }}-{{ form.activityEndTime }}</span>
|
|
</p>
|
|
<p class="detail_text">
|
|
<span>活动保证金:</span>
|
|
<span class="text textColor ">
|
|
<el-radio-group v-model="form.ifBond">
|
|
<el-radio :label="1" disabled>需要</el-radio>
|
|
<el-radio :label="0" disabled>不需要</el-radio>
|
|
</el-radio-group>
|
|
</span>
|
|
</p>
|
|
<p v-if="form.ifBond" class="detail_text">
|
|
<span>保证金金额:</span>
|
|
<span class="text">{{ form.bondMoney }}</span>
|
|
</p>
|
|
<!-- <p v-if="form.activityLabel" class="detail_text">
|
|
<span>活动标签:</span>
|
|
<span class="mf">
|
|
<el-tag type="warning" effect="dark">{{
|
|
form.activityLabel
|
|
}}</el-tag>
|
|
</span>
|
|
</p> -->
|
|
</div>
|
|
<div class="shopInfo_right">
|
|
<img v-if="form.image" :src="form.image" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="shop_info">
|
|
<h3 class="detail_title">优惠规则</h3>
|
|
<p v-if="form.discountMode" class="detail_text">
|
|
<span>优惠方式:</span>
|
|
<span class="text">
|
|
<el-radio-group v-model="form.discountMode">
|
|
<el-radio :label="1" disabled>满减</el-radio>
|
|
<el-radio :label="2" disabled>优惠券</el-radio>
|
|
</el-radio-group>
|
|
</span>
|
|
</p>
|
|
<p v-if="form.couponContent" class="detail_text">
|
|
<span>优惠内容:</span>
|
|
<span v-if="form.discountMode === 1" class="text">
|
|
减 {{ form.couponContent }} 元
|
|
</span>
|
|
<span v-if="form.discountMode === 2" class="text">
|
|
{{ form.couponContent }}折
|
|
</span>
|
|
</p>
|
|
<p v-if="form.threshold" class="detail_text">
|
|
<span>使用门槛:</span>
|
|
<span class="text">
|
|
<div>
|
|
满 {{ form.threshold }} 元
|
|
</div>
|
|
</span>
|
|
</p>
|
|
<p v-if="form.number" class="detail_text">
|
|
<span>发放数量:</span>
|
|
<span class="text">
|
|
{{ form.number }}张
|
|
</span>
|
|
</p>
|
|
<p v-if="form.receiveType" class="detail_text">
|
|
<span>领取次数:</span>
|
|
<span v-if="form.receiveType === 2" class="text">
|
|
{{ form.frequency }}次
|
|
</span>
|
|
<span v-else class="text">
|
|
无限制
|
|
</span>
|
|
</p>
|
|
<p class="detail_text">
|
|
<span>同步微信卡包:</span>
|
|
<el-checkbox v-model="form.syncCard" :true-label="1" :false-label="0" :disabled="true"></el-checkbox>
|
|
</p>
|
|
</div>
|
|
<div v-if="form.syncCard === 1" class="sync_card_info">
|
|
<h3 class="detail_title">卡券同步设置</h3>
|
|
<p v-if="form.cardTitle" class="detail_text">
|
|
<span>卡券标题:</span>
|
|
<span class="text">
|
|
{{ form.cardTitle }}
|
|
</span>
|
|
</p>
|
|
<p v-if="form.cardColor" class="detail_text">
|
|
<span>券主题颜色:</span>
|
|
<span class="color-box" :style="{'backgroundColor': bgColors[form.cardColor]}"></span>
|
|
<span class="text">
|
|
{{ form.cardColor }}
|
|
</span>
|
|
</p>
|
|
<p v-if="form.cardNotice" class="detail_text">
|
|
<span>使用须知:</span>
|
|
<span class="text">
|
|
<div>
|
|
{{ form.cardNotice }}
|
|
</div>
|
|
</span>
|
|
</p>
|
|
</div>
|
|
</el-tab-pane>
|
|
<!-- 参与店铺 -->
|
|
<el-tab-pane label="参与店铺" name="second">
|
|
<div class="formSearch">
|
|
<el-form
|
|
:inline="true"
|
|
:model="formInline"
|
|
class="demo-form-inline"
|
|
>
|
|
<el-form-item label="店铺名称">
|
|
<el-input
|
|
v-model="formInline.shopName"
|
|
maxlength="20"
|
|
placeholder="请输入店铺名称"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item label="店铺编码">
|
|
<el-input
|
|
v-model="formInline.shopCode"
|
|
maxlength="20"
|
|
placeholder="请输入店铺编码"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item label="审核状态">
|
|
<el-select
|
|
v-model="formInline.state"
|
|
placeholder="请选择审核状态"
|
|
>
|
|
<el-option label="待审核" value="0" />
|
|
<el-option label="报名成功" value="1" />
|
|
<el-option label="报名失败" value="2" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" plain @click="search">查询</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<div class="tableBox">
|
|
<el-table
|
|
ref="multipleTable"
|
|
:data="tableData"
|
|
border
|
|
:header-cell-style="{ background: '#EEF3FF', color: '#333333' }"
|
|
tooltip-effect="dark"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column label="店铺名称" width="220">
|
|
<template slot-scope="scope">{{ scope.row.shopName }}</template>
|
|
</el-table-column>
|
|
<el-table-column prop="shopCode" label="店铺编码" />
|
|
<el-table-column prop="productNumber" label="参与商品数" />
|
|
<el-table-column prop="examine" label="审核次数" />
|
|
<el-table-column label="审核状态">
|
|
<template slot-scope="scope">
|
|
<span v-if="scope.row.state == 0">待审核</span>
|
|
<span v-if="scope.row.state == 1">报名成功</span>
|
|
<span v-if="scope.row.state == 2">报名失败</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="操作" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<div class="btnList">
|
|
<el-button
|
|
type="text"
|
|
@click="seeMore(scope.row)"
|
|
>查看商品</el-button>
|
|
<el-button
|
|
type="text"
|
|
@click="checkList(scope.row)"
|
|
>审核记录</el-button>
|
|
<el-button
|
|
v-if="scope.row.state === 0"
|
|
type="text"
|
|
@click="examine(scope.row)"
|
|
>审核</el-button>
|
|
<el-button
|
|
v-if="scope.row.state === 1"
|
|
type="text"
|
|
@click="liquidation(scope.row)"
|
|
>清退</el-button>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<div class="fenye">
|
|
<el-pagination
|
|
:current-page="currentPage"
|
|
:page-sizes="[10, 20, 50, 100]"
|
|
:page-size="10"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
:total="total"
|
|
@size-change="handleSizeChange"
|
|
@current-change="handleCurrentChange"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</el-tab-pane>
|
|
<el-tab-pane :lazy="true" label="数据图表" name="chart">
|
|
<div class="chartPage" v-loading="chartLoading">
|
|
<div class="topChart">
|
|
<MapChart v-if="cityData.length > 0" class="mapCanvas" :city-data="cityData" />
|
|
<RankComponent
|
|
class="rank"
|
|
:title="'商家成交排行榜'"
|
|
:subtitle="'成交额/元'"
|
|
:rank-data="dealData"
|
|
/>
|
|
<RankComponent
|
|
class="rank"
|
|
:title="'畅销商品排行榜'"
|
|
:subtitle="'售卖个数/个'"
|
|
:rank-data="sealsDate"
|
|
/>
|
|
</div>
|
|
<div class="minChart">
|
|
<DistributionChart class="distribut" :chart-data="pieData" />
|
|
<TypePie class="typePie" :classify-data="classifyData" />
|
|
</div>
|
|
<div class="bottomChart">
|
|
<TrendChart class="trend" :chart-data="trendData" />
|
|
</div>
|
|
</div>
|
|
<!-- <List :list-id="couponId" /> -->
|
|
</el-tab-pane>
|
|
<el-tab-pane :lazy="true" label="数据详情" name="detail">
|
|
<TableData
|
|
:table-data="shopTable"
|
|
:total="shopTableTotal"
|
|
@handleCurrentChange="pageGetShopTable"
|
|
@handleSizeChange="sizeGetShopTable"
|
|
@export="exportShopTable"
|
|
/>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
</div>
|
|
|
|
<!-- ******************************************************弹框开始***************************************************************** -->
|
|
<!-- 审核记录弹框 -->
|
|
<el-dialog
|
|
title="审核记录"
|
|
:visible.sync="checkDIa"
|
|
center
|
|
width="30%"
|
|
:close-on-click-modal="false"
|
|
:modal-append-to-body="false"
|
|
:modal="false"
|
|
>
|
|
<div class="diaddStyle">
|
|
<el-table
|
|
ref="multipleTable"
|
|
:data="checkLists"
|
|
border
|
|
:header-cell-style="{ background: '#EEF3FF', color: '#333333' }"
|
|
tooltip-effect="dark"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column label="动态" width="220">
|
|
<template slot-scope="scope">{{
|
|
scope.row.operationDescribtion
|
|
}}</template>
|
|
</el-table-column>
|
|
<el-table-column prop="createTime" label="时间" />
|
|
<el-table-column prop="name" label="操作人" />
|
|
<el-table-column prop="remark" label="其他信息" />
|
|
</el-table>
|
|
</div>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="checkDIa = false">确定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<!-- 活动商品记录弹框 -->
|
|
<el-dialog
|
|
title="活动商品"
|
|
:visible.sync="foodsDia"
|
|
center
|
|
width="70%"
|
|
:close-on-click-modal="false"
|
|
:modal-append-to-body="false"
|
|
:modal="false"
|
|
>
|
|
<div class="diaddStyle">
|
|
<el-table
|
|
ref="multipleTable"
|
|
:data="tableDatas"
|
|
border
|
|
:header-cell-style="{ background: '#EEF3FF', color: '#333333' }"
|
|
tooltip-effect="dark"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column label="产品主图" width="220">
|
|
<template slot-scope="scope">
|
|
<img :src="scope.row.image" width="50" height="50" alt srcset>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="productName" label="产品名称" />
|
|
<el-table-column prop="productId" label="产品id" />
|
|
<el-table-column prop="price" label="售价(元)" />
|
|
<el-table-column prop="originalPrice" label="原价(元)" />
|
|
<el-table-column prop="stockNumber" label="库存(件)" />
|
|
<el-table-column prop="volume" label="累计销量(件)" />
|
|
<el-table-column label="上架状态">
|
|
<template slot-scope="scope">
|
|
<span v-if="scope.row.shelveState == 1">上架</span>
|
|
<span v-if="scope.row.shelveState == 0">下架</span>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<div class="fenye">
|
|
<el-pagination
|
|
:current-page="currentPages"
|
|
:page-sizes="[10, 20, 50, 100]"
|
|
:page-size="10"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
:total="totals"
|
|
@size-change="handleSizeChanges"
|
|
@current-change="handleCurrentChanges"
|
|
/>
|
|
</div>
|
|
</div>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="foodsDia = false">确定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<!-- 审核清退 -->
|
|
<el-dialog
|
|
:title="checkObj.title"
|
|
:visible.sync="checkObj.show"
|
|
center
|
|
width="30%"
|
|
:close-on-click-modal="false"
|
|
:modal-append-to-body="false"
|
|
:modal="false"
|
|
>
|
|
<div v-if="checkObj.type === 1" class="diaddStyle">
|
|
<el-form ref="form" :model="addform" label-width="80px">
|
|
<el-form-item label="审核状态">
|
|
<el-radio-group v-model="addform.state">
|
|
<el-radio label="1">报名成功</el-radio>
|
|
<el-radio label="2">报名失败</el-radio>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
<el-form-item label="备注">
|
|
<el-input v-model="addform.remark" maxlength="200" type="textarea" />
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<div v-else class="diaddStyle">
|
|
<div class="text">确认要清退本商家吗?</div>
|
|
<div class="text">清退后商家的所有商品将退出本次活动</div>
|
|
</div>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="enter">确定</el-button>
|
|
<el-button @click="checkDIa = checkObj.show = false">取消</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
// import List from '../component'
|
|
import MapChart from '@/views/active/couponlist/component/mapChart.vue'
|
|
import DistributionChart from '@/views/active/couponlist/component/chartDistribution.vue'
|
|
import RankComponent from '@/views/active/couponlist/component/rank.vue'
|
|
import TypePie from '@/views/active/couponlist/component/typePie.vue'
|
|
import TrendChart from '@/views/active/couponlist/component/trendChart.vue'
|
|
|
|
import TableData from '@/views/active/component/dataTable.vue'
|
|
|
|
import {
|
|
getCouponShops,
|
|
getCouponDetail,
|
|
exportCouponData,
|
|
getShopDatas,
|
|
// getStats,
|
|
getCharts
|
|
} from '@/api/active/active_coupon.js'
|
|
import {
|
|
activeGetExamines,
|
|
activeGetProducts,
|
|
activeLiquidation,
|
|
activExamine,
|
|
excel_shop_detail
|
|
} from '@/api/active'
|
|
|
|
export default {
|
|
components: {
|
|
// List,
|
|
TableData,
|
|
MapChart,
|
|
DistributionChart,
|
|
RankComponent,
|
|
TypePie,
|
|
TrendChart
|
|
},
|
|
data () {
|
|
return {
|
|
activeName: 'first',
|
|
couponId: null,
|
|
radio: '1',
|
|
formInline: {
|
|
activityId: 0,
|
|
shopName: '', // 店铺名称
|
|
shopCode: '', // 店铺编码
|
|
state: '', // 审核状态 0-待审核 1-报名成功 2-报名失败
|
|
page: 1,
|
|
signType: 1, // 1-平台优惠券 2-平台秒杀 3-平台限时折扣
|
|
pageSize: 10
|
|
},
|
|
addform: {
|
|
signId: '', // 报名id
|
|
state: '1', // 审核状态 1-报名成功 2-报名失败
|
|
remark: '' // 备注
|
|
},
|
|
checkObj: {},
|
|
form: {},
|
|
tableData: [], // 店铺数据
|
|
tableDatas: [], // 活动商品
|
|
checkLists: [],
|
|
total: 1,
|
|
totals: 1,
|
|
currentPage: 1,
|
|
currentPages: 1,
|
|
checkDIa: false,
|
|
foodsDia: false,
|
|
signId: '',
|
|
shopTableQuery: {
|
|
activityId: 0,
|
|
page: 1,
|
|
pageSize: 10
|
|
},
|
|
shopTableTotal: 0,
|
|
shopTable: [],
|
|
// chart数据
|
|
chartLoading: false,
|
|
pieData: {},
|
|
cityData: [],
|
|
dealData: [], // 成交数据
|
|
sealsDate: [], // 畅销商品排行
|
|
classifyData: [],
|
|
trendData: {},
|
|
bgColors: {
|
|
'Color010': '#638359',
|
|
'Color020': '#2C9F67',
|
|
'Color030': '#509FC9',
|
|
'Color040': '#5885CF',
|
|
'Color050': '#9062C0',
|
|
'Color060': '#D09A45',
|
|
'Color070': '#E48138',
|
|
'Color080': '#EE903C',
|
|
'Color090': '#DD6549',
|
|
'Color100': '#CC463D'
|
|
}
|
|
}
|
|
},
|
|
props: {
|
|
activityId: {
|
|
type: Number,
|
|
default: 0
|
|
}
|
|
},
|
|
watch: {
|
|
activityId: {
|
|
handler (nVal, oVal) {
|
|
if (nVal) {
|
|
this.couponId = parseInt(nVal)
|
|
this.formInline.activityId = this.couponId
|
|
this.getAll(this.formInline)
|
|
this.shopTableQuery.activityId = this.couponId
|
|
this.getShopTable()
|
|
this.shopTableQuery.activityId = this.couponId
|
|
this.getChartData()
|
|
this.getDetails()
|
|
} else {
|
|
this.pieData = {}
|
|
this.cityData = []
|
|
this.dealData = []
|
|
this.sealsDate = []
|
|
this.classifyData = []
|
|
this.trendData = {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
created () {
|
|
this.couponId = parseInt(this.activityId) || null
|
|
this.formInline.activityId = this.couponId
|
|
this.getAll(this.formInline)
|
|
this.shopTableQuery.activityId = this.couponId
|
|
this.getShopTable()
|
|
this.shopTableQuery.activityId = this.couponId
|
|
this.getChartData()
|
|
this.getDetails()
|
|
},
|
|
methods: {
|
|
// 活动信息查询
|
|
async getDetails () {
|
|
const res = await getCouponDetail({ activityId: this.couponId })
|
|
this.form = res.data
|
|
},
|
|
// 查询参与店铺
|
|
async getAll (formInline) {
|
|
// const res = await activeGetShops(formInline)
|
|
const res = await getCouponShops(formInline)
|
|
this.tableData = res.data.list
|
|
this.total = res.data.total
|
|
},
|
|
// 初始化查询所有活动商品
|
|
async getProducts (formInline) {
|
|
const res = await activeGetProducts(formInline)
|
|
this.tableDatas = res.data.list
|
|
this.totals = res.data.total
|
|
},
|
|
handleSizeChange (val) {
|
|
this.formInline.pageSize = val
|
|
this.getAll(this.formInline)
|
|
},
|
|
handleCurrentChange (val) {
|
|
this.formInline.page = val
|
|
this.getAll(this.formInline)
|
|
},
|
|
handleSizeChanges (val) {
|
|
this.getProducts({
|
|
signId: this.signId,
|
|
page: 1,
|
|
pageSize: val
|
|
})
|
|
},
|
|
handleCurrentChanges (val) {
|
|
this.getProducts({
|
|
signId: this.signId,
|
|
page: val,
|
|
pageSize: 10
|
|
})
|
|
},
|
|
// 查询
|
|
search () {
|
|
this.total = 1
|
|
this.formInline.page = 1
|
|
this.getAll(this.formInline)
|
|
},
|
|
/** 活动详情相关接口 */
|
|
// 查询活动数据详情
|
|
async getShopTable () {
|
|
const res = await getShopDatas(this.shopTableQuery)
|
|
this.shopTable = res.data.list
|
|
this.shopTableTotal = res.data.total
|
|
},
|
|
pageGetShopTable (e) {
|
|
this.shopTableQuery.page = e
|
|
this.getShopTable()
|
|
},
|
|
sizeGetShopTable (e) {
|
|
this.shopTableQuery.pageSize = e
|
|
this.getShopTable()
|
|
},
|
|
// 导出表格数据
|
|
exportShopTable () {
|
|
excel_shop_detail(this.formInline).then(res => {
|
|
const blob = new Blob([res])
|
|
const fileName = '商家数据明细表.xlsx'
|
|
if ('download' in document.createElement('a')) {
|
|
// 非IE下载
|
|
const elink = document.createElement('a')
|
|
elink.download = fileName
|
|
elink.style.display = 'none'
|
|
elink.href = URL.createObjectURL(blob)
|
|
document.body.appendChild(elink)
|
|
elink.click()
|
|
URL.revokeObjectURL(elink.href) // 释放URL 对象
|
|
document.body.removeChild(elink)
|
|
} else {
|
|
// IE10+下载
|
|
navigator.msSaveBlob(blob, fileName)
|
|
}
|
|
})
|
|
},
|
|
// 查询图表
|
|
async getChartData () {
|
|
this.chartLoading = true
|
|
this.pieData = {}
|
|
this.cityData = []
|
|
this.dealData = []
|
|
this.sealsDate = []
|
|
this.classifyData = []
|
|
this.trendData = {}
|
|
getCharts(this.shopTableQuery)
|
|
.then(res => {
|
|
this.pieData = Object.assign(
|
|
{ cityPeople: res.data.cityPeople },
|
|
{ newOlds: res.data.newOlds },
|
|
{ terminals: res.data.terminals },
|
|
{ systems: res.data.systems }
|
|
)
|
|
this.cityData = res.data.cities || []
|
|
this.dealData = res.data.shopRankings.map(item => {
|
|
item.rankName = item.shopName
|
|
item.ranks = item.money
|
|
return item
|
|
}) || []
|
|
this.sealsDate = res.data.productRankings.map(item => {
|
|
item.rankName = item.productName
|
|
item.ranks = item.total
|
|
return item
|
|
}) || []
|
|
this.classifyData = res.data.classifies || []
|
|
this.trendData = res.data.trend || {}
|
|
this.chartLoading = false
|
|
})
|
|
.catch(err => {
|
|
console.log(err)
|
|
this.chartLoading = false
|
|
})
|
|
},
|
|
// 审核记录
|
|
async checkList (row) {
|
|
this.checkDIa = true
|
|
const res = await activeGetExamines({
|
|
only: `${row.shopId}-${row.activityId}-${row.signId}`
|
|
})
|
|
this.checkLists = res.data
|
|
},
|
|
// 查看
|
|
seeMore (row) {
|
|
this.foodsDia = true
|
|
this.signId = row.signId
|
|
this.getProducts({
|
|
signId: this.signId,
|
|
page: 1,
|
|
pageSize: 10
|
|
})
|
|
},
|
|
// 处理
|
|
async examine (row) {
|
|
this.addform.signId = row.signId
|
|
this.checkObj = {
|
|
title: '审核',
|
|
show: true,
|
|
arr: row,
|
|
type: 1
|
|
}
|
|
},
|
|
// 清退
|
|
async liquidation (row) {
|
|
this.checkObj = {
|
|
title: '清退',
|
|
show: true,
|
|
arr: row,
|
|
type: 2
|
|
}
|
|
},
|
|
// 确定
|
|
async enter () {
|
|
if (this.checkObj.type === 1) {
|
|
const res = await activExamine(this.addform)
|
|
if (res.code === '') {
|
|
this.$message({
|
|
message: '处理成功',
|
|
type: 'success'
|
|
})
|
|
this.checkObj.show = false
|
|
this.getAll(this.formInline)
|
|
}
|
|
} else {
|
|
const res = await activeLiquidation({
|
|
signId: this.checkObj.arr.signId
|
|
})
|
|
if (res.code === '') {
|
|
this.$message({
|
|
message: '清退成功',
|
|
type: 'success'
|
|
})
|
|
this.checkObj.show = false
|
|
this.getAll(this.formInline)
|
|
}
|
|
}
|
|
},
|
|
// 导出数据
|
|
async exportData () {
|
|
const res = await exportCouponData({ discountId: this.discountId })
|
|
if (!res) {
|
|
return
|
|
}
|
|
const blob = new Blob([res])
|
|
const fileName = '商家数据明细表.xlsx'
|
|
if ('download' in document.createElement('a')) {
|
|
// 非IE下载
|
|
const elink = document.createElement('a')
|
|
elink.download = fileName
|
|
elink.style.display = 'none'
|
|
elink.href = URL.createObjectURL(blob)
|
|
document.body.appendChild(elink)
|
|
elink.click()
|
|
URL.revokeObjectURL(elink.href) // 释放URL 对象
|
|
document.body.removeChild(elink)
|
|
} else {
|
|
// IE10+下载
|
|
navigator.msSaveBlob(blob, fileName)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang='scss' scoped>
|
|
@import url("../../../styles/elDialog.scss");
|
|
.pending {
|
|
padding: 30px;
|
|
background: #FFFFFF;
|
|
border-radius: 10px;
|
|
}
|
|
.fenye {
|
|
margin-top: 20px;
|
|
}
|
|
.diaddStyle {
|
|
.text {
|
|
text-align: center;
|
|
}
|
|
}
|
|
.detail_title {
|
|
font-size: 22px;
|
|
color: #333333;
|
|
position: relative;
|
|
margin: 50px 20px 20px;
|
|
&:before {
|
|
content: "";
|
|
display: block;
|
|
position: absolute;
|
|
top: 5px;
|
|
left: -20px;
|
|
width: 4px;
|
|
height: 24px;
|
|
background-color: #3a68f2;
|
|
}
|
|
}
|
|
.detail_text {
|
|
margin: 12px 0;
|
|
padding: 0 120px;
|
|
// font-size: 16px;
|
|
.text {
|
|
color: #666666;
|
|
line-height: 40px;
|
|
margin-left: 20px;
|
|
div{
|
|
display: inline-block;
|
|
}
|
|
}
|
|
.Margin{
|
|
margin-left: 90px;
|
|
}
|
|
}
|
|
.shop_info{
|
|
overflow: hidden;
|
|
.shopInfo_left,.shopInfo_right{
|
|
float: left;
|
|
}
|
|
.shopInfo_right{
|
|
margin-left: 160px;
|
|
width: 200px;
|
|
height: 200px;
|
|
img{
|
|
width: 100%;
|
|
|
|
}
|
|
}
|
|
}
|
|
.sync_card_info {
|
|
.color-box {
|
|
width: 30px;
|
|
height: 30px;
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
}
|
|
.mf {
|
|
margin-left: 20px;
|
|
.el-tag{
|
|
margin-bottom: 20px;
|
|
}
|
|
}
|
|
// radio默认选中修改颜色
|
|
.el-radio__input.is-disabled+span.el-radio__label {
|
|
color: #409EFF !important;
|
|
}
|
|
.chartPage{
|
|
.topChart{
|
|
height: 530px;
|
|
display: flex;
|
|
.mapCanvas{
|
|
flex: 1;
|
|
border: 1px solid #efefef;
|
|
padding: 8px 3px;
|
|
}
|
|
.rank{
|
|
flex: 1;
|
|
}
|
|
}
|
|
.minChart{
|
|
margin: 12px 0;
|
|
padding: 8px;
|
|
height: 600px;
|
|
box-sizing: content-box;
|
|
display: flex;
|
|
border: 1px solid #efefef;
|
|
.distribut{
|
|
flex: 1;
|
|
}
|
|
.typePie{
|
|
flex: 1;
|
|
}
|
|
}
|
|
.bottomChart{
|
|
.trend{
|
|
height: 500px;
|
|
}
|
|
}
|
|
}
|
|
</style>
|