@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Eslint config file
|
||||
* Documentation: https://eslint.org/docs/user-guide/configuring/
|
||||
* Install the Eslint extension before using this feature.
|
||||
*/
|
||||
module.exports = {
|
||||
env: {
|
||||
es6: true,
|
||||
browser: true,
|
||||
node: true,
|
||||
},
|
||||
ecmaFeatures: {
|
||||
modules: true,
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 2018,
|
||||
sourceType: 'module',
|
||||
},
|
||||
globals: {
|
||||
wx: true,
|
||||
App: true,
|
||||
Page: true,
|
||||
getCurrentPages: true,
|
||||
getApp: true,
|
||||
Component: true,
|
||||
requirePlugin: true,
|
||||
requireMiniProgram: true,
|
||||
},
|
||||
// extends: 'eslint:recommended',
|
||||
rules: {},
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
# Windows
|
||||
[Dd]esktop.ini
|
||||
Thumbs.db
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
|
||||
# Node.js
|
||||
node_modules/
|
@ -0,0 +1,2 @@
|
||||
project.config.json
|
||||
config.js
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 莞香广科
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -0,0 +1,31 @@
|
||||
{
|
||||
"pages": [
|
||||
"pages/login",
|
||||
"pages/canteen/canteen",
|
||||
"pages/index",
|
||||
"pages/map/index",
|
||||
"pages/map/details",
|
||||
"pages/map/polyline",
|
||||
"pages/map/search",
|
||||
"pages/web-views/web-views",
|
||||
"pages/test/test"
|
||||
],
|
||||
"permission": {
|
||||
"scope.userLocation": {
|
||||
"desc": "你的位置信息将用于辅助规划路线"
|
||||
}
|
||||
},
|
||||
"requiredPrivateInfos": [
|
||||
"getLocation"
|
||||
],
|
||||
"window": {
|
||||
"backgroundTextStyle": "light",
|
||||
"navigationBarBackgroundColor": "#079df2",
|
||||
"navigationBarTitleText": "校园导览",
|
||||
"navigationBarTextStyle": "white"
|
||||
},
|
||||
"sitemapLocation": "sitemap.json",
|
||||
"navigateToMiniProgramAppIdList": [
|
||||
"wx98d60f2aee3668c3"
|
||||
]
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
/**app.wxss**/
|
||||
page{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.container {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 200rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 18 KiB |
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
@ -0,0 +1,784 @@
|
||||
/* pages/canteen/canteen.wxss */
|
||||
.father{
|
||||
display:flex;
|
||||
|
||||
align-items:flex-start ;
|
||||
|
||||
}
|
||||
.can-display{
|
||||
background-color: rgb(247, 246, 235);
|
||||
width: 40%;
|
||||
height: 13cm
|
||||
|
||||
}
|
||||
|
||||
.can-display view{
|
||||
display:inline-flexbox;
|
||||
margin:50rpx 40rpx;
|
||||
width:70%;
|
||||
font-size: 35rpx;
|
||||
|
||||
}
|
||||
.cn_active{
|
||||
color: rgb(204, 175, 9);
|
||||
font-weight: 710;
|
||||
border-bottom: 4rpx solid rgb(204, 175, 9);
|
||||
|
||||
}
|
||||
.swiper_container{
|
||||
width:70%;
|
||||
height:12cm
|
||||
|
||||
}
|
||||
.recipe_cell{
|
||||
flex-direction: column;
|
||||
padding: 30rpx;
|
||||
border-bottom: 1rpx solid rgb(248, 224, 118);
|
||||
}
|
||||
/* 弹窗 */
|
||||
.showModal{
|
||||
position: absolute;
|
||||
height:25px;
|
||||
right:2%;
|
||||
width:10%;
|
||||
top:10%;
|
||||
background: rgb(250, 239, 177);
|
||||
color:#fff;
|
||||
font-size: 10px;
|
||||
pointer-events:auto;
|
||||
|
||||
}
|
||||
.showModal112{
|
||||
position: absolute;
|
||||
height:25px;
|
||||
right:2%;
|
||||
width:10%;
|
||||
top:27%;
|
||||
background: rgb(250, 239, 177);
|
||||
color:#fff;
|
||||
font-size: 10px;
|
||||
pointer-events:auto;
|
||||
|
||||
}
|
||||
.showModal113{
|
||||
position: absolute;
|
||||
height:25px;
|
||||
right:2%;
|
||||
width:10%;
|
||||
top:45%;
|
||||
background: rgb(250, 239, 177);
|
||||
color:#fff;
|
||||
font-size: 10px;
|
||||
pointer-events:auto;
|
||||
}
|
||||
.showModal114{
|
||||
position: absolute;
|
||||
height:25px;
|
||||
right:2%;
|
||||
width:10%;
|
||||
top:62%;
|
||||
background: rgb(250, 239, 177);
|
||||
color:#fff;
|
||||
font-size: 10px;
|
||||
pointer-events:auto;
|
||||
}
|
||||
.showModal115{
|
||||
position: absolute;
|
||||
height:25px;
|
||||
right:2%;
|
||||
width:10%;
|
||||
top:79%;
|
||||
background: rgb(250, 239, 177);
|
||||
color:#fff;
|
||||
font-size: 10px;
|
||||
pointer-events:auto;
|
||||
}
|
||||
.showModal116{
|
||||
position: absolute;
|
||||
height:25px;
|
||||
right:2%;
|
||||
width:10%;
|
||||
top:106%;
|
||||
background: rgb(250, 239, 177);
|
||||
color:#fff;
|
||||
font-size: 10px;
|
||||
pointer-events:auto;
|
||||
}
|
||||
.showModal117{
|
||||
position: absolute;
|
||||
height:25px;
|
||||
right:2%;
|
||||
width:10%;
|
||||
top:126%;
|
||||
background: rgb(250, 239, 177);
|
||||
color:#fff;
|
||||
font-size: 10px;
|
||||
pointer-events:auto;
|
||||
}
|
||||
.showModal118{
|
||||
position: absolute;
|
||||
height:25px;
|
||||
right:2%;
|
||||
width:10%;
|
||||
top:145%;
|
||||
background: rgb(250, 239, 177);
|
||||
color:#fff;
|
||||
font-size: 10px;
|
||||
pointer-events:auto;
|
||||
}
|
||||
|
||||
/*以下全是弹窗样式*/
|
||||
.modal-mask {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0, 0, 0, 0.158);
|
||||
opacity: 0.5;
|
||||
overflow: hidden;
|
||||
z-index: 9000;
|
||||
color: #fff;
|
||||
}
|
||||
.modal-dialog {
|
||||
width: 599rpx;
|
||||
height:900rpx;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 25%;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
background: #ffffff;
|
||||
margin-top: -180rpx;
|
||||
margin-left: 10%;
|
||||
border-radius: 36rpx;
|
||||
}
|
||||
.modal-title {
|
||||
padding-top: 30rpx;
|
||||
font-size: 20px;
|
||||
color: #4e4d4d;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-title-sc {
|
||||
padding-top: 10rpx;
|
||||
font-size: 15px;
|
||||
color: #bebcbc;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-content {
|
||||
padding: 35rpx 12rpx;
|
||||
/* justify-content: flex-start; */
|
||||
|
||||
}
|
||||
.username{
|
||||
margin: 0rpx 2rpx;
|
||||
font-size: 10rpx;
|
||||
}
|
||||
.evaluate{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.evaluate_time{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
.info{
|
||||
height:40px;
|
||||
right:20%;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
color:#bebcbc;
|
||||
}
|
||||
.info::after{
|
||||
border: 0px;
|
||||
}
|
||||
.name_List{
|
||||
position:absolute;
|
||||
left:0%;
|
||||
width:40%;
|
||||
text-align: left;
|
||||
}
|
||||
.quantity_List{
|
||||
position:absolute;
|
||||
left:40%;
|
||||
width:10%;
|
||||
text-align: left;
|
||||
}
|
||||
.reason_List{
|
||||
position:absolute;
|
||||
left:50%;
|
||||
width:50%;
|
||||
text-align: right;
|
||||
overflow: hidden;
|
||||
}
|
||||
.modal-content-return{
|
||||
padding: 15rpx 32rpx;
|
||||
font-size: 15px;
|
||||
color: #757272;
|
||||
}
|
||||
.modal-footer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 86rpx;
|
||||
border-top: 1px solid #dedede;
|
||||
font-size: 34rpx;
|
||||
line-height: 86rpx;
|
||||
}
|
||||
.btn-cancel {
|
||||
width: 50%;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
border-right: 1px solid #dedede;
|
||||
}
|
||||
.btn-confirm {
|
||||
width: 50%;
|
||||
color: #ec5300;
|
||||
text-align: center;
|
||||
}
|
||||
/* tanchuang */
|
||||
.modal-mask112 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0, 0, 0, 0.158);
|
||||
opacity: 0.5;
|
||||
overflow: hidden;
|
||||
z-index: 9000;
|
||||
color: #fff;
|
||||
}
|
||||
.modal-dialog112 {
|
||||
width: 599rpx;
|
||||
height:900rpx;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 25%;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
background: #ffffff;
|
||||
margin-top: -180rpx;
|
||||
margin-left: 10%;
|
||||
border-radius: 36rpx;
|
||||
}
|
||||
.modal-title112 {
|
||||
padding-top: 30rpx;
|
||||
font-size: 20px;
|
||||
color: #4e4d4d;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-title-sc112 {
|
||||
padding-top: 10rpx;
|
||||
font-size: 15px;
|
||||
color: #bebcbc;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-content112 {
|
||||
padding: 35rpx 12rpx;
|
||||
/* justify-content: flex-start; */
|
||||
|
||||
}
|
||||
.username{
|
||||
margin: 0rpx 2rpx;
|
||||
font-size: 10rpx;
|
||||
}
|
||||
.evaluate{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.evaluate_time{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
.info{
|
||||
height:60px;
|
||||
right:20%;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
color:#bebcbc;
|
||||
}
|
||||
.info::after{
|
||||
border: 0px;
|
||||
}
|
||||
.name_List{
|
||||
position:absolute;
|
||||
left:0%;
|
||||
width:40%;
|
||||
text-align: left;
|
||||
}
|
||||
.quantity_List{
|
||||
position:absolute;
|
||||
left:40%;
|
||||
width:10%;
|
||||
text-align: left;
|
||||
}
|
||||
.reason_List{
|
||||
position:absolute;
|
||||
left:50%;
|
||||
width:50%;
|
||||
text-align: right;
|
||||
overflow: hidden;
|
||||
}
|
||||
.modal-content-return112{
|
||||
padding: 15rpx 32rpx;
|
||||
font-size: 15px;
|
||||
color: #757272;
|
||||
}
|
||||
.modal-footer112 {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 86rpx;
|
||||
border-top: 1px solid #dedede;
|
||||
font-size: 34rpx;
|
||||
line-height: 86rpx;
|
||||
}
|
||||
.btn-cancel112 {
|
||||
width: 50%;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
border-right: 1px solid #dedede;
|
||||
}
|
||||
.btn-confirm112 {
|
||||
width: 50%;
|
||||
color: #ec5300;
|
||||
text-align: center;
|
||||
}
|
||||
/* tanchuang */
|
||||
.modal-mask113 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0, 0, 0, 0.158);
|
||||
opacity: 0.5;
|
||||
overflow: hidden;
|
||||
z-index: 9000;
|
||||
color: #fff;
|
||||
}
|
||||
.modal-dialog113 {
|
||||
width: 599rpx;
|
||||
height:900rpx;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 25%;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
background: #ffffff;
|
||||
margin-top: -180rpx;
|
||||
margin-left: 10%;
|
||||
border-radius: 36rpx;
|
||||
}
|
||||
.modal-title113 {
|
||||
padding-top: 30rpx;
|
||||
font-size: 20px;
|
||||
color: #4e4d4d;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-title-sc113 {
|
||||
padding-top: 10rpx;
|
||||
font-size: 15px;
|
||||
color: #bebcbc;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-content113 {
|
||||
padding: 35rpx 12rpx;
|
||||
/* justify-content: flex-start; */
|
||||
|
||||
}
|
||||
.username{
|
||||
margin: 0rpx 2rpx;
|
||||
font-size: 10rpx;
|
||||
}
|
||||
.evaluate{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.evaluate_time{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
.info{
|
||||
height:60px;
|
||||
right:20%;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
color:#bebcbc;
|
||||
}
|
||||
.info::after{
|
||||
border: 0px;
|
||||
}
|
||||
.name_List{
|
||||
position:absolute;
|
||||
left:0%;
|
||||
width:40%;
|
||||
text-align: left;
|
||||
}
|
||||
.quantity_List{
|
||||
position:absolute;
|
||||
left:40%;
|
||||
width:10%;
|
||||
text-align: left;
|
||||
}
|
||||
.reason_List{
|
||||
position:absolute;
|
||||
left:50%;
|
||||
width:50%;
|
||||
text-align: right;
|
||||
overflow: hidden;
|
||||
}
|
||||
.modal-content-return113{
|
||||
padding: 15rpx 32rpx;
|
||||
font-size: 15px;
|
||||
color: #757272;
|
||||
}
|
||||
.modal-footer113 {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 86rpx;
|
||||
border-top: 1px solid #dedede;
|
||||
font-size: 34rpx;
|
||||
line-height: 86rpx;
|
||||
}
|
||||
.btn-cancel113 {
|
||||
width: 50%;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
border-right: 1px solid #dedede;
|
||||
}
|
||||
.btn-confirm113 {
|
||||
width: 50%;
|
||||
color: #ec5300;
|
||||
text-align: center;
|
||||
}
|
||||
/* tanchuang */
|
||||
/* tanchuang */
|
||||
.modal-mask114 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0, 0, 0, 0.158);
|
||||
opacity: 0.5;
|
||||
overflow: hidden;
|
||||
z-index: 9000;
|
||||
color: #fff;
|
||||
}
|
||||
.modal-dialog114 {
|
||||
width: 599rpx;
|
||||
height:900rpx;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 25%;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
background: #ffffff;
|
||||
margin-top: -180rpx;
|
||||
margin-left: 10%;
|
||||
border-radius: 36rpx;
|
||||
}
|
||||
.modal-title114 {
|
||||
padding-top: 30rpx;
|
||||
font-size: 20px;
|
||||
color: #4e4d4d;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-title-sc114 {
|
||||
padding-top: 10rpx;
|
||||
font-size: 15px;
|
||||
color: #bebcbc;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-content114 {
|
||||
padding: 35rpx 12rpx;
|
||||
/* justify-content: flex-start; */
|
||||
|
||||
}
|
||||
.username{
|
||||
margin: 0rpx 2rpx;
|
||||
font-size: 10rpx;
|
||||
}
|
||||
.evaluate{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.evaluate_time{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
.info{
|
||||
height:60px;
|
||||
right:20%;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
color:#bebcbc;
|
||||
}
|
||||
.info::after{
|
||||
border: 0px;
|
||||
}
|
||||
.name_List{
|
||||
position:absolute;
|
||||
left:0%;
|
||||
width:40%;
|
||||
text-align: left;
|
||||
}
|
||||
.quantity_List{
|
||||
position:absolute;
|
||||
left:40%;
|
||||
width:10%;
|
||||
text-align: left;
|
||||
}
|
||||
.reason_List{
|
||||
position:absolute;
|
||||
left:50%;
|
||||
width:50%;
|
||||
text-align: right;
|
||||
overflow: hidden;
|
||||
}
|
||||
.modal-content-return114{
|
||||
padding: 15rpx 32rpx;
|
||||
font-size: 15px;
|
||||
color: #757272;
|
||||
}
|
||||
.modal-footer114 {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 86rpx;
|
||||
border-top: 1px solid #dedede;
|
||||
font-size: 34rpx;
|
||||
line-height: 86rpx;
|
||||
}
|
||||
.btn-cancel114 {
|
||||
width: 50%;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
border-right: 1px solid #dedede;
|
||||
}
|
||||
.btn-confirm114 {
|
||||
width: 50%;
|
||||
color: #ec5300;
|
||||
text-align: center;
|
||||
}
|
||||
/* tanchuang */
|
||||
.modal-mask115 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0, 0, 0, 0.158);
|
||||
opacity: 0.5;
|
||||
overflow: hidden;
|
||||
z-index: 9000;
|
||||
color: #fff;
|
||||
}
|
||||
.modal-dialog115 {
|
||||
width: 599rpx;
|
||||
height:900rpx;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 25%;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
background: #ffffff;
|
||||
margin-top: -180rpx;
|
||||
margin-left: 10%;
|
||||
border-radius: 36rpx;
|
||||
}
|
||||
.modal-title115 {
|
||||
padding-top: 30rpx;
|
||||
font-size: 20px;
|
||||
color: #4e4d4d;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-title-sc115 {
|
||||
padding-top: 10rpx;
|
||||
font-size: 15px;
|
||||
color: #bebcbc;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-content115 {
|
||||
padding: 35rpx 12rpx;
|
||||
/* justify-content: flex-start; */
|
||||
|
||||
}
|
||||
.username{
|
||||
margin: 0rpx 2rpx;
|
||||
font-size: 10rpx;
|
||||
}
|
||||
.evaluate{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.evaluate_time{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
.info{
|
||||
height:60px;
|
||||
right:20%;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
color:#bebcbc;
|
||||
}
|
||||
.info::after{
|
||||
border: 0px;
|
||||
}
|
||||
.name_List{
|
||||
position:absolute;
|
||||
left:0%;
|
||||
width:40%;
|
||||
text-align: left;
|
||||
}
|
||||
.quantity_List{
|
||||
position:absolute;
|
||||
left:40%;
|
||||
width:10%;
|
||||
text-align: left;
|
||||
}
|
||||
.reason_List{
|
||||
position:absolute;
|
||||
left:50%;
|
||||
width:50%;
|
||||
text-align: right;
|
||||
overflow: hidden;
|
||||
}
|
||||
.modal-content-return115{
|
||||
padding: 15rpx 32rpx;
|
||||
font-size: 15px;
|
||||
color: #757272;
|
||||
}
|
||||
.modal-footer115 {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 86rpx;
|
||||
border-top: 1px solid #dedede;
|
||||
font-size: 34rpx;
|
||||
line-height: 86rpx;
|
||||
}
|
||||
.btn-cancel115 {
|
||||
width: 50%;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
border-right: 1px solid #dedede;
|
||||
}
|
||||
.btn-confirm115 {
|
||||
width: 50%;
|
||||
color: #ec5300;
|
||||
text-align: center;
|
||||
}
|
||||
/* tanchuang */
|
||||
.modal-mask116 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: rgba(0, 0, 0, 0.158);
|
||||
opacity: 0.5;
|
||||
overflow: hidden;
|
||||
z-index: 9000;
|
||||
color: #fff;
|
||||
}
|
||||
.modal-dialog116 {
|
||||
width: 599rpx;
|
||||
height:900rpx;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 25%;
|
||||
left: 0;
|
||||
z-index: 9999;
|
||||
background: #ffffff;
|
||||
margin-top: -180rpx;
|
||||
margin-left: 10%;
|
||||
border-radius: 36rpx;
|
||||
}
|
||||
.modal-title116 {
|
||||
padding-top: 30rpx;
|
||||
font-size: 20px;
|
||||
color: #4e4d4d;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-title-sc116 {
|
||||
padding-top: 10rpx;
|
||||
font-size: 15px;
|
||||
color: #bebcbc;
|
||||
text-align: center;
|
||||
}
|
||||
.modal-content116 {
|
||||
padding: 35rpx 12rpx;
|
||||
/* justify-content: flex-start; */
|
||||
|
||||
}
|
||||
.username{
|
||||
margin: 0rpx 2rpx;
|
||||
font-size: 10rpx;
|
||||
}
|
||||
.evaluate{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.evaluate_time{
|
||||
margin:0rpx 2rpx;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
.info{
|
||||
height:60px;
|
||||
right:20%;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
color:#bebcbc;
|
||||
}
|
||||
.info::after{
|
||||
border: 0px;
|
||||
}
|
||||
.name_List{
|
||||
position:absolute;
|
||||
left:0%;
|
||||
width:40%;
|
||||
text-align: left;
|
||||
}
|
||||
.quantity_List{
|
||||
position:absolute;
|
||||
left:40%;
|
||||
width:10%;
|
||||
text-align: left;
|
||||
}
|
||||
.reason_List{
|
||||
position:absolute;
|
||||
left:50%;
|
||||
width:50%;
|
||||
text-align: right;
|
||||
overflow: hidden;
|
||||
}
|
||||
.modal-content-return116{
|
||||
padding: 15rpx 32rpx;
|
||||
font-size: 15px;
|
||||
color: #757272;
|
||||
}
|
||||
.modal-footer116 {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 86rpx;
|
||||
border-top: 1px solid #dedede;
|
||||
font-size: 34rpx;
|
||||
line-height: 86rpx;
|
||||
}
|
||||
.btn-cancel116 {
|
||||
width: 50%;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
border-right: 1px solid #dedede;
|
||||
}
|
||||
.btn-confirm116 {
|
||||
width: 50%;
|
||||
color: #ec5300;
|
||||
text-align: center;
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
//获取应用实例
|
||||
var app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
images: app.globalData.introduce.images,
|
||||
shortName: app.globalData.introduce.shortName,
|
||||
mapCopyright: app.globalData.introduce.mapCopyright,
|
||||
imgCDN: app.imgCDN
|
||||
},
|
||||
onLoad: function (options) {
|
||||
wx.setNavigationBarTitle({
|
||||
title: app.globalData.introduce.name
|
||||
})
|
||||
},
|
||||
onShareAppMessage: function (res) {
|
||||
if (res.from === 'button') {
|
||||
// 来自页面内转发按钮
|
||||
console.log(res.target)
|
||||
}
|
||||
return {
|
||||
title: app.globalData.introduce.name + ' - 校园导览',
|
||||
path: '/pages/index',
|
||||
imageUrl: app.imgCDN + app.globalData.introduce.share,
|
||||
success: function (res) {
|
||||
// 转发成功
|
||||
},
|
||||
fail: function (res) {
|
||||
// 转发失败
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"navigationBarBackgroundColor": "#0c101b"
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
<view class="page" style="background: url('{{imgCDN}}{{images}}'); background-size: 100% 100%;">
|
||||
<view class="button_container">
|
||||
<navigator class="button" url="map/details">
|
||||
<text>{{shortName}}简介</text>
|
||||
</navigator>
|
||||
<navigator class="button" url="map/index">
|
||||
<text>逛逛{{shortName}}</text>
|
||||
</navigator>
|
||||
</view>
|
||||
<view class="copyright">
|
||||
<navigator target="miniProgram" app-id="wx8afedfde046e5916">
|
||||
<text>© cauc软工</text>
|
||||
</navigator>
|
||||
<navigator url="web-views/web-views?url={{mapCopyright.url}}">
|
||||
<text>{{mapCopyright?"数据版权:"+mapCopyright.name:""}}</text>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
@ -0,0 +1,44 @@
|
||||
.page {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.button_container {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: row;
|
||||
margin-top: 120px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.button {
|
||||
width: 145rpx;
|
||||
height: 145rpx;
|
||||
margin: 20px;
|
||||
background-color: rgba(255, 224, 115, 0.9);
|
||||
border-radius: 80rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.button text {
|
||||
width: 55%;
|
||||
align-self: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
height: 55vh;
|
||||
font-size: 27rpx;
|
||||
text-align: center;
|
||||
line-height: 150%;
|
||||
text-shadow:#000 1rpx 0 0,#000 0 1rpx 0,#000 -1rpx 0 0,#000 0 -1rpx 0;
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
// pages/login/login.js
|
||||
var that;
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
userInfo:null,
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad:function(options) {
|
||||
that = this;
|
||||
wx.getStorage({
|
||||
key:'userInfo',
|
||||
success(res){
|
||||
// console.log('get storage success',JSON.parse(res.data))
|
||||
that.setData({
|
||||
userInfo:JSON.parse(res.data)
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow(){
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
},
|
||||
bindGetUserInfo: function(e){
|
||||
that = this;
|
||||
if(e.detail.userInfo){
|
||||
wx.setStorage({
|
||||
data:JSON.stringify(e.detail.userInfo),
|
||||
key:'userInfo',
|
||||
success(res){
|
||||
// console.log('set storage success:',res)
|
||||
that.setData({
|
||||
userInfo:JSON.parse(res.data)
|
||||
})
|
||||
}
|
||||
})
|
||||
wx.getStorage({
|
||||
key:'userInfo',
|
||||
success(res){
|
||||
// console.log('get storage success',JSON.parse(res.data))
|
||||
that.setData({
|
||||
userInfo:JSON.parse(res.data)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
goToSchool:function(options){
|
||||
|
||||
wx.navigateTo({
|
||||
url: '../pages/index'
|
||||
})
|
||||
},
|
||||
goToCanteen:function(options){
|
||||
wx.navigateTo({
|
||||
url: '../pages/canteen/canteen'
|
||||
})
|
||||
}
|
||||
})
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
<!--pages/login/login.wxml-->
|
||||
<view wx:if="{{userInfo != null}}">
|
||||
|
||||
<view class="logo">
|
||||
<open-data type="userAvatarUrl" class="userinfo" id="userinfo"></open-data>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view wx:if="{{userInfo != null}}">
|
||||
<text class="nickname_type">欢迎您! {{userInfo.nickName}}</text>
|
||||
<button size="default" type="primary"class="tapbtn1" bindtap="goToSchool">校园游</button>
|
||||
<button size="default" type="primary"class="tapbtn2" bindtap="goToCanteen">评价食堂</button>
|
||||
</view>
|
||||
<view wx:else="">
|
||||
<view class="text_style"> <text> 微信登陆</text></view>
|
||||
<view class="text_desc_style"><text>将获取您的信息,如头像、昵称等</text></view>
|
||||
<button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo"type="primary" size="default">授权登录</button>
|
||||
|
||||
</view>
|
@ -0,0 +1,49 @@
|
||||
/* pages/login/login.wxss */
|
||||
page {
|
||||
background-color: rgb(255, 255, 255);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.text_style{
|
||||
margin-top: 40rpx;
|
||||
height: 140rpx;
|
||||
width: 100%;
|
||||
background: #ffffff;
|
||||
text-align: center;
|
||||
font-size: 40rpx;
|
||||
color: rgb(18, 18, 224);
|
||||
}
|
||||
.text_desc_style{
|
||||
/* margin-top: 40rpx; */
|
||||
height: 100rpx;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
text-align: center;
|
||||
font-size: 30rpx;
|
||||
color: blue;
|
||||
}
|
||||
#userinfo{
|
||||
width: 260rpx;
|
||||
height:260rpx;
|
||||
border-radius:50%;
|
||||
display: flex;
|
||||
overflow:hidden;
|
||||
/* text-align: center; */
|
||||
/* justify-content: center; */
|
||||
margin-top: 50px;
|
||||
margin-left: 120px;
|
||||
}
|
||||
.nickname_type{
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
display: flex;
|
||||
/* align-items: center; */
|
||||
justify-content: center;
|
||||
}
|
||||
.tapbtn1{
|
||||
margin-top: 1%;
|
||||
}
|
||||
.tapbtn2{
|
||||
margin-top: 5%;
|
||||
}
|
@ -0,0 +1,107 @@
|
||||
// pages/map/details.js
|
||||
//获取应用实例
|
||||
var app = getApp();
|
||||
Page({
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
tid: 0,
|
||||
bid: 0,
|
||||
building: {
|
||||
img: []//加载中图片地址
|
||||
},
|
||||
imgCDN: app.imgCDN
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
var bid = parseInt(options.bid);
|
||||
var tid = parseInt(options.tid);
|
||||
if (!options.bid || !options.tid){
|
||||
var data = app.globalData.introduce;
|
||||
} else {
|
||||
var data = app.globalData.map[tid].data[bid];
|
||||
}
|
||||
this.setData({
|
||||
bid: bid,
|
||||
tid: tid,
|
||||
building: data
|
||||
});
|
||||
wx.setNavigationBarTitle({
|
||||
title: data.name
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function (res) {
|
||||
var title, path;
|
||||
if (this.data.introduce){
|
||||
title = app.globalData.introduce.name + '校园导览';
|
||||
path = "/pages/map/details";
|
||||
} else {
|
||||
title = this.data.building.name + ' - ' + app.globalData.introduce.name + '校园导览'
|
||||
path = "/pages/map/details?tid=" + this.data.tid + "&bid=" + this.data.bid
|
||||
}
|
||||
if (res.from === 'button') {
|
||||
// 来自页面内转发按钮
|
||||
console.log(res.target)
|
||||
}
|
||||
return {
|
||||
title: title,
|
||||
path: path,
|
||||
imageUrl: app.imgCDN + this.data.building.img[0],
|
||||
success: function (res) {
|
||||
// 转发成功
|
||||
},
|
||||
fail: function (res) {
|
||||
// 转发失败
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1,22 @@
|
||||
<!--pages/map/details.wxml-->
|
||||
<view>
|
||||
<swiper class="swiper" indicator-dots="{{building.img.length == 1 ? false : true}}" indicator-active-color="#fff" autoplay="1" interval="3000" duration="500">
|
||||
<block wx:for="{{building.img}}" wx:key="*this">
|
||||
<swiper-item>
|
||||
<image class="swiper-image" src="{{imgCDN}}{{item + '?imageMogr2/thumbnail/1500x/interlace/1/blur/1x0/quality/100|imageslim'}}"> </image>
|
||||
</swiper-item>
|
||||
</block>
|
||||
</swiper>
|
||||
<view class="building">
|
||||
<view class="buildingName">{{building.name}}</view>
|
||||
<navigator class="nav_map" url='polyline?latitude={{building.latitude}}&longitude={{building.longitude}}'>
|
||||
<image src="/img/location.svg"> </image>
|
||||
</navigator>
|
||||
</view>
|
||||
|
||||
<view class="descript">
|
||||
<view class='description'>
|
||||
<rich-text nodes="{{ building.description }}"></rich-text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
@ -0,0 +1,50 @@
|
||||
/* pages/map/details.wxss */
|
||||
|
||||
.description {
|
||||
padding: 40rpx 40rpx;
|
||||
line-height: 30px;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.swiper {
|
||||
height: 40vh;
|
||||
}
|
||||
|
||||
.swiper-image {
|
||||
width: 100%;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
.building {
|
||||
height: 10vh;
|
||||
display: flex;
|
||||
margin: auto 20rpx;
|
||||
}
|
||||
|
||||
.buildingName {
|
||||
margin: auto 15rpx;
|
||||
width: 80%;
|
||||
color: #079df2;
|
||||
font-size: 50rpx;
|
||||
white-space:nowrap;
|
||||
}
|
||||
|
||||
.nav_map {
|
||||
margin: auto 10rpx;
|
||||
}
|
||||
|
||||
.nav_map image {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
|
||||
.descript {
|
||||
background: #f8f8f8;
|
||||
width: 100%;
|
||||
min-height: 49vh;
|
||||
}
|
||||
|
||||
.descript rich-text {
|
||||
font-size: 30rpx;
|
||||
color: #000;
|
||||
}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1,43 @@
|
||||
<!--pages/map/map.wxml-->
|
||||
<view style="width: 100%;">
|
||||
<scroll-view scroll-x="true">
|
||||
<view class="top-swich" style="width:{{buildlData.length * 120 < windowWidth ? windowWidth: buildlData.length * 120}}rpx;" wx:if="{{!fullscreen}}">
|
||||
<label wx:for="{{buildlData}}" wx:key="id" id="{{index}}" bindtap="changePage" class="top-swich-btn {{isSelectedBuildType == index ? 'active' : ''}}">{{item.name}}
|
||||
</label>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<map longitude="{{longitude}}" latitude="{{latitude}}" scale="{{buildlData[isSelectedBuildType].scale}}" markers="{{buildlData[isSelectedBuildType].data}}" bindmarkertap="markertap" bindregionchange="regionchange" padding = "[10,20,20,20]"
|
||||
show-location="{{islocation? 'true': 'false'}}" enable-overlooking="true" enable-traffic="true" enable-3D="true" style="width: auto; height:{{fullscreen ? 94 : 48}}vh;">
|
||||
<cover-view class="controls {{fullscreen ? 'full' : ''}}">
|
||||
<cover-view bindtap="navigateSearch">
|
||||
<cover-image class="img" src="/img/search.png" />
|
||||
</cover-view>
|
||||
<cover-view bindtap="location">
|
||||
<cover-image class="img" src="/img/location.png" />
|
||||
</cover-view>
|
||||
</cover-view>
|
||||
</map>
|
||||
<button bindtap="clickButton">
|
||||
共有{{buildlData[isSelectedBuildType].data.length}}个景观 ◕‿◕
|
||||
</button>
|
||||
<scroll-view scroll-y="true" style="height:{{fullscreen ? 0 : 40}}vh" scroll-top="{{(isSelectedBuild -1 ) * 70}}">
|
||||
<view wx:for="{{buildlData[isSelectedBuildType].data}}" wx:key="id" class="building-item" style="{{isSelectedBuild -1 == index ? 'background-color: #d5d5d5;' : ''}}">
|
||||
<view class="img-view">
|
||||
<navigator class="img" url='details?tid={{isSelectedBuildType}}&bid={{index}}'>
|
||||
<image src="{{imgCDN}}{{item.img[0] + '?imageView2/1/w/240/h/180/q/100|imageslim'}}" mode="aspectFill"> </image>
|
||||
<view class="item">
|
||||
<view class="itemName">
|
||||
{{item.name}}
|
||||
</view>
|
||||
<view class="itemFloor" wx:if="{{item.floor}}">
|
||||
位置:{{item.floor}}
|
||||
</view>
|
||||
</view>
|
||||
</navigator>
|
||||
<navigator class="text" url='polyline?latitude={{item.latitude}}&longitude={{item.longitude}}'>
|
||||
<image src="/img/location.svg"> </image>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
@ -0,0 +1,101 @@
|
||||
/* pages/map/map.wxss */
|
||||
|
||||
.building-item {
|
||||
height: 50px;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.top-swich {
|
||||
background-color: #079df2;
|
||||
height: 6vh;
|
||||
color: white;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 0;
|
||||
height: 0;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.top-swich-btn {
|
||||
background-color: none;
|
||||
letter-spacing: 3rpx;
|
||||
height: 65rpx;
|
||||
color: #fff;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.active {
|
||||
border-bottom: solid white;
|
||||
height: 50rpx;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
button {
|
||||
font-size: 26rpx;
|
||||
height: 6vh;
|
||||
}
|
||||
|
||||
.img-view {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.img {
|
||||
width: 85%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.img image {
|
||||
width: 60px;
|
||||
height: 90%;
|
||||
margin: auto 7rpx;
|
||||
}
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: auto 0;
|
||||
}
|
||||
|
||||
.itemName {
|
||||
margin: 0 20rpx;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.itemFloor {
|
||||
margin: 0 20rpx;
|
||||
font-size: 28rpx;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.text {
|
||||
margin: auto 15px;
|
||||
width: 13%;
|
||||
}
|
||||
|
||||
.text image {
|
||||
width: 70rpx;
|
||||
height: 70rpx;
|
||||
}
|
||||
|
||||
.controls {
|
||||
position: relative;
|
||||
top: 65%;
|
||||
left: 85%;
|
||||
/* display: flex; */
|
||||
}
|
||||
|
||||
.controls .img {
|
||||
margin-top: 5px;
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
|
||||
.full {
|
||||
top: 82%;
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
var app = getApp();
|
||||
var amapFile = require('../../utils/amap-wx.js');
|
||||
Page({
|
||||
data: {
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
markers: [],
|
||||
distance: '',
|
||||
polyline: []
|
||||
},
|
||||
onLoad: function (options) {
|
||||
var _this = this;
|
||||
_this.setData({
|
||||
longitude: app.globalData.longitude,
|
||||
latitude: app.globalData.latitude
|
||||
})
|
||||
_this.routing(options);
|
||||
|
||||
var that = this;
|
||||
var myAmapFun = new amapFile.AMapWX({key:'1cde263b006288ddde14d874b6dfc3e8'});
|
||||
myAmapFun.getRegeo({
|
||||
success: function(data){
|
||||
//成功回调
|
||||
},
|
||||
fail: function(info){
|
||||
//失败回调
|
||||
console.log(info)
|
||||
}
|
||||
})
|
||||
|
||||
wx.getLocation({
|
||||
type: 'gcj02',
|
||||
success: function (res) {
|
||||
app.globalData.latitude = res.latitude;
|
||||
app.globalData.longitude = res.longitude;
|
||||
_this.setData({
|
||||
latitude: res.latitude,
|
||||
longitude: res.longitude
|
||||
});
|
||||
_this.routing(options);
|
||||
},
|
||||
fail: function () {
|
||||
console.log("定位失败")
|
||||
wx.showModal({
|
||||
title: '无法使用该功能',
|
||||
content: '请点击右上角在“关于校园导览”设置中给予定位权限',
|
||||
showCancel: false,
|
||||
success: function (res) {
|
||||
wx.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
return;
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
routing: function (options){
|
||||
var _this = this;
|
||||
let distance = Math.abs(_this.data.longitude - options.longitude) + Math.abs(_this.data.latitude - options.latitude)
|
||||
console.log(distance);
|
||||
var myAmapFun = new amapFile.AMapWX({ key: require('../../config.js').key });
|
||||
let routeData = {
|
||||
origin: options.longitude + ',' + options.latitude,
|
||||
destination: _this.data.longitude + ',' + _this.data.latitude,
|
||||
success: function (data) {
|
||||
var points = [];
|
||||
if (data.paths && data.paths[0] && data.paths[0].steps) {
|
||||
var steps = data.paths[0].steps;
|
||||
for (var i = 0; i < steps.length; i++) {
|
||||
var poLen = steps[i].polyline.split(';');
|
||||
for (var j = 0; j < poLen.length; j++) {
|
||||
points.push({
|
||||
longitude: parseFloat(poLen[j].split(',')[0]),
|
||||
latitude: parseFloat(poLen[j].split(',')[1])
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
_this.setData({
|
||||
markers: [{
|
||||
"width": "25",
|
||||
"height": "35",
|
||||
iconPath: "/img/mapicon_end.png",
|
||||
latitude: options.latitude,
|
||||
longitude: options.longitude
|
||||
}, {
|
||||
"width": "25",
|
||||
"height": "35",
|
||||
iconPath: "/img/mapicon_start.png",
|
||||
latitude: _this.data.latitude,
|
||||
longitude: _this.data.longitude
|
||||
}],
|
||||
polyline: [{
|
||||
points: points,
|
||||
color: "#0091ff",
|
||||
width: 6
|
||||
}]
|
||||
});
|
||||
if (data.paths[0] && data.paths[0].distance) {
|
||||
_this.setData({
|
||||
distance: data.paths[0].distance + '米'
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: function (info) {
|
||||
}
|
||||
}
|
||||
if (distance < 0.85) {
|
||||
// getWalkingRoute 步行
|
||||
myAmapFun.getWalkingRoute(routeData)
|
||||
} else {
|
||||
// getDrivingRoute 驾车
|
||||
myAmapFun.getDrivingRoute(routeData)
|
||||
}
|
||||
}
|
||||
})
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"navigationBarTitleText": "路径规划"
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
<map id="navi_map" longitude="{{longitude}}" latitude="{{latitude}}"
|
||||
scale="13" markers="{{markers}}" polyline="{{polyline}}"
|
||||
class="navi_map" show-location enable-overlooking="true" enable-3D="true" enable-traffic="true">
|
||||
|
||||
<cover-view class="distance">{{distance}}</cover-view>
|
||||
</map>
|
||||
<view class="map_container">
|
||||
<!--定义页面结构,可以使用地图组件也能使用其他组件 -->
|
||||
</view>
|
@ -0,0 +1,24 @@
|
||||
.navi_map {
|
||||
width: auto;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.distance {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
right: 10px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
padding: 3px 5px 3px 5px;
|
||||
color: #fff;
|
||||
background: #0091ff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.map_container{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
@ -0,0 +1,133 @@
|
||||
// pages/map/search.js
|
||||
//获取应用实例
|
||||
var app = getApp();
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
keyword: null,
|
||||
buildlData: app.globalData.map,
|
||||
showData: null,
|
||||
cursor: 0,
|
||||
imgCDN: app.imgCDN
|
||||
},
|
||||
|
||||
bindSearchInput: function(e) {
|
||||
let showData = new Array();
|
||||
let searchdata = this.data.buildlData;
|
||||
if (e.detail.cursor >= this.data.cursor) {
|
||||
//输入文字
|
||||
let inputData = e.detail.value.replace(/(^\s*)|(\s*$)/g, "")
|
||||
|
||||
if (inputData) {
|
||||
let z = 0,
|
||||
x = 100;
|
||||
for (var b in searchdata) {
|
||||
for (var i in searchdata[b].data) {
|
||||
if (searchdata[b].data[i].name.indexOf(inputData) != -1 || (searchdata[b].data[i].floor && searchdata[b].data[i].floor.indexOf(inputData) != -1)) {
|
||||
let build = searchdata[b].data[i];
|
||||
build.tid = b;
|
||||
build.bid = i;
|
||||
z = z + 1;
|
||||
build.index = z;
|
||||
showData.push(build);
|
||||
} else if (searchdata[b].data[i].description.indexOf(inputData) != -1) {
|
||||
let build = searchdata[b].data[i];
|
||||
build.tid = b;
|
||||
build.bid = i;
|
||||
x = x + 1;
|
||||
build.index = x;
|
||||
showData.push(build);
|
||||
}
|
||||
}
|
||||
}
|
||||
//冒泡排序
|
||||
for (var i = 0; i < showData.length; i++) {
|
||||
for (var j = 0; j < showData.length - i - 1; j++) {
|
||||
if (showData[j].index > showData[j + 1].index) {
|
||||
var temp = showData[j];
|
||||
showData[j] = showData[j + 1];
|
||||
showData[j + 1] = temp;
|
||||
console.log('交换' + showData[j].index + ':' + showData[j + 1].index)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (inputData == 'gxgk') {
|
||||
showData.push({
|
||||
name: "\u839e\u9999\u5e7f\u79d1"
|
||||
})
|
||||
}
|
||||
this.setData({
|
||||
showData: showData
|
||||
});
|
||||
}
|
||||
} else {
|
||||
//删除文字
|
||||
console.log('删除文字')
|
||||
this.setData({
|
||||
showData: null
|
||||
});
|
||||
}
|
||||
this.data.cursor = e.detail.cursor;
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function(options) {},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function() {
|
||||
|
||||
},
|
||||
reset: function() {
|
||||
this.setData({
|
||||
keyword: null
|
||||
});
|
||||
}
|
||||
})
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1,35 @@
|
||||
<!--index.wxml-->
|
||||
|
||||
<view class="search">
|
||||
<view class="search-icon">
|
||||
<icon type="search" size="16" color="blue" />
|
||||
</view>
|
||||
<view class="search-form">
|
||||
<form>
|
||||
<input bindinput="bindSearchInput" type="text" name="search" placeholder="请输入景点名称关键词" value="{{keyword}}" style="font-size: 30rpx;" />
|
||||
</form>
|
||||
</view>
|
||||
<view class="search-icon" bindtap="reset">
|
||||
<icon type="cancel" size="16" color="purple" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view wx:for="{{showData}}" wx:key="name" class="building-item">
|
||||
|
||||
<view style="height:100%; display: flex;">
|
||||
<navigator class="img" url='details?tid={{item.tid}}&bid={{item.bid}}'>
|
||||
<image src="{{imgCDN}}{{item.img[0]}}" mode="aspectFill"> </image>
|
||||
<view class="item">
|
||||
<view class="itemName">
|
||||
{{item.name}}
|
||||
</view>
|
||||
<view class="itemFloor" wx:if="{{item.floor}}">
|
||||
{{item.floor}}
|
||||
</view>
|
||||
</view>
|
||||
</navigator>
|
||||
<navigator class="text" url='polyline?latitude={{item.latitude}}&longitude={{item.longitude}}'>
|
||||
<image src="/img/location.svg"> </image>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
@ -0,0 +1,16 @@
|
||||
@import 'index.wxss'
|
||||
|
||||
.search {
|
||||
width: 96%;
|
||||
height: 80rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 15px;
|
||||
margin: 20rpx 2%;
|
||||
display: flex;
|
||||
}
|
||||
.search-icon{
|
||||
margin:auto 20rpx;
|
||||
}
|
||||
.search-form{
|
||||
margin:auto 15rpx; width: 100%;
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
// pages/test/test.js
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
markers:[{
|
||||
iconPath:"/img/ico/jd.png",
|
||||
id:1,
|
||||
latitude:39.106471,
|
||||
longitude:117.352597,
|
||||
width:30,
|
||||
height:30
|
||||
},{
|
||||
iconPath:"/img/ico/jd1.png",
|
||||
id:2,
|
||||
latitude:39.107099,
|
||||
longitude:117.353149,
|
||||
width:30,
|
||||
height:30
|
||||
}]
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
|
||||
<map
|
||||
id = "mapp"
|
||||
scale = "16"
|
||||
latitude = "39.106467"
|
||||
longitude = "117.353149"
|
||||
show-compass = "true"
|
||||
show-scale = "true"
|
||||
markers = "{{markers}}"></map>
|
||||
|
@ -0,0 +1,5 @@
|
||||
/* pages/test/test.wxss */
|
||||
#mapp{
|
||||
height:100%;
|
||||
width:100%;
|
||||
}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1,2 @@
|
||||
<!--pages/web-views/web-views.wxml-->
|
||||
<web-view src="https://{{url}}"></web-view>
|
@ -0,0 +1 @@
|
||||
/* pages/web-views/web-views.wxss */
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
|
||||
"rules": [{
|
||||
"action": "allow",
|
||||
"page": "*"
|
||||
}]
|
||||
}
|
@ -0,0 +1 @@
|
||||
${installPath} cloud functions deploy --e ${envId} --n quickstartFunctions --r --project ${projectPath}
|