首页数据展示,购票流程

lu_quan_dev
Tuzki 1 year ago
parent 3a873de35c
commit b8e5a3d519
  1. 1
      common/config.js
  2. 150
      common/httpRequest.js
  3. 5
      components/f-login/f-login.vue
  4. 16
      pages.json
  5. 371
      pages/fuwu/fuwu.vue
  6. 8
      pages/index/index.vue
  7. 14
      pages/personcenter/personcenter.vue
  8. BIN
      static/animg/fuwu/at_1.png
  9. BIN
      static/animg/fuwu/at_2.png
  10. BIN
      static/animg/fuwu/at_3.png
  11. BIN
      static/animg/fuwu/at_5.png
  12. BIN
      static/animg/fuwu/f_dl.png
  13. BIN
      static/animg/fuwu/f_dy.png
  14. BIN
      static/animg/fuwu/f_fj.png
  15. BIN
      static/animg/fuwu/f_fy.png
  16. BIN
      static/animg/fuwu/f_gh.png
  17. BIN
      static/animg/fuwu/f_gl.png
  18. BIN
      static/animg/fuwu/f_hd.png
  19. BIN
      static/animg/fuwu/f_hua.png
  20. BIN
      static/animg/fuwu/f_jqr.png
  21. BIN
      static/animg/fuwu/f_lxs.png
  22. BIN
      static/animg/fuwu/f_qj.png
  23. BIN
      static/animg/fuwu/f_shib.png
  24. BIN
      static/animg/fuwu/f_shop.png
  25. BIN
      static/animg/fuwu/f_sp.png
  26. BIN
      static/animg/fuwu/f_tc.png
  27. BIN
      static/animg/fuwu/f_ts.png
  28. BIN
      static/animg/fuwu/f_wu.png
  29. BIN
      static/animg/fuwu/f_xl.png
  30. BIN
      static/animg/fuwu/f_yue.png
  31. BIN
      static/animg/fuwu/f_yul.png
  32. BIN
      static/animg/fuwu/f_zx.png
  33. BIN
      static/animg/fuwu/feiyi.png
  34. BIN
      static/animg/fuwu/fujin2x.png
  35. BIN
      static/animg/fuwu/gonglve2x.png
  36. BIN
      static/animg/fuwu/huodong2x.png
  37. BIN
      static/animg/fuwu/jianyi-bg2x.png
  38. BIN
      static/animg/fuwu/jianyi-jiantou2x.png
  39. BIN
      static/animg/fuwu/jingqu2x.png
  40. BIN
      static/animg/fuwu/jiudian2x.png
  41. BIN
      static/animg/fuwu/lefu2x.png
  42. BIN
      static/animg/fuwu/meishi2x.png
  43. BIN
      static/animg/fuwu/tousu-bg2x.png
  44. BIN
      static/animg/fuwu/tousu-jiantou2x.png
  45. BIN
      static/animg/fuwu/wenchuang2x.png
  46. BIN
      static/animg/fuwu/wenhuaguan.png
  47. BIN
      static/animg/fuwu/xiangcunyou.png
  48. BIN
      static/animg/fuwu/xianlu2x.png
  49. BIN
      static/animg/fuwu/yanxuejidi.png
  50. BIN
      static/animg/fuwu/zhibo.png
  51. BIN
      static/animg/personCenter/touxiang.png
  52. 147
      subPageB/cate/xiongan/xiongan-html.vue
  53. 337
      subPageB/cate/xiongan/xiongan.vue
  54. 0
      subPageB/components/refresh_3.1.vue
  55. 0
      subPageB/components/refresh_3.vue
  56. 0
      subPageB/components/uni-calendar/calendar.js
  57. 0
      subPageB/components/uni-calendar/uni-calendar-item.vue
  58. 0
      subPageB/components/uni-calendar/uni-calendar.vue
  59. 0
      subPageB/components/uni-calendar/util.js
  60. 2
      subPageB/order/order.vue
  61. 2
      subPageB/pay/calendar/index.vue
  62. 62
      subPageB/suggest/sug_from.vue
  63. 55
      subPageB/suggest/sug_list.vue
  64. 2
      subPageB/zixun/zixunlist/zixuntlist.vue

@ -142,6 +142,7 @@ module.exports = {
//票务这边的
pageComplaintinfo:PWPATH+"/wechatshop/complaintinfo/pageComplaintinfo",//获得投诉建议分页
createComplaintinfo: PWPATH +"/wechatshop/complaintinfo/createComplaintinfo",//创建投诉建议
getPhone: PWPATH+"/wechatshop/auth/getWeChatUserMobile",//获取手机号

@ -24,12 +24,10 @@ module.exports = {
}
return info;
},
post: function (url, data, headerContentType, tentId, needAes) {
console.log(url, data, headerContentType, tentId, needAes, 'post请求参数')
post: function (url, data, headerContentType, tentId, needAes, auth) {
console.log(url, data, headerContentType, tentId, needAes, 'post请求参数');
debugger
if (needAes != false) {
if (needAes !== false) {
for (var key in data) {
data[key] = aes.aesMinEncrypt(data[key]);
}
@ -37,93 +35,71 @@ module.exports = {
headerContentType = headerContentType == "json" ? "application/json" : "application/x-www-form-urlencoded";
// header = header || { "content-type":"application/x-www-form-urlencoded"};
// url = this.config("ROOTPATH")+url;
if (tentId && tentId != "" && tentId != null && tentId != undefined) {
return new Promise((succ, error) => {
uni.request({
url: url,
data: headerContentType == "application/json" ? JSON.stringify(data) : data,
method: "POST",
header: {
"content-type": headerContentType,
"tenant-id": tentId,
},
xhrFields: {
withCredentials: true // 这里设置了withCredentials
},
success: function (result) {
succ.call(self, result.data)
},
fail: function (e) {
error.call(self, e)
}
})
})
} else {
return new Promise((succ, error) => {
uni.request({
url: url,
data: headerContentType =="application/json"?JSON.stringify(data):data,
method: "POST",
header: {
"content-type": headerContentType
},
xhrFields: {
withCredentials: true // 这里设置了withCredentials
},
success: function (result) {
succ.call(self, result.data)
},
fail: function (e) {
error.call(self, e)
}
})
})
let headers = {
"content-type": headerContentType
};
if (auth==true) {
const tok = store.state.userInfo.accessToken || uni.getStorageSync('userInfo').accessToken;
headers['Authorization'] = 'Bearer ' + tok;
}
if (tentId && tentId !== "" && tentId !== null && tentId !== undefined) {
headers['tenant-id'] = tentId;
}
return new Promise((succ, error) => {
uni.request({
url: url,
data: headerContentType == "application/json" ? JSON.stringify(data) : data,
method: "POST",
header: headers,
xhrFields: {
withCredentials: true // 这里设置了withCredentials
},
success: function (result) {
succ.call(self, result.data);
},
fail: function (e) {
error.call(self, e);
}
});
});
},
get: function (url, data, headerContentType, tentId, needAes) {
console.log(url, data, headerContentType, tentId, needAes, 'get请求参数')
get: function (url, data, headerContentType, tentId, needAes, auth) {
console.log(url, data, headerContentType, tentId, needAes, 'get请求参数');
headerContentType = headerContentType ? headerContentType : "application/x-www-form-urlencoded";
// header = header || { "content-type":"application/x-www-form-urlencoded"};
// url = this.config("ROOTPATH")+url;
if (tentId && tentId != "" && tentId != null && tentId != undefined) {
return new Promise((succ, error) => {
uni.request({
url: url,
data: data,
method: "GET",
header: {
"content-type": headerContentType,
"tenant-id": tentId,
},
success: function (result) {
succ.call(self, result.data)
},
fail: function (e) {
error.call(self, e)
}
})
})
} else {
return new Promise((succ, error) => {
uni.request({
url: url,
data: data,
method: "GET",
header: {
"content-type": headerContentType
},
success: function (result) {
succ.call(self, result.data)
},
fail: function (e) {
error.call(self, e)
}
})
})
let headers = {
"content-type": headerContentType
};
if (auth == true) {
const tok = store.state.userInfo.accessToken || uni.getStorageSync('userInfo').accessToken;
headers['Authorization'] = 'Bearer ' + tok;
}
if (tentId && tentId !== "" && tentId !== null && tentId !== undefined) {
headers['tenant-id'] = tentId;
}
return new Promise((succ, error) => {
uni.request({
url: url,
data: data,
method: "GET",
header: headers,
success: function (result) {
succ.call(self, result.data);
},
fail: function (e) {
error.call(self, e);
}
});
});
}
}
// 写法示例

@ -5,8 +5,8 @@
<view class="loginLoading" v-if="isLoading">
<u-loadmore status="loading" loadingText="正在登录..."></u-loadmore>
</view>
<view class="title">欢迎登录~</view>
<view class="text">用户登录后消费可享受更好的服务体验</view>
<view class="title">请先登录~</view>
<view class="text">用户登录后可享受更好的服务体验</view>
<view class="loginButton" v-if="!isPhoneLogin">
<!-- #ifdef MP-WEIXIN -->
<!-- <button class="button" @click="onAuthorization" :style="{background:PrimaryColor}">微信授权登录</button> -->
@ -130,7 +130,6 @@ export default {
//token
this.setUserInfo(userInfo)
this.$param.userkey = userInfo.openid
setTimeout(() => {
// uni.showToast({

@ -18,7 +18,7 @@
{
"path": "pages/fuwu/fuwu",
"style": {
"navigationBarTitleText": "文旅服务"
"navigationStyle": "custom"
}
},
{
@ -523,17 +523,7 @@
}
}
},
{
"path": "cate/xiongan/xiongan",
"style": {
"navigationBarTitleText": "了解雄安",
"app-plus": {
"titleNView": {
"type": "transparent"
}
}
}
},
{
"path": "cate/index",
"style": {
@ -739,7 +729,7 @@
"pagePath": "pages/fuwu/fuwu",
"iconPath": "static/animg/bar/fuwu.png",
"selectedIconPath": "static/animg/bar/fuwu_active.png",
"text": "文旅服务"
"text": "服务"
},
{
"pagePath": "pages/personcenter/personcenter",

File diff suppressed because one or more lines are too long

@ -169,6 +169,7 @@
</view>
</view>
<f-login></f-login>
</view>
</template>
@ -313,9 +314,10 @@ export default {
});
break;
case 'tousu':
uni.navigateTo({
url: "/subPageB/suggest/sug_list?type=1",
});
this.onTokenJump('/subPageB/suggest/sug_list?type=1', 'navigateTo')
// uni.navigateTo({
// url: "/subPageB/suggest/sug_list?type=1",
// });
break;
}
},

@ -132,14 +132,16 @@ export default {
goPage(val) {
switch (val) {
case 'yijian':
uni.navigateTo({
url: "/subPageB/suggest/sug_list?type=2",
});
this.onTokenJump('/subPageB/suggest/sug_list?type=2', 'navigateTo')
// uni.navigateTo({
// url: "/subPageB/suggest/sug_list?type=2",
// });
break;
case 'tousu':
uni.navigateTo({
url: "/subPageB/suggest/sug_list?type=1",
});
this.onTokenJump('/subPageB/suggest/sug_list?type=1', 'navigateTo')
// uni.navigateTo({
// url: "/subPageB/suggest/sug_list?type=1",
// });
break;
case 'about':
uni.navigateTo({

Binary file not shown.

Before

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 986 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 928 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 945 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 935 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 856 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 984 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 977 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,147 +0,0 @@
<template>
<view>
<view class="an_top_3">
<image src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1588839885386&di=caa687dc814e03d8b600ea658da9afd9&imgtype=0&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201401%2F23%2F095609lsejfi4thjrrwydj.jpg" mode="widthFix" class="an_bj_3"></image>
</view>
<view class="an_top_2">
<view class="anbox_2">
<!-- <view class="an_vdo_2"><image src="/subPageA/images/btn_play.png" mode="aspectFill" class="an_vdo_img_2"></image></view> -->
<view class="an_box_4">
<view class="amt_30">
<view class="lgn_t_h1 pjia_usr_inf">关于雄安</view>
<view class="wc_cont an_gyu" >
<!-- .an_gyu 为固定高度 对应展开按钮 -->
<view class="at_t">
雄安新区Xiongan New
Area位于中国河北省保定市境内2017年4月1日中共中央国务院决定设立的国家级新区地处北京天津保定腹地规划范围涵盖河北省雄县容城安新等3个小县及周边部分区域对雄县容城安新3县及周边区域实行托管是中国河北自由贸易试验区组成部分
</view>
<!-- 展开按钮 -->
<view class="agn_center an_zkai">
<image src="/subPageB/static/img/btn_more.png" class="lgn_img"></image>
</view>
<!-- 收起按钮 -->
<!-- <view class="agn_center"><view class="an_sqi">收起</view> </view> -->
</view>
</view>
</view>
<view>
<view class="amt_30">
<scroll-view class="anx_scl_1" scroll-x="true" @scroll="scroll" scroll-left="90" @clickItem="onClickItem">
<view class="scl_1_ut">
<view class="dy_fx">
<view class="an_tit_tab">一方城</view>
<view class="an_tit_tab">两轴线</view>
<view class="an_tit_tab an_tab_cur">五组团</view>
<view class="an_tit_tab">十景苑</view>
<view class="an_tit_tab">千年林</view>
<view class="an_tit_tab">万顷波</view>
</view>
</view>
</scroll-view>
</view>
<view class="amt_30">
<!-- -->
<special-banner :banner-list="bannerList" :swiper-config="swiperConfig"></special-banner>
</view>
</view>
<view class="an_box_4">
<view class="amt_30">
<view class="gan_name_zce" style="font-size: 32rpx;">三季有花 四季有绿</view>
<view class="wc_cont">
<view class="at_t ">
近日中国雄安集团发布了雄安新区2020年植树造林项目信息预告截至去年年底雄安新区在前期新造林11万亩基础上继续高起点规划高标准建设20万亩异龄复层混交的近自然千年秀林雄安新区总造林面积扩展至31万亩树种达200种植树1400万棵
根据省委省政府工作部署2020雄安新区千年秀林计划植树造林10万亩主要包括环淀林带河流生态廊道道路生态廊道和部分林地斑块及生态湿地游憩林等规划林地
据了解在今年的植树造林计划中环淀绿化带造林项目主要位于容城县平王乡和安新县大王镇安州镇刘李庄镇等周边林带道路和河流生态廊道造林项目主要包括白洋淀大道两侧50米宽绿化和大广高速及唐河两侧规划林带等区域林地斑块造林项目范围主要包括昝岗林地斑块赵北口林地斑块安新林地斑块马家寨林地斑块刘李庄林地斑块和老河头林地斑块生态游憩林造林项目主要位于雄县龙湾镇和容城县容城镇等周边区域
</view>
</view>
</view>
</view>
<view class="aml_30 amr_30">
<view class="lgn_t_h1">景点推荐</view>
</view>
<view class="amt_30 aml_30 yins_l">
<scroll-view class="anx_scl_1" scroll-x="true" @scroll="scroll" scroll-left="0" @clickItem="onClickItem">
<view class="scl_1_ut">
<view class="dy_fx">
<view class="amr_30">
<image src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1588839885386&di=caa687dc814e03d8b600ea658da9afd9&imgtype=0&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201401%2F23%2F095609lsejfi4thjrrwydj.jpg" mode="aspectFill" class="an_tj_scl"></image>
<view class="at_t word_1">雄安集团发布了雄安新区2020年植树造</view>
</view>
<view class="amr_30">
<image src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1588839885386&di=caa687dc814e03d8b600ea658da9afd9&imgtype=0&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201401%2F23%2F095609lsejfi4thjrrwydj.jpg" mode="aspectFill" class="an_tj_scl"></image>
<view class="at_t word_1">雄安集团发布了雄安新区2020年植树造</view>
</view>
<view class="amr_30">
<image src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1588839885386&di=caa687dc814e03d8b600ea658da9afd9&imgtype=0&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201401%2F23%2F095609lsejfi4thjrrwydj.jpg" mode="aspectFill" class="an_tj_scl"></image>
<view class="at_t word_1">雄安集团发布了雄安新区2020年植树造</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import specialBanner from '../../../components/specialBanner.vue';
export default {
components: {
specialBanner
},
data() {
return {
bannerList: [
{
picture: 'http://image.mishi.cn/r/yry_h5_test/detail/3_1535359279285.png',
title: '七夕将至:时光足够久,韧性也能炖出味',
description: '一万年太久,就现在,给你爱',
path: ''
},
{
picture: 'http://image.mishi.cn/r/yry_h5_test/detail/2_1535359240426.png',
title: '新菜上架:无边海洋,找到顺眼的那尾鱼',
description: '花中樱,鱼乃鲷花中樱,鱼乃鲷',
path: ''
},
{
picture: 'http://image.mishi.cn/r/yry_h5_test/detail/1_1535359204228.png',
title: '在湘西的烟火气里,发现苗族少女的神明',
description: '取材自湘西苗族传统的烟熏文化',
path: ''
},
{
picture: 'http://image.mishi.cn/r/yry_h5_test/detail/4_1535359327213.png',
title: '一人宴福利降临,陪伴独自行走的丰盛旅程',
description: '在自己的小世界里,日日好日,夜夜好清宵',
path: ''
}
],
swiperConfig: {
indicatorDots: false,
indicatorColor: 'rgba(255, 255, 255, .4)',
indicatorActiveColor: 'rgba(255, 255, 255, 1)',
autoplay: false,
interval: 3000,
duration: 300,
circular: true,
previousMargin: '58rpx',
nextMargin: '58rpx'
}
};
},
methods: {}
};
</script>
<style>
</style>

@ -1,337 +0,0 @@
<template>
<view>
<view class="an_top_3">
<image :src="toplogo" mode="widthFix" class="an_bj_3"></image>
</view>
<view class="an_top_2">
<view class="anbox_2">
<!-- <view class="an_vdo_2"><image src="/subPageA/images/btn_play.png" mode="aspectFill" class="an_vdo_img_2"></image></view> -->
<view class="an_box_4">
<view class="amt_30">
<view class="lgn_t_h1 pjia_usr_inf">{{msgDetail.title}}</view>
<view :class="showType == '展开'?'wc_cont an_gyu':'wc_cont'">
<!-- .an_gyu 为固定高度 对应展开按钮 -->
<view class="at_t">
<u-parse :content="msgDetail.content" :loading="loading" @preview="preview" @navigate="navigate" />
</view>
<!-- 展开按钮 -->
<view class="agn_center an_zkai" v-if="showType == '展开'" @tap="changeShowType()">
<image src="/subPageB/static/img/btn_more.png" class="lgn_img"></image>
</view>
<!-- 收起按钮 -->
<view class="agn_center" v-if="showType == '收起'" @tap="changeShowType()">
<view class="an_sqi">收起</view>
</view>
</view>
</view>
</view>
<view>
<view class="amt_30">
<scroll-view class="anx_scl_1" scroll-x="true" @scroll="scroll" scroll-left="90" @clickItem="onClickItem">
<view class="scl_1_ut">
<view class="dy_fx">
<view @tap="change(index)" :class="index == xz ?'an_tit_tab an_tab_cur': 'an_tit_tab' " v-for="(item,index) in middleData" :key="index">{{item.title}}</view>
<!-- <view class="an_tit_tab">两轴线</view>
<view class="an_tit_tab">五组团</view>
<view class="an_tit_tab">十景苑</view>
<view class="an_tit_tab">千年林</view>
<view class="an_tit_tab">万顷波</view> -->
</view>
</view>
</scroll-view>
</view>
<view class="amt_30">
<!-- -->
<special-banner :banner-list="bannerList" :swiper-config="swiperConfig"></special-banner>
</view>
</view>
<view class="an_box_4">
<view class="amt_30">
<view class="gan_name_zce" style="font-size: 32rpx;">{{mes.subtitle}}</view>
<view class="wc_cont">
<view class="at_t ">
<u-parse :content="mes.content" :loading="loading" @preview="preview" @navigate="navigate" />
</view>
</view>
</view>
</view>
<view class="aml_30 amr_30">
<view class="lgn_t_h1">景点推荐</view>
</view>
<view class="amt_30 aml_30 yins_l">
<scroll-view class="anx_scl_1" scroll-x="true" @scroll="scroll" scroll-left="0">
<view class="scl_1_ut">
<view class="dy_fx">
<view class="amr_30" @click="goToScenicDetail(item.guid)" v-for="(item,index) in scenicList" :key="index">
<image :src="item.slogo" mode="aspectFill" class="an_tj_scl"></image>
<view class="at_t word_1">{{item.sname}}</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import uParse from '@/components/gaoyia-parse/parse.vue'
import specialBanner from '../../../components/specialBanner.vue';
export default {
components: {
specialBanner,
uParse
},
data() {
return {
bannerList: [
/* 一万年太久,就现在,给你爱 */
/* 花中樱,鱼乃鲷花中樱,鱼乃鲷 */
/* 取材自湘西苗族传统的烟熏文化 */
/* 在自己的小世界里,日日好日,夜夜好清宵 */
/* {
picture: 'http://image.mishi.cn/r/yry_h5_test/detail/3_1535359279285.png',
description: '',
},
{
picture: 'http://image.mishi.cn/r/yry_h5_test/detail/2_1535359240426.png',
description: '',
},
{
picture: 'http://image.mishi.cn/r/yry_h5_test/detail/1_1535359204228.png',
description: '',
},
{
picture: 'http://image.mishi.cn/r/yry_h5_test/detail/4_1535359327213.png',
description: '',
} */
],
bannerLists:[],
swiperConfig: {
indicatorDots: false,
indicatorColor: 'rgba(255, 255, 255, .4)',
indicatorActiveColor: 'rgba(255, 255, 255, 1)',
autoplay: false,
interval: 3000,
duration: 300,
circular: true,
previousMargin: '58rpx',
nextMargin: '58rpx'
},
msgDetail: {},
scenicList: [],
toplogo:"",
showType:"展开",
middleData:[],
xz:0,
mes:{},
netType:true
};
},
onLoad: function(option) {
var that = this;
this.$util.getNetworkType(
function(res){
if(res.networkType === 'none'){
uni.showToast({
title:that.$param.netMsg,
icon:"none",
duration:2000
})
that.netType = false;
}
},function(){
uni.showToast({
title:that.$param.netMsg,
icon:"none",
duration:2000
})
that.netType = false;
}
)
if(!that.netType){
return;
}
this.$util.hideLoadingByTime();
this.getParam(function(guid,region){
that.$util.saveOperatorLog(that,"MDD",guid);
uni.showLoading({
title: "加载中",
mask: true
})
that.guid = guid;
that.region = region;
that.getRedisData();
that.getMiddleData();
},function(){
uni.showToast({
icon:"none",
title:"系统异常"
})
})
},
onReady() {
setTimeout(function() {
uni.hideLoading();
}, 500);
},
methods: {
getParam:function(successCallback,errorCallback){
var that = this;
var url = this.$config.getMessageInfoFormFilter;
var data = {
type: this.$param.mddType,
userkey:this.$param.userkey,
pageSize:1,
sort: "2"
};
this.$Request.post(url, data).then(res => {
var flag = that.$util.isSuccess(res);
if(!flag){
return;
}
var result = res.data[0];
successCallback(result.guid,result.bm);
})
},
getMiddleData: function(){
var that = this;
var url = this.$config.getMessageInfoFormFilter;
var data = {
type: this.$param.xagkType,
userkey:this.$param.userkey,
pageSize:7,
sort: "1"
};
this.$Request.post(url, data).then(res => {
var flag = that.$util.isSuccess(res);
if(!flag){
return;
}
var result = res.data;
console.log(result)
var bannersLists = [];
for (var j = 0; j<result.length;j++) {
var pictures = result[j].imagelist;
var bannerLi = [];
for(var i = 0; i < pictures.length; i++){
var map = {
picture: this.$config.ROOTPATH + pictures[i],
description: '',/* 取材自湘西苗族传统的烟熏文化 */
}
bannerLi.push(map);
}
bannersLists.push(bannerLi);
}
this.bannerList = bannersLists[this.xz];
this.bannerLists = bannersLists;
this.middleData = result;
this.mes = this.middleData[this.xz]
})
},
getRedisData:function(){
var data = {
"key": this.$param.userkey + "_mdd_"+this.region
}
this.$Request.post(this.$config.getRedisData, data).then(res => {
if (res.status == 200) {
//
var initData = res.data;
//
this.msgDetail = initData.detailMessage;
console.log("+++++++++++++++++++++++++++++++++++++++++++");
console.log(this.msgDetail);
this.toplogo = this.$config.ROOTPATH + this.msgDetail.logo
//
var hotScenicList = initData.hotScenic;
this.width = "width:"+ (hotScenicList.length * 70) + "%";
for (let i = 0; i < hotScenicList.length; i++) {
hotScenicList[i].slogo = this.$config.ROOTPATH + hotScenicList[i].slogo;
}
this.scenicList = hotScenicList;
}else{
this.getMsgDetail(this.guid);
this.getHotScenic();
}
})
},
getMsgDetail: function(guid) {
var that = this;
var data = {
"userkey":this.$param.userkey,
"type":this.$param.mddType,
"guid":guid
}
this.$Request.post(this.$config.getMessgeInfoDetailFormId, data).then(res => {
if(!that.$util.isSuccess(res)){
return;
}
this.msgDetail = res.data;
console.log(this.msgDetail);
this.toplogo = this.$config.ROOTPATH + this.msgDetail.logo
this.imgList = [];
for (var i = 0; i < this.msgDetail.imagelist.length; i++) {
var item = {
imgurl: this.$config.ROOTPATH + this.msgDetail.imagelist[i]
}
this.imgList.push(item);
}
})
},
getHotScenic: function() {
var that = this;
var url = this.$config.getScenicListFormFilter;
var data = {
userkey:this.$param.userkey,
sort: "2",
pageno: "1",
pageSize: "5",
region: this.region
};
this.$Request.post(url, data).then(res => {
var flag = that.$util.isSuccess(res);
if(!flag){
return;
}
var data = res.data;
this.width = "width:"+ (data.length * 70) + "%";
for (let i = 0; i < data.length; i++) {
data[i].slogo = this.$config.ROOTPATH + data[i].slogo;
}
this.scenicList = data;
})
},
changeShowType:function(){
if(this.showType == "展开"){
this.showType = "收起";
this.showTypeUrl = "/subPageB/static/img/icn_up_g.png";
}else if(this.showType == "收起"){
this.showType = "展开";
this.showTypeUrl = "/subPageB/static/img/icn_down_g.png";
}
},
goToScenicDetail: function(guid) {
//Android.gotoDetial("SCENIC", guid + "");
uni.navigateTo({
url: '/subPageA/scenic/scenicdetial/scenicdetial?guid=' + guid
});
},
change: function(index){
this.xz = index;
this.bannerList = this.bannerLists[index];
this.mes = this.middleData[index];
}
}
};
</script>
<style>
</style>

@ -80,7 +80,7 @@
<script>
const util = require('../travel/quote/util.js');
//TODO import refresh from '../../pages/travel/quote/refresh.vue';
import refresh from '@/components/refresh_3.1.vue';
import refresh from '../components/refresh_3.1.vue';
import aes from "@/common/aes.js";
export default {
components: {

@ -5,7 +5,7 @@
</template>
<script>
import uniCalendar from '@/components/uni-calendar/uni-calendar.vue'
import uniCalendar from '../../components/uni-calendar/uni-calendar.vue'
export default {
components: {
uniCalendar

@ -3,7 +3,8 @@
<view class="top-nav">
<view @click="scrollToPosition(1)" :class="['nav-item', choose == 1 ? 'active' : '']">在线{{ type == 1 ? '投诉' : '建议'
}}</view>
<view @click="scrollToPosition(2)" :class="['nav-item', choose == 2 ? 'active' : '']">电话{{ type == 1 ? '投诉' : '建议' }}
<view @click="scrollToPosition(2)" :class="['nav-item', choose == 2 ? 'active' : '']">电话{{ type == 1 ? '投诉' : '建议'
}}
</view>
</view>
@ -16,7 +17,7 @@
<view class="mode_com lst_sug_unit">
<view class="sug_form_line">
<view class="sug_dly_flex">
<view class="sug_sgu who">您要{{ type == 1 ? '投诉' : '建议' }}<text class="chel_t_s"></text></view>
<view class="sug_sgu who">您要{{ type == 1 ? '投诉' : '建议' }}的对象<text class="chel_t_s"></text></view>
</view>
<view>
<input type="text" @input="inputVerify" name="ctype" :placeholder="type == 1 ? '投诉对象(必填)' : '建议对象(必填)'"
@ -35,7 +36,7 @@
</view>
<view class="sug_form_line">
<view class="sug_dly_flex">
<view class="sug_sgu">上传证据</view>
<view class="sug_sgu tu">上传证据</view>
</view>
<view class="sug_dly_flex sug_lst_img sug_fm_img">
@ -79,8 +80,8 @@
<view class="sug_form_line">
<view class="sug_dly_flex sub_lxir">
<text style="color: #ff0000;">*</text>
<view class="sug_sgu">您的姓名</view>
<view class="sug_r">
<view class="sug_sgu">您的姓名</view>
<view class="sug_r rr">
<input type="text" name="lineuser" @input="inputVerify" :value="lineuser" placeholder="请输入姓名"
class="ipt_sug" />
<!-- <view class="btn_del_sug"><image src="/subPageA/images/del_2.png" mode="aspectFill" class="kou_top3"></image></view> -->
@ -93,8 +94,8 @@
<view class="sug_form_line">
<view class="sug_dly_flex sub_lxir">
<text style="color: #ff0000;">*</text>
<view class="sug_sgu">您的联系方式</view>
<view class="sug_r">
<view class="sug_sgu">您的电话</view>
<view class="sug_r rr">
<input type="number" name="linemobile" placeholder="请输入手机号码" class="ipt_sug" />
<!-- <view class="btn_baoh_sug"><image src="/subPageA/images/icn_baoh.png" mode="aspectFill" class="kou_top3"></image><text>保护中</text></view> -->
</view>
@ -125,7 +126,7 @@
<view class="text">电话号码加密</view>
</view>
</view>
<view class="m-title">电话{{ type == 1 ? '投诉' : '建议' }}流程</view>
<view class="m-title">电话发起{{ type == 1 ? '投诉' : '建议' }}流程</view>
<view class="liucheng-box">
<view class="row">
<view class="row-icon tell"></view>
@ -136,7 +137,7 @@
</view>
<view class="row">
<view class="row-icon ts"></view>
<view class="row-text">工作人员为您发起{{ type == 1 ? '投诉' : '建议' }}</view>
<view class="row-text">工作人员受理您发起的{{ type == 1 ? '投诉' : '建议' }}</view>
</view>
<view class="row row-mini">
<view class="row-icon no"></view>
@ -290,30 +291,30 @@ export default {
return false;
}
var data = {
address: e.detail.value.address,
creason: e.detail.value.creason,
ctype: e.detail.value.ctype,
linemobile: e.detail.value.linemobile,
lineuser: e.detail.value.lineuser,
filePath: filePath,
unionid: aes.aesDecrypt(uni.getStorageSync("unionid")),
lat: that.latitude,
lng: that.longitude,
userkey: that.$param.userkey
address: e.detail.value.address,//
creason: e.detail.value.creason,//
ctype: e.detail.value.ctype,//
linemobile: e.detail.value.linemobile,//
lineuser: e.detail.value.lineuser,//
cimages: filePath,//
// lat: that.latitude,
// lng: that.longitude,
appid: that.$param.userkey,// openid
dataType: that.type//1:2:
}
this.$Request.post(this.$config.addFeedback, data).then(res => {
if (res.status == 200) {
this.$Request.post(this.$config.createComplaintinfo, data, "json", null, false).then(res => {
if (res.code == 0) {
uni.showModal({
title: "提示",
content: "提交成功",
showCancel: false,
success() {
// uni.redirectTo({
// url: "/subPageA/suggest/sug_list"
// })
uni.navigateBack({
delta: 1
uni.redirectTo({
url: "/subPageA/suggest/sug_list?type=" + that.type
})
// uni.navigateBack({
// delta: 1
// })
}
})
} else {
@ -612,6 +613,11 @@ export default {
background: linear-gradient(90deg, #57ABFF 0%, #0983FF 100%);
}
.tu::before {
content: '图';
background: linear-gradient(90deg, #57ABFF 0%, #0983FF 100%);
}
.no-ico {
margin-bottom: 40rpx;
@ -773,4 +779,8 @@ export default {
}
}
}
.rr{
margin-left: 20rpx;
}
</style>

@ -39,7 +39,7 @@
<view :class="'mode_com ' + item.showHideType">
<!--class为zhed_gao 固定高度--对应向下的箭头---->
<!-- 投诉时间 -->
<view><text class="chel_t_s">提交时间:{{ item.createtime }}</text></view>
<!-- <view><text class="chel_t_s">提交时间:{{ item.createtime }}</text></view> -->
<!-- 投诉内容 -->
<view class="sug_lst_inf">
{{ item.creason }}
@ -66,8 +66,10 @@
</view>
</view>
<view class="mode_com" v-else>
<view class="no-data">暂无记录!</view>
<view class="mode_com empyt" v-else>
<u-empty mode="list">
</u-empty>
</view>
<view class="blk_2"></view>
</scroll-view>
@ -83,11 +85,12 @@
</template>
<script>
import refresh from '@/components/refresh_3.vue';
import refresh from '../components/refresh_3.vue';
import uEmpty from "@/uni_modules/uview-ui/components/u-empty/u-empty.vue"
import aes from "@/common/aes.js";
export default {
components: {
refresh
refresh, uEmpty
},
data() {
return {
@ -100,7 +103,7 @@ export default {
page: 1,
loadType: true,
netType: true,
type:1
type: 1
}
},
onLoad: function (options) {
@ -128,8 +131,8 @@ export default {
return;
}
this.$util.hideLoadingByTime();
this.getUserMsg();
this.type = options.type;
this.getUserMsg();
},
methods: {
onReachScroll: function (t) {
@ -182,29 +185,38 @@ export default {
var data = {
"pageno": that.page,
"pageSize": "10",
"unionid": aes.aesDecrypt(uni.getStorageSync("unionid")),
"appid": that.$param.userkey
"appid": uni.getStorageSync("userInfo").openid,
"dataType": that.type
}
this.$Request.get(this.$config.pageComplaintinfo, data).then(res => {
var flag = that.$util.isSuccess(res);
if (!flag) {
return;
}
var data = res.data;
var data = res.data.list;
if (data != null && data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (data[i].cimages != null && data[i].cimages != undefined) {
if (data[i].cimages.includes(',')) {
data[i].cimages = data[i].cimages.split(',')
} else {
data[i].cimages = [data[i].cimages]
}
}
var item = {
"guid": data[i].guid,
"guid": data[i].id,
"creason": data[i].creason,
"address": data[i].address,
"createtime": that.timestampToTime(data[i].createtime),
"ctype": data[i].ctype,
"imgList": data[i].imgList,
"imgList": data[i].cimages,
"showHideType": "zhed_gao",
"upDownType": "down_touj"
}
that.controlList.push(item);
}
if (that.controlList.length == res.data.total) {
that.loadType = false;
}
console.log(that.controlList, '列表')
} else {
that.loadType = false;
}
@ -212,7 +224,7 @@ export default {
},
goAddSug: function () {
uni.navigateTo({
url: "/subPageB/suggest/sug_from?type=" +this.type
url: "/subPageB/suggest/sug_from?type=" + this.type
})
},
timestampToTime: function (timestamp) {
@ -249,8 +261,11 @@ page {
bottom: 70rpx;
}
.no-data{
.no-data {
text-align: center;
margin: 100rpx 0 ;
margin: 100rpx 0;
}
.empyt{
margin-top: 150rpx;
}
</style>

@ -102,7 +102,7 @@
</template>
<script>
import refresh from '@/components/refresh_3.vue';
import refresh from '../../components/refresh_3.vue';
export default {
components: {
refresh

Loading…
Cancel
Save