Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Skyeye云
Skyeye
提交
3392abb4
S
Skyeye
项目概览
Skyeye云
/
Skyeye
通知
1430
Star
162
Fork
130
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Skyeye
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3392abb4
编写于
3月 13, 2022
作者:
Skyeye云
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
统计分析完成
上级
18271809
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
335 addition
and
0 deletion
+335
-0
shop/src/main/resources/template/js/mealOrder/allMealOrderList.js
.../main/resources/template/js/mealOrder/allMealOrderList.js
+1
-0
shop/src/main/resources/template/js/mealOrder/storeMealOrderAdd.js
...main/resources/template/js/mealOrder/storeMealOrderAdd.js
+1
-0
shop/src/main/resources/template/js/mealOrder/storeMealOrderList.js
...ain/resources/template/js/mealOrder/storeMealOrderList.js
+1
-0
shop/src/main/resources/template/js/refundMealOrder/refundMealOrderList.js
...ources/template/js/refundMealOrder/refundMealOrderList.js
+1
-0
shop/src/main/resources/template/js/statistics/statistics.js
shop/src/main/resources/template/js/statistics/statistics.js
+127
-0
shop/src/main/resources/template/tpl/statistics/statistics.html
...rc/main/resources/template/tpl/statistics/statistics.html
+152
-0
web/src/main/resources/template/assets/lib/layui/custom.js
web/src/main/resources/template/assets/lib/layui/custom.js
+39
-0
web/src/main/resources/template/assets/lib/layui/customer/systemDateUtil.js
...rces/template/assets/lib/layui/customer/systemDateUtil.js
+13
-0
未找到文件。
shop/src/main/resources/template/js/mealOrder/allMealOrderList.js
浏览文件 @
3392abb4
...
...
@@ -27,6 +27,7 @@ layui.config({
// 加载套餐订单性质
shopUtil
.
queryMealOrderNatureList
(
function
(
json
){
$
(
"
#natureId
"
).
html
(
getDataUseHandlebars
(
selOption
,
json
));
form
.
render
(
'
select
'
);
});
table
.
render
({
...
...
shop/src/main/resources/template/js/mealOrder/storeMealOrderAdd.js
浏览文件 @
3392abb4
...
...
@@ -56,6 +56,7 @@ layui.config({
// 加载套餐订单性质
shopUtil
.
queryMealOrderNatureList
(
function
(
json
){
$
(
"
#natureId
"
).
html
(
getDataUseHandlebars
(
$
(
"
#selectTemplate
"
).
html
(),
json
));
form
.
render
(
'
select
'
);
});
textool
.
init
({
...
...
shop/src/main/resources/template/js/mealOrder/storeMealOrderList.js
浏览文件 @
3392abb4
...
...
@@ -22,6 +22,7 @@ layui.config({
// 加载套餐订单性质
shopUtil
.
queryMealOrderNatureList
(
function
(
json
){
$
(
"
#natureId
"
).
html
(
getDataUseHandlebars
(
selOption
,
json
));
form
.
render
(
'
select
'
);
});
form
.
on
(
'
select(storeId)
'
,
function
(
data
)
{
...
...
shop/src/main/resources/template/js/refundMealOrder/refundMealOrderList.js
浏览文件 @
3392abb4
...
...
@@ -24,6 +24,7 @@ layui.config({
// 加载套餐订单性质
shopUtil
.
queryMealOrderNatureList
(
function
(
json
){
$
(
"
#natureId
"
).
html
(
getDataUseHandlebars
(
selOption
,
json
));
form
.
render
(
'
select
'
);
});
laydate
.
render
({
...
...
shop/src/main/resources/template/js/statistics/statistics.js
0 → 100644
浏览文件 @
3392abb4
layui
.
config
({
base
:
basePath
,
version
:
skyeyeVersion
}).
extend
({
window
:
'
js/winui.window
'
,
echarts
:
'
../echarts/echarts
'
,
echartsTheme
:
'
../echarts/echartsTheme
'
}).
define
([
'
window
'
,
'
jquery
'
,
'
winui
'
,
'
form
'
,
'
echarts
'
,
'
laydate
'
],
function
(
exports
)
{
winui
.
renderColor
();
var
$
=
layui
.
$
,
form
=
layui
.
form
,
laydate
=
layui
.
laydate
;
var
selOption
=
getFileContent
(
'
tpl/template/select-option.tpl
'
);
var
entTime
=
getOneYMFormatDate
();
var
startTime
=
getPointYMFormatDate
(
DateAdd
(
"
-m
"
,
5
,
new
Date
(
entTime
)));
$
(
"
#createTime
"
).
val
(
startTime
+
'
~
'
+
entTime
);
laydate
.
render
({
elem
:
'
#createTime
'
,
type
:
'
month
'
,
range
:
'
~
'
,
done
:
function
(
value
,
date
){
$
(
"
#createTime
"
).
val
(
value
);
resetData
();
}
});
form
.
render
();
// 加载区域
shopUtil
.
getShopAreaMation
(
function
(
json
){
$
(
"
#areaId
"
).
html
(
getDataUseHandlebars
(
selOption
,
json
));
form
.
render
(
'
select
'
);
});
form
.
on
(
'
select(areaId)
'
,
function
(
data
)
{
if
(
isNull
(
data
.
value
)){
$
(
"
#storeId
"
).
html
(
''
);
form
.
render
(
'
select
'
);
resetData
();
}
else
{
shopUtil
.
queryStoreListByAreaId
(
data
.
value
,
function
(
json
){
$
(
"
#storeId
"
).
html
(
getDataUseHandlebars
(
selOption
,
json
));
form
.
render
(
'
select
'
);
resetData
();
});
}
});
form
.
on
(
'
select(storeId)
'
,
function
(
data
)
{
resetData
();
});
// 加载套餐订单性质
shopUtil
.
queryMealOrderNatureList
(
function
(
json
){
$
(
"
#natureId
"
).
html
(
getDataUseHandlebars
(
selOption
,
json
));
form
.
render
(
'
select
'
);
});
form
.
on
(
'
select(natureId)
'
,
function
(
data
)
{
resetData
();
});
function
getParams
(){
var
startTime
=
""
,
endTime
=
""
;
if
(
!
isNull
(
$
(
"
#createTime
"
).
val
())){
startTime
=
$
(
"
#createTime
"
).
val
().
split
(
'
~
'
)[
0
].
trim
();
endTime
=
$
(
"
#createTime
"
).
val
().
split
(
'
~
'
)[
1
].
trim
();
}
return
{
startTime
:
startTime
,
endTime
:
endTime
,
areaId
:
$
(
"
#areaId
"
).
val
(),
natureId
:
$
(
"
#natureId
"
).
val
(),
storeId
:
isNull
(
$
(
"
#storeId
"
).
val
())
?
""
:
$
(
"
#storeId
"
).
val
(),
};
}
resetData
()
var
myChart1
,
myChart2
,
myChart3
,
myChart4
,
myChart5
;
function
resetData
(){
AjaxPostUtil
.
request
({
url
:
shopBasePath
+
"
queryStatisticsShop
"
,
params
:
getParams
(),
type
:
'
json
'
,
method
:
'
POST
'
,
callback
:
function
(
json
){
if
(
json
.
returnCode
==
0
){
$
(
"
#mealOrderMemberByNum
"
).
html
(
json
.
bean
.
mealOrderMemberByNum
+
"
个
"
);
$
(
"
#mealOrderNum
"
).
html
(
json
.
bean
.
mealOrderNum
+
"
单
"
);
$
(
"
#keepFitOrderNum
"
).
html
(
json
.
bean
.
keepFitOrderNum
+
"
单
"
);
$
(
"
#keepFitOrderPrice
"
).
html
(
json
.
bean
.
keepFitOrderPrice
+
"
元
"
);
myChart1
=
renderEcharts
(
"
echart1
"
,
'
保养套餐销售比对
'
,
''
,
''
,
json
.
bean
.
monthMealOrderNum
);
myChart2
=
renderEcharts
(
"
echart2
"
,
'
保养对比
'
,
''
,
''
,
json
.
bean
.
monthKeepFitOrderNum
);
myChart3
=
renderEcharts2
(
"
echart3
"
,
'
保养套餐销售门店比例
'
,
''
,
json
.
bean
.
storeMealOrderNum
);
myChart4
=
renderEcharts2
(
"
echart4
"
,
'
保养门店比例
'
,
''
,
json
.
bean
.
storeKeepFitOrderNum
);
myChart5
=
renderEcharts2
(
"
echart5
"
,
'
订单性质比例
'
,
''
,
json
.
bean
.
natureMealOrderNum
);
}
else
{
winui
.
window
.
msg
(
json
.
returnMessage
,
{
icon
:
2
,
time
:
2000
});
}
}});
}
function
renderEcharts
(
id
,
title
,
subtext
,
yTitle
,
rows
)
{
var
myChart
=
echarts
.
init
(
document
.
getElementById
(
id
));
var
nameStr
=
new
Array
();
var
numStr
=
new
Array
();
$
.
each
(
rows
,
function
(
i
,
item
){
nameStr
.
push
(
item
.
name
);
numStr
.
push
(
item
.
value
);
});
var
option
=
getOption
(
title
,
''
,
nameStr
,
yTitle
,
numStr
,
'
bar
'
);
myChart
.
setOption
(
option
);
return
myChart
;
}
function
renderEcharts2
(
id
,
title
,
subtext
,
rows
)
{
var
myChart
=
echarts
.
init
(
document
.
getElementById
(
id
));
var
option
=
getPieChatOption
(
title
,
subtext
,
rows
);
myChart
.
setOption
(
option
);
return
myChart
;
}
window
.
onresize
=
function
(){
myChart1
.
resize
();
myChart2
.
resize
();
myChart3
.
resize
();
myChart4
.
resize
();
myChart5
.
resize
();
}
exports
(
'
statistics
'
,
{});
});
shop/src/main/resources/template/tpl/statistics/statistics.html
0 → 100644
浏览文件 @
3392abb4
<!DOCTYPE html>
<html>
<head>
<meta
charset=
"utf-8"
/>
<title></title>
<link
href=
"../../assets/lib/layui/css/layui.css"
rel=
"stylesheet"
/>
<link
href=
"../../assets/lib/winui/css/winui.css"
rel=
"stylesheet"
/>
</head>
<body
style=
"background-color: rgb(242, 242, 242);"
>
<div
class=
"layui-fluid"
>
<form
class=
"layui-form layui-form-pane layui-col-xs12"
action=
""
>
<div
class=
"layui-form-item margin-top-10 layui-col-space15"
style=
"background-color: white;"
>
<div
class=
"layui-inline"
style=
"margin-bottom: 0px"
>
<label
class=
"layui-form-label"
>
区域
</label>
<div
class=
"layui-input-inline"
>
<select
id=
"areaId"
name=
"areaId"
lay-filter=
"areaId"
lay-search=
""
>
</select>
</div>
<label
class=
"layui-form-label"
>
门店
</label>
<div
class=
"layui-input-inline"
>
<select
id=
"storeId"
name=
"storeId"
lay-filter=
"storeId"
lay-search=
""
>
</select>
</div>
<label
class=
"layui-form-label"
>
性质
</label>
<div
class=
"layui-input-inline"
>
<select
id=
"natureId"
name=
"natureId"
lay-filter=
"natureId"
lay-search=
""
>
</select>
</div>
<label
class=
"layui-form-label"
>
日期范围
</label>
<div
class=
"layui-input-inline"
>
<input
type=
"text"
id=
"createTime"
name=
"createTime"
placeholder=
"请选择日期范围"
class=
"layui-input"
/>
</div>
</div>
</div>
<div
class=
"layui-col-xs12 margin-top-10 layui-col-space15"
>
<div
class=
"layui-col-sm6 layui-col-md3"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
会员量
</div>
<div
class=
"layui-card-body layuiadmin-card-list"
>
<p
class=
"layuiadmin-big-font"
id=
"mealOrderMemberByNum"
>
0个
</p>
<p>
已支付/已收货的套餐订单购买会员数。
</p>
</div>
</div>
</div>
<div
class=
"layui-col-sm6 layui-col-md3"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
保养套餐销售量
</div>
<div
class=
"layui-card-body layuiadmin-card-list"
>
<p
class=
"layuiadmin-big-font"
id=
"mealOrderNum"
>
0单
</p>
<p>
已支付/已收货的套餐订单数。
</p>
</div>
</div>
</div>
<div
class=
"layui-col-sm6 layui-col-md3"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
保养量
</div>
<div
class=
"layui-card-body layuiadmin-card-list"
>
<p
class=
"layuiadmin-big-font"
id=
"keepFitOrderNum"
>
0单
</p>
<p>
保养完成/已核销保养订单的数量。
</p>
</div>
</div>
</div>
<div
class=
"layui-col-sm6 layui-col-md3"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
保养金额
</div>
<div
class=
"layui-card-body layuiadmin-card-list"
>
<p
class=
"layuiadmin-big-font"
id=
"keepFitOrderPrice"
>
0.00元
</p>
<p>
保养完成/已核销保养订单的总金额。
</p>
</div>
</div>
</div>
<div
class=
"layui-col-xs6"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
保养套餐销售比对
</div>
<div
class=
"layui-card-body"
>
<div
id=
"echart1"
class=
"layui-row"
style=
"height: 400px;"
>
</div>
</div>
</div>
</div>
<div
class=
"layui-col-xs6"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
保养对比
</div>
<div
class=
"layui-card-body"
>
<div
id=
"echart2"
class=
"layui-row"
style=
"height: 400px;"
>
</div>
</div>
</div>
</div>
<div
class=
"layui-col-xs4"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
保养套餐销售门店比例
</div>
<div
class=
"layui-card-body"
>
<div
id=
"echart3"
class=
"layui-row"
style=
"height: 400px;"
>
</div>
</div>
</div>
</div>
<div
class=
"layui-col-xs4"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
保养门店比例
</div>
<div
class=
"layui-card-body"
>
<div
id=
"echart4"
class=
"layui-row"
style=
"height: 400px;"
>
</div>
</div>
</div>
</div>
<div
class=
"layui-col-xs4"
>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header"
>
订单性质比例
</div>
<div
class=
"layui-card-body"
>
<div
id=
"echart5"
class=
"layui-row"
style=
"height: 400px;"
>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
<script
src=
"../../assets/lib/layui/layui.js"
></script>
<script
src=
"../../assets/lib/layui/custom.js"
></script>
<script
type=
"text/javascript"
>
layui
.
config
({
base
:
'
../../js/statistics/
'
}).
use
(
'
statistics
'
);
</script>
</body>
</html>
\ No newline at end of file
web/src/main/resources/template/assets/lib/layui/custom.js
浏览文件 @
3392abb4
...
...
@@ -392,6 +392,45 @@ function getOption(title, subtext, xNameData, yTitle, yNameData, type){
};
}
/**
* echarts简单图形参数
* @param {} title 标题
* @param {} subtext 描述
* @param {} data 数据
* @return {}
*/
function
getPieChatOption
(
title
,
subtext
,
data
){
return
{
title
:
{
text
:
title
,
subtext
:
subtext
,
left
:
'
center
'
},
tooltip
:
{
trigger
:
'
item
'
},
legend
:
{
bottom
:
'
5%
'
,
left
:
'
center
'
},
series
:
[
{
name
:
''
,
type
:
'
pie
'
,
radius
:
'
50%
'
,
data
:
data
,
emphasis
:
{
itemStyle
:
{
shadowBlur
:
10
,
shadowOffsetX
:
0
,
shadowColor
:
'
rgba(0, 0, 0, 0.5)
'
}
}
}
]
};
}
// 移除指定value值
function
removeByValue
(
arr
,
val
){
for
(
var
i
=
0
;
i
<
arr
.
length
;
i
++
){
...
...
web/src/main/resources/template/assets/lib/layui/customer/systemDateUtil.js
浏览文件 @
3392abb4
...
...
@@ -42,6 +42,14 @@ function getOneYMFormatDate(){
return
year
.
toString
()
+
"
-
"
+
month
.
toString
();
}
// 获取指定Date的日期
function
getPointYMFormatDate
(
date
){
var
year
=
date
.
getFullYear
();
var
month
=
date
.
getMonth
()
+
1
;
month
=
(
month
<
10
?
"
0
"
+
month
:
month
);
return
year
.
toString
()
+
"
-
"
+
month
.
toString
();
}
/**
* 获取指定日期是第几周
*
...
...
@@ -399,6 +407,11 @@ function DateAdd(interval, number, date) {
return
date
;
break
;
}
case
"
-m
"
:
{
date
.
setMonth
(
date
.
getMonth
()
-
number
);
return
date
;
break
;
}
case
"
w
"
:
{
date
.
setDate
(
date
.
getDate
()
+
number
*
7
);
return
date
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录