Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gxpt_wechat
Overview
Overview
Details
Activity
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
pseer
gxpt_wechat
Commits
e3b5b235
Commit
e3b5b235
authored
Nov 10, 2023
by
zhangzhen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
功能完善
parent
b5d8ace9
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
120 additions
and
61 deletions
+120
-61
App.vue
App.vue
+11
-15
cleanRoom.js
api/cleanRoom.js
+5
-0
storeList.vue
components/storeList/storeList.vue
+7
-6
index.config.js
config/index.config.js
+3
-3
cleanManage.vue
pages/cleanManage/cleanManage.vue
+6
-3
index.vue
pages/index/index.vue
+45
-21
order.vue
pages/order/order.vue
+12
-1
tools.js
utils/tools.js
+31
-12
No files found.
App.vue
View file @
e3b5b235
<
script
>
import
Vue
from
'vue'
import
{
dictList
}
from
"@/api/index.js"
export
default
{
onLaunch
:
function
(
e
)
{
...
...
@@ -17,18 +14,17 @@
updateManager
.
applyUpdate
()
})
dictList
().
then
(
res
=>
{
console
.
log
(
res
,
"获取字典"
)
Vue
.
prototype
.
dicts
=
res
.
data
.
data
;
Vue
.
prototype
.
getDictItem
=
(
dictType
)
=>
{
let
arr
=
Vue
.
prototype
.
dicts
.
filter
(
item
=>
item
.
dictType
===
dictType
)
let
obj
=
{};
arr
[
0
].
dictDatas
.
forEach
(
val
=>
{
obj
[
val
.
dictValue
]
=
val
.
dictLabel
})
return
obj
}
})
// Vue.prototype.dicts = [];
// if(uni.getStorageSync('dicts')){
// Vue.prototype.dicts = JSON.parse(uni.getStorageSync('dicts'))
// } else {
// dictList().then(res => {
// console.log(res, "获取字典")
// Vue.prototype.dicts = res.data.data;
// uni.setStorageSync('dicts',JSON.stringify(res.data.data))
// })
// }
uni
.
getSystemInfo
({
success
:
(
e
)
=>
{
...
...
api/cleanRoom.js
View file @
e3b5b235
...
...
@@ -25,3 +25,8 @@ export const openDoorByCleaner=(data)=>{
let
url
=
`/room/open/door`
return
http
.
post
(
url
,
data
)
}
// 获取进行中的保洁订单
export
const
getStarOrder
=
()
=>
{
let
url
=
`/cleanRecords/getByCleanerId`
return
http
.
get
(
url
)
}
components/storeList/storeList.vue
View file @
e3b5b235
...
...
@@ -34,6 +34,10 @@
</
template
>
<
script
>
import
{
getDictItem
}
from
"@/utils/tools.js"
export
default
{
name
:
"storeList"
,
props
:
{
...
...
@@ -45,11 +49,7 @@
data
()
{
return
{
list
:
[],
storeTypeEnum
:{
"1"
:
"标准店"
,
"2"
:
"形象店"
,
"3"
:
"旗舰店"
,
},
storeTypeEnum
:{},
};
},
watch
:
{
...
...
@@ -62,7 +62,8 @@
}
},
mounted
()
{
this
.
storeTypeEnum
=
this
.
getDictItem
(
"store_type"
);
let
dicts
=
JSON
.
parse
(
uni
.
getStorageSync
(
'dicts'
))
this
.
storeTypeEnum
=
getDictItem
(
dicts
,
"store_type"
);
},
methods
:
{
onLoading
()
{
...
...
config/index.config.js
View file @
e3b5b235
const
CONFIG
=
{
// 开发环境配置
development
:
{
assetsPath
:
'http://1
92.168.43.242
:8211/static'
,
// 静态资源路径
baseUrl
:
'http://1
92.168.43.21
:8883/front-api'
,
// 后台接口请求地址
hostUrl
:
'http://1
92.168.43.21
:8882'
,
// H5地址(前端运行地址)
assetsPath
:
'http://1
0.24.5.119
:8211/static'
,
// 静态资源路径
baseUrl
:
'http://1
0.106.30.135
:8883/front-api'
,
// 后台接口请求地址
hostUrl
:
'http://1
0.106.30.135
:8882'
,
// H5地址(前端运行地址)
// baseUrl: 'http://192.168.1.189:8883/front', // 后台接口请求地址
// hostUrl: 'http://192.168.1.189:8882', // H5地址(前端运行地址)
websocketUrl
:
''
,
// websocket服务端地址
...
...
pages/cleanManage/cleanManage.vue
View file @
e3b5b235
...
...
@@ -63,7 +63,7 @@
</
template
>
<
script
>
import
{
getListStore
}
from
"@/api/cleanRoom.js"
;
import
{
getListStore
,
getStarOrder
}
from
"@/api/cleanRoom.js"
;
import
config
from
"@/config/index.config"
export
default
{
...
...
@@ -92,9 +92,12 @@
})
},
onNavToInfo
(){
uni
.
navigateTo
(
{
url
:
"/pages/cleanOrderInfo/cleanOrderInfo"
getStarOrder
().
then
(
res
=>
{
console
.
log
(
res
,
"查询保洁中的订单"
)
})
// uni.navigateTo({
// url:"/pages/cleanOrderInfo/cleanOrderInfo"
// })
},
onNavLocation
(
val
){
uni
.
openLocation
({
...
...
pages/index/index.vue
View file @
e3b5b235
<
template
>
<view
class=
"home"
@
touchstart=
"onTouchStart"
@
touchend=
"onTouchEnd"
>
<view
class=
"home"
@
touchstart=
"onTouchStart"
@
touchend=
"onTouchEnd"
>
<f-navbar
title=
"凑角"
:isShowTransparentTitle=
"false"
:isShowLeft=
"false"
fontColor=
"#ffffff"
:fontSize=
"46"
bgColor=
"#e40583"
:scrollTop=
"scrollTop"
navbarType=
'5'
></f-navbar>
<scroll-view
class=
"scroll-view"
scroll-y=
"true"
@
scroll=
"onScroll"
>
<scroll-view
class=
"scroll-view"
scroll-y=
"true"
@
scroll=
"onScroll"
>
<view
class=
"content-box"
>
<view
class=
"header-content"
:style=
"
{height: statusBarHeight + 210+'px',paddingTop:statusBarHeight+'px' }">
...
...
@@ -46,13 +46,15 @@
<view
class=
"title"
>
<text
class=
"text-title"
>
房间预览
</text>
</view>
<view
v-for=
"(item,index) in storeInfo.roomVoList"
:key=
"index"
class=
"list-item-box"
@
tap=
"onNavToOrder(item)"
>
<view
v-for=
"(item,index) in storeInfo.roomVoList"
:key=
"index"
class=
"list-item-box"
@
tap=
"onNavToOrder(item)"
>
<view
class=
"relative part-top"
>
<image
class=
"room-img"
:src=
"item.images[0]"
mode=
"scaleToFill"
></image>
<view
class=
"absolute part-top-content"
>
<view
class=
"flex-between"
>
<view></view>
<image
:src=
"assetsPath +'/nav_to_icon.png'"
mode=
"widthFix"
@
tap
.
stop=
"onNavToInfo(item)"
>
<image
:src=
"assetsPath +'/nav_to_icon.png'"
mode=
"widthFix"
@
tap
.
stop=
"onNavToInfo(item)"
>
</image>
</view>
</view>
...
...
@@ -78,7 +80,7 @@
<text>
{{
val
.
name
}}
</text>
</view>
</view>
<view
class=
"confirm"
>
<view
class=
"confirm"
>
<text
class=
"cuIcon-add text-white text-lg"
></text>
</view>
</view>
...
...
@@ -93,10 +95,18 @@
<
script
>
import
fNavbar
from
'@/components/module/f-navbar/f-navbar'
;
import
{
login
}
from
"@/api/index.js"
;
import
{
getListStore
}
from
"@/api/store"
;
import
{
login
,
dictList
}
from
"@/api/index.js"
;
import
{
getListStore
}
from
"@/api/store"
;
import
config
from
"@/config/index.config"
import
ToolBox
from
"@/components/toolBox/toolBox"
import
{
getDictItem
}
from
"@/utils/tools.js"
export
default
{
components
:
{
...
...
@@ -111,7 +121,7 @@
storeInfo
:
{},
statusBarHeight
:
this
.
statusBarHeight
,
hostUrl
:
config
.
hostUrl
,
assetsPath
:
config
.
assetsPath
,
assetsPath
:
config
.
assetsPath
,
latitude
:
uni
.
getStorageSync
(
"latitude"
)
||
""
,
longitude
:
uni
.
getStorageSync
(
"longitude"
)
||
""
,
queryParams
:
{
...
...
@@ -127,15 +137,15 @@
},
{
value
:
"2"
,
url
:
this
.
assetsPath
+
"/vector.png"
url
:
this
.
assetsPath
+
"/vector.png"
},
{
value
:
"3"
,
url
:
this
.
assetsPath
+
"/artwork.png"
url
:
this
.
assetsPath
+
"/artwork.png"
},
{
value
:
"4"
,
url
:
this
.
assetsPath
+
"/power.png"
url
:
this
.
assetsPath
+
"/power.png"
},
],
options
:
[{
...
...
@@ -151,7 +161,7 @@
label
:
"8小时"
}
],
facilitieList
:{},
facilitieList
:
{},
show
:
true
,
timer
:
null
}
...
...
@@ -189,14 +199,27 @@
},
onLoad
(
option
)
{
console
.
log
(
option
,
909090
)
},
mounted
()
{
this
.
facilitieList
=
this
.
getDictItem
&&
this
.
getDictItem
(
"indoor_facilities"
);
console
.
log
(
this
.
facilitieList
)
this
.
onGetDicts
()
},
methods
:
{
onGetDicts
()
{
let
dicts
=
[]
if
(
uni
.
getStorageSync
(
'dicts'
))
{
dicts
=
JSON
.
parse
(
uni
.
getStorageSync
(
'dicts'
))
this
.
facilitieList
=
getDictItem
(
dicts
,
"indoor_facilities"
);
this
.
onLoading
()
}
else
{
dictList
().
then
(
res
=>
{
console
.
log
(
res
,
"获取字典"
)
dicts
=
res
.
data
.
data
;
uni
.
setStorageSync
(
'dicts'
,
JSON
.
stringify
(
res
.
data
.
data
))
this
.
facilitieList
=
getDictItem
(
dicts
,
"indoor_facilities"
);
this
.
onLoading
()
})
}
},
onLoading
()
{
uni
.
showLoading
({
title
:
"加载中..."
...
...
@@ -225,7 +248,7 @@
},
complete
:
()
=>
{
uni
.
removeStorage
({
key
:
'storeId'
key
:
'storeId'
})
this
.
onGetListStore
()
}
...
...
@@ -247,13 +270,13 @@
roomVoList
:
obj
.
roomVoList
.
map
(
item
=>
{
return
{
...
item
,
facilities
:
item
.
facilities
?
item
.
facilities
.
split
(
","
):
[],
facilities
:
item
.
facilities
?
item
.
facilities
.
split
(
","
)
:
[],
images
:
item
.
images
?
item
.
images
.
split
(
","
).
map
(
val
=>
this
.
hostUrl
+
val
)
:
[]
}
})
}
console
.
log
(
this
.
storeInfo
,
909090
)
console
.
log
(
this
.
storeInfo
,
909090
)
}
})
...
...
@@ -676,7 +699,8 @@
}
}
}
.facilitie-box
{
.facilitie-box
{
display
:
flex
;
flex-wrap
:
wrap
;
padding
:
12
upx
20
upx
;
...
...
pages/order/order.vue
View file @
e3b5b235
...
...
@@ -130,7 +130,7 @@
<text
class=
"text-title text-lg"
>
{{
roomInfo
.
price
}}
元/小时
</text>
</view>
<view
class=
"line"
></view>
<view
class=
"flex-between price"
>
<view
class=
"flex-between price
use-coupon-box
"
>
<text
class=
"text-title text-lg"
>
优惠券
</text>
<view
class=
"flex-row"
@
tap=
"onNavToSelectCoupon"
>
<text
class=
"text-lg"
:class=
"useCouponList.length?'text-pink':'text-gray'"
>
...
...
@@ -162,6 +162,7 @@
</view>
</view>
<view
class=
""
>
<button
class=
"cu-btn bg-pink round lg margin-right"
@
tap=
"onNavToCheckedCoupon"
>
团购验券
</button>
<button
class=
"cu-btn bg-pink round lg"
@
tap=
"onOrderConfirm"
>
预约
</button>
</view>
</view>
...
...
@@ -737,6 +738,11 @@
title
:
"功能暂未开发"
})
},
onNavToCheckedCoupon
(){
uni
.
navigateTo
({
url
:
"/pages/couponCheck/couponCheck"
})
},
// 将时间转换成完整日期
onSetDateTime
(
startTime
,
endTime
)
{
let
obj
=
{
...
...
@@ -1048,6 +1054,11 @@
}
}
.use-coupon-box
{
.flex-row{
max-width
:
70%
;
}
}
.line
{
width
:
94%
;
border-top
:
2
upx
solid
rgba
(
255
,
170
,
255
,
0.8
);
...
...
utils/tools.js
View file @
e3b5b235
export
const
wxScanCode
=
()
=>
{
uni
.
scanCode
({
scanType
:
[
"barCode"
,
"qrCode"
],
success
:
(
res
)
=>
{
if
(
res
.
errMsg
==
"scanCode:ok"
)
{
}
}
})
...
...
@@ -16,7 +15,7 @@ export const getLocation = () => {
uni
.
getLocation
({
type
:
'gcj02'
,
complete
:
(
res
)
=>
{
console
.
log
(
res
,
"获取位置"
)
console
.
log
(
res
,
"获取位置"
)
if
(
res
.
errMsg
==
"getLocation:ok"
)
{
resolve
(
res
)
}
else
{
...
...
@@ -115,13 +114,14 @@ export const getTabbarHeight = function() {
}
export
const
space
=
(
lat1
,
lng1
,
lat2
,
lng2
)
=>
{
export
const
space
=
(
lat1
,
lng1
,
lat2
,
lng2
)
=>
{
// console.log(lat1, lng1, lat2, lng2)
var
radLat1
=
lat1
*
Math
.
PI
/
180.0
;
var
radLat2
=
lat2
*
Math
.
PI
/
180.0
;
var
a
=
radLat1
-
radLat2
;
var
b
=
lng1
*
Math
.
PI
/
180.0
-
lng2
*
Math
.
PI
/
180.0
;
var
s
=
2
*
Math
.
asin
(
Math
.
sqrt
(
Math
.
pow
(
Math
.
sin
(
a
/
2
),
2
)
+
Math
.
cos
(
radLat1
)
*
Math
.
cos
(
radLat2
)
*
Math
.
pow
(
Math
var
s
=
2
*
Math
.
asin
(
Math
.
sqrt
(
Math
.
pow
(
Math
.
sin
(
a
/
2
),
2
)
+
Math
.
cos
(
radLat1
)
*
Math
.
cos
(
radLat2
)
*
Math
.
pow
(
Math
.
sin
(
b
/
2
),
2
)));
s
=
s
*
6378.137
;
s
=
Math
.
round
(
s
*
10000
)
/
10
;
...
...
@@ -130,14 +130,32 @@ export const space=(lat1, lng1, lat2, lng2)=>{
// 将秒总数转化为几小时几分几秒
export
function
secondFormat
(
second
)
{
if
(
second
>
0
){
let
hour
=
0
,
min
=
0
,
s
=
0
;
hour
=
parseInt
((
second
/
60
/
60
));
min
=
(
parseInt
(
second
/
60
))
%
60
s
=
(
second
-
hour
*
3600
)
-
(
min
*
60
)
if
(
second
>
0
)
{
let
hour
=
0
,
min
=
0
,
s
=
0
;
hour
=
parseInt
((
second
/
60
/
60
));
min
=
(
parseInt
(
second
/
60
))
%
60
s
=
(
second
-
hour
*
3600
)
-
(
min
*
60
)
return
`
${
hour
>
0
?
hour
+
'小时'
:
''
}${
min
>
0
?
min
+
'分'
:
''
}${
s
}
秒`
}
else
{
}
else
{
return
"—"
}
}
// 将字典转化成键值对对象
export
function
getDictItem
(
dicts
,
dictType
)
{
let
obj
=
{};
if
(
dicts
&&
dicts
.
length
)
{
let
arr
=
dicts
.
filter
(
item
=>
item
.
dictType
===
dictType
)
if
(
arr
&&
arr
.
length
){
arr
[
0
].
dictDatas
.
forEach
(
val
=>
{
obj
[
val
.
dictValue
]
=
val
.
dictLabel
})
}
}
else
{
obj
=
''
}
return
obj
}
\ No newline at end of file
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