Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
self-support
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
李俊赕
self-support
Commits
04f679e0
Commit
04f679e0
authored
Apr 29, 2021
by
李超鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
b2327bd8
1ff65281
Changes
21
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
881 additions
and
1966 deletions
+881
-1966
.env.dev.js
.env.dev.js
+2
-1
.env.prod.js
.env.prod.js
+2
-1
.env.test.js
.env.test.js
+2
-1
App.vue
src/App.vue
+2
-1
learn.js
src/common/api/learn.js
+5
-1
order.js
src/common/api/order.js
+26
-45
appoint-time.vue
src/components/appoint/appoint-time.vue
+5
-5
index.vue
src/components/order/index.vue
+63
-49
index.vue
src/components/take/index.vue
+2
-1
readme.md
src/components/take/readme.md
+1
-1
pages.json
src/pages.json
+0
-6
index.vue
src/pages/index/index.vue
+108
-84
index.vue
src/pages/learn/index.vue
+140
-92
detail.vue
src/pages/order/detail.vue
+51
-10
feedback.vue
src/pages/order/feedback.vue
+437
-447
index.vue
src/pages/order/index.vue
+34
-0
base copy.vue
src/pages/settle/base copy.vue
+0
-647
city.vue
src/pages/settle/city.vue
+0
-43
file-upload.vue
src/pages/settle/file-upload.vue
+0
-244
index copy.vue
src/pages/settle/index copy.vue
+0
-286
index.js
src/plugins/uploader/index.js
+1
-1
No files found.
.env.dev.js
View file @
04f679e0
...
...
@@ -8,6 +8,7 @@ const UNI_APP = {
apiUrl
:
'http://192.168.1.22'
,
//java端域名请求头
// apiUrl: 'http://apidoc.banshouhui.com:3000/mock/31', // mock端域名请求头
},
qn_base_url
:
'https://qn-static.banshouhui.com/self-support/'
qn_base_url
:
'https://qn-static.banshouhui.com/self-support/'
,
,
qn_asset_url
:
'http://deudn.c.pp.cc/'
}
module
.
exports
=
UNI_APP
;
.env.prod.js
View file @
04f679e0
...
...
@@ -7,7 +7,8 @@ const UNI_APP = {
systemUrl
:
{
apiUrl
:
'https://system.banshouhui.com'
,
//java端域名请求头
},
qn_base_url
:
'https://qn-static.banshouhui.com/self-support/'
qn_base_url
:
'https://qn-static.banshouhui.com/self-support/'
,
qn_asset_url
:
'http://deudn.c.pp.cc/'
}
module
.
exports
=
UNI_APP
;
.env.test.js
View file @
04f679e0
...
...
@@ -7,6 +7,7 @@ const UNI_APP = {
systemUrl
:
{
apiUrl
:
'https://system.dev.banshouhui.com'
,
//java端域名请求头
},
qn_base_url
:
'https://qn-static.banshouhui.com/self-support/'
qn_base_url
:
'https://qn-static.banshouhui.com/self-support/'
,
qn_asset_url
:
'http://deudn.c.pp.cc/'
}
module
.
exports
=
UNI_APP
;
src/App.vue
View file @
04f679e0
...
...
@@ -159,7 +159,8 @@ export default {
setUserData
(
userInfo
)
{
if
(
userInfo
&&
userInfo
.
token
)
{
// 如果已经登录则直接获取相关信息
this
.
$u
.
vuex
(
'vuex_token'
,
userInfo
.
token
);
// RTOKENf22df8e7b9db396f560e8f61bebceea2000cb05c
this
.
$u
.
vuex
(
'vuex_token'
,
userInfo
.
token
);
this
.
$u
.
vuex
(
'vuex_token'
,
"RTOKEN7493e6defc2f1a77782f105dc297a9366763fec5"
);
this
.
$u
.
vuex
(
'vuex_user'
,
userInfo
);
this
.
$u
.
vuex
(
'vuex_wx_uid'
,
userInfo
.
wxopenid
);
}
else
{
...
...
src/common/api/learn.js
View file @
04f679e0
const
globalUrl
=
process
.
uniEnv
||
{}
const
ucenterApiUrl
=
globalUrl
.
ucenterUrl
.
apiUrl
const
collegeApiUrl
=
globalUrl
.
ucenterUrl
.
xueUrl
const
sysApiUrl
=
globalUrl
.
systemUrl
.
apiUrl
let
learnApiFun
=
function
(
vm
){
/* 通知消息基本信息 */
...
...
@@ -14,8 +15,11 @@ let learnApiFun = function(vm){
let
CourseSection
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
collegeApiUrl
+
'/v1/section-details'
,
params
);
/* 更新学习情况*/
let
updateLearnCourses
=
async
(
params
=
{})
=>
await
vm
.
$u
.
post
(
collegeApiUrl
+
'/v1/update-learn-courses'
,
params
);
/* 获取考试结果 */
let
getExamResult
=
async
(
examId
,
params
=
{})
=>
await
vm
.
$u
.
post
(
sysApiUrl
+
'/wxh-worker-rest/rest/exam/serviceRule/userExamInfo/'
+
vm
.
vuex_token
+
'?examId='
+
examId
,
params
);
const
learnApi
=
{
getTrainingNoticeList
,
CourseList
,
ChapterDetails
,
CourseSection
,
updateLearnCourses
getTrainingNoticeList
,
CourseList
,
ChapterDetails
,
CourseSection
,
updateLearnCourses
,
getExamResult
}
return
learnApi
}
...
...
src/common/api/order.js
View file @
04f679e0
...
...
@@ -8,110 +8,93 @@ let orderApiFun = function(vm){
* 工单数量查询接口
*/
let
listOrderCount
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
prefix
+
vm
.
vuex_token
+
'/wokerOrder/queryOrdersCount/V2'
,
params
);
/**
* 工单列表接口
*/
let
listOrder
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/wxh-worker-rest/rest/order/revision/'
+
vm
.
vuex_token
+
'/list'
,
params
);
/**
* 获取师傅的预约日历
*/
let
workerCalendar
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
prefix
+
vm
.
vuex_token
+
'/wokerOrder/appointment/calendar'
,
params
);
/**
* 师傅预约
*/
let
workerAppointment
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
post
(
'/wxh-worker-rest/rest/order/traceAndAppointment/trace/V2/'
+
vm
.
vuex_token
+
'/'
+
orderId
,
params
)
// 联系顾客时间更新接口,暂时没有
/**
* 师傅签到接口
* 师傅签到接口
*/
let
maintainWorkerCheckin
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
post
(
prefix
+
vm
.
vuex_token
+
'/order/'
+
orderId
+
'/maintainWorkerCheckin'
,
params
,{
'content-type'
:
'application/x-www-form-urlencoded'
});
/**
* 订单详情查询
* 订单详情查询
*/
let
orderDetail
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
get
(
'/wxh-worker-rest/rest/order/revision/'
+
vm
.
vuex_token
+
'/'
+
orderId
,
params
);
/* 过程反馈查询接口 */
let
feedbackConfig
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/wxh-worker-rest/rest/order/v2/getFeedBack/'
+
vm
.
vuex_token
,
params
)
/* 预约+过程反馈 接口 */
let
traceAndAppointment
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
post
(
'/wxh-worker-rest/rest/order/traceAndAppointment/trace/V2/'
+
vm
.
vuex_token
+
`/`
+
orderId
,
params
)
/* 师傅拒单 */
let
rejectOrder
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
get
(
prefix
+
vm
.
vuex_token
+
`/order/
${
orderId
}
/workerReject/V2`
,
params
)
/**
* 查询工单操作记录列表接口
*/
let
listOrderRecord
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/wxh-worker-rest/rest/order/record/'
+
vm
.
vuex_token
+
'/listOrderRecord/'
+
params
.
orderId
,
params
);
/**
* 接单
*/
let
orderAccept
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
post
(
prefix
+
vm
.
vuex_token
+
'/order/'
+
orderId
+
'/accept'
,
params
);
/**
* 抢单
*/
let
orderGan
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
post
(
'/wxh-worker-rest/rest/order/revision/applets/'
+
vm
.
vuex_token
+
'/order/acceptAppletsOrder'
,
params
,{
'content-type'
:
'application/x-www-form-urlencoded'
});
/**
* 获取拍照标准
*/
let
orderStandard
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
prefix
+
vm
.
vuex_token
+
'/photo/standard'
,
params
);
/**
* 保存图片信息
*/
let
saveImage
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
post
(
prefix
+
vm
.
vuex_token
+
'/order/'
+
orderId
+
'/maintain/saveImage'
,
params
);
/**
* 获取师傅水印 or 默认水印
*/
let
getWatermark
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
prefix
+
vm
.
vuex_token
+
'/photo/watermark'
,
params
);
/**
* 获取师傅开放可选时间段
*/
let
openTimerange
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
prefix
+
vm
.
vuex_token
+
'/wokerOrder/appointment/timerange'
,
params
);
/**
* 联系时间接口
*/
let
contactTime
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
get
(
'/wxh-worker-rest/rest/order/record/'
+
vm
.
vuex_token
+
'/contact/'
+
orderId
,
params
);
/**
* 检查是否可以拒单
*/
let
checkRejectable
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/wxh-worker-rest/rest/order/'
+
vm
.
vuex_token
+
'/wokerOrder/checkRejectable'
,
params
);
/**
* 获取签到距离
*/
let
getSignDistance
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/wxh-worker-rest/rest/order/'
+
vm
.
vuex_token
+
`/wokerOrder/sign/distance`
,
params
)
/**
* 获取订单的完工项目(配置+数据)
*/
let
getCompleteConfigAndData
=
async
(
orderId
)
=>
await
vm
.
$u
.
get
(
prefix
+
vm
.
vuex_token
+
'/order/'
+
orderId
+
'/maintain/info'
);
/**
* 查询措施
*/
let
getMeasure
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'wxh-worker-rest/rest/service/'
+
vm
.
vuex_token
+
'/measure/queryMeasureItems'
,
params
);
/**
* 保存售后记录
*/
let
saveCompleteData
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
post
(
prefix
+
vm
.
vuex_token
+
'/order/'
+
orderId
+
'/maintain/saveMaintainInfoV2'
,
params
);
let
getSignDistance
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'/wxh-worker-rest/rest/'
+
vm
.
vuex_token
+
`/wokerOrder/sign/distance`
,
params
)
const
orderApi
=
{
listByRecommendOrder
,
listOrderCount
,
...
...
@@ -123,6 +106,7 @@ let orderApiFun = function(vm){
listOrderRecord
,
orderAccept
,
orderGan
,
maintainWorkerCheckin
,
feedbackConfig
,
traceAndAppointment
,
rejectOrder
,
...
...
@@ -132,13 +116,10 @@ let orderApiFun = function(vm){
openTimerange
,
contactTime
,
checkRejectable
,
getSignDistance
,
getCompleteConfigAndData
,
getMeasure
,
saveCompleteData
getSignDistance
}
return
orderApi
}
module
.
exports
=
{
orderApiFun
}
}
\ No newline at end of file
src/components/appoint/appoint-time.vue
View file @
04f679e0
...
...
@@ -50,7 +50,7 @@
</
template
>
<
script
>
let
now
=
Date
.
now
()
let
now
=
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
export
default
{
props
:
{
titleShow
:
{
...
...
@@ -96,9 +96,9 @@
},
data
()
{
return
{
currentDay
:
0
,
currentDay
:
null
,
currentTime
:
null
,
appointTime
:
Date
.
now
()
,
appointTime
:
null
,
appointRange
:
""
,
num
:
0
,
hasLast
:
false
...
...
@@ -106,9 +106,9 @@
},
watch
:
{
title
()
{
this
.
currentDay
=
0
this
.
appointTime
=
Date
.
now
()
this
.
currentDay
=
null
this
.
currentTime
=
null
this
.
appointTime
=
null
this
.
appointRange
=
""
}
},
...
...
src/components/order/index.vue
View file @
04f679e0
...
...
@@ -32,9 +32,9 @@
<view
class=
"bottom-view"
>
<view>
<view
v-if=
"showCountTime"
class=
"bottom-left-view"
>
<view
:class=
"['bottom-tag-view',
{'
will': orderData.currentWillOverTime}]">
{{
tagText
}}
</view>
<u-count-down
:timestamp=
"
orderData.currentWillOverTime || orderData.currentOverTime"
font-size=
"44"
color=
"#FF930D
"
@
change=
"handleChange"
ref=
"order-count-down"
></u-count-down>
<view
:class=
"['bottom-tag-view',
{'
timeout': timeout}]">
<text>
{{
tagText
}}
</text>
</view>
<u-count-down
:timestamp=
"
timestamp"
font-size=
"44"
show-days
:color=
"timeout ? '#FA5A49' : '#FF930D'
"
@
change=
"handleChange"
ref=
"order-count-down"
></u-count-down>
</view>
<view
v-else-if=
"showTime"
>
<text>
{{
timeTitle
}}
</text>
...
...
@@ -69,7 +69,7 @@
orderStatus
:
0
,
// 工单状态
appointmentDatetime
:
''
,
// 预约时间
currentWillOverTime
:
10000
,
// 剩余时间
currentOverTime
:
0
,
// 超过时间
currentOverTime
:
new
Date
().
getTime
()
+
10000
,
// 超过时间点
auditDatetime
:
'2021.04.19 12:45:09'
,
// 审核时间
submissionTime
:
'2021.04.19 16:24:48'
,
// 提交时间
auditResults
:
{},
// 审核结果
...
...
@@ -97,42 +97,13 @@
},
data
()
{
return
{
timeout
:
false
,
timestamp
:
0
,
orderType
:
0
};
},
computed
:
{
/*
orderStatus:
待接单 orderStatus<31 工单状态小于31
待预约 orderStatus == 31 and appointmentDatetime == null 工单状态等于30并且预约时间为空
待签到 orderStatus == 31 and appointmentDatetime is not null 工单状态等于30并且预约时间不为空
待完工 orderStatus >31 and orderStatus < 80 工单状态大于31 小于80
审核中 orderStatus ==85 or orderStatus == 87 工单状态 等于85 或者 等于有87
异常 orderStatus ==86 or orderStatus == 88 工单状态 等于86 或者 等于有88
已完工 orderStatus in(80,81,89,110) 工单状态 等于80 or 81 or 89 or 110
*/
orderText
()
{
// 按钮文字
if
(
!
this
.
orderType
)
{
if
(
this
.
orderData
.
orderStatus
<
31
)
{
this
.
orderType
=
0
}
else
if
(
this
.
orderData
.
orderStatus
==
31
)
{
if
(
this
.
orderData
.
appointmentDatetime
)
{
return
this
.
orderType
=
2
}
else
{
this
.
orderType
=
1
}
}
else
if
(
this
.
orderData
.
orderStatus
>
31
&&
this
.
orderData
.
orderStatus
<
80
)
{
this
.
orderType
=
3
}
else
if
(
this
.
orderData
.
orderStatus
==
85
&&
this
.
orderData
.
orderStatus
==
87
)
{
this
.
orderType
=
4
}
else
if
(
this
.
orderData
.
orderStatus
==
86
&&
this
.
orderData
.
orderStatus
==
88
)
{
this
.
orderType
=
5
}
else
if
([
80
,
81
,
89
,
110
].
indexOf
(
this
.
orderData
.
orderStatus
)
!=
-
1
)
{
this
.
orderType
=
6
}
else
{
this
.
orderType
=
0
}
}
return
this
.
typeTexts
[
this
.
orderType
]
},
buttonStyle
()
{
// 按钮样式
...
...
@@ -204,8 +175,8 @@
return
this
.
orderData
.
orderServiceType
==
'安装'
},
tagText
()
{
return
this
.
orderData
.
currentWillOverTime
?
'剩'
:
'超
'
},
return
this
.
timeout
?
'超'
:
'剩
'
},
timeText
()
{
return
this
.
orderType
==
4
?
this
.
orderData
.
submissionTime
:
this
.
orderData
.
auditDatetime
},
...
...
@@ -228,10 +199,45 @@
'exception'
:
5
,
// 异常单、
'finish'
:
6
,
//已完工
}
},
orderType
()
{
return
this
.
types
[
this
.
type
]
}
},
created
()
{
/*
orderStatus:
待接单 orderStatus<31 工单状态小于31
待预约 orderStatus == 31 and appointmentDatetime == null 工单状态等于30并且预约时间为空
待签到 orderStatus == 31 and appointmentDatetime is not null 工单状态等于30并且预约时间不为空
待完工 orderStatus >31 and orderStatus < 80 工单状态大于31 小于80
审核中 orderStatus ==85 or orderStatus == 87 工单状态 等于85 或者 等于有87
异常 orderStatus ==86 or orderStatus == 88 工单状态 等于86 或者 等于有88
已完工 orderStatus in(80,81,89,110) 工单状态 等于80 or 81 or 89 or 110
*/
if
(
!
this
.
type
)
{
if
(
this
.
orderData
.
orderStatus
<
31
)
{
this
.
orderType
=
0
}
else
if
(
this
.
orderData
.
orderStatus
==
31
)
{
if
(
this
.
orderData
.
appointmentDatetime
)
{
return
this
.
orderType
=
2
}
else
{
this
.
orderType
=
1
}
}
else
if
(
this
.
orderData
.
orderStatus
>
31
&&
this
.
orderData
.
orderStatus
<
80
)
{
this
.
orderType
=
3
}
else
if
(
this
.
orderData
.
orderStatus
==
85
&&
this
.
orderData
.
orderStatus
==
87
)
{
this
.
orderType
=
4
}
else
if
(
this
.
orderData
.
orderStatus
==
86
&&
this
.
orderData
.
orderStatus
==
88
)
{
this
.
orderType
=
5
}
else
if
([
80
,
81
,
89
,
110
].
indexOf
(
this
.
orderData
.
orderStatus
)
!=
-
1
)
{
this
.
orderType
=
6
}
else
{
this
.
orderType
=
0
}
}
else
{
this
.
orderType
=
this
.
types
[
this
.
type
]
}
this
.
timeout
=
this
.
orderData
.
currentOverTime
<
new
Date
().
getTime
()
this
.
timestamp
=
Math
.
round
(
Math
.
abs
(
this
.
orderData
.
currentOverTime
-
new
Date
().
getTime
())
/
1000
)
},
methods
:
{
handleClick
()
{
...
...
@@ -241,8 +247,15 @@
handleClickCell
()
{
this
.
$emit
(
'click'
)
},
handleChange
(
timestamp
)
{
if
(
this
.
orderData
.
currentOverTime
)
this
.
$refs
[
'order-count-down'
].
seconds
+=
2
handleChange
(
timestamp
)
{
console
.
log
(
timestamp
)
if
(
this
.
timeout
)
this
.
$refs
[
'order-count-down'
].
seconds
+=
2
if
(
timestamp
==
0
&&
!
this
.
timeout
)
{
setTimeout
(()
=>
{
this
.
timestamp
=
1
this
.
timeout
=
true
},
1000
)
}
},
getDistance
(
Latitud
,
Longitud
)
{
return
this
.
distance
(
Latitud
,
Longitud
,
this
.
location
[
0
],
this
.
location
[
1
])
...
...
@@ -389,18 +402,19 @@
align-items
:
center
;
.bottom-tag-view
{
text-align
:
center
;
width
:
52rpx
;
height
:
52rpx
;
border-radius
:
26rpx
;
line-height
:
56rpx
;
color
:
#FFFFFF
;
font-size
:
26rpx
;
background-color
:
#FA5A49
;
margin-right
:
20rpx
;
background-color
:
#FF930D
;
margin-right
:
20rpx
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
&
.
will
{
background-color
:
#F
F930D
;
&
.
timeout
{
background-color
:
#F
A5A49
;
}
}
}
...
...
src/components/take/index.vue
View file @
04f679e0
...
...
@@ -78,7 +78,7 @@
data
()
{
return
{
showType
:
1
,
standardShow
:
tru
e
,
standardShow
:
fals
e
,
cameraInfo
:
{
devicePosition
:
'back'
,
flash
:
'auto'
...
...
@@ -120,6 +120,7 @@
this
.
initData
()
photo
.
currentItem
=
this
.
currentItem
if
(
this
.
currentItem
.
images
.
length
>
0
)
this
.
standardShow
=
true
},
computed
:
{
titleTxt
()
{
...
...
src/components/take/readme.md
View file @
04f679e0
...
...
@@ -4,7 +4,7 @@
该组件仅用于拍照后返回图片,与业务不关联,目前最多一次可以拍10张图片
```
### 因为相机组件需要全屏展示,所以加载该组件需要在当前页面隐藏顶部导航栏
和底部的TabBar
### 因为相机组件需要全屏展示,所以加载该组件需要在当前页面隐藏顶部导航栏
,底部的TabBar以及其他页面元素
```
uni.hideTabBar()
```
...
...
src/pages.json
View file @
04f679e0
...
...
@@ -126,12 +126,6 @@
"disableScroll"
:
true
}
},
{
"path"
:
"pages/settle/file-upload"
,
"style"
:
{
"navigationBarTitleText"
:
"图片上传"
}
},
{
"path"
:
"pages/settle/pay-ensure"
,
"style"
:
{
...
...
src/pages/index/index.vue
View file @
04f679e0
...
...
@@ -18,7 +18,7 @@
</view>
</view>
<!-- 订单推荐吸顶 -->
<u-sticky
offset-top=
"
6
0"
>
<u-sticky
offset-top=
"0"
>
<view
class=
"sticky"
>
<text>
订单推荐
</text>
</view>
...
...
@@ -35,17 +35,24 @@
立即入驻
</u-button>
</view>
<
view
v-else-if=
"!needSettled && orderList.length > 0"
class=
"order-item-view"
>
<
view
v-for=
"(item, index) in orderList"
:key=
"index"
>
<OrderCell
:orderData=
"item"
type=
"waitAccept"
:location=
"location"
@
click=
"handleClick(item.orderId)"
@
action=
"handleAction(item.orderId)"
>
</OrderCell
>
<
template
v-else
>
<
!-- 入驻成功之后无推荐订单 --
>
<view
v-if=
"orderList.length
<
=
0
&&
loadedOrder
"
class=
"no-order-view"
>
<NoOrder
/
>
</view>
<u-loadmore
:status=
"currentLoadStatus"
bgColor=
"#f2f2f2"
></u-loadmore>
</view>
<!-- 入驻成功之后无推荐订单 -->
<view
v-else-if=
"!needSettled && orderList.length
<
=
0
"
class=
"no-order-view"
>
<NoOrder/>
</view>
<view
v-else
class=
"order-item-view"
>
<scroll-view
scroll-y
style=
"height: 100%;width: 100%;"
@
scrolltolower=
"reachBottom"
scroll-anchoring
>
<view
v-for=
"(item, index) in orderList"
:key=
"index"
>
<OrderCell
:orderData=
"item"
type=
"waitAccept"
:location=
"location"
@
click=
"handleClick(item.orderId)"
@
action=
"handleAction(item.orderId)"
>
</OrderCell>
</view>
<u-loadmore
:status=
"currentLoadStatus"
bgColor=
"#F4F5F7"
></u-loadmore>
</scroll-view>
</view>
</
template
>
</view>
</view>
<!-- </view> -->
...
...
@@ -60,7 +67,7 @@
<
script
>
import
util
from
"@/utils/util.js"
;
import
TabBarPage
from
"@/components/tabBarList/index.vue"
import
TabBarPage
from
"@/components/tabBarList/index.vue"
import
NoOrder
from
"@/components/order/noOrder.vue"
const
app
=
getApp
();
import
OrderCell
from
"@/components/order/index.vue"
;
...
...
@@ -68,7 +75,7 @@
export
default
{
components
:
{
OrderCell
,
TabBarPage
,
TabBarPage
,
NoOrder
},
data
()
{
...
...
@@ -78,23 +85,22 @@
title
:
false
,
title
:
"Hello"
,
loaded
:
false
,
loadedOrder
:
false
,
needSettled
:
true
,
count
:
0
,
// 推荐订单数量
messageList
:
[],
loadStatus
:
[
"more"
,
"loading"
,
"noMore"
],
currentLoadStatus
:
"loading"
,
orderList
:
[],
search
:
{
token
:
""
,
pageNumber
:
0
,
pageSize
:
10
,
pageSize
:
10
0
,
},
bottomLoading
:
false
};
},
watch
:
{
vuex_token
(
val
,
oldVal
)
{
// 监听token变化,如果更新则重新加载页面数据
// 监听token变化,如果更新则重新加载页面数据
console
.
log
(
''
,
val
,
oldVal
)
val
&&
this
.
initSettleInfo
()
}
...
...
@@ -120,23 +126,19 @@
},
shouyeyouImage
()
{
return
process
.
uniEnv
.
qn_base_url
+
'shouyeyou.png'
},
weiruzhuImage
()
{
return
process
.
uniEnv
.
qn_base_url
+
'weiruzhu.png'
},
weiruzhuImage
()
{
return
process
.
uniEnv
.
qn_base_url
+
'weiruzhu.png'
},
},
onLoad
()
{
this
.
getOrderCount
()
onLoad
()
{
this
.
getOrderCount
()
},
onShow
()
{
// 每次进入页面都刷新入驻状态
if
(
this
.
vuex_token
)
{
this
.
initSettleInfo
();
}
// else {
// // 初始化订单数据
// this.loadOrderList();
// }
},
onPullDownRefresh
()
{
console
.
log
(
'------下拉刷新------'
)
...
...
@@ -146,17 +148,17 @@
methods
:
{
handleClick
(
orderId
)
{
// 点击了cell
console
.
log
(
'点击了cell'
)
console
.
log
(
'点击了cell'
)
this
.
viewOderItem
(
orderId
)
},
handleAction
(
orderId
)
{
// 点击了按钮
console
.
log
(
'点击了按钮'
)
this
.
viewOderItem
(
orderId
)
},
viewOderItem
(
orderId
)
{
// 跳转工单详情页面
uni
.
navigateTo
({
url
:
'pages/order/detail?id='
+
orderId
})
},
viewOderItem
(
orderId
)
{
// 跳转工单详情页面
uni
.
navigateTo
({
url
:
'pages/order/detail?id='
+
orderId
})
},
async
initSettleInfo
()
{
let
self
=
this
;
...
...
@@ -165,13 +167,15 @@
if
(
result
&&
result
.
record
)
{
vm
.
loaded
=
true
;
vm
.
needSettled
=
result
.
needSettled
;
vm
.
needSettled
=
false
vm
.
status
=
Number
(
result
.
record
.
status
||
'0'
);
// vm.status = 8
}
};
await
app
.
getBaseInfo
(
self
,
callBack
);
this
.
orderList
=
[]
this
.
orderList
=
[]
this
.
search
.
pageNumber
=
0
// 加载消息列表
self
.
loadMessageList
();
self
.
loadOrderList
();
...
...
@@ -193,14 +197,51 @@
},
loadOrderList
()
{
console
.
log
(
'-----------准备加载推荐列表-----------'
)
this
.
search
.
pageNumber
+=
1
let
self
=
this
;
// 加载订单列表
self
.
search
.
token
=
self
.
vuex_token
;
self
.
$u
.
api
.
listByRecommendOrder
(
self
.
search
).
then
((
res
)
=>
{
uni
.
stopPullDownRefresh
()
// 结束下拉刷新
self
.
loadedOrder
=
true
/*↓↓↓↓↓↓↓↓↓↓测试数据↓↓↓↓↓↓↓↓↓↓*/
// if (res.data.list) {
// if (res.data.list.length == 0 && res.data.total > 0) {
// res.data.total = 15
// res.data.list = [{
// orderServiceType: '安装', // 服务类型:安装、维修
// categoryName: '充电桩', // 品类:充电桩
// orderBusinessTypeText: '分配单', // 业务类型:分配单、订单池
// orderNumber: 'OR2021041809827', // 工单编号
// contactName: '郭小清', // 客户信息
// contactPhone: '13631612077', // 联系方式
// contactAddress: '湾街道荔枝花园D座125号', // 详细地址
// contactAddressLatitud: '116.3896', // 联系人地址经度
// contactAddressLongitud: '39.91917', // 联系人地址纬度
// orderStatus: 0, // 工单状态
// appointmentDatetime: '', // 预约时间
// currentWillOverTime: 10000, // 剩余时间
// currentOverTime: new Date().getTime() + 10000, // 超过时间点
// auditDatetime: '2021.04.19 12:45:09', // 审核时间
// submissionTime: '2021.04.19 16:24:48', // 提交时间
// auditResults: {}, // 审核结果
// orderBusinessType: 'R', // 业务类型 R 为抢单
// orderId: '1100000216'
// }]
// res.data.list = [...res.data.list, ...res.data.list, ...res.data.list, ...res.data
// .list,
// ...res.data.list, ...res.data.list, ...res.data.list, ...res.data.list, ...
// res
// .data.list, ...res.data.list
// ]
// }
// }
/*↑↑↑↑↑↑↑↑↑↑测试数据↑↑↑↑↑↑↑↑↑↑↑↑↑*/
if
(
res
.
code
==
200
)
{
if
(
res
.
data
&&
res
.
data
.
list
&&
res
.
data
.
list
.
length
>
0
)
{
self
.
orderList
.
push
(...
res
.
data
.
list
);
self
.
currentLoadStatus
=
res
.
data
.
total
>
self
.
orderList
.
length
?
'loadmore'
:
'nomore'
}
}
else
{
console
.
log
(
res
.
message
,
"初始化订单列表异常"
);
...
...
@@ -211,27 +252,9 @@
this
.
triggered
=
"restore"
;
},
reachBottom
()
{
console
.
log
(
"-----bottom will-----"
);
if
(
this
.
bottomLoading
||
this
.
currentLoadStatus
==
this
.
loadStatus
[
2
])
{
return
;
}
console
.
log
(
"-----bottom did-----"
);
this
.
bottomLoading
=
true
;
setTimeout
(()
=>
{
// 加载更多数据
// ...
this
.
orderList
.
push
(...[{},
{},
{},
{},
{},
{},
{},
{},
{},
{}]);
// 加载完成
this
.
currentLoadStatus
=
false
/*是否还有*/
?
this
.
loadStatus
[
1
]
:
this
.
loadStatus
[
2
];
this
.
$nextTick
(
function
()
{
this
.
bottomLoading
=
false
;
});
},
1000
);
if
(
this
.
currentLoadStatus
!=
'loadmore'
)
return
this
.
currentLoadStatus
==
'loading'
this
.
loadOrderList
()
},
// clickSwiper(index) {},
handleScroll
()
{
...
...
@@ -276,29 +299,29 @@
});
}
},
// 获取订单数量
getOrderCount
()
{
var
self
=
this
;
// 加载订单列表
self
.
$u
.
api
.
listOrderCount
().
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
console
.
log
(
"==="
,
res
.
data
)
if
(
res
.
data
)
{
var
count
=
0
for
(
var
i
in
res
.
data
)
{
count
+=
res
.
data
[
i
]
}
// 修改tab总数
uni
.
setTabBarBadge
({
index
:
1
,
text
:
String
(
count
)
})
}
}
else
{
console
.
log
(
res
.
message
,
"获取订单数量失败!"
);
}
});
},
// 获取订单数量
getOrderCount
()
{
var
self
=
this
;
// 加载订单列表
self
.
$u
.
api
.
listOrderCount
().
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
console
.
log
(
"==="
,
res
.
data
)
if
(
res
.
data
)
{
var
count
=
0
for
(
var
i
in
res
.
data
)
{
count
+=
res
.
data
[
i
]
}
// 修改tab总数
uni
.
setTabBarBadge
({
index
:
1
,
text
:
String
(
count
)
})
}
}
else
{
console
.
log
(
res
.
message
,
"获取订单数量失败!"
);
}
});
},
},
};
</
script
>
...
...
@@ -414,19 +437,20 @@
background-color
:
#ffffff
;
border-radius
:
12rpx
;
min-height
:
460rpx
;
.tip-view-image
{
width
:
328rpx
;
height
:
200rpx
;
margin-top
:
30rpx
;
.tip-view-image
{
width
:
328rpx
;
height
:
200rpx
;
margin-top
:
30rpx
;
}
.tip-other
{
font-size
:
28rpx
;
color
:
#333333
;
margin-bottom
:
20rpx
;
}
.settle-button
{
}
.settle-button
{}
}
.order-item-view
{
...
...
src/pages/learn/index.vue
View file @
04f679e0
This diff is collapsed.
Click to expand it.
src/pages/order/detail.vue
View file @
04f679e0
...
...
@@ -75,11 +75,16 @@
</view>
<view
v-if=
"orderRecords.length == 0"
class=
"no-record-view"
>
当前暂无履约记录
</view>
<view
v-else
>
<view
class=
"order"
v-for=
"(record,index) in shwoOrderRecords"
:key=
"record.operationContent"
>
<view
class=
"order-cell between-cell"
>
<view
class=
"record-line-view"
>
<view
class=
"order-cell between-cell"
v-for=
"(record,index) in shwoOrderRecords"
:key=
"record.operationContent"
>
<view
class=
"node-view"
></view>
<view
class=
"line-view-left"
>
<text>
{{
$u
.
timeFormat
(
record
.
operationDatetime
,
'yyyy.mm.dd hh:MM:ss'
)
}}
</text>
</view>
<view
class=
"line-view-right"
>
<text
style=
"color: red;"
>
{{
record
.
overTime
?
'(超时)'
:
''
}}{{
record
.
exception
?
'(异常)'
:
''
}}
</text>
<text>
{{
record
.
operationType
}}
</text>
<text>
{{
$u
.
timeFormat
(
record
.
operationDatetime
,
'yyyy-mm-dd hh:MM:ss'
)
}}
</text>
<text
style=
"color: red;"
>
{{
record
.
overTime
?
'超时 '
:
''
}}{{
record
.
exception
?
' 异常'
:
''
}}
</text>
</view>
</view>
</view>
<view
v-if=
"orderRecords.length > showLenght"
>
...
...
@@ -308,11 +313,13 @@
this
.
takeStatus
=
true
},
closeTake
(
img
)
{
console
.
log
(
"image"
,
img
)
this
.
takeStatus
=
false
// 获取返回的图片 ,如果返回的图片存在则直接异常签约,成功后跳转到去完工页面,
if
(
img
){
// 拍照完成
if
(
img
&&
img
.
length
>
0
){
// 拍照完成
this
.
isErrorSign
=
true
this
.
errorSignUrl
=
img
this
.
errorSignUrl
=
process
.
uniEnv
.
qn_base_url
+
img
[
img
.
length
-
1
].
key
this
.
handleBtn
()
}
else
{
this
.
$refs
.
uToast
.
show
({
...
...
@@ -522,7 +529,7 @@
clickFeedback
(){
// 过程反馈
uni
.
navigateTo
({
url
:
'pages/order/feedback?orderId='
+
this
.
order
.
orderId
url
:
'pages/order/feedback?orderId='
+
this
.
order
.
orderId
+
'&categoryId='
+
this
.
order
.
categoryId
})
},
filish
(){
...
...
@@ -583,7 +590,7 @@
var
s
=
2
*
Math
.
asin
(
Math
.
sqrt
(
Math
.
pow
(
Math
.
sin
(
La3
/
2
),
2
),
Math
.
cos
(
La1
)
*
Math
.
cos
(
La2
)
*
Math
.
pow
(
Math
.
sin
(
Lb3
/
2
),
2
)));
s
=
s
*
6378.137
;
//地球半径
s
=
Math
.
round
(
s
*
10000
)
/
10000
;
//
console.log("计算结果",s,'KM');
console
.
log
(
"计算结果"
,
s
,
'KM'
);
return
s
?
s
.
toFixed
(
2
):
0
;
},
timestampDiff
(
currentOverTime
){
// 计算超时时间
...
...
@@ -781,6 +788,41 @@
color
:
#333333
;
margin-top
:
30rpx
;
}
.record-line-view
{
padding-left
:
30rpx
;
position
:
relative
;
margin-left
:
6rpx
;
}
.line-view-left
{
width
:
270rpx
;
flex-shrink
:
0
;
}
.line-view-right
{
text-align
:
right
;
}
.
record-line-view
:
:
before
{
content
:
" "
;
position
:
absolute
;
left
:
0
;
top
:
20rpx
;
width
:
1px
;
bottom
:
20rpx
;
border-left
:
1px
dashed
#2272FF
;
transform-origin
:
0
0
;
transform
:
scaleX
(
0
.5
);
}
.node-view
{
margin-top
:
16rpx
;
position
:
absolute
;
left
:
-3px
;
background-color
:
#2272FF
;
border-radius
:
7rpx
;
width
:
14rpx
;
height
:
14rpx
;
z-index
:
1
;
}
.address-cell
{
height
:
24rpx
;
...
...
@@ -898,7 +940,6 @@
// 页面公用css
.order-cell
{
height
:
48rpx
;
font-size
:
26rpx
;
font-weight
:
400
;
color
:
#333333
;
...
...
@@ -910,6 +951,6 @@
.between-cell
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
flex-start
;
}
</
style
>
src/pages/order/feedback.vue
View file @
04f679e0
This diff is collapsed.
Click to expand it.
src/pages/order/index.vue
View file @
04f679e0
...
...
@@ -194,6 +194,40 @@
var
self
=
this
;
self
.
$u
.
api
.
listOrder
(
param
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
/*↓↓↓↓↓↓↓↓↓↓测试数据↓↓↓↓↓↓↓↓↓↓*/
// res.data.type = self.orderType
// if (res.data.list) {
// if (res.data.list.length == 0 && res.data.total > 0) {
// res.data.total = 15
// res.data.list = [{
// orderServiceType: '安装', // 服务类型:安装、维修
// categoryName: '充电桩', // 品类:充电桩
// orderBusinessTypeText: '分配单', // 业务类型:分配单、订单池
// orderNumber: 'OR2021041809827', // 工单编号
// contactName: '郭小清', // 客户信息
// contactPhone: '13631612077', // 联系方式
// contactAddress: '湾街道荔枝花园D座125号', // 详细地址
// contactAddressLatitud: '116.3896', // 联系人地址经度
// contactAddressLongitud: '39.91917', // 联系人地址纬度
// orderStatus: 0, // 工单状态
// appointmentDatetime: '', // 预约时间
// currentWillOverTime: 10000, // 剩余时间
// currentOverTime: new Date().getTime() + 10000, // 超过时间点
// auditDatetime: '2021.04.19 12:45:09', // 审核时间
// submissionTime: '2021.04.19 16:24:48', // 提交时间
// auditResults: {}, // 审核结果
// orderBusinessType: 'R', // 业务类型 R 为抢单
// orderId: '1100000216'
// }]
// res.data.list = [...res.data.list, ...res.data.list, ...res.data.list, ...res.data
// .list,
// ...res.data.list, ...res.data.list, ...res.data.list, ...res.data.list, ...
// res
// .data.list, ...res.data.list
// ]
// }
// }
/*↑↑↑↑↑↑↑↑↑↑测试数据↑↑↑↑↑↑↑↑↑↑↑↑↑*/
// 后台需要返回type,防止数据返回延迟期间点击了其他的tab
if
(
res
.
data
.
type
!=
self
.
orderType
)
return
self
.
triggered
=
false
;
...
...
src/pages/settle/base copy.vue
deleted
100644 → 0
View file @
b2327bd8
This diff is collapsed.
Click to expand it.
src/pages/settle/city.vue
deleted
100644 → 0
View file @
b2327bd8
<
template
>
<view
class=
"back_view"
>
选择可服务的城市
</view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
protocolContent
:
''
}
},
onLoad
(
e
)
{
},
methods
:
{
//拨打客服 点击
phoneCallClick
:
function
(
phone
)
{
uni
.
makePhoneCall
({
phoneNumber
:
phone
});
},
}
}
</
script
>
<
style
>
.back_view
{
background-color
:
#F3F3F3
;
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
</
style
>
src/pages/settle/file-upload.vue
deleted
100644 → 0
View file @
b2327bd8
<
template
>
<view
class=
"img-wrap rel"
>
<view
class=
"upload-box"
>
<view
class=
"img-item pic"
v-for=
"(file,index) in imgList"
:key=
"index"
>
<!--
<view
class=
"tip-sucess u-flex u-row-center"
v-if=
"file && (file.status == status.QUEUED || file.status == status.UPLOADING)"
>
<span>
正在上传中...
{{
file
.
percent
}}
%
</span>
</view>
-->
<img
:src=
"file.src"
mode=
"aspectFill"
@
click=
"perviewImg(index)"
>
<view
class=
"close"
@
click=
"removeImg(index)"
>
<u-icon
name=
"close"
color=
"#fff"
size=
"20"
></u-icon>
</view>
</view>
<view>
<view
class=
"pic upload"
@
click=
"chooseImage('qiniu')"
>
<u-icon
name=
"camera"
color=
"#fff"
size=
"100"
></u-icon>
<span
class=
"txt"
>
点击拍摄
</span>
</view>
</view>
</view>
</view>
</
template
>
<
script
>
import
base
from
'@/components/upload/index'
;
export
default
{
mixins
:[
base
],
data
()
{
return
{
initImgList
:[],
currentIndex
:
0
,
uploadType
:
''
,
pageTitle
:
''
}
},
computed
:
{
},
onLoad
(
option
)
{
this
.
initPage
(
option
)
// this.initworkingAgeList();
// this.getareaList()
},
beforeDestroy
(){
this
.
setPrevPageData
()
},
methods
:
{
goBack
(
type
)
{
// if (type) {
// this.setPrevPageData()
// }
this
.
setPrevPageData
()
uni
.
navigateBack
({
delta
:
2
});
},
initPage
(
option
)
{
const
uploadType
=
option
.
uploadType
this
.
uploadType
=
uploadType
let
pages
=
getCurrentPages
()
if
(
pages
.
length
<
2
)
{
return
}
let
prevVue
=
pages
[
pages
.
length
-
2
].
$vm
this
.
imgList
=
prevVue
.
imgObj
[
uploadType
]
||
[]
const
formShowList
=
prevVue
.
formShowList
formShowList
.
map
(
item
=>
{
if
(
item
.
filedName
===
uploadType
){
this
.
pageTitle
=
item
.
label
||
'图片上传'
}
})
if
(
this
.
uploadType
!==
'other_certificates'
){
this
.
selectNum
=
1
}
uni
.
setNavigationBarTitle
({
title
:
this
.
pageTitle
});
},
setPrevPageData
()
{
let
pages
=
getCurrentPages
()
if
(
pages
.
length
<
2
)
{
return
}
let
selected
=
this
.
selected
let
prevVue
=
pages
[
pages
.
length
-
2
].
$vm
const
uploadType
=
this
.
uploadType
prevVue
.
imgObj
[
uploadType
]
=
this
.
imgList
},
initworkingAgeList
()
{
let
list
=
[{
value
:
0
,
name
:
"1年内"
,
},
];
for
(
let
i
=
1
;
i
<
10
;
i
++
)
{
const
item
=
{
value
:
i
,
name
:
i
+
"年"
,
};
list
.
push
(
item
);
}
list
.
push
({
value
:
10
,
name
:
"10年+"
,
});
this
.
workingAgeList
=
list
;
},
getareaList
(
code
,
level
,
provinceIndex
)
{
provinceIndex
=
provinceIndex
||
0
this
.
currentIndex
=
provinceIndex
let
areaList
=
this
.
areaList
if
(
level
)
{
if
(
areaList
[
provinceIndex
].
children
)
{
return
}
}
uni
.
showLoading
({
title
:
'加载中'
});
let
params
=
{
type
:
'充电桩安装'
,
level
:
level
||
0
,
code
:
code
}
const
res
=
this
.
$u
.
api
.
getSettleArea
(
params
)
uni
.
hideLoading
()
if
(
res
.
status
!=
200
)
{
return
;
}
if
(
!
level
)
{
this
.
areaList
=
res
.
data
const
parmas
=
[
res
.
data
[
0
].
id
,
1
]
this
.
getareaList
(...
parmas
)
}
else
{
this
.
$set
(
areaList
[
provinceIndex
],
'children'
,
res
.
data
)
}
},
selectAge
(
item
)
{
this
.
selected
.
working_age
=
item
.
value
this
.
selected
.
workingAgeTxt
=
item
.
name
},
selectArea
(
areaItem
)
{
const
code
=
areaItem
.
id
const
selected
=
this
.
selected
const
idx
=
selected
.
areaIds
.
indexOf
(
code
)
const
currentProvince
=
this
.
areaList
[
this
.
currentIndex
]
let
txt
=
currentProvince
.
name
+
'-'
+
areaItem
.
name
if
(
idx
>=
0
)
{
selected
.
areaTxts
.
splice
(
idx
,
1
)
selected
.
areaIds
.
splice
(
idx
,
1
)
}
else
{
selected
.
areaIds
.
push
(
code
)
selected
.
areaTxts
.
push
(
txt
)
}
this
.
selected
=
selected
},
},
}
</
script
>
<
style
lang=
"scss"
>
.upload-box
{
padding
:
30rpx
16rpx
;
.pic
{
position
:
relative
;
display
:
block
;
width
:
720rpx
;
height
:
450rpx
;
// overflow: hidden;
border-radius
:
12rpx
;
margin-bottom
:
30rpx
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.pic.upload
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
flex-direction
:
column
;
img
{
display
:
block
;
width
:
60rpx
;
height
:
52rpx
;
}
.txt
{
font-weight
:
bold
;
margin-top
:
18rpx
;
font-size
:
32rpx
;
color
:
#fff
;
&
.iconfont
{
font-size
:
60rpx
;
}
}
background-color
:
rgba
(
0
,
0
,
0
,
0
.3
);
}
}
.close
{
position
:
absolute
;
width
:
50rpx
;
height
:
50rpx
;
right
:
0
;
top
:
0
;
text-align
:
center
;
line-height
:
50rpx
;
border-radius
:
50%
;
background
:
red
;
color
:
#fff
;
}
.tip-sucess
{
position
:
absolute
;
bottom
:
0
;
left
:
0
;
padding
:
20rpx
0
;
width
:
100%
;
z-index
:
5
;
background
:
rgba
(
0
,
0
,
0
,
.4
);
border-radius
:
0
;
color
:
#fff
;
font-size
:
28rpx
;
&
.tip-fail
i
{
background
:
red
;
}
i
{
margin-right
:
12rpx
;
width
:
50rpx
;
height
:
50rpx
;
background
:
#7fbe4c
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
50rpx
;
font-size
:
24rpx
;
}
}
</
style
>
src/pages/settle/index copy.vue
deleted
100644 → 0
View file @
b2327bd8
<
template
>
<view
class=
"wrap"
>
<process
:process=
"0"
:type=
"0"
title=
"业务流程"
></process>
<view
class=
"introduction"
>
<view
class=
"item"
>
<view
class=
"label"
>
<text>
招募要求
</text>
</view>
<view
class=
"content"
>
<text>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean euismod bibendum laoreet. Proin gravida dolor sit
amet lacus accumsan et viverra justo commodo. Proin sodales
pulvinar sic tempor. Sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Nam fermentum,
nulla luctus pharetra vulputate, felis tellus 。
</text>
</view>
</view>
<view
class=
"item"
>
<view
class=
"label"
>
<text>
结算价格
</text>
</view>
<view
class=
"content"
>
<text>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean euismod bibendum laoreet. Proin gravida dolor sit
amet lacus accumsan et viverra justo commodo. Proin sodales
pulvinar sic tempor. Sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Nam fermentum,
nulla luctus pharetra vulputate, felis tellus 。
</text>
</view>
</view>
<view
class=
"item"
>
<view
class=
"label"
>
<text>
入驻资料
</text>
</view>
<view
class=
"content"
>
<text>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean euismod bibendum laoreet. Proin gravida dolor sit
amet lacus accumsan et viverra justo commodo. Proin sodales
pulvinar sic tempor. Sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Nam fermentum,
nulla luctus pharetra vulputate, felis tellus 。
</text>
</view>
</view>
<view
class=
"item careful-color"
>
<view
class=
"careful-content"
>
<text>
注意事项:
</text>
<text>
身份证、银行卡、签约人均为同一人,否则无法入驻;
</text>
<text>
充电桩材料按要求自行准备
</text>
</view>
</view>
</view>
<view
class=
"bottom_view"
>
<button
:class=
"isStop ? 'bottom_btn apply_color' : 'bottom_btn default_color' "
@
click=
"$u.debounce(applyClick, 500)"
>
<text
class=
"bottom_title"
v-if=
"!isStop"
>
浏览
{{
count
}}
秒后可申请入驻
</text>
<text
class=
"bottom_title"
v-if=
"isStop"
>
申请入驻
</text>
</button>
</view>
</view>
</
template
>
<
script
>
import
{
process
}
from
'@/components/process/process'
export
default
{
components
:
{
process
},
data
()
{
return
{
theme_url
:
'https://qn-static.banshouhui.com/settle_theme.png?v='
+
new
Date
().
getTime
(),
count
:
9
,
isStop
:
false
,
settledInfo
:
null
,
status
:
''
,
saving
:
true
}
},
onLoad
(
e
)
{
this
.
initpageData
(
e
)
this
.
startCounting
()
},
onShow
(){
// if(!this.settledInfo){
// this.getBaseInfo()
// }
uni
.
hideLoading
()
},
methods
:
{
initpageData
(
option
){
let
recommender
=
''
if
(
option
&&
option
.
q
){
const
urlLink
=
decodeURIComponent
(
option
.
q
)
recommender
=
this
.
getQueryVariable
(
urlLink
,
'recommender'
)
getApp
().
globalData
.
settleRecommend
=
recommender
}
if
(
option
&&
option
.
recommender
){
recommender
=
decodeURI
(
option
.
recommender
)
getApp
().
globalData
.
settleRecommend
=
recommender
}
},
getQueryVariable
(
url
,
key
){
const
queryStringArr
=
url
.
split
(
'?'
)
let
val
=
''
let
queryStr
=
queryStringArr
&&
queryStringArr
.
length
>
1
&&
queryStringArr
[
1
]
if
(
!
queryStr
){
return
}
let
queryArr
=
queryStr
.
split
(
"&"
);
for
(
let
i
=
0
;
i
<
queryArr
.
length
;
i
++
)
{
let
pair
=
queryArr
[
i
].
split
(
"="
);
if
(
pair
[
0
]
==
key
){
val
=
pair
[
1
];
}
}
return
val
},
async
getBaseInfo
(){
const
app
=
getApp
()
const
callBack
=
(
vm
,
result
)
=>
{
vm
.
settledInfo
=
result
vm
.
status
=
result
.
record
.
status
}
let
settledInfo
=
await
app
.
getBaseInfo
(
this
,
callBack
)
if
(
!
settledInfo
){
return
}
this
.
settledInfo
=
settledInfo
this
.
status
=
settledInfo
.
record
.
status
},
startCounting
:
function
()
{
if
(
this
.
isStop
){
return
}
this
.
count
=
this
.
count
-
1
if
(
this
.
count
>
0
){
setTimeout
(
this
.
startCounting
,
1000
);
}
else
{
this
.
isStop
=
true
}
},
applyClick
:
async
function
()
{
if
(
!
this
.
isStop
){
return
}
this
.
saving
=
true
if
(
!
this
.
settledInfo
){
await
this
.
getBaseInfo
()
this
.
jumpJudge
()
this
.
saving
=
false
return
}
this
.
jumpJudge
()
},
jumpJudge
(){
if
(
this
.
status
>
0
){
uni
.
navigateTo
({
url
:
'/pages/settle/prompt'
})
return
}
uni
.
navigateTo
({
url
:
'/pages/settle/base'
})
}
}
}
</
script
>
<
style
>
/* page {
background-color: rgb(240, 242, 244);
} */
</
style
>
<
style
lang=
"scss"
scoped
>
.u-cell-icon
{
width
:
36rpx
;
height
:
36rpx
;
margin-right
:
8rpx
;
}
.back_view
{
background-color
:
#FFFFFF
;
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.theme_image
{
width
:
100%
;
height
:
3000rpx
;
margin-bottom
:
164rpx
;
}
.bottom_view
{
position
:fixed
;
box-shadow
:
0
-1rpx
6rpx
rgba
(
0
,
0
,
0
,
0
.05
);
bottom
:
0
;
background-color
:
#DAEBFF
;;
width
:
100%
;
height
:
164rpx
;
display
:
flex
;
align-content
:
center
;
justify-content
:
center
;
}
.bottom_btn
{
margin-top
:
30rpx
;
width
:
600rpx
;
height
:
104rpx
;
line-height
:
96rpx
;
border-radius
:
54rpx
;
// border: 4rpx solid #FFFFFF;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
&
.apply_color
{
// border: 4rpx solid #2272FF;
.bottom_title
{
color
:
#fff
;
}
}
}
.bottom_title
{
font-weight
:
bold
;
font-size
:
32rpx
;
color
:
#2272FF
;
}
.default_color
{
background-color
:
#fff
;
}
.apply_color
{
background-color
:
#2272FF
;
}
.introduction
{
border
:
4rpx
solid
#2272FF
;
border-radius
:
10rpx
;
background-color
:
#FFFFFF
;
margin
:
20rpx
;
margin-bottom
:
200rpx
;
}
.introduction
.item
{
padding
:
20rpx
;
}
.introduction
.item
.label
{
font-size
:
32rpx
;
padding
:
10rpx
;
}
.introduction
.item
.content
{
font-size
:
28rpx
;
padding
:
20rpx
40rpx
20rpx
40rpx
;
}
.careful-color
{
color
:
red
;
}
.careful-content
{
padding
:
10rpx
;
font-size
:
32rpx
;
}
</
style
>
src/plugins/uploader/index.js
View file @
04f679e0
...
...
@@ -39,7 +39,7 @@ uploader.getQnToken = function(params) {
*region: 地区 默认为:ECN
*/
resolve
({
visitPrefix
:
data
.
host
||
''
,
visitPrefix
:
data
.
host
||
globalUrl
.
qn_asset_url
,
token
:
data
.
token
||
''
,
folderPath
:
data
.
folderPath
||
''
,
region
:
"ECN"
...
...
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