You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

208 lines
5.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="content">
<view class="contentlist">
<block v-for="(item,index) in noticeList" :key="index">
<view class="content_box">
<view class="content_title" @click="showwhat(index)">
<view class="infoicon">
<u-icon size="16" color="#42b983" name="info-circle-fill"></u-icon>
<text>{{item.name}}</text>
</view>
<u-icon v-if="!item.shownotice" size="16" name="arrow-down"></u-icon>
<u-icon v-if="item.shownotice" size="16" name="arrow-up"></u-icon>
</view>
<view class="content_info" v-if="item.shownotice">
<rich-text style="text-indent: 2em;font-size: 28rpx;" :nodes="item.content"></rich-text>
</view>
</view>
</block>
<view class="content_box">
<view class="content_title" @click="showwhat('showform')">
<view class="infoicon">
<u-icon size="16" color="#42b983" name="info-circle-fill"></u-icon>
<text>意见建议</text>
</view>
<u-icon v-if="!show.showform" size="16" name="arrow-down"></u-icon>
<u-icon v-if="show.showform" size="16" name="arrow-up"></u-icon>
</view>
<view class="content_info" v-if="show.showform">
<u-form labelPosition="top" :model="form">
<u-form-item label="手机号" prop="mobile" labelWidth="60px" required>
<u-input v-model="form.mobile" placeholder="请输入手机号"></u-input>
</u-form-item>
<u-form-item label="内容" prop="content" labelWidth="60px" required>
<u-textarea v-model="form.content" placeholder="请输入内容"></u-textarea>
</u-form-item>
</u-form>
<u-button type="primary" @click="tosubmit"></u-button>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
notice: {},
ask: {},
form: {
mobile: "",
content: ""
},
show: {
shownotice: false,
showask: false,
showform: false
},
urls: {
1: '/api/mobile/other/visit-notice-index',
4: '/api/mobile/other/ask-index'
},
noticeList: []
}
},
onLoad() {
var that = this;
that.loadList(1, 1)
//that.loadList(1, 4)
},
onShareAppMessage() {
return this.util.shareInfo
},
methods: {
showwhat(type) {
if (type == "showform")
this.show[type] = !this.show[type];
else
this.noticeList[type].shownotice = !this.noticeList[type].shownotice;
this.$forceUpdate();
},
loadList(page, type) {
var that = this;
this.util.request({
api: this.urls[type],
data: {
page: page
},
utilSuccess: function(res) {
if (type == 1)
that.notice = res.data[0];
if (type == 4)
that.ask = res.data[0];
for (var mod of res.data) {
mod.shownotice = false;
}
that.noticeList = res.data
},
utilFail: function(res) {
uni.showToast({
icon: "none",
title: res
})
}
})
},
tosubmit() {
let that = this;
if (this.util.isNull(that.form.mobile)) {
this.util.toast("请填写手机号!");
return false;
} else {
if (!uni.$u.test.mobile(that.form.mobile)) {
this.util.toast("请填写正确的手机号!");
return false;
}
}
if (this.util.isNull(that.form.content)) {
this.util.toast("请填写内容!");
return false;
}
this.util.request({
api: '/api/mobile/other/tip-store',
data: this.form,
method: "POST",
utilSuccess: function(res) {
that.newsSubscription();
},
utilFail: function(res) {
that.util.toast(res);
}
})
},
newsSubscription() {
uni.getSetting({
withSubscriptions: true, //是否获取用户订阅消息的订阅状态默认false不返回
success(res) {
if (res.authSetting['scope.subscribeMessage']) {
uni.redirectTo({
url: '/pages/success/success?from=feed'
})
} else {
// 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息
uni.requestSubscribeMessage({
tmplIds: ['gPP22-SXuJmK9ffJZTNOSdq56Q2RmD2Qdg8ntteAO-Y'],
success(res) {
uni.showToast({
title: '订阅成功'
})
uni.redirectTo({
url: '/pages/success/success?from=feed'
})
}
})
}
}
});
}
}
}
</script>
<style>
page {
background: #f7f6f4;
}
.content {
padding: 0 24rpx 60rpx 24rpx;
min-height: 100vh;
background: #fff;
}
.content_box {
/* background: #FFFFFF;
border-radius: 16rpx;
padding: 30rpx 21rpx;
margin-bottom: 25rpx; */
}
.content_title {
padding: 26rpx 0;
border-bottom: #ddd 1rpx solid;
font-size: 32rpx;
color: #351C1B;
display: flex;
justify-content: space-between;
}
.infoicon view {
display: inline-block !important;
margin-right: 20rpx
}
.content_info {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #828282;
line-height: 40rpx;
padding-top: 32rpx;
}
</style>