统计
This commit is contained in:
@@ -109,6 +109,29 @@ export default {
|
|||||||
data: page
|
data: page
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
getByPageNew(page) {
|
||||||
|
// 搜索统计列表
|
||||||
|
return request({
|
||||||
|
url: `/${service_name}/mallSearch/getByPageNew`,
|
||||||
|
method: 'post',
|
||||||
|
data: page
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getProductByPage(page) {
|
||||||
|
// 商品销售列表
|
||||||
|
return request({
|
||||||
|
url: `/${service_name}/mallProductInfo/getPage`,
|
||||||
|
method: 'post',
|
||||||
|
data: page
|
||||||
|
})
|
||||||
|
},
|
||||||
|
commodityChart(time) {
|
||||||
|
// 商品统计图
|
||||||
|
return request({
|
||||||
|
url: `/${service_name}/mallProductClassification/commodityChart/${time}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
},
|
||||||
updateModule(page) {
|
updateModule(page) {
|
||||||
// 模块显示隐藏
|
// 模块显示隐藏
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
498
src/views/statistics/productStatisticsList.vue
Normal file
498
src/views/statistics/productStatisticsList.vue
Normal file
@@ -0,0 +1,498 @@
|
|||||||
|
<template>
|
||||||
|
<div class="article-manager">
|
||||||
|
<el-card :bordered="false" shadow="never" class="ivu-mt mt16" :body-style="{ padding: '0 20px 20px' }">
|
||||||
|
<div>
|
||||||
|
<el-form :model="page" label-width="80px" label-position="right" inline @submit.native.prevent style="background: #f3f3f3;height:60px">
|
||||||
|
<el-form-item>
|
||||||
|
<span style="line-height:60px;margin:0px 30px">商品类目销售分析</span>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="Time"
|
||||||
|
type="daterange"
|
||||||
|
align="right"
|
||||||
|
unlink-panels
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
range-separator="~"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:picker-options="pickerOptions"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
<el-button type="primary" @click="productSearchs" style="margin-left:10px">查询</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-table
|
||||||
|
:data="productList"
|
||||||
|
class="ivu-mt mt14"
|
||||||
|
v-loading="loading"
|
||||||
|
highlight-current-row
|
||||||
|
:row-key="getRowKey"
|
||||||
|
border
|
||||||
|
@selection-change="handleSelectRow"
|
||||||
|
empty-text="暂无数据"
|
||||||
|
>
|
||||||
|
<el-table-column label="分类名称" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.categoryName }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="销售数量" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.sellNum }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="数量比例" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.sellScale }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="销售金额" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.sellMoney }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="金额比例" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.sellMoneyScale }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<el-form :model="page" label-width="80px" label-position="right" inline @submit.native.prevent style="background: #f3f3f3;height:60px">
|
||||||
|
<el-form-item>
|
||||||
|
<span style="line-height:60px;margin:0px 30px">商品销售情况</span>
|
||||||
|
|
||||||
|
<el-date-picker
|
||||||
|
v-model="createTime2"
|
||||||
|
type="daterange"
|
||||||
|
align="right"
|
||||||
|
unlink-panels
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
range-separator="~"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:picker-options="pickerOptions"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
<el-button type="primary" @click="userSearchs" style="margin-left:10px">查询</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-table
|
||||||
|
:data="tableList"
|
||||||
|
class="ivu-mt mt14"
|
||||||
|
v-loading="loading"
|
||||||
|
highlight-current-row
|
||||||
|
:row-key="getRowKey"
|
||||||
|
border
|
||||||
|
@selection-change="handleSelectRow"
|
||||||
|
empty-text="暂无数据"
|
||||||
|
>
|
||||||
|
<el-table-column label="商品名称" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.productName }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="浏览量" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.browseNum }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="浏览人数" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.browsePeopleNum }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="付款人数" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.paymentPeopleNum }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="单品转化率" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.convertRate }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="销售数量" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.salesVolume }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="销售金额" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.salesMoney }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div class="acea-row row-right page">
|
||||||
|
<el-pagination
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:current-page="page.currentPage"
|
||||||
|
:page-sizes="[10, 15, 20, 30]"
|
||||||
|
:page-size="page.pageSize"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="page.totalCount"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import marketingApi from '@/api/finance/marketing.js'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'product_productList',
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
template: false,
|
||||||
|
batchModal: false,
|
||||||
|
grid: {
|
||||||
|
xl: 6,
|
||||||
|
lg: 8,
|
||||||
|
md: 12,
|
||||||
|
sm: 24,
|
||||||
|
xs: 24
|
||||||
|
},
|
||||||
|
pickerOptions: {
|
||||||
|
shortcuts: [
|
||||||
|
{
|
||||||
|
text: '最近一周',
|
||||||
|
onClick(picker) {
|
||||||
|
const end = new Date()
|
||||||
|
const start = new Date()
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||||||
|
picker.$emit('pick', [start, end])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '最近一个月',
|
||||||
|
onClick(picker) {
|
||||||
|
const end = new Date()
|
||||||
|
const start = new Date()
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
||||||
|
picker.$emit('pick', [start, end])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '最近三个月',
|
||||||
|
onClick(picker) {
|
||||||
|
const end = new Date()
|
||||||
|
const start = new Date()
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
||||||
|
picker.$emit('pick', [start, end])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
page: {
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
params: {},
|
||||||
|
totalCount: 0
|
||||||
|
},
|
||||||
|
Time: '',
|
||||||
|
createTime: '',
|
||||||
|
createTime2: '',
|
||||||
|
|
||||||
|
type: '',
|
||||||
|
tableList: [],
|
||||||
|
productList: [],
|
||||||
|
loading: false,
|
||||||
|
data: [],
|
||||||
|
total: 0,
|
||||||
|
ids: [],
|
||||||
|
goodsId: '',
|
||||||
|
isProductBox: false,
|
||||||
|
multipleSelection: [],
|
||||||
|
detailData: {} //详情对象
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
var DaysAgo = this.timeBefore()
|
||||||
|
var sevenDaysAgo = this.timeBefore7()
|
||||||
|
console.log('sevenDaysAgo', sevenDaysAgo, DaysAgo)
|
||||||
|
|
||||||
|
this.createTime = sevenDaysAgo + '/' + DaysAgo
|
||||||
|
|
||||||
|
console.log('createTime', this.createTime)
|
||||||
|
|
||||||
|
this.page.params.startTime = sevenDaysAgo
|
||||||
|
this.page.params.endTime = DaysAgo
|
||||||
|
|
||||||
|
this.getList()
|
||||||
|
this.getChartList()
|
||||||
|
},
|
||||||
|
|
||||||
|
activated() {},
|
||||||
|
methods: {
|
||||||
|
closeLabel(label) {
|
||||||
|
let index = this.dataLabel.indexOf(this.dataLabel.filter(d => d.id == label.id)[0])
|
||||||
|
this.dataLabel.splice(index, 1)
|
||||||
|
},
|
||||||
|
timeBefore(date) {
|
||||||
|
if (!date) {
|
||||||
|
date = new Date()
|
||||||
|
}
|
||||||
|
var y = date.getFullYear()
|
||||||
|
var m = date.getMonth() + 1
|
||||||
|
var d = date.getDate()
|
||||||
|
if (d < 0) {
|
||||||
|
m = date.getMonth()
|
||||||
|
var d1 = new Date(y, m, 0)
|
||||||
|
var d2 = d1.getDate()
|
||||||
|
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d2 + d)
|
||||||
|
} else {
|
||||||
|
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
timeBefore7(date) {
|
||||||
|
if (!date) {
|
||||||
|
date = new Date()
|
||||||
|
}
|
||||||
|
var y = date.getFullYear()
|
||||||
|
var m = date.getMonth() + 1
|
||||||
|
var d = date.getDate() - 7
|
||||||
|
if (d < 0) {
|
||||||
|
m = date.getMonth()
|
||||||
|
var d1 = new Date(y, m, 0)
|
||||||
|
var d2 = d1.getDate()
|
||||||
|
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d2 + d)
|
||||||
|
} else {
|
||||||
|
return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getPath() {},
|
||||||
|
// 导出
|
||||||
|
async exports() {
|
||||||
|
let [th, filekey, data, fileName] = [[], [], [], '']
|
||||||
|
let excelData = JSON.parse(JSON.stringify(this.artFrom))
|
||||||
|
excelData.page = 1
|
||||||
|
excelData.limit = 50
|
||||||
|
excelData.ids = this.ids
|
||||||
|
for (let i = 0; i < excelData.page + 1; i++) {
|
||||||
|
let lebData = await this.getExcelData(excelData)
|
||||||
|
if (!fileName) fileName = lebData.filename
|
||||||
|
if (!filekey.length) {
|
||||||
|
filekey = lebData.fileKey
|
||||||
|
}
|
||||||
|
if (!th.length) th = lebData.header
|
||||||
|
if (lebData.export.length) {
|
||||||
|
data = data.concat(lebData.export)
|
||||||
|
excelData.page++
|
||||||
|
} else {
|
||||||
|
this.$exportExcel(th, filekey, fileName, data)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getExcelData(excelData) {},
|
||||||
|
|
||||||
|
getRowKey(row) {
|
||||||
|
return row.id
|
||||||
|
},
|
||||||
|
// 选中某一行
|
||||||
|
handleSelectRow(selection) {
|
||||||
|
const uniqueArr = []
|
||||||
|
const ids = []
|
||||||
|
for (let i = 0; i < selection.length; i++) {
|
||||||
|
const item = selection[i]
|
||||||
|
if (!ids.includes(item.id)) {
|
||||||
|
uniqueArr.push(item)
|
||||||
|
ids.push(item.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.ids = ids
|
||||||
|
this.multipleSelection = uniqueArr
|
||||||
|
},
|
||||||
|
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.page.pageSize = val
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.page.currentPage = val
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
// 商品统计图列表;
|
||||||
|
async getChartList() {
|
||||||
|
await marketingApi.commodityChart(this.createTime).then(res => {
|
||||||
|
if ((res.code = 20000)) {
|
||||||
|
this.productList = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 商品销售列表
|
||||||
|
async getList() {
|
||||||
|
await marketingApi.getProductByPage(this.page).then(res => {
|
||||||
|
if ((res.code = 20000)) ({ list: this.tableList = [], totalCount: this.page.totalCount = 0 } = res.data)
|
||||||
|
})
|
||||||
|
console.log('tableList', this.tableList)
|
||||||
|
},
|
||||||
|
// 表格搜索
|
||||||
|
productSearchs() {
|
||||||
|
console.log(this.Time)
|
||||||
|
|
||||||
|
if (this.Time !== null && this.Time.length !== 0) {
|
||||||
|
this.createTime = this.Time[0] + '/' + this.Time[1]
|
||||||
|
this.getChartList()
|
||||||
|
} else {
|
||||||
|
this.$message.error('请选择要查询的时间段!')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 表格搜索
|
||||||
|
userSearchs() {
|
||||||
|
this.page.currentPage = 1
|
||||||
|
if (this.createTime2 !== null && this.createTime2.length !== 0) {
|
||||||
|
this.page.params.startTime = this.createTime2[0]
|
||||||
|
this.page.params.endTime = this.createTime2[1]
|
||||||
|
this.getList()
|
||||||
|
} else {
|
||||||
|
this.$message.error('请选择要查询的时间段!')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 数据导出;
|
||||||
|
exportData: function() {},
|
||||||
|
|
||||||
|
// 详情
|
||||||
|
detail(row) {
|
||||||
|
orderInfoApi.getRefund(row.id).then(res => {
|
||||||
|
if ((res.code = 20000)) {
|
||||||
|
this.detailData = res.data
|
||||||
|
this.refundDetailDialog = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 取消
|
||||||
|
auth(row, tit, num) {
|
||||||
|
// orderInfoApi.get(row.id).then(res => {
|
||||||
|
// if ((res.code = 20000)) {
|
||||||
|
this.detailData = row
|
||||||
|
this.verifyDialog = true
|
||||||
|
console.log(row)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
::v-deep .el-tabs__item {
|
||||||
|
height: 54px !important;
|
||||||
|
line-height: 54px !important;
|
||||||
|
}
|
||||||
|
::v-deep .ivu-modal-mask {
|
||||||
|
z-index: 999 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .ivu-modal-wrap {
|
||||||
|
z-index: 999 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Box {
|
||||||
|
::v-deep .ivu-modal-body {
|
||||||
|
height: 700px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.batch-box {
|
||||||
|
::v-deep .ivu-modal-body {
|
||||||
|
overflow: auto;
|
||||||
|
min-height: 350px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabBox_img {
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
z-index: 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .happy-scroll-content {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.demo-spin-icon-load {
|
||||||
|
animation: ani-demo-spin 1s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ani-demo-spin {
|
||||||
|
from {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.demo-spin-col {
|
||||||
|
height: 100px;
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.labelInput {
|
||||||
|
border: 1px solid #dcdee2;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 15px;
|
||||||
|
border-radius: 5px;
|
||||||
|
min-height: 30px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 12px;
|
||||||
|
|
||||||
|
.span {
|
||||||
|
color: #c5c8ce;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconxiayi {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-dropdown-link {
|
||||||
|
cursor: pointer;
|
||||||
|
color: var(--prev-color-primary);
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.el-icon-arrow-down {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.el-dropdown-menu__item {
|
||||||
|
a {
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.label_width {
|
||||||
|
width: 400px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
340
src/views/statistics/searchStatisticsList.vue
Normal file
340
src/views/statistics/searchStatisticsList.vue
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
<template>
|
||||||
|
<div class="article-manager">
|
||||||
|
<el-card :bordered="false" shadow="never" class="ivu-mt mt16" :body-style="{ padding: '0 20px 20px' }">
|
||||||
|
<!-- <div >
|
||||||
|
<el-form :model="page" label-width="80px" label-position="right" inline @submit.native.prevent class="mt16">
|
||||||
|
<el-form-item label="订单编号:">
|
||||||
|
<el-input clearable placeholder="订单编号/商品货号" v-model="page.params.orderCode" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="申请时间:">
|
||||||
|
<el-date-picker v-model="page.params.refundTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> </el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="处理状态:">
|
||||||
|
<el-select v-model="page.params.refundstatus" placeholder="状态" clearable @keyup.enter.native="getList">
|
||||||
|
<el-option label="待处理" value="0" />
|
||||||
|
<el-option label="已处理" value="1" />
|
||||||
|
<el-option label="已拒绝" value="-1" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="userSearchs">查询</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div> -->
|
||||||
|
<div class="Button">
|
||||||
|
<el-button type="primary" class="bnt" @click="refresh()">刷新</el-button>
|
||||||
|
<el-button class="export" @click="exports">导出</el-button>
|
||||||
|
</div>
|
||||||
|
<el-table
|
||||||
|
:data="tableList"
|
||||||
|
class="ivu-mt mt14"
|
||||||
|
v-loading="loading"
|
||||||
|
highlight-current-row
|
||||||
|
:row-key="getRowKey"
|
||||||
|
border
|
||||||
|
@selection-change="handleSelectRow"
|
||||||
|
empty-text="暂无数据"
|
||||||
|
>
|
||||||
|
<el-table-column label="商品名称" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.searchInfo }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="结果" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.searchNum }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="总搜索" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.searchNum }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="本月" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.month }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="本周" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.weeks }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="今日" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.day }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="操作" fixed="right" minWidth="100" align="center">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button type="text" @click="detail(scope.row)">查看</el-button>
|
||||||
|
<!-- <el-button @click="auth(scope.row, scope)" type="text" v-if="scope.row.refundStatus == '0'">审核</el-button> -->
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div class="acea-row row-right page">
|
||||||
|
<el-pagination
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:current-page="page.currentPage"
|
||||||
|
:page-sizes="[10, 15, 20, 30]"
|
||||||
|
:page-size="page.pageSize"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="page.totalCount"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import marketingApi from '@/api/finance/marketing.js'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'product_productList',
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
template: false,
|
||||||
|
batchModal: false,
|
||||||
|
grid: {
|
||||||
|
xl: 6,
|
||||||
|
lg: 8,
|
||||||
|
md: 12,
|
||||||
|
sm: 24,
|
||||||
|
xs: 24
|
||||||
|
},
|
||||||
|
page: {
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
params: {},
|
||||||
|
totalCount: 0
|
||||||
|
},
|
||||||
|
type: '',
|
||||||
|
tableList: [],
|
||||||
|
loading: false,
|
||||||
|
data: [],
|
||||||
|
total: 0,
|
||||||
|
ids: [],
|
||||||
|
goodsId: '',
|
||||||
|
isProductBox: false,
|
||||||
|
multipleSelection: [],
|
||||||
|
detailData: {} //详情对象
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
// delete this.page.params.orderStatus
|
||||||
|
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
activated() {},
|
||||||
|
methods: {
|
||||||
|
closeLabel(label) {
|
||||||
|
let index = this.dataLabel.indexOf(this.dataLabel.filter(d => d.id == label.id)[0])
|
||||||
|
this.dataLabel.splice(index, 1)
|
||||||
|
},
|
||||||
|
|
||||||
|
getPath() {},
|
||||||
|
// 导出
|
||||||
|
async exports() {
|
||||||
|
let [th, filekey, data, fileName] = [[], [], [], '']
|
||||||
|
let excelData = JSON.parse(JSON.stringify(this.artFrom))
|
||||||
|
excelData.page = 1
|
||||||
|
excelData.limit = 50
|
||||||
|
excelData.ids = this.ids
|
||||||
|
for (let i = 0; i < excelData.page + 1; i++) {
|
||||||
|
let lebData = await this.getExcelData(excelData)
|
||||||
|
if (!fileName) fileName = lebData.filename
|
||||||
|
if (!filekey.length) {
|
||||||
|
filekey = lebData.fileKey
|
||||||
|
}
|
||||||
|
if (!th.length) th = lebData.header
|
||||||
|
if (lebData.export.length) {
|
||||||
|
data = data.concat(lebData.export)
|
||||||
|
excelData.page++
|
||||||
|
} else {
|
||||||
|
this.$exportExcel(th, filekey, fileName, data)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getExcelData(excelData) {},
|
||||||
|
|
||||||
|
getRowKey(row) {
|
||||||
|
return row.id
|
||||||
|
},
|
||||||
|
// 选中某一行
|
||||||
|
handleSelectRow(selection) {
|
||||||
|
const uniqueArr = []
|
||||||
|
const ids = []
|
||||||
|
for (let i = 0; i < selection.length; i++) {
|
||||||
|
const item = selection[i]
|
||||||
|
if (!ids.includes(item.id)) {
|
||||||
|
uniqueArr.push(item)
|
||||||
|
ids.push(item.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.ids = ids
|
||||||
|
this.multipleSelection = uniqueArr
|
||||||
|
},
|
||||||
|
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.page.pageSize = val
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.page.currentPage = val
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
// 订单列表;
|
||||||
|
getList() {
|
||||||
|
marketingApi.getByPageNew(this.page).then(res => {
|
||||||
|
if ((res.code = 20000)) ({ list: this.tableList = [], totalCount: this.page.totalCount = 0 } = res.data)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 表格搜索
|
||||||
|
refresh() {
|
||||||
|
this.page.currentPage = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
// 数据导出;
|
||||||
|
exportData: function() {},
|
||||||
|
|
||||||
|
// 详情
|
||||||
|
detail(row) {
|
||||||
|
orderInfoApi.getRefund(row.id).then(res => {
|
||||||
|
if ((res.code = 20000)) {
|
||||||
|
this.detailData = res.data
|
||||||
|
this.refundDetailDialog = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 取消
|
||||||
|
auth(row, tit, num) {
|
||||||
|
// orderInfoApi.get(row.id).then(res => {
|
||||||
|
// if ((res.code = 20000)) {
|
||||||
|
this.detailData = row
|
||||||
|
this.verifyDialog = true
|
||||||
|
console.log(row)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
::v-deep .el-tabs__item {
|
||||||
|
height: 54px !important;
|
||||||
|
line-height: 54px !important;
|
||||||
|
}
|
||||||
|
::v-deep .ivu-modal-mask {
|
||||||
|
z-index: 999 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .ivu-modal-wrap {
|
||||||
|
z-index: 999 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Box {
|
||||||
|
::v-deep .ivu-modal-body {
|
||||||
|
height: 700px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.batch-box {
|
||||||
|
::v-deep .ivu-modal-body {
|
||||||
|
overflow: auto;
|
||||||
|
min-height: 350px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabBox_img {
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
z-index: 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .happy-scroll-content {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.demo-spin-icon-load {
|
||||||
|
animation: ani-demo-spin 1s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ani-demo-spin {
|
||||||
|
from {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.demo-spin-col {
|
||||||
|
height: 100px;
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.labelInput {
|
||||||
|
border: 1px solid #dcdee2;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 15px;
|
||||||
|
border-radius: 5px;
|
||||||
|
min-height: 30px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 12px;
|
||||||
|
|
||||||
|
.span {
|
||||||
|
color: #c5c8ce;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconxiayi {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-dropdown-link {
|
||||||
|
cursor: pointer;
|
||||||
|
color: var(--prev-color-primary);
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.el-icon-arrow-down {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.el-dropdown-menu__item {
|
||||||
|
a {
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.label_width {
|
||||||
|
width: 400px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user