添加攻略列表,标题栏修改

dev
Tuzki 2 years ago
parent e0ceb442db
commit c7134ac160
  1. 13
      pages.json
  2. 12
      pages/fuwu/fuwu.vue
  3. 292
      pages/method/methodlist/methodlist.css
  4. 446
      pages/method/methodlist/methodlist.vue
  5. BIN
      static/animg/f_gl.png

@ -52,6 +52,17 @@
"navigationBarTitleText": "内部交通"
}
},
{
"path": "pages/method/methodlist/methodlist",
"style": {
"navigationBarTitleText": "攻略",
"app-plus": {
"titleNView": {
"type": "transparent"
}
}
}
},
{
"path": "pages/method/methoddetail/methoddetail",
"style": {
@ -196,7 +207,7 @@
}, {
"path": "pages/fuwu/fuwu",
"style": {
"navigationBarTitleText": "文旅服务"
"navigationBarTitleText": "游客服务"
}
}, {
"path": "pages/feiyi/feiyilist/feiyilist",

@ -38,6 +38,10 @@
<image src="../../static/animg/feiyi.png" class="at_size_1" mode="aspectFill"></image>
<view class="at_t">非遗</view>
</view>
<view class="w_20" @click="goToPages('gonglv')">
<image src="../../static/animg/f_gl.png" class="at_size_1" mode="aspectFill"></image>
<view class="at_t">攻略</view>
</view>
</view>
</view>
</view>
@ -91,19 +95,23 @@ export default {
});
} else if (type == 'xingqu') {
} else if (type == 'yuyue') {
if (!uni.getStorageSync('unionid')||uni.getStorageSync('unionid')==''||uni.getStorageSync('unionid')==null) {
if (!uni.getStorageSync('unionid') || uni.getStorageSync('unionid') == '' || uni.getStorageSync('unionid') == null) {
uni.showToast({
title: '请先到个人中心进行授权',
icon: 'none',
duration: 2000
});
return;
} else {
uni.navigateTo({
url: `/sunPackIndex/scenic/subscribe/yuyue/yue_time_js`
});
}
} else if (type == 'gonglv') {
uni.navigateTo({
url: '/pages/method/methodlist/methodlist'
});
} else if (type == 'video') {
uni.navigateTo({
url: '/pages/video/videolist/videolist'

@ -0,0 +1,292 @@
page {
height: 100%;
overflow-y: hidden;
position: relative;
}
.search-container {
width: 100%;
height: 100%;
overflow: hidden;
position: relative;
background: #fff;
z-index: 3;
}
.search-tip-bar {
display: flex;
height: 60rpx;
justify-content: space-between;
border-bottom: 2rpx solid #e5e5e5;
}
.search-tip-item {
width: 33.333333%;
height: 60rpx;
line-height: 60rpx;
text-align: center;
font-size: 28rpx;
}
.search-tip-item:after {
content: "";
display: inline-block;
width: 0;
height: 0;
vertical-align: middle;
margin: -2rpx 0 0 6rpx;
border-top: 8rpx solid #666;
border-left: 8rpx solid transparent;
border-right: 8rpx solid transparent;
}
.search-tip-item.active:after {
border-bottom: 8rpx solid #666;
border-left: 8rpx solid transparent;
border-right: 8rpx solid transparent;
border-top: 0;
}
.scroll-view {
position: absolute;
top: 80rpx;
right: 0;
left: 0;
bottom: 0;
z-index:4;
}
.list-container {
width: 100%;
background: #fff;
}
.list-wrap {
width: 100%;
padding: 0 30rpx;
box-sizing: border-box;
}
.list-item {
display: flex;
padding: 30rpx 0;
border-bottom: 1px solid #e1e1e1;
}
.list-item .item-pic {
width: 280rpx;
height: 180rpx;
border-radius: 6rpx;
}
.list-item .item-info {
flex: 1;
margin-left: 20rpx;
}
.list-item .item-info .title {
max-height: 76rpx;
line-height: 38rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
font-size: 32rpx;
}
.list-item .item-info .attr .tip {
display: inline-block;
height: 32rpx;
border: 1rpx solid #15D5AE;
font-size: 20rpx;
color: #15D5AE;
line-height: 32rpx;
margin-right: 12rpx;
padding: 0 5rpx;
border-radius: 5rpx;
}
.list-item .item-info .data {
display: flex;
margin-top: 10rpx;
justify-content: space-between;
}
.list-item .item-info .data .sell,.list-item .item-info .data .myd {
font-size: 28rpx;
color: #969696;
height: 120rpx;
padding: 0 5rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
margin-top: 5rpx;
line-height: 40rpx;
}
.list-item .item-info .data .price {
color: #646464;
font-size: 24rpx;
}
.list-item .item-info .data .price .num {
color: #ff6c00;
font-size: 32rpx;
}
.sort-page {
position: absolute;
top: 62rpx;
right: 0;
bottom: 0;
left: 0;
z-index: 10;
background: rgba(0,0,0,.5);
}
.sort-group {
background: #fff;
}
.sort-item {
color: #666;
height: 78rpx;
line-height: 78rpx;
padding: 0 30rpx;
position: relative;
font-size: 28rpx;
border-bottom: 2rpx solid #e5e5e5;
}
.sort-item-active {
color: #eb5e18;
}
.sort-item-active:after {
content: "";
display: inline-block;
width: 22rpx;
height: 18rpx;
position: absolute;
top: 50%;
right: 20rpx;
margin-top: -14rpx;
background: url("") center no-repeat;
background-size: contain;
}
.filter-page {
position: absolute;
top: 62rpx;
right: 0;
bottom: 0;
left: 0;
z-index: 10;
background: #fff;
}
.filter-box {
display: -webkit-box;
position: absolute;
top: 0;
right: 0;
bottom: 108rpx;
left: 0;
}
.filter-hd {
width: 220rpx;
height: 100%;
background: #f2f6f9;
}
.filter-hd-item {
height: 80rpx;
line-height: 80rpx;
padding: 0 20rpx;
position: relative;
font-size: 28rpx;
}
.filter-hd-item-active,.filter-bd-item-active {
color: #eb5e18;
background: #fff;
}
.filter-bd-item-active:after {
content: "";
display: inline-block;
width: 22rpx;
height: 18rpx;
position: absolute;
top: 50%;
right: 20rpx;
margin-top: -14rpx;
background: url("") center no-repeat;
background-size: contain;
}
.filter-bd {
height: 100%;
-webkit-box-flex: 1;
padding: 0 20rpx;
}
.filter-bd-item {
height: 78rpx;
line-height: 78rpx;
padding: 0 20rpx;
position: relative;
font-size: 28rpx;
border-bottom: 2rpx solid #e5e5e5;
}
.control-bar-block {
display: -webkit-box;
height: 80rpx;
padding: 14rpx 20rpx;
position: absolute;
right: 0;
bottom: 0;
left: 0;
background: #fafafa;
}
.control-back-btn {
color: #8a8a8a;
width: 170rpx;
height: 76rpx;
line-height: 76rpx;
margin-right: 20rpx;
text-align: center;
border: 2rpx solid #b8b8b8;
border-radius: 10rpx;
font-size: 26rpx;
}
.control-confirm-btn {
color: #fff;
height: 80rpx;
line-height: 80rpx;
text-align: center;
-webkit-box-flex: 1;
font-size: 30rpx;
border-radius: 10rpx;
background: #eb5e18;
}
.goTop {
height: 80rpx;
width: 80rpx;
position: fixed;
bottom: 50rpx;
right: 30rpx;
border-radius: 50%;
}

@ -0,0 +1,446 @@
<template>
<!-- <mescroll-uni :up="upOption" @down="downCallback" @up="upCallback"> -->
<view class="">
<view class="an_box_mes wc_sbox pb_15">
<view class="dy_fx an_sch">
<view class="fx_1">
<input v-model="searchValue" @confirm="search" type="text" class="an_sch_ipt" confirm-type="search" placeholder-style="color:#999" placeholder="输入攻略名称" />
</view>
<view class="an_sch_img" @click="search"><image src="../../../static/animg/icon-search.png" class="ac_size_1"></image></view>
</view>
</view>
<scroll-view @scroll="onReachScroll" @bindscrolltolower="lower" class="scroll-view" :scroll-top="topNum" scrollY="true">
<view class="">
<view class="aml_30 amr_30">
<navigator
class="amt_30"
hover-class="none"
:url="'/pages/method/methoddetail/methoddetail?guid=' + itemName.guid"
v-for="(itemName, index) in listDatas"
:key="index"
>
<view class="dy_fx ls_inf_box">
<image class="an_ls_img2" :src="itemName.logo" mode="aspectFill"></image>
<view class="fx_1 ls_txt">
<view class="lst_tit word_1">{{ itemName.mtitle }}</view>
<view class="data">
<view class="lsinf word_2">{{ itemName.mcontent }}</view>
</view>
</view>
</view>
</navigator>
</view>
</view>
<!-- <view class="data-loading" v-if="param.loading">
<image class="icon" src="../../../static/images/loading-icon.png"></image>
加载中
</view> -->
<view class="data-is-bottom" v-if="param.finished">{{ this.$param.pageMsg }}</view>
<!-- <view class="no-data-info" v-if="param.noData">{{ this.$param.dataMsg }}</view> -->
</scroll-view>
<view class="sort-page" :hidden="selectedParam.hiddenSortPanel">
<view class="sort-group">
<view
@tap="selected"
:class="[pageClass.sortItemClass, selectedParam.sortId == item.id ? 'sort-item-active' : '']"
data-panel="hiddenSortPanel"
data-type="sortId"
:data-id="item.id"
v-for="(item, index) in filter.sort"
:key="index"
>
{{ item.name }}
</view>
</view>
</view>
<view class="sort-page" :hidden="selectedParam.hiddenRegionPanel">
<view class="sort-group">
<view
@tap="regionSelected"
:class="[pageClass.sortItemClass, selectedParam.bm == item.bm ? 'sort-item-active' : '']"
data-panel="hiddenRegionPanel"
:data-name="item.title"
data-type="bm"
:data-id="item.bm"
v-for="(item, index) in regionList"
:key="index"
>
{{ item.title }}
</view>
</view>
</view>
</view>
<!-- </mescroll-uni> -->
</template>
<script>
export default {
data() {
return {
searchItemClass: 'search-tip-item',
pageClass: {
sortItemClass: 'sort-item',
filterHdItemClass: 'filter-hd-item',
filterBdItem: 'filter-bd-item'
},
priceSymbol: '',
destinationBak: 'all',
destination: 'all',
filter: [],
regionList: [],
parentLevelItem: 'attribute_htype',
defaultFilter: {},
latitude: 0,
longitude: 0,
selectedFIlterBak: {
price: 0
},
selectedFIlter: {
attribute_htype: 0
},
selectedParam: {
sortId: 3,
bm: '',
hiddenSortPanel: !0,
hiddenAttributePanel: !0,
hiddenRegionPanel: !0
},
param: {
page: 1,
noData: !1,
loading: !1,
finished: !1
},
listDatas: [],
topNum: 0,
rootPaht: this.$config.ROOTPATH,
regions: '',
regionname: '区域',
searchValue:"",
netType:true
};
},
onLoad(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();
uni.showLoading({
title: '加载中',
mask: true
});
var region = option.region;
this.initData();
this.getRedisRegion();
this.get_attribute();
if (region == undefined || region == null || region == '') {
this.getRedisData();
} else {
this.selectedParam.bm = region;
this.get_data(region);
}
that.$util.saveOperatorLog(that, 'FUN', '攻略');
},
onShow() {
this.destinationBak != this.destination && (this.initData(), this.get_data());
},
methods: {
initData: function() {
uni.showLoading({
title: '加载中',
mask: true
});
var param = {};
param.page = 1;
param.noData = false;
param.finished = false;
this.param = param;
this.listDatas = [];
this.destinationBak = this.destination;
},
selected: function(event) {
this.initData();
var dataset = event.currentTarget.dataset;
var param = this.selectedParam;
param[dataset.type] = dataset.id;
param.hiddenSortPanel = !0;
//console.log(dataset.id);
this.selectedParam = param;
this.get_data();
},
regionSelected: function(event) {
this.initData();
var dataset = event.currentTarget.dataset;
var param = this.selectedParam;
param[dataset.type] = dataset.id;
param.hiddenRegionPanel = !0;
//console.log(dataset.id);
this.selectedParam = param;
this.regions = param.bm;
this.regionname = dataset.name;
this.get_data();
},
changePanel: function(event) {
var dataSet = event.currentTarget.dataset,
selectedParam = this.selectedParam;
'hiddenSortPanel' == dataSet.type ? (selectedParam.hiddenAttributePanel = !0,selectedParam.hiddenRegionPanel = !0) : (selectedParam.hiddenSortPanel = !0),
(selectedParam[dataSet.type] = !selectedParam[dataSet.type]),
(this.selectedParam = selectedParam);
},
changeRegionPanel: function(event) {
var dataSet = event.currentTarget.dataset,
selectedParam = this.selectedParam;
if ('hiddenRegionPanel' == dataSet.type) {
selectedParam.hiddenAttributePanel = !0;
selectedParam.hiddenSortPanel = !0;
} else {
selectedParam.hiddenRegionPanel = !0;
}
(selectedParam[dataSet.type] = !selectedParam[dataSet.type]), (this.selectedParam = selectedParam);
},
resetFilter: function() {
this.selectedFIlter = this.defaultFilter;
},
confirmClick: function() {
this.initData();
//
var selectedParam = this.selectedParam;
(selectedParam.hiddenAttributePanel = true), (this.selectedFIlterBak = this.selectedFIlter);
this.parentLevelItem = 'attribute_htype';
this.selectedParam = selectedParam;
this.get_data();
},
parentLevel: function(t) {
var currentTarget = t.currentTarget.dataset;
//console.log("aaaaaaaaaaaaaaaaa"+a.parentlevelitem);
this.parentLevelItem = currentTarget.parentlevelitem;
},
childLevel: function(t) {
var a = t.currentTarget.dataset,
e = this.selectedFIlter;
this.selectedFIlterBak = e;
e[a.type] = a.id;
this.selectedFIlter = e;
},
getRedisRegion: function() {
var data = {
key: this.$param.userkey + '_mdd_list'
};
this.$Request.post(this.$config.getRedisData, data).then(res => {
if (res.status == 200) {
this.regionList = res.data.mddList;
var all = {
bm: '',
title: '全部'
};
this.regionList.unshift(all);
for (var i = 0; i < this.regionList.length; i++) {
if (this.regionList[i].bm == this.selectedParam.bm) {
this.regionname = this.regionList[i].title;
}
}
} else {
this.getRegion();
}
});
},
getRegion: function() {
var that = this;
var url = this.$config.getMessageInfoFormFilter;
var data = {
type: this.$param.mddType,
userkey: this.$param.userkey,
pageSize: 100,
sort: '2'
};
this.$Request.post(url, data).then(res => {
var flag = that.$util.isSuccess(res);
if (!flag) {
return;
}
that.regionList = res.data;
var all = {
bm: '',
title: '全部'
};
that.regionList.unshift(all);
for (var i = 0; i < that.regionList.length; i++) {
if (that.regionList[i].bm == that.selectedParam.bm) {
that.regionname = that.regionList[i].title;
}
}
});
},
search: function() {
this.initData();
this.get_data();
},
get_attribute: function() {
var that = this;
var url = this.$config.getCondition;
var data = {
type: 'method',
userkey: this.$param.userkey
};
this.$Request.post(url, data).then(res => {
var flag = that.$util.isSuccess(res);
if (!flag) {
return;
}
this.filter = res.data;
});
},
onReachScroll: function(t) {
//console.log(t);
t.detail.scrollTop > 50 ? (this.floorstatus = true) : (this.floorstatus = false);
var a = this.param;
a.noData || a.finished || a.loading || this.get_data();
},
getRedisData: function() {
var that = this;
var data = {
key: this.$param.userkey + '_method_list'
};
that.$Request.post(that.$config.getRedisData, data).then(res => {
if (res.status == 200) {
var listDatas = that.listDatas,
dataListLen = res.data.methodList.length,
data = res.data.methodList;
if (
(dataListLen == 10 ? (this.param.page += 1) : (this.param.page = 1 && 0 == dataListLen ? (this.param.noData = true) : (this.param.finished = true)),
(this.param.loading = false),
dataListLen > 0)
) {
for (var i = 0; i < dataListLen; i++) {
var item = {
guid: data[i].guid,
logo: this.rootPaht + data[i].logo,
mtitle: data[i].title,
muser: data[i].subtitle,
sendtime: data[i].sendtime,
browsenum: data[i].browsenum,
mcontent: data[i].content
};
this.listDatas.push(item);
}
uni.hideLoading();
}
} else {
that.get_data();
}
});
},
get_data: function() {
this.param.loading = true;
var region = this.selectedParam.bm;
var that = this;
var url = this.$config.getMessageInfoFormFilter;
var data = {
type: this.$param.methodType,
userkey: this.$param.userkey,
pageno: this.param.page,
pageSize: 10,
region: region,
sort: this.selectedParam.sortId,
lng: this.$param.clng,
lat: this.$param.clat,
title:this.searchValue
};
this.$Request.post(url, data).then(res => {
var flag = that.$util.isSuccess(res);
if (!flag) {
uni.hideLoading();
return;
}
var listDatas = this.listDatas,
dataListLen = res.data.length;
if (
(dataListLen == data.pageSize ? (this.param.page += 1) : (this.param.page = 1 && 0 == dataListLen ? (this.param.noData = true) : (this.param.finished = true)),
(this.param.loading = false),
dataListLen > 0)
) {
for (var i = 0; i < dataListLen; i++) {
var item = {
guid: res.data[i].guid,
logo: this.rootPaht + res.data[i].logo,
mtitle: res.data[i].title,
muser: res.data[i].subtitle,
sendtime: res.data[i].sendtime,
browsenum: res.data[i].browsenum,
mcontent: res.data[i].content
};
this.listDatas.push(item);
}
//console.log(this.param.finished);
}
uni.hideLoading();
});
},
delHtmlTag: function(str) {
var temp = str.replace(/<\/?.+?>/g, '');
var result = temp.replace(/ /g, '');
return result.replace(/&nbsp;/gi, '');
}
/* requestLocation:function(){
this.longitude = 31.22;
uni.getLocation({
type: 'wgs84',
success: function (res) {
this.longitude = res.longitude;
this.latitude = res.latitude;
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
}
});
} */
}
};
</script>
<style>
/* @import url('../../../static/css/common.css'); */
/* @import url('methodlist.css'); */
.scroll-view {
top: 100rpx;
}
.sort-page{ top:295rpx}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Loading…
Cancel
Save