Browse Source

修改会员模块需求

master
岳鹏龙 6 months ago
parent
commit
62eb91ff02
  1. 14
      package-lock.json
  2. 2
      package.json
  3. 71
      src/api/memberCenter.ts
  4. 24
      src/pages.json
  5. 74
      src/pages/index/index.vue
  6. 5
      src/pages/index/shoppage/financialAssistance.vue
  7. 14
      src/pages/index/shoppage/mediaDetail.vue
  8. 6
      src/pages/index/tabsComm.vue
  9. 45
      src/pages/memberCenter/agreement.vue
  10. 73
      src/pages/memberCenter/index.vue
  11. 443
      src/pages/memberCenter/inpart.vue
  12. 155
      src/pages/memberCenter/jump-login.vue
  13. 63
      src/pages/memberCenter/memberRegistration.vue
  14. 201
      src/pages/memberCenter/memberZc.vue
  15. 467
      src/pages/memberCenter/slpace.json
  16. 69
      src/pages/mine/index.vue

14
package-lock.json

@ -30,7 +30,7 @@
"pinia": "2.0.36", "pinia": "2.0.36",
"pnpm": "^10.14.0", "pnpm": "^10.14.0",
"sass": "^1.63.2", "sass": "^1.63.2",
"uview-plus": "^3.4.9", "uview-plus": "^3.5.52",
"vue": "^3.2.45", "vue": "^3.2.45",
"vue-i18n": "^9.1.9" "vue-i18n": "^9.1.9"
}, },
@ -12075,13 +12075,17 @@
} }
}, },
"node_modules/uview-plus": { "node_modules/uview-plus": {
"version": "3.4.9", "version": "3.5.52",
"resolved": "https://registry.npmjs.org/uview-plus/-/uview-plus-3.5.52.tgz",
"integrity": "sha512-cyZv0Pz+rZ4vohbtZXAlnvCHwzkLudrvFXZVPr+NlUHuTJwAjZ6vSb6jmcZeozmz4HOyGfSf+USjdswdUG9OIQ==",
"dependencies": { "dependencies": {
"clipboard": "^2.0.11", "clipboard": "^2.0.11",
"dayjs": "^1.11.3" "dayjs": "^1.11.3"
}, },
"engines": { "engines": {
"HBuilderX": "^3.1.0" "HBuilderX": "^3.1.0",
"uni-app": "^4.66",
"uni-app-x": ""
} }
}, },
"node_modules/v8-to-istanbul": { "node_modules/v8-to-istanbul": {
@ -20513,7 +20517,9 @@
"dev": true "dev": true
}, },
"uview-plus": { "uview-plus": {
"version": "3.4.9", "version": "3.5.52",
"resolved": "https://registry.npmjs.org/uview-plus/-/uview-plus-3.5.52.tgz",
"integrity": "sha512-cyZv0Pz+rZ4vohbtZXAlnvCHwzkLudrvFXZVPr+NlUHuTJwAjZ6vSb6jmcZeozmz4HOyGfSf+USjdswdUG9OIQ==",
"requires": { "requires": {
"clipboard": "^2.0.11", "clipboard": "^2.0.11",
"dayjs": "^1.11.3" "dayjs": "^1.11.3"

2
package.json

@ -66,7 +66,7 @@
"pinia": "2.0.36", "pinia": "2.0.36",
"pnpm": "^10.14.0", "pnpm": "^10.14.0",
"sass": "^1.63.2", "sass": "^1.63.2",
"uview-plus": "^3.4.9", "uview-plus": "^3.5.52",
"vue": "^3.2.45", "vue": "^3.2.45",
"vue-i18n": "^9.1.9" "vue-i18n": "^9.1.9"
}, },

71
src/api/memberCenter.ts

@ -41,3 +41,74 @@ export function myMemberApply() {
method: 'POST' method: 'POST'
}) })
} }
//协会会员列表
export function xhMember(data: any) {
return request.http({
url: '/api/huiqitong/xh_member',
method: 'GET',
data
})
}
//协会会员详情
export function xhMemberInfo(id: string) {
return request.http({
url: '/api/huiqitong/xh_member/info/'+id,
method: 'GET'
})
}
//获取授权手机号注册协会会员
export function authRegister(data: any) {
return request.http({
url: '/api/huiqitong/xh_member/auth_register',
method: 'POST',
data
})
}
//发送手机号验证码
export function register(data: any) {
return request.http({
url: '/api/send/mobile/register',
method: 'POST',
data
})
}
//手机号验证码注册协会会员
export function smsRegister(data: any) {
return request.http({
url: '/api/huiqitong/xh_member/sms_register',
method: 'POST',
data
})
}
//完善会员信息
export function xhMemberImprove(data: any) {
return request.http({
url: '/api/huiqitong/xh_member/improve',
method: 'POST',
data
})
}
//入会协议
export function agreement() {
return request.http({
url: '/api/huiqitong/xh_member/agreement',
method: 'GET'
})
}
//获取我的待审核的入会信息
export function myInfo() {
return request.http({
url: '/api/huiqitong/xh_member/my_info',
method: 'GET'
})
}

24
src/pages.json

@ -30,6 +30,30 @@
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, },
{
"path": "pages/memberCenter/memberRegistration",
"style": {
"navigationBarTitleText": "会员注册",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "pages/memberCenter/memberZc",
"style": {
"navigationBarTitleText": "会员注册",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "pages/memberCenter/agreement",
"style": {
"navigationBarTitleText": "入会协议",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{ {
"path": "pages/learningCenter/index", "path": "pages/learningCenter/index",
"style": { "style": {

74
src/pages/index/index.vue

@ -106,28 +106,32 @@
<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="gohyzc">
会员注册
</view>
<view class="more" @click="gohyList">更多会员 ></view> <view class="more" @click="gohyList">更多会员 ></view>
</view> </view>
<view class="hylist"> <view class="hylist">
<tabsComm :tabs-data="filterTabs" :showNum="2" @tabChange="handleTabSelect" /> <tabsComm :tabs-data="filterTabs" :showNum="1" @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.slice(0, 6)" :key="index" <view class="hyCard" v-for="(item, index) in hyList.slice(0, 6)" :key="index"
@click="gohydetail(item.id)"> >
<!-- @click="gohydetail(item.id)"> -->
<view class="left"> <view class="left">
<u-avatar :src="url + '/' + item.head_pic" size="45"></u-avatar> <!-- <u-avatar :src="url + '/' + item.head_pic" size="45"></u-avatar> -->
<view class="textpart"> <view class="textpart">
<view class="namepart"> <view class="namepart">
<text class="name">{{ item.name }}</text> <text class="name">{{ item.contact }}</text>
<view class="biaoq" <view class="biaoq" v-if="item.industry"
:style="{ background: `linear-gradient(0deg, ${item.member_tag_color} 0%, #dcdcdc70 100%)` }"> :style="{ background: `linear-gradient(0deg, #007fff 0%, #dcdcdc70 100%)` }">
{{ item.member_tag_title }} {{ item.industry }}
</view> </view>
</view> </view>
<text class="company">{{ item.enterprise ? item.enterprise[0].title : '无' }}</text> <text class="company">{{ item.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> -->
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
@ -172,7 +176,7 @@
} from '@/api/index' } from '@/api/index'
import chatdialog from '@/pages/index/ChatDialog.vue' import chatdialog from '@/pages/index/ChatDialog.vue'
import { import {
memberTagList, xhMember,
memberCenter memberCenter
} from '@/api/memberCenter' } from '@/api/memberCenter'
@ -309,6 +313,12 @@
}) })
} }
const gohyzc = () => {
uni.navigateTo({
url: '/pages/memberCenter/memberRegistration'
})
}
const gohdList = () => { const gohdList = () => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/index/active/activelist' url: '/pages/index/active/activelist'
@ -347,22 +357,47 @@
} }
const getbqlist = async () => { const getbqlist = async () => {
filterTabs.value = [] filterTabs.value = [
await memberTagList().then((res) => { {
res.data.forEach((ele) => { id: 1,
filterTabs.value.push(ele) title: '个体私营企业'
}) },
}) {
id: 2,
title: '个体工商户'
},
{
id: 3,
title: '理事单位'
},
{
id: 4,
title: '商协会'
},
{
id: 5,
title: '自然人'
},
{
id: 6,
title: '其他单位'
}
]
// await memberTagList().then((res) => {
// res.data.forEach((ele) => {
// filterTabs.value.push(ele)
// })
// })
} }
const getMemberCenter = async (id) => { const getMemberCenter = async (id) => {
let params = { let params = {
member_tag_id: id, identity: id,
name: '', keyword: '',
page: 1, page: 1,
limit: 120 limit: 120
} }
await memberCenter(params).then((res) => { await xhMember(params).then((res) => {
hyList.value = res.data.data hyList.value = res.data.data
}) })
} }
@ -711,7 +746,6 @@
.hylist { .hylist {
width: 100%; width: 100%;
display: grid; display: grid;
justify-content: center;
.hyCard { .hyCard {
border: 2rpx solid #f1f3f9; border: 2rpx solid #f1f3f9;

5
src/pages/index/shoppage/financialAssistance.vue

@ -4,7 +4,7 @@
<u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容" <u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容"
placeholder-color="#A9D4FF" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14" placeholder-color="#A9D4FF" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14"
:show-action="false" height="40" margin="" bg-color="#FFFFFF"></u-search> :show-action="false" height="40" margin="" bg-color="#FFFFFF"></u-search>
<tabsComm :tabs-data="filterTabs" :showAll="false" :showNum="3" @tabChange="handleTabSelect" /> <tabsComm :tabs-data="filterTabs" :showAll="true" :showalltitle="'自治区'" :showNum="3" @tabChange="handleTabSelect" />
<view class="main"> <view class="main">
<scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore"> <scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="ztone" v-for="(item, index) in ztList" :key="index" @click="godetail(item.id)"> <view class="ztone" v-for="(item, index) in ztList" :key="index" @click="godetail(item.id)">
@ -168,7 +168,8 @@
const handleTabSelect = async (tab) => { const handleTabSelect = async (tab) => {
currentTab.value = tab currentTab.value = tab
if (tab === 'all') { if (tab === 'all') {
// await getMemberCenter('') currentTab.value = ''
await getfinanceList('', 1, 6)
} else { } else {
await getfinanceList('', 1, 6) await getfinanceList('', 1, 6)
} }

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

@ -4,9 +4,9 @@
<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="baseurl + userData.head_pic" mode=""></image> <image v-if="userData.head_pic" class="toux" :src="baseurl + userData.head_pic" mode=""></image>
<text class="name">{{ userData.name }}</text> <text class="name">{{ userData.name || userData.contact }}</text>
<text class="type">{{ userData.member_tag_title || userData.tag_name }}</text> <text class="type">{{ userData.member_tag_title || userData.title }}</text>
</view> </view>
<view class="content"> <view class="content">
<view class="titlepart"> <view class="titlepart">
@ -20,9 +20,9 @@
<text class="title">联系方式</text> <text class="title">联系方式</text>
</view> </view>
<view class="people"> <view class="people">
<text class="text">{{ userData.moblie || userData.tel }}</text> <text class="text">{{ userData.moblie }}</text>
</view> </view>
<view class="titlepart"> <view class="titlepart" v-if="userData.wx_code">
<view class="icon"></view> <view class="icon"></view>
<text class="title">微信二维码</text> <text class="title">微信二维码</text>
</view> </view>
@ -46,7 +46,7 @@
<script setup> <script setup>
import { onLoad } from '@dcloudio/uni-app' import { onLoad } from '@dcloudio/uni-app'
import { ref } from 'vue' import { ref } from 'vue'
import { memberCenterInfo } from '@/api/memberCenter' import { xhMemberInfo } from '@/api/memberCenter'
import { mediumInfo } from '@/api/shop' import { mediumInfo } from '@/api/shop'
import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue' import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue'
@ -62,7 +62,7 @@ onLoad(async (param) => {
} }
}) })
} else { } else {
await memberCenterInfo(param.id).then((res) => { await xhMemberInfo(param.id).then((res) => {
console.log(res) console.log(res)
if (res.code === 1) { if (res.code === 1) {
userData.value = res.data userData.value = res.data

6
src/pages/index/tabsComm.vue

@ -1,7 +1,7 @@
<template> <template>
<view class="tabs-wrapper" :style="{justifyContent: tabsData.length >2? 'space-between' : 'start', gap: tabsData.length >2? '10px' : 'none' }"> <view class="tabs-wrapper" :style="{justifyContent: tabsData.length >2? 'space-between' : 'start', gap: tabsData.length >2? '10px' : 'none' }">
<!-- 固定显示的'全部'标签 --> <!-- 固定显示的'全部'标签 -->
<view class="tab-item" v-if="showAll" :class="{ active: activeTab === 'all' }" @click="handleTabSelect('all')">全部</view> <view class="tab-item" v-if="showAll" :class="{ active: activeTab === 'all' }" @click="handleTabSelect('all')">{{showalltitle}}</view>
<!-- 主显示区域 --> <!-- 主显示区域 -->
<!-- <scroll-view <!-- <scroll-view
@ -59,6 +59,10 @@ const props = defineProps({
showNum: { showNum: {
type: Number, type: Number,
default: 2 default: 2
},
showalltitle: {
type: String,
default: '全部'
} }
}) })

45
src/pages/memberCenter/agreement.vue

@ -0,0 +1,45 @@
<template>
<view class="container">
<u-navbar title="入会协议" placeholder="true" :auto-back="true" bg-color="#F1F3F9" left-icon-size="24"></u-navbar>
<view class="title">
{{xydata.title}}
</view>
<rich-text :nodes="xydata.content"></rich-text>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
import {
agreement
} from '@/api/memberCenter'
import { onShow } from '@dcloudio/uni-app'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const xydata = ref({})
onShow(async () => {
agreement().then(res => {
console.log(res);
xydata.value = res.data
})
})
</script>
<style scoped lang="scss">
.container {
height: 100vh;
width: 100%;
display: grid;
align-content: flex-start;
justify-items: center;
.title {
margin-top: 40rpx;
margin-bottom: 20rpx;
}
}
</style>

73
src/pages/memberCenter/index.vue

@ -34,20 +34,22 @@
></u-tabs> ></u-tabs>
<view class="main"> <view class="main">
<scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore"> <scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="hyCard" v-for="(item, index) in hyList" :key="index" @click="godetail(item.id)"> <view class="hyCard" v-for="(item, index) in hyList" :key="index"
>
<!-- @click="godetail(item.id)"> -->
<view class="left"> <view class="left">
<u-avatar :src="baseurl + item.head_pic" 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.contact }}</text>
<view class="biaoq" :style="{ background: `linear-gradient(0deg, ${item.member_tag_color} 0%, #dcdcdc70 100%)` }"> <view class="biaoq" v-if="item.industry" :style="{ background: `linear-gradient(0deg, #007fff 0%, #dcdcdc70 100%)` }">
{{ item.member_tag_title }} {{ item.industry }}
</view> </view>
</view> </view>
<text class="company">{{ item.enterprise ? item.enterprise[0].title : '无' }}</text> <text class="company">{{ item.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> -->
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
@ -57,7 +59,7 @@
<script setup> <script setup>
import { ref } from 'vue' import { ref } from 'vue'
import tabsComm from '../index/tabsComm.vue' import tabsComm from '../index/tabsComm.vue'
import { memberTagList, memberCenter } from '@/api/memberCenter' import { xhMember } from '@/api/memberCenter'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/') const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
@ -92,8 +94,32 @@ const currentTab = ref('0')
// "" // ""
const filterTabs = ref([ const filterTabs = ref([
{ {
id: 0, id: '',
title: '全部' title: '全部'
},
{
id: 1,
title: '个体私营企业'
},
{
id: 2,
title: '个体工商户'
},
{
id: 3,
title: '理事单位'
},
{
id: 4,
title: '商协会'
},
{
id: 5,
title: '自然人'
},
{
id: 6,
title: '其他单位'
} }
]) ])
@ -104,8 +130,11 @@ const leftClick = () => {
icon: 'fail' icon: 'fail'
}) })
} else { } else {
// uni.navigateTo({
// url: '/pages/memberCenter/inpart'
// })
uni.navigateTo({ uni.navigateTo({
url: '/pages/memberCenter/inpart' url: '/pages/memberCenter/memberRegistration'
}) })
} }
} }
@ -128,24 +157,24 @@ const godetail = (id) => {
const getbqlist = async () => { const getbqlist = async () => {
filterTabs.value = [ filterTabs.value = [
{ {
id: 0, id: '',
title: '全部' title: '全部'
} }
] ]
await memberTagList().then((res) => { // await memberTagList().then((res) => {
filterTabs.value = [...filterTabs.value, ...res.data] // filterTabs.value = [...filterTabs.value, ...res.data]
console.log(res.data) // console.log(res.data)
}) // })
} }
const getMemberCenter = async (id, name, page, limit) => { const getMemberCenter = async (id, name, page, limit) => {
let params = { let params = {
member_tag_id: id, identity: id,
name: name, keyword: name,
page: page, page: page,
limit: limit limit: limit
} }
await memberCenter(params).then((res) => { await xhMember(params).then((res) => {
hyList.value = res.data.data hyList.value = res.data.data
}) })
} }
@ -153,18 +182,18 @@ const getMemberCenter = async (id, name, page, limit) => {
const onloadmore = async () => { const onloadmore = async () => {
page.value++ page.value++
let params = { let params = {
member_tag_id: currentTab.value.id, identity: currentTab.value.id,
name: keyword.value, keyword: keyword.value,
page: page.value, page: page.value,
limit: pagesize.value limit: pagesize.value
} }
await memberCenter(params).then((res) => { await xhMember(params).then((res) => {
hyList.value = [...hyList.value, ...res.data.data] hyList.value = [...hyList.value, ...res.data.data]
}) })
} }
onLoad(async () => { onLoad(async () => {
await getbqlist() // await getbqlist()
await getMemberCenter('', '', page.value, pagesize.value) await getMemberCenter('', '', page.value, pagesize.value)
}) })
</script> </script>

443
src/pages/memberCenter/inpart.vue

@ -2,89 +2,81 @@
<view class="container"> <view class="container">
<view class="formlist"> <view class="formlist">
<u-form :model="form" ref="uFormRef" label-position="top" :rules="rules"> <u-form :model="form" ref="uFormRef" label-position="top" :rules="rules">
<u-form-item label="姓名" prop="name"> <u-form-item label="用户身份" prop="member_tag_name">
<u-input v-model="form.name" placeholder="请输入真实姓名" placeholder-style="color: #D3D3D3;" /> <u-input v-model="form.member_tag_name" placeholder="请选择" placeholderStyle="color: #D3D3D3;"
disabled disabled-color="#ffffff" suffixIcon="arrow-down" @tap="show = true" />
<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="member_tag_id"> <u-form-item
<u-input :label="form.identity===1?'会员代表姓名':(form.identity===2?'会员代表姓名':(form.identity===5?'姓名':'联系人'))"
v-model="member_tag_name" prop="contact">
placeholder="请选择" <u-input v-model="form.contact" placeholder="请输入" placeholder-style="color: #D3D3D3;" />
placeholderStyle="color: #D3D3D3;"
disabled
disabled-color="#ffffff"
suffixIcon="arrow-down"
@tap="show = true"
/>
<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
<u-input :label="form.identity===1?'会员代表电话':(form.identity===2?'会员代表电话':(form.identity===5?'电话':'联系电话'))"
v-model="identityname" prop="tel">
placeholder="请选择" <u-input v-model="form.tel" placeholder="请输入" placeholder-style="color: #D3D3D3;" />
placeholderStyle="color: #D3D3D3;"
disabled
disabled-color="#ffffff"
suffixIcon="arrow-down"
@tap="idshow = true"
/>
<u-picker :show="idshow" :columns="idcolumns" @confirm="idconfirm" @cancel="idshow = false"></u-picker>
</u-form-item> </u-form-item>
<view class="cardbox" v-if="ishowcommany"> <u-form-item label="单位名称" prop="title" v-if="form.identity!==5">
<u-input v-if="form.identity===3" v-model="form.title" placeholder="请选择"
placeholderStyle="color: #D3D3D3;" disabled disabled-color="#ffffff" suffixIcon="arrow-down"
@tap="dwshow = true" />
<u-picker v-if="form.identity===3" :show="dwshow" :columns="dwcolumns" @confirm="dwconfirm"
@cancel="dwshow = false"></u-picker>
<u-input v-if="form.identity!==3" v-model="form.title" placeholder="请输入"
placeholder-style="color: #D3D3D3;" />
</u-form-item>
<u-form-item label="行业" prop="industry" v-if="form.identity===1||form.identity===2">
<u-input v-model="form.industry" placeholder="请输入" placeholder-style="color: #D3D3D3;" />
</u-form-item>
<u-form-item label="地址" prop="address" v-if="form.identity===4">
<u-input v-model="form.address" placeholder="请选择" placeholderStyle="color: #D3D3D3;" disabled
disabled-color="#ffffff" suffixIcon="arrow-down" @tap="dzshow = true" />
<u-cascader :show="dzshow" v-model="dzvalue" :data="dzcolumns" @confirm="dzconfirm"
@close="dzshow = false"></u-cascader>
</u-form-item>
<!-- <view class="cardbox" v-if="ishowcommany">
<view v-for="(group, index) in inputGroups" :key="index" class="input-group"> <view v-for="(group, index) in inputGroups" :key="index" class="input-group">
<view class="inputs" @click="beforeRead(index)"> <view class="inputs" @click="beforeRead(index)">
公司性质 公司性质
<input <input class="inputclass" placeholder-class="inputplacla" disabled disabledColor="#ffffff"
class="inputclass"
placeholder-class="inputplacla"
disabled
disabledColor="#ffffff"
:value="group.type == 1 ? '其他(自由职业者等)' : group.type === 2 ? '个体工商户' : group.type === 3 ? '民营企业' : ''" :value="group.type == 1 ? '其他(自由职业者等)' : group.type === 2 ? '个体工商户' : group.type === 3 ? '民营企业' : ''"
placeholder="民营企业、个体工商户、其它(自由职业者等)" placeholder="民营企业、个体工商户、其它(自由职业者等)" @tap="qyshow = true" />
@tap="qyshow = true" <u-action-sheet :actions="qylist" title="请选择关联企业类型" :show="qyshow" @select="qyClick"
/> @close="qyshow = false"></u-action-sheet>
<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="请输入真实公司名称" /> <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"> <u-upload class="uploadbox" @afterRead="afterRead" :maxCount="1" :imageMode="'heightFix'"
:width="auto" :height="144">
<view class="yyzz" v-if="group.license === ''"> <view class="yyzz" v-if="group.license === ''">
<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 <image v-else @click="beforeRead(index)"
v-else
@click="beforeRead(index)"
style="width: 100%; height: 288rpx; margin-top: 12rpx" style="width: 100%; height: 288rpx; margin-top: 12rpx"
:src="baseurl + '/' + group.license" :src="baseurl + '/' + group.license" mode="scaleToFill"></image>
mode="scaleToFill"
></image>
</u-upload> </u-upload>
</view> </view>
<view v-if="index > 0" class="remove-btn" @click="removeGroup(index)">-</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> -->
<u-form-item label="个人介绍" prop="introduce"> <!-- <u-form-item label="个人介绍" prop="introduce">
<u-textarea v-model="form.introduce" autoHeight placeholder="请输入个人介绍" placeholderStyle="color: #D3D3D3;"></u-textarea> <u-textarea v-model="form.introduce" autoHeight placeholder="请输入个人介绍" placeholderStyle="color: #D3D3D3;"></u-textarea>
</u-form-item> </u-form-item> -->
<u-form-item label="个人二维码" prop="wx_code"> <u-form-item label="营业执照" prop="business_license" v-if="form.identity===1||form.identity===2">
<u-upload class="uploadbox" @afterRead="afterRead1" :maxCount="1" :imageMode="'heightFix'" :width="auto" :height="144"> <u-upload class="uploadbox" @afterRead="afterRead1" :maxCount="1" :imageMode="'heightFix'"
<view class="yyzz" v-if="form.wx_code === ''"> :width="auto" :height="144">
<view class="yyzz" v-if="form.business_license === ''">
<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 <image v-else style="width: 100%; height: 600rpx; margin-top: 12rpx"
v-else :src="baseurl + '/' + form.business_license" mode="scaleToFill"></image>
style="width: 100%; height: 600rpx; margin-top: 12rpx"
:src="baseurl + '/' + form.wx_code"
mode="scaleToFill"
></image>
</u-upload> </u-upload>
</u-form-item> </u-form-item>
</u-form> </u-form>
@ -96,98 +88,168 @@
</template> </template>
<script setup> <script setup>
import { import {
ref ref
} from 'vue'; } from 'vue';
import { import {
memberTagList, memberTagList,
memberApply memberApply,
} from '@/api/memberCenter' xhMemberImprove
import { } from '@/api/memberCenter'
import {
onShow onShow
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
import ssqdata from './slpace.json'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL) const baseurl = ref(import.meta.env.VITE_APP_BASE_URL)
const uPickerRef = ref(null)
//
const form = ref({
name: '',
member_tag_id: '',
identity: '',
introduce: '',
wx_code: '',
enterprise: ''
});
const member_tag_name = ref('') //
const identityname = ref('') const form = ref({
mobile: '',
member_tag_name: '',
contact: '',
tel: '',
title: '',
identity: '',
address: '',
industry: '',
business_license: ''
});
const ishowcommany = ref(false) const identityname = ref('')
const show = ref(false); const ishowcommany = ref(false)
const columns = ref([]);
const idshow = ref(false); const show = ref(false);
const idcolumns = ref([ const columns = ref([{
[{
id: 1, id: 1,
text: '其他(自由职业者等)' title: '个体私营企业'
}, },
{ {
id: 2, id: 2,
text: '个体工商户' title: '个体工商户'
}, },
{ {
id: 3, id: 3,
text: '民营企业' title: '理事单位'
}] },
]); {
id: 4,
title: '商协会'
},
{
id: 5,
title: '自然人'
},
{
id: 6,
title: '其他单位'
}
]);
//
const rules = { const dwshow = ref(false);
name: [{ const dwcolumns = ref([
[{
id: '内蒙古自治区党委统战部',
text: '内蒙古自治区党委统战部'
},
{
id: '内蒙古自治区民营经济发展服务局',
text: '内蒙古自治区民营经济发展服务局'
},
{
id: '内蒙古自治区工业和信息化厅',
text: '内蒙古自治区工业和信息化厅'
},
{
id: '内蒙古自治区司法厅',
text: '内蒙古自治区司法厅'
},
{
id: '内蒙古自治区人力资源和社会保障厅',
text: '内蒙古自治区人力资源和社会保障厅'
},
{
id: '内蒙古自治区退役军人事务厅',
text: '内蒙古自治区退役军人事务厅'
},
{
id: '内蒙古自治区药品监督管理局',
text: '内蒙古自治区药品监督管理局'
},
{
id: '国家税务总局内蒙古自治区税务局',
text: '国家税务总局内蒙古自治区税务局'
},
{
id: '内蒙古自治区工商业联合会',
text: '内蒙古自治区工商业联合会'
}
]
]);
const dzshow = ref(false);
const dzvalue = ref(['内蒙古自治区'])
const dzcolumns = ref([ssqdata]);
//
const rules = {
contact: [{
required: true, required: true,
message: '请输入姓名', message: '请输入姓名',
trigger: ['blur', 'change'], trigger: ['blur', 'change'],
}, ], }, ],
// member_tag_id: [{ tel: [{
// required: true, required: true,
// message: '', message: '请输入电话',
// trigger: ['blur', 'change'], trigger: ['blur', 'change'],
// }, ], }, ],
// identity: [{ title: [{
// required: true,
// message: '',
// trigger: ['blur', 'change'],
// }, ],
introduce: [{
required: true, required: true,
message: '请输入个人介绍', message: '请输入单位名称',
trigger: ['blur', 'change'], trigger: ['blur', 'change'],
}, ], }, ],
wx_code: [{ industry: [{
required: true, required: true,
message: '请上传个人二维码', message: '请输入行业',
trigger: ['blur', 'change'], trigger: ['blur', 'change'],
}, ], }, ],
}; member_tag_name: [{
required: true,
message: '请选择身份类别',
trigger: ['blur', 'change'],
}, ],
address: [{
required: true,
message: '请选择地址',
trigger: ['blur', 'change'],
}, ],
business_license: [{
required: true,
message: '请上传营业执照',
trigger: ['blur', 'change'],
}, ],
};
const inputGroups = ref([{ const inputGroups = ref([{
type: '', type: '',
title: '', title: '',
license: '' license: ''
}]) }])
const addGroup = () => { const addGroup = () => {
inputGroups.value.push({ inputGroups.value.push({
type: '', type: '',
title: '', title: '',
license: '' license: ''
}) })
} }
const qyshow = ref(false) const qyshow = ref(false)
const qylist = ref([{ const qylist = ref([{
id: 1, id: 1,
name: '其他(自由职业者等)', name: '其他(自由职业者等)',
}, },
@ -198,21 +260,22 @@ const qylist = ref([{
{ {
id: 3, id: 3,
name: '民营企业', name: '民营企业',
}]); }
const qyClick = async (val) => { ]);
const qyClick = async (val) => {
inputGroups.value[upclickindex.value].type = val.id inputGroups.value[upclickindex.value].type = val.id
} }
const removeGroup = (index) => { const removeGroup = (index) => {
inputGroups.value.splice(index, 1) inputGroups.value.splice(index, 1)
} }
const upclickindex = ref(0) const upclickindex = ref(0)
const beforeRead = (index) => { const beforeRead = (index) => {
upclickindex.value = index upclickindex.value = index
} }
const afterRead = async (e) => { const afterRead = async (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,
@ -229,9 +292,9 @@ const afterRead = async (e) => {
console.log('失败', res); console.log('失败', res);
} }
}) })
} }
const afterRead1 = async (e) => { const afterRead1 = async (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,
@ -241,102 +304,88 @@ const afterRead1 = async (e) => {
}, },
success: async (val) => { success: async (val) => {
if (JSON.parse(val.data).data.url) { if (JSON.parse(val.data).data.url) {
form.value.wx_code = JSON.parse(val.data).data.url form.value.business_license = JSON.parse(val.data).data.url
} }
}, },
fail: (res) => { fail: (res) => {
console.log('失败', res); console.log('失败', res);
} }
}) })
} }
// //
const uFormRef = ref(null); const uFormRef = ref(null);
const confirm = (val) => { const confirm = (val) => {
console.log(val.value[0]); form.value.member_tag_name = val.value[0].title
member_tag_name.value = val.value[0].title form.value.identity = val.value[0].id
form.value.member_tag_id = val.value[0].id
show.value = false show.value = false
} }
const idconfirm = (val) => { const dwconfirm = (val) => {
identityname.value = val.value[0].text form.value.title = val.value[0].id
form.value.identity = val.value[0].id dwshow.value = false
idshow.value = false }
if (val.value[0].id === 1) {
ishowcommany.value = false const dzconfirm = (val) => {
} else { console.log(val);
ishowcommany.value = true form.value.address = val[1] + '-' + val[2]
dzshow.value = false
} }
}
//
function submit() { //
function submit() {
uFormRef.value.validate().then(valid => { uFormRef.value.validate().then(valid => {
if (valid) { if (valid) {
let data = [] let data = []
inputGroups.value.forEach((obj) => { // inputGroups.value.forEach((obj) => {
if (obj.type == '' || obj.title == '' || obj.license == '') { // if (obj.type == '' || obj.title == '' || obj.license == '') {
uni.showToast({ // uni.showToast({
title: '请填写完整', // title: '',
icon: 'fail' // icon: 'fail'
}) // })
} else { // } else {
data.push(obj) // 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('校验通过') uni.$u.toast('校验通过')
delete form.value.member_tag_name
console.log(form.value); console.log(form.value);
memberApply(form.value).then((res) => { xhMemberImprove(form.value).then((res) => {
if(res.code === 1) { if (res.code === 1) {
uni.switchTab({ uni.switchTab({
url: '/pages/memberCenter/index' url: '/pages/memberCenter/index'
}) })
uni.showToast({ uni.showToast({
title: '请等待审核', title: '请等待审核',
icon: 'success' icon: 'success',
duration: 2000
}) })
} } else {
uni.showToast({
title: res.msg,
icon: 'fail',
duration: 2000
}) })
} }
} })
} }
}).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);
} }
onLoad(async (e) => {
form.value.mobile = e.number
}) })
})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container { .container {
background-color: #ffffff; background-color: #e9ecf3;
width: 100%; width: 100%;
height: 100vh; height: 100vh;
overflow-y: hidden; overflow-y: hidden;
@ -482,9 +531,9 @@ onShow(async () => {
color: #ffffff; color: #ffffff;
} }
} }
} }
.yyzz { .yyzz {
margin-top: 12rpx; margin-top: 12rpx;
width: 100%; width: 100%;
height: 288rpx; height: 288rpx;
@ -499,23 +548,23 @@ onShow(async () => {
line-height: 70rpx; line-height: 70rpx;
letter-spacing: normal; letter-spacing: normal;
color: #cccccc; color: #cccccc;
} }
:deep(.u-upload) { :deep(.u-upload) {
.u-upload__wrap { .u-upload__wrap {
view { view {
width: 100%; width: 100%;
} }
} }
} }
</style> </style>
<style> <style>
.u-input { .u-input {
background-color: #ffffff; background-color: #ffffff;
height: 100rpx !important; height: 100rpx !important;
} }
.u-form-item__body__left__content__label { .u-form-item__body__left__content__label {
white-space: nowrap; white-space: nowrap;
} }
</style> </style>

155
src/pages/memberCenter/jump-login.vue

@ -0,0 +1,155 @@
<template>
<view class="login-view">
<input type="tel" confirm-type="确认" class="input" v-model="phoneNum" placeholder="请输入手机号" />
<view class="input-w-view">
<input class="input-w" confirm-type="确认" type="number" v-model="smsCode" placeholder="请输入验证码" />
<view @click="sendMsg" class="code-view">{{codeViewMsg}}</view>
</view>
<button @click="userLogin" class="loginBtn" type="primary" :disabled="btnDisabled">确定</button>
</view>
</template>
<script>
export default {
name: "jump-login",
props: ['smsCall', 'loginCall'],
data() {
return {
styles: {
color: '#000000',
borderColor: '#ffffff',
backgroupColor: '#ffffff'
},
codeViewMsg: "获取验证码",
countDown: 61,
dbClick: false,
btnDisabled: true,
phoneNum: '',
smsCode: ''
};
},
methods: {
sendMsg() {
const that = this;
if (this.phoneNum == '' || this.phoneNum == undefined) {
uni.showToast({
icon: 'none',
title: "请先输入手机号"
})
return;
}
if (this.dbClick) return;
this.dbClick = true;
setTimeout(() => {
this.dbClick = false;
}, 500)
if (!this.validatePhoneNumber(that.phoneNum)) {
uni.showToast({
icon: "none",
title: "手机号码异常"
})
return;
}
//
if(this.countDown === 61) {
that.countDown--;
that.codeViewMsg = "重新获取(" + this.countDown + "s)"
that.countDownData();
this.$emit('smsCall', this.phoneNum);
} else {
uni.showToast({
icon: "none",
title: "请稍后"
})
}
},
userLogin() {
const that = this;
if (!this.validatePhoneNumber(that.phoneNum)) {
uni.showToast({
icon: "none",
title: "手机号码异常"
})
return;
}
const sD = {
"phoneNum": that.phoneNum,
"smsCode": that.smsCode
};
console.log(sD);
console.log(sD.phoneNum);
console.log(sD.smsCode);
this.$emit('loginCall', sD);
},
validatePhoneNumber(phoneNumber) {
// 使
var pattern = /^1[3456789]\d{9}$/;
//
if (pattern.test(phoneNumber)) {
return true; //
} else {
return false; //
}
},
countDownData() {
this.btnDisabled = false;
setTimeout(() => {
this.countDown--;
this.codeViewMsg = "重新获取(" + this.countDown + "s)"
if (this.countDown <= 0) {
this.countDown = 61;
this.codeViewMsg = "获取验证码";
return
}
this.countDownData();
}, 1000)
},
}
}
</script>
<style>
.login-view {
width: 100vw;
padding: 40rpx 80rpx;
}
.input {
margin-top: 40rpx;
border-radius: 20rpx;
background-color: white;
padding: 20rpx;
border: 2rpx solid black;
}
.input-w-view {
position: relative;
display: flex;
height: 120rpx;
}
.input-w {
position: absolute;
margin-top: 40rpx;
border-radius: 20rpx;
background-color: white;
padding: 20rpx;
border: 2rpx solid black;
width: calc(100% - 40rpx);
}
.code-view {
right: 30rpx;
position: absolute;
margin-top: 60rpx;
z-index: 99;
}
.loginBtn {
margin-top: 100rpx;
border-radius: 20rpx;
}
</style>

63
src/pages/memberCenter/memberRegistration.vue

@ -0,0 +1,63 @@
<template>
<view class="container">
<u-navbar title="会员注册" placeholder="true" auto-back="true" bg-color="#F1F3F9" left-icon-size="24"></u-navbar>
<view class="butp">
<view class="but" @click="gozc">
确认注册
</view>
</view>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const gozc = () => {
uni.navigateTo({
url: '/pages/memberCenter/memberZc'
})
}
// onLoad(async () => {
// })
</script>
<style scoped lang="scss">
.container {
background: linear-gradient(0deg, #f1f3f9 72%, rgba(129, 179, 222, 0.5) 88%);
height: 100vh;
width: 100%;
.butp {
width: 100%;
height: 168rpx;
background: #FFFFFF;
/* 标签栏投影 */
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0, 0, 0, 0.3);
position: fixed;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
.but {
height: 96rpx;
width: 70%;
border-radius: 248rpx;
background: linear-gradient(90deg, #007FFF 0%, #99CCFF 100%);
display: flex;
align-items: center;
justify-content: center;
font-family: Source Han Sans;
font-size: 36rpx;
font-weight: 350;
color: #FFFFFF;
}
}
}
</style>

201
src/pages/memberCenter/memberZc.vue

@ -0,0 +1,201 @@
<template>
<view class="container">
<u-navbar title="会员注册" placeholder="true" :auto-back="true" bg-color="#F1F3F9" left-icon-size="24"></u-navbar>
<view class="butp">
<u-button @getphonenumber="onGetPhoneNumber" text="手机号一键注册" icon-color="#fff" open-type="getPhoneNumber"
color="linear-gradient(90deg, #007FFF 0%, #99CCFF 100%)" />
<view class="but" style="color: #616161;background: #FFFFFF;" @click="showpopup">
其他手机号注册
</view>
</view>
<view class="radiotxt">
<u-checkbox name="agree" shape="circle" label="我已阅读并同意" usedAlone v-model:checked="radioVal">
</u-checkbox>
<view class="txt2" @click="gorhxy">
用户服务协议
</view>
</view>
<u-popup :show="showMobile" @close="showMobile = false" mode="center">
<jumplogin @smsCall="smsCall" @loginCall="loginCall"></jumplogin>
</u-popup>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
import {
authRegister,
register,
smsRegister
} from '@/api/memberCenter'
import jumplogin from './jump-login.vue'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const radioVal = ref(false)
const showMobile = ref(false)
const onGetPhoneNumber = (e) => {
if (e.detail.errMsg.includes('fail')) {
uni.showToast({
title: '用户拒绝授权',
icon: 'none'
})
return
}
try {
if (radioVal.value) {
console.log(e);
authRegister({
code: e.detail.code
}).then(res => {
if (res.code === 1) {
uni.showToast({
title: '注册成功',
icon: 'none',
duration: 2000
})
setTimeout(() => {
uni.navigateTo({
url: '/pages/memberCenter/inpart?number=' + res.data.mobile
})
}, 2000)
}
})
} else {
uni.showToast({
title: '请勾选用户服务协议',
icon: 'none'
})
}
} catch (error) {
uni.showToast({
title: '注册失败',
icon: 'none'
})
}
}
const showpopup = () => {
if (radioVal.value) {
showMobile.value = true
} else {
uni.showToast({
title: '请勾选用户服务协议',
icon: 'none'
})
}
}
const gorhxy = () => {
uni.navigateTo({
url: '/pages/memberCenter/agreement'
})
}
const loginCall = (e) => {
smsRegister({
mobile: e.phoneNum,
mobile_key: mobile_key.value,
mobile_code: e.smsCode
}).then(res => {
if (res.code === 1) {
uni.showToast({
title: '注册成功',
icon: 'none',
duration: 2000
})
setTimeout(() => {
uni.navigateTo({
url: '/pages/memberCenter/inpart?number=' + res.data.mobile
})
}, 2000)
}
})
}
const mobile_key = ref('')
const smsCall = (e) => {
register({
mobile: e
}).then(res => {
if (res.code === 1) {
mobile_key.value = res.data.key
}
})
}
// onLoad(async () => {
// })
</script>
<style scoped lang="scss">
.container {
background: linear-gradient(0deg, #f1f3f9 72%, rgba(129, 179, 222, 0.5) 88%);
height: 100vh;
width: 100%;
display: grid;
align-content: center;
justify-content: center;
.butp {
/* 标签栏投影 */
display: grid;
align-items: center;
justify-content: center;
.but {
margin-top: 22rpx;
padding: 24rpx 224rpx;
border-radius: 16rpx;
background: linear-gradient(90deg, #007FFF 0%, #99CCFF 100%);
display: flex;
align-items: center;
justify-content: center;
font-family: Source Han Sans;
font-size: 36rpx;
font-weight: 350;
color: #FFFFFF;
}
:deep(.u-button) {
padding: 24rpx 224rpx;
border-radius: 16rpx;
height: 96rpx;
}
:deep(.u-button__text) {
font-family: Source Han Sans;
font-size: 36rpx !important;
font-weight: 350;
color: #FFFFFF;
}
}
.radiotxt {
margin-top: 96rpx;
display: flex;
align-items: center;
justify-content: center;
.txt1 {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
color: #969696;
}
.txt2 {
margin-left: 10rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
color: #2563EB
}
}
}
</style>

467
src/pages/memberCenter/slpace.json

@ -0,0 +1,467 @@
{
"label": "内蒙古自治区",
"value": "内蒙古自治区",
"children": [
{
"label": "呼和浩特市",
"value": "呼和浩特市",
"children": [{
"label": "新城区",
"value": "新城区"
},
{
"label": "回民区",
"value": "回民区"
},
{
"label": "玉泉区",
"value": "玉泉区"
},
{
"label": "赛罕区",
"value": "赛罕区"
},
{
"label": "土默特左旗",
"value": "土默特左旗"
},
{
"label": "托克托县",
"value": "托克托县"
},
{
"label": "和林格尔县",
"value": "和林格尔县"
},
{
"label": "清水河县",
"value": "清水河县"
},
{
"label": "武川县",
"value": "武川县"
}
]
}, {
"label": "包头市",
"value": "包头市",
"children": [{
"label": "东河区",
"value": "东河区"
},
{
"label": "昆都仑区",
"value": "昆都仑区"
},
{
"label": "青山区",
"value": "青山区"
},
{
"label": "石拐区",
"value": "石拐区"
},
{
"label": "白云鄂博矿区",
"value": "白云鄂博矿区"
},
{
"label": "九原区",
"value": "九原区"
},
{
"label": "土默特右旗",
"value": "土默特右旗"
},
{
"label": "固阳县",
"value": "固阳县"
},
{
"label": "达尔罕茂明安联合旗",
"value": "达尔罕茂明安联合旗"
}
]
}, {
"label": "乌海市",
"value": "乌海市",
"children": [{
"label": "海勃湾区",
"value": "海勃湾区"
},
{
"label": "海南区",
"value": "海南区"
},
{
"label": "乌达区",
"value": "乌达区"
}
]
}, {
"label": "赤峰市",
"value": "赤峰市",
"children": [{
"label": "红山区",
"value": "红山区"
},
{
"label": "元宝山区",
"value": "元宝山区"
},
{
"label": "松山区",
"value": "松山区"
},
{
"label": "阿鲁科尔沁旗",
"value": "阿鲁科尔沁旗"
},
{
"label": "巴林左旗",
"value": "巴林左旗"
},
{
"label": "巴林右旗",
"value": "巴林右旗"
},
{
"label": "林西县",
"value": "林西县"
},
{
"label": "克什克腾旗",
"value": "克什克腾旗"
},
{
"label": "翁牛特旗",
"value": "翁牛特旗"
},
{
"label": "喀喇沁旗",
"value": "喀喇沁旗"
},
{
"label": "宁城县",
"value": "宁城县"
},
{
"label": "敖汉旗",
"value": "敖汉旗"
}
]
}, {
"label": "通辽市",
"value": "通辽市",
"children": [{
"label": "科尔沁区",
"value": "科尔沁区"
},
{
"label": "科尔沁左翼中旗",
"value": "科尔沁左翼中旗"
},
{
"label": "科尔沁左翼后旗",
"value": "科尔沁左翼后旗"
},
{
"label": "开鲁县",
"value": "开鲁县"
},
{
"label": "库伦旗",
"value": "库伦旗"
},
{
"label": "奈曼旗",
"value": "奈曼旗"
},
{
"label": "扎鲁特旗",
"value": "扎鲁特旗"
},
{
"label": "霍林郭勒市",
"value": "霍林郭勒市"
}
]
}, {
"label": "鄂尔多斯市",
"value": "鄂尔多斯市",
"children": [{
"label": "东胜区",
"value": "东胜区"
},
{
"label": "康巴什区",
"value": "康巴什区"
},
{
"label": "达拉特旗",
"value": "达拉特旗"
},
{
"label": "准格尔旗",
"value": "准格尔旗"
},
{
"label": "鄂托克前旗",
"value": "鄂托克前旗"
},
{
"label": "鄂托克旗",
"value": "鄂托克旗"
},
{
"label": "杭锦旗",
"value": "杭锦旗"
},
{
"label": "乌审旗",
"value": "乌审旗"
},
{
"label": "伊金霍洛旗",
"value": "伊金霍洛旗"
}
]
}, {
"label": "呼伦贝尔市",
"value": "呼伦贝尔市",
"children": [{
"label": "海拉尔区",
"value": "海拉尔区"
},
{
"label": "扎赉诺尔区",
"value": "扎赉诺尔区"
},
{
"label": "阿荣旗",
"value": "阿荣旗"
},
{
"label": "莫力达瓦达斡尔族自治旗",
"value": "莫力达瓦达斡尔族自治旗"
},
{
"label": "鄂伦春自治旗",
"value": "鄂伦春自治旗"
},
{
"label": "鄂温克族自治旗",
"value": "鄂温克族自治旗"
},
{
"label": "陈巴尔虎旗",
"value": "陈巴尔虎旗"
},
{
"label": "新巴尔虎左旗",
"value": "新巴尔虎左旗"
},
{
"label": "新巴尔虎右旗",
"value": "新巴尔虎右旗"
},
{
"label": "满洲里市",
"value": "满洲里市"
},
{
"label": "牙克石市",
"value": "牙克石市"
},
{
"label": "扎兰屯市",
"value": "扎兰屯市"
},
{
"label": "额尔古纳市",
"value": "额尔古纳市"
},
{
"label": "根河市",
"value": "根河市"
}
]
}, {
"label": "巴彦淖尔市",
"value": "巴彦淖尔市",
"children": [{
"label": "临河区",
"value": "临河区"
},
{
"label": "五原县",
"value": "五原县"
},
{
"label": "磴口县",
"value": "磴口县"
},
{
"label": "乌拉特前旗",
"value": "乌拉特前旗"
},
{
"label": "乌拉特中旗",
"value": "乌拉特中旗"
},
{
"label": "乌拉特后旗",
"value": "乌拉特后旗"
},
{
"label": "杭锦后旗",
"value": "杭锦后旗"
}
]
}, {
"label": "乌兰察布市",
"value": "乌兰察布市",
"children": [{
"label": "集宁区",
"value": "集宁区"
},
{
"label": "卓资县",
"value": "卓资县"
},
{
"label": "化德县",
"value": "化德县"
},
{
"label": "商都县",
"value": "商都县"
},
{
"label": "兴和县",
"value": "兴和县"
},
{
"label": "凉城县",
"value": "凉城县"
},
{
"label": "察哈尔右翼前旗",
"value": "察哈尔右翼前旗"
},
{
"label": "察哈尔右翼中旗",
"value": "察哈尔右翼中旗"
},
{
"label": "察哈尔右翼后旗",
"value": "察哈尔右翼后旗"
},
{
"label": "四子王旗",
"value": "四子王旗"
},
{
"label": "丰镇市",
"value": "丰镇市"
}
]
}, {
"label": "兴安盟",
"value": "兴安盟",
"children": [{
"label": "乌兰浩特市",
"value": "乌兰浩特市"
},
{
"label": "阿尔山市",
"value": "阿尔山市"
},
{
"label": "科尔沁右翼前旗",
"value": "科尔沁右翼前旗"
},
{
"label": "科尔沁右翼中旗",
"value": "科尔沁右翼中旗"
},
{
"label": "扎赉特旗",
"value": "扎赉特旗"
},
{
"label": "突泉县",
"value": "突泉县"
}
]
}, {
"label": "锡林郭勒盟",
"value": "锡林郭勒盟",
"children": [{
"label": "二连浩特市",
"value": "二连浩特市"
},
{
"label": "锡林浩特市",
"value": "锡林浩特市"
},
{
"label": "阿巴嘎旗",
"value": "阿巴嘎旗"
},
{
"label": "苏尼特左旗",
"value": "苏尼特左旗"
},
{
"label": "苏尼特右旗",
"value": "苏尼特右旗"
},
{
"label": "东乌珠穆沁旗",
"value": "东乌珠穆沁旗"
},
{
"label": "西乌珠穆沁旗",
"value": "西乌珠穆沁旗"
},
{
"label": "太仆寺旗",
"value": "太仆寺旗"
},
{
"label": "镶黄旗",
"value": "镶黄旗"
},
{
"label": "正镶白旗",
"value": "正镶白旗"
},
{
"label": "正蓝旗",
"value": "正蓝旗"
},
{
"label": "多伦县",
"value": "多伦县"
}
]
}, {
"label": "阿拉善盟",
"value": "阿拉善盟",
"children": [{
"label": "阿拉善左旗",
"value": "阿拉善左旗"
},
{
"label": "阿拉善右旗",
"value": "阿拉善右旗"
},
{
"label": "额济纳旗",
"value": "额济纳旗"
}
]
}
]
}

69
src/pages/mine/index.vue

@ -5,16 +5,12 @@
<view class="head"> <view class="head">
<view class="left"> <view class="left">
<u-avatar v-if="logintype" :src="url + '/' + userStore.userInfo.head_pic" :size="72"></u-avatar> <u-avatar v-if="logintype" :src="url + '/' + userStore.userInfo.head_pic" :size="72"></u-avatar>
<img v-else style="width: 72px; height: 72px; border-radius: 50%" src="@/static/img/qdl.png" alt="" /> <img v-else style="width: 144rpx; height: 144rpx; border-radius: 50%" src="@/static/img/qdl.png"
alt="" />
<text class="name">{{ userStore.userInfo.name }}</text> <text class="name">{{ userStore.userInfo.name }}</text>
</view> </view>
<image <image v-if="logintype" style="width: 48rpx; height: 48rpx" src="@/static/img/setting.png" mode=""
v-if="logintype" @click="goeditinfo('')"></image>
style="width: 48rpx; height: 48rpx"
src="@/static/img/setting.png"
mode=""
@click="goeditinfo('')"
></image>
</view> </view>
<view class="editlist"> <view class="editlist">
<view class="editone" @click="goeditinfo('关联企业')"> <view class="editone" @click="goeditinfo('关联企业')">
@ -31,6 +27,13 @@
</view> </view>
<image style="width: 14.14rpx; height: 14.14rpx" src="@/static/img/Group13.png" mode=""></image> <image style="width: 14.14rpx; height: 14.14rpx" src="@/static/img/Group13.png" mode=""></image>
</view> </view>
<view class="editone" @click="goeditinfo('完善入会信息')" v-if="showwsmsg">
<view class="left">
<image style="width: 74rpx; height: 74rpx" src="@/static/img/wdkc.png" mode=""></image>
<text class="txt">完善入会信息</text>
</view>
<image style="width: 14.14rpx; height: 14.14rpx" src="@/static/img/Group13.png" mode=""></image>
</view>
<!-- <view class="editone" @click="goeditinfo('我的课程')"> <!-- <view class="editone" @click="goeditinfo('我的课程')">
<view class="left"> <view class="left">
<image style="width: 74rpx; height: 74rpx" src="@/static/img/wdkc.png" mode=""></image> <image style="width: 74rpx; height: 74rpx" src="@/static/img/wdkc.png" mode=""></image>
@ -49,15 +52,23 @@
</template> </template>
<script setup> <script setup>
import { onLoad } from '@dcloudio/uni-app' import {
import { ref } from 'vue' onLoad
import useUserStore from '@/store/user' } from '@dcloudio/uni-app'
const userStore = useUserStore() import {
ref
} from 'vue'
import {
myInfo
} from '@/api/memberCenter'
import useUserStore from '@/store/user'
const userStore = useUserStore()
const url = ref(import.meta.env.VITE_APP_BASE_URL) const url = ref(import.meta.env.VITE_APP_BASE_URL)
const logintype = ref(false) const logintype = ref(false)
const goeditinfo = (val) => { const goeditinfo = (val) => {
if (val === '关联企业') { if (val === '关联企业') {
uni.navigateTo({ uni.navigateTo({
url: '/pages/mine/associatedEnterprise' url: '/pages/mine/associatedEnterprise'
@ -70,20 +81,32 @@ const goeditinfo = (val) => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/mine/myCourses' url: '/pages/mine/myCourses'
}) })
} else if (val === '完善入会信息') {
uni.navigateTo({
url: '/pages/memberCenter/inpart?number='+userStore.userInfo.moblie
})
} else { } else {
uni.navigateTo({ uni.navigateTo({
url: '/pages/mine/porsonalinfo' url: '/pages/mine/porsonalinfo'
}) })
} }
} }
const outLogin = () => { const outLogin = () => {
userStore.logOut() userStore.logOut()
logintype.value = !logintype.value logintype.value = !logintype.value
} }
onShow(() => { const showwsmsg = ref(false)
onShow(() => {
myInfo().then(res => {
if(res.data.id) {
showwsmsg.value = true
} else {
showwsmsg.value = false
}
})
logintype.value = uni.getStorageSync('access_token') logintype.value = uni.getStorageSync('access_token')
if(!logintype.value) { if (!logintype.value) {
userStore.userInfo = {} userStore.userInfo = {}
} }
// if (uni.getStorageSync('access_token') === '') { // if (uni.getStorageSync('access_token') === '') {
@ -93,11 +116,11 @@ onShow(() => {
// } else { // } else {
userStore.getUserInfo() userStore.getUserInfo()
// } // }
}) })
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container { .container {
background-color: #ffffff; background-color: #ffffff;
height: 100vh; height: 100vh;
width: 100%; width: 100%;
@ -190,5 +213,5 @@ onShow(() => {
} }
} }
} }
} }
</style> </style>
Loading…
Cancel
Save