Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ElectricitySheep
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄媛媛
ElectricitySheep
Commits
0e5e4490
Commit
0e5e4490
authored
Apr 22, 2020
by
黄媛媛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
866267d9
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1225 additions
and
1 deletion
+1225
-1
common.css
src/assets/css/common.css
+51
-0
default.png
src/assets/img/default.png
+0
-0
balance.png
src/assets/img/userman/balance.png
+0
-0
del.png
src/assets/img/userman/del.png
+0
-0
edit.png
src/assets/img/userman/edit.png
+0
-0
integral.png
src/assets/img/userman/integral.png
+0
-0
wx.png
src/assets/img/userman/wx.png
+0
-0
MembersBuy.vue
src/components/UserMan/MembersBuy.vue
+190
-0
MembershipGrade.vue
src/components/UserMan/MembershipGrade.vue
+175
-0
setMember.vue
src/components/UserMan/setMember.vue
+219
-0
usersList.vue
src/components/UserMan/usersList.vue
+307
-0
verificationMember.vue
src/components/UserMan/verificationMember.vue
+196
-0
index.js
src/plug/index.js
+53
-0
index.js
src/router/index.js
+34
-1
No files found.
src/assets/css/common.css
0 → 100644
View file @
0e5e4490
.basefix
:after
{
clear
:
both
;
content
:
'.'
;
display
:
block
;
height
:
0
;
overflow
:
hidden
;
}
.f12
{
font-size
:
12px
;
font-family
:
"Microsoft YaHei"
!important
;
}
.f14
{
font-size
:
14px
;
}
.f20
{
font-size
:
20px
;
}
.f22
{
font-size
:
22px
;
}
.f40
{
font-size
:
40px
;
}
.head-title
{
font-size
:
14px
;
color
:
#303133
;
padding
:
18px
20px
;
box-sizing
:
border-box
;
background
:
#fff
;
}
.w100
{
width
:
100px
;
}
/*滚动条样式*/
::-webkit-scrollbar
{
/*滚动条整体样式*/
height
:
5px
;
width
:
4px
;
border-radius
:
5px
;
}
::-webkit-scrollbar-thumb
{
/*滚动条里面小方块*/
border-radius
:
5px
!important
;
background
:
#b5b5b5
!important
;
}
::-webkit-scrollbar-track
{
/*滚动条里面轨道*/
-webkit-box-shadow
:
inset
0
0
0
rgba
(
0
,
0
,
0
,
0.2
)
!important
;
border-radius
:
20px
!important
;
background
:
transparent
!important
;
}
\ No newline at end of file
src/assets/img/default.png
0 → 100644
View file @
0e5e4490
4.93 KB
src/assets/img/userman/balance.png
0 → 100644
View file @
0e5e4490
1.75 KB
src/assets/img/userman/del.png
0 → 100644
View file @
0e5e4490
1.67 KB
src/assets/img/userman/edit.png
0 → 100644
View file @
0e5e4490
1.62 KB
src/assets/img/userman/integral.png
0 → 100644
View file @
0e5e4490
1.84 KB
src/assets/img/userman/wx.png
0 → 100644
View file @
0e5e4490
15.4 KB
src/components/UserMan/MembersBuy.vue
0 → 100644
View file @
0e5e4490
<
template
>
<div
class=
"usersList"
>
<div
class=
"head-title"
>
用户购买记录
<el-button
@
click=
"dialogVisible=true"
style=
"float:right;margin-top: -5px;"
size=
"small"
type=
"primary"
>
批量导出
</el-button>
</div>
<div
class=
"content"
>
<div>
<el-date-picker
size=
"small"
v-model=
"value"
type=
"datetimerange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
<div
style=
"margin-left:20px"
class=
"searchInput"
>
<el-input
style=
"display:inline-block;width:225px;height:30px"
placeholder=
"请输入内容"
v-model=
"value"
size=
"small"
clearable
>
</el-input>
<span
class=
"el-icon-search"
style=
"color:#979dad;font-size:14px;position:relative;top:1px"
></span>
</div>
</div>
<el-table
v-loading=
"loading"
:data=
"tableData"
border
style=
"width: 100%;margin:20px 0"
>
<el-table-column
prop=
"ID"
label=
"ID"
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"280"
label=
"订单号"
>
<template
slot-scope=
"scope"
>
<div
class=
"app-image"
style=
"background-image: url('https://wx.qlogo.cn/mmopen/vi_32/HO8Q9ibH7UtSFzHs67f0MH6VWjftiboELYLBya5OxpZkHDlicLMq39gxRHS4NhOG1AUepQ13JdUyrT7eM52u6hAsg/132');
background-size: cover; background-position: center center; width: 50px; height: 50px; border-radius: 0%; float: left; margin-right: 8px;"
></div>
<div
flex=
"dir:left cross:center"
>
易飞易
&
港中旅小李15351281772
</div>
<img
style=
"width:24px;height:24px"
src=
"../../assets/img/userman/wx.png"
alt=
""
class=
"platform-img"
>
<button
type=
"button"
class=
"el-button el-button--success"
style=
"float: right; padding: 5px !important;"
>
<span>
显示OpenId
</span>
</button>
<div>
ow_7I5dE_g9Fe1BuBPKdk8RNtEj0
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"昵称"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"支付金额"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"购买情况"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
0
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"支付时间"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
0
</span>
</
template
>
</el-table-column>
</el-table>
<el-pagination
style=
"text-align:right"
background
@
current-change=
"handleCurrentChange"
:page-size=
"msg.pageSize"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
<!-- 选择导出信息 -->
<el-dialog
title=
"选择导出信息"
:visible
.
sync=
"dialogVisible"
width=
"960px"
>
<el-form
style=
"border: 1px solid #F0F2F7;"
:model=
"addMsg"
ref=
"addMsg"
label-width=
"100px"
>
<div
style=
"box-sizing: border-box;background-color: #F3F5F6;width: 100%;padding-left: 20px;height: 50px;line-height: 50px;"
>
<el-checkbox
:indeterminate=
"isIndeterminate"
v-model=
"checkAll"
@
change=
"handleCheckAllChange"
>
全选
</el-checkbox>
</div>
<div
style=
"margin: 15px 0;"
></div>
<div
style=
"padding: 10px 25px 20px;"
>
<el-checkbox-group
v-model=
"checkedCities"
@
change=
"handleCheckedCitiesChange"
>
<el-checkbox
style=
"margin-bottom:10px"
v-for=
"city in cities"
:label=
"city"
:key=
"city"
>
{{city}}
</el-checkbox>
</el-checkbox-group>
</div>
</el-form>
<div
style=
"text-align:right;margin-top:20px"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"dialogVisible = false"
>
导出
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
loading
:
false
,
checkAll
:
false
,
checkedCities
:
[
'上海'
,
'北京'
],
cities
:
[
'上海'
,
'北京'
,
'广州'
,
'深圳'
],
cityOptions
:
[
'上海'
,
'北京'
,
'广州'
,
'深圳'
],
isIndeterminate
:
true
,
addMsg
:{},
dialogVisible
:
false
,
value
:
''
,
options
:[],
tableData
:[
{
ID
:
'111'
}
],
msg
:{
pageIndex
:
1
,
pageSize
:
15
,
},
total
:
0
,
};
},
created
()
{
},
methods
:
{
handleCheckAllChange
(
val
)
{
this
.
checkedCities
=
val
?
this
.
cityOptions
:
[];
this
.
isIndeterminate
=
false
;
},
handleCheckedCitiesChange
(
value
)
{
let
checkedCount
=
value
.
length
;
this
.
checkAll
=
checkedCount
===
this
.
cities
.
length
;
this
.
isIndeterminate
=
checkedCount
>
0
&&
checkedCount
<
this
.
cities
.
length
;
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getList
(){
this
.
loading
=
true
;
},
},
mounted
()
{
}
};
</
script
>
<
style
>
.usersList
.blue
{
color
:
#409EFF
;
}
.usersList
.content
.searchInput
{
border
:
1px
solid
#DCDFE6
;
border-radius
:
4px
;
}
.usersList
.content
.searchInput
.el-input__inner
{
border
:
none
;
outline
:
none
;
height
:
30px
;
line-height
:
30px
;
}
.usersList
.content
.searchInput
{
line-height
:
normal
;
display
:
inline-table
;
width
:
100%
;
border-collapse
:
separate
;
border-spacing
:
0
;
width
:
250px
;
margin-right
:
20px
;
}
.usersList
.content
{
background
:
#fff
;
margin-top
:
10px
;
padding
:
20px
;
box-sizing
:
border-box
;
}
</
style
>
src/components/UserMan/MembershipGrade.vue
0 → 100644
View file @
0e5e4490
<
template
>
<div
class=
"verificationMember usersList"
>
<div
class=
"head-title"
>
会员等级
<el-button
@
click=
"goUrl"
style=
"float:right;margin-top: -5px;"
size=
"small"
type=
"primary"
>
添加会员等级
</el-button>
</div>
<div
class=
"content"
>
<div>
<div
class=
"searchInput"
>
<el-input
style=
"display:inline-block;width:225px;height:30px"
placeholder=
"请输入会员名称搜索"
v-model=
"value"
size=
"small"
clearable
>
</el-input>
<span
class=
"el-icon-search"
style=
"color:#979dad;font-size:14px;position:relative;top:1px"
></span>
</div>
</div>
<el-table
:data=
"tableData"
border
style=
"width: 100%;margin:20px 0"
>
<el-table-column
prop=
"ID"
label=
"ID"
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"280"
label=
"会员等级"
>
<template
slot-scope=
"scope"
>
<div
class=
"app-image"
style=
"background-image: url('https://wx.qlogo.cn/mmopen/vi_32/HO8Q9ibH7UtSFzHs67f0MH6VWjftiboELYLBya5OxpZkHDlicLMq39gxRHS4NhOG1AUepQ13JdUyrT7eM52u6hAsg/132');
background-size: cover; background-position: center center; width: 50px; height: 50px; border-radius: 0%; float: left; margin-right: 8px;"
></div>
<div
flex=
"dir:left cross:center"
>
易飞易
&
港中旅小李15351281772
</div>
<img
style=
"width:24px;height:24px"
src=
"../../assets/img/userman/wx.png"
alt=
""
class=
"platform-img"
>
<button
type=
"button"
class=
"el-button el-button--success"
style=
"float: right; padding: 5px !important;"
>
<span>
显示OpenId
</span>
</button>
<div>
ow_7I5dE_g9Fe1BuBPKdk8RNtEj0
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"会员名称"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"折扣"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"购买价格(元)"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
0
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"累计金额升级条件(元)"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
0
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"启用状态"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
0
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"200"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<img
style=
"width:32px;height:32px"
src=
"../../assets/img/userman/edit.png"
alt=
""
>
<img
style=
"width:32px;height:32px;margin:0 10px"
src=
"../../assets/img/userman/integral.png"
alt=
""
>
<img
style=
"width:32px;height:32px"
src=
"../../assets/img/userman/balance.png"
alt=
""
>
</
template
>
</el-table-column>
</el-table>
<el-pagination
style=
"text-align:right"
background
@
current-change=
"handleCurrentChange"
:page-size=
"msg.pageSize"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
addMsg
:{},
dialogVisible
:
false
,
value
:
''
,
options
:[],
tableData
:[
{
ID
:
'111'
}
],
msg
:{
pageIndex
:
1
,
pageSize
:
15
,
},
total
:
0
,
rules
:
{
name
:
[
{
required
:
true
,
message
:
'新手机号'
,
trigger
:
'blur'
}
],
},
};
},
created
()
{
},
methods
:
{
goUrl
(){
this
.
$router
.
push
({
name
:
'setMember'
,
query
:
{
blank
:
"y"
}
});
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getList
(){
},
},
mounted
()
{
}
};
</
script
>
<
style
>
.usersList
.blue
{
color
:
#409EFF
;
}
.usersList
.content
.searchInput
{
border
:
1px
solid
#DCDFE6
;
border-radius
:
4px
;
}
.usersList
.content
.searchInput
.el-input__inner
{
border
:
none
;
outline
:
none
;
height
:
30px
;
line-height
:
30px
;
}
.usersList
.content
.searchInput
{
line-height
:
normal
;
display
:
inline-table
;
width
:
100%
;
border-collapse
:
separate
;
border-spacing
:
0
;
width
:
250px
;
margin-right
:
20px
;
}
.usersList
.content
{
background
:
#fff
;
margin-top
:
10px
;
padding
:
20px
;
box-sizing
:
border-box
;
}
</
style
>
src/components/UserMan/setMember.vue
0 → 100644
View file @
0e5e4490
<
template
>
<div
class=
"setMember usersList"
>
<div
class=
"head-title"
>
<span
@
click=
"goUrl"
class=
"blue"
>
会员等级
</span>
/ 会员设置
</div>
<div
class=
"content"
>
<el-form
:model=
"addMsg"
:rules=
"rules"
ref=
"addMsg"
label-width=
"150px"
>
<el-form-item
label=
"会员等级"
prop=
"name"
>
<el-select
style=
"width:293px;"
size=
"small"
v-model=
"addMsg.name"
placeholder=
"请选择活动区域"
>
<el-option
label=
"区域一"
value=
"shanghai"
></el-option>
<el-option
label=
"区域二"
value=
"beijing"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"等级名称"
prop=
"name"
>
<el-input
style=
"width:293px;"
size=
"small"
v-model=
"addMsg.name"
></el-input>
</el-form-item>
<el-form-item
class=
"discount commonLabel"
label=
"折扣"
prop=
"name"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"请输入0.1~10之间的数字"
placement=
"top-start"
>
<i
class=
"elzk el-tooltip el-icon-info"
></i>
</el-tooltip>
<el-input
style=
"width:293px;"
type=
"number"
min=
"0.1"
size=
"small"
placeholder=
"请输入内容"
v-model=
"addMsg.name"
class=
"input-with-select"
>
<el-button
slot=
"append"
>
折
</el-button>
</el-input>
</el-form-item>
<el-form-item
label=
"会员状态"
prop=
"name"
>
<el-switch
v-model=
"addMsg.name"
active-color=
"#409EFF"
active-value=
"100"
inactive-value=
"0"
>
</el-switch>
</el-form-item>
<el-form-item
label=
"会员图标"
prop=
"name"
>
<el-button
size=
"small"
>
选择文件
</el-button>
<div><img
style=
"width:80px;height:80px"
src=
"../../assets/img/default.png"
alt=
""
></div>
</el-form-item>
<el-form-item
label=
"会员背景色"
prop=
"name"
>
<el-button
size=
"small"
>
选择文件
</el-button>
<div><img
style=
"width:80px;height:80px"
src=
"../../assets/img/default.png"
alt=
""
></div>
</el-form-item>
<el-form-item
label=
"累计金额自动升级"
>
<el-switch
v-model=
"addMsg.name"
active-color=
"#409EFF"
active-value=
"100"
inactive-value=
"0"
>
</el-switch>
</el-form-item>
<el-form-item
class=
"commonLabel"
label=
"升级条件"
prop=
"name"
>
<el-input
style=
"width:293px;"
type=
"number"
min=
"0.1"
size=
"small"
placeholder=
"请输入内容"
v-model=
"addMsg.name"
class=
"input-with-select"
>
<template
slot=
"prepend"
>
累计完成订单金额满
</
template
>
<el-button
slot=
"append"
>
元
</el-button>
</el-input>
</el-form-item>
<el-form-item
label=
"会员是否可购买"
>
<el-switch
v-model=
"addMsg.name"
active-color=
"#409EFF"
active-value=
"100"
inactive-value=
"0"
>
</el-switch>
</el-form-item>
<el-form-item
class=
"commonLabel"
label=
"购买价格"
prop=
"name"
>
<el-input
style=
"width:293px;"
type=
"number"
min=
"0.1"
size=
"small"
placeholder=
"请输入购买价格"
v-model=
"addMsg.name"
class=
"input-with-select"
>
<el-button
slot=
"append"
>
元
</el-button>
</el-input>
</el-form-item>
<el-form-item
label=
"h会员权益(多条)"
>
<div
style=
"width:700px;"
>
<el-table
class=
"setTable"
:data=
"tableData"
border
style=
"margin-bottom:20px"
>
<el-table-column
prop=
"ID"
width=
"180px"
label=
"权益标题"
>
<
template
slot-scope=
"scope"
>
<el-input
style=
"width:159px"
size=
"small"
v-model=
"input"
placeholder=
"请输入内容"
></el-input>
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"180px"
label=
"权益图标"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"small"
>
选择图片
</el-button>
<img
style=
"margin-left: 10px;width:50px;height:50px"
src=
"../../assets/img/default.png"
alt=
""
>
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"500px"
label=
"权益内容"
>
<
template
slot-scope=
"scope"
>
<el-input
type=
"textarea"
:rows=
"2"
placeholder=
"请输入内容"
v-model=
"textarea"
>
</el-input>
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"80px"
label=
"操作"
>
<
template
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<img
style=
"width:32px;height:32px"
src=
"../../assets/img/userman/del.png"
alt=
""
>
</el-tooltip>
</
template
>
</el-table-column>
</el-table>
</div>
<div>
<i
class=
"el-icon-plus"
style=
"font-weight: bolder;margin-left:5px;color:#409EFF"
></i>
<span
style=
"color: rgb(53, 53, 53);font-size: 14px;"
>
新增权益
</span>
</div>
</el-form-item>
<el-form-item
label=
"会员规则"
prop=
"name"
>
</el-form-item>
</el-form>
</div>
<div
style=
"margin-top:20px"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"dialogVisible = false"
>
保存
</el-button>
</div>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
val
:
''
,
addMsg
:{},
dialogVisible
:
false
,
value
:
''
,
options
:[],
tableData
:[
{
ID
:
'111'
}
],
msg
:{
pageIndex
:
1
,
pageSize
:
15
,
},
total
:
0
,
rules
:
{
name
:
[
{
required
:
true
,
message
:
'新手机号'
,
trigger
:
'blur'
}
],
},
};
},
created
()
{
},
methods
:
{
goUrl
(){
this
.
$router
.
push
({
name
:
'MembershipGrade'
,
query
:
{
blank
:
"y"
}
});
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getList
(){
},
},
mounted
()
{
}
};
</
script
>
<
style
>
.setMember
.setTable
.el-table__body
.cell
{
display
:
flex
;
align-items
:
center
;
}
.setMember
.commonLabel
.el-form-item__label
{
margin-top
:
-4px
;
}
.setMember
.discount
.el-form-item__label
{
padding-right
:
30px
;
margin-top
:
-4px
;
}
.setMember
.el-form-item
.elzk
{
position
:
absolute
;
left
:
-25px
;
top
:
8px
;
}
.setMember
.el-form-item
{
position
:
relative
;
}
.usersList
.blue
{
color
:
#409EFF
;
}
.usersList
.content
{
background
:
#fff
;
margin-top
:
10px
;
padding
:
20px
;
box-sizing
:
border-box
;
}
</
style
>
src/components/UserMan/usersList.vue
0 → 100644
View file @
0e5e4490
<
template
>
<div
class=
"usersList"
>
<div
class=
"head-title"
>
用户管理
<el-button
@
click=
"dialogVisible=true"
style=
"float:right;margin-top: -5px;"
size=
"small"
type=
"primary"
>
批量导出
</el-button>
</div>
<div
class=
"content"
>
<div>
<el-select
class=
"w100"
style=
"margin-right: 10px;"
v-model=
"msg.MemberGrade"
size=
"small"
placeholder=
"请选择"
>
<el-option
label=
"全部会员"
:value=
"0"
></el-option>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<el-select
class=
"w100"
style=
"margin-right: 10px;"
v-model=
"msg.Source"
size=
"small"
placeholder=
"请选择"
>
<el-option
label=
"全部平台"
:value=
"0"
></el-option>
<el-option
v-for=
"item in platList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
<div
class=
"searchInput"
style=
"width:150px"
>
<el-input
style=
"display:inline-block;width:125px;height:30px"
placeholder=
"请输入ID"
v-model=
"msg.Id"
size=
"small"
clearable
>
</el-input>
<span
@
click=
"getList"
class=
"el-icon-search"
style=
"color:#979dad;font-size:14px;position:relative;top:1px"
></span>
</div>
<div
class=
"searchInput"
style=
"width:150px"
>
<el-input
style=
"display:inline-block;width:125px;height:30px"
placeholder=
"请输入昵称"
v-model=
"msg.Name"
size=
"small"
clearable
>
</el-input>
<span
@
click=
"getList"
class=
"el-icon-search"
style=
"color:#979dad;font-size:14px;position:relative;top:1px"
></span>
</div>
<div
class=
"searchInput"
style=
"width:150px"
>
<el-input
style=
"display:inline-block;width:125px;height:30px"
placeholder=
"请输入手机号"
v-model=
"msg.Moblie"
size=
"small"
clearable
>
</el-input>
<span
@
click=
"getList"
class=
"el-icon-search"
style=
"color:#979dad;font-size:14px;position:relative;top:1px"
></span>
</div>
</div>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width: 100%;margin:20px 0"
>
<el-table-column
prop=
"Id"
label=
"ID"
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"280"
label=
"头像"
>
<template
slot-scope=
"scope"
>
<div
class=
"app-image"
:style=
"
{backgroundImage:'url(' + scope.row.Photo + ')',backgroundSize:'cover'}">
</div>
<div
flex=
"dir:left cross:center"
>
{{
scope
.
row
.
Name
}}
</div>
<img
v-if=
"scope.row.Source==1"
style=
"width:24px;height:24px"
src=
"../../assets/img/userman/wx.png"
alt=
""
class=
"platform-img"
>
<button
type=
"button"
class=
"el-button el-button--success"
style=
"float: right; padding: 5px !important;"
>
<span
@
click=
"ChangeOpenidState(scope.$index, scope.row)"
>
显示OpenId
</span>
</button>
<div
v-show=
"scope.row.OpenIdState"
>
{{
scope
.
row
.
OpenId
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"Moblie"
label=
"手机号"
>
</el-table-column>
<el-table-column
prop=
"MemberGradeName"
label=
"会员类型"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"订单数"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
{{
scope
.
row
.
OrderNum
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"优惠券数量"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
{{
scope
.
row
.
CouponsNum
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"卡券数量"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
{{
scope
.
row
.
CardVolumeNum
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"余额"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
{{
scope
.
row
.
Balance
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"积分"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
{{
scope
.
row
.
Integral
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"CreateDate"
width=
"150"
label=
"加入时间"
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"200"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<img
style=
"width:32px;height:32px"
src=
"../../assets/img/userman/edit.png"
alt=
""
>
<img
style=
"width:32px;height:32px;margin:0 10px"
src=
"../../assets/img/userman/integral.png"
alt=
""
>
<img
style=
"width:32px;height:32px"
src=
"../../assets/img/userman/balance.png"
alt=
""
>
</
template
>
</el-table-column>
</el-table>
<el-pagination
style=
"text-align:right"
background
@
current-change=
"handleCurrentChange"
:page-size=
"msg.pageSize"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
<!-- 选择导出信息 -->
<el-dialog
title=
"选择导出信息"
:visible
.
sync=
"dialogVisible"
width=
"960px"
>
<el-form
style=
"border: 1px solid #F0F2F7;"
:model=
"addMsg"
ref=
"addMsg"
label-width=
"100px"
>
<div
style=
"box-sizing: border-box;background-color: #F3F5F6;width: 100%;padding-left: 20px;height: 50px;line-height: 50px;"
>
<el-checkbox
:indeterminate=
"isIndeterminate"
v-model=
"checkAll"
@
change=
"handleCheckAllChange"
>
全选
</el-checkbox>
</div>
<div
style=
"margin: 15px 0;"
></div>
<div
style=
"padding: 10px 25px 20px;"
>
<el-checkbox-group
v-model=
"checkedCities"
@
change=
"handleCheckedCitiesChange"
>
<el-checkbox
style=
"margin-bottom:10px"
v-for=
"city in cities"
:label=
"city.Id"
:key=
"city.Name"
>
{{city.Name}}
</el-checkbox>
</el-checkbox-group>
</div>
</el-form>
<div
style=
"text-align:right;margin-top:20px"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"Export"
>
导出
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
loading
:
false
,
checkAll
:
false
,
checkedCities
:
[],
cities
:
[],
cityOptions
:
[],
isIndeterminate
:
true
,
addMsg
:{},
dialogVisible
:
true
,
value
:
''
,
options
:[],
tableData
:[],
msg
:{
pageIndex
:
1
,
pageSize
:
15
,
Name
:
''
,
Source
:
0
,
MemberGrade
:
0
,
Id
:
0
,
Moblie
:
''
},
total
:
0
,
platList
:[],
};
},
created
()
{
this
.
getList
();
this
.
getplat
();
this
.
getDown
();
},
methods
:
{
Export
(){
this
.
msg
.
ExcelEnumIds
=
this
.
checkedCities
;
console
.
log
(
"this.msg"
,
this
.
msg
)
let
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
this
.
JavaGetLocalFile
(
"/api/user/GetMemberUserListToExcel"
,
msg
,
"用户管理.xls"
);
},
ChangeOpenidState
(
index
,
row
){
this
.
tableData
[
index
].
OpenIdState
=!
this
.
tableData
[
index
].
OpenIdState
;
},
getList
(){
this
.
loading
=
true
;
this
.
apipost
(
"/api/user/GetMemberUserPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
){
this
.
total
=
res
.
data
.
data
.
count
;
let
pageData
=
res
.
data
.
data
.
pageData
;
pageData
.
forEach
(
item
=>
{
item
.
OpenIdState
=
false
;
})
this
.
tableData
=
pageData
;
}
})
},
getDown
(){
this
.
cityOptions
=
[];
this
.
apipost
(
"/api/user/GetMemberUserExcelEnumList"
,{},
res
=>
{
this
.
cities
=
res
.
data
.
data
;
let
data
=
res
.
data
.
data
;
data
.
forEach
(
item
=>
{
this
.
cityOptions
.
push
(
item
.
Id
)
})
})
},
getplat
(){
this
.
apipost
(
"/api/user/GetMemberUserSourceEnumList"
,{},
res
=>
{
this
.
platList
=
res
.
data
.
data
;
})
},
handleCheckAllChange
(
val
)
{
this
.
checkedCities
=
val
?
this
.
cityOptions
:
[];
this
.
isIndeterminate
=
false
;
},
handleCheckedCitiesChange
(
value
)
{
let
checkedCount
=
value
.
length
;
this
.
checkAll
=
checkedCount
===
this
.
cities
.
length
;
this
.
isIndeterminate
=
checkedCount
>
0
&&
checkedCount
<
this
.
cities
.
length
;
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
},
mounted
()
{
}
};
</
script
>
<
style
>
.usersList
.app-image
{
background-position
:
center
center
;
width
:
50px
;
height
:
50px
;
border-radius
:
0%
;
float
:
left
;
margin-right
:
8px
;
}
.usersList
.blue
{
color
:
#409EFF
;
}
.usersList
.content
.searchInput
{
border
:
1px
solid
#DCDFE6
;
border-radius
:
4px
;
}
.usersList
.content
.searchInput
.el-input__inner
{
border
:
none
;
outline
:
none
;
height
:
30px
;
line-height
:
30px
;
}
.usersList
.content
.searchInput
{
line-height
:
normal
;
display
:
inline-table
;
width
:
100%
;
border-collapse
:
separate
;
border-spacing
:
0
;
width
:
250px
;
margin-right
:
20px
;
}
.usersList
.content
{
background
:
#fff
;
margin-top
:
10px
;
padding
:
20px
;
box-sizing
:
border-box
;
}
</
style
>
src/components/UserMan/verificationMember.vue
0 → 100644
View file @
0e5e4490
<
template
>
<div
class=
"verificationMember usersList"
>
<div
class=
"head-title"
>
核销员
<el-button
@
click=
"dialogVisible=true"
style=
"float:right;margin-top: -5px;"
size=
"small"
type=
"primary"
>
添加核销员
</el-button>
</div>
<div
class=
"content"
>
<div>
<el-select
class=
"w100"
style=
"margin-right: 10px;"
v-model=
"value"
size=
"small"
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<el-select
class=
"w100"
style=
"margin-right: 10px;"
v-model=
"value"
size=
"small"
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<div
class=
"searchInput"
>
<el-input
style=
"display:inline-block;width:225px;height:30px"
placeholder=
"请输入用户昵称搜索"
v-model=
"value"
size=
"small"
clearable
>
</el-input>
<span
class=
"el-icon-search"
style=
"color:#979dad;font-size:14px;position:relative;top:1px"
></span>
</div>
</div>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width: 100%;margin:20px 0"
>
<el-table-column
prop=
"ID"
label=
"用户ID"
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"280"
label=
"用户"
>
<template
slot-scope=
"scope"
>
<div
class=
"app-image"
style=
"background-image: url('https://wx.qlogo.cn/mmopen/vi_32/HO8Q9ibH7UtSFzHs67f0MH6VWjftiboELYLBya5OxpZkHDlicLMq39gxRHS4NhOG1AUepQ13JdUyrT7eM52u6hAsg/132');
background-size: cover; background-position: center center; width: 50px; height: 50px; border-radius: 0%; float: left; margin-right: 8px;"
></div>
<div
flex=
"dir:left cross:center"
>
易飞易
&
港中旅小李15351281772
</div>
<img
style=
"width:24px;height:24px"
src=
"../../assets/img/userman/wx.png"
alt=
""
class=
"platform-img"
>
<button
type=
"button"
class=
"el-button el-button--success"
style=
"float: right; padding: 5px !important;"
>
<span>
显示OpenId
</span>
</button>
<div>
ow_7I5dE_g9Fe1BuBPKdk8RNtEj0
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"所属门店"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"核销订单数"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"核销总额"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
0
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"核销卡券数"
>
<
template
slot-scope=
"scope"
>
<span
class=
"blue"
>
0
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
width=
"200"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<img
style=
"width:32px;height:32px"
src=
"../../assets/img/userman/edit.png"
alt=
""
>
<img
style=
"width:32px;height:32px;margin:0 10px"
src=
"../../assets/img/userman/integral.png"
alt=
""
>
<img
style=
"width:32px;height:32px"
src=
"../../assets/img/userman/balance.png"
alt=
""
>
</
template
>
</el-table-column>
</el-table>
<el-pagination
style=
"text-align:right"
background
@
current-change=
"handleCurrentChange"
:page-size=
"msg.pageSize"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
<!-- 选择导出信息 -->
<el-dialog
title=
"设置核销员"
:visible
.
sync=
"dialogVisible"
width=
"600px"
>
<el-form
:model=
"addMsg"
:rules=
"rules"
ref=
"addMsg"
label-width=
"100px"
>
<el-form-item
label=
"门店选择"
prop=
"name"
>
<el-input
style=
"width:230px"
size=
"small"
v-model=
"addMsg.name"
></el-input>
</el-form-item>
<el-form-item
label=
"昵称搜索"
prop=
"name"
>
<el-input
style=
"width:230px;"
size=
"small"
v-model=
"addMsg.name"
></el-input>
</el-form-item>
</el-form>
<div
style=
"text-align:right;margin-top:20px"
>
<el-button
size=
"small"
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"dialogVisible = false"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
loading
:
false
,
addMsg
:{},
dialogVisible
:
false
,
value
:
''
,
options
:[],
tableData
:[
{
ID
:
'111'
}
],
msg
:{
pageIndex
:
1
,
pageSize
:
15
,
},
total
:
0
,
rules
:
{
name
:
[
{
required
:
true
,
message
:
'新手机号'
,
trigger
:
'blur'
}
],
},
};
},
created
()
{
},
methods
:
{
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getList
(){
},
},
mounted
()
{
}
};
</
script
>
<
style
>
.usersList
.blue
{
color
:
#409EFF
;
}
.usersList
.content
.searchInput
{
border
:
1px
solid
#DCDFE6
;
border-radius
:
4px
;
}
.usersList
.content
.searchInput
.el-input__inner
{
border
:
none
;
outline
:
none
;
height
:
30px
;
line-height
:
30px
;
}
.usersList
.content
.searchInput
{
line-height
:
normal
;
display
:
inline-table
;
width
:
100%
;
border-collapse
:
separate
;
border-spacing
:
0
;
width
:
250px
;
margin-right
:
20px
;
}
.usersList
.content
{
background
:
#fff
;
margin-top
:
10px
;
padding
:
20px
;
box-sizing
:
border-box
;
}
</
style
>
src/plug/index.js
View file @
0e5e4490
...
@@ -56,6 +56,9 @@ export default {
...
@@ -56,6 +56,9 @@ export default {
let
domainUrl
=
''
;
let
domainUrl
=
''
;
domainUrl
=
"http://192.168.2.214:8200"
;
domainUrl
=
"http://192.168.2.214:8200"
;
domainUrl
=
"https://localhost:5001"
;
domainUrl
=
"https://localhost:5001"
;
let
javaUrldo
=
""
;
// javaUrldo = locationName.indexOf('localhost') !== -1 || locationName.indexOf('viitto') !== -1 ? (locationName.indexOf('oytour') !== -1 ? "http://property.oytour.com" : "http://47.96.12.235:9001") : "http://192.168.2.17:8088";
javaUrldo
=
"http://192.168.2.17:8088"
;
let
locationName
=
window
.
location
.
hostname
;
let
locationName
=
window
.
location
.
hostname
;
if
(
locationName
.
indexOf
(
'testerp.oytour'
)
!==
-
1
)
{
if
(
locationName
.
indexOf
(
'testerp.oytour'
)
!==
-
1
)
{
domainUrl
=
"http://testapi.oytour.com"
;
domainUrl
=
"http://testapi.oytour.com"
;
...
@@ -67,6 +70,8 @@ export default {
...
@@ -67,6 +70,8 @@ export default {
DomainUrl
:
domainUrl
,
DomainUrl
:
domainUrl
,
//常用提交数据URL
//常用提交数据URL
PostUrl
:
domainUrl
+
"/api/common/post"
,
PostUrl
:
domainUrl
+
"/api/common/post"
,
JavaLocalFileStreamDownLoadUrl
:
javaUrldo
,
};
};
return
obj
;
return
obj
;
},
},
...
@@ -229,5 +234,53 @@ export default {
...
@@ -229,5 +234,53 @@ export default {
}
}
},
faildCall
)
},
faildCall
)
}
}
Vue
.
prototype
.
JavaGetLocalFile
=
function
(
cmd
,
msg
,
fileName
,
successCall
)
{
var
apiurl
=
this
.
domainManager
().
JavaLocalFileStreamDownLoadUrl
+
cmd
;
var
timestamp
=
(
new
Date
()).
valueOf
();
if
(
!
localStorage
.
mall_userInfo
&&
localStorage
.
mall_userInfo
!=
""
&&
this
.
$route
.
path
.
toLowerCase
()
!=
"/login"
)
{
this
.
$router
.
push
({
path
:
'/login'
})
}
var
token
=
""
;
var
key
=
""
;
if
(
this
.
getLocalStorage
()
!=
null
)
{
token
=
this
.
getLocalStorage
().
Token
;
key
=
this
.
getLocalStorage
().
SecretKey
;
}
let
mall_userInfo
=
localStorage
.
mall_userInfo
?
JSON
.
parse
(
localStorage
.
mall_userInfo
)
:
''
;
var
encodeMsg
=
encodeURIComponent
(
JSON
.
stringify
(
msg
)).
toLowerCase
();
var
md5Str
=
md5
(
`cmd=
${
cmd
}
&msg=
${
encodeMsg
}
×tamp=
${
timestamp
}
&token=
${
token
}
&key=
${
key
}
`
);
let
tempLanguage
=
0
;
if
(
localStorage
.
language
&&
localStorage
.
language
!=
''
)
{
if
(
localStorage
.
language
==
"zh-TW"
)
{
tempLanguage
=
1
;
}
else
if
(
localStorage
.
language
==
"Japanese"
)
{
tempLanguage
=
2
;
}
}
var
postData
=
{
"msg"
:
msg
,
"timestamp"
:
timestamp
,
"token"
:
token
,
"sign"
:
md5Str
,
"languageId"
:
tempLanguage
,
"cmd"
:
cmd
,
}
this
.
$http
.
post
(
apiurl
,
postData
,
{
responseType
:
'arraybuffer'
}).
then
((
res
)
=>
{
let
blob
=
new
Blob
([
res
.
data
],
{
type
:
"application/vnd.ms-excel"
})
let
url
=
URL
.
createObjectURL
(
blob
);
let
link
=
document
.
createElement
(
'a'
);
link
.
href
=
url
;
link
.
setAttribute
(
"download"
,
fileName
);
document
.
body
.
appendChild
(
link
);
link
.
click
();
successCall
(
res
);
}).
catch
(
function
(
res
)
{});
}
}
}
}
}
src/router/index.js
View file @
0e5e4490
...
@@ -39,7 +39,40 @@ export default new Router({
...
@@ -39,7 +39,40 @@ export default new Router({
path
:
'/zanIndex'
,
path
:
'/zanIndex'
,
name
:
'zanIndex'
,
name
:
'zanIndex'
,
component
:
resolve
=>
require
([
'@/components/zanIndex'
],
resolve
),
component
:
resolve
=>
require
([
'@/components/zanIndex'
],
resolve
),
}
},
// 用户管理 用户列表
{
path
:
'/usersList'
,
name
:
'usersList'
,
component
:
resolve
=>
require
([
'@/components/UserMan/usersList'
],
resolve
),
},
// 用户管理 核销员
{
path
:
'/verificationMember'
,
name
:
'verificationMember'
,
component
:
resolve
=>
require
([
'@/components/UserMan/verificationMember'
],
resolve
),
},
// 用户管理 会员等级
{
path
:
'/MembershipGrade'
,
name
:
'MembershipGrade'
,
component
:
resolve
=>
require
([
'@/components/UserMan/MembershipGrade'
],
resolve
),
},
// 用户管理 会员等级/会员设置
{
path
:
'/setMember'
,
name
:
'setMember'
,
component
:
resolve
=>
require
([
'@/components/UserMan/setMember'
],
resolve
),
},
// 用户管理 会员等级/会员购买
{
path
:
'/MembersBuy'
,
name
:
'MembersBuy'
,
component
:
resolve
=>
require
([
'@/components/UserMan/MembersBuy'
],
resolve
),
},
]
]
},
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment