Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
study
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
Damon
study
Commits
3b5381ed
Commit
3b5381ed
authored
Jul 23, 2021
by
Facius
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-v1.0.0' of
https://git.banshouhui.com/wuzhenzhe/study
into dev-v1.0.0
parents
012c7a8e
de960bd0
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
700 additions
and
290 deletions
+700
-290
learn.js
src/api/learn.js
+21
-0
user.js
src/api/user.js
+11
-0
index.vue
src/components/answer-sheet/index.vue
+5
-13
index.vue
src/components/my-subject/index.vue
+7
-1
index.vue
src/components/swiper-limited-load/index.vue
+1
-0
pages.json
src/pages.json
+8
-3
mine.vue
src/pages/index/mine.vue
+1
-1
answer.vue
src/pages/learn/answer.vue
+41
-14
bank.vue
src/pages/mine/bank.vue
+124
-34
certify.vue
src/pages/mine/certify.vue
+141
-63
company.vue
src/pages/mine/company.vue
+122
-0
customer.vue
src/pages/mine/customer.vue
+44
-46
info.vue
src/pages/mine/info.vue
+111
-55
u-cell-group.vue
src/uview-ui/components/u-cell-group/u-cell-group.vue
+63
-60
No files found.
src/api/learn.js
View file @
3b5381ed
...
...
@@ -4,8 +4,10 @@ let learnApiFun = function(vm) {
let
getQuestion
=
async
(
params
=
{})
=>
await
vm
.
$u
.
post
(
'/rest/question/query/getQuestion'
,
params
)
let
getQuestionTotal
=
async
(
params
=
{})
=>
await
vm
.
$u
.
post
(
'/rest/question/query/getQuestionTotal'
,
params
)
let
answer
=
async
(
params
=
{})
=>
await
vm
.
$u
.
post
(
'/rest/question/save/answer'
,
params
)
// 获取科目
...
...
@@ -31,6 +33,22 @@ let learnApiFun = function(vm) {
// 学员增加自己的题库
let
addQuestionWarehouse
=
async
(
params
=
{})
=>
await
vm
.
$u
.
post
(
'/rest/question/query/addQuestionWarehouse'
,
params
)
let
joinCollection
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/rest/question/join/collection/'
+
params
.
questionId
,
params
)
let
removeCollection
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/rest/question/remove/collection/'
+
params
.
questionId
,
params
)
let
removeError
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/rest/question/remove/error/'
+
params
.
questionId
,
params
)
const
learnApi
=
{
getQuestion
,
getQuestionTotal
,
...
...
@@ -40,6 +58,9 @@ let learnApiFun = function(vm) {
getProvinceList
,
queryMyQuestionWarehouseDetail
,
addQuestionWarehouse
,
joinCollection
,
removeCollection
,
removeError
,
}
return
learnApi
}
...
...
src/api/user.js
View file @
3b5381ed
...
...
@@ -15,11 +15,22 @@ let userApiFun = function(vm) {
let
checkIdCardBack
=
async
(
params
=
{})
=>
await
vm
.
$u
.
post
(
uCenterUrl
+
'v1/settled/card-back'
,
params
)
let
getCertList
=
async
(
params
=
{})
=>
await
vm
.
$u
.
post
(
apiUrl
+
'/rest/certificate/query'
,
params
)
let
getUserQuestionWareHouse
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
apiUrl
+
'/rest/question/query/getMyQuestionWarehouseList'
,
params
)
const
userApi
=
{
updateUserInfo
,
getUserInfo
,
checkIdCardFront
,
checkIdCardBack
,
getCertList
,
getUserQuestionWareHouse
,
}
return
userApi
}
...
...
src/components/answer-sheet/index.vue
View file @
3b5381ed
...
...
@@ -86,7 +86,7 @@ export default {
getCheckedNum
()
{
const
num
=
this
.
lists
.
filter
((
v
)
=>
v
.
checked
)
return
num
.
length
>
1
?
true
:
false
}
,
}
},
methods
:
{
select
(
index
)
{
...
...
@@ -165,27 +165,19 @@ export default {
height
:
40rpx
;
line-height
:
40rpx
;
border-radius
:
10rpx
;
background
:
#2953ff
;
b
order
:
2rpx
solid
#2953ff
;
background
:
url('https://qn-static.banshouhui.com/study/pass.png')
no-repeat
;
b
ackground-size
:
40rpx
40rpx
;
text-align
:
center
;
}
.success
:before
{
content
:
'\2714'
;
color
:
#fff
;
}
.error
{
width
:
40rpx
;
height
:
40rpx
;
line-height
:
40rpx
;
border-radius
:
10rpx
;
background
:
#fa5a49
;
b
order
:
2rpx
solid
#fa5a49
;
background
:
url('https://qn-static.banshouhui.com/study/fail.png')
no-repeat
;
b
ackground-size
:
40rpx
40rpx
;
text-align
:
center
;
}
.error
:before
{
content
:
'\2716'
;
color
:
#fff
;
}
.text
{
color
:
#191C27
;
padding-left
:
20rpx
;
...
...
src/components/my-subject/index.vue
View file @
3b5381ed
...
...
@@ -2,7 +2,7 @@
<view
class=
"u-flex my-details"
>
<view
class=
"u-flex u-row-between top"
>
<view>
{{
time
}}
</view>
<view>
{{
status
}}
</view>
<view
:style=
"[statusStyle]"
>
{{
status
}}
</view>
</view>
<view
class=
"u-flex bottom"
>
<view
class=
"title"
>
{{
title
}}
</view>
...
...
@@ -31,6 +31,12 @@ export default {
type
:
String
,
default
:
''
,
},
statusStyle
:
{
type
:
Object
,
default
()
{
return
{}
},
},
},
}
</
script
>
...
...
src/components/swiper-limited-load/index.vue
View file @
3b5381ed
...
...
@@ -287,6 +287,7 @@ export default {
margin-right
:
10rpx
;
font-size
:
20rpx
;
border-radius
:
50rpx
;
border-radius
:
50rpx
0
50rpx
50rpx
;
}
}
.content
,
.explain
,
.btn
{
...
...
src/pages.json
View file @
3b5381ed
...
...
@@ -234,6 +234,7 @@
"name"
:
"mineCustomer"
,
"style"
:
{
"navigationBarTitleText"
:
"联系客服"
,
"navigationStyle"
:
"custom"
,
"enablePullDownRefresh"
:
false
,
"disableScroll"
:
true
}
...
...
@@ -243,6 +244,7 @@
"name"
:
"mineInfo"
,
"style"
:
{
"navigationBarTitleText"
:
"个人信息"
,
"navigationStyle"
:
"custom"
,
"enablePullDownRefresh"
:
false
,
"disableScroll"
:
true
}
...
...
@@ -252,15 +254,17 @@
"name"
:
"mineBank"
,
"style"
:
{
"navigationBarTitleText"
:
"我的题库"
,
"navigationStyle"
:
"custom"
,
"enablePullDownRefresh"
:
false
,
"disableScroll"
:
true
}
},
{
"path"
:
"
address
"
,
"name"
:
"mine
Address
"
,
"path"
:
"
company
"
,
"name"
:
"mine
Company
"
,
"style"
:
{
"navigationBarTitleText"
:
"工作单位"
,
"navigationStyle"
:
"custom"
,
"enablePullDownRefresh"
:
false
,
"disableScroll"
:
true
}
...
...
@@ -270,8 +274,9 @@
"name"
:
"mineCertify"
,
"style"
:
{
"navigationBarTitleText"
:
"实名认证"
,
"navigationStyle"
:
"custom"
,
"enablePullDownRefresh"
:
false
,
"disableScroll"
:
tru
e
"disableScroll"
:
fals
e
}
},
{
...
...
src/pages/index/mine.vue
View file @
3b5381ed
...
...
@@ -154,7 +154,7 @@ export default {
if
(
this
.
userInfo
.
nickName
)
{
this
.
$u
.
api
.
getUserInfo
().
then
((
res
)
=>
{
this
.
student
=
res
getApp
().
globalData
.
student
getApp
().
globalData
.
student
=
res
})
}
},
...
...
src/pages/learn/answer.vue
View file @
3b5381ed
...
...
@@ -51,7 +51,12 @@
<view
class=
"u-flex u-row-around bottom"
>
<view
class=
"u-flex"
>
<view
class=
"c-list"
>
<u-icon
name=
"grid"
color=
"#5A6073"
size=
"40"
></u-icon>
<u-image
:src=
"allImg"
width=
"36"
height=
"36"
:lazy-load=
"false"
/>
<text>
{{
currentNumber
}}
/
{{
total
}}
</text>
</view>
</view>
...
...
@@ -59,17 +64,23 @@
<view
class=
"c-list"
v-if=
"type === 1 || type === 3"
@
click=
"collection"
@
click=
"collection
(collectionFlag)
"
>
<u-icon
name=
"star"
color=
"#5A6073"
size=
"40"
></u-icon>
<text>
收藏
</text>
<u-icon
v-show=
"!collectionFlag"
name=
"star"
color=
"#5A6073"
size=
"40"
></u-icon>
<u-icon
v-show=
"collectionFlag"
name=
"star-fill"
color=
"#FF930D"
size=
"40"
></u-icon>
<text>
{{
collectionFlag
?
'已收藏'
:
'收藏'
}}
</text>
</view>
<view
class=
"c-list"
v-if=
"type === 2"
@
click=
"handPapers"
>
<u-icon
name=
"file-text"
color=
"#5A6073"
size=
"40"
></u-icon>
<text>
交卷
</text>
</view>
<view
class=
"c-list"
v-if=
"type === 4"
@
click=
"remove"
>
<u-icon
name=
"order"
color=
"#5A6073"
size=
"40"
></u-icon>
<u-image
:src=
"removeImg"
width=
"36"
height=
"40"
:lazy-load=
"false"
/>
<text>
移出
</text>
</view>
</view>
...
...
@@ -177,7 +188,8 @@ export default {
questionWarehouseId
:
null
,
// 1.顺序答题 2.随机练习 3.模拟考试 4.收藏答题 5.错题答题 6.专项练习-单选 7.专项练习-多选 8.专项练习-判断 9.专项练习-答案是
source
:
0
,
recordId
:
0
recordId
:
0
,
currentItem
:
{}
}
},
computed
:
{
...
...
@@ -190,16 +202,25 @@ export default {
}
return
process
.
uniEnv
.
qn_base_url
+
name
},
allImg
()
{
return
process
.
uniEnv
.
qn_base_url
+
'all.png'
},
removeImg
()
{
return
process
.
uniEnv
.
qn_base_url
+
'remove-error.png'
},
currentNumber
()
{
let
index
=
this
.
currentIndex
return
index
===
-
2
?
this
.
total
:
index
+
1
},
collectionFlag
()
{
const
info
=
this
.
list
.
find
(
v
=>
v
.
index
===
this
.
currentIndex
)
return
info
?
info
.
collectionFlag
:
false
}
},
onLoad
(
e
)
{
this
.
questionWarehouseId
=
parseInt
(
e
?.
questionWarehouseId
)
||
1414854649273384960
this
.
questionWarehouseId
=
parseInt
(
e
?.
questionWarehouseId
)
||
'1414854649273384960'
if
(
e
?.
source
)
this
.
source
=
parseInt
(
e
.
source
)
if
(
e
?.
recordId
)
this
.
recordId
=
parseInt
(
e
.
recordId
)
switch
(
this
.
source
)
{
case
1
:
case
2
:
...
...
@@ -254,7 +275,8 @@ export default {
})
},
// 切换
swiperChange
(
e
)
{
swiperChange
(
e
,
currentItem
)
{
this
.
currentItem
=
currentItem
let
current
=
e
.
current
this
.
currentIndex
=
current
if
(
current
==
NO_PREV_PAGE
||
current
==
NO_NEXT_PAGE
)
{
...
...
@@ -455,14 +477,19 @@ export default {
})
},
// 收藏
collection
()
{
console
.
log
(
'this.list[this.currentIndex]'
,
this
.
list
[
this
.
currentIndex
])
console
.
log
(
'收藏'
)
collection
(
status
)
{
const
info
=
this
.
list
.
find
(
v
=>
v
.
index
===
this
.
currentIndex
)
const
action
=
status
?
'removeCollection'
:
'joinCollection'
this
.
$u
.
api
[
action
]({
questionId
:
info
.
id
}).
then
(
res
=>
{
info
.
collectionFlag
=
!
status
})
},
// 移除
remove
()
{
console
.
log
(
'this.list[this.currentIndex]'
,
this
.
list
[
this
.
currentIndex
])
console
.
log
(
'移除'
)
const
info
=
this
.
list
.
find
(
v
=>
v
.
index
===
this
.
currentIndex
)
this
.
$u
.
api
.
removeError
({
questionId
:
info
.
id
}).
then
(
res
=>
{
this
.
current
=
this
.
currentIndex
+
1
})
},
// 以下方法用于初始化数据
refresh
(
currentIndex
)
{
...
...
src/pages/mine/bank.vue
View file @
3b5381ed
<
template
>
<view
class=
"content"
>
<!--
<text
class=
"title"
>
{{
title
}}
</text>
-->
<my-subject
class=
"subject-item"
v-for=
"(item, index) in lists"
:key=
"index"
:time=
"item.time"
:status=
"item.status"
:title=
"item.title"
:subtitle=
"item.subtitle"
></my-subject>
<view
class=
"begin-answer"
>
<u-navbar
back-icon-color=
"#000000"
background=
"transparent"
title=
"我的题库"
titleColor=
"#000000"
:border-bottom=
"false"
title-bold
></u-navbar>
<view
class=
"content"
v-if=
"lists.length > 0"
>
<!--
<text
class=
"title"
>
{{
title
}}
</text>
-->
<my-subject
class=
"subject-item"
v-for=
"(item, index) in lists"
:key=
"index"
:time=
"item.time"
:status=
"item.status"
:title=
"item.title"
:subtitle=
"item.subtitle"
:statusStyle=
"item.statusStyle"
></my-subject>
</view>
<view
class=
"content"
v-else
>
<u-image
width=
"374rpx"
height=
"322rpx"
:src=
"nothing"
style=
"margin-top: 100rpx;"
></u-image>
<text
style=
"margin-top: 20rpx;font-size: 28rpx;color: #9EA5BB;"
>
当前暂无题库内容
</text
>
</view>
</view>
</
template
>
...
...
@@ -22,34 +44,86 @@ export default {
data
()
{
return
{
title
:
'我的题库'
,
lists
:
[
{
time
:
'2021.06.25 18:06'
,
status
:
'已激活'
,
title
:
'高处安装、维护、拆除作业人员'
,
subtitle
:
'题库将于48天后到期'
,
},
{
time
:
'2021.05.25 14:05'
,
status
:
'已绑定'
,
title
:
'高处安装、维护、拆除作业人员'
,
subtitle
:
'题库将于88天后到期'
,
},
{
time
:
'2021.07.25 11:06'
,
status
:
'已失效'
,
title
:
'高处安装、维护、拆除作业人员'
,
subtitle
:
'题库已过期'
,
},
],
nothing
:
process
.
uniEnv
.
qn_base_url
+
'zanwucuoti@3x.png'
,
lists
:
[],
}
},
onLoad
()
{},
methods
:
{},
onLoad
()
{
this
.
$u
.
api
.
getUserQuestionWareHouse
().
then
((
res
)
=>
{
let
length
=
res
.
length
if
(
res
.
length
<=
0
)
{
this
.
lists
=
[]
}
let
data
=
[]
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
data
[
i
]
=
{}
if
(
!
res
[
i
].
echoMap
||
!
res
[
i
].
echoMap
.
questionWarehouseId
||
!
res
[
i
].
echoMap
.
cardId
)
{
continue
}
//绑卡或支付时间
data
[
i
].
title
=
res
[
i
].
echoMap
.
questionWarehouseId
.
title
data
[
i
].
subtitle
=
res
[
i
].
echoMap
.
questionWarehouseId
.
subtitle
data
[
i
].
time
=
res
[
i
].
echoMap
.
cardId
.
bindingTime
||
res
[
i
].
echoMap
.
cardId
.
buyTime
||
''
let
status
=
''
switch
(
res
[
i
].
echoMap
.
cardId
.
cardStatus
)
{
case
0
:
status
=
'未绑定'
break
case
5
:
status
=
'已绑定'
break
case
10
:
status
=
'已激活'
break
case
15
:
status
=
'已失效'
break
default
:
break
}
data
[
i
].
status
=
status
data
[
i
].
statusStyle
=
{
color
:
'#2953FF'
}
}
this
.
lists
=
data
console
.
log
(
data
)
})
},
}
</
script
>
<
style
>
<
style
scoped
lang=
"scss"
>
::-webkit-scrollbar
{
width
:
0
;
height
:
0
;
color
:
transparent
;
display
:
none
;
}
page
{
background-color
:
#f7f9fc
;
}
.begin-answer
{
display
:
flex
;
flex-direction
:
column
;
background-image
:
linear-gradient
(
to
top
,
#f7f9fc
0%
,
#e9f3ff
20%
);
background-color
:
#f7f9fc
;
background-size
:
100%
920rpx
;
background-repeat
:
no-repeat
;
height
:
120vh
;
position
:
absolute
;
top
:
0
;
width
:
100%
;
}
.content
{
display
:
flex
;
flex-direction
:
column
;
...
...
@@ -77,5 +151,21 @@ export default {
.title
{
font-size
:
36rpx
;
color
:
#8f8f94
;
font-weight
:
bold
;
}
.
content
:
:
v-deep
.
u-flex
{
border-radius
:
12rpx
;
}
.
content
:
:
v-deep
.
my-details
{
background-color
:
#ffffff
!
important
;
}
.
content
:
:
v-deep
.
my-details
.
bottom
{
padding
:
0rpx
20rpx
30rpx
20rpx
;
.title
{
font-weight
:
bold
;
}
}
</
style
>
src/pages/mine/certify.vue
View file @
3b5381ed
<
template
>
<view
class=
"content"
>
<u-cell-group>
<u-cell-item
title=
"实名认证"
:arrow=
"false"
:hover-class=
"none"
title-style=
"
{'font':'bold','font-size':'40rpx'}"
>
<view
slot=
"label"
style=
"display:flex;flex-direction: column;"
>
<text>
上传二代身份证照片,图片大小不大于2M
</text>
<view
class=
"upload-image"
>
<image
class=
"cert-image"
:src=
"certFront"
mode=
"widthFix"
lazy-load=
"false"
binderror=
""
bindload=
""
@
click=
"getFront"
/>
<image
class=
"cert-image"
style=
"margin-left: 30rpx;"
:src=
"certBack"
mode=
"widthFix"
lazy-load=
"false"
binderror=
""
bindload=
""
@
click=
"getBack"
/>
<view
class=
"begin-answer"
>
<u-navbar
back-icon-color=
"#000000"
background=
"transparent"
title=
"实名认证"
titleColor=
"#000000"
:border-bottom=
"false"
title-bold
></u-navbar>
<view
class=
"content"
>
<u-cell-group
:border=
"false"
>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
>
<view
slot=
"label"
class=
"tips"
>
<text
class=
"line-1"
>
请上传您的:
<text
class=
"name"
>
身份证
</text>
</text>
<text
class=
"line-2"
>
请按照下面提示依次点击上传身份证正反面
</text>
<view
class=
"upload-image"
>
<image
class=
"cert-image"
:src=
"certFront"
lazy-load=
"false"
binderror=
""
bindload=
""
@
click=
"getFront"
/>
<image
class=
"cert-image"
:src=
"certBack"
lazy-load=
"false"
binderror=
""
bindload=
""
@
click=
"getBack"
/>
</view>
</view>
</view>
</u-cell-item>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
title=
"姓名"
:value=
"name"
></u-cell-item>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
title=
"身份证号"
:value=
"getIdCardNum"
></u-cell-item>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
title=
"有效期"
:value=
"expire"
></u-cell-item>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
>
<view
slot=
"label"
style=
"display:flex;flex-direction: column;"
>
<button
@
click=
"submit"
>
确定
</button>
</view>
</u-cell-item>
</u-cell-group>
</u-cell-item>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
title=
"姓名"
:value=
"name"
:title-style=
"certTitleStyle"
:value-style=
"certValueStyle"
></u-cell-item>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
title=
"身份证号"
:value=
"getIdCardNum"
:title-style=
"certTitleStyle"
:value-style=
"certValueStyle"
></u-cell-item>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
title=
"有效期"
:value=
"expire"
:title-style=
"certTitleStyle"
:value-style=
"certValueStyle"
></u-cell-item>
<u-cell-item
:arrow=
"false"
:hover-class=
"none"
>
<view
slot=
"label"
style=
"display:flex;flex-direction: column;"
>
<button
class=
"sub-input"
@
click=
"submit"
>
确定
</button>
</view>
</u-cell-item>
</u-cell-group>
</view>
</view>
</
template
>
...
...
@@ -69,15 +80,28 @@ export default {
}
},
computed
:
{
certTitleStyle
()
{
return
{
width
:
'115rpx'
,
}
},
certValueStyle
()
{
return
{
'padding-left'
:
'136rpx'
,
color
:
'#191C27'
,
'font-weight'
:
'bold'
,
'text-align'
:
'left'
,
}
},
certFront
()
{
return
this
.
student
.
identityFrontPath
?
process
.
uniEnv
.
qn_asset_url
+
this
.
student
.
identityFrontPath
:
'https://qn-static.banshouhui.com/self-support/renxiang
.png'
:
process
.
uniEnv
.
qn_base_url
+
'shangchuanzhaopianfront@3x
.png'
},
certBack
()
{
return
this
.
student
.
identityBackPath
?
process
.
uniEnv
.
qn_asset_url
+
this
.
student
.
identityBackPath
:
'https://qn-static.banshouhui.com/self-support/guohui
.png'
:
process
.
uniEnv
.
qn_base_url
+
'shangchuanzhaopianback@3x
.png'
},
name
()
{
return
this
.
student
.
name
||
''
...
...
@@ -144,7 +168,6 @@ export default {
.
checkIdCardBack
({
id_card_back
:
res
.
key
})
.
then
(()
=>
{})
.
catch
((
data
)
=>
{
console
.
log
(
'beimian'
,
data
)
if
(
data
.
errMsg
==
'request:ok'
)
{
this
.
student
.
certificateValidityDate
=
data
.
data
.
id_card_expire
}
else
{
...
...
@@ -157,7 +180,28 @@ export default {
}
</
script
>
<
style
>
<
style
scoped
lang=
"scss"
>
::-webkit-scrollbar
{
width
:
0
;
height
:
0
;
color
:
transparent
;
display
:
none
;
}
page
{
background-color
:
#f7f9fc
;
}
.begin-answer
{
display
:
flex
;
flex-direction
:
column
;
background-image
:
linear-gradient
(
to
top
,
#f7f9fc
0%
,
#e9f3ff
40%
);
background-color
:
#f7f9fc
;
background-size
:
100%
920rpx
;
background-repeat
:
no-repeat
;
height
:
120vh
;
position
:
absolute
;
top
:
0
;
width
:
100%
;
}
.content
{
display
:
flex
;
flex-direction
:
column
;
...
...
@@ -165,9 +209,43 @@ export default {
justify-content
:
center
;
width
:
100%
;
}
.upload-image
{
padding
:
0
28rpx
;
}
.cert-image
{
width
:
300
rpx
;
height
:
300
rpx
;
width
:
630rpx
;
height
:
400rpx
;
}
.tips
{
display
:
flex
;
flex-direction
:
column
;
.line-1
{
font-size
:
32rpx
;
color
:
#191c27
;
font-weight
:
bold
;
.name
{
color
:
#2953ff
;
}
}
.line-2
{
font-size
:
24rpx
;
color
:
#5a6073
;
padding
:
30rpx
0
;
}
}
.
content
:
:
v-deep
.
u-cell-item-box
{
background
:
none
!
important
;
}
.sub-input
{
margin-top
:
26rpx
;
width
:
702rpx
;
height
:
104rpx
;
border-radius
:
52rpx
;
border
:
hidden
;
background-color
:
#2953ff
;
color
:
white
;
font-size
:
32rpx
;
font-weight
:
bold
;
line-height
:
104rpx
;
}
</
style
>
src/pages/mine/
address
.vue
→
src/pages/mine/
company
.vue
View file @
3b5381ed
<
template
>
<view
class=
"content"
>
<view
class=
"wrap"
>
<input
type=
"text"
placeholder=
"请输入工作单位"
v-model=
"student.workUnit"
/>
<view
class=
"begin-answer"
>
<u-navbar
back-icon-color=
"#000000"
background=
"transparent"
title=
"工作单位"
titleColor=
"#000000"
:border-bottom=
"false"
title-bold
></u-navbar>
<view
class=
"content"
>
<view
class=
"company-title"
>
工作单位名称
</view>
<view
class=
"input-view"
>
<input
class=
"company-input"
type=
"text"
placeholder=
"请填写"
v-model=
"student.workUnit"
/>
</view>
<button
@
click=
"submit"
class=
"sub-input"
>
提交
</button>
</view>
<button
@
click=
"submit"
>
提交
</button>
</view>
</
template
>
...
...
@@ -47,15 +59,64 @@ export default {
}
</
script
>
<
style
>
<
style
scoped
lang=
"scss"
>
::-webkit-scrollbar
{
width
:
0
;
height
:
0
;
color
:
transparent
;
display
:
none
;
}
page
{
background-color
:
#f7f9fc
;
}
.begin-answer
{
display
:
flex
;
flex-direction
:
column
;
background-image
:
linear-gradient
(
to
top
,
#f7f9fc
0%
,
#e9f3ff
40%
);
background-color
:
#f7f9fc
;
background-size
:
100%
920rpx
;
background-repeat
:
no-repeat
;
height
:
100vh
;
position
:
absolute
;
top
:
0
;
width
:
100%
;
}
.content
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
width
:
100%
;
padding
:
0
30rpx
;
}
.wrap
{
display
:
flex
;
.company-title
{
width
:
100%
;
height
:
60rpx
;
padding-top
:
30rpx
;
margin-bottom
:
30rpx
;
font-size
:
32rpx
;
font-weight
:
bold
;
}
.company-input
{
height
:
104rpx
;
border-radius
:
12rpx
;
padding-left
:
24rpx
;
background-color
:
white
;
}
.input-view
{
width
:
100%
;
}
.sub-input
{
margin-top
:
432rpx
;
width
:
702rpx
;
height
:
104rpx
;
border-radius
:
52rpx
;
border
:
hidden
;
background-color
:
#2953ff
;
color
:
white
;
font-size
:
32rpx
;
font-weight
:
bold
;
line-height
:
104rpx
;
}
</
style
>
src/pages/mine/customer.vue
View file @
3b5381ed
<
template
>
<view
class=
"content"
>
<view
class=
"kf-body"
>
<!--
<text
class=
"title"
>
{{
title
}}
</text>
-->
<view
class=
"name-space"
>
<view
class=
"head-photo"
>
<u-avatar
:src=
"avatar"
></u-avatar>
<view
class=
"begin-answer"
>
<u-navbar
back-icon-color=
"#ffffff"
background=
"transparent"
title=
"联系客服"
titleColor=
"#ffffff"
:border-bottom=
"false"
title-bold
></u-navbar>
<view
class=
"content"
>
<view
class=
"kf-body"
>
<view
class=
"kf-image"
>
<u-image
width=
"436rpx"
height=
"436rpx"
:src=
"erweima"
></u-image>
</view>
<view>
<view
class=
"nick"
><text>
aaa
</text><u-icon
name=
"server-man"
></u-icon
></view>
<view
class=
"city"
><text>
安徽
</text><text>
合肥
</text></view>
<view
class=
"tips"
>
长按识别二维码添加官方客服
</view>
</view>
<view
class=
"erweima"
>
<u-image
width=
"424rpx"
height=
"424rpx"
:src=
"erweima"
></u-image>
</view>
</view>
</view>
</
template
>
...
...
@@ -24,58 +25,55 @@
export
default
{
data
()
{
return
{
title
:
'我的客服'
,
avatar
:
'https://qn-static.banshouhui.com/self-support/avatar.gif'
,
erweima
:
'https://qn-static.banshouhui.com/self-support/erweima-bg.png'
,
erweima
:
process
.
uniEnv
.
qn_base_url
+
'kefuerweima@3x.png'
,
}
},
onLoad
()
{},
methods
:
{},
}
</
script
>
<
style
>
page
{
background-color
:
rgb
(
229
,
229
,
236
);
<
style
scoped
lang=
"scss"
>
::-webkit-scrollbar
{
width
:
0
;
height
:
0
;
color
:
transparent
;
display
:
none
;
}
.
content
{
.
begin-answer
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
padding
:
130
rpx
30
rpx
0
rpx
30
rpx
;
}
.logo
{
height
:
200
rpx
;
width
:
200
rpx
;
margin
:
200
rpx
auto
50
rpx
auto
;
background-color
:
#2953ff
;
background-size
:
100%
920rpx
;
background-repeat
:
no-repeat
;
height
:
120vh
;
position
:
absolute
;
top
:
0
;
width
:
100%
;
}
.
text-area
{
.
content
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
}
.title
{
font-size
:
36
rpx
;
color
:
#8f8f94
;
padding
:
130rpx
24rpx
0rpx
24rpx
;
}
.kf-body
{
width
:
100%
;
height
:
70
0
rpx
;
height
:
88
0rpx
;
background-color
:
aliceblue
;
padding
:
50
rpx
;
text-align
:
center
;
border-radius
:
12rpx
;
}
.name-space
{
display
:
flex
;
.kf-image
{
margin-left
:
132rpx
;
margin-top
:
160rpx
;
}
.
erweima
{
text-align
:
center
;
margin-top
:
30
rpx
;
padding-left
:
10%
;
.
tips
{
color
:
#5a6073
;
font-size
:
28
rpx
;
margin-top
:
114rpx
;
}
</
style
>
src/pages/mine/info.vue
View file @
3b5381ed
<
template
>
<view
class=
"content"
>
<u-cell-group
style=
"width: 100%;"
>
<u-cell-item
title=
"头像"
@
click=
"changeHead"
>
<view
slot=
"right-icon"
>
<u-image
width=
"50rpx"
height=
"50rpx"
:src=
"headPhoto"
></u-image>
</view>
</u-cell-item>
<u-cell-item
title=
"证件照"
@
click=
"changeCertPhoto"
>
<view
slot=
"right-icon"
>
<u-image
v-if=
"isupLoadCertPhoto"
width=
"50rpx"
height=
"50rpx"
:src=
"headCertPhoto"
></u-image>
<text
v-else
style=
"color:blue;"
>
未上传
</text>
</view>
</u-cell-item>
<u-cell-item
title=
"手机号"
:arrow=
"false"
:hover-class=
"none"
>
<view
slot=
"right-icon"
>
<button
hover-class=
"none"
class=
"mobile-button"
open-type=
"getPhoneNumber"
@
getphonenumber=
"getPhonenumber"
>
{{
getMobile
}}
</button>
</view>
</u-cell-item>
<u-cell-item
title=
"实名认证"
:arrow=
"false"
:hover-class=
"none"
title-style=
"
{'font':'bold','font-size':'40rpx'}"
:value="getCertifyStatus"
@click="goCertify"
<view
class=
"begin-answer"
>
<u-navbar
back-icon-color=
"#000000"
background=
"transparent"
title=
"我的信息"
titleColor=
"#000000"
:border-bottom=
"false"
title-bold
></u-navbar>
<view
class=
"content"
>
<u-cell-group
style=
"width: 100%;"
:class=
"
{ 'background-none': true }"
:border="false"
>
</u-cell-item>
<u-cell-item
title=
"工作单位"
:value=
"getCompany"
@
click=
"goAddress"
></u-cell-item>
</u-cell-group>
<u-cell-item
title=
"头像"
@
click=
"changeHead"
>
<view
slot=
"right-icon"
>
<u-image
width=
"92"
height=
"92"
:src=
"headPhoto"
shape=
"circle"
></u-image>
</view>
</u-cell-item>
<u-cell-item
title=
"证件照"
@
click=
"changeCertPhoto"
>
<view
slot=
"right-icon"
>
<u-image
v-if=
"isupLoadCertPhoto"
width=
"92rpx"
height=
"120rpx"
:src=
"headCertPhoto"
></u-image>
<text
v-else
style=
"color:blue;"
>
未上传
</text>
</view>
</u-cell-item>
<u-cell-item
title=
"手机号"
:arrow=
"false"
:hover-class=
"none"
>
<view
slot=
"right-icon"
>
<button
hover-class=
"none"
class=
"mobile-button"
open-type=
"getPhoneNumber"
@
getphonenumber=
"getPhonenumber"
>
{{
getMobile
}}
</button>
</view>
</u-cell-item>
<u-cell-item
title=
"实名认证"
title-style=
"
{'font':'bold','font-size':'40rpx'}"
:value="getCertifyStatus"
@click="goCertify"
>
</u-cell-item>
<u-cell-item
title=
"工作单位"
:value=
"getCompany"
@
click=
"goCompany"
></u-cell-item>
</u-cell-group>
</view>
</view>
</
template
>
...
...
@@ -55,7 +72,6 @@ export default {
return
{
student
:
{},
token
:
null
,
host
:
process
.
uniEnv
.
qn_asset_url
,
code
:
''
,
}
},
...
...
@@ -79,7 +95,6 @@ export default {
return
this
.
student
.
workUnit
||
''
},
getCertifyStatus
()
{
console
.
log
(
this
.
student
.
identityNumber
)
return
!
this
.
student
.
identityNumber
?
'去认证'
:
'已认证'
},
},
...
...
@@ -94,7 +109,6 @@ export default {
})
this
.
$u
.
api
.
getUserInfo
().
then
((
res
)
=>
{
this
.
student
=
res
console
.
log
(
'stu'
,
this
.
student
)
})
},
methods
:
{
...
...
@@ -104,10 +118,10 @@ export default {
url
:
'pages/mine/certify'
,
})
},
go
Address
()
{
go
Company
()
{
getApp
().
globalData
.
student
=
this
.
student
this
.
$u
.
route
({
url
:
'pages/mine/
address
'
,
url
:
'pages/mine/
company
'
,
})
},
getPhonenumber
(
e
)
{
...
...
@@ -155,8 +169,8 @@ export default {
},
changeHead
()
{
//获取图片
upload
.
getPhoto
(
1
,
this
.
token
).
then
((
res
)
=>
{
this
.
student
.
avatarPath
=
this
.
host
+
res
.
key
upload
.
getPhoto
(
2
,
this
.
token
).
then
((
res
)
=>
{
this
.
student
.
avatarPath
=
process
.
uniEnv
.
qn_asset_url
+
res
.
key
this
.
$u
.
api
.
updateUserInfo
({
avatarPath
:
this
.
student
.
avatarPath
,
})
...
...
@@ -166,7 +180,8 @@ export default {
//获取图片
upload
.
getPhoto
(
2
,
this
.
token
).
then
((
res
)
=>
{
//显示
this
.
student
.
certificatePhotoPath
=
this
.
host
+
res
.
key
this
.
student
.
certificatePhotoPath
=
process
.
uniEnv
.
qn_asset_url
+
res
.
key
this
.
$u
.
api
.
updateUserInfo
({
certificatePhotoPath
:
this
.
student
.
certificatePhotoPath
,
})
...
...
@@ -181,13 +196,35 @@ export default {
}
</
script
>
<
style
>
<
style
scoped
lang=
"scss"
>
::-webkit-scrollbar
{
width
:
0
;
height
:
0
;
color
:
transparent
;
display
:
none
;
}
page
{
background-color
:
#f7f9fc
;
}
.begin-answer
{
display
:
flex
;
flex-direction
:
column
;
background-image
:
linear-gradient
(
to
top
,
#f7f9fc
0%
,
#e9f3ff
40%
);
background-color
:
#f7f9fc
;
background-size
:
100%
920rpx
;
background-repeat
:
no-repeat
;
height
:
100vh
;
position
:
absolute
;
top
:
0
;
width
:
100%
;
}
.content
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
width
:
100%
;
padding
:
0
30rpx
;
}
.logo
{
...
...
@@ -220,11 +257,30 @@ export default {
}
.mobile-button
{
width
:
200px
;
height
:
30px
;
width
:
115px
;
background
:
none
;
font-size
:
28rpx
;
}
button
:
:
after
{
border
:
none
;
background-color
:
none
;
}
.
content
:
:
v-deep
.
u-cell-item-box
{
background
:
none
!
important
;
}
.
content
:
:
v-deep
.
u-cell
{
padding
:
26rpx
0rpx
;
border-color
:
#e8ebf3
;
border-style
:
solid
;
border-bottom-width
:
2rpx
;
border-left-width
:
0
;
border-right-width
:
0
;
border-top-width
:
0
;
}
.
content
:
:
v-deep
.
u-cell__value
{
color
:
#191c27
;
}
</
style
>
src/uview-ui/components/u-cell-group/u-cell-group.vue
View file @
3b5381ed
<
template
>
<view
class=
"u-cell-box"
>
<view
class=
"u-cell-title"
v-if=
"title"
:style=
"[titleStyle]"
>
{{
title
}}
</view>
<view
class=
"u-cell-item-box"
:class=
"
{'u-border-bottom u-border-top': border}">
<slot
/>
</view>
</view>
<view
class=
"u-cell-box"
>
<view
class=
"u-cell-title"
v-if=
"title"
:style=
"[titleStyle]"
>
{{
title
}}
</view>
<view
class=
"u-cell-item-box"
:class=
"
{ 'u-border-bottom u-border-top': border }"
>
<slot
/>
</view>
</view>
</
template
>
<
script
>
/**
* cellGroup 单元格父组件Group
* @description cell单元格一般用于一组列表的情况,比如个人中心页,设置页等。搭配u-cell-item
* @tutorial https://www.uviewui.com/components/cell.html
* @property {String} title 分组标题
* @property {Boolean} border 是否显示外边框(默认true)
* @property {Object} title-style 分组标题的的样式,对象形式,如{'font-size': '24rpx'} 或 {'fontSize': '24rpx'}
* @example <u-cell-group title="设置喜好">
*/
export
default
{
name
:
"u-cell-group"
,
props
:
{
// 分组标题
title
:
{
type
:
String
,
default
:
''
},
// 是否显示分组list上下边框
border
:
{
type
:
Boolean
,
default
:
true
},
// 分组标题的样式,对象形式,注意驼峰属性写法
// 类似 {'font-size': '24rpx'} 和 {'fontSize': '24rpx'}
titleStyle
:
{
type
:
Object
,
default
()
{
return
{};
}
}
},
data
()
{
return
{
index
:
0
,
}
},
}
/**
* cellGroup 单元格父组件Group
* @description cell单元格一般用于一组列表的情况,比如个人中心页,设置页等。搭配u-cell-item
* @tutorial https://www.uviewui.com/components/cell.html
* @property {String} title 分组标题
* @property {Boolean} border 是否显示外边框(默认true)
* @property {Object} title-style 分组标题的的样式,对象形式,如{'font-size': '24rpx'} 或 {'fontSize': '24rpx'}
* @example <u-cell-group title="设置喜好">
*/
export
default
{
name
:
'u-cell-group'
,
props
:
{
// 分组标题
title
:
{
type
:
String
,
default
:
''
,
},
// 是否显示分组list上下边框
border
:
{
type
:
Boolean
,
default
:
true
,
},
// 分组标题的样式,对象形式,注意驼峰属性写法
// 类似 {'font-size': '24rpx'} 和 {'fontSize': '24rpx'}
titleStyle
:
{
type
:
Object
,
default
()
{
return
{}
},
},
},
data
()
{
return
{
index
:
0
,
}
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
"../../libs/css/style.components.scss"
;
.u-cell-box
{
width
:
100%
;
}
@import
'../../libs/css/style.components.scss'
;
.u-cell-title
{
padding
:
30rpx
32rpx
10rpx
32rpx
;
font-size
:
30rpx
;
text-align
:
left
;
color
:
$u-tips-color
;
}
.u-cell-box
{
width
:
100%
;
}
.u-cell-item-box
{
background-color
:
#FFFFFF
;
flex-direction
:
row
;
}
.u-cell-title
{
padding
:
30rpx
32rpx
10rpx
32rpx
;
font-size
:
30rpx
;
text-align
:
left
;
color
:
$u-tips-color
;
}
.u-cell-item-box
{
background-color
:
#ffffff
;
flex-direction
:
row
;
}
</
style
>
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