|
@@ -5,35 +5,39 @@
|
|
|
<el-tab-pane label="经销商订购情况" name="1"> </el-tab-pane>
|
|
|
<el-tab-pane label="课程订购情况" name="2"></el-tab-pane>
|
|
|
</el-tabs>
|
|
|
- <el-header height="40px">
|
|
|
- <div class="flex-box">
|
|
|
+ <div class="flex-box" style="margin-bottom: 10px;">
|
|
|
<el-date-picker
|
|
|
v-model="searchTime"
|
|
|
type="daterange"
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始日期"
|
|
|
end-placeholder="结束日期"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
<div class="search" v-if="activeIndex == '1'">
|
|
|
<el-input
|
|
|
- placeholder="搜索课程"
|
|
|
- v-model.trim="searchText"
|
|
|
- @keyup.enter.native="courseSearch"
|
|
|
+ placeholder="搜索经销商"
|
|
|
+ v-model.trim="searchDealer"
|
|
|
+ @keyup.enter.native="dealerSearch"
|
|
|
>
|
|
|
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
<div class="search" v-else>
|
|
|
<el-input
|
|
|
- placeholder="搜索经销商"
|
|
|
- v-model.trim="searchDealer"
|
|
|
- @keyup.enter.native="dealerSearch"
|
|
|
+ placeholder="搜索课程"
|
|
|
+ v-model.trim="searchText"
|
|
|
+ @keyup.enter.native="courseSearch"
|
|
|
>
|
|
|
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
- <el-select v-model="sortValue" placeholder="排序">
|
|
|
+ <el-select
|
|
|
+ v-model="sortValue"
|
|
|
+ placeholder="排序"
|
|
|
+ @change="recordList.sort(sortBy('amount', sortValue))"
|
|
|
+ >
|
|
|
<el-option
|
|
|
v-for="item in sortOptions"
|
|
|
:key="item.value"
|
|
@@ -43,25 +47,37 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
- </el-header>
|
|
|
<el-container direction="vertical">
|
|
|
- <el-table :data="recordList" border stripe>
|
|
|
- <el-table-column label="经销商" align="center" v-if='activeIndex == "1"'>
|
|
|
- <template slot-scope="scope">{{ scope.row.dealer_name }}</template>
|
|
|
+ <el-table :data="recordList" border stripe v-loading="loading">
|
|
|
+ <el-table-column
|
|
|
+ label="经销商"
|
|
|
+ align="center"
|
|
|
+ v-if="activeIndex == '1'"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">{{ scope.row.userName }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="course_name"
|
|
|
+ label="手机号"
|
|
|
+ align="center"
|
|
|
+ v-if="activeIndex == '1'"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">{{
|
|
|
+ scope.row.mobile == "" ? "无" : scope.row.mobile
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="subjectName"
|
|
|
label="课程标题"
|
|
|
align="center"
|
|
|
- v-if='activeIndex == "2"'
|
|
|
+ v-if="activeIndex == '2'"
|
|
|
></el-table-column>
|
|
|
<el-table-column label="时间区间" align="center">
|
|
|
- <template slot-scope="scope"
|
|
|
- >{{ scope.row.satet_time }}-{{ scope.row.end_time }}</template
|
|
|
- >
|
|
|
+ <template slot-scope="scope">{{
|
|
|
+ scope.row.timeScope == "" ? "全部" : scope.row.timeScope
|
|
|
+ }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="sale"
|
|
|
+ prop="amount"
|
|
|
label="经销商订购量(套)"
|
|
|
align="center"
|
|
|
></el-table-column>
|
|
@@ -74,50 +90,56 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</el-container>
|
|
|
- <div class="proness">
|
|
|
+ <!-- <div class="proness">
|
|
|
<el-pagination
|
|
|
background
|
|
|
layout="prev, pager, next"
|
|
|
- @prev-click="prevPage()"
|
|
|
- @next-click="nextPage()"
|
|
|
- @current-change="curPageChange()"
|
|
|
+ @current-change="curPageChange(1)"
|
|
|
:current-page.sync="page.cur"
|
|
|
:page-size="page.size"
|
|
|
:total="page.total"
|
|
|
:hide-on-single-page="true"
|
|
|
>
|
|
|
</el-pagination>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</el-container>
|
|
|
<el-dialog
|
|
|
title="记录明细"
|
|
|
:visible.sync="showDetail"
|
|
|
- width="50%"
|
|
|
+ width="70%"
|
|
|
center
|
|
|
@close="cancle()"
|
|
|
>
|
|
|
- <el-table :data="recordDetails" border stripe>
|
|
|
- <el-table-column label="经销商" align="center" v-if='activeIndex == "2"'>
|
|
|
- <template slot-scope="scope">{{ scope.row.dealer_name }}</template>
|
|
|
+ <el-table :data="recordDetails" border stripe v-loading="rLoading">
|
|
|
+ <el-table-column
|
|
|
+ label="发起人(名额交易发起人)"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">{{ scope.row.fromUserMobile===0?'平台增加':scope.row.fromUserMobile }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="course_name"
|
|
|
- label="课程标题"
|
|
|
+ label="接收人(名额交易接收人)"
|
|
|
align="center"
|
|
|
- v-if='activeIndex == "1"'
|
|
|
+ v-if="activeIndex == '2'"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">{{ scope.row.toUserMobile===0?'平台扣除':scope.row.toUserMobile}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="subjectName"
|
|
|
+ label="课程名称"
|
|
|
+ align="center"
|
|
|
+ v-if="activeIndex == '1'"
|
|
|
></el-table-column>
|
|
|
<el-table-column label="名额变动数量" align="center">
|
|
|
- <template slot-scope="scope"
|
|
|
- >{{ scope.row.direction == 'to'?'-':'+' }}{{ scope.row.num }}</template
|
|
|
- >
|
|
|
+ <template slot-scope="scope">{{ scope.row.amount }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="beizhu"
|
|
|
- label="备注(套)"
|
|
|
+ prop="content"
|
|
|
+ label="备注"
|
|
|
align="center"
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="create_time"
|
|
|
+ prop="createTime"
|
|
|
label="创建时间"
|
|
|
align="center"
|
|
|
></el-table-column>
|
|
@@ -126,9 +148,7 @@
|
|
|
<el-pagination
|
|
|
background
|
|
|
layout="prev, pager, next"
|
|
|
- @prev-click="prevPage(1)"
|
|
|
- @next-click="nextPage(1)"
|
|
|
- @current-change="curPageChange(1)"
|
|
|
+ @current-change="curPageChange(2)"
|
|
|
:current-page.sync="page1.cur"
|
|
|
:page-size="page1.size"
|
|
|
:total="page1.total"
|
|
@@ -141,168 +161,192 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import {
|
|
|
+ getDealerOrCourseRecode,
|
|
|
+ getDealerOrderList,
|
|
|
+ getCourseOrderList,
|
|
|
+} from "../api";
|
|
|
export default {
|
|
|
- name: "",
|
|
|
+ name: "statistics",
|
|
|
components: {},
|
|
|
props: [],
|
|
|
data() {
|
|
|
return {
|
|
|
- page:{
|
|
|
- total:1000,
|
|
|
- size:10,
|
|
|
- cur:1
|
|
|
+ loading:true,
|
|
|
+ rLoading:true,
|
|
|
+ page: {
|
|
|
+ total: 0,
|
|
|
+ size: 10,
|
|
|
+ cur: 1,
|
|
|
},
|
|
|
- page1:{
|
|
|
- total:50,
|
|
|
- size:10,
|
|
|
- cur:1
|
|
|
+ page1: {
|
|
|
+ total: 0,
|
|
|
+ size: 10,
|
|
|
+ cur: 1,
|
|
|
},
|
|
|
showDetail: false,
|
|
|
- searchTime: "",
|
|
|
+ searchTime: null,
|
|
|
searchText: "",
|
|
|
searchDealer: "",
|
|
|
activeIndex: "1",
|
|
|
sortValue: 0,
|
|
|
sortOptions: [
|
|
|
{
|
|
|
- label: "默认",
|
|
|
+ label: "由多到少",
|
|
|
value: 0,
|
|
|
},
|
|
|
{
|
|
|
- label: "时间排序",
|
|
|
+ label: "由少到多",
|
|
|
value: 1,
|
|
|
},
|
|
|
- {
|
|
|
- label: "卖出数量",
|
|
|
- value: 2,
|
|
|
- },
|
|
|
- ],
|
|
|
- recordList: [
|
|
|
- {
|
|
|
- id: 154465,
|
|
|
- dealer_name: "张三",
|
|
|
- satet_time: "2023-2-15",
|
|
|
- end_time: "2023-5-11",
|
|
|
- sale: 440,
|
|
|
- course_name: "经济讲堂1",
|
|
|
- },
|
|
|
- {
|
|
|
- id: 154433,
|
|
|
- dealer_name: "李四",
|
|
|
- satet_time: "2023-3-15",
|
|
|
- end_time: "2023-4-11",
|
|
|
- sale: 440,
|
|
|
- course_name: "经济讲堂2",
|
|
|
- },
|
|
|
- {
|
|
|
- id: 154123,
|
|
|
- dealer_name: "王五",
|
|
|
- satet_time: "2023-1-15",
|
|
|
- end_time: "2023-3-11",
|
|
|
- sale: 440,
|
|
|
- course_name: "经济讲堂3",
|
|
|
- },
|
|
|
- ],
|
|
|
- recordDetails: [
|
|
|
- {
|
|
|
- dealer_name: "张三",
|
|
|
- course_name: "课程精讲5",
|
|
|
- direction: "to",
|
|
|
- num: 10,
|
|
|
- sale: 100,
|
|
|
- satet_time: "2022-5-4",
|
|
|
- end_time: "2022-9-1",
|
|
|
- beizhu:"哦哦kik尽快",
|
|
|
- create_time:"2022-1-1"
|
|
|
- },
|
|
|
- {
|
|
|
- dealer_name: "李四",
|
|
|
- course_name: "课程精讲4",
|
|
|
- direction: "from",
|
|
|
- num: 10,
|
|
|
- sale: 100,
|
|
|
- satet_time: "2022-5-4",
|
|
|
- end_time: "2022-9-1",
|
|
|
- beizhu:"哦哦kik尽快",
|
|
|
- create_time:"2022-2-1"
|
|
|
- },
|
|
|
- {
|
|
|
- dealer_name: "王五",
|
|
|
- course_name: "课程精讲3",
|
|
|
- direction: "from",
|
|
|
- num: 10,
|
|
|
- sale: 100,
|
|
|
- satet_time: "2022-5-4",
|
|
|
- end_time: "2022-9-1",
|
|
|
- beizhu:"哦哦kik尽快",
|
|
|
- create_time:"2022-3-1"
|
|
|
- },
|
|
|
- {
|
|
|
- dealer_name: "小六",
|
|
|
- course_name: "课程精讲2",
|
|
|
- direction: "to",
|
|
|
- num: 10,
|
|
|
- sale: 100,
|
|
|
- satet_time: "2022-5-4",
|
|
|
- end_time: "2022-9-1",
|
|
|
- beizhu:"哦哦kik尽快",
|
|
|
- create_time:"2022-6-1"
|
|
|
- },
|
|
|
],
|
|
|
+ recordList: [],
|
|
|
+ recordDetails: [],
|
|
|
};
|
|
|
},
|
|
|
- created() {},
|
|
|
+ watch: {
|
|
|
+ searchTime() {
|
|
|
+ if (this.activeIndex == "1") {
|
|
|
+ this.getList();
|
|
|
+ } else {
|
|
|
+ this.getCourseList();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
methods: {
|
|
|
- // 上一页
|
|
|
- prevPage(type){
|
|
|
- if(type){
|
|
|
- console.log(this.page1)
|
|
|
- }else{
|
|
|
- console.log(this.page)
|
|
|
+ sortBy(attr, type) {
|
|
|
+ let rev = type ? 1 : -1;
|
|
|
+ if (rev == undefined) {
|
|
|
+ rev = 1;
|
|
|
+ } else {
|
|
|
+ rev ? 1 : -1;
|
|
|
}
|
|
|
+ return function (a, b) {
|
|
|
+ a = a[attr];
|
|
|
+ b = b[attr];
|
|
|
+ if (a < b) {
|
|
|
+ return rev * -1;
|
|
|
+ }
|
|
|
+ if (a > b) {
|
|
|
+ return rev * 1;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ };
|
|
|
},
|
|
|
- // 下一页
|
|
|
- nextPage(type){
|
|
|
- if(type){
|
|
|
- console.log(this.page1)
|
|
|
- }else{
|
|
|
- console.log(this.page)
|
|
|
+ //获取经销商统计列表
|
|
|
+ getList() {
|
|
|
+ let data = {
|
|
|
+ page: this.page.cur,
|
|
|
+ size: this.page.size,
|
|
|
+ };
|
|
|
+ if (this.searchTime && this.searchTime.length > 0) {
|
|
|
+ data.startDate = this.searchTime[0];
|
|
|
+ data.endDate = this.searchTime[1];
|
|
|
+ }
|
|
|
+ if (this.searchDealer) {
|
|
|
+ data.keyword = this.searchDealer;
|
|
|
+ }
|
|
|
+ getDealerOrderList(data).then((res) => {
|
|
|
+ this.loading = false
|
|
|
+ this.recordList = res.list;
|
|
|
+ this.page.cur = res.current;
|
|
|
+ this.page.total = res.total;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //获取课程统计列表
|
|
|
+ getCourseList() {
|
|
|
+ let data = {
|
|
|
+ page: this.page.cur,
|
|
|
+ size: this.page.size,
|
|
|
+ };
|
|
|
+ if (this.searchTime && this.searchTime.length > 0) {
|
|
|
+ data.startDate = this.searchTime[0];
|
|
|
+ data.endDate = this.searchTime[1];
|
|
|
+ }
|
|
|
+ if (this.searchText) {
|
|
|
+ data.keyword = this.searchText;
|
|
|
}
|
|
|
+ getCourseOrderList(data).then((res) => {
|
|
|
+ this.loading = false
|
|
|
+ this.recordList = res.list;
|
|
|
+ this.page.cur = res.current;
|
|
|
+ this.page.total = res.total;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //获取指定经销商/课程的订购明细
|
|
|
+ getAssignDrtailList(type, id) {
|
|
|
+ let data = {
|
|
|
+ page: this.page1.cur,
|
|
|
+ pageSize: this.page1.size,
|
|
|
+ };
|
|
|
+ if (type == 1) {
|
|
|
+ data.userId = id;
|
|
|
+ } else {
|
|
|
+ data.subjectId = id;
|
|
|
+ }
|
|
|
+ getDealerOrCourseRecode(data).then((res) => {
|
|
|
+ this.rLoading = false
|
|
|
+ this.recordDetails = res.list;
|
|
|
+ this.page1.cur = res.current;
|
|
|
+ this.page1.total = res.total;
|
|
|
+ });
|
|
|
},
|
|
|
// 切换当前页
|
|
|
- curPageChange(type){
|
|
|
- if(type){
|
|
|
- console.log(this.page1)
|
|
|
- }else{
|
|
|
- console.log(this.page)
|
|
|
+ curPageChange(type) {
|
|
|
+ if (type == 1&&this.activeIndex == '1') {
|
|
|
+ this.loading = true
|
|
|
+ this.getList();
|
|
|
+ } else if (type == 1&&this.activeIndex != '1'){
|
|
|
+ this.loading = true
|
|
|
+ this.getCourseList();
|
|
|
+ }else if(type == 2){
|
|
|
+ this.rLoading = true
|
|
|
+ this.getAssignDrtailList()
|
|
|
}
|
|
|
},
|
|
|
// 初始化明细表单并关闭弹窗
|
|
|
cancle() {
|
|
|
- // this.recordDetails=[]
|
|
|
- this.showDetail = false
|
|
|
+ this.recordDetails=[]
|
|
|
+ this.showDetail = false;
|
|
|
},
|
|
|
// 查看明细
|
|
|
toDetail(row) {
|
|
|
- console.log(row);
|
|
|
- this.showDetail = true
|
|
|
+ if (row.userId && !row.subjectId) {
|
|
|
+ this.rLoading = true
|
|
|
+ this.getAssignDrtailList(1, row.userId);
|
|
|
+ } else if (!row.userId && row.subjectId) {
|
|
|
+ this.rLoading = true
|
|
|
+ this.getAssignDrtailList(2, row.subjectId);
|
|
|
+ }
|
|
|
+ this.showDetail = true;
|
|
|
},
|
|
|
// 课程搜索
|
|
|
courseSearch() {
|
|
|
- if (this.searchText) {
|
|
|
- console.log(this.searchText);
|
|
|
- }
|
|
|
+ this.loading = true
|
|
|
+ this.getCourseList();
|
|
|
},
|
|
|
// 经销商名称搜索
|
|
|
dealerSearch() {
|
|
|
- if (this.searchDealer) {
|
|
|
- console.log(this.searchDealer);
|
|
|
- }
|
|
|
+ this.loading = true
|
|
|
+ this.getList();
|
|
|
},
|
|
|
// 导航标签切换
|
|
|
handleClick() {
|
|
|
- this.searchTime = ''
|
|
|
- console.log(this.activeIndex);
|
|
|
+ this.sortValue = 0;
|
|
|
+ this.searchTime = null;
|
|
|
+ this.searchText = "";
|
|
|
+ this.searchDealer = "";
|
|
|
+ this.recordList = [];
|
|
|
+ if (this.activeIndex == "1") {
|
|
|
+ this.loading = true
|
|
|
+ this.getList();
|
|
|
+ } else {
|
|
|
+ this.loading = true
|
|
|
+ this.getCourseList();
|
|
|
+ }
|
|
|
},
|
|
|
},
|
|
|
};
|
|
@@ -315,7 +359,7 @@ export default {
|
|
|
.search {
|
|
|
margin: 0 20px;
|
|
|
}
|
|
|
- .proness{
|
|
|
+ .proness {
|
|
|
display: flex;
|
|
|
justify-content: center;
|
|
|
margin-top: 20px;
|