chenkainan 6 months ago
parent
commit
7bb87179b7
  1. 162
      components/back.vue
  2. 166
      js_sdk/u-charts/u-charts/component.vue
  3. 5662
      js_sdk/u-charts/u-charts/u-charts.js
  4. 7
      manifest.json
  5. 489
      pages.json
  6. 162
      pages/index/index.vue
  7. 28
      pages/webview/webview.vue
  8. BIN
      static/images/zhouWei-navBar/icon_back_black.png
  9. BIN
      static/images/zhouWei-navBar/icon_back_white.png
  10. BIN
      static/images/zhouWei-navBar/icon_home_black.png
  11. BIN
      static/images/zhouWei-navBar/wfqy-icon-shouye-hei.png
  12. BIN
      static/images/zhouWei-navBar/wfqy-icon-shouye.png
  13. 24
      static/js/CommonFunction.js
  14. 1
      static/js/amap-wx.js
  15. 315
      static/js/request.js
  16. 36
      subPackages/order/orderPay.vue
  17. 33
      subPackages/order/trades.vue
  18. 334
      subPackages/other/consulting.vue
  19. 492
      subPackages/other/feiyi.vue
  20. 241
      subPackages/other/fjtcc.vue
  21. 231
      subPackages/other/foodCardtjyr.vue
  22. 116
      subPackages/other/foodDetail.vue
  23. 108
      subPackages/other/foodList.vue
  24. 25
      subPackages/other/gonggjt.vue
  25. 372
      subPackages/other/gonggtcc.vue
  26. 638
      subPackages/other/shusd.vue
  27. 412
      subPackages/other/tingchechang.vue
  28. 308
      subPackages/other/virtual.vue

162
components/back.vue

@ -0,0 +1,162 @@
<template>
<view :class="[scrolltop?'backs1':'backs']" :style="{'padding-top':statusBarHeight+'px'}">
<view :class="['header_left_back',backgroundColor==true?'bgcolor':'']" @click="toback">
<image class="header_icon" v-if="!scrolltop" src="/static/images/zhouWei-navBar/icon_back_white.png" mode="aspectFit"></image>
<image class="header_icon" v-else src="/static/images/zhouWei-navBar/icon_back_black.png" mode="aspectFit"></image>
</view>
<view class="ctitle" v-if="scrolltop">{{title}}</view>
<view class="sskuang" v-if="info.shou" :style="{height:scrolltop?'80rpx':'100%'}">
<input :class="[scrolltop?'hinput':'winput']" type="text" value="" v-model="name" v-if="ssshow" @input="come"/>
<image :src="$getimg(scrolltop?'wfqy-icon-xss.png':'wfqy-icon-xss1.png')" @click="ss" mode="aspectFill"></image>
</view>
</view>
</template>
<script>
export default {
props: ['info'],
data() {
return {
//true--;false--
navFontColor: false,
backgroundColor: false,
name:'',
statusBarHeight:0,
ssshow:false,
scrolltop:false,
title:''
}
},
onLoad() {
},
mounted() {
//
this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
},
onReady() {
this.navFontColor = this.info.color;
if (this.info.bg) {
this.backgroundColor = this.info.bg;
}
},
watch:{
info(){
this.scrolltop=this.info.num;
this.title=this.info.name;
this.$forceUpdate();
}
},
methods: {
toback() {
uni.navigateBack();
},
ss(){
var that=this;
this.ssshow=!this.ssshow;
if(!this.ssshow){
this.name='';
this.$emit('getSsname',{
name:''
})
}
},
come(){
var that=this;
this.$emit('getSsname',{
name:that.name
})
}
}
}
</script>
<style lang="scss">
@function unit($num) {
@return $num+0upx;
}
.ctitle{
font-size: 36rpx;
color: #505050;
font-weight: 500;
width: 560rpx;
text-align: center;
}
.sskuang{
width: 465rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-end;
height: 100%;
.hinput{
margin-right: 20rpx;
border: 1rpx solid rgba(0,0,0,0.1);
border-radius: 35rpx;
height: 70%;
color: #333;
padding: 0 20rpx;
background: rgba(0,0,0,0.1);
font-size: 24rpx;
width: 170rpx;
}
.winput{
margin-right: 20rpx;
border: 1rpx solid #fff;
border-radius: 35rpx;
height: 70%;
color: #fff;
padding: 0 20rpx;
background: rgba(255,255,255,0.2);
font-size: 24rpx;
width: 170rpx;
}
image{
width: 37rpx;
height: 36rpx;
}
}
.backs {
position: absolute;
left: 0;
// width: unit(70);
height: 88rpx;
z-index: 100;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.backs1{
position: fixed;
background: rgba(255,255,255,1);
/* top: 40rpx; */
left: 0;
height: 88rpx;
z-index: 100;
display: -webkit-box;
display: -webkit-flex;
display: flex;
flex-direction: row;
align-items: center;
justify-content: left;
width: 100%;
}
.header_left_back {
width: 70rpx;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.bgcolor {
border-radius: 50%;
background-color: #446A86;
}
.header_icon {
width: unit(18);
height: unit(34);
}
</style>

166
js_sdk/u-charts/u-charts/component.vue

@ -0,0 +1,166 @@
<template>
<canvas v-if="canvasId" :id="canvasId" :canvasId="canvasId" :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"
@touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd" @error="error">
</canvas>
</template>
<script>
import uCharts from './u-charts.js';
var canvases = {};
export default {
props: {
chartType: {
required: true,
type: String,
default: 'column'
},
opts: {
required: true,
type: Object,
default () {
return null;
},
},
canvasId: {
type: String,
default: 'u-canvas',
},
cWidth: {
default: 375,
},
cHeight: {
default: 250,
},
pixelRatio: {
type: Number,
default: 1,
},
},
mounted() {
this.init();
},
methods: {
init() {
switch (this.chartType) {
case 'column':
this.initColumnChart();
break;
case 'line':
this.initLineChart();
break;
default:
break;
}
},
initColumnChart() {
canvases[this.canvasId] = new uCharts({
$this: this,
canvasId: this.canvasId,
type: 'column',
legend: true,
fontSize: 11,
background: '#FFFFFF',
pixelRatio: this.pixelRatio,
animation: true,
categories: this.opts.categories,
series: this.opts.series,
enableScroll: true,
xAxis: {
disableGrid: true,
itemCount: 4,
scrollShow: true
},
yAxis: {
//disabled:true
},
dataLabel: true,
width: this.cWidth * this.pixelRatio,
height: this.cHeight * this.pixelRatio,
extra: {
column: {
type: 'group',
}
}
});
},
initLineChart() {
canvases[this.canvasId] = new uCharts({
$this: this,
canvasId: this.canvasId,
type: 'line',
fontSize: 11,
legend: true,
dataLabel: false,
dataPointShape: true,
background: '#FFFFFF',
pixelRatio: this.pixelRatio,
categories: this.opts.categories,
series: this.opts.series,
animation: true,
enableScroll: true,
xAxis: {
type: 'grid',
gridColor: '#CCCCCC',
gridType: 'dash',
dashLength: 8,
itemCount: 4,
scrollShow: true
},
yAxis: {
gridType: 'dash',
gridColor: '#CCCCCC',
dashLength: 8,
splitNumber: 5,
min: 10,
max: 180,
format: (val) => {
return val.toFixed(0) + '元'
}
},
width: this.cWidth * this.pixelRatio,
height: this.cHeight * this.pixelRatio,
extra: {
line: {
type: 'straight'
}
}
});
},
// cidcanvas-id,newdata
changeData(cid,newdata) {
canvases[cid].updateData({
series: newdata.series,
categories: newdata.categories
});
},
touchStart(e) {
canvases[this.canvasId].showToolTip(e, {
format: function(item, category) {
return category + ' ' + item.name + ':' + item.data
}
});
canvases[this.canvasId].scrollStart(e);
},
touchMove(e) {
canvases[this.canvasId].scroll(e);
},
touchEnd(e) {
canvases[this.canvasId].scrollEnd(e);
},
error(e) {
console.log(e)
}
},
};
</script>
<style scoped>
.charts {
width: 100%;
height: 100%;
flex: 1;
background-color: #FFFFFF;
z-index: 1;
}
</style>

5662
js_sdk/u-charts/u-charts/u-charts.js

File diff suppressed because it is too large

7
manifest.json

@ -60,9 +60,10 @@
"usingComponents" : true, "usingComponents" : true,
"permission" : { "permission" : {
"scope.userLocation" : { "scope.userLocation" : {
"desc" : "获取用户距离商家距离" "desc" : "给用户展示地图"
} }
} },
"requiredPrivateInfos" : [ "getLocation" ]
}, },
"mp-alipay" : { "mp-alipay" : {
"usingComponents" : true "usingComponents" : true
@ -89,7 +90,7 @@
"disableHostCheck" : true, "disableHostCheck" : true,
"proxy" : { "proxy" : {
"/api" : { "/api" : {
"target" : "https://changyoutaihuadmin.xmainc.com/", // "target" : "https://api.cloud.sz-trip.com", //
"changeOrigin" : true, // "changeOrigin" : true, //
"secure" : true, // https "secure" : true, // https
"pathRewrite" : { "pathRewrite" : {

489
pages.json

@ -1,211 +1,288 @@
{ {
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages "pages" : [
{
"path" : "pages/index/index",
"style" : {
"navigationBarTitleText" : "智游常熟"
}
},
{
"path" : "pages/user/user",
"style" : {
"navigationBarTitleText" : "我的",
"navigationStyle" : "custom"
}
},
{
"path" : "pages/map/map",
"style" : {
"navigationBarTitleText" : "智游常熟"
}
},
{
"path" : "pages/login/login",
"style" : {
"navigationBarTitleText" : "智游常熟"
}
},
{ {
"path": "pages/index/index", "path" : "pages/webview/webview",
"style": { "style" : {
"navigationBarTitleText": "智游常熟" "navigationBarTitleText" : ""
} }
},
{
"path": "pages/user/user",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "我的"
}
},
{
"path": "pages/map/map",
"style": {
// "navigationStyle": "custom",
"navigationBarTitleText": "智游常熟"
}
},
{
"path": "pages/login/login",
"style": {
"navigationBarTitleText": "智游常熟"
}
} }
], ],
"subPackages": [{ "subPackages" : [
"root": "subPackages", {
"pages": [ "root" : "subPackages",
{ "pages" : [
"path": "index", {
"style": { "path" : "index",
"navigationBarTitleText": "uni-app" "style" : {
} "navigationBarTitleText" : "uni-app"
}, }
{ },
"path": "rim/rimList", {
"style": { "path" : "rim/rimList",
"navigationBarTitleText": "常熟周边" "style" : {
} "navigationBarTitleText" : "常熟周边"
}, }
{ },
"path": "peripheralActivity/peripheralActivity", {
"style": { "path" : "peripheralActivity/peripheralActivity",
"navigationBarTitleText": "周边特惠活动" "style" : {
} "navigationBarTitleText" : "周边特惠活动"
}, }
{ },
"path": "venue/venueList", {
"style": { "path" : "venue/venueList",
"navigationBarTitleText": "场馆预约" "style" : {
} "navigationBarTitleText" : "场馆预约"
}, }
{ },
"path": "venue/venueDetail", {
"style": { "path" : "venue/venueDetail",
"navigationBarTitleText": "场馆详情" "style" : {
} "navigationBarTitleText" : "场馆详情"
}, }
{ },
"path": "venue/venueOrder", {
"style": { "path" : "venue/venueOrder",
"navigationBarTitleText": "订单填写" "style" : {
} "navigationBarTitleText" : "订单填写"
}, }
{ },
"path": "service/service", {
"style": { "path" : "service/service",
"navigationBarTitleText": "投诉建议" "style" : {
} "navigationBarTitleText" : "投诉建议"
}, }
{ },
"path": "user/profile", {
"style": { "path" : "user/profile",
"navigationBarTitleText": "个人信息" "style" : {
} "navigationBarTitleText" : "个人信息"
}, }
{ },
"path": "user/bindTel", {
"style": { "path" : "user/bindTel",
"navigationBarTitleText": "修改手机号" "style" : {
} "navigationBarTitleText" : "修改手机号"
}, }
{ },
"path": "user/changeNickname", {
"style": { "path" : "user/changeNickname",
"navigationBarTitleText": "修改姓名" "style" : {
} "navigationBarTitleText" : "修改姓名"
}, }
{ },
"path": "user/travelerList", {
"style": { "path" : "user/travelerList",
"navigationBarTitleText": "常用信息" "style" : {
} "navigationBarTitleText" : "常用信息"
}, }
{ },
"path": "user/myContactsAdd", {
"style": { "path" : "user/myContactsAdd",
"navigationBarTitleText": "常用联系人" "style" : {
} "navigationBarTitleText" : "常用联系人"
}, }
{ },
"path": "user/myAddressAdd", {
"style": { "path" : "user/myAddressAdd",
"navigationBarTitleText": "收货地址" "style" : {
} "navigationBarTitleText" : "收货地址"
}, }
{ },
"path": "user/privacy", {
"style": { "path" : "user/privacy",
"navigationBarTitleText": "详情" "style" : {
} "navigationBarTitleText" : "详情"
}, }
{ },
"path": "user/privacyInfo", {
"style": { "path" : "user/privacyInfo",
"navigationBarTitleText": "详情" "style" : {
} "navigationBarTitleText" : "详情"
}, }
{ },
"path": "user/coupon", {
"style": { "path" : "user/coupon",
"navigationBarTitleText": "优惠券" "style" : {
} "navigationBarTitleText" : "优惠券"
}, }
{ },
"path": "order/trades", {
"style": { "path" : "order/trades",
"navigationBarTitleText": "全部订单" "style" : {
} "navigationBarTitleText" : "全部订单",
}, "navigationStyle" : "custom"
{ }
"path": "order/detail", },
"style": { {
"navigationBarTitleText": "订单详情", "path" : "order/detail",
"navigationStyle": "custom" "style" : {
} "navigationBarTitleText" : "订单详情",
}, "navigationStyle" : "custom"
{ }
"path": "order/orderPay", },
"style": { {
"navigationBarTitleText": "支付" "path" : "order/orderPay",
} "style" : {
}, "navigationBarTitleText" : "支付",
{ "navigationStyle" : "custom"
"path": "eventCalendar/eventCalendar", }
"style": { },
"navigationBarTitleText": "活动日历" {
// "navigationStyle": "custom" "path" : "eventCalendar/eventCalendar",
} "style" : {
}, "navigationBarTitleText" : "活动日历"
{ }
"path": "eventCalendar/detail", },
"style": { // "navigationStyle": "custom"
"navigationBarTitleText": "活动详情" {
} "path" : "eventCalendar/detail",
}, "style" : {
{ "navigationBarTitleText" : "活动详情"
"path": "webPage/webPage", }
"style": { },
"navigationBarTitleText": "", {
"enablePullDownRefresh": false "path" : "webPage/webPage",
} "style" : {
}, "navigationBarTitleText" : "",
{ "enablePullDownRefresh" : false
"path": "video/video", }
"style": { },
"navigationBarTitleText": "视频" {
"path" : "video/video",
"style" : {
"navigationBarTitleText" : "视频"
}
},
{
"path" : "other/foodList",
"style" : {
"navigationBarTitleText" : "寻味常熟"
}
},
{
"path" : "other/foodDetail",
"style" : {
"navigationBarTitleText" : "详情"
}
},
{
"path" : "other/virtual",
"style" : {
"navigationBarTitleText" : "云游常熟"
}
},
{
"path" : "other/gonggtcc",
"style" : {
"navigationBarTitleText" : "公共自行车"
}
},
{
"path" : "other/consulting",
"style" : {
"navigationBarTitleText" : "咨询投诉",
"navigationStyle" : "custom"
}
},
{
"path" : "other/shusd",
"style" : {
"navigationBarTitleText" : "景区舒适度"
}
},
{
"path" : "other/tingchechang",
"style" : {
"navigationBarTitleText" : "停车场"
}
},
{
"path" : "other/fjtcc",
"style" : {
"navigationBarTitleText" : "公共服务"
}
},
{
"path" : "other/gonggjt",
"style" : {
"navigationBarTitleText" : "公共交通"
}
},
{
"path" : "other/feiyi",
"style" : {
"navigationBarTitleText" : "非遗手作"
}
},
{
"path" : "other/foodCardtjyr",
"style" : {
"navigationBarTitleText" : "详情"
}
} }
} ]
] }
}], ],
"tabBar": { "tabBar" : {
"color": "#999999", "color" : "#999999",
"selectedColor": "#00AEA0", "selectedColor" : "#00AEA0",
"borderStyle": "black", "borderStyle" : "black",
"backgroundColor": "#ffffff", "backgroundColor" : "#ffffff",
"fontSize": "24rpx", "fontSize" : "24rpx",
"height": "100rpx", "height" : "100rpx",
"iconWidth": "40rpx", "iconWidth" : "40rpx",
"list": [{ "list" : [
"pagePath": "pages/index/index", {
"iconPath": "/static/images/home.png", "pagePath" : "pages/index/index",
"selectedIconPath": "/static/images/selectHome.png", "iconPath" : "/static/images/home.png",
"text": "首页" "selectedIconPath" : "/static/images/selectHome.png",
}, "text" : "首页"
{ },
"pagePath": "pages/map/map", {
"iconPath": "/static/images/map.png", "pagePath" : "pages/map/map",
"selectedIconPath": "/static/images/selectMap.png", "iconPath" : "/static/images/map.png",
"text": "地图" "selectedIconPath" : "/static/images/selectMap.png",
}, "text" : "地图"
{ },
"pagePath": "pages/user/user", {
"iconPath": "/static/images/mine.png", "pagePath" : "pages/user/user",
"selectedIconPath": "/static/images/selectMine.png", "iconPath" : "/static/images/mine.png",
"text": "我的" "selectedIconPath" : "/static/images/selectMine.png",
} "text" : "我的"
] }
}, ]
"globalStyle": { },
"navigationBarTextStyle": "black", "globalStyle" : {
"navigationBarTitleText": "uni-app", "navigationBarTextStyle" : "black",
"navigationBarBackgroundColor": "#F8F8F8", "navigationBarTitleText" : "uni-app",
"backgroundColor": "#F8F8F8" "navigationBarBackgroundColor" : "#F8F8F8",
}, "backgroundColor" : "#F8F8F8"
"uniIdRouter": {} },
"uniIdRouter" : {}
} }

162
pages/index/index.vue

@ -1,11 +1,11 @@
<template> <template>
<view class="content"> <view class="content" v-if="isShow">
<!-- 头部banner --> <!-- 头部banner -->
<view class="top-box"> <view class="top-box">
<swiper class="top-banner" :circular="true" :interval="6000" <swiper class="top-banner" :circular="true" :interval="6000"
:duration="800" :indicator-dots="false" :autoplay="true" v-if="topBanner"> :duration="800" :indicator-dots="false" :autoplay="true" v-if="topBanner">
<swiper-item v-for="(item, index) in topBanner" :key="index" @click.stop="gotoUrlNew(item)"> <swiper-item v-for="(item, index) in topBanner" :key="index" @click.stop="gotoUrlNew(item)">
<image class="top-banner" :src="showImg(item.head_img)" mode="aspectFill"></image> <image class="top-banner" :src="showImg(item.head_img)" mode="aspectFill" lazy-load="true"></image>
</swiper-item> </swiper-item>
</swiper> </swiper>
</view> </view>
@ -13,7 +13,7 @@
<!-- 金刚区 --> <!-- 金刚区 -->
<view class="menu-box flex-between"> <view class="menu-box flex-between">
<view v-for="(item,index) in menuList" :key="index" @click="goPath(item)"> <view v-for="(item,index) in menuList" :key="index" @click="goPath(item)">
<image :src="item.img" mode="aspectFill"></image> <image :src="item.img" mode="aspectFill" lazy-load="true"></image>
<view>{{item.title}}</view> <view>{{item.title}}</view>
</view> </view>
</view> </view>
@ -22,20 +22,20 @@
<swiper class="small-banner" :circular="true" :interval="6000" <swiper class="small-banner" :circular="true" :interval="6000"
:duration="800" :indicator-dots="false" :autoplay="true" v-if="smallBanner"> :duration="800" :indicator-dots="false" :autoplay="true" v-if="smallBanner">
<swiper-item v-for="(item, index) in smallBanner" :key="index" @click.stop="gotoUrlNew(item)"> <swiper-item v-for="(item, index) in smallBanner" :key="index" @click.stop="gotoUrlNew(item)">
<image class="small-banner" :src="showImg(item.head_img)" mode="aspectFill"></image> <image class="small-banner" :src="showImg(item.head_img)" mode="aspectFill" lazy-load="true"></image>
</swiper-item> </swiper-item>
</swiper> </swiper>
<!-- 常熟精选 --> <!-- 常熟精选 -->
<image src="https://static.ticket.sz-trip.com/changshu/images/index/title1.png" mode="heightFix" class="title-img"></image> <image src="https://static.ticket.sz-trip.com/changshu/images/index/title1.png" mode="heightFix" class="title-img" lazy-load="true"></image>
<view class="winnow-box"> <view class="winnow-box">
<view v-for="(item,index) in winnowList" :key="index"> <view v-for="(item,index) in winnowList" :key="index">
<view class="winnow-title flex-between"> <view class="winnow-title flex-between">
{{item.title}} {{item.title}}
<span :style="{color: item.spanColor}" @click.stop="gotoUrlNew(item.url)">查看更多产品 ></span> <span :style="{color: item.spanColor}" @click.stop="gotoPath(item.path)">查看更多产品 ></span>
</view> </view>
<view class="winnow-item" v-for="(pItem, pIndex) in item.list" :key="pIndex" @click="gotoDetailByTypeToJdsz(pItem)"> <view class="winnow-item" v-for="(pItem, pIndex) in item.list" :key="pIndex" @click="gotoDetailByTypeToJdsz(pItem)">
<image :src="showImgs(pItem.headimg)" mode="aspectFill" class="winnow-img"></image> <image :src="showImgs(pItem.headimg)" mode="aspectFill" class="winnow-img" lazy-load="true"></image>
<view class="winnow-content flex-column"> <view class="winnow-content flex-column">
<view class="title text-overflowRows">{{pItem.title}}</view> <view class="title text-overflowRows">{{pItem.title}}</view>
<view class="price-box flex-between"> <view class="price-box flex-between">
@ -49,10 +49,10 @@
<!-- 周边特惠活动 --> <!-- 周边特惠活动 -->
<view v-if="calendarItem && calendarItem.id"> <view v-if="calendarItem && calendarItem.id">
<image src="https://static.ticket.sz-trip.com/changshu/images/index/title2.png" mode="heightFix" class="title-img"></image> <image src="https://static.ticket.sz-trip.com/changshu/images/index/title2.png" mode="heightFix" class="title-img" lazy-load="true"></image>
<view class="calendar-item" @click="gotoWebUrl(calendarItem)"> <view class="calendar-item" @click="gotoWebUrl(calendarItem)">
<image :src="showImg(calendarItem.image)" mode="aspectFill" class="calendar-img"></image> <image :src="showImg(calendarItem.image)" mode="aspectFill" class="calendar-img" lazy-load="true"></image>
<view class="calendar-content flex-column"> <view class="calendar-content flex-column">
<view class="title text-overflow">{{calendarItem.title}}</view> <view class="title text-overflow">{{calendarItem.title}}</view>
<view class="subtitle text-overflow">活动时间{{ calendarItem.start_time }}{{ calendarItem.end_time }}</view> <view class="subtitle text-overflow">活动时间{{ calendarItem.start_time }}{{ calendarItem.end_time }}</view>
@ -63,22 +63,22 @@
</view> </view>
<!-- 旅游助手 --> <!-- 旅游助手 -->
<image src="https://static.ticket.sz-trip.com/changshu/images/index/title3.png" mode="heightFix" class="title-img"></image> <image src="https://static.ticket.sz-trip.com/changshu/images/index/title3.png" mode="heightFix" class="title-img" lazy-load="true"></image>
<view class="flex-between"> <view class="flex-between">
<image :src="item.img" mode="aspectFill" class="travel-img" v-for="(item,index) in travelList" :key="index" @click="exploit"></image> <image :src="item.img" mode="aspectFill" class="travel-img" v-for="(item,index) in travelList" :key="index" @click="goPath(item)" lazy-load="true"></image>
</view> </view>
<!-- 公共服务 --> <!-- 公共服务 -->
<image src="https://static.ticket.sz-trip.com/changshu/images/index/title4.png" mode="heightFix" class="title-img"></image> <image src="https://static.ticket.sz-trip.com/changshu/images/index/title4.png" mode="heightFix" class="title-img" lazy-load="true"></image>
<view class="public-box"> <view class="public-box">
<view v-for="(item,index) in publicList" :key="index" @click="exploit"> <view v-for="(item,index) in publicList" :key="index" @click="goPath(item)">
<image :src="item.img" mode="aspectFill"></image> <image :src="item.img" mode="aspectFill" lazy-load="true"></image>
<view>{{item.title}}</view> <view>{{item.title}}</view>
</view> </view>
</view> </view>
<!-- 热门推荐 --> <!-- 热门推荐 -->
<image src="https://static.ticket.sz-trip.com/changshu/images/index/title5.png" mode="heightFix" class="title-img"></image> <image src="https://static.ticket.sz-trip.com/changshu/images/index/title5.png" mode="heightFix" class="title-img" lazy-load="true"></image>
<view class="hot-type flex-between"> <view class="hot-type flex-between">
<view v-for="(item,index) in hotType" :key="index" :class="index == typeIndex ? 'type-active' : ''" @click="changeType(index)"> <view v-for="(item,index) in hotType" :key="index" :class="index == typeIndex ? 'type-active' : ''" @click="changeType(index)">
{{item.title}} {{item.title}}
@ -89,8 +89,8 @@
<view class="hot-column" v-for="(column, index) in 2" :key="index"> <view class="hot-column" v-for="(column, index) in 2" :key="index">
<view v-for="(item,indexs) in getColumnItems(index)" :key="indexs" class="hot-item" @click="gotoHotDetail(item)"> <view v-for="(item,indexs) in getColumnItems(index)" :key="indexs" class="hot-item" @click="gotoHotDetail(item)">
<view class="image-container"> <view class="image-container">
<image :src="item.src" mode="widthFix" class="hot-img"></image> <image :src="item.src" mode="widthFix" class="hot-img" lazy-load="true"></image>
<image src="https://static.ticket.sz-trip.com/changshu/images/index/play.png" mode="widthFix" class="play-img" v-if="typeIndex == 5"></image> <image src="https://static.ticket.sz-trip.com/changshu/images/index/play.png" mode="widthFix" class="play-img" v-if="typeIndex == 5" lazy-load="true"></image>
</view> </view>
<view class="hot-content"> <view class="hot-content">
<view class="title text-overflowRows">{{item.title || item.name}}</view> <view class="title text-overflowRows">{{item.title || item.name}}</view>
@ -105,14 +105,40 @@
<view class="price" v-if="typeIndex == 2 || typeIndex == 4"> <view class="price" v-if="typeIndex == 2 || typeIndex == 4">
{{ item.price / 100 }} {{ item.price / 100 }}
</view> </view>
<view class="subtitle text-overflow" v-if="typeIndex == 3"> <view class="subtitle text-overflow" v-if="typeIndex == 3">{{item.cateType}}</view>
{{ item.subtitle }}
</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="content" v-else>
<!-- 头部banner -->
<view class="top-box">
<swiper class="top-banner" :circular="true" :interval="6000"
:duration="800" :indicator-dots="false" :autoplay="true" v-if="topBanner">
<swiper-item v-for="(item, index) in topBanner" :key="index">
<image class="top-banner" :src="showImg(item.head_img)" mode="aspectFill" lazy-load="true"></image>
</swiper-item>
</swiper>
</view>
<!-- 金刚区 -->
<view class="menu-box flex-between">
<view v-for="(item,index) in menuList" :key="index" @click="goPath(item)" v-if="[5,6,7,9].includes(index)">
<image :src="item.img" mode="aspectFill" lazy-load="true"></image>
<view>{{item.title}}</view>
</view>
</view>
<!-- 小banner -->
<swiper class="small-banner" :circular="true" :interval="6000"
:duration="800" :indicator-dots="false" :autoplay="true" v-if="smallBanner">
<swiper-item v-for="(item, index) in smallBanner" :key="index">
<image class="small-banner" :src="showImg(item.head_img)" mode="aspectFill" lazy-load="true"></image>
</swiper-item>
</swiper>
</view>
</template> </template>
<script> <script>
@ -125,32 +151,29 @@
title: '景点门票', title: '景点门票',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/jdmp.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/jdmp.png',
path: '', path: '',
url: 'https://test.m.cloud.sz-trip.com/AttractionsTickets' url: 'https://m.cloud.sz-trip.com/AttractionsTickets'
}, },
{ {
title: '非遗手作', title: '非遗手作',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/fysz.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/fysz.png',
path: '', path: '/subPackages/other/feiyi',
}, },
{ {
title: '文创特产', title: '文创特产',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/wctc.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/wctc.png',
path: '', path: '',
url: 'https://test.m.cloud.sz-trip.com/CulturalCreation', url: 'https://m.cloud.sz-trip.com/CulturalCreation',
// url: 'https://127.0.0.1/CulturalCreation?token=2d50b941-e204-4e5d-97c9-868430711459',
}, },
{ {
title: '酒店住宿', title: '酒店住宿',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/jdzs.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/jdzs.png',
path: '', path: '',
url: 'https://test.m.cloud.sz-trip.com/nightMooring', url: 'https://m.cloud.sz-trip.com/nightMooring',
// url: 'https://127.0.0.1/nightMooring?token=2d50b941-e204-4e5d-97c9-868430711459',
}, },
{ {
title: '电影购票', title: '电影购票',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/dygp.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/dygp.png',
url: 'https://test.m.cloud.sz-trip.com/MoviesChangShu', // url: 'https://m.cloud.sz-trip.com/MoviesChangShu',
}, },
{ {
title: '场馆预约', title: '场馆预约',
@ -172,7 +195,7 @@
title: '特色线路', title: '特色线路',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/tsxl.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/tsxl.png',
path: '', path: '',
url: 'https://test.m.cloud.sz-trip.com/OneDayTravelNew', url: 'https://m.cloud.sz-trip.com/OneDayTravelNew',
}, },
{ {
title: '常熟周边', title: '常熟周边',
@ -187,20 +210,14 @@
id: '5', id: '5',
spanColor: '#529AE7', spanColor: '#529AE7',
list: [], list: [],
url: { path: '/subPackages/webPage/webPage?url=https://m.cloud.sz-trip.com/AttractionsTickets'
jump_type:3,
tdata: 'https://test.m.cloud.sz-trip.com/AttractionsTickets'
}
}, },
{ {
title: '特产', title: '特产',
id: '11', id: '11',
spanColor: '#EE710C', spanColor: '#EE710C',
list: [], list: [],
url: { path: '/subPackages/webPage/webPage?url=https://m.cloud.sz-trip.com/CulturalCreation'
jump_type:3,
tdata: 'https://test.m.cloud.sz-trip.com/CulturalCreation'
}
} }
], ],
calendarItem: {}, calendarItem: {},
@ -208,49 +225,54 @@
{ {
title: '聆听常熟', title: '聆听常熟',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/lingting.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/lingting.png',
path: '' // path: '/subPackages/webPage/webPage?url=https%3A%2F%2Fwx.17u.cn%2Ffindseat%2Fyoupin%23%2FjiangKouTheme%2FsoundNew%3FpageId%3D966'
}, },
{ {
title: '云游常熟', title: '云游常熟',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/yunyou.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/yunyou.png',
path: '' // path: '/subPackages/other/virtual'
}, },
{ {
title: '寻味常熟', title: '寻味常熟',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/xunwei.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/xunwei.png',
path: '' path: '/subPackages/other/foodList'
} }
], ],
publicList: [ publicList: [
{ {
title: '公共自行车', title: '公共自行车',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/ggzxc.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/ggzxc.png',
path: '' path: '/subPackages/other/gonggtcc'
}, },
{ {
title: '咨询投诉', title: '咨询投诉',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/zxts.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/zxts.png',
path: '' path: '/subPackages/other/consulting'
}, },
{ {
title: '景区舒适度', title: '景区舒适度',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/jqssd.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/jqssd.png',
path: '' path: '/subPackages/other/shusd'
}, },
{ {
title: '找车位', title: '找车位',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/zcw.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/zcw.png',
path: '' path: '/subPackages/other/tingchechang'
}, },
{ {
title: '找厕所', title: '找厕所',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/zcs.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/zcs.png',
path: '' path: '/subPackages/other/fjtcc'
}, },
{ {
title: '公共交通', title: '公共交通',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/ggjt.png', img: 'https://static.ticket.sz-trip.com/changshu/images/index/ggjt.png',
path: '' // path: '/subPackages/other/gonggjt'
},
{
title: '文物资源',
img: 'https://static.ticket.sz-trip.com/changshu/images/index/ggjt.png',
// path: '/subPackages/webPage/webPage?url=https://changshuwwaq.hwtcloud.cn/wechat/home'
} }
], ],
hotType: [ hotType: [
@ -264,25 +286,32 @@
typeIndex: 0, typeIndex: 0,
hotList: [], hotList: [],
pageNo: 1, pageNo: 1,
limit: 4, limit: 6,
isLoading: false isLoading: false,
isShow: true
} }
}, },
onLoad() { onLoad() {
}, },
onShow() { onShow() {
// id 4,
this.Post({
id: 4
},'/api/article/getArticleById').then(res => {
this.isShow = res.data.subtitle == 1 ? true : false
})
}, },
onReady() { onReady() {
this.getBanner() this.getBanner()
this.getWinnowList() this.getWinnowList()
this.getCalendarList() this.getCalendarList()
this.changeType(0)
}, },
onReachBottom() { onReachBottom() {
setTimeout(() => { setTimeout(() => {
if (!this.isLoading) this.getHotList(); if (!this.isLoading) this.getHotList();
}, 500); }, 1000);
}, },
methods: { methods: {
goPath (item) { goPath (item) {
@ -310,7 +339,6 @@
}) })
} }
}, },
// banner // banner
// 234 // 234
gotoUrlNew(item) { gotoUrlNew(item) {
@ -395,6 +423,9 @@
case 1: case 1:
item.src = this.showImg(item.image); item.src = this.showImg(item.image);
break; break;
case 3:
item.src = item.typeImg == '' || item.typeImg == null ? 'https://qyly1.csly-travel.com/r/cms/www/m/changshu/noimg.png' : this.$geturl480(item.typeImg)
break
case 5: case 5:
item.src = this.showImg(item.head_img); item.src = this.showImg(item.head_img);
break; break;
@ -476,6 +507,31 @@
this.hotList = this.hotList.concat(res.data) this.hotList = this.hotList.concat(res.data)
} }
}) })
}else if(this.typeIndex == 3) {
this.Post({
apiType: 'old',
channelIds: 76,
first: this.hotList.length,
count: this.limit
}, '/json/content_list.jspx').then(res => {
if(res) {
if(res.length < this.limit) this.isLoading = true
const newArr = [...this.hotList];
for (const item of res) {
let isDuplicate = false;
for (const existingItem of newArr) {
if (existingItem.id === item.id) {
isDuplicate = true;
break;
}
}
if (!isDuplicate) {
newArr.push(item);
}
}
this.hotList = newArr
}
})
}else if(this.typeIndex == 5) { }else if(this.typeIndex == 5) {
// //
this.Post({ this.Post({
@ -521,6 +577,10 @@
uni.navigateTo({ uni.navigateTo({
url:'/subPackages/eventCalendar/detail?id='+item.id url:'/subPackages/eventCalendar/detail?id='+item.id
}) })
}else if(this.typeIndex == 3) {
uni.navigateTo({
url:'/subPackages/other/foodDetail?id='+item.id
})
}else if(this.typeIndex == 5) { }else if(this.typeIndex == 5) {
// //
uni.navigateTo({ uni.navigateTo({

28
pages/webview/webview.vue

@ -0,0 +1,28 @@
<template>
<web-view :src="url"></web-view>
</template>
<script>
export default {
data() {
return {
url: ''
}
},
onLoad(options) {
this.url = decodeURIComponent(options.url)
},
onShareAppMessage(res) {
const {
webViewUrl
} = res;
return {
path: '/pages/webview/webview?url=' + encodeURIComponent(webViewUrl.replace(/[?&]memberId=[^&]*&?/g, "&"))
};
}
}
</script>
<style>
</style>

BIN
static/images/zhouWei-navBar/icon_back_black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

BIN
static/images/zhouWei-navBar/icon_back_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

BIN
static/images/zhouWei-navBar/icon_home_black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

BIN
static/images/zhouWei-navBar/wfqy-icon-shouye-hei.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/images/zhouWei-navBar/wfqy-icon-shouye.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

24
static/js/CommonFunction.js

@ -91,7 +91,7 @@ Vue.prototype.showImg = img => {
if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) { if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) {
return img; return img;
} else { } else {
return Vue.prototype.NEWAPIURL + img; return 'https://changshu.js-dyyj.com' + img;
} }
} }
@ -104,6 +104,22 @@ Vue.prototype.showImgs = img => {
} }
} }
Vue.prototype.$geturl4 = function(url) {
return 'https://qyly1.csly-travel.com/wc400' + url
}
Vue.prototype.$geturl = function(url) {
return 'https://qyly1.csly-travel.com/' + url
}
Vue.prototype.$getimg = function(url) {
return 'https://qyly1.csly-travel.com/r/cms/www/m/changshu/' + url
}
Vue.prototype.$geturl480 = function(url) {
return 'https://qyly1.csly-travel.com/w480' + url
}
// 获取经纬度 // 获取经纬度
Vue.prototype.getLocation = () => { Vue.prototype.getLocation = () => {
uni.startLocationUpdate({ uni.startLocationUpdate({
@ -302,7 +318,7 @@ Vue.prototype.checkIsLoginJdsz = () => {
// 跳转君到苏州详情 // 跳转君到苏州详情
Vue.prototype.gotoDetailByTypeToJdsz = item => { Vue.prototype.gotoDetailByTypeToJdsz = item => {
let httpUrl = 'https://test.m.cloud.sz-trip.com/' let httpUrl = 'https://m.cloud.sz-trip.com/'
let url = '' let url = ''
// 酒景套餐 // 酒景套餐
@ -339,7 +355,7 @@ Vue.prototype.gotoDetailByTypeToJdsz = item => {
url = httpUrl + 'AppointmentDetail?id=' + item.id url = httpUrl + 'AppointmentDetail?id=' + item.id
break; break;
case 'movie': // 是产品的 电影 case 'movie': // 是产品的 电影
url = httpUrl + 'MovieDetail?id=' + item.third_id || item.id url = httpUrl + 'MovieDetailChangShu?id=' + item.third_id || item.id
break; break;
case 'scenic': // 是场景的 景点 case 'scenic': // 是场景的 景点
url = httpUrl + 'ScenicDetail?id=' + item.id url = httpUrl + 'ScenicDetail?id=' + item.id
@ -357,7 +373,7 @@ Vue.prototype.gotoDetailByTypeToJdsz = item => {
url = httpUrl + 'PavilionDetail?id=' + item.scene_id || item.id url = httpUrl + 'PavilionDetail?id=' + item.scene_id || item.id
break; break;
case 'cinema': // 是场景的 影院 case 'cinema': // 是场景的 影院
url = httpUrl + 'CinemaDetail?id=' + item.third_id || item.id url = httpUrl + 'CinemaDetailChangShu?id=' + item.third_id || item.id
break; break;
case 'relic': // 文物 case 'relic': // 文物
url = httpUrl + 'ProtectionUnitsInfo?id=' + item.id url = httpUrl + 'ProtectionUnitsInfo?id=' + item.id

1
static/js/amap-wx.js

File diff suppressed because one or more lines are too long

315
static/js/request.js

@ -3,33 +3,34 @@ import store from '@/store';
// 定义 API URL // 定义 API URL
const CS_API_URL = 'https://changshu.js-dyyj.com'; const CS_API_URL = 'https://changshu.js-dyyj.com';
const OLD_API_URL = 'https://qyly1.csly-travel.com';
const JDSZ_API_URL = 'https://api.cloud.sz-trip.com'; const JDSZ_API_URL = 'https://api.cloud.sz-trip.com';
const NEWAPIURL = process.env.NODE_ENV === 'development' ? CS_API_URL : CS_API_URL; const NEWAPIURL = process.env.NODE_ENV === 'development' ? CS_API_URL : CS_API_URL;
// 获取token // 获取token
const getToken = () => { const getToken = () => {
const userInfoFromStorage = uni.getStorageSync('userInfo'); const userInfoFromStorage = uni.getStorageSync('userInfo');
if (userInfoFromStorage) { if (userInfoFromStorage) {
const userInfo = JSON.parse(userInfoFromStorage); const userInfo = JSON.parse(userInfoFromStorage);
if (userInfo.token) { if (userInfo.token) {
return userInfo.token; return userInfo.token;
} }
} }
return store.state.user.userInfo.token; return store.state.user.userInfo.token;
}; };
// 定义错误处理函数 // 定义错误处理函数
const handleError = (res, reject) => { const handleError = (res, reject) => {
setTimeout(() => { setTimeout(() => {
uni.showToast({ uni.showToast({
title: res.data?.msg || res.msg, title: res.data?.msg || res.msg,
icon: 'none' icon: 'none'
}); });
reject(res); reject(res);
}, 0); }, 0);
if (res.data?.code === 401) { if (res.data?.code === 401) {
store.commit('changeLoginPath'); store.commit('changeLoginPath');
} }
}; };
// 挂载到 Vue 原型上 // 挂载到 Vue 原型上
@ -39,39 +40,255 @@ Vue.prototype.NEWAPIURL = '/api';
// #endif // #endif
Vue.prototype.Post = (params = {}, apiurl) => { Vue.prototype.Post = (params = {}, apiurl) => {
const token = getToken(); const token = getToken();
if (token) { if (token) {
params.token = token; params.token = token;
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
uni.showLoading({ uni.showLoading({
title: '加载中' title: '加载中'
}); });
uni.request({ let apiHttp = ''
method: params.method || 'GET', switch (params.apiType) {
url: params && params.apiType === 'jdsz' ? JDSZ_API_URL + apiurl : CS_API_URL + apiurl, case 'jdsz':
data: params, apiHttp = JDSZ_API_URL
header: { // #ifdef H5
'content-type': 'application/json', apiHttp = Vue.prototype.NEWAPIURL;
'token': token || '' // #endif
}, break;
success: (res) => { case 'old':
console.log('success', res.data); apiHttp = OLD_API_URL
break;
default:
apiHttp = CS_API_URL
break;
}
uni.request({
method: params.method || 'GET',
url: apiHttp + apiurl,
data: params,
header: {
'content-type': 'application/json',
'token': token || ''
},
success: (res) => {
uni.hideLoading() uni.hideLoading()
if (res.data.code === 200 || res.data.code === 1) { if (res.data.code === 200 || res.data.code === 1 || res.statusCode == 200) {
resolve(res.data); resolve(res.data);
} else { } else {
handleError(res, reject); handleError(res, reject);
} }
}, },
fail: (err) => { fail: (err) => {
uni.hideLoading() uni.hideLoading()
console.log('err', err); console.log('err', err);
handleError(err, reject); handleError(err, reject);
} }
}); });
}); });
}; };
export default NEWAPIURL; Vue.prototype.httpPost = (that, murl, mpara, callbs, callbf) => {
// var pages = getCurrentPages();
// if(pages.length>0){
// var page = pages[pages.length - 1].route;
// }
// //此时key应该有值,无值说明用户未给权限
var key = '';
try {
key = uni.getStorageSync('session');
} catch (e) {
}
// console.log('获取key'+key)
mpara.wx = 'wx';
uni.request({
url: OLD_API_URL + murl, //用户信息交换接口
method: 'POST',
data: JSON.stringify(mpara),
header: {
"Content-Type": "text/html;charset=UTF-8",
'Cookie': 'WXSESSIONID=' + 'key'
},
success: function(res) {
if (res.data.status == 200) {
typeof callbs == "function" && callbs(res);
} else if (res.data.status == 2001) {
//未登录状态
// uni.removeStorageSync('session')
// try {
// if (page == 'pages/my/my') {
// typeof callbs == "function" && callbs(res);
// return
// }
// uni.showModal({
// title: '',
// content: '未登录,是否登录',
// showCancel: true,
// cancelText: '否',
// confirmText: '是',
// success: res => {
// if (res.confirm) {
// uni.navigateTo({
// url: '/pages/login/index'
// });
// } else {
// uni.navigateBack({
// delta: 1
// });
// }
// }
// });
// } catch (e) {
// var error = {
// msg: '删除KEY失败,请稍后重试!wx',
// errormsg: e
// }
// typeof callbf == "function" && callbf(error);
// }
} else if (res.data.status == 2002) {
//无用户状态,跳转绑定页面
//uni.redirectTo({ url: "/pages/user/mobile/mobile" });
} else {
var error = {
msg: 'jy出错:' + res.data.message,
errormsg: res
}
typeof callbs == "function" && callbs(res);
}
},
fail: function(e) {
var error = {
msg: '获取数据失败,请稍后重试!jy',
errormsg: e
}
typeof callbf == "function" && callbf(error);
}
});
}
Vue.prototype.httpGetxin = (that, murl, mpara, callbs, callbf) => {
console.log(123)
var key = '';
try {
key = uni.getStorageSync('session');
} catch (e) {
console.log(e);
}
// #ifndef APP-PLUS
mpara.wx = 'wx';
// #endif
uni.request({
url: murl, //用户信息交换接口
method: mpara.method || 'GET',
data: JSON.stringify(mpara),
header: {
"Content-Type": "text/html;charset=UTF-8",
'Cookie': 'WXSESSIONID=' + key
},
success: function(res) {
console.log('res', res)
if (res.data.status == 200) {
typeof callbs == "function" && callbs(res);
} else {
var error = {
msg: 'jy出错:' + res.data.message,
errormsg: res
}
typeof callbs == "function" && callbs(res);
}
},
fail: function(e) {
console.log('err', e)
var error = {
msg: '获取数据失败,请稍后重试!jy',
errormsg: e
}
typeof callbf == "function" && callbf(error);
}
});
}
Vue.prototype.httpPostxin = (that, murl, mpara, callbs, callbf) => {
var pages = getCurrentPages();
if (pages.length > 0) {
var page = pages[pages.length - 1].route;
}
//此时key应该有值,无值说明用户未给权限
var key = '';
try {
key = uni.getStorageSync('session');
} catch (e) {
}
console.log('获取key' + key)
// mpara.wx = 'wx';
// mpara.lng=that.$store.getters.lon==''?0:that.$store.getters.lon;
// mpara.lat=that.$store.getters.lat==''?0:that.$store.getters.lat;
uni.request({
url: murl, //用户信息交换接口
method: 'POST',
data: JSON.stringify(mpara),
header: {
"Content-Type": "application/json;charset=UTF-8"
// 'Cookie': 'WXSESSIONID=' + key
},
success: function(res) {
if (res.data.status == 200) {
typeof callbs == "function" && callbs(res);
} else if (res.data.status == 2001) {
//未登录状态
// uni.removeStorageSync('session')
// try {
// if (page == 'pages/my/my') {
// typeof callbs == "function" && callbs(res);
// return
// }
// uni.showModal({
// title: '',
// content: '未登录,是否登录',
// showCancel: true,
// cancelText: '否',
// confirmText: '是',
// success: res => {
// if (res.confirm) {
// uni.navigateTo({
// url: '/pages/login/index'
// });
// } else {
// uni.navigateBack({
// delta: 1
// });
// }
// }
// });
// } catch (e) {
// var error = {
// msg: '删除KEY失败,请稍后重试!wx',
// errormsg: e
// }
// typeof callbf == "function" && callbf(error);
// }
} else if (res.data.status == 2002) {
//无用户状态,跳转绑定页面
//uni.redirectTo({ url: "/pages/user/mobile/mobile" });
} else {
var error = {
msg: 'jy出错:' + res.data.message,
errormsg: res
}
typeof callbs == "function" && callbs(res);
}
},
fail: function(e) {
var error = {
msg: '获取数据失败,请稍后重试!jy',
errormsg: e
}
typeof callbf == "function" && callbf(error);
}
});
}
export default NEWAPIURL;

36
subPackages/order/orderPay.vue

@ -1,5 +1,10 @@
<template> <template>
<view class="bg"> <view class="bg">
<view class="title-box flex-between">
<span class="iconfont" @click="gotoPath('/subPackages/order/trades')">&#xe660;</span>
<view>支付</view>
<view style="width: 32rpx;"></view>
</view>
<view class="title">支付剩余时间</view> <view class="title">支付剩余时间</view>
<view class="time-box"> <view class="time-box">
<uni-countdown :font-size="40" :show-day="false" :hour="times.hours" :minute="times.minutes" <uni-countdown :font-size="40" :show-day="false" :hour="times.hours" :minute="times.minutes"
@ -119,6 +124,9 @@
}, },
onReady() { onReady() {
},
onBackPress() {
return true; // true
}, },
onLoad(option) { onLoad(option) {
this.id = option.orderId this.id = option.orderId
@ -229,11 +237,11 @@
signType: data.signType, signType: data.signType,
timeStamp: "" + (data.timeStamp || data.timestamp), timeStamp: "" + (data.timeStamp || data.timestamp),
complete: function(res) { complete: function(res) {
setTimeout(() => { // setTimeout(() => {
uni.redirectTo({ // uni.redirectTo({
url: '/subPackages/order/trades' // url: '/subPackages/order/trades'
}) // })
}, 1000) // }, 1000)
} }
}); });
} else { } else {
@ -328,10 +336,28 @@
box-sizing: border-box; box-sizing: border-box;
} }
.title-box {
position: absolute;
top: 101rpx;
font-size: 40rpx;
padding: 0 26.67rpx;
z-index: 2;
display: flex;
align-items: center;
width: 100%;
view {
font-weight: 400;
font-size: 36rpx;
color: #000000;
}
}
.title { .title {
text-align: center; text-align: center;
font-size: 35rpx; font-size: 35rpx;
line-height: 60rpx; line-height: 60rpx;
margin-top: 200rpx;
} }
.time-box { .time-box {

33
subPackages/order/trades.vue

@ -1,5 +1,10 @@
<template> <template>
<view class="bg"> <view class="bg">
<view class="title-box flex-between">
<span class="iconfont" @click="goBack">&#xe660;</span>
<view>全部订单</view>
<view style="width: 32rpx;"></view>
</view>
<view class="top-bg"> <view class="top-bg">
<view class="search-box"> <view class="search-box">
<view class="left"> <view class="left">
@ -120,6 +125,11 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
goBack() {
uni.switchTab({
url: '/pages/user/user'
})
},
getDataByConnect(data) { getDataByConnect(data) {
if (data.msgType == "updateOrderTrades") { if (data.msgType == "updateOrderTrades") {
this.list = []; this.list = [];
@ -346,7 +356,7 @@ export default {
}, },
success: resTwo => { success: resTwo => {
let data = resTwo.data.data let data = resTwo.data.data
let httpUrl = 'https://test.m.cloud.sz-trip.com/' let httpUrl = 'https://m.cloud.sz-trip.com/'
let url = '' let url = ''
// //
switch (data.order_product_list[0].product_model){ switch (data.order_product_list[0].product_model){
@ -362,6 +372,9 @@ export default {
case 'line': // 线 case 'line': // 线
url = httpUrl + 'LineOrderDetail?order_id=' + data.order_id + '&token=' + res url = httpUrl + 'LineOrderDetail?order_id=' + data.order_id + '&token=' + res
break; break;
case 'movie': //
url = httpUrl + 'MovieOrderDetail?order_id=' + data.order_id + '&token=' + res
break;
default: default:
break; break;
} }
@ -387,6 +400,23 @@ view {
box-sizing: border-box; box-sizing: border-box;
} }
.title-box {
position: absolute;
top: 101rpx;
font-size: 40rpx;
padding: 0 26.67rpx;
z-index: 2;
display: flex;
align-items: center;
width: 100%;
view {
font-weight: 400;
font-size: 36rpx;
color: #000000;
}
}
.common-box { .common-box {
height: 90rpx; height: 90rpx;
} }
@ -698,5 +728,6 @@ view {
.top-bg { .top-bg {
background: #fff; background: #fff;
padding-top: 20rpx; padding-top: 20rpx;
margin-top: 200rpx;
} }
</style> </style>

334
subPackages/other/consulting.vue

@ -0,0 +1,334 @@
<template>
<view class="centent">
<back :info="info"></back>
<view :style="{top:statusBarHeight+'px'}" class="cityicon" ></view>
<view class="topbg">
<view class="bgjb">
<image :src="$getimg('lx-jq.png')"></image>
</view>
<view class="bgjb-jb">
<image :src="$getimg('djcp-bg-jb.png')"></image>
</view>
</view>
<view class="tbb">
<view class="tbboxs" v-for="(el,ind) in allData" :key="el.id" @click="go(el.tel)">
<view class="tboxbot">
<view class="tbtitle">
<view class="tbtitle-il">
<image :src="$getimg('img-iphone.png')" mode="" class="il-img"></image>
</view>
<view class="tbname">
<view class="tbname-l">{{el.name}}</view>
<view class="tbname-k">{{el.tel}}</view>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="szra1">
<view class="list" v-for="(el,ind) in alldata[xwwfind].list" :style="{'margin-right':ind%2==0?'0':'20rpx'}"
v-if="ind>0" @click="$getpage('/pagesys/index/foodCard?uid='+el.uid)">
<view class="liimg">
<image class="szra_img" :src="$geturl(el.logo)" lazy-load="true" mode="aspectFill"></image>
</view>
<view class="sztitle text_overflow">{{el.name}}</view>
<view class="sztitle text_overflow dsadk">{{el.address}}</view>
</view>
</view> -->
</view>
</template>
<script>
import back from '@/components/back.vue';
export default {
components: {
back
},
data() {
return {
// city:'720',
statusBarHeight: 0,
info: {
color: true,
num: false
},
id: 97,
first: 0,
count: 50,
lmdata: [],
xwwfind: 0,
allData:[]
}
},
onLoad(options) {
this.getTitles();
},
onReady() {
//
this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
},
onPageScroll(e) {
if (e.scrollTop > 50 && !this.info.num) {
this.info.num = true;
}
if (e.scrollTop < 50 && this.info.num) {
this.info.num = false;
}
},
// onShow(object) { //
// this.getdata2();
// },
methods: {
geturl(url) {
return 'http://cscmp.tour-ma.com' + url;
},
ckxwwfind(ind, id) {
this.xwwfind = ind;
},
getTitles() {
var url = 'https://qyly1.csly-travel.com/addressBook.jspx';
var para = {
unityTypeId: 5,
method: 'POST'
};
var that = this;
that.httpGetxin(that, url, para, function(res) {
let json = res.data.data[0].link;
that.allData = json;
console.log(that.allData)
});
},
go(phone) {
uni.makePhoneCall({
//
phoneNumber: phone,
//
success: (res) => {
console.log('调用成功!')
},
//
fail: (res) => {
console.log('调用失败!')
}
});
}
}
}
</script>
<style lang="scss">
$url:'https://qyly1.csly-travel.com/r/cms/www/m/changshu/';
view {
box-sizing: content-box;
}
.cityicon{
width: calc(100% - 167rpx);
font-size: 48upx;
color: #FFFFFF;
left: 80upx;
display: flex;
align-items: center;
position: absolute;
z-index: 9999;
height: 80rpx;
justify-content: center;
}
.centent {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 750upx;
height: 100vh;
background-color: #fff;
overflow-y: scroll;
.topbg {
width: 100%;
position: relative;
.bgjb {
width: 100%;
height: 500rpx;
position: absolute;
image {
width: 100%;
height: 500rpx;
}
}
.bgjb-jb {
position: absolute;
top: 300rpx;
width: 100%;
image {
width: 100%;
height: 400rpx;
}
}
}
.tbb{
width: 100%;
height: 100%;
.tbboxs:nth-child(1) {
margin-top: 400rpx;
}
}
.tbboxs {
max-width: 690upx;
height: 160upx;
margin: auto;
margin: 20upx auto 5%;
width: 90%;
position: relative;
background-color: #fff;
border-radius: 14rpx;
.tboxbot {
width: 100%;
height: 100%;
position: relative;
background-size: 100% 100% !important;
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(121, 104, 77, 0.2);
/* position: absolute; */
/* top: 72rpx; */
/* left: 50%; */
/* margin-left: -47%; */
border-radius: 20rpx;
overflow: hidden;
.bot-img{
width: 60rpx;
height: 60rpx;
position: absolute;
top: 20rpx;
right: 20rpx;
}
.tbtitle {
width: 100%;
height: 100%;
position: absolute;
left: 0upx;
bottom: 0upx;
display: flex;
align-items: center;
.tbtitle-il{
background: rgba(98, 212, 166, 1);
border-radius: 50%;
width: 50rpx;
height: 50rpx;
padding: 30rpx;
margin: 0 30rpx 0 50rpx;
.il-img{
width: 100%;
height: 100%;
}
}
.tbname {
// font-size: 36upx;
// font-weight: bold;
.tbname-l{
font-size: 36upx;
font-weight: 400;
color: #444;
margin-bottom: 10rpx;
}
.tbname-k{
font-size: 36upx;
font-weight: bold;
// color: #CCCCCC;
}
}
.tbinfo {
width: 90%;
font-size: 24upx;
font-weight: 500;
line-height: 1.4;
position: absolute;
top: 120rpx;
left: 30rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: flex;
// align-items: center;
&::before {
content: '';
display: inline-block;
width: 24rpx;
height: 28rpx;
margin-right: 10rpx;
background: url($url+'icon-add-da.png') no-repeat;
background-size: 100% 100% !important;
}
}
}
}
}
// .szra1 {
// width: 90%;
// margin: 40upx auto;
// display: flex;
// flex-direction: row;
// flex-wrap: wrap;
// .list {
// width: 48%;
// margin-bottom: 40upx;
// margin-right: 15rpx;
// .liimg {
// margin-bottom: 20upx;
// .szra_img {
// max-width: 360upx;
// width: 100%;
// height: 210upx;
// border-radius: 8upx;
// }
// }
// .sztitle {
// font-size: 32upx;
// font-weight: 600;
// color: #333333;
// margin-bottom: 20upx;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
// }
// .dsadk {
// font-size: 24rpx;
// font-weight: 500 !important;
// line-height: 1.6;
// &::before {
// content: '';
// display: inline-block;
// width: 24rpx;
// height: 26rpx;
// margin-right: 10rpx;
// background: url($url+'icon-add-xiao.png') no-repeat;
// background-size: 100% 100% !important;
// }
// }
// }
// }
}
</style>

492
subPackages/other/feiyi.vue

@ -0,0 +1,492 @@
<template>
<view class="centent">
<view class="centent-name">
<view :class="['name-name1',titleInd == 1?'active':'']" @click="TitleClick(1)">
<image :src="'https://static.ticket.sz-trip.com/changshu/images/feiyi/' + (titleInd == 1 ? 'icon1' : 'icon1s') + '.png'" mode=""></image>
非遗推荐
</view>
<view :class="['name-name2',titleInd == 2?'active':'']" @click="TitleClick(2)">
<image :src="'https://static.ticket.sz-trip.com/changshu/images/feiyi/' + (titleInd == 1 ? 'icon2s' : 'icon2') + '.png'" mode=""></image>
传承有人
</view>
<!-- <view class="name-title">非遗精选</view> -->
</view>
<view class="fkiml">
<view :class="['xwwfbox',istop?'toplm':'follm']" id="lmid">
<view :class="['xwwfinds',xwwfind==index?'act':'']" v-for="(item,index) in djlist" @click="ckxwwfind(index,item)" :key="index">
{{item.name}}
</view>
</view>
</view>
<view class="main">
<view class="mainlist">
<view class="libox" v-for="(el, ind) in djlist[xwwfind].list" @click="gotoPath('/subPackages/other/foodDetail?id='+el.id)" v-if="titleInd == 1" :key="ind">
<image class="liboxtop" :src="el.typeImg == '' || el.typeImg == null? 'https://qyly1.csly-travel.com/r/cms/www/m/changshu/noimg.png':$geturl480(el.typeImg)" mode=""></image>
<view class="name">{{ el.title}}</view>
<view class="liboxbot">
<view class="lbrli">
<view class="lbrliind">{{el.cateType}}</view>
</view>
<view class="title1 text-overflowRows" v-html="el.txt"></view>
</view>
</view>
<view class="libox" v-for="(el, ind) in tjyrDatas" @click="gotoPath('/subPackages/other/foodCardtjyr?id='+el._id)" v-if="titleInd == 2" :key="ind">
<image class="liboxtop" :src="el.photo.length == 0? 'https://qyly1.csly-travel.com/r/cms/www/m/changshu/noimg.png':'https://qyly1.csly-travel.com/api/mc-config/model/device/file/t_1684805150186614785?deviceId='+ el._id +'&fileId='+ el.photo[0].fileId +'&useCode=false'" mode=""></image>
<view class="liboxbot">
<view class="name">{{ el.name}}</view>
<view class="lbrli">
<view class="lbrliind">{{el.level}}</view>
</view>
<view class="title1 text-overflowRows" v-html="el.introduce"></view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import back from '@/components/back.vue';
export default {
components: {
back
},
data() {
return {
id: 76, //
token: '',
titleInd: 1,
info: {
color: true
},
istop: false,
zslist: [{
list: []
}],
first: 0,
count: 10,
xwwfind: 0,
djlist: [{
name: '全部',
ind: 0,
list: []
},
{
name: '国家级',
ind: 1,
list: []
},
{
name: '江苏省级',
ind: 2,
list: []
},
{
name: '苏州市级',
ind: 3,
list: []
},
{
name: '常熟市级',
ind: 4,
list: []
}
],
djName: '',
tjyrDatas: []
}
},
onReachBottom() {
this.first += 10;
this.getDatalist();
},
onPageScroll(e) {
if (e.scrollTop > this.lmtop) {
this.istop = true;
}
if (e.scrollTop < this.lmtop) {
this.istop = false;
}
},
onReady() {
var that = this;
const query = uni.createSelectorQuery().in(this);
query.select('#lmid').boundingClientRect(data => {
that.lmtop = data.top;
}).exec();
},
mounted() {
this.TitleClick(1);
},
methods: {
ckxwwfind(ind,el) {
this.xwwfind = ind;
if(this.titleInd == 1) {
this.getDatalist();
}else if(this.titleInd == 2) {
this.djName = el.name;
this.getfyyrDaya();
}
},
navto(id) {
uni.navigateTo({url: url})
},
TitleClick(type) {
this.titleInd = type;
if(this.titleInd == 1) {
this.getDatalist();//
}else{
this.getToken();
}
},
getDatalist() {
uni.showLoading({title: '加载中...'});
var url = '/json/content_list.jspx';
var para = {};
var that = this;
that.Post({
apiType: 'old',
channelIds: that.id,
first: that.first,
count: that.count
}, url).then(res => {
if(res) {
var json = [];
json = res;
var tmp = that.djlist;
if (that.xwwfind == 0) {
for (var i = 0; i < json.length; i++) {
tmp[0].list.push(json[i]);
}
that.djlist = tmp;
}
if (that.xwwfind != 0) {
for (var i = 0; i < json.length; i++) {
for(var j=0;j<tmp.length;j++){
if(json[i].cateLevel == tmp[j].name){
tmp[j].list.push(json[i]);
}
}
}
that.djlist = tmp;
}
}
})
},
toOther() {
uni.navigateToMiniProgram({
appId: 'wx8ece732cc3a87e0f',
path: 'pages/index/index',
envVersion: 'release',
extraData: {},
success(res) {
console.log("chenggong");
},
fail(e) {
console.log(e);
}
})
},
getToken() {
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx'
var para = {
type:1,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/getToken',param:'username=user_xcx&password=Supcon'
};
var that = this;
that.httpPostxin(that, url, para, function(res) {
that.token = res.data.obj;
if(res.data.success==false){
that.sxToken();
}else{
that.getfyyrDaya();
}
});
},
sxToken(){
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx'
var para = {type:1,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/refreshToken',param:'accessToken='+this.token};
var that = this;
that.httpPostxin(that, url, para, function(res) {
that.token=res.data.obj;
that.getfyyrDaya();
});
},
getfyyrDaya() {
uni.showLoading({title: '加载中...'});
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx';
var para = {type:2,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/aggregation?accessToken='+this.token,param:{
"code": "0001_fy",
"params": {},
"page": 0,
"size": 0,
"result": {},
"orders": []
}};
var that = this;
that.httpPostxin(that, url, para, function(res) {
if (res.data.success) {
let json = res.data.obj.data;
that.tjyrDatas = [];
if(that.djName == '') {
that.tjyrDatas = json;
}else{
for (let i = 0; i < json.length; i++) {
if(json[i].level == that.djName) {
that.tjyrDatas.push(json[i])
}
}
}
uni.hideLoading();
}else {
uni.hideLoading();
}
});
}
}
}
</script>
<style lang="scss">
view {
box-sizing: content-box;
}
.centent {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 750upx;
overflow-y: scroll;
position: relative;
background: #A2E0DB;
.centent-name {
width: 100%;
// margin: 0 auto 30rpx auto;
// display: flex;
// align-items: center;
position: relative;
height: 93rpx;
background: #fff;
font-weight: 500;
font-size: 31rpx;
color: #0BB0A3;
image {
width: 33.33rpx;
height: 33.33rpx;
margin-right: 3rpx;
}
&>view {
display: flex;
align-items: center;
justify-content: center;
}
.name-name {
font-size: 30rpx;
font-family: Source Han Sans CN;
font-weight: 500;
color: #5a5a5a;
padding: 30rpx 0rpx;
width: 50%;text-align: center;cursor: pointer;
border-bottom: 1rpx solid #4A9AF9;
}
.name-name.active {
// background: linear-gradient(0deg, #3269F7 0%, #4A9AF9 100%);
// color: #FFFFFF;
}
.name-name1 {
width: 375rpx;
height: 93rpx;
background: #E6F8F7;
border-radius: 33rpx 33rpx 0rpx 0rpx;
}
.name-name1.active {
width: 410rpx;
background: url("https://static.ticket.sz-trip.com/changshu/images/feiyi/leftBg.png") no-repeat;
background-size: 100% 100%;
position: absolute;
left: 0;
z-index: 2;
}
.name-name2 {
width: 375rpx;
height: 93rpx;
background: #E6F8F7;
border-radius: 33rpx 33rpx 0rpx 0rpx;
position: absolute;
right: 0;
}
.name-name2.active {
width: 410rpx;
background: url("https://static.ticket.sz-trip.com/changshu/images/feiyi/rightBg.png") no-repeat;
background-size: 100% 100%;
position: absolute;
right: 0;
top: 0;
z-index: 2;
}
.active {
font-weight: bold;
font-size: 31rpx;
color: #111111;
}
.name-title {
font-size: 32rpx;
font-family: Source Han Sans CN;
font-weight: 500;
color: #8b8b8b;
line-height: 28rpx;
margin-left: 20rpx;
}
}
.follm {
position: absolute;
left: 0rpx;
top: 14rpx;
}
.toplm {
position: fixed;
top: 0;
left: 0;
background: #F2F2F2;
height: 80rpx;
z-index: 9;
}
.fkiml {
width: 93%;
position: relative;
height: 80rpx;
margin: 20rpx auto 0rpx auto;
}
.xwwfbox {
width: 100%;
display: flex;
flex-direction: row;
white-space: nowrap;
align-items: center;
overflow-x: scroll;
overflow-y: hidden;
justify-content: center;
// margin-bottom: 16upx;
// padding-bottom: 20upx;
.xwwfinds {
background: linear-gradient(0deg, #E6F8F7, #FFFFFF);
border-radius: 30upx;
font-weight: 500;
font-size: 29rpx;
color: #00AEA0;
padding: 0 15upx;
height: 60rpx;
line-height: 60rpx;
margin-right: 20upx;
&:first-child {
margin-left: 20rpx;
}
}
.act {
background: linear-gradient(0deg, #009E91, #5FF4E8);
border: 2rpx solid rgba(255,255,255,0.8);
color: #FFFFFF;
}
}
.xwwfbox::-webkit-scrollbar {
display: none;
}
.main {
padding: 20rpx 4%;
}
.mainlist .libox {
width: 697rpx;
height: 620rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(89,166,160,0.32);
border-radius: 20rpx;
margin-bottom: 27rpx;
padding: 13.3rpx;
box-sizing: border-box;
}
.libox .name {
font-weight: 500;
font-size: 35rpx;
color: #000000;
display: flex;
align-items: center;
padding: 15rpx 10rpx;
&::after {
content: '';
display: inline-block;
width: 33.33rpx;
height: 33.33rpx;
background: url(https://static.ticket.sz-trip.com/changshu/images/feiyi/rightIcon.png) no-repeat;
background-size: 100% 100%;
position: absolute;
right: 55rpx;
}
}
.libox .liboxtop {
width: 670rpx;
height: 367rpx;
border-radius: 13rpx;
position: relative;
object-fit: cover;
margin: 0 auto;
display: block;
}
.liboxtop .xing {
position: absolute;
top: 15upx;
left: 35upx;
overflow: hidden;
}
.liboxtop .xing .img {
width: 148upx;
height: 26upx;
}
.liboxbot .title1 {
font-weight: 500;
font-size: 25rpx;
color: #000000;
margin-top: 20rpx;
padding: 0 10rpx;
}
.lbrli {
display: flex;
white-space: nowrap;
overflow-x: scroll;
overflow-y: hidden;
padding: 0 10rpx;
.lbrliind {
font-size: 24rpx;
font-weight: 500;
color: #00AEA0;
border: 1rpx solid #82DFD8;
padding: 5upx 10upx;
}
}
}
</style>

241
subPackages/other/fjtcc.vue

@ -0,0 +1,241 @@
<template>
<view class="content">
<cover-view class="fjdd" v-if="ismap">
<cover-view :class="['fjdd-lm',isyy==1?'fjdd-active':'']" @click="setLm(1)">停车场</cover-view>
<cover-view :class="['fjdd-lm',isyy==1?'':'fjdd-active']" @click="setLm(2)">厕所</cover-view>
</cover-view>
<view class="mparq">
<map v-if="ismap" @markertap="getMarker" :latitude="lat" :longitude="lon" :markers="covers" show-location></map>
</view>
<view class="des">
<view class="des-left">
<view class="name">{{nowData.name}}</view>
<view class="address">{{nowData.address}}</view>
</view>
<view class="des-right" @click="daohan">导航</view>
</view>
</view>
</template>
<script>
var amapFile = require('@/static/js/amap-wx.js'); //..­/..­/libs/amap-wx.js
var myAmapFun;
export default{
data(){
return{
lon:'',
lat:'',
covers:[],
nowData:{},
isyy:2,
ismap:true
}
},
onLoad(option) {
this.isyy=option.isyy;
var pages = getCurrentPages();
var page = pages[pages.length - 1].route;
// this.share.path='/'+page+'?isyy='+this.isyy;
// console.log(this.share.path);
// this.shareline.query={isyy:this.isyy}
myAmapFun = new amapFile.AMapWX({
key: 'e40bb317c48b66d558aa77ab126ef8c1'
});
},
onReady() {
let self = this;
uni.getLocation({
type: 'gcj02',
success: function(res) {
self.lon = res.longitude;
self.lat = res.latitude;
self.setLm(self.isyy);
// console.log(res.longitude,5555555)
// console.log(res.latitude,5555555)
}
});
},
methods:{
daohan(){
if(this.nowData.location != ''&&this.nowData.location != null&&this.nowData.location != undefined) {
var datas = this.nowData.location.split(",");
uni.openLocation({
latitude: Number(datas[1]),
longitude:Number(datas[0])
})
}else{
uni.openLocation({
latitude:this.nowData.latitude,
longitude:this.nowData.longitude
})
}
},
getMarker(e){
this.ismap=false;
var id=e.detail.markerId;
for(var i=0;i<this.covers.length;i++){
if(this.covers[i].id==id){
this.nowData=this.covers[i];
this.covers[i].width=38;
this.covers[i].height=38;
}else{
this.covers[i].width=28;
this.covers[i].height=28;
}
}
this.ismap=true;
},
setLm(type){
this.ismap=false;
this.isyy=type;
if(this.isyy==1){
this.getfjyy();
}else{
this.getfjjc();
}
},
getfjyy(){
let self = this;
myAmapFun.getPoiAround({//
querytypes:'停车场',
success: function(data){
console.log(data)
var tmp=[];
for(var i=0;i<data.markers.length;i++){
tmp.push({
id:i,
width:28,
height:28,
latitude: data.markers[i].latitude,
longitude: data.markers[i].longitude,
iconPath: 'https://tumaoss.oss-cn-hangzhou.aliyuncs.com/wencheng_xcx/m-ys-yiyuan.png',
name:data.markers[i].name,
address:data.markers[i].address
})
}
tmp[0].width=38;
tmp[0].height=38;
self.covers= tmp;
self.nowData=data.poisData[0];
self.ismap = true;
},
// fail:function(){
// self.ismap = true;
// uni.showToast({
// title: ''
// });
// }
})
},
getfjjc(){
let self = this;
myAmapFun.getPoiAround({//
querytypes:'厕所',
success: function(data){
var tmp=[];
for(var i=0;i<data.markers.length;i++){
tmp.push({
id:i,
width:28,
height:28,
latitude: data.markers[i].latitude,
longitude: data.markers[i].longitude,
iconPath: 'https://tumaoss.oss-cn-hangzhou.aliyuncs.com/wencheng_xcx/m-ys-gonganju.png',
name:data.markers[i].name,
address:data.markers[i].address
})
}
tmp[0].width=38;
tmp[0].height=38;
self.covers= tmp;
self.nowData=data.poisData[0];
self.ismap = true;
},
fail:function(e){
console.log('e',e)
self.ismap = true;
uni.showToast({
title: '获取失败'
});
}
})
}
}
}
</script>
<style lang="scss">
.fjdd{
position: absolute;
top: 20rpx;
left: 225rpx;
width: 300rpx;
height: 70rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
z-index: 999;
border-radius: 10rpx;
font-size: 26rpx;
border: 1rpx solid #227BFB;
&-lm{
flex: 1;
line-height: 70rpx;
text-align: center;
color: #227BFB;
background: #EEF6FF;
}
&-active{
background: #227BFB;
color: #fff;
}
}
.content{
width: 750rpx;
height: 100vh;
}
.mparq{
width: 750rpx;
height: 85vh;
background: #eaeaea;
map{
width: 750rpx;
height: 85vh;
}
}
.des{
width: 750rpx;
height: 15vh;
background: #fff;
display: flex;
flex-direction: row;
align-items: center;
&-left{
margin-left: 15rpx;
width: 600rpx;
.name{
font-weight: bold;
font-size: 32rpx;
}
.address{
font-size: 24rpx;
color: #ccc;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&-right{
width: 100rpx;
height: 60rpx;
background: #438BF8;
border-radius: 20rpx;
line-height: 60rpx;
text-align: center;
color: #fff;
font-size: 26rpx;
}
}
</style>

231
subPackages/other/foodCardtjyr.vue

@ -0,0 +1,231 @@
<template>
<view class="content">
<view class="bgtop" v-if="xllist.photo.length!=0" :style="{background: 'url(https://qyly1.csly-travel.com/api/mc-config/model/device/file/t_1684805150186614785?deviceId='+ xllist._id +'&fileId='+ xllist.photo[0].fileId +'&useCode=false) no-repeat'}"></view>
<view class="bgboxs">
<view class="xwtitle">
<view class="tit">
<view class="icon">
<image :src="$getimg('icon-yyyc.png')" mode=""></image> <!-- 非遗 -->
</view>
<view class="titwz">{{xllist.name }}</view>
</view>
<view class="xqtimeright">
<text class="sjsj1">{{xllist.level}}</text>
</view>
</view>
<view class="xwnr">
<view class="xwnrdiv" v-html="xllist.introduce"></view>
</view>
</view>
</view>
</template>
<script>
export default {
components:{},
data() {
return {
id: 0,
xllist: {
photo: []
},
};
},
onLoad(option) {
this.id = option.id;
this.getToken();//
},
onReady() {},
onShareAppMessage() {},
methods: {
getToken() {
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx'
var para = {
type:1,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/getToken',param:'username=user_xcx&password=Supcon'
};
var that = this;
that.httpPostxin(that, url, para, function(res) {
that.token = res.data.obj;
if(res.data.success==false){
that.sxToken();
}else{
that.getfyyrDaya();
}
});
},
sxToken(){
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx'
var para = {type:1,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/refreshToken',param:'accessToken='+this.token};
var that = this;
that.httpPostxin(that, url, para, function(res) {
that.token=res.data.obj;
that.getfyyrDaya();
});
},
getfyyrDaya() {
uni.showLoading({title: '加载中...'});
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx';
var para = {type:2,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/aggregation?accessToken='+this.token,param:{
"code": "0001_fy",
"params": {},
"page": 0,
"size": 0,
"result": {},
"orders": []
}};
var that = this;
that.httpPostxin(that, url, para, function(res) {
if (res.data.success) {
let json = res.data.obj.data;
for (let i = 0; i < json.length; i++) {
if(that.id == json[i]._id) {
that.xllist = json[i]
}
}
console.log(that.xllist)
uni.hideLoading();
}else {
uni.hideLoading();
}
});
}
}
};
</script>
<style lang="scss">
$url:'https://qyly1.csly-travel.com/r/cms/www/m/changshu/';
page {
background: #ffffff;
}
.content {
width: 750rpx;
// padding-top: 30upx;
overflow-x: hidden;
.bgtoptxt{
font-size: 26upx;
font-weight: 500;
color: #FFFFFF;
background: linear-gradient(0deg, #3269F7 0%, #4A9AF9 100%);
border-radius: 26upx;
width: 160upx;
height: 56upx;
line-height: 56upx;
text-align: center;
margin: 0upx 0 30upx 30upx;
}
.bgtop{
width: 100%;
height: 460upx;
background-size: 100% 100% !important;
}
.bgboxs{
width: 100%;
margin: -40rpx auto 0;
background: #fff;
border-radius: 30rpx 30rpx 0rpx 0rpx;
.xwtitle {
font-size: 40upx;
font-weight: bold;
color: #333333;
display: flex;
align-items: center;
padding: 50rpx 20rpx 0;
position: relative;
.tit{
display: flex;
align-items: center;
}
.icon{
width: 62upx;
height: 56upx;
margin-right: 10rpx;
image{
display: block;
width: 100%;
height: 100%;
}
}
}
.xqtimeright {
font-size: 24rpx;
position: absolute;
right: 50rpx;
image{
width: 28rpx;
height: 28rpx;
}
}
.xqtimeright .sjsj::before {
content: '';
display: inline-block;
width: 28rpx;
height: 28rpx;
background: url( $url+"icon-dianzhan.png") no-repeat;
background-size: 100% auto;
margin-right: 10rpx;
margin-top: -9rpx;
vertical-align: middle;
}
.xwnr {
font-size: 24upx;
font-weight: 500;
color: #666;
width: 90%;
margin: 30upx auto 0 auto;
line-height: 1.6;
.xwnrdiv {
margin: 0rpx 0rpx 55rpx 0rpx;
line-height: 2;
}
}
.xwdzAllfotter {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin-bottom: 40rpx;
.xwdzAll {
overflow: hidden;
border: 1rpx solid #d6d6d6;
border-radius: 35rpx;
display: flex;
flex-direction: row;
align-items: center;
width: 155rpx;
justify-content: center;
height: 70rpx;
.xwdzimg {
width: 32rpx;
height: 32rpx;
float: left;
margin-right: 10rpx;
}
.xwdzsl {
font-size: 28rpx;
font-family: Microsoft YaHei;
font-weight: bold;
color: #111111;
margin: 0rpx 0rpx 0rpx 18rpx;
float: left;
&.active {
color: #ff3335;
}
}
&.active{
border: 1rpx solid #ff3334;
}
}
}
}
.yudingimg{
width: 110rpx;
height: 110rpx;
position: fixed;
top: 278rpx;
right: 50rpx;
z-index: 999;
}
}
</style>

116
subPackages/other/foodDetail.vue

@ -0,0 +1,116 @@
<template>
<view class="bg">
<view class="bgtop" v-if="xllist.midPic!=''" :style="{background: 'url('+$geturl(xllist.midPic)+') no-repeat'}"></view>
<view class="bgboxs">
<view class="xwtitle">
<view class="tit">
<view class="icon">
<image v-if="xllist.channel_id==92" :src="$getimg('wf-x-ms-icon.png')" mode=""></image> <!-- 美食 -->
<image v-if="xllist.channel_id==121" :src="$getimg('wf-x-tc-icon.png')" mode=""></image> <!-- 特产 -->
<image v-if="xllist.channel_id==76" :src="$getimg('icon-yyyc.png')" mode=""></image> <!-- 非遗 -->
<image v-if="xllist.channel_id==116" :src="$getimg('wf-x-wc-icon.png')" mode=""></image> <!-- 文创 -->
</view>
<view class="titwz">{{xllist.title }}</view>
</view>
</view>
<view class="xwnr">
<view class="xwnrdiv" v-html="xllist.content"></view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
xllist: {}
}
},
onLoad(option) {
this.getDetail(option.id)
},
methods: {
getDetail(id) {
var para = {
id: id
};
var url = '/newsdetail.jspx';
var that = this;
this.httpPost(that, url, para, function(res) {
if (res.data.status == 200) {
var tmp = res.data;
if(tmp.content!=undefined){
tmp.content = tmp.content.replace(/src="/gi, 'src="https://qyly1.csly-travel.com');
tmp.content = tmp.content.replace(/<img[^>]*>/gi, function(match, capture) {
return match.replace(/style\s*?=\s*?([‘"])[\s\S]*?\1/gi, 'style="max-width:100%;height:auto;width:100%;"'); // style
});
tmp.content = tmp.content.replace(/<img[^>]*>/gi, function(match, capture) {
return match.replace(/<img /gi, '<img style="max-width:100%;height:auto;width:100%;"'); // style
});
}
that.xllist = tmp;
}
});
}
}
}
</script>
<style lang="scss" scoped>
.bg {
width: 750rpx;
background: #ffffff;
overflow-x: hidden;
}
.bgtop{
width: 100%;
height: 460upx;
background-size: 100% 100% !important;
}
.bgboxs{
width: 100%;
margin: -40rpx auto 0;
background: #fff;
border-radius: 30rpx 30rpx 0rpx 0rpx;
.xwtitle {
font-size: 40upx;
font-weight: bold;
color: #333333;
display: flex;
align-items: center;
padding: 50rpx 20rpx 0;
position: relative;
.tit{
display: flex;
align-items: center;
}
.icon{
width: 62upx;
height: 56upx;
margin-right: 10rpx;
image{
display: block;
width: 100%;
height: 100%;
}
}
}
.xwnr {
font-size: 24upx;
font-weight: 500;
color: #666;
width: 90%;
margin: 30upx auto 0 auto;
line-height: 1.6;
.xwnrdiv {
margin: 0rpx 0rpx 55rpx 0rpx;
line-height: 2;
}
}
}
</style>

108
subPackages/other/foodList.vue

@ -0,0 +1,108 @@
<template>
<view class="bg">
<view class="box">
<navigator :url="'/subPackages/other/foodDetail?id='+item.id" v-for="(item,index) in list" :key="index" class="item">
<image :src="$geturl4(item.typeImg)" lazy-load="true" mode="aspectFill" class="headimg"></image>
<view class="content">
{{item.title}}
<view class="subtitle" v-html="item.txt"></view>
</view>
<image src="https://static.ticket.sz-trip.com/changshu/images/food/rightIcon.png" class="rightIcon"></image>
</navigator>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list: [],
}
},
onReady() {
this.getList()
},
methods: {
getList() {
this.Post({
apiType: 'old',
channelIds: 92,
orderBy: 2,
first: 0,
count: 50
}, '/json/content_list.jspx?channelIds').then(res => {
if(res) {
this.list = res
}
})
}
}
}
</script>
<style lang="scss" scoped>
.bg {
height: 100vh;
background: #A2E0DB;
}
.box {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
flex-direction: column;
height: 100vh;
overflow-x: auto;
}
.item {
width: 533rpx;
height: 615rpx;
margin: 40rpx;
border-radius: 20rpx;
position: relative;
overflow: hidden;
.headimg {
width: 533rpx;
height: 467rpx;
border-radius: 20rpx;
}
.content {
width: 467rpx;
height: 203rpx;
background: #FFFFFF;
border-radius: 20rpx;
font-weight: bold;
font-size: 32rpx;
color: #000000;
padding: 20rpx;
position: absolute;
bottom: 0;
left: 33rpx;
.subtitle {
width: 359rpx;
font-weight: 500;
font-size: 24rpx;
color: #666666;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
margin-top: 20rpx;
}
}
.rightIcon {
width: 93.33rpx;
height: 93.33rpx;
position: absolute;
bottom: 33rpx;
right: 0;
}
}
</style>

25
subPackages/other/gonggjt.vue

@ -0,0 +1,25 @@
<template>
<view class="content">
<web-view src="https://qyly1.csly-travel.com/csxing-h5/pages/wentilv/index.html"></web-view>
</view>
</template>
<script>
export default{
data(){
return{
}
},
onLoad() {
},
methods: {
}
}
</script>
<style lang="scss">
</style>

372
subPackages/other/gonggtcc.vue

@ -0,0 +1,372 @@
<template>
<view class="content">
<view class="leixing">
<view :class="['ggzxclist',ggzxcind===ind?'active':'']" v-for="(el,ind) in ggzxclist" :key="ind" @click="setLm(el.id)">{{el.name}}</view>
</view>
<view class="zxclist" v-show="ggzxcind==0">
<view class="item" v-for="(el,ind) in datas" :key="ind">
<view class="tit">{{el.name}}</view>
<view class="zxcsl">
<view class="cwzs">
<view class="wz">车位信息</view>
<view class="sz">{{el.capacity}}</view>
</view>
<view class="cwzs">
<view class="wz">余位信息</view>
<view class="sz">{{el.availBike}}</view>
</view>
<!-- <view class="cwzs02">
<view class="wz">更新时间</view>
<view class="sz">{{el.updateTime}}</view>
</view> -->
</view>
<view class="dizhi">
<view class="dz">地址{{el.address}}</view>
<view class="dzimg" @click="daohang(el.jwd)">导航</view>
</view>
</view>
</view>
<view class="zxclistditu" v-show="ggzxcind==1">
<view class="mparq">
<map class="map" v-if="isMap" @markertap="getMarker" :latitude="latitude" :longitude="longitude" :markers="markers" show-location></map>
</view>
<view class="des">
<view class="des-left">
<!-- <view class="des-left-item">
<view class="name">{{nowData.title}}</view>
<view class="address">{{nowData.address}}</view>
</view>
<view class="des-left-item">
<view class="name">车位信息</view>
<view class="address">{{nowData.capacity}}</view>
</view>
<view class="des-left-item">
<view class="name">剩余车位</view>
<view class="address">{{nowData.availBike}}</view>
</view> -->
<view class="name">{{nowData.title}}</view>
<view class="parkNun">
<view class="parkNun-item">
<view class="parkNun-item-name">车位信息:</view>
<view class="parkNun-item-num">{{nowData.capacity}}</view>
</view>
<view class="parkNun-item">
<view class="parkNun-item-name">余位信息:</view>
<view class="parkNun-item-num">{{nowData.availBike}}</view>
</view>
</view>
<view class="address">{{nowData.address}}</view>
</view>
<view class="des-right" @click="daohan()">导航</view>
</view>
</view>
</view>
</template>
<script>
var amapFile = require('@/static/js/amap-wx.js'); //..­/..­/libs/amap-wx.js
var myAmapFun;
var poiDatas = [];
export default{
data(){
return{
ggzxcind:0,
ggzxclist:[
{name:'列表',id:1},
{name:'地图',id:2}
],
isMap: false,
latitude: '',
longitude: '',
markers:[],//
nowData: {}, //
token:'',
datas: [],
}
},
onLoad() {
this.getToken();
myAmapFun = new amapFile.AMapWX({
key: 'e40bb317c48b66d558aa77ab126ef8c1'
});
uni.getLocation({
type: 'gcj02',
isHighAccuracy:true,
complete: (res)=> {
console.log(res)
this.latitude = res.latitude;
this.longitude = res.longitude;
},
});
},
methods: {
getToken(){
// var url = 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/getToken?username=user_xcx&password=Supcon';
var url = 'https://qyly1.csly-travel.com/api/mc-config/model/aggregation-external/getToken?username=user_xcx&password=Supcon';
var para = {};
var that = this;
that.httpGetxin(that, url, para, function(res) {
// console.log(res.data.obj);
that.token=res.data.obj;
if(res.data.success==false){
that.sxToken();
}else{
that.getdata();
}
});
},
sxToken(){
// var url = 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/refreshToken?accessToken='+this.token;
var url = 'https://qyly1.csly-travel.com/api/mc-config/model/aggregation-external/refreshToken?accessToken='+this.token;
var para = {};
var that = this;
that.httpGetxin(that, url, para, function(res) {
that.token=res.data.obj;
that.getdata();
});
},
getdata(){
uni.showToast({
title: '加载中...',
icon:'loading',
});
// var url = 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/aggregation?accessToken='+this.token;
var url = 'https://qyly1.csly-travel.com/api/mc-config/model/aggregation-external/aggregation?accessToken='+this.token;
var para = {
"code": "0001_zxc",
"params": {},
"page": 0,
"size": 0,
"result": {},
"orders": []
};
var that = this;
that.httpPostxin(that, url, para, function(res) {
if (res.data.success) {
uni.hideToast();
that.datas =[];
that.datas = res.data.obj.info;
that.getditu();
}else {
uni.showToast({
title: '加载中...',
icon:'loading',
duration:20000
});
}
});
},
daohang(jwd){
var lnglat =jwd.split(",");
this.lng = lnglat[0];
this.lat = lnglat[1];
var that=this;
uni.openLocation({
latitude:Number(that.lat),
longitude:Number(that.lng),
complete(e) {
console.log(e);
}
})
},
setLm(id){
var that = this;
if(id==1){
that.ggzxcind=0;
}else{
that.ggzxcind=1;
}
},
getditu(){
this.isMap = false;
var that = this;
var pois = [];
for (var i = 0; i < that.datas.length; i++) {
var tmp = that.datas[i];
var lnglat = that.datas[i].jwd.split(",");
var p = {
id: i,
title: tmp.name,
address: tmp.address,
availBike:tmp.availBike,//
capacity:tmp.capacity,//
latitude: Number(lnglat[1]),
longitude: Number(lnglat[0]),
iconPath: "https://qyly1.csly-travel.com/r/cms/www/m/changshu/icon-dituggzxc.png",
width: 38,
height: 38,
label: {
color: '#4A9AF9 ',
fontSize: 12,
content: tmp.name,
anchorX: -35,
anchorY: 0
}
};
pois.push(p);
}
that.markers = pois;
that.nowData=that.markers[0];
that.isMap = true;
uni.hideToast()
},
getMarker(e){
this.ismap=false;
var id=e.detail.markerId;
for(var i=0;i<this.markers.length;i++){
if(this.markers[i].id==id){
this.nowData=this.markers[i];
this.markers[i].width=38;
this.markers[i].height=38;
}else{
this.markers[i].width=28;
this.markers[i].height=28;
}
}
this.ismap=true;
},
daohan(){
uni.openLocation({
latitude:this.nowData.latitude,
longitude:this.nowData.longitude
})
},
}
}
</script>
<style lang="scss">
.leixing{
display: flex;
width: 200px;
margin: 15px auto;
text-align: center;
border-radius: 30px;
.ggzxclist{
width: 100px;
padding: 10px 0;
background-color: #f5f5f5;
font-size: 18px;
}
.active{
color: #ffffff;
background:linear-gradient(0deg, #3269F7 0%, #4A9AF9 70%);
}
}
.zxclistditu{
width: 100%;
height: 100%;
position: relative;
.mparq{
width: 100%;
height: 100%;
.map {
width: 100%;
height: 85vh;
}
}
}
.zxclist{
width: 90%;
margin: 30upx auto;
.item{
margin-bottom: 7%;
border-radius: 20rpx;
overflow: hidden;
box-shadow: 0rpx 0rpx 15rpx 10rpx #eee;
background: #fff;
line-height: 2;
color: #666666;
.tit{
font-size: 36rpx;
background:linear-gradient(0deg, #3269F7 0%, #4A9AF9 70%);
padding: 10upx 30upx;
color: #ffffff;
font-weight: 600;
}
.dizhi{
padding:10rpx 30rpx 30rpx 30rpx;
display: flex;
justify-content: space-between;
.dzimg{
padding: 0 30upx;
background:#2dc15c;
color: #ffffff;
border-radius: 50rpx;
}
}
.zxcsl{
padding:0rpx 30rpx;
display: flex;
justify-content:center;
text-align: center;
margin: 10rpx 0 0rpx 0;
.cwzs{
width: 50%;
}
.sz{
color: #333333;
font-size: 32rpx;
font-weight: 600;
}
}
}
}
.des{
width: 750rpx;
height: 80px;
background: #fff;
display: flex;
flex-direction: row;
align-items: center;
position: absolute;
bottom: 0px;
&-left{
margin-left: 15rpx;
width: 600rpx;
.name{
font-weight: bold;
font-size: 32rpx;
}
.address{
font-size: 24rpx;
color: #000;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&-right{
width: 100rpx;
height: 60rpx;
background: #438BF8;
border-radius: 20rpx;
line-height: 60rpx;
text-align: center;
color: #fff;
font-size: 26rpx;
}
.parkNun{
display: flex;
padding: 10rpx 0;
&-item{
display: flex;
font-size: 24rpx;
font-weight: bold;
color: #000;
margin-right: 30rpx;
&-num{
margin-left: 10rpx;
}
}
}
}
</style>

638
subPackages/other/shusd.vue

@ -0,0 +1,638 @@
<template>
<view class="content">
<view class="title">客流实时数据</view>
<view class="titledate">以下数据以景区现场发布为准</view>
<view class="kllist" v-for="(el,ind) in jqdatas" :key="ind">
<view class="left">
<view class="name">{{el.name}}</view>
<view class="cont">
<view class="conlist">
<view class="conname cleft">实时在园</view>
<view class="connum cleft">{{el.value}}</view>
</view>
<view class="conlist">
<view class="conname cright">瞬时承载量</view>
<view class="connum cright">{{el.max1}}</view>
</view>
</view>
<view class="ktime">
<!-- <view class="kname">AAAAA</view> -->
<!-- <view class="kopen">开放时间8:30-17:00</view> -->
</view>
</view>
<view class="right">
<!-- <view class="bfbstyle">
<span v-if="el.zb<=40" class="lscolor">{{el.zb}}%</span>
<span v-if="el.zb>=80" class="hscolor">{{el.zb}}%</span>
<span v-if="el.zb>40&&el.zb<80" class="yscolor">{{el.zb}}%</span>
</view> -->
<view class="bfbnamestyle">
<span v-if="el.zb1<=20" class="lscolor">{{el.zbName}}</span>
<span v-if="el.zb1<=40&&el.zb1>20" class="lscolor">{{el.zbName}}</span>
<span v-if="el.zb1<=60&&el.zb1>40" class="yscolor">{{el.zbName}}</span>
<span v-if="el.zb1<=80&&el.zb1>60" class="yscolor">{{el.zbName}}</span>
<span v-if="el.zb1>80" class="hscolor">{{el.zbName}}</span>
</view>
<!-- <canvas :canvas-id="'canvasPie'+ind" :id="'canvasPie'+ind" @touchstart="touchPie"></canvas> -->
</view>
</view>
</view>
</template>
<script>
import uCharts from '@/js_sdk/u-charts/u-charts/u-charts.js';
var _self;
var canvaPie = null;
var color = ['#00DB77', '#FF9024', '#FF4824'];
var zcolor = ['#22A86C', '#E68320', '#E64120'];
var canvaLineA = null;
var canvaLineA2 = null;
export default {
data() {
return {
info:{
color: true,
num: false,
},
// infos:{
// ind:0,
// color:false
// },
jqdatas:[],
token: ''
}
},
onLoad() {
var date = new Date();
this.nowDate = date.getFullYear() + "-" + ((date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1)) + "-" + (date.getDate() < 10 ? "0" + date.getDate() : date.getDate());
// this.getData3();
// this.getData4();
_self = this;
// uni.upx2px(750) uni-app750
this.cWidth=uni.upx2px(750);
this.cHeight=uni.upx2px(250);
this.cWidth2=uni.upx2px(750);
this.cHeight2=uni.upx2px(170);
// this.getData1();
// this.getyj();
this.getToken();
},
onPageScroll(e) {
if(e.scrollTop>50&&!this.info.num){
this.info.num=true;
}
if(e.scrollTop<50&&this.info.num){
this.info.num=false;
}
},
methods: {
getToken(){
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx'
var para = {
type:1,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/getToken',param:'username=user_xcx&password=Supcon'
};
// var url = 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/getToken?username=user_xcx&password=Supcon';
// var para = {};
var that = this;
that.httpPostxin(that, url, para, function(res) {
// console.log(res.data.obj);
that.token=res.data.obj;
if(res.data.success==false){
that.sxToken();
}else{
that.getdata();
}
});
},
sxToken(){
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx'
var para = {type:1,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/refreshToken',param:'accessToken='+this.token};
var that = this;
that.httpPostxin(that, url, para, function(res) {
that.token=res.data.obj;
that.getdata();
});
},
removeDuplicateObj(arr) {
let obj = {};
arr = arr.reduce((newArr, next) => {
obj[next.key] ? "" : (obj[next.key] = true && newArr.push(next));
return newArr;
}, []);
return arr;
},
getdata(){
uni.showToast({
title: '加载中...',
icon:'loading',
});
var url = 'https://qyly1.csly-travel.com/tours/commonMethod.jspx';
var para = {type:2,url: 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/aggregation?accessToken='+this.token,param:{
"code": "020201_all",
"params": {},
"page": 0,
"size": 0,
"result": {},
"orders": []
}};
var that = this;
that.httpPostxin(that, url, para, function(res) {
if (res.data.success) {
uni.hideToast();
var datasAll = res.data.obj.jq_list;
var dataspw = res.data.obj.jq_pw_ss;
var datas = [];
let newList = [
{name:'虞山风景区',id:'1651860195535896577',zbName: ''},
{name:'沙家浜风景区',id:'1443165277469569026',zbName: ''},
{name:'尚湖风景区',id:'1443161860089081858',zbName: ''},
{name:'蒋巷生态园',id:'1652546686057652226',zbName: ''},
{name:'方塔古迹名胜区',id:'1443161860097470466',zbName: ''},
{name:'古里红豆山庄',id:'1572847079126556674',zbName: ''},
{name:'梅李聚沙园',id:'1443165794329456641',zbName: ''},
// {name:'',id:'1443161860101664769',zbName: ''},
// {name:'',id:'1443161860093276162',zbName: ''}
]
datasAll.map(item=>{
dataspw.map(item1=>{
if(item.glzd == item1.code) {
newList.map(v=>{
if(item._id===v.id){
that.$set(v,'value', item1.count<0?0:item1.count)
that.$set(v,'max',item.sumNum)
that.$set(v,'zb',((item1.count/item.sumNum)*100).toFixed(0))
if(v.name == '虞山风景区') {
that.$set(v,'max1',21700)
that.$set(v,'zb1',((item1.count/21700)*100).toFixed(0))
}else if(v.name == '沙家浜风景区') {
that.$set(v,'max1',46891)
that.$set(v,'zb1',((item1.count/46891)*100).toFixed(0))
}else if(v.name == '尚湖风景区') {
that.$set(v,'max1',16000)
that.$set(v,'zb1',((item1.count/16000)*100).toFixed(0))
}else if(v.name == '蒋巷生态园') {
that.$set(v,'max1',11357)
that.$set(v,'zb1',((item1.count/11357)*100).toFixed(0))
console.log('蒋巷生态园');
console.log(v);
}else if(v.name == '方塔古迹名胜区') {
that.$set(v,'max1',4000)
that.$set(v,'zb1',((item1.count/4000)*100).toFixed(0))
}else if(v.name == '古里红豆山庄') {
that.$set(v,'max1',16100)
that.$set(v,'zb1',((item1.count/16100)*100).toFixed(0))
}else if(v.name == '梅李聚沙园') {
that.$set(v,'max1',4000)
that.$set(v,'zb1',((item1.count/4000)*100).toFixed(0))
}
}
})
}
})
})
if(newList.length>0){
that.jqdatas = newList ;
for(var i = 0;i<that.jqdatas.length;i++) {
if(that.jqdatas[i].zb1 <= 20){
that.jqdatas[i].zbName = '舒适'
var data = {
series: [{
name: '舒适',
data:that.jqdatas[i].zb1
}]
}
}else if(that.jqdatas[i].zb1 > 20&&that.jqdatas[i].zb1 <= 40) {
that.jqdatas[i].zbName = '较为舒适'
var data = {
series: [{
name: '较为舒适',
data:that.jqdatas[i].zb1
}]
}
}else if(that.jqdatas[i].zb1 > 40&&that.jqdatas[i].zb1 <= 60) {
that.jqdatas[i].zbName = '一般'
var data = {
series: [{
name: '一般',
data:that.jqdatas[i].zb1
}]
}
}else if(that.jqdatas[i].zb1 > 60&&that.jqdatas[i].zb1 <= 80) {
that.jqdatas[i].zbName = '较拥挤'
var data = {
series: [{
name: '较拥挤',
data:that.jqdatas[i].zb1
}]
}
}else if(that.jqdatas[i].zb1 > 80){
that.jqdatas[i].zbName = '拥挤'
var data = {
series: [{
name: '拥挤',
data:that.jqdatas[i].zb1
}]
}
}
// that.showPie('canvasPie'+i, data);
}
} else {
uni.showToast({
title: '查询失败'
});
}
}else {
uni.showToast({
title: '加载中...',
icon:'loading',
duration:20000
});
}
});
},
getyj(){
var data = [
{name:'尚湖风景区',value:'1550',max:10000,zb:1550/10000},
{name:'虞山公园',value:'799',max:10000,zb:799/10000},
{name:'虞山剑门景区',value:'512',max:10000,zb:512/10000},
{name:'蒋巷生态园',value:'512',max:10000,zb:512/10000},
{name:'方塔园',value:'283',max:10000,zb:283/10000},
{name:'兴福寺',value:'57',max:10000,zb:57/10000},
]
var that = this
if(data.length>0){
that.jqdatas = data ;
for(var i = 0;i<that.jqdatas.length;i++) {
var data = {
series: [{
name: '舒适',
data:that.jqdatas[i].zb
}]
}
that.showPie('canvasPie'+i, data);
}
} else {
uni.showToast({
title: '查询失败'
});
}
},
getData1() { //
var url = '/toursData/getToursAnalysis.jspx';
var para = {};
var that = this;
that.httpPost(that, url, para, function(res) {
if (res.data.status == 200) {
var tmp = [];
for (var i = 0; i < res.data.data.scenic.length; i++) {
tmp.push({
name: res.data.data.scenic[i].name,
value: res.data.data.scenic[i].value,
max: 10000,
zb: res.data.data.scenic[i].value/10000
})
}
that.jqdatas = tmp;
for(var i = 0;i<that.jqdatas.length;i++) {
var data = {
series: [{
name: '舒适',
data:that.jqdatas[i].zb
}]
}
that.showPie('canvasPie'+i, data);
}
} else {
uni.showToast({
title: '查询失败'
});
}
});
},
// id,
showLineA(canvasId, chartData) {
canvaLineA = new uCharts({
$this: _self,
canvasId: canvasId,
//
type: 'line',
fontSize: 11,
padding:[20,25,4,5],
legend: { show: false },
dataLabel:true,
dataPointShape: true,
background: '#F6F6F6',
pixelRatio: _self.pixelRatio,
categories: chartData.categories,
series: chartData.series,
animation: true,
enableScroll: true,//
// x
xAxis: {
type: 'grid',
disableGrid:true,
gridColor: '#CCCCCC',
gridType: 'dash',
dashLength: 8,
itemCount:6,//x5
scrollShow:true,//false
scrollAlign:'left',//
scrollBackgroundColor:'#F7F7FF',// #EFEBEF
scrollColor:'#DEE7F7',// #A6A6A6
},
// y
yAxis: {
gridType: 'dash',
disableGrid:true,
gridColor: '#CCCCCC',
dashLength: 8,
splitNumber: 5,
format: val => {
return val.toFixed(0) + '℃';
}
},
width: _self.cWidth * _self.pixelRatio,
height: _self.cHeight * _self.pixelRatio,
extra: {
line: {
type: 'straight'
}
}
});
},
showLineA2(canvasId, chartData) {
canvaLineA2 = new uCharts({
$this: _self,
canvasId: canvasId,
//
type: 'line',
fontSize: 11,
padding:[20,35,0,0],
legend: { show: false },
dataLabel:true,
dataPointShape: true,
background: '#F6F6F6',
pixelRatio: _self.pixelRatio2,
categories: chartData.categories,
series: chartData.series,
animation: true,
// x
xAxis: {
disabled:true,
disableGrid:true,
},
// y
yAxis: {
disableGrid:true,
disabled:true,
},
width: _self.cWidth2 * _self.pixelRatio2,
height: _self.cHeight2 * _self.pixelRatio2,
extra: {
line: {
type: 'straight'
}
}
});
},
//
touchLineA(e) {
canvaLineA.scrollStart(e);
// 使canvaLineA
canvaLineA.showToolTip(e, {
format: function(item, category) {
return category + ' ' + item.name + ':' + item.data;
}
});
},
touchLineA2(e) {
// 使canvaLineA
canvaLineA2.showToolTip(e, {
format: function(item, category) {
return category + ' ' + item.name + ':' + item.data;
}
});
},
moveLineA(e) {
canvaLineA.scroll(e);
},
touchEndLineA(e) {
canvaLineA.scrollEnd(e);
},
showPie(canvasId, chartData) {
new uCharts({
$this: _self,
canvasId: canvasId,
type: 'arcbar',
fontSize: 11,
legend: {
show: false
},
background: '#FFFFFF',
pixelRatio: 1,
series: chartData.series,
colors: chartData.series[0].data < 40 ? [color[0]] : chartData.series[0].data < 70 ? [color[1]] : [color[2]],
animation: true,
width: 120,
height: 120,
dataLabel: true,
title: {
name: Math.round(chartData.series[0].data * 100) + '%', //
color: chartData.series[0].data < 40 ? color[0] : chartData.series[0].data < 70 ? color[1] : color[2],
fontSize: 18,
offsetY: -2
},
subtitle: {
name: chartData.series[0].name, //
color: chartData.series[0].data < 40 ? zcolor[0] : chartData.series[0].data < 70 ? zcolor[1] : zcolor[2],
fontSize: 15,
offsetY: 2
},
extra: {
arcbar: {
type: 'circle', //
width: 10, //
startAngle: 1.5, //
backgroundColor: '#EFF3F7'
}
}
});
},
touchPie(e) {
canvaPie.showToolTip(e, {
format: function(item) {
return item.name + ':' + item.data
}
});
}
}
}
</script>
<style lang="scss">
$twidth:702upx;
$klwidth:622upx;
$klheight:220upx;
$right:200upx;
$rheight:210upx;
view {
box-sizing: content-box;
}
.content{
display: flex;
flex-direction: column;
align-items: center;
background: #F6F6F6;
padding-bottom: 100upx;
overflow-x: hidden;
// margin-bottom: 60rpx;
}
.kllist {
width: $klwidth;
// height: $klheight;
height: 180upx;
background: #FFFFFF;
border-radius: 20upx;
display: flex;
justify-content: space-between;
padding: 40upx;
margin: 0upx 0upx 26upx 0upx;
.left {
width: 400upx;
.name {
font-size: 36upx;
font-family: Microsoft YaHei;
font-weight: 600;
color: #333333;
}
.cont {
width: 350upx;
margin-top: 36upx;
display: flex;
justify-content: space-between;
align-items: center;
height: 80upx;
.conlist:first-child {
border-right: 1upx solid #E3E3E3;
}
.conlist {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
.conname {
width: 100%;
font-size: 24upx;
font-family: Microsoft YaHei;
font-weight: 400;
color: #999999;
}
.cleft {
text-align: left;
}
.cright {
text-align: right;
}
.connum {
width: 100%;
font-size: 46upx;
font-family: DIN;
font-weight: bold;
color: #666666;
}
}
}
.ktime {
margin-top: 34upx;
display: flex;
justify-content: space-between;
width: 100%;
height: 34upx;
align-items: center;
.kname {
width: 106upx;
height: 34upx;
background: #FFFDFA;
border: 1upx solid #F5E6D0;
border-radius: 4upx;
color: #CCA37A;
font-size: 24upx;
display: flex;
justify-content: center;
align-items: center;
}
.kopen {
width: 320upx;
height: 34upx;
background: #FFFDFA;
border: 1upx solid #F5E6D0;
border-radius: 4upx;
color: #CCA37A;
font-size: 24upx;
display: flex;
justify-content: center;
align-items: center;
}
}
}
.right {
width: $right;
height: $rheight;
line-height: $rheight;
}
}
.title {
font-size: 50upx;
font-family: Microsoft YaHei;
font-weight: 600;
color: #230F00;
line-height: 56upx;
width: $twidth;
margin-top: 60upx;
margin-bottom: 50upx;
}
.titledate {
text-align: left;
margin: 0upx 0upx 50upx 0upx;
font-size: 12px;
width: $twidth;
}
.bfbstyle {
text-align: center;
font-size: 18px;
margin: 38px 0px 0px 0px;
}
.bfbnamestyle {
text-align: center;
font-size: 18px;
// margin: 50px 0px 0px 0px;
}
// var zcolor = ['#22A86C', '#E68320', '#E64120'];
.lscolor {
color: #22A86C;
}
.hscolor {
color: #E64120;
}
.yscolor {
color: #E68320;
}
</style>

412
subPackages/other/tingchechang.vue

@ -0,0 +1,412 @@
<template>
<view class="content">
<view class="leixing">
<view :class="['ggzxclist',ggzxcind===ind?'active':'']" v-for="(el,ind) in ggzxclist" :key="ind"
@click="setLm(el.id)">{{el.name}}</view>
</view>
<view class="zxclist" v-show="ggzxcind==0">
<view class="item" v-for="(el,ind) in datas" :key="ind">
<view class="tit">{{el.parkName}}</view>
<view class="zxcsl">
<view class="cwzs">
<view class="wz">车位信息</view>
<view class="sz">{{el.totalPlace}}</view>
</view>
<view class="cwzs">
<view class="wz">余位信息</view>
<view class="sz">{{el.leftPlace}}</view>
</view>
<!-- <view class="cwzs02">
<view class="wz">更新时间</view>
<view class="sz">{{el.updateTime}}</view>
</view> -->
</view>
<view class="dizhi">
<view class="dz">地址{{el.parkName}}</view>
<view class="dzimg" @click="daohang(el.lngLat)">导航</view>
</view>
</view>
</view>
<view class="zxclistditu" v-show="ggzxcind==1">
<view class="mparq">
<map class="map" v-if="isMap" @markertap="getMarker" :latitude="latitude" :longitude="longitude"
:markers="markers" show-location></map>
</view>
<view class="des">
<view class="des-left">
<!-- <view class="des-left-item">
<view class="name">{{nowData.title}}</view>
<view class="address">{{nowData.address}}</view>
</view>
<view class="des-left-item">
<view class="name">车位信息</view>
<view class="address">{{nowData.capacity}}</view>
</view>
<view class="des-left-item">
<view class="name">剩余车位</view>
<view class="address">{{nowData.availBike}}</view>
</view> -->
<view class="name">{{nowData.title}}</view>
<view class="parkNun">
<view class="parkNun-item">
<view class="parkNun-item-name">车位信息:</view>
<view class="parkNun-item-num">{{nowData.totalPlace}}</view>
</view>
<view class="parkNun-item">
<view class="parkNun-item-name">余位信息:</view>
<view class="parkNun-item-num">{{nowData.leftPlace}}</view>
</view>
</view>
<view class="address">{{nowData.address}}</view>
</view>
<view class="des-right" @click="daohan()">导航</view>
</view>
</view>
</view>
</template>
<script>
var amapFile = require('@/static/js/amap-wx.js'); //..­/..­/libs/amap-wx.js
var myAmapFun;
var poiDatas = [];
export default {
data() {
return {
token: '',
datas: [],
lng: '',
lat: '',
ggzxcind: 0,
latitude: '31.266909',
longitude: '120.633401',
markers: [], //
nowData: {}, //
ggzxclist: [{
name: '列表',
id: 1
},
{
name: '地图',
id: 2
}
],
isMap: false,
}
},
onLoad() {
this.getToken();
myAmapFun = new amapFile.AMapWX({
key: 'e40bb317c48b66d558aa77ab126ef8c1'
});
//
wx.getLocation({
type: 'gcj02',
isHighAccuracy:true,
success: (res)=> {
console.log(res)
this.latitude = res.latitude;
this.longitude = res.longitude;
},
});
},
methods: {
setLm(id) {
var that = this;
if (id == 1) {
that.ggzxcind = 0;
} else {
that.ggzxcind = 1;
}
},
getToken() {
// var url = 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/getToken?username=user_xcx&password=Supcon';
var url =
'https://qyly1.csly-travel.com/api/mc-config/model/aggregation-external/getToken?username=user_xcx&password=Supcon';
var para = {};
var that = this;
that.httpGetxin(that, url, para, function(res) {
that.token = res.data.obj;
if (res.data.success == false) {
that.sxToken();
} else {
that.getdata();
}
});
},
sxToken() {
// var url = 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/refreshToken?accessToken='+this.token;
var url = 'https://qyly1.csly-travel.com/api/mc-config/model/aggregation-external/refreshToken?accessToken=' +
this.token;
var para = {};
var that = this;
that.httpGetxin(that, url, para, function(res) {
that.token = res.data.obj;
that.getdata();
});
},
getdata() {
console.log('0000000000');
uni.showToast({
title: '加载中...',
icon: 'loading',
});
// var url = 'http://36.153.213.27:8888/api/mc-config/model/aggregation-external/aggregation?accessToken='+this.token;
var url = 'https://qyly1.csly-travel.com/api/mc-config/model/aggregation-external/aggregation?accessToken=' + this
.token;
var para = {
"code": "0001_parking",
"params": {},
"page": 0,
"size": 0,
"result": {},
"orders": []
};
var that = this;
that.httpPostxin(that, url, para, function(res) {
if (res.data.success) {
uni.hideToast();
that.datas = [];
that.datas = res.data.obj.data;
that.getditu();
} else {
uni.showToast({
title: '加载中...',
icon: 'loading',
duration: 20000
});
}
});
},
daohang(jwd) {
var lnglat = jwd.split(",");
// console.log(lnglat[0]);
// console.log(lnglat[1]);
this.lng = lnglat[0];
this.lat = lnglat[1];
var that = this;
uni.openLocation({
latitude: Number(that.lat),
longitude: Number(that.lng),
complete(e) {
console.log(e);
}
})
},
getMarker(e) {
this.ismap = false;
var id = e.detail.markerId;
for (var i = 0; i < this.markers.length; i++) {
if (this.markers[i].id == id) {
this.nowData = this.markers[i];
this.markers[i].width = 38;
this.markers[i].height = 38;
} else {
this.markers[i].width = 28;
this.markers[i].height = 28;
}
}
this.ismap = true;
},
getditu() {
this.isMap = false;
var that = this;
var pois = [];
// "jwd":"120.744188,31.64254",
for (var i = 0; i < that.datas.length; i++) {
var tmp = that.datas[i];
var lnglat = that.datas[i].lngLat.split(",");
var p = {
id: i,
title: tmp.parkName,
address: tmp.address,
leftPlace: tmp.leftPlace, //
totalPlace: tmp.totalPlace, //
latitude: Number(lnglat[1]),
longitude: Number(lnglat[0]),
iconPath: "http://tumaoss-backups.oss-cn-hangzhou.aliyuncs.com/fusheng-xcx/icon-tingchechang.png",
width: 38,
height: 38,
label: {
color: '#4A9AF9 ',
fontSize: 12,
content: tmp.name,
anchorX: -35,
anchorY: 0
}
};
pois.push(p);
}
that.markers = pois;
that.nowData = that.markers[0];
that.isMap = true;
uni.hideToast()
},
daohan() {
uni.openLocation({
latitude: this.nowData.latitude,
longitude: this.nowData.longitude
})
},
}
}
</script>
<style lang="scss">
view {
box-sizing: content-box;
}
.leixing {
display: flex;
width: 200px;
margin: 15px auto;
text-align: center;
border-radius: 30px;
.ggzxclist {
width: 100px;
padding: 10px 0;
background-color: #f5f5f5;
font-size: 18px;
}
.active {
color: #ffffff;
background: linear-gradient(0deg, #3269F7 0%, #4A9AF9 70%);
}
}
.zxclistditu {
width: 100%;
height: 100%;
position: relative;
.mparq {
width: 100%;
height: 100%;
.map {
width: 100%;
height: 85vh;
}
}
}
.zxclist {
width: 90%;
margin: 30upx auto;
.item {
margin-bottom: 7%;
border-radius: 20rpx;
overflow: hidden;
box-shadow: 0rpx 0rpx 15rpx 10rpx #eee;
background: #fff;
line-height: 2;
color: #666666;
.tit {
font-size: 36rpx;
background: linear-gradient(0deg, #3269F7 0%, #4A9AF9 70%);
padding: 10upx 30upx;
color: #ffffff;
font-weight: 600;
}
.dizhi {
padding: 10rpx 30rpx 30rpx 30rpx;
display: flex;
justify-content: space-between;
.dzimg {
padding: 0 30upx;
background: #2dc15c;
color: #ffffff;
border-radius: 50rpx;
}
}
.zxcsl {
padding: 0rpx 30rpx;
display: flex;
justify-content: center;
text-align: center;
margin: 10rpx 0 0rpx 0;
.cwzs {
width: 50%;
}
.sz {
color: #333333;
font-size: 32rpx;
font-weight: 600;
}
}
}
}
.des {
width: 750rpx;
height: 80px;
background: #fff;
display: flex;
flex-direction: row;
align-items: center;
position: absolute;
bottom: 0px;
&-left {
margin-left: 15rpx;
width: 600rpx;
.name {
font-weight: bold;
font-size: 32rpx;
}
.address {
font-size: 24rpx;
color: #000;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&-right {
width: 100rpx;
height: 60rpx;
background: #438BF8;
border-radius: 20rpx;
line-height: 60rpx;
text-align: center;
color: #fff;
font-size: 26rpx;
}
.parkNun {
display: flex;
padding: 10rpx 0;
&-item {
display: flex;
font-size: 24rpx;
font-weight: bold;
color: #000;
margin-right: 30rpx;
&-num {
margin-left: 10rpx;
}
}
}
}
</style>

308
subPackages/other/virtual.vue

@ -0,0 +1,308 @@
<template>
<view class="centent">
<view class="topbg">
<view class="bgjb">
<image :src="$getimg('djcp-bg.png')"></image>
</view>
<view class="bgjb-jb">
<image :src="$getimg('djcp-bg-jb.png')"></image>
</view>
</view>
<view class="tbb">
<view class="tbboxs" v-for="(el,ind) in zslist" :key="ind">
<view class="tboxbot" :style="{background: 'url('+el.siteUrl+el.typeImg+') no-repeat'}"
@click="goto(el.link)">
<image :src="$getimg('720qj.png')" mode="" class="bot-img"></image>
<view class="tbtitle">
<view class="tbname">{{el.title}}</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
city:'云游常熟',
statusBarHeight: 0,
info: {
color: true,
num: false,
name:'云游常熟'
},
id: 97,
first: 0,
count: 50,
lmdata: [],
alldata: [],
xwwfind: 0,
zslist:[]
}
},
onLoad(options) {
this.getData();
this.getDatalist();
},
onReady() {
//
this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
},
onPageScroll(e) {
if (e.scrollTop > 50 && !this.info.num) {
this.info.num = true;
}
if (e.scrollTop < 50 && this.info.num) {
this.info.num = false;
}
},
methods: {
goto(link){
uni.navigateTo({
url: '/subPackages/webPage/webPage?url=' + link
});
},
geturl(url) {
return 'http://cscmp.tour-ma.com' + url;
},
ckxwwfind(ind, id) {
this.xwwfind = ind;
},
getData() {
this.Post({
apiType: 'old',
id: this.id
},'/json/channel_get.jspx').then(res => {
if (res) {
this.nowdata = res;
} else {
uni.showToast({
title: '查询失败'
});
}
})
},
getDatalist() {
this.Post({
apiType: 'old',
channelIds: this.id,
first: this.first,
count: this.count
}, '/json/content_list.jspx').then(res => {
if (res) {
if (res.length == 0) {
return
}
for (var i = 0; i < res.length; i++) {
this.zslist.push(res[i]);
}
} else {
uni.showToast({
title: '查询失败'
});
}
})
}
}
}
</script>
<style lang="scss">
$url:'https://qyly1.csly-travel.com/r/cms/www/m/changshu/';
.cityicon{
width: calc(100% - 167rpx);
font-size: 32upx;
color: #FFFFFF;
left: 80upx;
display: flex;
align-items: center;
position: absolute;
z-index: 9999;
height: 80rpx;
justify-content: center;
}
.centent {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 750upx;
overflow-y: scroll;
.topbg {
width: 100%;
position: relative;
.bgjb {
width: 100%;
height: 350rpx;
position: absolute;
z-index: -2;
image {
width: 100%;
height: 350rpx;
}
}
.bgjb-jb {
position: absolute;
top: 150rpx;
z-index: -1;
width: 100%;
image {
width: 100%;
height: 250rpx;
}
}
}
.tbb{
width: 100%;
height: 100%;
.tbboxs:nth-child(1) {
margin-top: 50rpx;
}
}
.tbboxs {
max-width: 690upx;
height: 449upx;
margin: auto;
margin: 20upx auto 5%;
width: 90%;
position: relative;
.tboxbot {
width: 100%;
height: 100%;
position: relative;
background-size: 100% 100% !important;
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(121, 104, 77, 0.2);
/* position: absolute; */
/* top: 72rpx; */
/* left: 50%; */
/* margin-left: -47%; */
border-radius: 20rpx;
overflow: hidden;
.bot-img{
width: 60rpx;
height: 60rpx;
position: absolute;
top: 20rpx;
right: 20rpx;
}
.tbtitle {
width: 100%;
height: 130rpx;
position: absolute;
left: 0upx;
bottom: 0upx;
&::before {
content: '';
display: inline-block;
width: 100%;
height: 100%;
background: url($url+'mask.png') no-repeat;
background-size: 100% 100% !important;
padding-bottom: 2rpx;
}
.tbname {
font-size: 36upx;
font-weight: bold;
margin-bottom: 16upx;
position: absolute;
top: 46rpx;
left: 30rpx;
}
.tbinfo {
width: 90%;
font-size: 24upx;
font-weight: 500;
line-height: 1.4;
position: absolute;
top: 120rpx;
left: 30rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: flex;
// align-items: center;
&::before {
content: '';
display: inline-block;
width: 24rpx;
height: 28rpx;
margin-right: 10rpx;
background: url($url+'icon-add-da.png') no-repeat;
background-size: 100% 100% !important;
}
}
}
}
}
// .szra1 {
// width: 90%;
// margin: 40upx auto;
// display: flex;
// flex-direction: row;
// flex-wrap: wrap;
// .list {
// width: 48%;
// margin-bottom: 40upx;
// margin-right: 15rpx;
// .liimg {
// margin-bottom: 20upx;
// .szra_img {
// max-width: 360upx;
// width: 100%;
// height: 210upx;
// border-radius: 8upx;
// }
// }
// .sztitle {
// font-size: 32upx;
// font-weight: 600;
// color: #333333;
// margin-bottom: 20upx;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
// }
// .dsadk {
// font-size: 24rpx;
// font-weight: 500 !important;
// line-height: 1.6;
// &::before {
// content: '';
// display: inline-block;
// width: 24rpx;
// height: 26rpx;
// margin-right: 10rpx;
// background: url($url+'icon-add-xiao.png') no-repeat;
// background-size: 100% 100% !important;
// }
// }
// }
// }
}
</style>
Loading…
Cancel
Save