feat: 添加惠企政策及问答模块功能
- 新增惠企政策分类及列表页面,支持图片展示及发布时间格式化 - 添加问答模块,包括提问、回答、图片上传及预览功能 - 实现问答列表、详情及用户列表的分页加载 - 优化导航栏样式及交互逻辑
This commit is contained in:
parent
2a4185923f
commit
1cc556a15c
@ -77,21 +77,6 @@
|
|||||||
"router" : {
|
"router" : {
|
||||||
"base" : ""
|
"base" : ""
|
||||||
},
|
},
|
||||||
"template" : "",
|
"template" : ""
|
||||||
"devServer" : {
|
|
||||||
"port" : 80,
|
|
||||||
"https" : false,
|
|
||||||
"disableHostCheck" : true,
|
|
||||||
"proxy" : {
|
|
||||||
"/api" : {
|
|
||||||
"target" : "http://192.168.3.130", //域名
|
|
||||||
"changeOrigin" : true,
|
|
||||||
"secure" : false,
|
|
||||||
"pathRewrite" : {
|
|
||||||
"^/api" : "/api"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="false" backgroundColor="#FFFFFF">
|
<tn-nav-bar customBack :bottomShadow="false" backgroundColor="transparent">
|
||||||
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-between">
|
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-center">
|
||||||
<view class="tn-flex tn-flex-col-center tn-flex-row-left">
|
<view style="color: #000000;;text-align: left;font-size: 36rpx;font-weight: 600;">
|
||||||
<view style="padding-left: 15rpx;" @click="goBack()">
|
<text>惠企政策</text>
|
||||||
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
|
|
||||||
</view>
|
|
||||||
<view class="tn-margin-top"
|
|
||||||
style="text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;">
|
|
||||||
<tn-tabs :list="[{name:'惠企政策分类'}]" :current="topCurrent" activeColor="#000" :bold="false"
|
|
||||||
:fontSize="36"></tn-tabs>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view slot="back" class='tn-custom-nav-bar__back' style="padding-left: 20rpx;" @click="goBack">
|
||||||
|
<image src="/static/h_back.png" style="width: 60rpx;height: 60rpx;"></image>
|
||||||
</view>
|
</view>
|
||||||
</tn-nav-bar>
|
</tn-nav-bar>
|
||||||
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 60rpx;">
|
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 60rpx;">
|
||||||
<tn-list-view :card="true" unlined="all">
|
<tn-list-view :card="true" unlined="all">
|
||||||
<block v-for="(item, index) in list" :key="index">
|
<block v-for="(item, index) in list" :key="index">
|
||||||
<tn-list-cell padding="36rpx" :arrow="true"
|
<tn-list-cell padding="36rpx" :arrow="true"
|
||||||
@click="openUrl('/pages/packageA/info/policy_list?id='+item.id)">{{item.name}}</tn-list-cell>
|
@click="openUrl('/pages/packageA/info/policy_list?id='+item.id)">
|
||||||
|
<image :src="item.image"
|
||||||
|
style="width: 50rpx;height: 50rpx;vertical-align: middle;margin-right: 20rpx;"></image>
|
||||||
|
{{item.name}}
|
||||||
|
<view class="list__right">
|
||||||
|
<view class="tn-text-sm tn-color-gray">{{item.category_count}}</view>
|
||||||
|
</view>
|
||||||
|
</tn-list-cell>
|
||||||
</block>
|
</block>
|
||||||
</tn-list-view>
|
</tn-list-view>
|
||||||
</view>
|
</view>
|
||||||
@ -81,6 +84,13 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
.list {
|
||||||
|
&__right {
|
||||||
|
position: absolute;
|
||||||
|
right: 68rpx;
|
||||||
|
top: 48rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
@ -1,26 +1,38 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view style="background: #F7F7F7;min-height: 100vh;">
|
||||||
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="false" backgroundColor="#FFFFFF">
|
<tn-nav-bar customBack :bottomShadow="false" backgroundColor="#ffffff">
|
||||||
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-between">
|
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-center">
|
||||||
<view class="tn-flex tn-flex-col-center tn-flex-row-left">
|
<view style="color: #000000;;text-align: left;font-size: 36rpx;font-weight: 600;">
|
||||||
<view style="padding-left: 15rpx;" @click="goBack()">
|
<text>惠企政策</text>
|
||||||
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
|
|
||||||
</view>
|
|
||||||
<view class="tn-margin-top"
|
|
||||||
style="text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;">
|
|
||||||
<tn-tabs :list="[{name:'惠企政策列表'}]" :current="topCurrent" activeColor="#000" :bold="false"
|
|
||||||
:fontSize="36"></tn-tabs>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view slot="back" class='tn-custom-nav-bar__back' style="padding-left: 20rpx;" @click="goBack">
|
||||||
|
<image src="/static/h_back.png" style="width: 60rpx;height: 60rpx;"></image>
|
||||||
</view>
|
</view>
|
||||||
</tn-nav-bar>
|
</tn-nav-bar>
|
||||||
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 60rpx;">
|
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}" style="padding-bottom: 60rpx;">
|
||||||
<tn-list-view :card="true" unlined="all">
|
<!-- <tn-list-view :card="true" unlined="all">
|
||||||
<block v-for="(item, index) in list" :key="index">
|
<block v-for="(item, index) in list" :key="index">
|
||||||
<tn-list-cell padding="36rpx" :arrow="true"
|
<tn-list-cell padding="36rpx" :arrow="true"
|
||||||
@click="openUrl('/pages/packageA/info/policy_info?id='+item.id)">{{item.article_title}}</tn-list-cell>
|
@click="openUrl('/pages/packageA/info/policy_info?id='+item.id)">{{item.article_title}}</tn-list-cell>
|
||||||
</block>
|
</block>
|
||||||
</tn-list-view>
|
</tn-list-view> -->
|
||||||
|
<view style="padding: 30rpx;">
|
||||||
|
<view v-for="(item, index) in list" :key="index" style="padding: 30rpx;background-color: #FFF;border-radius: 18rpx;margin-bottom: 30rpx;">
|
||||||
|
<view class="tn-flex" @click="openUrl('/pages/packageA/info/policy_info?id='+item.id)">
|
||||||
|
<view>
|
||||||
|
<image src="/static/hqzc_f.png" style="width: 230rpx;height: 140rpx;border-radius: 10rpx;">
|
||||||
|
</image>
|
||||||
|
</view>
|
||||||
|
<view style="padding-left: 20rpx;position: relative;">
|
||||||
|
<view>{{item.article_title}}</view>
|
||||||
|
<view style="position: absolute;bottom: 10rpx;width: 100%;">
|
||||||
|
<view style="color: #9B9B9B;">发布时间:{{formatTimestamp(item.create_time)}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@ -42,6 +54,13 @@
|
|||||||
this.getArticlePolicyListAll();
|
this.getArticlePolicyListAll();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
formatTimestamp(timestamp) {
|
||||||
|
const date = new Date(timestamp*1000);
|
||||||
|
const year = date.getFullYear();
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, "0"); // 补零
|
||||||
|
const day = String(date.getDate()).padStart(2, "0");
|
||||||
|
return `${year}.${month}.${day}`;
|
||||||
|
},
|
||||||
getArticlePolicyListAll() {
|
getArticlePolicyListAll() {
|
||||||
getArticlePolicyList({
|
getArticlePolicyList({
|
||||||
cid: this.cid
|
cid: this.cid
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
|
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
|
||||||
<view style="padding: 30rpx;margin-top: 200rpx;">
|
<view style="padding: 30rpx;margin-top: 200rpx;">
|
||||||
<view style="background-color: #ffffff;border-radius: 18rpx;padding: 30rpx;">
|
<view style="background-color: #ffffff;border-radius: 18rpx;padding: 30rpx;">
|
||||||
<tn-input placeholder="请输入您的疑问" v-model="centent" type="textarea" :clearable="false"
|
<tn-input placeholder="请输入您的疑问" v-model="issue_names" type="textarea" :clearable="false"
|
||||||
:border="false" :height="400" :autoHeight="false"></tn-input>
|
:border="false" :height="400" :autoHeight="false"></tn-input>
|
||||||
<view style="min-height: 200rpx;">
|
<view style="min-height: 200rpx;">
|
||||||
<tn-image-upload-drag ref="imageUpload" :action="action" :width="200" :height="200"
|
<tn-image-upload-drag ref="imageUpload" :action="action" :width="200" :height="200"
|
||||||
@ -29,22 +29,84 @@
|
|||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view style="position: fixed;bottom: 100rpx;width: 100%;">
|
<view style="position: fixed;bottom: 100rpx;width: 100%;">
|
||||||
<view style="text-align: center;font-size: 32rpx;color: #ffffff;width: 90%;margin: 0 auto;background-color:#2368F2;line-height: 85rpx;height: 85rpx;border-radius: 85rpx;">提交问题</view>
|
<view @click="onSubmit"
|
||||||
|
style="text-align: center;font-size: 32rpx;color: #ffffff;width: 90%;margin: 0 auto;background-color:#2368F2;line-height: 85rpx;height: 85rpx;border-radius: 85rpx;">
|
||||||
|
提交问题</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import {
|
||||||
|
getNwwbAdd
|
||||||
|
} from '@/util/api.js';
|
||||||
|
import store from '@/store/index.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
action:'',
|
action: store.state.apiUrl+'/api/common/upload',
|
||||||
centent: '',
|
issue_names: '',
|
||||||
fileList:'',
|
fileList: '',
|
||||||
formData:{}
|
formData: {},
|
||||||
|
submitLoging: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
onSubmit() {
|
||||||
|
if (this.submitLoging) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.submitLoging = true;
|
||||||
|
var user = uni.getStorageSync('userInfo');
|
||||||
|
let problem_images = [];
|
||||||
|
this.fileList.forEach(function(item, index) {
|
||||||
|
problem_images.push(item.response.data.fullurl);
|
||||||
|
});
|
||||||
|
var form = {};
|
||||||
|
form.association_id = user.association_id;
|
||||||
|
form.issue_names = this.issue_names;
|
||||||
|
form.problem_images = problem_images.join(",");
|
||||||
|
getNwwbAdd(form)
|
||||||
|
.then(res => {
|
||||||
|
console.log(res);
|
||||||
|
if(res.code==1){
|
||||||
|
uni.showToast({
|
||||||
|
title: '添加成功!',
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
setTimeout(()=>{
|
||||||
|
uni.redirectTo({
|
||||||
|
url:'/pages/packageB/ask/user_list'
|
||||||
|
})
|
||||||
|
},1500)
|
||||||
|
}else{
|
||||||
|
uni.showToast({
|
||||||
|
title: res.msg,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
uni.showToast({
|
||||||
|
title: error,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onListChange(list) {
|
||||||
|
console.log(list);
|
||||||
|
this.fileList = list;
|
||||||
|
},
|
||||||
|
beforeUpload(e, list) {
|
||||||
|
console.log(e);
|
||||||
|
},
|
||||||
|
// 图片拖拽重新排序
|
||||||
|
onSortList(list) {
|
||||||
|
console.log(list);
|
||||||
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
if (getCurrentPages().length > 1) {
|
if (getCurrentPages().length > 1) {
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
|
@ -13,12 +13,15 @@
|
|||||||
</tn-nav-bar>
|
</tn-nav-bar>
|
||||||
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
|
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
|
||||||
<view style="padding: 30rpx;">
|
<view style="padding: 30rpx;">
|
||||||
<view v-for="item in 5" @click="openUrl('/pages/packageB/ask/info')" style="background-color: #fff;border-radius: 18rpx;padding: 30rpx;margin-bottom: 30rpx;">
|
<view v-for="item in list" @click="openUrl('/pages/packageB/ask/info?id='+item.id)"
|
||||||
|
style="background-color: #fff;border-radius: 18rpx;padding: 30rpx;margin-bottom: 30rpx;">
|
||||||
<view>
|
<view>
|
||||||
<image src="/static/03.png" style="width: 50rpx;height: 50rpx;vertical-align: middle;"
|
<image v-if="item.photo_image !='' && item.photo_image!=null" :src="apiImgUrl+item.photo_image" style="border-radius: 50%;width: 50rpx;height: 50rpx;vertical-align: middle;"
|
||||||
|
mode="aspectFill"></image>
|
||||||
|
<image v-if="item.photo_image =='' || item.photo_image==null" src="/static/def.png" style="border-radius: 50%;width: 50rpx;height: 50rpx;vertical-align: middle;"
|
||||||
mode="aspectFill"></image>
|
mode="aspectFill"></image>
|
||||||
<text
|
<text
|
||||||
style="color: #9B9B9B;vertical-align: middle;margin-left: 10rpx;font-size: 28rpx;font-weight: 400;">风一样的男人</text>
|
style="color: #9B9B9B;vertical-align: middle;margin-left: 10rpx;font-size: 28rpx;font-weight: 400;">{{item.member_name}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="tn-flex" style="margin-top: 30rpx;">
|
<view class="tn-flex" style="margin-top: 30rpx;">
|
||||||
<view>
|
<view>
|
||||||
@ -26,18 +29,19 @@
|
|||||||
</image>
|
</image>
|
||||||
</view>
|
</view>
|
||||||
<view style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;">
|
<view style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;">
|
||||||
亲爱的职友,在你心目中什么样的工作是稳定的工作
|
{{item.issue_names}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="text-align: center;margin-top: 20rpx;">
|
<view v-if="item.problem_images!=null && item.problem_images!=''"
|
||||||
<image src="/static/def.png"
|
style="text-align: center;margin-top: 20rpx;">
|
||||||
|
<image :src="item.problem_images[0]"
|
||||||
style="width: 200rpx;height: 200rpx;border-radius:18rpx 0rpx 0rpx 18rpx;"></image>
|
style="width: 200rpx;height: 200rpx;border-radius:18rpx 0rpx 0rpx 18rpx;"></image>
|
||||||
<image src="/static/def.png" style="width: 200rpx;height: 200rpx;margin: 0rpx 10rpx;">
|
<image :src="item.problem_images[1]" style="width: 200rpx;height: 200rpx;margin: 0rpx 10rpx;">
|
||||||
</image>
|
</image>
|
||||||
<image src="/static/def.png"
|
<image :src="item.problem_images[2]"
|
||||||
style="width: 200rpx;height: 200rpx;border-radius:0rpx 18rpx 18rpx 0rpx;"></image>
|
style="width: 200rpx;height: 200rpx;border-radius:0rpx 18rpx 18rpx 0rpx;"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="tn-flex"
|
<view v-if="item.answer_content !=''&&item.answer_content!=null" class="tn-flex"
|
||||||
style="background-color: #F7F7F7;padding: 20rpx;border-radius: 18rpx;margin-top: 20rpx;">
|
style="background-color: #F7F7F7;padding: 20rpx;border-radius: 18rpx;margin-top: 20rpx;">
|
||||||
<view>
|
<view>
|
||||||
<image src="/static/da.png" style="width: 35rpx;" class="no-img" mode="widthFix">
|
<image src="/static/da.png" style="width: 35rpx;" class="no-img" mode="widthFix">
|
||||||
@ -45,15 +49,15 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="tn-text-ellipsis-2"
|
<view class="tn-text-ellipsis-2"
|
||||||
style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;color: #9B9B9B;">
|
style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;color: #9B9B9B;">
|
||||||
今天天气很清凉今天天气很清凉今天天气很清凉今天天气很清凉今天天气很清凉
|
<view v-html="item.answer_content"></view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="tn-flex tn-flex-col-center tn-flex-row-between"
|
<view class="tn-flex tn-flex-col-center tn-flex-row-between"
|
||||||
style="margin-top: 30rpx;font-size: 26rpx;font-weight: 400;color: #9B9B9B;">
|
style="margin-top: 30rpx;font-size: 26rpx;font-weight: 400;color: #9B9B9B;">
|
||||||
<view>2024.04.06</view>
|
<view>{{item.question_time}}</view>
|
||||||
<view>
|
<view>
|
||||||
<text class="tn-icon-eye"></text>
|
<text class="tn-icon-eye"></text>
|
||||||
<text>133</text>
|
<text style="margin-left: 5rpx;">{{item.click_count}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -66,13 +70,46 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import {
|
||||||
|
getNwwbList
|
||||||
|
} from '@/util/api.js';
|
||||||
|
import store from '@/store/index.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
apiImgUrl: this.$store.state.imgUrl,
|
||||||
|
list: [],
|
||||||
|
page: 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
this.page += 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getList() {
|
||||||
|
var user = uni.getStorageSync('userInfo');
|
||||||
|
getNwwbList({
|
||||||
|
association_id: user.association_id,
|
||||||
|
page: this.page,
|
||||||
|
size: 10
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
this.list.push(...res.data)
|
||||||
|
console.log(res);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
uni.showToast({
|
||||||
|
title: error,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
openUrl(url) {
|
openUrl(url) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: url
|
url: url
|
||||||
@ -96,7 +133,7 @@
|
|||||||
.ask_index_bg {
|
.ask_index_bg {
|
||||||
background: url('https://ysx.hschool.com.cn/uploads/1/20250509/4247d991a9a95810641fb3b533602978.png') no-repeat;
|
background: url('https://ysx.hschool.com.cn/uploads/1/20250509/4247d991a9a95810641fb3b533602978.png') no-repeat;
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
height: 100%;
|
height: 50vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
page {
|
page {
|
||||||
|
@ -14,10 +14,12 @@
|
|||||||
<view style="padding: 30rpx;">
|
<view style="padding: 30rpx;">
|
||||||
<view style="background-color: #fff;border-radius: 18rpx;padding: 30rpx;margin-bottom: 30rpx;">
|
<view style="background-color: #fff;border-radius: 18rpx;padding: 30rpx;margin-bottom: 30rpx;">
|
||||||
<view>
|
<view>
|
||||||
<image src="/static/03.png" style="width: 50rpx;height: 50rpx;vertical-align: middle;"
|
<image v-if="info.photo_image !='' && info.photo_image!=null" :src="apiImgUrl+info.photo_image" style="border-radius: 50%;width: 50rpx;height: 50rpx;vertical-align: middle;"
|
||||||
|
mode="aspectFill"></image>
|
||||||
|
<image v-if="info.photo_image =='' || info.photo_image==null" src="/static/def.png" style="border-radius: 50%;width: 50rpx;height: 50rpx;vertical-align: middle;"
|
||||||
mode="aspectFill"></image>
|
mode="aspectFill"></image>
|
||||||
<text
|
<text
|
||||||
style="color: #9B9B9B;vertical-align: middle;margin-left: 10rpx;font-size: 28rpx;font-weight: 400;">风一样的男人</text>
|
style="color: #9B9B9B;vertical-align: middle;margin-left: 10rpx;font-size: 28rpx;font-weight: 400;">{{info.member_name}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="tn-flex" style="margin-top: 30rpx;">
|
<view class="tn-flex" style="margin-top: 30rpx;">
|
||||||
<view>
|
<view>
|
||||||
@ -25,28 +27,31 @@
|
|||||||
</image>
|
</image>
|
||||||
</view>
|
</view>
|
||||||
<view style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;">
|
<view style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;">
|
||||||
亲爱的职友,在你心目中什么样的工作是稳定的工作
|
{{info.issue_names}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="text-align: center;margin-top: 20rpx;">
|
<view v-if="info.problem_images!=null && info.problem_images!=''"
|
||||||
<image src="/static/def.png"
|
style="text-align: center;margin-top: 20rpx;">
|
||||||
|
<image @click="previewImage(0)" :src="info.problem_images[0]"
|
||||||
style="width: 200rpx;height: 200rpx;border-radius:18rpx 0rpx 0rpx 18rpx;"></image>
|
style="width: 200rpx;height: 200rpx;border-radius:18rpx 0rpx 0rpx 18rpx;"></image>
|
||||||
<image src="/static/def.png" style="width: 200rpx;height: 200rpx;margin: 0rpx 10rpx;">
|
<image @click="previewImage(1)" :src="info.problem_images[1]"
|
||||||
|
style="width: 200rpx;height: 200rpx;margin: 0rpx 10rpx;">
|
||||||
</image>
|
</image>
|
||||||
<image src="/static/def.png"
|
<image @click="previewImage(2)" :src="info.problem_images[2]"
|
||||||
style="width: 200rpx;height: 200rpx;border-radius:0rpx 18rpx 18rpx 0rpx;"></image>
|
style="width: 200rpx;height: 200rpx;border-radius:0rpx 18rpx 18rpx 0rpx;"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="tn-flex tn-flex-col-center tn-flex-row-between"
|
<view class="tn-flex tn-flex-col-center tn-flex-row-between"
|
||||||
style="margin-top: 30rpx;font-size: 26rpx;font-weight: 400;color: #9B9B9B;">
|
style="margin-top: 30rpx;font-size: 26rpx;font-weight: 400;color: #9B9B9B;">
|
||||||
<view>2024.04.06</view>
|
<view>{{info.question_time}}</view>
|
||||||
<view>
|
<view>
|
||||||
<text class="tn-icon-eye"></text>
|
<text class="tn-icon-eye"></text>
|
||||||
<text>133</text>
|
<text style="margin-left: 5rpx;">{{info.click_count}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="background-color: #fff;border-radius: 18rpx;padding:30rpx;">
|
<view v-if="info.answer_content!=null && info.answer_content!=''"
|
||||||
|
style="background-color: #fff;border-radius: 18rpx;padding:30rpx;">
|
||||||
<view class="tn-flex">
|
<view class="tn-flex">
|
||||||
<view>
|
<view>
|
||||||
<image src="/static/da.png" style="width: 35rpx;" class="no-img" mode="widthFix">
|
<image src="/static/da.png" style="width: 35rpx;" class="no-img" mode="widthFix">
|
||||||
@ -54,7 +59,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="tn-text-ellipsis-2"
|
<view class="tn-text-ellipsis-2"
|
||||||
style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;color: #9B9B9B;">
|
style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;color: #9B9B9B;">
|
||||||
今天天气很清凉今天天气很清凉今天天气很清凉今天天气很清凉今天天气很清凉
|
<view v-html="info.answer_content"></view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -64,13 +69,45 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import {
|
||||||
|
getNwwbInfo
|
||||||
|
} from '@/util/api.js';
|
||||||
|
import store from '@/store/index.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
apiImgUrl: this.$store.state.imgUrl,
|
||||||
|
id: 0,
|
||||||
|
info: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onLoad(item) {
|
||||||
|
this.id = item.id;
|
||||||
|
this.getInfo();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
previewImage(index) {
|
||||||
|
uni.previewImage({
|
||||||
|
current: index,
|
||||||
|
urls: this.info.problem_images
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getInfo() {
|
||||||
|
getNwwbInfo({
|
||||||
|
id: this.id
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
console.log(res);
|
||||||
|
this.info = res.data;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
uni.showToast({
|
||||||
|
title: error,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
if (getCurrentPages().length > 1) {
|
if (getCurrentPages().length > 1) {
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
|
@ -14,16 +14,22 @@
|
|||||||
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
|
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
|
||||||
<view style="background-color: #fff;">
|
<view style="background-color: #fff;">
|
||||||
<tn-tabs :list="List" :isScroll="false" :activeItemStyle="{fontSize:'30rpx',fontWeight:'600'}"
|
<tn-tabs :list="List" :isScroll="false" :activeItemStyle="{fontSize:'30rpx',fontWeight:'600'}"
|
||||||
activeColor="#000000" inactiveColor="#9B9B9B" :barStyle="{color:'#2368F2',backgroundColor:'#2368F2'}" :current="current" name="name" @change="change" :fontSize="28"></tn-tabs>
|
activeColor="#000000" inactiveColor="#9B9B9B"
|
||||||
|
:barStyle="{color:'#2368F2',backgroundColor:'#2368F2'}" :current="current" name="name"
|
||||||
|
@change="change" :fontSize="28"></tn-tabs>
|
||||||
</view>
|
</view>
|
||||||
<view style="padding: 30rpx;">
|
<view style="padding: 30rpx;">
|
||||||
<view style="background-color: #fff;border-radius: 18rpx;padding: 30rpx;margin-bottom: 30rpx;position: relative;">
|
<view v-for="item in userList"
|
||||||
<image src="/static/ask_ok.png" style="width: 100rpx;position: absolute;right: 0;top: 0;" mode="widthFix" class="no-img"></image>
|
style="background-color: #fff;border-radius: 18rpx;padding: 30rpx;margin-bottom: 30rpx;position: relative;">
|
||||||
|
<image src="/static/ask_ok.png" style="width: 100rpx;position: absolute;right: 0;top: 0;"
|
||||||
|
mode="widthFix" class="no-img"></image>
|
||||||
<view>
|
<view>
|
||||||
<image src="/static/03.png" style="width: 50rpx;height: 50rpx;vertical-align: middle;"
|
<image v-if="item.photo_image !='' && item.photo_image!=null" :src="apiImgUrl+item.photo_image" style="border-radius: 50%;width: 50rpx;height: 50rpx;vertical-align: middle;"
|
||||||
|
mode="aspectFill"></image>
|
||||||
|
<image v-if="item.photo_image =='' || item.photo_image==null" src="/static/def.png" style="border-radius: 50%;width: 50rpx;height: 50rpx;vertical-align: middle;"
|
||||||
mode="aspectFill"></image>
|
mode="aspectFill"></image>
|
||||||
<text
|
<text
|
||||||
style="color: #9B9B9B;vertical-align: middle;margin-left: 10rpx;font-size: 28rpx;font-weight: 400;">风一样的男人</text>
|
style="color: #9B9B9B;vertical-align: middle;margin-left: 10rpx;font-size: 28rpx;font-weight: 400;">{{item.member_name}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="tn-flex" style="margin-top: 30rpx;">
|
<view class="tn-flex" style="margin-top: 30rpx;">
|
||||||
<view>
|
<view>
|
||||||
@ -31,10 +37,10 @@
|
|||||||
</image>
|
</image>
|
||||||
</view>
|
</view>
|
||||||
<view style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;">
|
<view style="margin-left: 20rpx;font-size: 28rpx;font-weight: 400;">
|
||||||
亲爱的职友,在你心目中什么样的工作是稳定的工作
|
{{item.issue_names}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="text-align: center;margin-top: 20rpx;">
|
<view v-if="item.problem_images!=null && item.problem_images!=''" style="text-align: center;margin-top: 20rpx;">
|
||||||
<image src="/static/def.png"
|
<image src="/static/def.png"
|
||||||
style="width: 200rpx;height: 200rpx;border-radius:18rpx 0rpx 0rpx 18rpx;"></image>
|
style="width: 200rpx;height: 200rpx;border-radius:18rpx 0rpx 0rpx 18rpx;"></image>
|
||||||
<image src="/static/def.png" style="width: 200rpx;height: 200rpx;margin: 0rpx 10rpx;">
|
<image src="/static/def.png" style="width: 200rpx;height: 200rpx;margin: 0rpx 10rpx;">
|
||||||
@ -45,7 +51,7 @@
|
|||||||
|
|
||||||
<view class="tn-flex tn-flex-col-center tn-flex-row-between"
|
<view class="tn-flex tn-flex-col-center tn-flex-row-between"
|
||||||
style="margin-top: 30rpx;font-size: 26rpx;font-weight: 400;color: #9B9B9B;">
|
style="margin-top: 30rpx;font-size: 26rpx;font-weight: 400;color: #9B9B9B;">
|
||||||
<view>2024.04.06</view>
|
<view>{{info.question_time}}</view>
|
||||||
<!-- <view>
|
<!-- <view>
|
||||||
<text class="tn-icon-eye"></text>
|
<text class="tn-icon-eye"></text>
|
||||||
<text>133</text>
|
<text>133</text>
|
||||||
@ -58,16 +64,64 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import {
|
||||||
|
getNwwbUser
|
||||||
|
} from '@/util/api.js';
|
||||||
|
import store from '@/store/index.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
current:0,
|
apiImgUrl: this.$store.state.imgUrl,
|
||||||
List:[{'name':'待审核'},{'name':'已通过'},{'name':'未通过'}]
|
current: 0,
|
||||||
|
List: [{
|
||||||
|
'name': '待审核',
|
||||||
|
type: 1,
|
||||||
|
}, {
|
||||||
|
'name': '已通过',
|
||||||
|
type: 2
|
||||||
|
}, {
|
||||||
|
'name': '未通过',
|
||||||
|
type: 3
|
||||||
|
}],
|
||||||
|
status: 1,
|
||||||
|
userList: [],
|
||||||
|
page:1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.getUserList();
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
this.page+=1;
|
||||||
|
this.getUserList();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
change(e){
|
change(e) {
|
||||||
this.current=e;
|
this.userList=[];
|
||||||
|
this.page=1;
|
||||||
|
this.current = e;
|
||||||
|
this.status = this.List[e].type;
|
||||||
|
this.getUserList();
|
||||||
|
},
|
||||||
|
getUserList() {
|
||||||
|
getNwwbUser({
|
||||||
|
status: this.status,
|
||||||
|
page:this.page,
|
||||||
|
size:10
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
console.log(res);
|
||||||
|
if (res.code == 1) {
|
||||||
|
this.userList.push(...res.data);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
uni.showToast({
|
||||||
|
title: error,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
})
|
||||||
},
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
if (getCurrentPages().length > 1) {
|
if (getCurrentPages().length > 1) {
|
||||||
|
BIN
static/hqzc_f.png
Normal file
BIN
static/hqzc_f.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
@ -163,7 +163,7 @@
|
|||||||
height: 20rpx;
|
height: 20rpx;
|
||||||
margin-top: -12rpx;
|
margin-top: -12rpx;
|
||||||
border-width: 4rpx 4rpx 0 0;
|
border-width: 4rpx 4rpx 0 0;
|
||||||
border-color: $tn-font-holder-color;
|
border-color: #000000;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
transform: matrix(0.5, 0.5, -0.5, 0.5, 0, 0);
|
transform: matrix(0.5, 0.5, -0.5, 0.5, 0, 0);
|
||||||
}
|
}
|
||||||
|
@ -86,3 +86,11 @@ export const addWriteoff = data => request.post('/move/Writeoff/addWriteoff', da
|
|||||||
export const getNoticeList = data => request.post('/move/notice', data, false);
|
export const getNoticeList = data => request.post('/move/notice', data, false);
|
||||||
|
|
||||||
export const getNoticeInfo = data => request.post('/move/notice/find', data, false);
|
export const getNoticeInfo = data => request.post('/move/notice/find', data, false);
|
||||||
|
|
||||||
|
export const getNwwbList = data => request.post('/move/nwwb', data, false);
|
||||||
|
|
||||||
|
export const getNwwbAdd = data => request.post('/move/nwwb/add', data, false);
|
||||||
|
|
||||||
|
export const getNwwbInfo = data => request.post('/move/nwwb/find', data, false);
|
||||||
|
|
||||||
|
export const getNwwbUser = data => request.post('/move/nwwb/memberfind', data, false);
|
@ -8,6 +8,7 @@ import store from '@/store/index.js'
|
|||||||
import RequestManager from '@/util/requestManager.js'
|
import RequestManager from '@/util/requestManager.js'
|
||||||
|
|
||||||
let BASE_URL = store.state.apiUrl;
|
let BASE_URL = store.state.apiUrl;
|
||||||
|
//let BASE_URL = 'http://192.168.10.176/api';
|
||||||
// // #ifdef H5
|
// // #ifdef H5
|
||||||
// BASE_URL = process.env.NODE_ENV === 'production' ? BASE_URL : '/api';
|
// BASE_URL = process.env.NODE_ENV === 'production' ? BASE_URL : '/api';
|
||||||
// // #endif
|
// // #endif
|
||||||
|
@ -1 +1,4 @@
|
|||||||
|
// 跨域配置
|
||||||
|
|
||||||
|
// vue.config.js
|
||||||
module.exports = {}
|
module.exports = {}
|
Loading…
x
Reference in New Issue
Block a user