Browse Source

对接接口

master
岳鹏龙 10 months ago
parent
commit
101c0500b8
  1. 15
      src/api/index.ts
  2. 45
      src/api/memberCenter.ts
  3. 14
      src/pages.json
  4. 158
      src/pages/index/active/activeDetail.vue
  5. 182
      src/pages/index/active/activelist.vue
  6. 164
      src/pages/index/index.vue
  7. 27
      src/pages/index/shoppage/mediaDetail.vue
  8. 6
      src/pages/index/tabsComm.vue
  9. 160
      src/pages/memberCenter/index.vue
  10. 365
      src/pages/memberCenter/inpart.vue
  11. 16
      src/pages/mine/associatedEnterprise.vue
  12. 47
      src/pages/mine/completeInformation.vue
  13. 61
      src/pages/mine/myApplication.vue
  14. 8
      src/pages/mine/myCourses.vue

15
src/api/index.ts

@ -25,10 +25,19 @@ export function bannerInfo(id:string) {
} }
//活动列表 //活动列表
export function activityList(page: string,limit: string) { export function activityList(data:any) {
return request.http({ return request.http({
url: '/api/huiqitong/activity_list?page='+page+'&limit='+limit, url: '/api/huiqitong/activity_list',
method: 'GET' method: 'GET',
data
})
}
//活动详情
export function activityInfo(id:string) {
return request.http({
url: '/api/huiqitong/activity_info/'+id,
method: 'GET',
}) })
} }

45
src/api/memberCenter.ts

@ -0,0 +1,45 @@
import { request } from '@/utils/http'
//标签列表
export function memberTagList() {
return request.http({
url: '/api/huiqitong/member_tag_list',
method: 'GET'
})
}
//会员列表
export function memberCenter(data:any) {
return request.http({
url: '/api/huiqitong/member_center',
method: 'GET',
data
})
}
//会员详情
export function memberCenterInfo(id: string) {
return request.http({
url: '/api/huiqitong/member_center_info/'+id,
method: 'GET'
})
}
//入会申请
export function memberApply(data:any) {
return request.http({
url: '/api/huiqitong/member_apply',
method: 'POST',
data
})
}
//我的入会申请
export function myMemberApply() {
return request.http({
url: '/api/huiqitong/my_member_apply',
method: 'POST',
})
}

14
src/pages.json

@ -166,6 +166,20 @@
{ {
"navigationBarTitleText" : "信息完善" "navigationBarTitleText" : "信息完善"
} }
},
{
"path" : "pages/index/active/activelist",
"style" :
{
"navigationBarTitleText" : "更多活动"
}
},
{
"path" : "pages/index/active/activeDetail",
"style" :
{
"navigationBarTitleText" : "活动详情"
}
} }
], ],
"permission": { "permission": {

158
src/pages/index/active/activeDetail.vue

@ -0,0 +1,158 @@
<template>
<image style="width: 100%;height: 352rpx;" :src="baseurl + detaildata.index_pic" mode=""></image>
<view class="container">
<text class="headtxt">{{detaildata.title}}</text>
<text class="address">活动地点{{detaildata.address}}</text>
<view class="adressnum">
<text class="time">活动时间{{detaildata.activity_time}}</text>
<view class="ydl">
<text class="time">阅读量</text>
<text class="value">
{{detaildata.count}}
</text>
</view>
</view>
<view class="titlepart">
<view class="icon"></view>
<text class="title">活动详情</text>
</view>
<u-parse :content="detaildata.content"></u-parse>
<text class="certetime">{{detaildata.create_time}}</text>
</view>
</template>
<script setup>
import {
onLoad
} from '@dcloudio/uni-app';
import {
ref
} from 'vue';
import {
activityInfo
} from '@/api/index'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const detaildata = ref({})
onLoad(async (param) => {
await activityInfo(param.id).then((res) => {
if (res.code === 1) {
detaildata.value = res.data
}
})
})
</script>
<style scoped lang="scss">
.container {
background-color: #FFFFFF;
height: calc(100vh - 352rpx);
width: 100%;
padding: 40rpx 40rpx 0 40rpx;
box-sizing: border-box;
overflow-y: auto;
.titlepart {
margin-top: 40rpx;
display: flex;
align-items: center;
margin-bottom: 30rpx;
.icon {
width: 12rpx;
height: 32rpx;
border-radius: 0rpx 32rpx 32rpx 0rpx;
/* 蓝色渐变 */
background: linear-gradient(0deg, #007FFF 0%, #99CCFF 100%);
}
.title {
margin-left: 18rpx;
font-family: Source Han Sans;
font-size: 30rpx;
font-weight: 350;
line-height: 32rpx;
text-align: justify;
/* 浏览器可能不支持 */
display: flex;
align-items: center;
letter-spacing: normal;
color: #0072FF;
}
}
.headtxt {
font-family: Source Han Sans;
font-size: 36rpx;
font-weight: normal;
line-height: 48rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #0C092A;
}
.address {
margin-top: 28rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
line-height: 48rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #858494;
}
.adressnum {
display: flex;
align-items: center;
justify-content: space-between;
.time {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
line-height: 48rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #858494;
}
.ydl {
display: flex;
align-items: center;
.time {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
line-height: 48rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #858494;
}
.value {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
line-height: 48rpx;
text-align: right;
display: flex;
align-items: center;
letter-spacing: normal;
color: #007FFF
}
}
}
.certetime {
font-family: Roboto;
font-size: 28rpx;
font-weight: normal;
line-height: 80rpx;
letter-spacing: normal;
color: #A1A1A1;
}
}
</style>

182
src/pages/index/active/activelist.vue

@ -0,0 +1,182 @@
<template>
<view class="container">
<u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容"
placeholderColor="#2a98ff" v-model="keyword" searchIcon="/static/img/search.png" searchIconSize="14"
:showAction="false" height="40" margin="40rpx 24rpx 24rpx 24rpx" bgColor="#FFFFFF"></u-search>
<scroll-view scroll-y="auto" class="main" @scrolltolower="onloadmore">
<view class="ztone" v-for="(item,index) in ztList" :key="index" @click="godetail(item.id)">
<image style="width: 150rpx;height: 150rpx;border-radius: 8rpx;flex: 1;" :src="baseurl+item.index_pic" mode="">
</image>
<view class="rightpart">
<view class="splace">
{{item.title}}
</view>
<view class="titlepart">
<text class="title">{{item.activity_time}}</text>
<image style="width: 32rpx;height: 44rpx;" src="@/static/img/Icon.png" mode="aspectFill">
</image>
</view>
<view class="ms">
{{item.address}}
</view>
</view>
</view>
</scroll-view>
</view>
</template>
<script setup>
import {
ref
} from 'vue';
import { activityList } from '@/api/index'
import { onShow } from '@dcloudio/uni-app';
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
//
const keyword = ref('');
const page = ref(1)
const pagesize = ref(7)
const search = async (val) => {
page.value = 1
pagesize.value = 7
await getActivityList(keyword.value, page.value, pagesize.value)
}
const clickIcon = async () => {
page.value = 1
pagesize.value = 7
await getActivityList(keyword.value, page.value, pagesize.value)
}
const clear = async () => {
page.value = 1
pagesize.value = 7
await getActivityList(keyword.value, page.value, pagesize.value)
}
const ztList = ref([])
const onloadmore = async () => {
page.value++
let params = {
'title': keyword.value,
'page': page.value,
'limit': pagesize.value
}
await activityList(params).then((res) => {
ztList.value = [...ztList.value, ...res.data.data]
})
}
const godetail = (id) => {
uni.navigateTo({
url: '/pages/index/active/activeDetail?id=' + id
})
}
const getActivityList = async (name, page, limit) => {
let params = {
'title': name,
'page': page,
'limit': limit
}
await activityList(params).then((res) => {
ztList.value = res.data.data
})
}
onShow(async() => {
await getActivityList('',1,7)
})
</script>
<style scoped lang="scss">
.container {
background: linear-gradient(0deg, #F1F3F9 72%, rgba(129, 179, 222, 0.5) 88%);
height: 100vh;
width: 100%;
overflow-y: hidden;
.main {
margin-top: 10rpx;
width: 100%;
height: 100%;
padding: 0 24rpx;
box-sizing: border-box;
.ztone {
display: flex;
align-items: center;
width: 100%;
margin-top: 20rpx;
padding: 10rpx;
border-radius: 8rpx;
background: #FFFFFF;
box-sizing: border-box;
border: 2rpx solid rgba(0, 127, 255, 0.12);
.rightpart {
width: 100%;
margin-left: 20rpx;
flex: 3;
display: grid;
.titlepart {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.title {
font-family: Source Han Sans;
font-size: 20rpx;
font-weight: 300;
line-height: normal;
display: flex;
align-items: flex-end;
letter-spacing: normal;
color: #666666;
margin-top: 20rpx;
}
}
.splace {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 500;
display: flex;
align-items: center;
letter-spacing: normal;
color: #0C092A;
}
.ms {
margin-top: 8rpx;
font-family: Source Han Sans;
font-size: 20rpx;
font-weight: 300;
line-height: normal;
display: flex;
align-items: flex-end;
letter-spacing: normal;
color: #666666;
}
}
}
}
}
.hdzq {
width: 182rpx;
height: 80rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
</style>

164
src/pages/index/index.vue

@ -3,7 +3,8 @@
@leftClick="leftClick"> @leftClick="leftClick">
</u-navbar> </u-navbar>
<view class="container"> <view class="container">
<u-swiper :list="list5" @change="change" :autoplay="false" radius="0" height="180" keyName="pic_path" @click="swiperClick" :displayMultipleItems="0"> <u-swiper :list="list5" @change="change" :autoplay="false" radius="0" height="180" keyName="pic_path"
@click="swiperClick" :displayMultipleItems="0">
<template #indicator> <template #indicator>
<view class="indicator"> <view class="indicator">
<view class="indicator__dot" v-for="(item, index) in list5" :key="index" <view class="indicator__dot" v-for="(item, index) in list5" :key="index"
@ -13,19 +14,20 @@
</template> </template>
</u-swiper> </u-swiper>
<view class="box"> <view class="box">
<image class="zuanti" :src="url + '/' + ztdata.home_img" mode="scaleToFill" @click="goZT(ztdata.id)"></image> <image class="zuanti" :src="url + '/' + ztdata.home_img" mode="scaleToFill" @click="goZT(ztdata.id)">
</image>
<view class="titlebox"> <view class="titlebox">
<view class="left"> <view class="left">
<image style="width: 40rpx;height: 40rpx;" src="@/static/img/yaohuodong.png" mode=""></image> <image style="width: 40rpx;height: 40rpx;" src="@/static/img/yaohuodong.png" mode=""></image>
<text class="text">要活动</text> <text class="text">要活动</text>
</view> </view>
<view class="more" @click="kfz"> <view class="more" @click="gohdList">
更多活动 > 更多活动 >
</view> </view>
</view> </view>
<scroll-view class="scroll-view_H" scroll-x="true"> <scroll-view class="scroll-view_H" scroll-x="true">
<view class="hdCard" v-for="(item,index) in hdList" :key="index" @click="kfz"> <view class="hdCard" v-for="(item,index) in hdList" :key="index" @click="gohdetail(item.id)">
<image class="img" :src="url + '/' + item.index_pic" mode=""></image> <image class="img" :src="url + '/' + item.index_pic" mode=""></image>
<view class="message"> <view class="message">
<view class="title"> <view class="title">
@ -45,7 +47,7 @@
<text class="xdb">小店帮</text> <text class="xdb">小店帮</text>
<view class="bangCart"> <view class="bangCart">
<view class="bangone1" @click="kfz"> <view class="bangone1" @click="kfz">
<!-- <view class="bangone1" @click="gokdb"> --> <!-- <view class="bangone1" @click="gokdb"> -->
<text class="btext">开店帮</text> <text class="btext">开店帮</text>
<image style="height: 100%;width: 140rpx;" src="@/static/img/kdb.png" mode=""></image> <image style="height: 100%;width: 140rpx;" src="@/static/img/kdb.png" mode=""></image>
</view> </view>
@ -90,7 +92,7 @@
<image style="width: 40rpx;height: 40rpx;" src="@/static/img/tjhy.png" mode=""></image> <image style="width: 40rpx;height: 40rpx;" src="@/static/img/tjhy.png" mode=""></image>
<text class="text">推荐会员</text> <text class="text">推荐会员</text>
</view> </view>
<view class="more" @click="kfz"> <view class="more" @click="gohyList">
更多会员 > 更多会员 >
</view> </view>
</view> </view>
@ -98,16 +100,18 @@
<view class="hylist"> <view class="hylist">
<tabsComm :tabsData="filterTabs" @tabChange="handleTabSelect" /> <tabsComm :tabsData="filterTabs" @tabChange="handleTabSelect" />
<scroll-view scroll-y="auto" class="hyonne"> <scroll-view scroll-y="auto" class="hyonne">
<view class="hyCard" v-for="(item,index) in hyList" :key="index" @click="kfz"> <view class="hyCard" v-for="(item,index) in hyList.slice(0,6)" :key="index" @click="kfz">
<view class="left"> <view class="left">
<u-avatar :src="item.img" size="64"></u-avatar> <u-avatar :src="url+ '/' +item.head_pic" size="64"></u-avatar>
<view class="textpart"> <view class="textpart">
<view class="namepart"> <view class="namepart">
<text class="name">{{item.name}}</text> <text class="name">{{item.name}}</text>
<image style="width: 110rpx;height: 40rpx;margin-left: 16rpx;" <view class="biaoq"
src="@/static/img/lsdr.png" mode=""></image> :style="{background: `linear-gradient(0deg, ${item.member_tag_color} 0%, #dcdcdc70 100%)`}">
{{item.member_tag_title}}
</view>
</view> </view>
<text class="company">{{item.company}}</text> <text class="company">{{item.enterprise?item.enterprise[0].title:'无'}}</text>
</view> </view>
</view> </view>
<image style="width: 48rpx;height: 48rpx;" src="@/static/img/Icon.png" mode=""></image> <image style="width: 48rpx;height: 48rpx;" src="@/static/img/Icon.png" mode=""></image>
@ -117,7 +121,7 @@
</view> </view>
</view> </view>
<image class="xzs" src="@/static/img/xzs.png" mode="" @click="showChat = true"></image> <image class="xzs" src="@/static/img/xzs.png" mode="" @click="showChat = true"></image>
<chatdialog :visible="showChat" @close="showChat = false"/> <chatdialog :visible="showChat" @close="showChat = false" />
</template> </template>
<script setup> <script setup>
@ -126,8 +130,17 @@
watch watch
} from 'vue' } from 'vue'
import tabsComm from '../index/tabsComm.vue' import tabsComm from '../index/tabsComm.vue'
import { homeSpecial, bannerList, activityList } from '@/api/index' import {
homeSpecial,
bannerList,
activityList
} from '@/api/index'
import chatdialog from '@/pages/index/ChatDialog.vue' import chatdialog from '@/pages/index/ChatDialog.vue'
import {
memberTagList,
memberCenter
} from '@/api/memberCenter'
import useUserStore from '@/store/user' import useUserStore from '@/store/user'
const userStore = useUserStore() const userStore = useUserStore()
@ -145,7 +158,7 @@
} }
const swiperClick = (item) => { const swiperClick = (item) => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/index/ztdetail?id='+list5.value[item].id+'&type='+'index' url: '/pages/index/ztdetail?id=' + list5.value[item].id + '&type=' + 'index'
}) })
} }
@ -176,30 +189,19 @@
]) ])
const currentTab = ref('全部'); const currentTab = ref('');
// "" // ""
const filterTabs = reactive([{ const filterTabs = ref([]);
id: 1,
label: '法律'
},
{
id: 2,
label: '媒体'
},
{
id: 3,
label: '金融'
},
{
id: 4,
label: '金1融'
}
]);
// //
const handleTabSelect = (tab) => { const handleTabSelect = async (tab) => {
currentTab.value = tab; currentTab.value = tab;
if (tab === 'all') {
await getMemberCenter('')
} else {
await getMemberCenter(currentTab.value)
}
// //
console.log('选择tab:', tab); console.log('选择tab:', tab);
}; };
@ -208,21 +210,11 @@
console.log(111); console.log(111);
} }
const hyList = ref([{ const hyList = ref([])
img: '/static/img/Frame.png',
name: '韩梅梅',
company: '内蒙古数心法律资讯事务所'
},
{
img: '/static/img/Frame.png',
name: '韩梅梅',
company: '内蒙古数心法律资讯事务所'
}
])
const goZT = (id) => { const goZT = (id) => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/index/specialSubject?id='+id url: '/pages/index/specialSubject?id=' + id
}) })
} }
@ -244,29 +236,78 @@
}) })
} }
onShow(async() => { const gohyList = () => {
uni.switchTab({
url: '/pages/memberCenter/index'
})
}
const gohdList = () => {
uni.navigateTo({
url: '/pages/index/active/activelist'
})
}
const gohdetail = (id) => {
uni.navigateTo({
url: '/pages/index/active/activeDetail?id=' + id
})
}
const getbqlist = async () => {
filterTabs.value = []
await memberTagList().then((res) => {
res.data.forEach((ele) => {
filterTabs.value.push(ele)
})
})
}
const getMemberCenter = async (id) => {
let params = {
'member_tag_id': id,
'name': '',
'page': 1,
'limit': 120
}
await memberCenter(params).then((res) => {
hyList.value = res.data.data
})
}
onShow(async () => {
//
const res = await homeSpecial() const res = await homeSpecial()
if(res.code === 1) { if (res.code === 1) {
ztdata.value = res.data ztdata.value = res.data
} }
//
const res1 = await bannerList() const res1 = await bannerList()
if(res.code === 1) { if (res.code === 1) {
list5.value = res1.data list5.value = res1.data
list5.value.forEach((ele)=> { list5.value.forEach((ele) => {
ele.pic_path = url.value + '/' + ele.pic_path ele.pic_path = url.value + '/' + ele.pic_path
}) })
} }
const res2 = await activityList(1,5) //
if(res.code === 1) { const res2 = await activityList(1, 5)
if (res.code === 1) {
hdList.value = res2.data.data hdList.value = res2.data.data
} }
//
await getbqlist()
//
await getMemberCenter(currentTab.value)
}) })
const kfz = () => { const kfz = () => {
uni.showToast({ title: '开发中。。。', icon: 'none' }) uni.showToast({
title: '开发中。。。',
icon: 'none'
})
} }
onLoad(()=> { onLoad(() => {
// wx.getSetting({ // wx.getSetting({
// success(res) { // success(res) {
// if (!res.authSetting['scope.userLocation']) { // if (!res.authSetting['scope.userLocation']) {
@ -298,6 +339,7 @@
.container { .container {
background-color: #F1F3F9; background-color: #F1F3F9;
height: calc(100vh - 182rpx); height: calc(100vh - 182rpx);
padding-bottom: 90rpx;
:deep(.u-navbar__content__left__text) { :deep(.u-navbar__content__left__text) {
font-family: Source Han Sans; font-family: Source Han Sans;
@ -573,6 +615,22 @@
/* 外部/Neutral/Black */ /* 外部/Neutral/Black */
color: #0C092A; color: #0C092A;
} }
.biaoq {
padding: 10rpx;
width: 110rpx;
height: 40.5rpx;
border-radius: 0rpx 4rpx 20rpx 0rpx;
margin-left: 16rpx;
font-family: YouSheBiaoTiHei;
font-size: 24rpx;
font-weight: normal;
display: flex;
align-items: center;
letter-spacing: normal;
color: #FFFFFF;
text-shadow: 0rpx 4rpx 4rpx rgba(0, 0, 0, 0.2);
}
} }
.company { .company {

27
src/pages/index/shoppage/mediaDetail.vue

@ -4,28 +4,28 @@
<image style="width: 100%;height: 300rpx;" src="@/static/img/ztback.png" mode=""></image> <image style="width: 100%;height: 300rpx;" src="@/static/img/ztback.png" mode=""></image>
<view class="main"> <view class="main">
<view class="head"> <view class="head">
<image class="toux" src="@/static/img/Frame.png" mode=""></image> <image class="toux" :src="baseurl + userData.head_pic" mode=""></image>
<text class="name">多余和毛毛姐</text> <text class="name">{{userData.name}}</text>
<text class="type">抖音带货达人</text> <text class="type">{{userData.member_tag_title}}</text>
</view> </view>
<view class="content"> <view class="content">
<view class="titlepart"> <view class="titlepart">
<view class="icon"></view> <view class="icon"></view>
<text class="title">助企案例</text> <text class="title">{{userData.introduce?'个人介绍':'助企案例'}}</text>
</view> </view>
<text class="message">说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明</text> <text class="message">{{userData.introduce}}</text>
<view class="titlepart"> <view class="titlepart">
<view class="icon"></view> <view class="icon"></view>
<text class="title">联系方式</text> <text class="title">联系方式</text>
</view> </view>
<view class="people"> <view class="people">
<text class="text">13012345678</text> <text class="text">{{userData.moblie}}</text>
</view> </view>
<view class="titlepart"> <view class="titlepart">
<view class="icon"></view> <view class="icon"></view>
<text class="title">微信二维码</text> <text class="title">微信二维码</text>
</view> </view>
<image style="width: 338rpx;height: 338rpx;margin-top: 28rpx;margin-left: 24%;" src="@/static/img/lj1.png" mode=""></image> <image style="width: 338rpx;height: 338rpx;margin-top: 28rpx;margin-left: 24%;" :src="baseurl + userData.wx_code" mode=""></image>
</view> </view>
</view> </view>
</view> </view>
@ -38,10 +38,19 @@
import { import {
ref ref
} from 'vue'; } from 'vue';
import { memberCenterInfo } from '@/api/memberCenter'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
onLoad((param) => { const userData = ref({})
console.log(param);
onLoad(async(param) => {
await memberCenterInfo(param.id).then((res)=> {
console.log(res);
if(res.code === 1) {
userData.value = res.data
}
})
}) })
</script> </script>

6
src/pages/index/tabsComm.vue

@ -22,7 +22,7 @@
:class="{ 'active': activeTab === tab.id }" :class="{ 'active': activeTab === tab.id }"
@click="handleTabSelect(tab.id)" @click="handleTabSelect(tab.id)"
> >
{{ tab.label }} {{ tab.title.slice(0,2) }}
</view> </view>
<!-- </scroll-view> --> <!-- </scroll-view> -->
@ -33,7 +33,7 @@
@click.stop="show=true" @click.stop="show=true"
> >
<text>更多 {{ dropdownVisible ? '▲' : '▼' }}</text> <text>更多 {{ dropdownVisible ? '▲' : '▼' }}</text>
<u-picker :show="show" :columns="hiddenTabs" keyName="label" @cancel="show=false" @confirm="confirm"></u-picker> <u-picker :show="show" :columns="hiddenTabs" keyName="title" @cancel="show=false" @confirm="confirm"></u-picker>
<!-- <view <!-- <view
v-show="dropdownVisible" v-show="dropdownVisible"
class="dropdown-menu" class="dropdown-menu"
@ -46,7 +46,7 @@
:class="{ 'active': activeTab === tab.id }" :class="{ 'active': activeTab === tab.id }"
@click="handleTabSelect(tab.id)" @click="handleTabSelect(tab.id)"
> >
{{ tab.label }} {{ tab.title }}
</view> </view>
</view> --> </view> -->
</view> </view>

160
src/pages/memberCenter/index.vue

@ -1,25 +1,28 @@
<template> <template>
<view class="container"> <view class="container">
<u-navbar title="会员中心" placeholder="true" bgColor="#F1F3F9" leftIcon="man-add-fill" leftIconSize="24" leftText="申请入会" <u-navbar title="会员中心" placeholder="true" bgColor="#F1F3F9" leftIcon="man-add-fill" leftIconSize="24"
@leftClick="leftClick"> leftText="申请入会" @leftClick="leftClick">
</u-navbar> </u-navbar>
<u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容" <u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容"
placeholderColor="#2a98ff" v-model="keyword" searchIcon="/static/img/search.png" searchIconSize="14" placeholderColor="#2a98ff" v-model="keyword" searchIcon="/static/img/search.png" searchIconSize="14"
:showAction="false" height="40" margin="40rpx 24rpx 24rpx 24rpx" bgColor="#FFFFFF"></u-search> :showAction="false" height="40" margin="40rpx 24rpx 24rpx 24rpx" bgColor="#FFFFFF"></u-search>
<u-tabs :list="filterTabs" :activeStyle="{color: '#0C092A',fontsize: '30rpx'}" @click="handleTabSelect"></u-tabs> <u-tabs :list="filterTabs" :activeStyle="{color: '#0C092A',fontsize: '30rpx'}" keyName="title"
@click="handleTabSelect"></u-tabs>
<view class="main"> <view class="main">
<scroll-view scroll-y="auto" class="hyonne"> <scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="hyCard" v-for="(item,index) in hyList" :key="index" @click="godetail"> <view class="hyCard" v-for="(item,index) in hyList" :key="index" @click="godetail(item.id)">
<view class="left"> <view class="left">
<u-avatar :src="item.img" size="64"></u-avatar> <u-avatar :src="baseurl+item.head_pic" size="64"></u-avatar>
<view class="textpart"> <view class="textpart">
<view class="namepart"> <view class="namepart">
<text class="name">{{item.name}}</text> <text class="name">{{item.name}}</text>
<image style="width: 110rpx;height: 40rpx;margin-left: 16rpx;" <view class="biaoq"
src="@/static/img/lsdr.png" mode=""></image> :style="{background: `linear-gradient(0deg, ${item.member_tag_color} 0%, #dcdcdc70 100%)`}">
{{item.member_tag_title}}
</view>
</view> </view>
<text class="company">{{item.company}}</text> <text class="company">{{item.enterprise?item.enterprise[0].title:'无'}}</text>
</view> </view>
</view> </view>
<image style="width: 48rpx;height: 48rpx;" src="@/static/img/Icon.png" mode=""></image> <image style="width: 48rpx;height: 48rpx;" src="@/static/img/Icon.png" mode=""></image>
@ -36,78 +39,123 @@
ref ref
} from 'vue'; } from 'vue';
import tabsComm from '../index/tabsComm.vue' import tabsComm from '../index/tabsComm.vue'
import {
memberTagList,
memberCenter
} from '@/api/memberCenter'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
// //
const keyword = ref(''); const keyword = ref('');
const page = ref(1)
const pagesize = ref(6)
const search = (val) => { const search = async (val) => {
console.log(val); page.value = 1
pagesize.value = 6
await getMemberCenter(currentTab.value.id, keyword.value, page.value, pagesize.value)
} }
const clickIcon = () => { const clickIcon = async () => {
console.log(keyword.value); page.value = 1
pagesize.value = 6
await getMemberCenter(currentTab.value.id, keyword.value, page.value, pagesize.value)
} }
const hyList = ref([{ const clear = async () => {
img: '/static/img/Frame.png', page.value = 1
name: '韩梅梅', pagesize.value = 6
company: '内蒙古数心法律资讯事务所' await getMemberCenter(currentTab.value.id, keyword.value, page.value, pagesize.value)
}, }
{
img: '/static/img/Frame.png', const hyList = ref([])
name: '韩梅梅',
company: '内蒙古数心法律资讯事务所'
}
])
const currentTab = ref('全部'); const currentTab = ref('全部');
// "" // ""
const filterTabs = reactive([{ const filterTabs = ref([{
id: 0, id: 0,
name: '全部' title: '全部'
}, }]);
{
id: 1,
name: '法律'
},
{
id: 2,
name: '媒体'
}
]);
const leftClick = () => { const leftClick = () => {
uni.navigateTo({ if (uni.getStorageSync('access_token') === '') {
url: '/pages/memberCenter/inpart' uni.showToast({
}) title: '请登录',
icon: 'fail'
})
} else {
uni.navigateTo({
url: '/pages/memberCenter/inpart'
})
}
} }
// //
const handleTabSelect = (tab) => { const handleTabSelect = async (tab) => {
page.value = 1
pagesize.value = 6
currentTab.value = tab; currentTab.value = tab;
// //
console.log('选择tab:', tab); await getMemberCenter(tab.id, '', page.value, pagesize.value)
}; };
const godetail = (id) => { const godetail = (id) => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/index/shoppage/mediaDetail?id='+id url: '/pages/index/shoppage/mediaDetail?id=' + id
}) })
} }
onMounted(() => { const getbqlist = async () => {
filterTabs.value = [{
id: 0,
title: '全部'
}]
await memberTagList().then((res) => {
filterTabs.value = [...filterTabs.value, ...res.data]
console.log(res.data);
})
}
const getMemberCenter = async (id, name, page, limit) => {
let params = {
'member_tag_id': id,
'name': name,
'page': page,
'limit': limit
}
await memberCenter(params).then((res) => {
hyList.value = res.data.data
})
}
const onloadmore = async () => {
page.value++
let params = {
'member_tag_id': currentTab.value.id,
'name': keyword.value,
'page': page.value,
'limit': pagesize.value
}
await memberCenter(params).then((res) => {
hyList.value = [...hyList.value, ...res.data.data]
})
}
onShow(async () => {
await getbqlist()
await getMemberCenter('', '', page.value, pagesize.value)
}) })
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container { .container {
background: linear-gradient(0deg, #F1F3F9 72%, rgba(129, 179, 222, 0.5) 88%); background: linear-gradient(0deg, #F1F3F9 72%, rgba(129, 179, 222, 0.5) 88%);
height: calc(100vh - 88rpx); height: 100vh;
width: 100%; width: 100%;
overflow-y: auto; overflow-y: auto;
@ -116,6 +164,7 @@
display: grid; display: grid;
padding: 0 24rpx; padding: 0 24rpx;
box-sizing: border-box; box-sizing: border-box;
overflow-y: hidden;
.hyCard { .hyCard {
margin-top: 24rpx; margin-top: 24rpx;
@ -153,6 +202,22 @@
/* 外部/Neutral/Black */ /* 外部/Neutral/Black */
color: #0C092A; color: #0C092A;
} }
.biaoq {
padding: 10rpx;
width: 110rpx;
height: 40.5rpx;
border-radius: 0rpx 4rpx 20rpx 0rpx;
margin-left: 16rpx;
font-family: YouSheBiaoTiHei;
font-size: 24rpx;
font-weight: normal;
display: flex;
align-items: center;
letter-spacing: normal;
color: #FFFFFF;
text-shadow: 0rpx 4rpx 4rpx rgba(0, 0, 0, 0.2);
}
} }
.company { .company {
@ -169,6 +234,7 @@
} }
} }
} }
:deep(.u-icon__icon) { :deep(.u-icon__icon) {
color: #007FFF !important; color: #007FFF !important;
} }

365
src/pages/memberCenter/inpart.vue

@ -5,24 +5,60 @@
<u-form-item label="姓名" prop="name"> <u-form-item label="姓名" prop="name">
<u-input v-model="form.name" placeholder="请输入真实姓名" placeholderStyle="color: #D3D3D3;" /> <u-input v-model="form.name" placeholder="请输入真实姓名" placeholderStyle="color: #D3D3D3;" />
</u-form-item> </u-form-item>
<u-form-item label="会员标签" prop="type"> <u-form-item label="会员标签" prop="member_tag_id">
<u-input v-model="form.type" placeholder="请选择" placeholderStyle="color: #D3D3D3;" <u-input v-model="member_tag_name" placeholder="请选择" placeholderStyle="color: #D3D3D3;"
suffixIcon="arrow-down" @focus="show=true" /> suffixIcon="arrow-down" @focus="show=true" />
<u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show=false"></u-picker> <u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show=false"
keyName="title"></u-picker>
</u-form-item> </u-form-item>
<u-form-item label="身份类型" prop="identity">
<u-form-item label="个人介绍" prop="emil"> <u-input v-model="identityname" placeholder="请选择" placeholderStyle="color: #D3D3D3;"
<u-textarea v-model="form.emil" placeholder="请输入个人介绍" placeholderStyle="color: #D3D3D3;" ></u-textarea> suffixIcon="arrow-down" @focus="idshow=true" />
<u-picker :show="idshow" :columns="idcolumns" @confirm="idconfirm"
@cancel="idshow=false"></u-picker>
</u-form-item>
<view class="cardbox" v-if="ishowcommany">
<view v-for="(group, index) in inputGroups" :key="index" class="input-group">
<view class="inputs" @click="beforeRead(index)">
公司性质
<input class="inputclass" placeholder-class="inputplacla"
:value="group.type==1 ? '其他(自由职业者等)' : (group.type===2 ? '个体工商户' : (group.type===3 ? '民营企业' : '') )"
placeholder="民营企业、个体工商户、其它(自由职业者等)" @click="qyshow = true" />
<u-action-sheet :actions="qylist" title="请选择关联企业类型" :show="qyshow" @select="qyClick"
@close="qyshow = false"></u-action-sheet>
公司名称
<input class="inputclass" placeholder-class="inputplacla" v-model="group.title"
placeholder="请输入真实公司名称" />
营业执照
<u-upload class="uploadbox" @afterRead="afterRead" :maxCount="1" :imageMode="'heightFix'"
:width="auto" :height="144">
<view class="yyzz" v-if="group.license === ''">
<image style="width: 40rpx;height: 40rpx;" src="@/static/img/yyzz.png" mode="">
</image>
上传营业执照
</view>
<image v-else @click="beforeRead(index)"
style="width: 100%;height: 288rpx;margin-top: 12rpx;"
:src="baseurl+ '/' + group.license" mode="scaleToFill"></image>
</u-upload>
</view>
<view v-if="index > 0" class="remove-btn" @click="removeGroup(index)">-</view>
</view>
<button @click="addGroup" class="add-btn">+ 添加一组</button>
</view>
<u-form-item label="个人介绍" prop="introduce">
<u-textarea v-model="form.introduce" autoHeight placeholder="请输入个人介绍"
placeholderStyle="color: #D3D3D3;"></u-textarea>
</u-form-item> </u-form-item>
<u-form-item label="个人二维码" prop="img"> <u-form-item label="个人二维码" prop="wx_code">
<u-upload class="uploadbox" @afterRead="afterRead" :maxCount="1" :imageMode="'heightFix'" <u-upload class="uploadbox" @afterRead="afterRead1" :maxCount="1" :imageMode="'heightFix'"
:width="auto" :height="144"> :width="auto" :height="144">
<view class="yyzz" v-if="form.img === ''"> <view class="yyzz" v-if="form.wx_code === ''">
<image style="width: 40rpx;height: 40rpx;" src="@/static/img/yyzz.png" mode=""></image> <image style="width: 40rpx;height: 40rpx;" src="@/static/img/yyzz.png" mode=""></image>
请上传可以联系到自己的微信二维码 请上传可以联系到自己的微信二维码
</view> </view>
<image v-else style="width: 100%;height: 288rpx;margin-top: 12rpx;" <image v-else style="width: 100%;height: 600rpx;margin-top: 12rpx;"
:src="baseurl+ '/' + form.img" mode="scaleToFill"></image> :src="baseurl+ '/' + form.wx_code" mode="scaleToFill"></image>
</u-upload> </u-upload>
</u-form-item> </u-form-item>
</u-form> </u-form>
@ -39,23 +75,50 @@
import { import {
ref ref
} from 'vue'; } from 'vue';
import {
memberTagList,
memberApply
} from '@/api/memberCenter'
import {
onShow
} from '@dcloudio/uni-app';
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL) const baseurl = ref(import.meta.env.VITE_APP_BASE_URL)
// //
const form = ref({ const form = ref({
name: '', name: '',
type: '', member_tag_id: '',
number: '', identity: '',
emil: '', introduce: '',
img: '', wx_code: '',
case: '' enterprise: ''
}); });
const member_tag_name = ref('')
const identityname = ref('')
const ishowcommany = ref(false)
const show = ref(false); const show = ref(false);
const columns = reactive([ const columns = ref([]);
['中国', '美国', '日本']
const idshow = ref(false);
const idcolumns = ref([
[{
id: 1,
text: '其他(自由职业者等)'
},
{
id: 2,
text: '个体工商户'
},
{
id: 3,
text: '民营企业'
}
]
]); ]);
// //
@ -65,35 +128,70 @@
message: '请输入姓名', message: '请输入姓名',
trigger: ['blur', 'change'], trigger: ['blur', 'change'],
}, ], }, ],
type: [{ // member_tag_id: [{
// required: true,
// message: '',
// trigger: ['blur', 'change'],
// }, ],
// identity: [{
// required: true,
// message: '',
// trigger: ['blur', 'change'],
// }, ],
introduce: [{
required: true, required: true,
message: '请输入标签', message: '请输入个人介绍',
trigger: ['blur', 'change'], trigger: ['blur', 'change'],
}, ], }, ],
number: [{ wx_code: [{
required: true, required: true,
message: '请输入联系方式', message: '请上传个人二维码',
trigger: ['blur', 'change'],
}, ],
emil: [{
required: true,
message: '请输入邮箱地址',
trigger: ['blur', 'change'],
}, ],
img: [{
required: true,
message: '请上传宣传封面',
trigger: ['blur', 'change'],
}, ],
case: [{
required: true,
message: '请输入真实案例',
trigger: ['blur', 'change'], trigger: ['blur', 'change'],
}, ], }, ],
}; };
const inputGroups = ref([{
type: '',
title: '',
license: ''
}])
const addGroup = () => {
inputGroups.value.push({
type: '',
title: '',
license: ''
})
}
const qyshow = ref(false)
const qylist = ref([{
id: 1,
name: '其他(自由职业者等)',
},
{
id: 2,
name: '个体工商户',
},
{
id: 3,
name: '民营企业',
}
]);
const qyClick = async (val) => {
inputGroups.value[upclickindex.value].type = val.id
}
const removeGroup = (index) => {
inputGroups.value.splice(index, 1)
}
const upclickindex = ref(0)
const beforeRead = (index) => {
upclickindex.value = index
}
const afterRead = async (e) => { const afterRead = async (e) => {
console.log(e);
uni.uploadFile({ uni.uploadFile({
url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image', url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image',
filePath: e.file.url, filePath: e.file.url,
@ -103,7 +201,26 @@
}, },
success: async (val) => { success: async (val) => {
if (JSON.parse(val.data).data.url) { if (JSON.parse(val.data).data.url) {
console.log(JSON.parse(val.data).data.url); inputGroups.value[upclickindex.value].license = JSON.parse(val.data).data.url
}
},
fail: (res) => {
console.log('失败', res);
}
})
}
const afterRead1 = async (e) => {
uni.uploadFile({
url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image',
filePath: e.file.url,
name: 'file',
header: {
'token': uni.getStorageSync('access_token')
},
success: async (val) => {
if (JSON.parse(val.data).data.url) {
form.value.wx_code = JSON.parse(val.data).data.url
} }
}, },
fail: (res) => { fail: (res) => {
@ -117,23 +234,84 @@
const confirm = (val) => { const confirm = (val) => {
console.log(val.value[0]); console.log(val.value[0]);
form.value.type = val.value[0] member_tag_name.value = val.value[0].title
form.value.member_tag_id = val.value[0].id
show.value = false show.value = false
} }
const idconfirm = (val) => {
identityname.value = val.value[0].text
form.value.identity = val.value[0].id
idshow.value = false
if (val.value[0].id === 1) {
ishowcommany.value = false
} else {
ishowcommany.value = true
}
}
// //
function submit() { function submit() {
uFormRef.value.validate().then(valid => { uFormRef.value.validate().then(valid => {
if (valid) { if (valid) {
uni.$u.toast('校验通过') let data = []
} else { inputGroups.value.forEach((obj) => {
uni.$u.toast('请填写完整') if (obj.type == '' || obj.title == '' || obj.license == '') {
uni.showToast({
title: '请填写完整',
icon: 'fail'
})
} else {
data.push(obj)
}
})
if (data.length !== 0) {
form.value.enterprise = JSON.stringify(data)
}
if (form.value.member_tag_id === '') {
uni.showToast({
title: '请填写会员标签',
icon: 'fail'
})
} else {
if (form.value.identity === '') {
uni.showToast({
title: '请填写身份类型',
icon: 'fail'
})
} else {
uni.$u.toast('校验通过')
console.log(form.value);
memberApply(form.value).then((res) => {
if(res.code === 1) {
uni.switchTab({
url: '/pages/memberCenter/index'
})
uni.showToast({
title: '请等待审核',
icon: 'success'
})
}
})
}
}
} }
}).catch(() => { }).catch(() => {
// //
uni.$u.toast('请填写完整') uni.$u.toast('请填写完整')
}); });
} }
onShow(async () => {
await memberTagList().then((res) => {
columns.value = []
if (res.code === 1) {
columns.value.push(res.data)
console.log(columns.value);
}
})
})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -150,6 +328,106 @@
padding: 40rpx; padding: 40rpx;
box-sizing: border-box; box-sizing: border-box;
overflow-y: auto; overflow-y: auto;
.cardbox {
box-sizing: border-box;
}
.input-group {
padding: 40rpx;
margin-top: 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20rpx;
background-color: #e2e2e2;
}
.inputs {
flex: 9;
}
input {
flex: 1;
height: 80rpx;
border: 2rpx solid #ddd;
padding: 0 20rpx;
margin-right: 10rpx;
}
.remove-btn,
.add-btn {
width: 80rpx;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
background: #f0f0f0;
border-radius: 8rpx;
}
.remove-btn {
margin-left: 20rpx;
border-radius: 50%;
width: 40rpx;
height: 40rpx;
color: #ff0000;
border: 2rpx solid #ff0000;
display: flex;
align-items: flex-end;
justify-content: center;
}
.add-btn {
width: auto;
padding: 0 30rpx;
background: #4CAF50;
color: white;
margin-bottom: 60rpx;
}
.inputclass {
margin-top: 12rpx;
margin-bottom: 36rpx;
margin-right: 0 !important;
height: 100rpx !important;
border-radius: 10rpx;
background: #FFFFFF;
}
:deep(.inputplacla) {
font-family: Source Han Sans;
font-size: 24rpx;
font-weight: 350;
line-height: 32.76rpx;
letter-spacing: normal;
color: #D3D3D3;
}
.yyzz {
margin-top: 12rpx;
width: 100%;
height: 288rpx;
border-radius: 16rpx;
background: #FFFFFF;
display: grid;
align-content: center;
justify-items: center;
font-family: Source Han Sans;
font-size: 30rpx;
font-weight: 350;
line-height: 70rpx;
letter-spacing: normal;
color: #CCCCCC;
}
:deep(.u-upload) {
.u-upload__wrap {
view {
width: 100%;
}
}
}
} }
.sumitbotton { .sumitbotton {
@ -185,6 +463,7 @@
} }
} }
} }
.yyzz { .yyzz {
margin-top: 12rpx; margin-top: 12rpx;
width: 100%; width: 100%;

16
src/pages/mine/associatedEnterprise.vue

@ -1,8 +1,8 @@
<template> <template>
<view class="classbox"> <view class="classbox">
<view class="classone" v-for="(item,index) in classList" :key="index" @click="goDetail(item.id)"> <view class="classone" v-for="(item,index) in classList" :key="index">
<text class="title">{{item.title}}</text> <text class="title">{{item.title}}</text>
<text class="text">关联时间{{item.time}}</text> <!-- <text class="text">关联时间{{item.time}}</text> -->
</view> </view>
</view> </view>
</template> </template>
@ -11,6 +11,12 @@
import { import {
ref ref
} from 'vue'; } from 'vue';
import {
onShow
} from '@dcloudio/uni-app';
import useUserStore from '@/store/user'
const userStore = useUserStore()
const classList = ref([{ const classList = ref([{
id: 1, id: 1,
@ -26,9 +32,13 @@
const goDetail = (id) => { const goDetail = (id) => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/mine/associatedDetail?id='+id url: '/pages/mine/associatedDetail?id=' + id
}) })
} }
onShow(() => {
classList.value = userStore.userInfo.enterprise
})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

47
src/pages/mine/completeInformation.vue

@ -21,7 +21,7 @@
<image v-else @click="beforeRead(index)" style="width: 100%;height: 288rpx;margin-top: 12rpx;" :src="baseurl+ '/' + group.license" mode="scaleToFill"></image> <image v-else @click="beforeRead(index)" style="width: 100%;height: 288rpx;margin-top: 12rpx;" :src="baseurl+ '/' + group.license" mode="scaleToFill"></image>
</u-upload> </u-upload>
</view> </view>
<view v-if="index > 0" class="remove-btn">-</view> <view v-if="index > 0" class="remove-btn" @click="removeGroup(index)">-</view>
</view> </view>
<button @click="addGroup" class="add-btn">+ 添加一组</button> <button @click="addGroup" class="add-btn">+ 添加一组</button>
</view> </view>
@ -85,7 +85,6 @@
} }
const afterRead = async (e) => { const afterRead = async (e) => {
console.log(e);
uni.uploadFile({ uni.uploadFile({
url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image', url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image',
filePath: e.file.url, filePath: e.file.url,
@ -106,33 +105,39 @@
} }
const submit = async () => { const submit = async () => {
let data = [] let data = []
inputGroups.value.forEach((obj) => { await inputGroups.value.forEach(async(obj) => {
if(obj.type == ''||obj.title == ''||obj.license == '') { if(obj.type == ''||obj.title == ''||obj.license == '') {
uni.showToast({
title: '请填写完整',
icon: 'fail'
})
}else { }else {
data.push(obj) data.push(obj)
} }
}) })
console.log(`'${JSON.stringify(data)}'`); console.log(data);
await modifyField1('enterprise',{"value":`${JSON.stringify(data)}`}).then((res) => { if(data.length !== 0) {
if (res.code === 1) { await modifyField1('enterprise',{"value":`${JSON.stringify(data)}`}).then((res) => {
setTimeout(() => { if (res.code === 1) {
setTimeout(() => {
uni.showToast({
title: '提交成功!',
icon: 'success'
})
uni.switchTab({
url: '/pages/mine/index'
})
}, 500)
} else {
uni.showToast({ uni.showToast({
title: '提交成功!', title: '提交失败!',
icon: 'success' icon: 'fail'
}) })
uni.switchTab({ }
url: '/pages/mine/porsonalinfo'
})
}, 500)
} else {
uni.showToast({
title: '提交失败!',
icon: 'fail'
})
}
}) })
}
} }
</script> </script>

61
src/pages/mine/myApplication.vue

@ -7,10 +7,10 @@
</view> </view>
<view class="main"> <view class="main">
<view class="classone" v-for="(item,index) in passList" :key="index"> <view class="classone" v-for="(item,index) in passList" :key="index">
<text class="title">{{item.title}}</text> <text class="title">{{item.name}}</text>
<view class="jindu"> <view class="jindu">
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/timeicon.png" mode=""></image> <image style="width: 32rpx;height: 32rpx;" src="@/static/img/timeicon.png" mode=""></image>
<text class="time">{{item.time}}</text> <text class="time">{{item.create_time}}</text>
</view> </view>
</view> </view>
</view> </view>
@ -21,12 +21,12 @@
</view> </view>
<view class="main"> <view class="main">
<view class="classone" v-for="(item,index) in rejectList" :key="index"> <view class="classone" v-for="(item,index) in rejectList" :key="index">
<text class="title">{{item.title}}</text> <text class="title">{{item.name}}</text>
<view class="jindu"> <view class="jindu">
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/timeicon.png" mode=""></image> <image style="width: 32rpx;height: 32rpx;" src="@/static/img/timeicon.png" mode=""></image>
<text class="time">{{item.time}}</text> <text class="time">{{item.create_time}}</text>
</view> </view>
<text class="result">{{item.result}}</text> <text class="result">{{item.remark}}</text>
</view> </view>
</view> </view>
</view> </view>
@ -37,34 +37,29 @@
import { import {
ref ref
} from 'vue'; } from 'vue';
import {
myMemberApply
const passList = ref([{ } from '@/api/memberCenter'
id: 1, import { onShow } from '@dcloudio/uni-app';
title: '金融帮信息发布',
time: '07/04/2025 12:45'
}, const passList = ref([])
{
id: 2, const rejectList = ref([])
title: '金融帮信息发布',
time: '07/04/2025 12:45' onShow(async() => {
}, await myMemberApply().then((res)=>{
]) console.log(res);
res.data.forEach((ele)=> {
const rejectList = ref([ if(ele.status === 2) {
{ passList.value.push(ele)
id: 1, }
title: '金融帮信息发布', else if(ele.status === 3) {
time: '07/04/2025 12:45', rejectList.value.push(ele)
result: '企业信息查询有误' }
}, })
{ })
id: 2, })
title: '金融帮信息发布',
time: '07/04/2025 12:45',
result: '企业信息查询有误'
},
])
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

8
src/pages/mine/myCourses.vue

@ -1,6 +1,6 @@
<template> <template>
<view class="classbox"> <view class="classbox">
<view class="classone" v-for="(item,index) in classList" :key="index"> <view class="classone" v-for="(item,index) in classList" :key="index" @click="godetail(item)">
<text class="title">{{item.study_center_title}}</text> <text class="title">{{item.study_center_title}}</text>
<text class="text">{{item.introduction}}</text> <text class="text">{{item.introduction}}</text>
<view class="jindu"> <view class="jindu">
@ -20,6 +20,12 @@ import { ref } from 'vue';
const classList = ref([]) const classList = ref([])
const godetail = (item) => {
uni.navigateTo({
url: '/pages/learningCenter/detail?id=' + item.study_center_id
})
}
onShow(async () => { onShow(async () => {
const res = await myStudy() const res = await myStudy()
if (res.code === 1) { if (res.code === 1) {

Loading…
Cancel
Save