关于代码更改的commit message:

```
内容更新和性能优化

- 更新了关于页面的文字内容,使其更加精简和准确。
-移除了不必要的加载动画,提升了页面加载速度和用户体验。
- 注释掉了一些敏感信息获取代码,以遵守最新的隐私政策。
- 修正了登录功能中的一个错误,确保用户登录时的UUID正确分配。- 移除了天气相关功能,减少了不必要的API调用,提高了页面响应速度。
- 优化了图片路径和资源引用,符合最新的设计规范。
- 调整了路由逻辑,使得页面跳转更加清晰和有逻辑性。
-修正了数据序列化和存储的一些问题,确保数据一致性和安全性。```
lu_quan_dev
Tuzki 1 year ago
parent 1dcb81f481
commit 32910061d0
  1. 2
      .vscode/settings.json
  2. 10
      App.vue
  3. 5
      common/config.js
  4. 1
      common/httpRequest.js
  5. 2
      common/login.js
  6. 165
      components/f-loading/loading.vue
  7. 22
      components/f-login/f-login.vue
  8. 16
      components/gaoyia-parse/components/wxParseTemplate0.vue
  9. 6
      pages/index/index.vue
  10. 8
      store/modules/common.js
  11. 81
      subPageA/food/fooddetial/fooddetial.vue
  12. 6
      subPageA/personcenter/aboutus.vue
  13. 883
      subPageA/scenic/scenicdetial/scenicdetial.vue
  14. 2
      subPageA/wenchuang/wenlist/wenlist.vue
  15. 32
      subPageB/cate/destination.vue
  16. 14
      subPageB/jiqiren/jiqiren/zhinengjiqiren.vue
  17. BIN
      subPageB/static/img/whe_cloudy.png
  18. BIN
      subPageB/static/img/whe_lei.png
  19. BIN
      subPageB/static/img/whe_sun.png
  20. BIN
      subPageB/static/img/whe_wu.png
  21. BIN
      subPageB/static/img/whe_xue.png
  22. BIN
      subPageB/static/img/whe_yin.png
  23. BIN
      subPageB/static/img/whe_yu.png
  24. 2
      subPageB/suggest/sug_list.vue
  25. 2752
      subPageC/bookTicket/bookTicket.vue
  26. 9
      uni_modules/jr-weather/components/jr-weather/jr-weather.vue
  27. 2099
      uni_modules/wu-calendar/components/wu-calendar/wu-calendar.vue

@ -2,5 +2,5 @@
"workbench.tree.indent": 2,
"editor.indentSize": "tabSize",
"editor.tabSize": 2,
"vue3snippets.enable-compile-vue-file-on-did-save-code": false
"vue3snippets.enable-compile-vue-file-on-did-save-code": true
}

@ -11,11 +11,11 @@ import store from "@/store";
store.commit('setCacheData');
//userid
var userStorageSync = aes.aesDecrypt(decodeURIComponent(uni.getStorageSync("userid")))
if(userStorageSync.indexOf("data")){
var json = JSON.parse(userStorageSync);
uni.setStorageSync("userid",aes.aesMinEncrypt(json.data));
}
// var userStorageSync = aes.aesDecrypt(decodeURIComponent(uni.getStorageSync("userid")))
// if(userStorageSync.indexOf("data")){
// var json = JSON.parse(userStorageSync);
// uni.setStorageSync("userid",aes.aesMinEncrypt(json.data));
// }
// uni.getLocation({
// type: 'gcj02',
// success: function (res) {

@ -143,6 +143,11 @@ module.exports = {
//票务这边的
pageComplaintinfo:PWPATH+"/wechatshop/complaintinfo/pageComplaintinfo",//获得投诉建议分页
createComplaintinfo: PWPATH +"/wechatshop/complaintinfo/createComplaintinfo",//创建投诉建议
getTicketSortList: PWPATH + "/wechatshop/ticket/getTicketSortList",//获取门票分类
getTicketList: PWPATH + "/wechatshop/ticket/getTicketList",//获取门票列表分页
isQuota: PWPATH + "/wechatshop/ticket/isQuota",//查询是否限购
getScencAndTicketInfo: PWPATH + "/wechatshop/ticket/getScencAndTicketInfo",//获取景区门票相关信息
getTicketDateInventory: PWPATH + "/wechatshop/ticket/getTicketDateInventory",//获得门票日期库存
getPhone: PWPATH+"/wechatshop/auth/getWeChatUserMobile",//获取手机号

@ -1,6 +1,7 @@
import configdata from './config'
import cache from './cache'
import aes from "@/common/aes.js";
import store from "@/store/index.js";
module.exports = {
config: function (name) {
var info = null;

@ -171,7 +171,7 @@ var throttleLogin = true
export const judgeLogin = (callback) => {
let storeUserInfo = store.state.userInfo;
if (!storeUserInfo.userId){ // nvue页面读取不到vuex里面数据,将取缓存
// #ifdef APP-APP-NVUE
// #ifdef MP-WEIXIN
storeUserInfo = uni.getStorageSync('userInfo')
// #endif
}

@ -0,0 +1,165 @@
<template>
<view class="mask mask-show u_loading" :data-theme="isDark?'dark':'light'" v-if="loadingShow" @touchmove.stop.prevent="preventTouchMove">
<!-- 加载动画开始 -->
<view class="preloader u-flex u-flex-column u-flex-center">
<view class="loader">
<view></view>
<view></view>
<view></view>
<view></view>
<view></view>
</view>
<!-- <view class="title">加载中...</view> -->
</view>
<!-- 加载动画结束 -->
</view>
</template>
<script scoped="true">
import { mapState, mapMutations } from 'vuex';
export default {
computed: {
...mapState(['loadingShow','isDark'])
},
methods:{
preventTouchMove(){
console.log('stop user scroll it!');
return;
}
}
};
</script>
<style lang="scss" scoped>
.u_loading{
&.mask {
/* pointer-events: none; */
position: fixed;
z-index: 99999;
top: 0;
left: 0;
right: 0;
bottom: 0;
height: 100vh;
width: 100vw;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
justify-content: center;
align-items: center;
flex-wrap: wrap;
}
&.mask-show {
background: rgba(255,255,255, 0);
}
.title {
color: #666;
font-size: 28rpx;
margin-top: 40rpx;
}
.preloader{
width: 220rpx;
height: 170rpx;
background-color: transparent;
border-radius: 18rpx;
}
.loader {
width: 36px;
position: relative;
}
.loader view {
display: block;
position: absolute;
bottom: 0px;
width: 4px;
height: 5px;
background: coral;
-webkit-animation: loader 1.5s infinite ease-in-out;
animation: loader 1.5s infinite ease-in-out;
}
.loader view:nth-child(2) {
left: 8px;
-webkit-animation-delay: 0.2s;
animation-delay: 0.2s;
}
.loader view:nth-child(3) {
left: 16px;
-webkit-animation-delay: 0.4s;
animation-delay: 0.4s;
}
.loader view:nth-child(4) {
left: 24px;
-webkit-animation-delay: 0.6s;
animation-delay: 0.6s;
}
.loader view:nth-child(5) {
left: 32px;
-webkit-animation-delay: 0.8s;
animation-delay: 0.8s;
}
@-webkit-keyframes loader {
0% {
height: 5px;
-webkit-transform: translateY(0px);
transform: translateY(0px);
background: coral;
}
25% {
height: 30px;
-webkit-transform: translateY(15px);
transform: translateY(15px);
background: cornflowerblue;
}
50% {
height: 5px;
-webkit-transform: translateY(0px);
transform: translateY(0px);
background: cornflowerblue;
}
100% {
height: 5px;
-webkit-transform: translateY(0px);
transform: translateY(0px);
background: coral;
}
}
@keyframes loader {
0% {
height: 5px;
-webkit-transform: translateY(0px);
transform: translateY(0px);
background: coral;
}
25% {
height: 30px;
-webkit-transform: translateY(15px);
transform: translateY(15px);
background: cornflowerblue;
}
50% {
height: 5px;
-webkit-transform: translateY(0px);
transform: translateY(0px);
background: cornflowerblue;
}
100% {
height: 5px;
-webkit-transform: translateY(0px);
transform: translateY(0px);
background: coral;
}
}
}
[data-theme=dark] {
.u_loading{
&.mask-show {
background: rgba(0,0,0, 0.3);
}
}
}
</style>

@ -21,10 +21,11 @@
</view>
</u-popup>
<f-loading></f-loading>
</view>
</template>
<script>
import fLoading from "@/components/f-loading/loading.vue"
import uPopup from "@/uni_modules/uview-ui/components/u-popup/u-popup.vue";
import uLoadmore from "@/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue";
import { mapState, mapMutations } from 'vuex';
@ -41,7 +42,8 @@ var clear;
export default {
components: {
uPopup,
uLoadmore
uLoadmore,
fLoading
},
name: 'f-login',
computed: {
@ -83,13 +85,14 @@ export default {
//
decryptPhoneNumber(e) {
console.log(e, '授权手机号')
store.commit("setLoadingShow", true);
var that = this
// #ifdef MP-WEIXIN
if (e.detail.errMsg == 'getPhoneNumber:ok') {
if (e.detail.iv) {
var userInfo = e.detail;
// userInfo.code = that.code
this.closeLogin();
// this.closeLogin();
//getPhoneInfo使
getPhoneInfo(userInfo, res => {
console.log("-------------", res)
@ -130,17 +133,20 @@ export default {
//token
this.setUserInfo(userInfo)
store.commit("setLoadingShow", false);
setTimeout(() => {
// uni.showToast({
// title: '',
// icon: 'none'
// });
uni.showToast({
title: '登录成功',
icon: 'none'
});
this.closeLogin();
}, 100)
});
} else {
// 使
store.commit("setLoadingShow", false);
this.isPhoneLogin = true
uni.showToast({
title: '请使用手机号登录',

@ -42,7 +42,7 @@
<!--其他标签-->
<view v-else :class="node.classStr" :style="node.styleStr">
<block v-for="(node, index) of node.nodes" :key="index">
<block v-for="(node, index) in node.nodes" :key="index">
<wx-parse-template :node="node"/>
</block>
</view>
@ -53,24 +53,18 @@
</template>
<script>
// #ifdef APP-PLUS | H5
import wxParseTemplate from './wxParseTemplate0';
// #endif
// #ifdef MP
import wxParseTemplate from './wxParseTemplate1';
// #endif
import wxParseImg from './wxParseImg';
import wxParseVideo from './wxParseVideo';
import wxParseAudio from './wxParseAudio';
import wxParseTable from './wxParseTable';
export default {
// #ifdef APP-PLUS | H5
name: 'wxParseTemplate',
// #endif
// #ifdef MP
name: 'wxParseTemplate0',
// #endif
props: {
node: {},
},

@ -105,7 +105,7 @@
<view class="amt_30">
<view class="an_pbl dy_fx_row" style="flex-wrap: wrap;">
<view class="w_two" v-for="(item, index) in scenicList" :key="index"
@tap="goToDetail('xiadan', item.guid)">
@tap="goToDetail('scenic', item.guid)">
<view class="">
<image :src="item.slogo" mode="aspectFill" class="pbl_1_img"></image>
<view class="h-name">{{ item.sname }}</view>
@ -147,7 +147,7 @@
<view class="amt_30">
<view class="an_pbl dy_fx_row" style="flex-wrap: wrap;">
<view class="w_two" v-for="(item, index) in foodList" :key="index"
@tap="goToDetail('xiadan', item.guid, '')">
@tap="goToDetail('food', item.guid, '')">
<view class="">
<image :src="item.logo" mode="aspectFill" class="pbl_1_img"></image>
<view class="h-name">{{ item.title }}</view>
@ -713,7 +713,9 @@ export default {
},
goToDetail: function (type, guid, region) {
if (type == "scenic") {
const list = encodeURIComponent(JSON.stringify(this.scenicList))
uni.navigateTo({
// url: "/subPageA/scenic/scenicdetial/scenicdetial?guid=" + guid + `&listA=` + list,
url: "/subPageA/scenic/scenicdetial/scenicdetial?guid=" + guid,
});
} else if (type == "food") {

@ -4,7 +4,7 @@ export const state = {
PrimaryColor: '#2979ff', //主题色
loginPopupShow:false,//控制是否打开登录弹窗
showWxLogin:false,//微信授权登录弹窗-新2022-10
loadingShow:true,//加载动画
loadingShow:false,//加载动画
chatScenesInfo:{},//扫码参数
locateInformation:{},//定位信息
currentRouter:'',//当前路径
@ -29,9 +29,9 @@ export const mutations = {
} catch (e) {}
// #endif
state[name] = data;
if (name == "userInfo"){
param.userkey = data.openid
}
// if (name == "userInfo"){
// param.userkey = data.openid
// }
}
}
},

@ -1,16 +1,19 @@
<template>
<view>
<view class="box_1">
<view class="fod_det_pic"><image :src="rootPath+foodDetail.imagelist[0]" mode="aspectFill" class="ms_top_img"></image></view>
<view class="fod_det_pic">
<image :src="rootPath + foodDetail.imagelist[0]" mode="aspectFill" class="ms_top_img"></image>
</view>
<view class="an_box_3">
<view class="an_t_1">{{ foodDetail.title }}</view>
<view class="amt_60 wc_cont">
<view :class="[zhankai > shouqi ? 'fod_det_inf' : 'fod_det_inf h_define_cont']">
<view class="lst_tit"><u-parse :content="foodDetail.content" :loading="loading" @preview="preview" @navigate="navigate" /></view>
<view @tap="opens()" :class="[zhankai > shouqi ? 'hide' : 'nr_hide']">
<view class="lst_tit"><u-parse :content="foodDetail.content" :loading="loading" @preview="preview"
@navigate="navigate" /></view>
<!-- <view @tap="opens()" :class="[zhankai > shouqi ? 'hide' : 'nr_hide']">
+ 查看详细
<image src="../../subPageA/images/btn_more.png" class="data-is-bottom"></image>
</view>
<image src="/static/animg/index/btn_more.png" class="data-is-bottom"></image>
</view> -->
<!-- 内容显示完全出现 THE END-->
<!-- <view class="amt_30"><view class="cont_end">-THE END-</view></view> -->
</view>
@ -20,17 +23,21 @@
<view class="an_box_3">
<view v-if="isShowBusiness == 'YES' && (restaurantList != null && restaurantList.length > 0)">
<view class="wc_tit_wp">
<view class="an_t"><view class="an_t_1">附近商家推荐</view></view>
<view class="an_t">
<view class="an_t_1">附近商家推荐</view>
</view>
</view>
<view @tap="goToRetaurant(item.guid)" class="amt_30" v-for="(item, index) in restaurantList" :key="index" :item-id="index" :data-year="index">
<view @tap="goToRetaurant(item.guid)" class="amt_30" v-for="(item, index) in restaurantList" :key="index"
:item-id="index" :data-year="index">
<view class="dy_fx ls_inf_box">
<image :src="item.logo" class="an_ls_img2" mode="aspectFill"></image>
<view class="fx_1 ls_txt">
<text class="lst_tit word_1">{{ item.title }}</text>
<text class="lsinf word_1">{{ item.address }}</text>
<text @click="goToNavigation(item.lng, item.lat, item.address, item.title)" class="lsinf">{{ item.distance }}</text>
<text @click="goToNavigation(item.lng, item.lat, item.address, item.title)" class="lsinf">{{ item.distance
}}</text>
</view>
</view>
@ -59,32 +66,32 @@ export default {
lon: '',
lat: '',
isShowBusiness: 'NO',
rootPath:this.$config.ROOTPATH,
netType:true
rootPath: this.$config.ROOTPATH,
netType: true
};
},
onLoad: function(option) {
onLoad: function (option) {
var that = this;
this.$util.getNetworkType(
function(res){
if(res.networkType === 'none'){
function (res) {
if (res.networkType === 'none') {
uni.showToast({
title:that.$param.netMsg,
icon:"none",
duration:2000
title: that.$param.netMsg,
icon: "none",
duration: 2000
})
that.netType = false;
}
},function(){
}, function () {
uni.showToast({
title:that.$param.netMsg,
icon:"none",
duration:2000
title: that.$param.netMsg,
icon: "none",
duration: 2000
})
that.netType = false;
}
)
if(!that.netType){
if (!that.netType) {
return;
}
this.$util.hideLoadingByTime();
@ -96,7 +103,7 @@ export default {
that.$util.saveOperatorLog(that, 'FOOD', option.fid);
},
methods: {
getIsShow: function() {
getIsShow: function () {
var that = this;
this.$Request
.post(this.$config.getSysParamFormRegion, {
@ -117,7 +124,7 @@ export default {
navigate(href, e) {
// do something
},
getFoodDetail: function(guid, region) {
getFoodDetail: function (guid, region) {
var that = this;
var data = {
userkey: this.$param.userkey,
@ -141,10 +148,10 @@ export default {
this.foodDetail = data;
});
},
opens: function() {
opens: function () {
(this.zhankai = 1), (this.shouqi = 0);
},
goToNavigation: function(lon, lat, address, businessname) {
goToNavigation: function (lon, lat, address, businessname) {
// #ifdef H5
if (this.$wechat.isWechat()) {
@ -193,7 +200,7 @@ export default {
}
]
},
function(e) {
function (e) {
switch (e.index) {
case 1:
plus.runtime.openURL(urlBaiduMap);
@ -212,7 +219,7 @@ export default {
}
// #endif
},
goToRetaurant: function(guid) {
goToRetaurant: function (guid) {
uni.navigateTo({
url: '/subPageA/store/storedetail/storedetail?id=' + guid
});
@ -233,8 +240,20 @@ export default {
.fod_det_bt:after{ display: block; content: ''; width: 524rpx; margin: 0 auto; margin-top:30rpx;height: 16rpx; background:url(/subPageA/images/bg_ms.png) no-repeat center; }
.mssj_jul:before{ content: '';display: inline-block; width: 38rpx; height: 38rpx; background:url(/subPageA/images/icn_mi.png) no-repeat; background-size: 100%; margin-right: 5rpx; position: relative; top:6rpx} */
.nr_hide{ height:76rpx ;}
.nr_hide {
height: 76rpx;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.data-is-bottom {
width: 30rpx;
height: 30rpx;
padding: 0;
margin-left: 15rpx;
}
</style>

@ -10,12 +10,10 @@
<!-- {{ name }}文旅APP -->
</view>
<view class="nr_cot">
"鹿泉E码游"平台是利用物联网云计算大数据人工智能技术打造的中国第一世界一流"的全域旅游数字化平台。为游客提供""的智慧旅行服务,打造诚信消费的环境与快捷投诉的管理体系,实现"游客体验自由自在政府服务无处不在全面助推鹿泉旅游产业转型升级数字经济创新与实践建设一个智能健康便利的云南全域旅游生态
鹿泉E码游平台是专为鹿泉区旅游打造的综合性服务平台通过整合当地旅游资源提供在线预订智能导览信息查询等功能游客只需扫描一个二维码即可轻松获取等全方位服务实现一码在手畅游鹿泉的目的
</view>
</view>
<view class="tips">
©技术由鹿泉单位提供
</view>
<!-- <view class="bot_about_k an_t_2">
查看
<view @tap="goToPage('xieyi')" class="t_col_1">用户协议</view>

File diff suppressed because it is too large Load Diff

@ -47,7 +47,7 @@
<view class="an_box_3">
<view class="wc_tit_wp">
<view :style="chaType" class="an_t">
<view class="an_t_1">精品推荐</view>
<!-- <view class="an_t_1">精品推荐</view> -->
</view>
</view>

@ -343,7 +343,6 @@
that.guid = guid;
that.region = region;
that.getRedisData();
that.getWeather();
that.getMsgList(guid);
},function(){
uni.showToast({
@ -398,7 +397,6 @@
this.region = data.bm;
this.getRedisData(); //
this.getMsgList(data.guid); //
this.getWeather();
// this.getVideoUrl(data.bm);
},
bindDateChange: function(e) {
@ -475,36 +473,6 @@
}
})
},
getWeather: function() {
var that = this;
var data = {
"region": this.region
}
this.$Request.post(this.$config.getWeather, data).then(res => {
var flag = that.$util.isSuccess(res);
if(!flag){
return;
}
this.weather = res.data.cond_txt_d;
this.tmpmin = res.data.tmp_min
this.tmpmax = res.data.tmp_max
if (this.weather.indexOf("雷") != -1) {
this.weatherImgUrl = "/subPageB/static/img/whe_lei.png";
} else if (this.weather.indexOf("雨") != -1) {
this.weatherImgUrl = "/subPageB/static/img/whe_yu.png";
} else if (this.weather.indexOf("雾") != -1) {
this.weatherImgUrl = "/subPageB/static/img/whe_wu.png";
} else if (this.weather.indexOf("阴") != -1) {
this.weatherImgUrl = "/subPageB/static/img/whe_yin.png";
} else if (this.weather.indexOf("雪") != -1) {
this.weatherImgUrl = "/subPageB/static/img/whe_xue.png";
} else if (this.weather.indexOf("晴") != -1) {
this.weatherImgUrl = "/subPageB/static/img/whe_sun.png";
} else {
this.weatherImgUrl = "/subPageB/static/img/whe_cloudy.png";
}
})
},
getDate(type) {
const date = new Date();
let year = date.getFullYear();

@ -4,7 +4,7 @@
title="智能客服" @clickLeft="back" />
<!-- -->
<scroll-view id="scrollview" scroll-y="true" :style="{height:style.contentViewHeight+'px'}"
<scroll-view id="scrollview" class="jqr_dig_scroll" scroll-y="true" :style="{height:style.contentViewHeight+'px'}"
:scroll-with-animation="true" :scroll-top="scrollTop">
<view id="msgview" class="user-box" :class="item.typestyle" v-for="(item,index) in messages" :key="index">
<view class="quanbao">
@ -408,7 +408,7 @@ innerAudioContext.autoplay = true;
}
.me{
align-items: end;
align-items: flex-end;
}
.b_tol_ipt{
@ -426,7 +426,7 @@ innerAudioContext.autoplay = true;
}
.jqr_tol{
height: fit-content;
padding: 50rpx 0 ;
padding:20rpx 0 50rpx 0 ;
}
.jpan_mode{
display: flex;
@ -442,4 +442,12 @@ innerAudioContext.autoplay = true;
height: fit-content;
}
}
.jqr_dig_scroll{
padding-bottom: 150rpx;
}
.jqr_tol_box{
height: fit-content;
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

@ -188,7 +188,7 @@ export default {
"appid": uni.getStorageSync("userInfo").openid,
"dataType": that.type
}
this.$Request.get(this.$config.pageComplaintinfo, data).then(res => {
this.$Request.get(this.$config.pageComplaintinfo, data, null, null, false, false).then(res => {
var data = res.data.list;
if (data != null && data.length > 0) {

File diff suppressed because it is too large Load Diff

@ -39,10 +39,11 @@
},
data(){
return {
weatherSrc:'https://uhr-sit-1302914566.cos.ap-guangzhou.myqcloud.com/uhr/image/2021-12-03/4d2f843f-bc89-4ba4-b5eb-8da5f176703e.png',
weather:'多云',
city:'北京市',
temperature:'34'
// weatherSrc:'https://uhr-sit-1302914566.cos.ap-guangzhou.myqcloud.com/uhr/image/2021-12-03/4d2f843f-bc89-4ba4-b5eb-8da5f176703e.png',
weatherSrc:'https://plugin.tianqistatic.com/static/images/tqicon1big/b0.png',
weather:'晴朗',
city:'鹿泉区',
temperature:'25'
}
},
methods:{

Loading…
Cancel
Save