248 lines
5.2 KiB
Vue
248 lines
5.2 KiB
Vue
<template>
|
||
<view class="page-news-list">
|
||
<view class="create-icon" @click="createNews">
|
||
发帖
|
||
</view>
|
||
<view class="header-category">
|
||
<view class="category-title">
|
||
分类:
|
||
</view>
|
||
<view v-for="(item, s) in arealist" :key="s" class="category-list">
|
||
<view class="info-item color-blue" :data-cat_id="item.id" @click="getCat">
|
||
{{item.category_name}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view v-for="(item, i) in addresslist" :key="i" class="news-list">
|
||
<view class="news-item">
|
||
<view class="news-content">
|
||
{{item.category_content}}
|
||
</view>
|
||
<view class="news-info-block">
|
||
<!-- <view class="info-item">
|
||
分类
|
||
</view> -->
|
||
<view class="info-item" v-if="(item.message_keywords)">
|
||
{{item.message_keywords}}
|
||
</view>
|
||
<view class="info-item" v-if="(item.message_area_name)">
|
||
{{item.message_area_name}}
|
||
</view>
|
||
</view>
|
||
<view class="address-info">
|
||
{{item.message_full_area}}
|
||
</view>
|
||
<view class="address-info">
|
||
{{item.message_username}}:{{item.message_mobile}}
|
||
</view>
|
||
<view class="news-info-block">
|
||
<view class="img-item" v-for="(img, t) in item.images" :key="t">
|
||
<image :src="img" ></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
|
||
<script>
|
||
import {
|
||
mapState,
|
||
mapMutations
|
||
} from 'vuex'
|
||
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
options:{},
|
||
addresslist: [],
|
||
arealist:[],
|
||
isdata: false,
|
||
spid: "",
|
||
cat_id: 0,
|
||
ud_id: 0
|
||
}
|
||
},
|
||
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
|
||
onLoad: function(options) {
|
||
uni.setNavigationBarTitle({
|
||
title:this.__('信息列表')
|
||
});
|
||
|
||
this.setData({
|
||
ud_id: options.ud_id || 0,
|
||
spid: options.spid || "",
|
||
options: options,
|
||
isdata: false
|
||
});
|
||
|
||
var that = this;
|
||
this.GetAddressList();
|
||
|
||
that.notice.addNotification("RefreshAddress", that.RefreshMethod, that);
|
||
},
|
||
onShow: function() {
|
||
},
|
||
onUnload: function() {
|
||
// 离开页面,注销事件
|
||
var that = this
|
||
this.notice.removeNotification("RefreshAddress", that);
|
||
},
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function () {
|
||
this.GetAddressList();
|
||
},
|
||
methods: {
|
||
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
|
||
RefreshMethod: function() {
|
||
console.info('.........RefreshMethod');
|
||
this.GetAddressList()
|
||
},
|
||
getCat: function (e) {
|
||
this.setData({
|
||
cat_id: e.target.dataset.cat_id
|
||
}), this.GetAddressList()
|
||
},
|
||
GetAddressList: function() {
|
||
var that = this;
|
||
var params = {
|
||
message_area : that.cat_id
|
||
};
|
||
|
||
that.setData({
|
||
isdata: false,
|
||
addresslist: [],
|
||
arealist: []
|
||
});
|
||
|
||
that.$.request({
|
||
url: that.Config.URL.user.serviceMessage,
|
||
data: params,
|
||
success: function(data, status, msg, code) {
|
||
if (200 == status) {
|
||
if (data.items.length > 0) {
|
||
|
||
//that.addresslist = data.items;
|
||
|
||
that.setData({
|
||
isdata: true,
|
||
addresslist: data.items,
|
||
arealist: data.area
|
||
});
|
||
console.log(data.area);
|
||
} else {
|
||
that.setData({
|
||
isdata: false
|
||
});
|
||
}
|
||
}
|
||
|
||
uni.stopPullDownRefresh()
|
||
}
|
||
});
|
||
},
|
||
EditAddress: function(obj) {
|
||
var that = this;
|
||
var options = this.options;
|
||
options.ud_id = obj.currentTarget.dataset.ud_id;
|
||
|
||
if (that.ud_id != 0) {
|
||
that.$.redirectTo({
|
||
url: that.$.createUrl("/member/address/manage", options)
|
||
});
|
||
} else {
|
||
that.$.navigateTo({
|
||
url: that.$.createUrl("/member/address/manage", options)
|
||
});
|
||
}
|
||
},
|
||
createNews(){
|
||
this.$.gotopage('/pagesub/info/edit')
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.news-list{
|
||
padding: 10px;
|
||
}
|
||
.news-item{
|
||
background: #fff;
|
||
padding: 10px;
|
||
border-radius: 10px;
|
||
margin-bottom: 10px;
|
||
}
|
||
.news-content{
|
||
font-size: 14px;
|
||
color: #212121;
|
||
margin-bottom: 5px;
|
||
}
|
||
.news-info-block{
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
}
|
||
.info-item{
|
||
font-size: 12px;
|
||
margin: 0 5px;
|
||
background: rgba(0,0,0,.3);
|
||
border-radius: 3px;
|
||
padding: 0 5px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: #ffffff;
|
||
margin-bottom: 5px;
|
||
&.color-blue{
|
||
background: #275688;
|
||
}
|
||
}
|
||
.address-info{
|
||
margin: 5px 0;
|
||
font-size: 12px;
|
||
}
|
||
.img-item{
|
||
width: 33%;
|
||
display: flex;
|
||
justify-content: center;
|
||
margin-bottom: 10px;
|
||
image{
|
||
width: 100px;
|
||
height: 100px;
|
||
}
|
||
}
|
||
.header-category{
|
||
padding: 10px;
|
||
display: flex;
|
||
align-items: flex-start;
|
||
background: #fff;
|
||
}
|
||
.category-title{
|
||
flex-shrink: 0;
|
||
font-size: 12px;
|
||
margin-right: 5px;
|
||
}
|
||
.category-list{
|
||
display: flex;
|
||
}
|
||
.create-icon {
|
||
position: fixed;
|
||
bottom: 10%;
|
||
right: 20px;
|
||
width: 50px;
|
||
height: 50px;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: #fff;
|
||
background-color: rgba(0,0,0,.4);
|
||
font-size: 14px;
|
||
z-index: 10;
|
||
}
|
||
</style>
|