文件

197 行
8.1 KiB
HTML
可执行文件

<!--[1.8.74]-->
<div id="salableApp" v-cloak>
<!-- 搜索 -->
<el-form inline style="margin-bottom: 10px;" size="small">
<el-form-item>
<el-input v-model="keyword" clearable placeholder="名称/货号/条码"
class="page-input"></el-input>
</el-form-item>
<el-form-item>
<select-goods-category :user-type="2"
:store-id="store_id"
:category-id1.sync="person1"
:category-id2.sync="person2"
:category-id3.sync="person3"></select-goods-category>
</el-form-item>
<el-form-item>
<el-select v-model="sort_type" placeholder="排序方式" clearable>
<el-option value="1" label="按销量正序排序"></el-option>
<el-option value="2" label="按销量倒序排序"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-date-picker
v-model="start_time"
type="datetime"
placeholder="开始时间"
:clearable="false"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
<el-date-picker
v-model="end_time"
type="datetime"
:clearable="false"
placeholder="结束时间"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="search" size="small">查询</el-button>
<if condition="$authArr['Bestexport'] eq true">
<el-button v-if="storeAuth.data_export==1" @click="orderExport()">导出</el-button>
</if>
</el-form-item>
</el-form>
<!-- 列表 -->
<div style="max-width: calc(100vw - 10px);">
<el-table border :data="bestGoodsList" style="width: calc(100vw - 10px);"
size="mini" :header-cell-style="{background:'#F5F7FA',color:'#606266'}"
max-height="500"
v-loading="loading"
element-loading-text="数据获取中"
element-loading-spinner="el-icon-loading">
<el-table-column align="center" type="index" label="序号" width="50"></el-table-column>
<el-table-column prop="goods_name" label="商品名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="goods_number" label="货号" show-overflow-tooltip></el-table-column>
<el-table-column prop="goods_code" label="条码" show-overflow-tooltip></el-table-column>
<el-table-column prop="class_name" label="类目" show-overflow-tooltip></el-table-column>
<el-table-column prop="sell_num" label="销量" show-overflow-tooltip>
<template slot-scope="scope" slot="header">
<el-popover
placement="bottom"
title="详解"
width="100"
trigger="hover"
content="默认一个月">
<span slot="reference" size="mini">总销量<i class="el-icon-question"></i></span>
</el-popover>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 15, 20, 25, 30, 35, 40, 45, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="currentLen">
</el-pagination>
</div>
</div>
<script src="/Public/Retail/common/js/select-goods-category.js"></script>
<script type="text/javascript">
var salableApp = new Vue({
el: '#salableApp',
data() {
return {
store_id: localStorage.store_id,
merchant_id: localStorage.merchant_id,
sort_type: '',
loading: true,
keyword: '',
start_time: '',
end_time: '',
person1: '',
person2: '',
person3: '',
bestGoodsList: [],
currentPage: 1,
currentLimit: 10,
currentLen: 0,
}
},
methods: {
//导出
orderExport(page = 1, type = 1, directory_name = '') {
this.loading = true;
this.loadingText = '文件生成中,请耐心等待';
if (type == 1) {
$.ajax({
url: "{:U('salableInfoExcel')}",
type: 'POST',
data: {
seek_data: {
sort_type: this.sort_type,
keyword: this.keyword,
start_time: this.start_time,
end_time: this.end_time,
person1: this.person1,
person2: this.person2,
person3: this.person3,
},
},
success: (res) => {
if (res.status == 1) {
this.orderExport(++page, res.type, res.directory_name);
} else {
this.loading = false;
this.$confirm(res.msg, '提示', {
confirmButtonText: '确定',
type: 'warning'
}).then(() => {
}).catch(() => {
});
}
},
error: (res) => {
this.loading = false;
}
});
} else {
this.loading = false;
window.open(`{:U('salableInfoExcel')}?directory_name=${directory_name}`);
}
},
//搜索
search() {
this.getBestList();
},
handleSizeChange(val) {
this.currentLimit = val;//切换每页数量
this.currentPage = 1;
this.getBestList();
},
handleCurrentChange(val) {
this.currentPage = val;
this.getBestList();//切换页数
},
getBestList() {
$.ajax({
url: "{:U('bestGoodsList')}",
type: "post",
data: {
seek_data: {
sort_type: this.sort_type,
keyword: this.keyword,
start_time: this.start_time,
end_time: this.end_time,
person1: this.person1,
person2: this.person2,
person3: this.person3,
},
page: this.currentPage,
limit: this.currentLimit
},
success: (res) => {
this.loading = false;
if(res.status==1){
this.bestGoodsList = res.sell_sum;
this.$nextTick(() => {
this.currentLen = parseInt(res.total);
})
}
}
})
},
},
created() {
let time = this.getThisMonthTime()
this.start_time = time[0]
this.end_time = time[1]
this.getBestList();
}
})
</script>