From 21649936f7230593e3cd30df7426e3213c8d89e9 Mon Sep 17 00:00:00 2001
From: lion <120344285@qq.com>
Date: Sat, 19 Aug 2023 17:52:13 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=BB=9F=E8=AE=A1=E4=BC=9A?=
=?UTF-8?q?=E5=91=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/course/index.js | 49 ++++
src/components/XyTable/index.vue | 17 +-
src/views/course/component/addCourse.vue | 345 +++++++++++++++++++++++
src/views/course/index.vue | 115 ++++++++
src/views/order/orderList.vue | 2 +-
src/views/reports/productOrder.vue | 33 ++-
src/views/reports/returnOrder.vue | 15 +-
src/views/reports/typeOrder.vue | 22 +-
src/views/reports/userOrder.vue | 73 ++++-
9 files changed, 649 insertions(+), 22 deletions(-)
create mode 100644 src/api/course/index.js
create mode 100644 src/views/course/component/addCourse.vue
create mode 100644 src/views/course/index.vue
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
select.pageSize = e"
+ @pageIndexChange="pageChange"
+ :table-item="table">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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()
+ }
+ }
+
}
}