diff --git a/src/api/course/index.js b/src/api/course/index.js new file mode 100644 index 0000000..34a5554 --- /dev/null +++ b/src/api/course/index.js @@ -0,0 +1,49 @@ +import request from '@/utils/request' + +export function index(params){ + return request({ + method:'get', + url:'/api/admin/course/index', + params + }) +} + +export function show(params){ + return request({ + method:'get', + url:'/api/admin/course/show', + params + }) +} + +export function save(data){ + return request({ + method:'post', + url:'/api/admin/course/save', + data + }) +} + +export function store(data){ + return request({ + method:'post', + url:'/api/admin/course/store', + data + }) +} + +export function destroy(data){ + return request({ + method:'post', + url:'/api/admin/course/destroy', + data + }) +} + +export function delCourseItem(params){ + return request({ + method:'post', + url:'/api/admin/course/destroy-item', + params + }) +} diff --git a/src/components/XyTable/index.vue b/src/components/XyTable/index.vue index ee6f436..d5b91a7 100644 --- a/src/components/XyTable/index.vue +++ b/src/components/XyTable/index.vue @@ -171,6 +171,10 @@ export default { type: Boolean, default: true, }, + showIndex:{ + type: Boolean, + default: true, + } }, data() { return { @@ -663,10 +667,15 @@ export default { ["expand-change"]: this.expandChange, }} > - - + { + (this.showIndex? + :"" + ) + + } + {this.tableFormat.map((item, index) => { if ($scopedSlots[item.prop]) { return $scopedSlots[item.prop](item, index); diff --git a/src/views/course/component/addCourse.vue b/src/views/course/component/addCourse.vue new file mode 100644 index 0000000..6202f34 --- /dev/null +++ b/src/views/course/component/addCourse.vue @@ -0,0 +1,345 @@ + + + + + diff --git a/src/views/course/index.vue b/src/views/course/index.vue new file mode 100644 index 0000000..2dc66b3 --- /dev/null +++ b/src/views/course/index.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/order/orderList.vue b/src/views/order/orderList.vue index fc5c304..0db1584 100644 --- a/src/views/order/orderList.vue +++ b/src/views/order/orderList.vue @@ -236,7 +236,7 @@ label: "订单名称", width: 220, align: 'left', - fixed: 'left' + // fixed: 'left' }, { prop: 'bookable_name', diff --git a/src/views/reports/productOrder.vue b/src/views/reports/productOrder.vue index e426460..c8143a3 100644 --- a/src/views/reports/productOrder.vue +++ b/src/views/reports/productOrder.vue @@ -68,10 +68,29 @@ { prop: 'max_order', label: '多次下单人数', - width: 180, - formatter: (cell, data, value) => { - return value ? value : 0 - } + width: 180, + customFn: (row) => { + return (
{ + this.toReturnUser(row.id) + } + } + }> + { + row.max_order?row.max_order:0 + }
) + } + // formatter: (cell, data, value) => { + // return value ? value : 0 + // } }, { prop: 'max_product.name', @@ -81,7 +100,11 @@ ] } }, - methods: { + methods: { + toReturnUser(id){ + let url =`/admin/#/reports/userOrder?total_related_person=5&product_pid=`+id+`&start_date=`+this.select.start_date+`&end_date=`+this.select.end_date + let seeBuy = window.open(url, 'seeBuy','location=0') + }, summaryMethod(param) { console.log("para", param) const { diff --git a/src/views/reports/returnOrder.vue b/src/views/reports/returnOrder.vue index 969079c..1ab5190 100644 --- a/src/views/reports/returnOrder.vue +++ b/src/views/reports/returnOrder.vue @@ -18,9 +18,9 @@
-

总退单人数:{{list.total_return_order_person}}

-

退单后仍会下单人数:{{list.total_return_order_once_more_person}}

-

退单后不再下单人数:{{list.total_return_order_no_person}}

+

总退单人数:{{list.total_return_order_person}}

+

退单后仍会下单人数:{{list.total_return_order_once_more_person}}

+

退单后不再下单人数:{{list.total_return_order_no_person}}

不再下单人数占退单总退单人数比例:{{returnPer(list.percentage)}}

@@ -77,6 +77,10 @@ returnPer(val){ return val?val.toFixed(4)*100 + "%":0 }, + toReturnUser(id){ + let url =`/admin/#/reports/userOrder?total_related_person=`+id+`&start_date=`+this.select.start_date+`&end_date=`+this.select.end_date + let seeBuy = window.open(url, 'seeBuy','location=0') + } }, mounted() { @@ -106,5 +110,10 @@ width:50%; display: inline-block; border-right: 1px solid #ddd; + } + .totals p span:last-child{ + color:#bf617c; + cursor:pointer; + text-decoration: underline; } diff --git a/src/views/reports/typeOrder.vue b/src/views/reports/typeOrder.vue index e83aa29..454ba07 100644 --- a/src/views/reports/typeOrder.vue +++ b/src/views/reports/typeOrder.vue @@ -10,8 +10,9 @@ - + + 查询
@@ -19,7 +20,7 @@

下单订单数:{{list.add_total_order}}

下单取消数:{{list.add_total_order_canceled}}

下单完成数:{{list.add_total_order_finished}}

-

多板块下单人数:{{list.total_order_more_type_person}}

+

多板块下单人数:{{list.total_order_more_type_person}}

@@ -96,6 +97,21 @@ this.select.end_date = this.today } this.getTotal() + }, + toReturnUser(id){ + + // return + let product_type_list = '' + if(this.select.product_type_list.length<1){ + product_type_list = '' + }else{ + product_type_list = this.select.product_type_list.join(",") + } + console.log("this.select.product_type_list",this.select.product_type_list) + console.log("product_type_list",product_type_list) + // return + let url =`/admin/#/reports/userOrder?product_type_list=`+product_type_list+`&total_related_person=`+id+`&start_date=`+this.select.start_date+`&end_date=`+this.select.end_date + let seeBuy = window.open(url, 'seeBuy','location=0') } }, diff --git a/src/views/reports/userOrder.vue b/src/views/reports/userOrder.vue index eaddce7..d296f86 100644 --- a/src/views/reports/userOrder.vue +++ b/src/views/reports/userOrder.vue @@ -95,7 +95,12 @@ create_time:'', over_time:'', order_count:'', - write_off:'' + write_off:'', + total_related_person:'', + start_date:'', + end_date:'', + product_pid:'', + product_type_list:[] }, dateRange:[], areas: ["吴中区", "吴江区", "姑苏区", "工业园区", "高新区", "相城区", "昆山", "常熟", "张家港", "太仓"], @@ -180,7 +185,7 @@ } }>
- {index+1}、{k.state_name}- + {index+1}、{k.items?.state_name}- {k.created_at}- { k.order_name}
@@ -270,7 +275,12 @@ create_time:this.select.create_time, over_time:this.select.over_time, write_off:this.select.write_off, - order_count:this.select.order_count + order_count:this.select.order_count, + total_related_person:this.select.total_related_person, + start_date:this.select.start_date, + end_date:this.select.end_date, + product_pid:this.select.product_pid, + product_type_list:this.select.product_type_list }) this.total = res.total this.list = res.data @@ -284,10 +294,61 @@ area: this.select.area, is_phone: this.select.is_phone ? 1 : "" }, '用户列表.xlsx') - } + }, + reloadUser(){ + console.log("this.$route",this.$route) + // return + if(this.$route.query?.total_related_person){ + this.select.total_related_person = this.$route.query.total_related_person + } + if(this.$route.query?.start_date){ + this.select.start_date = this.$route.query.start_date + } + if(this.$route.query?.end_date){ + this.select.end_date = this.$route.query.end_date + } + if(this.$route.query?.product_pid){ + this.select.product_pid = this.$route.query.product_pid + } + if(this.$route.query?.product_type_list){ + this.select.product_type_list = this.$route.query.product_type_list.split(',') + } + + this.getMembers() + } + }, - mounted() { - this.getMembers() + mounted() { + this.reloadUser() + }, + watch:{ + '$route.query.total_related_person'(newval){ + if(newval){ + this.reloadUser() + } + }, + '$route.query.start_date'(newval){ + if(newval){ + this.reloadUser() + } + }, + '$route.query.end_date'(newval){ + if(newval){ + this.reloadUser() + } + }, + '$route.query.product_pid'(newval){ + if(newval){ + this.reloadUser() + } + }, + '$route.query.product_type_list'(newval){ + if(newval){ + console.log("newval",newval) + this.reloadUser() + } + } + } }