This commit is contained in:
王创世 2024-06-21 16:15:26 +08:00
parent 419301dd98
commit 75e13dff0e
22 changed files with 1636 additions and 181 deletions

View File

@ -113,6 +113,7 @@
.openid); .openid);
uni.setStorageSync('uid', response.data uni.setStorageSync('uid', response.data
.id); .id);
uni.setStorageSync('userInfo', response.data);
} else { } else {
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
@ -120,7 +121,7 @@
duration: 2000 duration: 2000
}); });
} }
//returnA(response); returnA(response);
}) })
.catch(error => { .catch(error => {
uni.showToast({ uni.showToast({

View File

@ -186,25 +186,48 @@
{ {
"path": "pages/index/my_card_holder", "path": "pages/index/my_card_holder",
"style": { "style": {
"navigationBarTitleText": "" "navigationBarTitleText": "智慧云商协"
} }
}, },
{ {
"path" : "pages/index/policy", "path": "pages/index/policy",
"style": {
"navigationBarTitleText": "智慧云商协"
}
},
{
"path": "pages/index/policy_list",
"style": {
"navigationBarTitleText": "智慧云商协"
}
},
{
"path": "pages/index/policy_info",
"style": {
"navigationBarTitleText": "智慧云商协"
}
},
{
"path": "pages/index/user_auditing",
"style": {
"navigationBarTitleText": "智慧云商协"
}
},
{
"path": "pages/index/user_auditing_info",
"style": {
"navigationBarTitleText": "智慧云商协"
}
},
{
"path" : "pages/index/user_activity",
"style" : "style" :
{ {
"navigationBarTitleText" : "" "navigationBarTitleText" : ""
} }
}, },
{ {
"path" : "pages/index/policy_list", "path" : "pages/index/my_sign",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/index/policy_info",
"style" : "style" :
{ {
"navigationBarTitleText" : "" "navigationBarTitleText" : ""

View File

@ -16,78 +16,137 @@
</tn-nav-bar> </tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}"> <view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<image :src="apiImgUrl+info.activity_image" style="width: 100%;" mode="widthFix"></image> <image :src="apiImgUrl+info.activity_image" style="width: 100%;" mode="widthFix"></image>
<view style="padding:20rpx 30rpx;"> <view>
<view style="font-size: 30rpx;font-weight: 600;">{{ info.activity_name }}</view> <view style="padding:20rpx 30rpx;">
<view style="margin-top: 40rpx;"> <view style="font-size: 34rpx;font-weight: 600;">{{ info.activity_name }}</view>
<view> <view style="margin-top: 40rpx;">
<text style="color: #26BB71;"></text> <view>
<text style="margin-left: 10rpx;font-weight: 600;">开始时间</text> <text style="color: #26BB71;"></text>
<text style="color: #979797;">{{ info.activity_start_time }}</text> <text style="margin-left: 10rpx;font-weight: 600;">活动开始时间</text>
</view> <text style="color: #979797;">{{ info.activity_start_time }}</text>
<view style="margin: 15rpx 0rpx;"> </view>
<text style="color: #BE7E28;"></text> <view style="margin: 15rpx 0rpx;">
<text style="margin-left: 10rpx;font-weight: 600;">结束时间</text> <text style="color: #BE7E28;"></text>
<text style="color: #979797;">{{ info.activity_end_time }}</text> <text style="margin-left: 10rpx;font-weight: 600;">活动结束时间</text>
</view> <text style="color: #979797;">{{ info.activity_end_time }}</text>
<view>
<text style="color: #DB5022;"></text>
<text style="margin-left: 10rpx;font-weight: 600;">活动地点</text>
<text style="color: #979797;">{{ info.activity_location }}</text>
</view>
<view style="margin: 15rpx 0rpx;" v-if="info.if_display_registrants==2">
<text style="color: #0000FF;"></text>
<text style="margin-left: 10rpx;font-weight: 600;">报名人数</text>
<text style="color: #979797;">{{ info.list.length}}</text>
</view>
<view style="margin: 15rpx 0rpx;" v-if="info.if_display_registrants==1"
class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between" @click="rightMod = true">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<view style="color: #0000FF;"></view>
<view style="margin-left: 10rpx;font-weight: 600;">报名详情</view>
<tn-avatar-group :border="false" :lists="info.list.slice(0, 10)"></tn-avatar-group>
</view> </view>
<view> <view>
<text style="margin-right: 10rpx">{{info.list.length}}</text> <text style="color: #DB5022;"></text>
<text class="tn-icon-right"></text> <text style="margin-left: 10rpx;font-weight: 600;">活动地点</text>
<text style="color: #979797;">{{ info.activity_location }}</text>
</view>
<view style="margin: 15rpx 0rpx;">
<text style="color: #0000FF;"></text>
<text style="margin-left: 10rpx;font-weight: 600;">活动规模</text>
<text style="color: #979797;">{{info.number==0?'不限制':info.number+'人'}}</text>
</view>
<view v-if="info.activity_type!=1&&info.activity_type!=4">
<view style="margin: 15rpx 0rpx;" v-if="info.if_display_registrants==2">
<text style="color: #0000FF;"></text>
<text v-if="info.activity_type==3"
style="margin-left: 10rpx;font-weight: 600;">捐赠人数</text>
<text v-if="info.activity_type==2"
style="margin-left: 10rpx;font-weight: 600;">填写人数</text>
<text v-if="info.activity_type==1||info.activity_type==4"
style="margin-left: 10rpx;font-weight: 600;">报名人数</text>
<text style="color: #979797;">{{ info.list.length}}</text>
</view>
<view style="margin: 15rpx 0rpx;" v-if="info.if_display_registrants==1"
class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between"
@click="rightMod = true">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<view style="color: #0000FF;"></view>
<view v-if="info.activity_type==3" style="margin-left: 10rpx;font-weight: 600;">
捐赠详情</view>
<view v-if="info.activity_type==2" style="margin-left: 10rpx;font-weight: 600;">
填写详情</view>
<view v-if="info.activity_type==1||info.activity_type==4"
style="margin-left: 10rpx;font-weight: 600;">报名详情</view>
<tn-avatar-group :border="false" :lists="info.list.slice(0, 10)"></tn-avatar-group>
</view>
<view>
<text style="margin-right: 10rpx">{{info.list.length}}</text>
<text class="tn-icon-right"></text>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
<view style="margin-top: 60rpx;font-size: 32rpx;font-weight: 600;">活动介绍</view> <view v-if="info.activity_type==1||info.activity_type==4">
<view> <view style="width: 100%;height: 10rpx;background-color: #EBF4F7"></view>
<view class="ks_html" style="line-height: 50rpx;margin-top: 20rpx;"> <view style="padding:20rpx 30rpx;">
<view v-if="info.video!=null&&info.video!=''"> <view style="margin: 15rpx 0rpx;">
<video :src="apiImgUrl+info.video" style="width: 100%;border-radius: 5rpx;"></video> <text style="color: #26BB71;"></text>
<text style="margin-left: 10rpx;font-weight: 600;">报名开始时间</text>
<text style="color: #979797;">{{ info.signup_start_time }}</text>
</view>
<view style="margin: 15rpx 0rpx;">
<text style="color: #BE7E28;"></text>
<text style="margin-left: 10rpx;font-weight: 600;">报名结束时间</text>
<text style="color: #979797;">{{ info.signup_end_time }}</text>
</view>
<view style="margin: 15rpx 0rpx;" v-if="info.if_display_registrants==2">
<text style="color: #0000FF;"></text>
<text style="margin-left: 10rpx;font-weight: 600;">报名人数</text>
<text style="color: #979797;">{{ info.list.length}}</text>
</view>
<view style="margin: 15rpx 0rpx;" v-if="info.if_display_registrants==1"
class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between"
@click="rightMod = true">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<view style="color: #0000FF;"></view>
<view style="margin-left: 10rpx;font-weight: 600;">报名详情</view>
<tn-avatar-group :border="false" :lists="info.list.slice(0, 10)"></tn-avatar-group>
</view>
<view>
<text style="margin-right: 10rpx">{{info.list.length}}</text>
<text class="tn-icon-right"></text>
</view>
</view> </view>
<view v-html="info.activity_content"></view>
</view> </view>
</view> </view>
<view v-if="info.activity_type==1||info.activity_type==3" style="height: 180rpx;"></view> <view style="width: 100%;height: 10rpx;background-color: #EBF4F7"></view>
<view v-if="info.activity_type==2" style="padding-bottom: 180rpx;"> <view style="padding:20rpx 30rpx;">
<view style="margin-top: 60rpx;font-size: 32rpx;font-weight: 600;">问卷问题</view> <view style="margin-top: 20rpx;font-size: 32rpx;font-weight: 600;">活动介绍</view>
<tn-form labelPosition="top" :model="form" ref="form"> <view>
<template v-for="(item,index) in questionnaireList"> <view class="ks_html" style="line-height: 50rpx;margin-top: 20rpx;">
<tn-form-item v-if="item.type==2" :label="(index+1)+'、'+item.title+'(多选题)'" prop="hobby"> <view v-if="info.video!=null&&info.video!=''">
<tn-checkbox-group v-model="questionnaireList[index].topic" size="40" <video :src="apiImgUrl+info.video" style="width: 100%;border-radius: 5rpx;"></video>
activeColor="#82B2FF" wrap> </view>
<tn-checkbox :name="op.name" v-for="(op,opi) in item.option"> <view v-html="info.activity_content"></view>
{{ op.name }}{{ op.val }} </view>
</tn-checkbox> </view>
</tn-checkbox-group> <view v-if="info.activity_type==1||info.activity_type==3" style="height: 180rpx;"></view>
</tn-form-item> <view v-if="info.activity_type==2" style="padding-bottom: 180rpx;">
<tn-form-item v-if="item.type==1" :label="(index+1)+'、'+item.title+'(单选题)'" prop="danxuan"> <view style="margin-top: 60rpx;font-size: 32rpx;font-weight: 600;">问卷问题</view>
<tn-radio-group v-model="questionnaireList[index].topic" size="40" activeColor="#82B2FF" <tn-form labelPosition="top" :model="form" ref="form">
wrap> <template v-for="(item,index) in questionnaireList">
<tn-radio :name="op.name" v-for="(op,opi) in item.option"> <tn-form-item v-if="item.type==2" :label="(index+1)+'、'+item.title+'(多选题)'"
{{ op.name }}{{ op.val }} prop="hobby">
</tn-radio> <tn-checkbox-group v-model="questionnaireList[index].topic" size="40"
</tn-radio-group> activeColor="#82B2FF" wrap>
</tn-form-item> <tn-checkbox :name="op.name" v-for="(op,opi) in item.option">
<tn-form-item v-if="item.type==3" :label="(index+1)+'、'+item.title+'(问答题)'" prop="wenda"> {{ op.name }}{{ op.val }}
<tn-input placeholder="请填写答案" v-model="questionnaireList[index].topic" </tn-checkbox>
type="textarea" /> </tn-checkbox-group>
</tn-form-item> </tn-form-item>
</template> <tn-form-item v-if="item.type==1" :label="(index+1)+'、'+item.title+'(单选题)'"
</tn-form> prop="danxuan">
<tn-radio-group v-model="questionnaireList[index].topic" size="40"
activeColor="#82B2FF" wrap>
<tn-radio :name="op.name" v-for="(op,opi) in item.option">
{{ op.name }}{{ op.val }}
</tn-radio>
</tn-radio-group>
</tn-form-item>
<tn-form-item v-if="item.type==3" :label="(index+1)+'、'+item.title+'(问答题)'"
prop="wenda">
<tn-input placeholder="请填写答案" v-model="questionnaireList[index].topic"
type="textarea" />
</tn-form-item>
</template>
</tn-form>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -101,10 +160,9 @@
<!-- </view>--> <!-- </view>-->
<!-- </view>--> <!-- </view>-->
<view style="text-align: center;padding:0 30rpx;" v-if="info.activity_type==1"> <view style="text-align: center;padding:0 30rpx;" v-if="info.activity_type==1">
<button class="mmy" hover-class="none" @click="application_add" v-if="info.type=='未开始'">确认报名</button> <button class="mmy" hover-class="none" @click="application_add" v-if="info.type=='进行中'">确认报名</button>
<button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='已结束'||info.type=='进行中'">报名已结束 <button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='已结束'">报名已结束</button>
</button> <button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='未开始'">报名未开始</button>
</view> </view>
<view style="text-align: center;padding:0 30rpx;" v-if="info.activity_type==2"> <view style="text-align: center;padding:0 30rpx;" v-if="info.activity_type==2">
<button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='未开始'">问卷未开始</button> <button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='未开始'">问卷未开始</button>
@ -117,9 +175,9 @@
<button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='已结束'">捐助已结束</button> <button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='已结束'">捐助已结束</button>
</view> </view>
<view style="text-align: center;padding:0 30rpx;" v-if="info.activity_type==4"> <view style="text-align: center;padding:0 30rpx;" v-if="info.activity_type==4">
<button class="mmy" hover-class="none" @click="peiMod=true" v-if="info.type=='未开始'">我要参加</button> <button class="mmy" hover-class="none" @click="peiMod=true" v-if="info.type=='进行中'">我要参加</button>
<button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='已结束'||info.type=='进行中'">活动已结束 <button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='已结束'">报名已结束</button>
</button> <button class="mmy" hover-class="none" :disabled="true" v-if="info.type=='未开始'">报名未开始</button>
</view> </view>
</view> </view>
<tn-modal v-model="juanMod" :custom="true"> <tn-modal v-model="juanMod" :custom="true">
@ -178,6 +236,16 @@
<view v-if="info.list.length==0" style="text-align: center;padding-top: 40rpx">暂无</view> <view v-if="info.list.length==0" style="text-align: center;padding-top: 40rpx">暂无</view>
</view> </view>
</tn-popup> </tn-popup>
<tn-modal v-model="showLogin" :custom="true">
<view style="text-align: center;">
<view style="font-size: 32rpx;font-weight: 600;">登陆提示</view>
<view style="margin-top: 40rpx;">请登录后参与活动</view>
</view>
<view style="text-align: center;margin-top: 40rpx;">
<tn-button open-type="getPhoneNumber" @getphonenumber="PhoneLogin" backgroundColor="#3377FF"
height="75rpx" width="500rpx" shape="round" fontColor="#ffffff">点击登陆</tn-button>
</view>
</tn-modal>
</view> </view>
</template> </template>
@ -187,13 +255,15 @@
questionnaireFind, questionnaireFind,
applicationAdd, applicationAdd,
questionnaireAdd, questionnaireAdd,
moneyLogAdd moneyLogAdd,
wxphoneLogin
} from '@/util/api.js'; } from '@/util/api.js';
import store from '@/store/index.js' import store from '@/store/index.js'
export default { export default {
data() { data() {
return { return {
showLogin: false,
money: '', money: '',
juanMod: false, juanMod: false,
rightMod: false, rightMod: false,
@ -245,33 +315,80 @@
// //
return { return {
title: this.info.activity_name, title: this.info.activity_name,
path: '/pages/index/event_info?id=' + this.info.id, path: '/pages/index/event_info?id=' + this.info.id + "&gid=" + store.state.Gid,
imageUrl: this.apiImgUrl + this.info.activity_image, imageUrl: this.apiImgUrl + this.info.activity_image,
} }
}, },
onShareTimeline() { // onShareTimeline() { //
return { return {
title: this.info.activity_name, title: this.info.activity_name,
path: '/pages/index/event_info?id=' + this.info.id, path: '/pages/index/event_info?id=' + this.info.id + "&gid=" + store.state.Gid,
imageUrl: this.apiImgUrl + this.info.activity_image, imageUrl: this.apiImgUrl + this.info.activity_image,
} }
}, },
onLoad(d) { onLoad(d) {
var uid = uni.getStorageSync('uid');
console.log(d); console.log(d);
this.id = d.id; this.id = d.id;
if (typeof(d.gid) != 'undefined') {
console.log(11111111);
store.commit('$tStore', {
name: 'Gid',
value: d.gid
})
uni.setStorageSync('Gid', d.gid);
}
if (!uid) {
getApp().getUserLogin((r) => {
console.log('---Login---', r);
})
}
this.getEventInfo(); this.getEventInfo();
}, },
methods: { methods: {
PhoneLogin(d) {
console.log(d);
this.showLogin = false;
var openid = uni.getStorageSync('openid');
wxphoneLogin({
code: d.code,
openid: openid
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showToast({
title: '登陆成功!',
icon: 'none',
duration: 2000
});
uni.setStorageSync('uid', res.data.id);
uni.setStorageSync('userInfo', res.data);
this.userInfo = res.data;
this.login = true;
this.loginMod = false;
} else {
uni.showToast({
title: '登陆失败!',
icon: 'none',
duration: 2000
});
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
zhifuDo() { zhifuDo() {
this.peiMod = false; this.peiMod = false;
var uid = uni.getStorageSync('uid'); var uid = uni.getStorageSync('uid');
if (!uid) { if (!uid) {
uni.showToast({ this.modalAdd.showLogin = true;
title: '请登录后报名!',
icon: 'none',
duration: 2000
});
return; return;
} }
applicationAdd({ applicationAdd({
@ -307,11 +424,7 @@
this.juanMod = false; this.juanMod = false;
var uid = uni.getStorageSync('uid'); var uid = uni.getStorageSync('uid');
if (!uid) { if (!uid) {
uni.showToast({ this.modalAdd.showLogin = true;
title: '请登录后捐助!',
icon: 'none',
duration: 2000
});
return; return;
} }
moneyLogAdd({ moneyLogAdd({
@ -346,11 +459,7 @@
option_add() { option_add() {
var uid = uni.getStorageSync('uid'); var uid = uni.getStorageSync('uid');
if (!uid) { if (!uid) {
uni.showToast({ this.modalAdd.showLogin = true;
title: '请登录后报名!',
icon: 'none',
duration: 2000
});
return; return;
} }
var that = this; var that = this;
@ -402,18 +511,14 @@
application_add() { application_add() {
var uid = uni.getStorageSync('uid'); var uid = uni.getStorageSync('uid');
if (!uid) { if (!uid) {
uni.showToast({ this.modalAdd.showLogin = true;
title: '请登录后报名!',
icon: 'none',
duration: 2000
});
return; return;
} }
applicationAdd({ applicationAdd({
association_id: store.state.Gid, association_id: store.state.Gid,
member_id: uid, member_id: uid,
activity_id: this.id, activity_id: this.id,
application_time: new Date().toISOString().slice(0, 19).replace('T', ' ') //application_time: new Date().toISOString().slice(0, 19).replace('T', ' ')
}) })
.then(res => { .then(res => {
if (res.code == 1) { if (res.code == 1) {

View File

@ -18,7 +18,7 @@
@click="openUrl('/pages/index/event_info?id='+item.activity_id)" @click="openUrl('/pages/index/event_info?id='+item.activity_id)"
style="background-color: #ffffff;padding: 20rpx;border-radius: 10rpx;margin-bottom: 30rpx;box-shadow: rgba(12, 0, 5, 0.1) 0px 0px 5px 0px;"> style="background-color: #ffffff;padding: 20rpx;border-radius: 10rpx;margin-bottom: 30rpx;box-shadow: rgba(12, 0, 5, 0.1) 0px 0px 5px 0px;">
<view style="position:relative;"> <view style="position:relative;">
<view style="font-size: 28rpx;">{{item.activity_name}}</view> <view class="tn-text-ellipsis-2" style="font-size: 28rpx;">{{item.activity_name}}</view>
<view class="tn-flex tn-flex-row-between" <view class="tn-flex tn-flex-row-between"
style="position: absolute;bottom: 0rpx;width:420rpx;color: #808080;"> style="position: absolute;bottom: 0rpx;width:420rpx;color: #808080;">
<view style="font-size: 24rpx;padding-top: 8rpx;">{{item.application_time}}</view> <view style="font-size: 24rpx;padding-top: 8rpx;">{{item.application_time}}</view>

View File

@ -200,20 +200,23 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view style="background-color: #ffffff;padding: 20rpx;text-align: center" v-if="actList.length==0">
暂无活动
</view>
</view> </view>
<view style="background-color: #ffffff;padding: 20rpx;text-align: center" v-if="actList.length==0">
暂无活动 </view>
<view style="padding:0rpx 28rpx;margin-top: 20rpx;">
<view style="background-color: #ffffff;border-radius: 15rpx 15rpx 0px 0px;">
<tn-tabs :list="goryList" :isScroll="true" :activeItemStyle="{fontSize:'30rpx',fontWeight:'600'}"
activeColor="#3377FF" :current="current" name="name" @change="change" :fontSize="28"></tn-tabs>
</view> </view>
</view> </view>
<!-- <view style="background-color: #ffffff;">--> <view style="padding:0px 28rpx;padding-bottom: 100rpx;min-height:1000rpx">
<!-- <tn-tabs :list="goryList" :isScroll="true" :activeItemStyle="{fontSize:'35rpx',fontWeight:'600'}"-->
<!-- activeColor="#000000" :current="current" name="name" @change="change" :fontSize="28"></tn-tabs>-->
<!-- </view>-->
<view style="padding:10px 28rpx;padding-bottom: 100rpx;">
<view v-for="(item,index) in news_list" :class="{ 'rounded_corner': index === 0 }" <view v-for="(item,index) in news_list" :class="{ 'rounded_corner': index === 0 }"
style="background-color: #ffffff;"> style="background-color: #ffffff;">
<view class="tn-flex tn-flex-row-between" @click="openUrl('/pages/index/new_info?id='+item.news_id)" <view class="tn-flex tn-flex-row-between" @click="openUrl('/pages/index/new_info?id='+item.news_id)"
style="padding: 20rpx;"> style="padding: 20rpx;min-height: 200rpx;">
<view style="margin-left: 20rpx;" v-if="item.news_image"> <view style="margin-left: 20rpx;" v-if="item.news_image">
<image :src="apiImgUrl+item.news_image" mode="aspectFill" <image :src="apiImgUrl+item.news_image" mode="aspectFill"
style="width: 230rpx;height: 180rpx;border-radius: 8rpx;"></image> style="width: 230rpx;height: 180rpx;border-radius: 8rpx;"></image>
@ -291,7 +294,7 @@
this.getAssociationIndex(); this.getAssociationIndex();
this.getCarouselIndex(); this.getCarouselIndex();
this.getMsg(); this.getMsg();
this.getArticlePolicyListAll(); //this.getArticlePolicyListAll();
}, },
methods: { methods: {
msg() { msg() {
@ -423,7 +426,7 @@
activityList({ activityList({
association_id: store.state.Gid, association_id: store.state.Gid,
page: 1, page: 1,
size: 5 size: 10
}) })
.then(res => { .then(res => {
console.log(res); console.log(res);
@ -541,7 +544,7 @@
} }
.rounded_corner { .rounded_corner {
border-radius: 16rpx 16rpx 0rpx 0rpx; //border-radius: 16rpx 16rpx 0rpx 0rpx;
padding-top: 20rpx; padding-top: 20rpx;
} }

View File

@ -113,6 +113,15 @@
var index = data.index; var index = data.index;
that.tabShow = index; that.tabShow = index;
}) })
if (typeof(options.scene) != 'undefined') {
let decodedParams = decodeURIComponent(options.scene);
var searchParams = this.parseQuery(decodedParams);
store.commit('$tStore', {
name: 'Gid',
value: searchParams.gid
})
uni.setStorageSync('Gid', searchParams.gid);
}
}, },
mounted() { mounted() {
@ -122,20 +131,25 @@
// //
return { return {
title: this.name, title: this.name,
path: '/pages/index/index', path: '/pages/index/index?gid=' + store.state.Gid,
imageUrl: this.icon, imageUrl: this.icon,
} }
}, },
onShareTimeline() { // onShareTimeline() { //
return { return {
title: this.name, title: this.name,
path: '/pages/index/index', path: '/pages/index/index?gid=' + store.state.Gid,
imageUrl: this.icon, imageUrl: this.icon,
} }
}, },
methods: { methods: {
preventTouchMove() { parseQuery(queryStr) {
let params = {};
queryStr.split('&').forEach(param => {
let [key, value] = param.split('=');
params[key] = decodeURIComponent(value);
});
return params;
}, },
childEvent(data) { childEvent(data) {
console.log(123); console.log(123);

View File

@ -21,14 +21,16 @@
<view style="bottom:-105rpx;position: absolute;left: 28rpx;"> <view style="bottom:-105rpx;position: absolute;left: 28rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center"> <view class="tn-flex tn-flex-center tn-flex-col-center">
<view style="width: 170rpx;height: 170rpx;position: relative;"> <view style="width: 170rpx;height: 170rpx;position: relative;">
<image :src="apiImgUrl+userThisInfo.photo_image" mode="aspectFill" <image v-if="userThisInfo.photo_image!=null" :src="apiImgUrl+userThisInfo.photo_image"
mode="aspectFill" style="width: 170rpx;height: 170rpx;border-radius: 50%;"></image>
<image v-if="userThisInfo.photo_image==null" src="/static/def.png" mode="aspectFill"
style="width: 170rpx;height: 170rpx;border-radius: 50%;"></image> style="width: 170rpx;height: 170rpx;border-radius: 50%;"></image>
</view> </view>
<view style="margin-left: 10rpx"> <view style="margin-left: 10rpx">
<view style="font-size: 35rpx;color: #ffffff;font-weight: 600">{{userThisInfo.nikename}} <view style="font-size: 35rpx;color: #ffffff;font-weight: 600">{{userThisInfo.nikename}}
</view> </view>
<view style="font-size: 28rpx;margin-top: 10rpx;"> <view style="font-size: 28rpx;margin-top: 10rpx;">
<text>协会职务{{userThisInfo.position_name}}</text> <text>协会职务{{userThisInfo.position_name==null||userThisInfo.position_name==''?'无':userThisInfo.position_name}}</text>
<text style="margin-left: 40rpx">性别{{userThisInfo.gender==0?'女':'男'}}</text> <text style="margin-left: 40rpx">性别{{userThisInfo.gender==0?'女':'男'}}</text>
</view> </view>
<view style="margin-top: 10rpx" v-if="userThisInfo.if_tongyi==0"> <view style="margin-top: 10rpx" v-if="userThisInfo.if_tongyi==0">
@ -59,17 +61,22 @@
style="width: 160rpx;height: 160rpx;background: #d9d9d9;"></view> style="width: 160rpx;height: 160rpx;background: #d9d9d9;"></view>
</view> </view>
<view style="font-size: 24rpx;color: #666666;margin-left: 30rpx;"> <view style="font-size: 24rpx;color: #666666;margin-left: 30rpx;">
<view style="font-size: 36rpx;font-weight: 600;color: #000000">{{userThisInfo.enterprise_name}} <view style="font-size: 36rpx;font-weight: 600;color: #000000">
{{userThisInfo.enterprise_name==null||userThisInfo.enterprise_name==''?'未填写':userThisInfo.enterprise_name}}
</view> </view>
<view style="margin: 15rpx 0rpx"> <view style="margin: 15rpx 0rpx">
所属行业{{userThisInfo.industry_id==-1?'其他行业':userThisInfo.industry_name}}</view> 所属行业{{userThisInfo.industry_id==-1?'其他行业':userThisInfo.industry_name}}</view>
<view>企业地址{{userThisInfo.enterprise_location}}</view> <view>
企业地址{{userThisInfo.enterprise_location==null||userThisInfo.enterprise_location==''?'无':userThisInfo.enterprise_location}}
</view>
</view> </view>
</view> </view>
</view> </view>
<view style="background-color: #ffffff;border-radius: 15rpx;width: 100%;margin: 0 auto;margin-top: 30rpx;"> <view style="background-color: #ffffff;border-radius: 15rpx;width: 100%;margin: 0 auto;margin-top: 30rpx;">
<view style="padding: 20rpx;line-height: 50rpx;" @click="editInfo=true;editType=2"> <view style="padding: 20rpx;line-height: 50rpx;" @click="editInfo=true;editType=2">
<view class="tn-text-ellipsis-10">{{userThisInfo.enterprise_Introduction}}</view> <view class="tn-text-ellipsis-10">
{{userThisInfo.enterprise_Introduction==null||userThisInfo.enterprise_Introduction==''?'无':userThisInfo.enterprise_Introduction}}
</view>
</view> </view>
</view> </view>
</view> </view>
@ -125,7 +132,7 @@
{{userThisInfo.introduction==''||userThisInfo.introduction==null?'无':userThisInfo.introduction}} {{userThisInfo.introduction==''||userThisInfo.introduction==null?'无':userThisInfo.introduction}}
</view> </view>
<view v-if="editType==2"> <view v-if="editType==2">
{{userThisInfo.enterprise_Introduction}} {{userThisInfo.enterprise_Introduction==''||userThisInfo.enterprise_Introduction==null?'无':userThisInfo.enterprise_Introduction}}
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
@ -181,7 +188,13 @@
} else { } else {
this.uid = uid; this.uid = uid;
} }
if (typeof(d.gid) != 'undefined') {
store.commit('$tStore', {
name: 'Gid',
value: d.gid
})
uni.setStorageSync('Gid', d.gid);
}
this.getUserInfo(); this.getUserInfo();
}, },
onShareAppMessage(res) { onShareAppMessage(res) {
@ -189,7 +202,16 @@
console.log(info); console.log(info);
return { return {
title: this.userThisInfo.nikename, title: this.userThisInfo.nikename,
path: '/pages/index/my_card?id=' + this.userThisInfo.member_id, path: '/pages/index/my_card?id=' + this.userThisInfo.member_id + '&gid=' + this.userThisInfo
.association_id,
imageUrl: this.apiImgUrl + this.userThisInfo.photo_image
}
},
onShareTimeline() { //
return {
title: this.userThisInfo.nikename,
path: '/pages/index/my_card?id=' + this.userThisInfo.member_id + '&gid=' + this.userThisInfo
.association_id,
imageUrl: this.apiImgUrl + this.userThisInfo.photo_image imageUrl: this.apiImgUrl + this.userThisInfo.photo_image
} }
}, },

View File

@ -541,10 +541,16 @@
nikename: res.data.nikename, nikename: res.data.nikename,
phone: res.data.phone, phone: res.data.phone,
wx_number: res.data.wx_number, wx_number: res.data.wx_number,
introduction: res.data.introduction, introduction: res.data.introduction == null || res.data.introduction == '' ? '无' : res
enterprise_name: res.data.enterprise_name, .data.introduction,
enterprise_location: res.data.enterprise_location, enterprise_name: res.data.enterprise_name == null || res.data.enterprise_name == '' ?
enterprise_Introduction: res.data.enterprise_Introduction, '无' : res.data.enterprise_name,
enterprise_location: res.data.enterprise_location == null || res.data
.enterprise_location == '' ? '无' : res.data
.enterprise_location,
enterprise_Introduction: res.data.enterprise_Introduction == null || res.data
.enterprise_Introduction == '' ? '无' : res.data
.enterprise_Introduction,
association_id: res.data.association_id, association_id: res.data.association_id,
industry_id: res.data.industry_id, industry_id: res.data.industry_id,
company_image: res.data.company_image, company_image: res.data.company_image,
@ -554,9 +560,9 @@
gender: res.data.gender, gender: res.data.gender,
region_id: res.data.region_id, region_id: res.data.region_id,
}; };
this.region_id_name = res.data.region_name; this.region_id_name = res.data.region_name == null ? '无' : res.data.region_name;
this.industry_id_name = res.data.industry_name; this.industry_id_name = res.data.industry_name == null ? '无' : res.data.industry_name;
this.position_id_name = res.data.position_name; this.position_id_name = res.data.position_name == null ? '无' : res.data.position_name;
this.getIndustry(); this.getIndustry();
this.getPositionList(); this.getPositionList();
this.getRegionList(); this.getRegionList();

View File

@ -25,24 +25,24 @@
fontColor="#ffffff" width="100%">转发到微信好友</tn-button> fontColor="#ffffff" width="100%">转发到微信好友</tn-button>
</view> </view>
</view> </view>
<!-- <view style="padding:20rpx 40rpx">--> <!-- <view style="padding:20rpx 40rpx">-->
<!-- <view style="font-size: 32rpx">我邀请的会员30</view>--> <!-- <view style="font-size: 32rpx">我邀请的会员30</view>-->
<!-- <view>--> <!-- <view>-->
<!-- <view class="tn-flex tn-flex-center tn-flex-col-center" style="padding: 30rpx;width: 100%;">--> <!-- <view class="tn-flex tn-flex-center tn-flex-col-center" style="padding: 30rpx;width: 100%;">-->
<!-- <view>--> <!-- <view>-->
<!-- <image src="/static/def.png" style="width: 100rpx;height: 100rpx;border-radius: 50%;">--> <!-- <image src="/static/def.png" style="width: 100rpx;height: 100rpx;border-radius: 50%;">-->
<!-- </image>--> <!-- </image>-->
<!-- </view>--> <!-- </view>-->
<!-- <view style="width: 100%;">--> <!-- <view style="width: 100%;">-->
<!-- <view class="tn-flex tn-flex-col-center tn-flex-row-between">--> <!-- <view class="tn-flex tn-flex-col-center tn-flex-row-between">-->
<!-- <view style="margin-left: 20rpx;color: #000000">--> <!-- <view style="margin-left: 20rpx;color: #000000">-->
<!-- <view style="font-size: 35rpx;">王小明</view>--> <!-- <view style="font-size: 35rpx;">王小明</view>-->
<!-- </view>--> <!-- </view>-->
<!-- </view>--> <!-- </view>-->
<!-- </view>--> <!-- </view>-->
<!-- </view>--> <!-- </view>-->
<!-- </view>--> <!-- </view>-->
<!-- </view>--> <!-- </view>-->
</view> </view>
<tn-popup :closeBtn="true" v-model="show" mode="center" width="500rpx" height="700rpx"> <tn-popup :closeBtn="true" v-model="show" mode="center" width="500rpx" height="700rpx">
<div style="text-align: center;padding: 30rpx;font-size: 32rpx;font-weight: 600;">使用二维码邀请入会</div> <div style="text-align: center;padding: 30rpx;font-size: 32rpx;font-weight: 600;">使用二维码邀请入会</div>
@ -109,9 +109,9 @@
}) })
}, },
openQrcode() { openQrcode() {
uni.showLoading({ uni.showLoading({
title: '生成中', title: '生成中',
mask:true, mask: true,
}); });
var that = this; var that = this;
uni.request({ uni.request({
@ -143,11 +143,11 @@
console.log('图片保存成功', filePath); console.log('图片保存成功', filePath);
// //
that.show = true; that.show = true;
uni.hideLoading() uni.hideLoading()
}, },
fail: (err) => { fail: (err) => {
console.error('图片保存失败', err); console.error('图片保存失败', err);
uni.hideLoading() uni.hideLoading()
// //
} }
}); });
@ -224,4 +224,4 @@
} }
/* 标签内容 end*/ /* 标签内容 end*/
</style> </style>

View File

@ -59,20 +59,27 @@
onLoad(d) { onLoad(d) {
console.log(d); console.log(d);
this.id = d.id; this.id = d.id;
if (typeof(d.gid) != 'undefined') {
store.commit('$tStore', {
name: 'Gid',
value: d.gid
})
uni.setStorageSync('Gid', d.gid);
}
this.getNewsInfo(); this.getNewsInfo();
}, },
onShareAppMessage() { // onShareAppMessage() { //
// //
return { return {
title: this.info.news_title, title: this.info.news_title,
path: '/pages/index/new_info?id=' + this.info.news_id, path: '/pages/index/new_info?id=' + this.info.news_id + '&gid=' + this.info.association_id,
imageUrl: this.apiImgUrl + this.info.news_image, imageUrl: this.apiImgUrl + this.info.news_image,
} }
}, },
onShareTimeline() { // onShareTimeline() { //
return { return {
title: this.info.news_title, title: this.info.news_title,
path: '/pages/index/new_info?id=' + this.info.news_id, path: '/pages/index/new_info?id=' + this.info.news_id + '&gid=' + this.info.association_id,
imageUrl: this.apiImgUrl + this.info.news_image, imageUrl: this.apiImgUrl + this.info.news_image,
} }
}, },

View File

@ -22,13 +22,13 @@
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
<!-- <view style="position: absolute;top: 10px;right: 10px;"> <view style="position: absolute;top: 10px;right: 10px;" @click="openQrcode">
<view <view
style="position: relative;;width: 70rpx;height: 60rpx;background-color: rgba(255, 255, 255, 0.9);border-radius: 8rpx;box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(12,0,5,0.2);"> style="position: relative;;background-color: rgba(255, 255, 255, 0.9);box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(12,0,5,0.2);">
<image src="/static/c1455.png" mode="widthFix" <text class="tn-icon-qr-code" style="font-size: 40rpx;"></text>
style="width: 40rpx;position: absolute;left: 0;right: 0;margin: 0 auto;top: 15rpx;"></image> </view>
</view> </view>
</view> -->
</view> </view>
</view> </view>
<view style="padding:20rpx 30rpx;"> <view style="padding:20rpx 30rpx;">
@ -141,6 +141,16 @@
</view> </view>
</view> --> </view> -->
<!-- </view> --> <!-- </view> -->
<tn-popup :closeBtn="true" v-model="show" mode="center" width="500rpx" height="600rpx">
<!-- <div style="text-align: center;padding: 30rpx;font-size: 32rpx;font-weight: 600;">使用二维码邀请入会</div> -->
<view style="text-align: center;margin-top: 40rpx;">
<image :src="qrcode_url" style="width: 400rpx;height: 400rpx;"></image>
</view>
<view style="text-align: center;margin-top: 40rpx;">
<tn-button shape="round" backgroundColor="#82B2FF" fontColor="#ffffff"
@click="saveBase64">保存图片</tn-button>
</view>
</tn-popup>
<tn-tabbar :outHeight="140" :height="120" v-model="currentIndex" :list="tabbarList" activeColor="#3377FF" <tn-tabbar :outHeight="140" :height="120" v-model="currentIndex" :list="tabbarList" activeColor="#3377FF"
inactiveColor="#AAAAAA" activeIconColor="#3377FF" inactiveIconColor="#8A8E99" :animation="true" inactiveColor="#AAAAAA" activeIconColor="#3377FF" inactiveIconColor="#8A8E99" :animation="true"
:safeAreaInsetBottom="true" @change="switchTabbar"></tn-tabbar> :safeAreaInsetBottom="true" @change="switchTabbar"></tn-tabbar>
@ -158,6 +168,7 @@
export default { export default {
data() { data() {
return { return {
show: false,
currentIndex: -1, currentIndex: -1,
// tabbar // tabbar
tabbarList: [{ tabbarList: [{
@ -203,6 +214,7 @@
cardCur: 0, cardCur: 0,
info: {}, info: {},
apiImgUrl: this.$store.state.imgUrl, apiImgUrl: this.$store.state.imgUrl,
qrcode_url: '',
architecture: [], architecture: [],
association_id: 0, association_id: 0,
userInfo: {}, userInfo: {},
@ -217,6 +229,63 @@
this.getArchitectureList(); this.getArchitectureList();
}, },
methods: { methods: {
openQrcode() {
uni.showLoading({
title: '生成中',
mask: true,
});
var that = this;
uni.request({
url: store.state.apiUrl + '/move/login/getUnlimitedQRCode',
method: 'POST',
data: {
path: 'pages/index/index',
scene: "gid=" + this.association_id
},
responseType: 'arraybuffer',
arraybuffer: true,
success: (result) => {
const url = 'data:image/png;base64,' + uni.arrayBufferToBase64(result.data);
that.base64ToImage(url);
}
})
},
base64ToImage(base64Data) {
var that = this;
const fs = uni.getFileSystemManager();
var filePath = wx.env.USER_DATA_PATH + '/qrcode.jpg';
const base64 = base64Data.split(',')[1]; // base64
fs.writeFile({
filePath: filePath,
data: base64,
encoding: 'base64',
success: (res) => {
that.qrcode_url = filePath;
console.log('图片保存成功', filePath);
//
that.show = true;
uni.hideLoading()
},
fail: (err) => {
console.error('图片保存失败', err);
uni.hideLoading()
//
}
});
},
saveBase64() {
wx.saveImageToPhotosAlbum({
filePath: this.qrcode_url,
success: function(res) {
wx.showToast({
title: '保存成功',
})
},
fail: function(err) {
console.log(err, '失败')
}
})
},
tab_change(d) { tab_change(d) {
this.tab_current = d; this.tab_current = d;
this.type = d + 1; this.type = d + 1;

View File

@ -17,7 +17,9 @@
<view style="margin-left: 20rpx;color: #fff" <view style="margin-left: 20rpx;color: #fff"
@click="tn_ru('/pages/index/my_card?id='+userInfo.member_id)"> @click="tn_ru('/pages/index/my_card?id='+userInfo.member_id)">
<view style="font-size: 35rpx;">{{ userInfo.nikename }}</view> <view style="font-size: 35rpx;">{{ userInfo.nikename }}</view>
<view style="font-size: 24rpx;margin-top: 10rpx;">{{userInfo.position_name}}</view> <view v-if="userInfo.position_name!=null" style="font-size: 24rpx;margin-top: 10rpx;">
{{userInfo.position_name}}
</view>
</view> </view>
<view @click="tn('/pages/index/my_edit')"> <view @click="tn('/pages/index/my_edit')">
<image src="/static/ico13.png" style="width: 40rpx ;" mode="widthFix"></image> <image src="/static/ico13.png" style="width: 40rpx ;" mode="widthFix"></image>
@ -25,7 +27,8 @@
</view> </view>
<view v-if="!login" class="tn-flex tn-flex-col-center tn-flex-row-between"> <view v-if="!login" class="tn-flex tn-flex-col-center tn-flex-row-between">
<view style="margin-left: 20rpx;color: #fff"> <view style="margin-left: 20rpx;color: #fff">
<tn-button @click="loginMod = true">点击登陆</tn-button> <!-- <tn-button @click="loginMod = true">点击登陆</tn-button> -->
<tn-button open-type="getPhoneNumber" @getphonenumber="PhoneLogin">点击登陆</tn-button>
</view> </view>
<!-- <view @click="tn('/pages/index/my_edit')">--> <!-- <view @click="tn('/pages/index/my_edit')">-->
<!-- <image src="/static/ico13.png" style="width: 40rpx ;" mode="widthFix"></image>--> <!-- <image src="/static/ico13.png" style="width: 40rpx ;" mode="widthFix"></image>-->
@ -74,13 +77,13 @@
</view> </view>
<view style="background-color: #fff;"> <view style="background-color: #fff;">
<view style="padding:0px 20rpx;"> <view style="padding:0px 20rpx;">
<tn-list-cell :arrow="true" @click="tn('/pages/index/my_card_holder')"> <tn-list-cell v-if="login" :arrow="true" @click="tn('/pages/index/my_card_holder')">
<view class="tn-flex tn-flex-center tn-flex-col-center"> <view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/icon13.png" style="width: 50rpx;height: 50rpx"></image> <image src="/static/icon13.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">名片夹</view> <view style="margin-left: 20rpx;">名片夹</view>
</view> </view>
</tn-list-cell> </tn-list-cell>
<tn-list-cell :arrow="true" @click="tn('/pages/index/my_edit')"> <tn-list-cell v-if="login" :arrow="true" @click="tn('/pages/index/my_edit')">
<view class="tn-flex tn-flex-center tn-flex-col-center"> <view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/icon14.png" style="width: 50rpx;height: 50rpx"></image> <image src="/static/icon14.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">信息修改</view> <view style="margin-left: 20rpx;">信息修改</view>
@ -107,7 +110,7 @@
fontColor="#ffffff">{{msg()}}</tn-badge> fontColor="#ffffff">{{msg()}}</tn-badge>
</view> </view>
</tn-list-cell> </tn-list-cell>
<tn-list-cell :arrow="true" @click="tn('/pages/index/my_invite')"> <tn-list-cell v-if="login" :arrow="true" @click="tn('/pages/index/my_invite')">
<view class="tn-flex tn-flex-center tn-flex-col-center"> <view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico10.png" style="width: 50rpx;height: 50rpx"></image> <image src="/static/ico10.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">邀请入会</view> <view style="margin-left: 20rpx;">邀请入会</view>
@ -119,13 +122,26 @@
<!-- <view style="margin-left: 20rpx;">常见问题</view>--> <!-- <view style="margin-left: 20rpx;">常见问题</view>-->
<!-- </view>--> <!-- </view>-->
<!-- </tn-list-cell>--> <!-- </tn-list-cell>-->
<tn-list-cell v-if="userInfo.shenhe==1&&login" :arrow="true"
<!-- <tn-list-cell :arrow="true" @click="tn('/pages/index/my_idea')"> @click="tn('/pages/index/user_auditing')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/icon15.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">内容审核</view>
</view>
</tn-list-cell>
<tn-list-cell v-if="userInfo.shenhe==1&&login" :arrow="true"
@click="tn('/pages/index/user_activity')">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico16.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">发布活动</view>
</view>
</tn-list-cell>
<tn-list-cell :arrow="true" @click="tn('/pages/index/my_idea')">
<view class="tn-flex tn-flex-center tn-flex-col-center"> <view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico12.png" style="width: 50rpx;height: 50rpx"></image> <image src="/static/ico12.png" style="width: 50rpx;height: 50rpx"></image>
<view style="margin-left: 20rpx;">意见反馈</view> <view style="margin-left: 20rpx;">意见反馈</view>
</view> </view>
</tn-list-cell> --> </tn-list-cell>
<tn-list-cell :arrow="true" @click="loginAut"> <tn-list-cell :arrow="true" @click="loginAut">
<view class="tn-flex tn-flex-center tn-flex-col-center"> <view class="tn-flex tn-flex-center tn-flex-col-center">
<image src="/static/ico11.png" style="width: 50rpx;height: 50rpx"></image> <image src="/static/ico11.png" style="width: 50rpx;height: 50rpx"></image>
@ -173,13 +189,15 @@
</view> </view>
<view style="height: 120rpx;"></view> <view style="height: 120rpx;"></view>
</tn-popup> </tn-popup>
</view> </view>
</template> </template>
<script> <script>
import { import {
getUserIndex, getUserIndex,
loginDo loginDo,
wxphoneLogin
} from "@/util/api"; } from "@/util/api";
import store from "@/store"; import store from "@/store";
@ -213,6 +231,42 @@
this.getcheckCode(); this.getcheckCode();
}, },
methods: { methods: {
PhoneLogin(d) {
console.log(d);
var openid = uni.getStorageSync('openid');
wxphoneLogin({
code: d.code,
openid: openid
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showToast({
title: '登陆成功!',
icon: 'none',
duration: 2000
});
uni.setStorageSync('uid', res.data.id);
uni.setStorageSync('userInfo', res.data);
this.userInfo = res.data;
this.login = true;
this.loginMod = false;
} else {
uni.showToast({
title: '登陆失败!',
icon: 'none',
duration: 2000
});
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
getcheckCode() { getcheckCode() {
let code = []; let code = [];
const codeLength = 4; const codeLength = 4;
@ -291,6 +345,7 @@
duration: 2000 duration: 2000
}); });
uni.setStorageSync('uid', res.data.id); uni.setStorageSync('uid', res.data.id);
uni.setStorageSync('userInfo', res.data);
this.userInfo = res.data; this.userInfo = res.data;
this.login = true; this.login = true;
this.loginMod = false; this.loginMod = false;
@ -336,10 +391,49 @@
}, },
tn(e) { tn(e) {
var uid = uni.getStorageSync('uid'); var uid = uni.getStorageSync('uid');
if (!uid) { console.log(this.userInfo);
this.loginMod = true; if (!this.login) {
uni.showToast({
title: '请登陆后查看',
icon: 'none',
duration: 2000
});
return; return;
} }
if (this.userInfo.if_member == 2) {
if (e == '/pages/index/my_edit') {
uni.showToast({
title: '请入会后查看',
icon: 'none',
duration: 2000
});
return;
}
if (e.includes("/pages/index/my_invite")) {
uni.showToast({
title: '请入会后查看',
icon: 'none',
duration: 2000
});
return;
}
if (e.includes("/pages/index/pizz_info")) {
uni.showToast({
title: '请入会后查看',
icon: 'none',
duration: 2000
});
return;
}
if (e.includes("/pages/index/my_card")) {
uni.showToast({
title: '请入会后查看',
icon: 'none',
duration: 2000
});
return;
}
}
uni.navigateTo({ uni.navigateTo({
url: e url: e
}) })

View File

@ -0,0 +1,511 @@
<template>
<view style="letter-spacing: 1rpx;background: #ebf4f7;min-height: 100vh;">
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="false" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;width: 85%;">
<view>添加活动</view>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view style="padding: 30rpx;">
<view style="background-color: #FFF;border-radius: 15rpx;padding: 20rpx;">
<tn-form :labelWidth="140">
<tn-form-item prop="activity_name">
<tn-input v-model="formData.activity_name" :customStyle="{width: '600rpx'}"
placeholder="请填写活动标题" />
</tn-form-item>
<tn-form-item label="活动主图">
<tn-input :disabled="true" :clearable="false" @click="upload_img" />
<view slot="right" @click="upload_img">
<view>
<text v-if="formData.activity_image==''">请上传活动主图</text>
<image class="no-img" v-if="formData.activity_image!=''"
:src="apiImgUrl+formData.activity_image"
style="width: 100rpx;vertical-align: middle;" mode="widthFix"></image>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-form-item label="活动类型">
<tn-input :disabled="true" :clearable="false" />
<view slot="right">
<view>
<text>协会活动</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-form-item label="报名开始时间" :labelWidth="200">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="start_sign_time_show = true">
<view>
<text>{{ formData.signup_start_time == '' ? '请选择报名开始时间' : formData.signup_start_time }}
</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-picker mode="time" @confirm="start_sign_time_do" v-model="start_sign_time_show"
:params="{year: true,month: true,day: true,hour: true,minute: true,second: false}"></tn-picker>
<tn-form-item label="报名结束时间" :labelWidth="200">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="end_sign_time_show = true">
<view>
<text>{{ formData.signup_end_time == '' ? '请选择报名结束时间' : formData.signup_end_time }}</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-picker mode="time" @confirm="end_sign_time_do" v-model="end_sign_time_show"
:params="{year: true,month: true,day: true,hour: true,minute: true,second: false}"></tn-picker>
<tn-form-item label="活动开始时间" :labelWidth="200">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="start_time_show = true">
<view>
<text>{{ formData.activity_start_time == '' ? '请选择活动开始时间' : formData.activity_start_time }}
</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-picker mode="time" @confirm="start_time_do" v-model="start_time_show"
:params="{year: true,month: true,day: true,hour: true,minute: true,second: false}"></tn-picker>
<tn-form-item label="活动结束时间" :labelWidth="200">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="end_time_show = true">
<view>
<text>{{ formData.activity_end_time == '' ? '请选择活动结束时间' : formData.activity_end_time }}</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-picker mode="time" @confirm="end_time_do" v-model="end_time_show"
:params="{year: true,month: true,day: true,hour: true,minute: true,second: false}"></tn-picker>
<tn-form-item label="活动地址">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="open_mode(0)">
<view>
<text>{{ formData.activity_location == '' ? '请输入活动地址' : formData.activity_location }}</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-form-item label="显示报名人数" :labelWidth="200">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="display_show = true">
<view>
<text>{{ check_display(formData.if_display_registrants,1) }}</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-select v-model="display_show" mode="single" :list="list" @confirm="display_do"
:searchShow="true"></tn-select>
<tn-form-item label="报名范围" :labelWidth="200">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="display_range_show = true">
<view>
<text>{{ check_display(formData.range,2) }}</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-select v-model="display_range_show" mode="single" :list="range_list"
@confirm="display_range_do" :searchShow="true"></tn-select>
<tn-form-item label="报名审核" :labelWidth="200">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="display_if_auditing_show = true">
<view>
<text>{{ check_display(formData.if_auditing,3) }}</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-select v-model="display_if_auditing_show" mode="single" :list="if_auditing_list"
@confirm="display_if_auditing_do" :searchShow="true"></tn-select>
<tn-form-item label="报名人数">
<tn-input v-model="formData.number" :clearable="false" :customStyle="{width: '500rpx'}"
placeholder="请填写报名人数(0为不限制)" />
</tn-form-item>
<tn-form-item label="签到" :labelWidth="200">
<tn-input :disabled="true" :clearable="false" />
<view slot="right" @click="display_if_sign_show = true">
<view>
<text>{{ check_display(formData.if_sign,4) }}</text>
<text class="tn-icon-right"></text>
</view>
</view>
</tn-form-item>
<tn-select v-model="display_if_sign_show" mode="single" :list="if_sign_list"
@confirm="display_if_sign_do" :searchShow="true"></tn-select>
</tn-form>
</view>
<view style="background-color: #FFF;border-radius: 15rpx;padding: 20rpx;margin-top: 25rpx;">
<tn-input v-model="activity_content" :disabled="true" placeholder="请输入活动内容" type="textarea"
:maxLength="-1" :height="300" @click="editText= true" :clearable="false" />
</view>
<view style="margin: 0 auto;margin-top: 40rpx;text-align: center;">
<tn-button @click="submitDo" backgroundColor="#3F8BF2" height="90rpx" width="90%" shape="round"
fontColor="#ffffff">发布
</tn-button>
</view>
</view>
</view>
<tn-modal v-model="addMod" :custom="true">
<view class="custom-modal-content">
<view style="text-align: center;font-size: 34rpx;">活动地址</view>
<view class="text">
<tn-form ref="form" :labelWidth="180">
<tn-form-item label="活动地址" prop="content">
<tn-input type="text" placeholder="填写活动地址" v-model="formData.activity_location" />
</tn-form-item>
</tn-form>
<view style="text-align: center;margin-top: 30rpx;">
<tn-button backgroundColor="#E6E6E6" fontColor="#ffffff" @click="addMod = false">取消</tn-button>
<tn-button backgroundColor="tn-bg-blue" fontColor="tn-color-white" style="margin-left: 30rpx"
@click="addMod = false">确定
</tn-button>
</view>
</view>
</view>
</tn-modal>
<tn-popup v-model="editText" mode="right" width="100%">
<tn-nav-bar :isBack="false" backTitle="" :alpha="true" :bottomShadow="false">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="editText = false">
<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="0" activeColor="#000" :bold="false"
:fontSize="24"></tn-tabs>
</view>
</view>
</tn-nav-bar>
<view style="background-color: #FFFFFF;">
<view :style="{paddingTop: vuex_custom_bar_height+'px'}"></view>
<view style="margin:0rpx 30rpx;background-color: #ffffff;border-radius: 40rpx;">
<scroll-view scroll-y class="home" style="height: 1200rpx;">
<view class="editor-box">
<sp-editor placeholder="活动内容" :toolbarConfig="{
excludeKeys: ['direction', 'date', 'listCheck','link','export'],
iconSize: '18px',
}" @input="inputOver" @init="initEditor" @upinImage="upinImage"></sp-editor>
</view>
</scroll-view>
</view>
</view>
<view style="margin: 0 auto;margin-top: 40rpx;text-align: center;">
<tn-button @click="editTextRes" backgroundColor="#3F8BF2" height="90rpx" width="90%" shape="round"
fontColor="#ffffff">确定
</tn-button>
</view>
</tn-popup>
<tn-modal v-if="qrcode_show" v-model="qrcode_show" :custom="true" :maskCloseable="false">
<view style="text-align: center;margin: 30rpx 0rpx;font-size: 32rpx;font-weight: 600;">请保存签到二维码</view>
<view style="text-align: center;width: 250rpx;margin:0rpx auto;">
<l-painter ref="painter" css="background: #fff;width: 250rpx;text-align: center;">
<l-painter-qrcode :text="qrcode_url" css="width: 250rpx; height: 250rpx" />
</l-painter>
</view>
<view style="text-align: center;margin-top: 50rpx;">
<tn-button @click="insQrcode" shape="round" width="80%" backgroundColor="#3F8BF2"
fontColor="#ffffff">保存</tn-button>
</view>
</tn-modal>
</view>
</template>
<script>
import {
activityAdd
} from "@/util/api";
import store from "@/store";
export default {
data() {
return {
qrcode_show: false,
qrcode_url: '',
editorIns: null,
editText: false,
addMod: false,
end_time_show: false,
start_time_show: false,
start_sign_time_show: false,
end_sign_time_show: false,
display_if_auditing_show: false,
display_range_show: false,
display_show: false,
display_if_sign_show: false,
formData: {
activity_name: '',
activity_image: '',
activity_content: '',
activity_start_time: '',
activity_end_time: '',
signup_start_time: '',
signup_end_time: '',
activity_location: '',
activity_type: 1,
if_display_registrants: 1,
range: 3,
if_auditing: 1,
number: '',
if_sign: 1,
},
activity_content: '',
apiImgUrl: this.$store.state.imgUrl,
apiUpUrl: this.$store.state.apiUrl,
list: [{
value: 1,
label: '显示'
}, {
value: 2,
label: '不显示'
}],
range_list: [{
value: 1,
label: '会员'
}, {
value: 3,
label: '不限制'
}],
if_auditing_list: [{
value: 1,
label: '否'
}, {
value: 2,
label: '是'
}],
if_sign_list: [{
value: 1,
label: '否'
}, {
value: 2,
label: '是'
}],
addID: 0,
}
},
methods: {
submitDo() {
var user_info = uni.getStorageSync('userInfo');
if (user_info.association_id == 0 || user_info.if_member == 2 || user_info.if_xianshi != 1) {
uni.showToast({
title: '暂无权限!',
icon: 'none',
duration: 2000
});
return;
}
activityAdd({
association_id: user_info.association_id,
...this.formData
})
.then(res => {
console.log(res);
if (res.code == 1) {
this.addID = res.data;
uni.showToast({
title: '发布成功!',
icon: 'none',
duration: 2000
});
if (this.formData.if_sign == 2) {
this.qrcode_url = store.state.apiUrl + '?id=' + res.data + '&association_id=' +
user_info.association_id,
setTimeout(() => {
this.qrcode_show = true;
}, 500)
} else {
setTimeout(() => {
uni.redirectTo({
url: '/pages/index/event_info?id=' + res.data
})
}, 1000)
}
} else {
uni.showModal({
title: '提示',
content: res.msg
});
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
inputOver(e) {
//
this.formData.activity_content = e.html;
},
editTextRes() {
// 使<img>[]
let replacedContent = this.formData.activity_content.replace(/<img[^>]*>/g, '[图片]');
// 使HTML[]
let textWithImagesOnly = replacedContent.replace(/<[^>]+>/g, '');
this.activity_content = textWithImagesOnly;
this.editText = false;
},
initEditor(editor) {
this.editorIns = editor; //
},
upinImage(tempFiles, editorCtx) {
var that = this;
uni.uploadFile({
url: that.apiUpUrl + '/common/upload', //
filePath: tempFiles[0].tempFilePath,
name: 'file',
success: (uploadFileRes) => {
var data = JSON.parse(uploadFileRes.data);
console.log(data);
editorCtx.insertImage({
src: data.data.fullurl,
width: "80%", // 100%便
success: function() {},
});
}
});
},
upload_img() {
var user_info = uni.getStorageSync('userInfo');
var that = this;
uni.chooseMedia({
count: 1, //9
mediaType: ['image'],
sizeType: ['original', 'compressed'], //
sourceType: ['album'], //
success: function(res) {
console.log(res);
var url = res.tempFiles[0].tempFilePath;
uni.uploadFile({
url: that.apiUpUrl + '/common/upload', //
filePath: url,
name: 'file',
formData: {
association_id: user_info.association_id,
},
success: (uploadFileRes) => {
var data = JSON.parse(uploadFileRes.data);
console.log(data);
that.formData.activity_image = data.data.url;
}
});
}
});
},
insQrcode() {
var that = this;
this.$refs.painter.canvasToTempFilePathSync({
// nvuejpeg
fileType: "png",
quality: 1,
pathType: 'url',
success: (res) => {
console.log(res.tempFilePath);
// H5
// H5
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: function() {
uni.showToast({
title: '保存成功!',
icon: 'none',
duration: 2000
});
setTimeout(() => {
uni.redirectTo({
url: '/pages/index/event_info?id=' + that
.addID
})
}, 500)
},
fail: function(err) {
console.log(err, '失败')
}
});
},
});
},
check_display(d, type) {
if (type == 1) {
const info = this.list.find(item => item.value === d);
return info.label;
}
if (type == 2) {
const info = this.range_list.find(item => item.value === d);
return info.label;
}
if (type == 3) {
const info = this.if_auditing_list.find(item => item.value === d);
return info.label;
}
if (type == 4) {
const info = this.if_sign_list.find(item => item.value === d);
return info.label;
}
},
display_do(d) {
var info = d[0];
this.formData.if_display_registrants = info.value;
},
display_range_do(d) {
var info = d[0];
this.formData.range = info.value;
},
display_if_auditing_do(d) {
var info = d[0];
this.formData.if_auditing = info.value;
},
display_if_sign_do(d) {
var info = d[0];
this.formData.if_sign = info.value;
},
open_mode(d) {
this.addMod = true;
},
end_time_do(d) {
this.formData.activity_end_time = d.year + '-' + d.month + '-' + d.day + ' ' + d.hour + ':' + d.minute;
},
start_time_do(d) {
this.formData.activity_start_time = d.year + '-' + d.month + '-' + d.day + ' ' + d.hour + ':' + d.minute;
},
start_sign_time_do(d) {
this.formData.signup_start_time = d.year + '-' + d.month + '-' + d.day + ' ' + d.hour + ':' + d.minute;
},
end_sign_time_do(d) {
this.formData.signup_end_time = d.year + '-' + d.month + '-' + d.day + ' ' + d.hour + ':' + d.minute;
},
goBack() {
if (getCurrentPages().length > 1) {
uni.navigateBack()
} else {
uni.redirectTo({
url: '/pages/index/index'
})
}
},
}
}
</script>
<style>
.no-img {
width: 0;
height: 0;
}
</style>

View File

@ -0,0 +1,258 @@
<template>
<view style="letter-spacing: 1rpx;background: #ebf4f7;min-height: 100vh;">
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="false" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;width: 85%;">
<view>智慧云商协</view>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view
style="z-index: 100;;position: fixed;;width: 100%;margin: 0 auto;background-color: #ffffff;padding: 0rpx 50rpx;">
<tn-tabs :list="list" activeColor="#3f8bf2" backgroundColor="#FFFFFF" :isScroll="false"
:current="current" name="name" @change="change"></tn-tabs>
</view>
<view style="padding: 30rpx;margin-top: 90rpx;">
<view class="tn-flex tn-flex-col-center" style="margin-bottom: 40rpx;">
<view @click="changeXs(0)"
:style="{'color': if_xianshi==0?'#ffffff':'#000000','background-color': if_xianshi==0?'#3f8bf2':'#FFF','border-radius': '50rpx','padding': '10rpx 30rpx'}">
待审核
</view>
<view @click="changeXs(1)"
:style="{'color': if_xianshi==1?'#ffffff':'#000000','background-color': if_xianshi==1?'#3f8bf2':'#FFF','border-radius': '50rpx','padding': '10rpx 30rpx','margin':'0rpx 20rpx'}">
已通过
</view>
<view @click="changeXs(2)"
:style="{'color': if_xianshi==2?'#ffffff':'#000000','background-color': if_xianshi==2?'#3f8bf2':'#FFF','border-radius': '50rpx','padding': '10rpx 30rpx'}">
已拒绝
</view>
</view>
<view v-for="item in all_list"
@click="openUrl('/pages/index/user_auditing_info?id='+item.id+'&type='+item.type)"
style="margin-bottom: 30rpx;box-shadow: 0rpx 10rpx 10rpx #d2e0f2;background: #ffffff;border-radius: 20rpx;padding: 30rpx 20rpx;position: relative;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<view>
<text class="tn-icon-my-fill" style="color: #3f8bf2;"></text>
<text style="margin-left: 10rpx;">申请人</text>
<text style="margin-left: 50rpx;">{{item.nikename}}</text>
</view>
<view>
<text style="color: #3f8bf2;">查看</text>
</view>
</view>
<view style="width: 100%;margin: 20rpx auto;border: 1rpx solid #d9d9d961;"></view>
<view>
<text>申请事项</text>
<text style="margin-left: 50rpx;">{{item.type==1?'修改申请':'入会申请'}}</text>
</view>
<view style="margin: 25rpx 0rpx;">
<text>审核状态</text>
<text style="margin-left: 50rpx;" v-if="item.if_xianshi==0">待审核</text>
<text style="margin-left: 50rpx;" v-if="item.if_xianshi==1">已通过</text>
<text style="margin-left: 50rpx;" v-if="item.if_xianshi==2">已拒绝</text>
</view>
<view>
<text>申请时间</text>
<text style="margin-left: 50rpx;">{{item.createtime}}</text>
</view>
<image v-if="item.if_xianshi==0" src="/static/sh.png"
style="width: 140rpx;height: 140rpx;position: absolute;top: 140rpx;right: 30rpx;">
</image>
<image v-if="item.if_xianshi==1" src="/static/tg.png"
style="width: 140rpx;height: 140rpx;position: absolute;top: 140rpx;right: 30rpx;">
</image>
<image v-if="item.if_xianshi==2" src="/static/jj.png"
style="width: 140rpx;height: 140rpx;position: absolute;top: 140rpx;right: 30rpx;">
</image>
<view v-if="item.if_xianshi==0" class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-around"
style="color: #FFF;text-align: center;margin-top: 40rpx;">
<view @click.stop="openModal(item,2)"
style="color: #ffffff;line-height: 76rpx;width: 240rpx;height: 76rpx;background: #d54941;border-radius: 76rpx;">
拒绝</view>
<view @click.stop="openModal(item,1)"
style="color: #ffffff;line-height: 76rpx;width: 240rpx;height: 76rpx;background: #3464ec;border-radius: 76rpx;">
通过</view>
</view>
</view>
</view>
</view>
<tn-modal v-model="show" :title="title" :content="content" :button="button" @click="dian"></tn-modal>
</view>
</template>
<script>
import {
getAuditing,
auditingUpadte
} from '@/util/api.js';
import store from "@/store";
export default {
data() {
return {
list: [{
name: '全部申请'
}, {
name: '信息修改'
}, {
name: '入会申请',
}],
page: 1,
all_list: [],
current: 0,
if_xianshi: 0,
show: false,
title: '提示信息',
content: '提示信息的内容',
button: [{
text: '取消',
backgroundColor: '#F4F4F4',
fontColor: '#000000',
plain: true,
shape: 'round'
},
{
text: '确定',
backgroundColor: '#548ceb',
fontColor: '#FFFFFF'
}
],
key: 0,
key_info: {}
}
},
onLoad() {
var that = this;
this.getAuditingList();
uni.$on('onload', function(data) {
that.page = 1;
that.all_list = [];
that.getAuditingList();
})
},
onReachBottom() {
this.page += 1;
this.getAuditingList();
},
methods: {
setAuditing() {
var user_info = uni.getStorageSync('userInfo');
var member_id = this.key_info.type == 1 ? this.key_info.member_id : this.key_info.id;
var content = '';
if (this.key == 1) {
content = this.key_info.type == 1 ? '您提交的资料修改申请已通过审核!' : '您提交的入会申请已通过审核!';
} else {
content = this.key_info.type == 2 ? '您提交的资料修改申请已被拒绝!' : '您提交的入会申请已被拒绝!';
}
auditingUpadte({
association_id: user_info.association_id,
member_id: member_id,
if_xianshi: this.key,
type: this.key_info.type,
content: content,
id: this.key_info.id
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
this.page = 1;
this.all_list = [];
this.getAuditingList();
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
this.show = false;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
dian(d) {
if (d.index == 1) {
this.setAuditing();
} else {
this.show = false;
}
},
openModal(info, key) {
console.log(key);
this.key_info = info;
this.key = key;
this.show = true;
this.title = key == 1 ? '通过申请' : '拒绝申请';
this.content = key == 1 ? '确认要通过申请吗?' : '确认要拒绝申请吗?';
},
change(d) {
this.current = d;
this.page = 1;
this.if_xianshi = 0;
this.all_list = [];
this.getAuditingList();
},
changeXs(d) {
this.page = 1;
this.all_list = [];
this.if_xianshi = d;
this.getAuditingList();
},
getAuditingList() {
var user_info = uni.getStorageSync('userInfo');
getAuditing({
association_id: user_info.association_id,
page: this.page,
size: 10,
if: this.current,
if_xianshi: this.if_xianshi,
})
.then(res => {
console.log(res);
if (res.code == 1) {
this.all_list.push(...res.data);
}
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
openUrl(url) {
uni.navigateTo({
url: url
})
},
goBack() {
if (getCurrentPages().length > 1) {
uni.navigateBack()
} else {
uni.redirectTo({
url: '/pages/index/index'
})
}
},
}
}
</script>
<style>
</style>

View File

@ -0,0 +1,330 @@
<template>
<view style="letter-spacing: 1rpx;background: #ebf4f7;min-height: 100vh;">
<tn-nav-bar :isBack="false" backTitle="" :bottomShadow="false" backgroundColor="#FFFFFF">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="goBack()">
<text class="tn-icon-left" style="font-size: 40rpx;"></text>
</view>
<view style="text-shadow: 1rpx 0 0 #FFF, 0 1rpx 0 #FFF, -1rpx 0 0 #FFF , 0 -1rpx 0 #FFF;width: 85%;">
<view>审请详情</view>
</view>
</view>
</tn-nav-bar>
<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
<view style="padding:20rpx 20rpx 300rpx 20rpx;">
<view
style="margin-bottom: 30rpx;box-shadow: 0rpx 10rpx 10rpx #d2e0f2;background: #ffffff;border-radius: 20rpx;padding: 30rpx 20rpx;position: relative;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-between">
<view>
<text
style="font-size: 35rpx;font-weight: 600;">{{onloadData.type==1?'申请人信息':'推荐人信息'}}</text>
</view>
</view>
<view style="width: 100%;margin: 20rpx auto;border: 1rpx solid #d9d9d961;"></view>
<view v-if="info.find!=''" class="tn-flex tn-flex-center tn-flex-col-center"
style="padding: 10rpx 0rpx;">
<view>
<image :src="apiImgUrl+info.find.photo_image"
style="border-radius: 50%;width: 100rpx;height: 100rpx"></image>
</view>
<view style="margin-left: 20rpx;">
<view>
<text style="font-size: 32rpx;font-weight: 600;">{{info.find.nikename}}</text>
<text
style="font-size: 28rpx;color: #666666;margin-left: 20rpx;">{{info.find.position_name}}</text>
</view>
<view style="margin-top: 10rpx;">
<text style="color: #4a5c72;">{{info.find.enterprise_name}}</text>
</view>
</view>
</view>
<view v-if="info.find==''">
暂无推荐人
</view>
</view>
<view
style="margin-bottom: 30rpx;box-shadow: 0rpx 10rpx 10rpx #d2e0f2;background: #ffffff;border-radius: 20rpx;padding: 30rpx 20rpx;position: relative;">
<view class="tn-flex tn-flex-center tn-flex-col-center">
<view>
<text style="font-size: 35rpx;font-weight: 600;">申请详情</text>
</view>
<view v-if="onloadData.type==2">
<view v-if="info.member.if_xianshi==0"
style="margin-left: 30rpx;text-align: center;line-height: 50rpx;width: 120rpx;height: 50rpx;color: #FFF;background-color: #FFBE77;border-radius: 10rpx;">
审核中</view>
<view v-if="info.member.if_xianshi==1"
style="margin-left: 30rpx;text-align: center;line-height: 50rpx;width: 120rpx;height: 50rpx;color: #FFF;background-color: #3F8BF2;border-radius: 10rpx;">
已通过</view>
<view v-if="info.member.if_xianshi==2"
style="margin-left: 30rpx;text-align: center;line-height: 50rpx;width: 120rpx;height: 50rpx;color: #FFF;background-color: #E60000;border-radius: 10rpx;">
已拒绝</view>
</view>
<view v-if="onloadData.type==1">
<view v-if="info.find.if_xianshi==0"
style="margin-left: 30rpx;text-align: center;line-height: 50rpx;width: 120rpx;height: 50rpx;color: #FFF;background-color: #FFBE77;border-radius: 10rpx;">
审核中</view>
<view v-if="info.find.if_xianshi==1"
style="margin-left: 30rpx;text-align: center;line-height: 50rpx;width: 120rpx;height: 50rpx;color: #FFF;background-color: #3F8BF2;border-radius: 10rpx;">
已通过</view>
<view v-if="info.find.if_xianshi==2"
style="margin-left: 30rpx;text-align: center;line-height: 50rpx;width: 120rpx;height: 50rpx;color: #FFF;background-color: #E60000;border-radius: 10rpx;">
已拒绝</view>
</view>
</view>
<view style="width: 100%;margin: 20rpx auto;border: 1rpx solid #d9d9d961;"></view>
<view style="padding: 10rpx 0rpx;">
<view v-if="onloadData.type==2" style="margin-left: 20rpx;color: #5b5b5b;">
<view style="margin-top: 15rpx;">
<text style="">手机号</text>
<text>{{info.member.phone}}</text>
</view>
<view style="margin-top: 15rpx;">
<text style="">真实姓名</text>
<text style="">{{info.member.nikename}}</text>
</view>
<view style="margin-top: 15rpx;">
<text style="">性别</text>
<text style="">{{info.member.gender==0?'女':'男'}}</text>
</view>
<view style="margin-top: 15rpx;">
<text style="">企业名称</text>
<text style="">{{info.member.enterprise_name}}</text>
</view>
</view>
<view v-if="onloadData.type==1" style="margin-left: 20rpx;color: #5b5b5b;">
<view v-if="info.member_log.background_image" class="tn-flex" style="margin-top: 10rpx;">
<view style="width: 200rpx;">更改背景</view>
<image :src="apiImgUrl+info.member_log.background_image" style="height: 200rpx;"
mode="heightFix"></image>
</view>
<view v-if="info.member_log.photo_image" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">形象照</view>
<image :src="apiImgUrl+info.member_log.photo_image"
style="height: 100rpx;width: 100rpx;"></image>
</view>
<view v-if="info.member_log.nikename" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">姓名</view>
<view>{{info.member_log.nikename}}</view>
</view>
<view v-if="info.member_log.gender_name" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">性别</view>
<view>{{info.member_log.gender_name}}</view>
</view>
<view v-if="info.member_log.phone" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">联系方式</view>
<view>{{info.member_log.phone}}</view>
</view>
<view v-if="info.member_log.introduction" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">个人经历</view>
<view @click="infoShow = true;infoType=1;"
style="padding: 10rpx;width: 500rpx;background-color: #F5F5F5;border-radius: 5rpx;">
<view class="tn-text-ellipsis-3">{{info.member_log.introduction}}</view>
</view>
</view>
<view v-if="info.member_log.enterprise_name" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">公司名称</view>
<view>{{info.member_log.enterprise_name}}</view>
</view>
<view v-if="info.member_log.industry_id" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">公司行业</view>
<view>{{info.member_log.industry_id==-1?'其他行业':info.member_log.industry_name}}</view>
</view>
<view v-if="info.member_log.company_image" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">公司Logo</view>
<image :src="apiImgUrl+info.member_log.company_image"
style="height: 100rpx;width: 100rpx;"></image>
</view>
<view v-if="info.member_log.enterprise_location" class="tn-flex" style="margin-top: 30rpx;">
<view style="width: 200rpx;">公司地址</view>
<view>{{info.member_log.enterprise_location}}</view>
</view>
<view v-if="info.member_log.enterprise_Introduction" class="tn-flex"
style="margin-top: 30rpx;">
<view style="width: 200rpx;">公司介绍</view>
<view @click="infoShow = true;infoType=2;"
style="padding: 10rpx;width: 500rpx;background-color: #F5F5F5;border-radius: 5rpx;">
<view class="tn-text-ellipsis-3">{{info.member_log.enterprise_Introduction}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view v-if="info.find.if_xianshi==0 || info.member.if_xianshi==0"
style="position: fixed;background-color: #FFF;width: 100%;bottom: 0;padding-bottom: 100rpx;padding-top: 40rpx;">
<view class="tn-flex tn-flex-center tn-flex-col-center tn-flex-row-around"
style="color: #FFF;text-align: center;">
<view @click="openModal(2)"
style="color: #ffffff;line-height: 88rpx;width: 138px;height: 88rpx;background: #d54941;border-radius: 8px;">
拒绝申请</view>
<view @click="openModal(1)"
style="line-height: 88rpx;width: 138px;height: 88rpx;background: #3464ec;border-radius: 8px;">
申请通过
</view>
</view>
</view>
</view>
<tn-modal v-model="show" :title="title" :content="content" :button="button" @click="dian"></tn-modal>
<tn-popup v-model="infoShow" mode="right" width="100%">
<tn-nav-bar :isBack="false" backTitle="" :alpha="true" :bottomShadow="false">
<view class="custom-nav tn-flex tn-flex-col-center tn-flex-row-left">
<view style="padding-left: 15rpx;" @click="infoShow = false">
<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:infoType==1?'个人经历':'公司介绍'}]" :current="topCurrent" activeColor="#000"
:bold="false" :fontSize="24"></tn-tabs>
</view>
</view>
</tn-nav-bar>
<view style="background: rgba(242, 241, 246, 1);height: 100%;padding-bottom: 100rpx;">
<view :style="{paddingTop: vuex_custom_bar_height + 20+'px'}"></view>
<view style="margin:30rpx;background-color: #ffffff;border-radius: 20rpx;">
<view style="padding: 30rpx;">
<view>
{{infoType==1?info.member_log.introduction:info.member_log.enterprise_Introduction}}
</view>
</view>
</view>
</view>
</tn-popup>
</view>
</template>
<script>
import {
getAuditingFind,
auditingUpadte
} from '@/util/api.js';
import store from "@/store";
export default {
data() {
return {
info: {
find: []
},
apiImgUrl: this.$store.state.imgUrl,
onloadData: {},
show: false,
infoShow: false,
infoType: 1,
title: '提示信息',
content: '提示信息的内容',
button: [{
text: '取消',
backgroundColor: '#F4F4F4',
fontColor: '#000000',
plain: true,
shape: 'round'
},
{
text: '确定',
backgroundColor: '#548ceb',
fontColor: '#FFFFFF'
}
],
key: 0
}
},
onLoad(d) {
this.onloadData = d;
this.getAuditingList();
},
methods: {
dian(d) {
if (d.index == 1) {
this.setAuditing();
} else {
this.show = false;
}
},
openModal(key) {
this.key = key;
this.show = true;
this.title = key == 1 ? '通过申请' : '拒绝申请';
this.content = key == 1 ? '确认要通过申请吗?' : '确认要拒绝申请吗?';
},
setAuditing() {
var user_info = uni.getStorageSync('userInfo');
var member_id = this.onloadData.type == 1 ? this.info.find.id : this.info.member.id;
var content = '';
if (this.key == 1) {
content = this.onloadData.type == 1 ? '您提交的资料修改申请已通过审核!' : '您提交的入会申请已通过审核!';
} else {
content = this.onloadData.type == 2 ? '您提交的资料修改申请已被拒绝!' : '您提交的入会申请已被拒绝!';
}
auditingUpadte({
...this.onloadData,
association_id: user_info.association_id,
member_id: member_id,
if_xianshi: this.key,
content: content
})
.then(res => {
console.log(res);
if (res.code == 1) {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
uni.$emit('onload', 1)
this.getAuditingList();
}
this.show = false;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
getAuditingList() {
var user_info = uni.getStorageSync('userInfo');
getAuditingFind({
...this.onloadData,
association_id: user_info.association_id
})
.then(res => {
this.info = res.data;
})
.catch(error => {
uni.showToast({
title: error,
icon: 'none',
duration: 2000
});
})
},
goBack() {
if (getCurrentPages().length > 1) {
uni.navigateBack()
} else {
uni.redirectTo({
url: '/pages/index/index'
})
}
},
}
}
</script>
<style>
/* 显示两行 */
.tn-text-ellipsis-3 {
display: -webkit-box;
overflow: hidden;
white-space: normal !important;
text-overflow: ellipsis;
word-wrap: break-word;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

After

Width:  |  Height:  |  Size: 916 B

BIN
static/icon15.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
static/jj.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
static/sh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
static/tg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -48,4 +48,16 @@ export const getPosition = data => request.post('/move/position', data, false);
export const getArticlePolicy = data => request.post('/move/Article/gory', data, false); export const getArticlePolicy = data => request.post('/move/Article/gory', data, false);
export const getArticlePolicyList = data => request.post('/move/Article/index', data, false); export const getArticlePolicyList = data => request.post('/move/Article/index', data, false);
export const getArticlePolicyInfo = data => request.post('/move/Article/find', data, false); export const getArticlePolicyInfo = data => request.post('/move/Article/find', data, false);
export const getRegion = data => request.post('/move/region', data, false); export const getRegion = data => request.post('/move/region', data, false);
export const getAuditing = data => request.post('/move/auditing', data, false);
export const getAuditingFind = data => request.post('/move/auditing/find', data, false);
export const auditingUpadte = data => request.post('/move/auditing/auditing', data, false);
export const activityAdd = data => request.post('/move/activity/activityAdd', data, false);
export const wxphoneLogin = data => request.post('/move/login/wxphone', data, false);
export const activitySign = data => request.post('/move/activity_sign/index ', data, false);