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",
"pnpm": "^10.14.0",
"sass": "^1.63.2",
"uview-plus": "^3.4.9",
"uview-plus": "^3.5.52",
"vue": "^3.2.45",
"vue-i18n": "^9.1.9"
},
@ -12075,13 +12075,17 @@
}
},
"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": {
"clipboard": "^2.0.11",
"dayjs": "^1.11.3"
},
"engines": {
"HBuilderX": "^3.1.0"
"HBuilderX": "^3.1.0",
"uni-app": "^4.66",
"uni-app-x": ""
}
},
"node_modules/v8-to-istanbul": {
@ -20513,7 +20517,9 @@
"dev": true
},
"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": {
"clipboard": "^2.0.11",
"dayjs": "^1.11.3"

2
package.json

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

71
src/api/memberCenter.ts

@ -41,3 +41,74 @@ export function myMemberApply() {
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
}
},
{
"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",
"style": {

74
src/pages/index/index.vue

@ -106,28 +106,32 @@
<image style="width: 40rpx; height: 40rpx" src="@/static/img/tjhy.png" mode=""></image>
<text class="text">活跃会员</text>
</view>
<view class="more" @click="gohyzc">
会员注册
</view>
<view class="more" @click="gohyList">更多会员 ></view>
</view>
<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">
<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">
<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="namepart">
<text class="name">{{ item.name }}</text>
<view class="biaoq"
:style="{ background: `linear-gradient(0deg, ${item.member_tag_color} 0%, #dcdcdc70 100%)` }">
{{ item.member_tag_title }}
<text class="name">{{ item.contact }}</text>
<view class="biaoq" v-if="item.industry"
:style="{ background: `linear-gradient(0deg, #007fff 0%, #dcdcdc70 100%)` }">
{{ item.industry }}
</view>
</view>
<text class="company">{{ item.enterprise ? item.enterprise[0].title : '无' }}</text>
<text class="company">{{ item.title || '无' }}</text>
</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>
</scroll-view>
</view>
@ -172,7 +176,7 @@
} from '@/api/index'
import chatdialog from '@/pages/index/ChatDialog.vue'
import {
memberTagList,
xhMember,
memberCenter
} from '@/api/memberCenter'
@ -309,6 +313,12 @@
})
}
const gohyzc = () => {
uni.navigateTo({
url: '/pages/memberCenter/memberRegistration'
})
}
const gohdList = () => {
uni.navigateTo({
url: '/pages/index/active/activelist'
@ -347,22 +357,47 @@
}
const getbqlist = async () => {
filterTabs.value = []
await memberTagList().then((res) => {
res.data.forEach((ele) => {
filterTabs.value.push(ele)
})
})
filterTabs.value = [
{
id: 1,
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) => {
let params = {
member_tag_id: id,
name: '',
identity: id,
keyword: '',
page: 1,
limit: 120
}
await memberCenter(params).then((res) => {
await xhMember(params).then((res) => {
hyList.value = res.data.data
})
}
@ -711,7 +746,6 @@
.hylist {
width: 100%;
display: grid;
justify-content: center;
.hyCard {
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="请输入搜索内容"
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>
<tabsComm :tabs-data="filterTabs" :showAll="false" :showNum="3" @tabChange="handleTabSelect" />
<tabsComm :tabs-data="filterTabs" :showAll="true" :showalltitle="'自治区'" :showNum="3" @tabChange="handleTabSelect" />
<view class="main">
<scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="ztone" v-for="(item, index) in ztList" :key="index" @click="godetail(item.id)">
@ -168,7 +168,8 @@
const handleTabSelect = async (tab) => {
currentTab.value = tab
if (tab === 'all') {
// await getMemberCenter('')
currentTab.value = ''
await getfinanceList('', 1, 6)
} else {
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>
<view class="main">
<view class="head">
<image class="toux" :src="baseurl + userData.head_pic" mode=""></image>
<text class="name">{{ userData.name }}</text>
<text class="type">{{ userData.member_tag_title || userData.tag_name }}</text>
<image v-if="userData.head_pic" class="toux" :src="baseurl + userData.head_pic" mode=""></image>
<text class="name">{{ userData.name || userData.contact }}</text>
<text class="type">{{ userData.member_tag_title || userData.title }}</text>
</view>
<view class="content">
<view class="titlepart">
@ -20,9 +20,9 @@
<text class="title">联系方式</text>
</view>
<view class="people">
<text class="text">{{ userData.moblie || userData.tel }}</text>
<text class="text">{{ userData.moblie }}</text>
</view>
<view class="titlepart">
<view class="titlepart" v-if="userData.wx_code">
<view class="icon"></view>
<text class="title">微信二维码</text>
</view>
@ -46,7 +46,7 @@
<script setup>
import { onLoad } from '@dcloudio/uni-app'
import { ref } from 'vue'
import { memberCenterInfo } from '@/api/memberCenter'
import { xhMemberInfo } from '@/api/memberCenter'
import { mediumInfo } from '@/api/shop'
import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue'
@ -62,7 +62,7 @@ onLoad(async (param) => {
}
})
} else {
await memberCenterInfo(param.id).then((res) => {
await xhMemberInfo(param.id).then((res) => {
console.log(res)
if (res.code === 1) {
userData.value = res.data

6
src/pages/index/tabsComm.vue

@ -1,7 +1,7 @@
<template>
<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
@ -59,6 +59,10 @@ const props = defineProps({
showNum: {
type: Number,
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>
<view class="main">
<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">
<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="namepart">
<text class="name">{{ item.name }}</text>
<view class="biaoq" :style="{ background: `linear-gradient(0deg, ${item.member_tag_color} 0%, #dcdcdc70 100%)` }">
{{ item.member_tag_title }}
<text class="name">{{ item.contact }}</text>
<view class="biaoq" v-if="item.industry" :style="{ background: `linear-gradient(0deg, #007fff 0%, #dcdcdc70 100%)` }">
{{ item.industry }}
</view>
</view>
<text class="company">{{ item.enterprise ? item.enterprise[0].title : '无' }}</text>
<text class="company">{{ item.title || '无' }}</text>
</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>
</scroll-view>
</view>
@ -57,7 +59,7 @@
<script setup>
import { ref } from '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 + '/')
@ -92,8 +94,32 @@ const currentTab = ref('0')
// ""
const filterTabs = ref([
{
id: 0,
id: '',
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'
})
} else {
// uni.navigateTo({
// url: '/pages/memberCenter/inpart'
// })
uni.navigateTo({
url: '/pages/memberCenter/inpart'
url: '/pages/memberCenter/memberRegistration'
})
}
}
@ -128,24 +157,24 @@ const godetail = (id) => {
const getbqlist = async () => {
filterTabs.value = [
{
id: 0,
id: '',
title: '全部'
}
]
await memberTagList().then((res) => {
filterTabs.value = [...filterTabs.value, ...res.data]
console.log(res.data)
})
// 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,
identity: id,
keyword: name,
page: page,
limit: limit
}
await memberCenter(params).then((res) => {
await xhMember(params).then((res) => {
hyList.value = res.data.data
})
}
@ -153,18 +182,18 @@ const getMemberCenter = async (id, name, page, limit) => {
const onloadmore = async () => {
page.value++
let params = {
member_tag_id: currentTab.value.id,
name: keyword.value,
identity: currentTab.value.id,
keyword: keyword.value,
page: page.value,
limit: pagesize.value
}
await memberCenter(params).then((res) => {
await xhMember(params).then((res) => {
hyList.value = [...hyList.value, ...res.data.data]
})
}
onLoad(async () => {
await getbqlist()
// await getbqlist()
await getMemberCenter('', '', page.value, pagesize.value)
})
</script>

443
src/pages/memberCenter/inpart.vue

@ -2,89 +2,81 @@
<view class="container">
<view class="formlist">
<u-form :model="form" ref="uFormRef" label-position="top" :rules="rules">
<u-form-item label="姓名" prop="name">
<u-input v-model="form.name" placeholder="请输入真实姓名" placeholder-style="color: #D3D3D3;" />
<u-form-item label="用户身份" prop="member_tag_name">
<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 label="会员标签" prop="member_tag_id">
<u-input
v-model="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
:label="form.identity===1?'会员代表姓名':(form.identity===2?'会员代表姓名':(form.identity===5?'姓名':'联系人'))"
prop="contact">
<u-input v-model="form.contact" placeholder="请输入" placeholder-style="color: #D3D3D3;" />
</u-form-item>
<u-form-item label="身份类型" prop="identity">
<u-input
v-model="identityname"
placeholder="请选择"
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
:label="form.identity===1?'会员代表电话':(form.identity===2?'会员代表电话':(form.identity===5?'电话':'联系电话'))"
prop="tel">
<u-input v-model="form.tel" placeholder="请输入" placeholder-style="color: #D3D3D3;" />
</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 class="inputs" @click="beforeRead(index)">
公司性质
<input
class="inputclass"
placeholder-class="inputplacla"
disabled
disabledColor="#ffffff"
<input class="inputclass" placeholder-class="inputplacla" disabled disabledColor="#ffffff"
:value="group.type == 1 ? '其他(自由职业者等)' : group.type === 2 ? '个体工商户' : group.type === 3 ? '民营企业' : ''"
placeholder="民营企业、个体工商户、其它(自由职业者等)"
@tap="qyshow = true"
/>
<u-action-sheet
:actions="qylist"
title="请选择关联企业类型"
:show="qyshow"
@select="qyClick"
@close="qyshow = false"
></u-action-sheet>
placeholder="民营企业、个体工商户、其它(自由职业者等)" @tap="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="请输入真实公司名称" />
<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 === ''">
<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>
<image
v-else
@click="beforeRead(index)"
<image v-else @click="beforeRead(index)"
style="width: 100%; height: 288rpx; margin-top: 12rpx"
:src="baseurl + '/' + group.license"
mode="scaleToFill"
></image>
: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">
</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 label="个人二维码" prop="wx_code">
<u-upload class="uploadbox" @afterRead="afterRead1" :maxCount="1" :imageMode="'heightFix'" :width="auto" :height="144">
<view class="yyzz" v-if="form.wx_code === ''">
</u-form-item> -->
<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">
<view class="yyzz" v-if="form.business_license === ''">
<image style="width: 40rpx; height: 40rpx" src="@/static/img/yyzz.png" mode=""></image>
请上传可以联系到自己的微信二维码
请上传营业执照
</view>
<image
v-else
style="width: 100%; height: 600rpx; margin-top: 12rpx"
:src="baseurl + '/' + form.wx_code"
mode="scaleToFill"
></image>
<image v-else style="width: 100%; height: 600rpx; margin-top: 12rpx"
:src="baseurl + '/' + form.business_license" mode="scaleToFill"></image>
</u-upload>
</u-form-item>
</u-form>
@ -96,98 +88,168 @@
</template>
<script setup>
import {
import {
ref
} from 'vue';
import {
} from 'vue';
import {
memberTagList,
memberApply
} from '@/api/memberCenter'
import {
memberApply,
xhMemberImprove
} from '@/api/memberCenter'
import {
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 columns = ref([]);
const ishowcommany = ref(false)
const idshow = ref(false);
const idcolumns = ref([
[{
const show = ref(false);
const columns = ref([{
id: 1,
text: '其他(自由职业者等)'
title: '个体私营企业'
},
{
id: 2,
text: '个体工商户'
title: '个体工商户'
},
{
id: 3,
text: '民营企业'
}]
]);
title: '理事单位'
},
{
id: 4,
title: '商协会'
},
{
id: 5,
title: '自然人'
},
{
id: 6,
title: '其他单位'
}
]);
//
const rules = {
name: [{
const dwshow = ref(false);
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,
message: '请输入姓名',
trigger: ['blur', 'change'],
}, ],
// member_tag_id: [{
// required: true,
// message: '',
// trigger: ['blur', 'change'],
// }, ],
// identity: [{
// required: true,
// message: '',
// trigger: ['blur', 'change'],
// }, ],
introduce: [{
tel: [{
required: true,
message: '请输入电话',
trigger: ['blur', 'change'],
}, ],
title: [{
required: true,
message: '请输入个人介绍',
message: '请输入单位名称',
trigger: ['blur', 'change'],
}, ],
wx_code: [{
industry: [{
required: true,
message: '请上传个人二维码',
message: '请输入行业',
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: '',
title: '',
license: ''
}])
}])
const addGroup = () => {
const addGroup = () => {
inputGroups.value.push({
type: '',
title: '',
license: ''
})
}
}
const qyshow = ref(false)
const qylist = ref([{
const qyshow = ref(false)
const qylist = ref([{
id: 1,
name: '其他(自由职业者等)',
},
@ -198,21 +260,22 @@ const qylist = ref([{
{
id: 3,
name: '民营企业',
}]);
const qyClick = async (val) => {
}
]);
const qyClick = async (val) => {
inputGroups.value[upclickindex.value].type = val.id
}
}
const removeGroup = (index) => {
const removeGroup = (index) => {
inputGroups.value.splice(index, 1)
}
}
const upclickindex = ref(0)
const beforeRead = (index) => {
const upclickindex = ref(0)
const beforeRead = (index) => {
upclickindex.value = index
}
}
const afterRead = async (e) => {
const afterRead = async (e) => {
uni.uploadFile({
url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image',
filePath: e.file.url,
@ -229,9 +292,9 @@ const afterRead = async (e) => {
console.log('失败', res);
}
})
}
}
const afterRead1 = async (e) => {
const afterRead1 = async (e) => {
uni.uploadFile({
url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image',
filePath: e.file.url,
@ -241,102 +304,88 @@ const afterRead1 = async (e) => {
},
success: async (val) => {
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) => {
console.log('失败', res);
}
})
}
}
//
const uFormRef = ref(null);
//
const uFormRef = ref(null);
const confirm = (val) => {
console.log(val.value[0]);
member_tag_name.value = val.value[0].title
form.value.member_tag_id = val.value[0].id
const confirm = (val) => {
form.value.member_tag_name = val.value[0].title
form.value.identity = val.value[0].id
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
const dwconfirm = (val) => {
form.value.title = val.value[0].id
dwshow.value = false
}
const dzconfirm = (val) => {
console.log(val);
form.value.address = val[1] + '-' + val[2]
dzshow.value = false
}
}
//
function submit() {
//
function submit() {
uFormRef.value.validate().then(valid => {
if (valid) {
let data = []
inputGroups.value.forEach((obj) => {
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 {
// inputGroups.value.forEach((obj) => {
// if (obj.type == '' || obj.title == '' || obj.license == '') {
// uni.showToast({
// title: '',
// icon: 'fail'
// })
// } else {
// data.push(obj)
// }
// })
uni.$u.toast('校验通过')
delete form.value.member_tag_name
console.log(form.value);
memberApply(form.value).then((res) => {
if(res.code === 1) {
xhMemberImprove(form.value).then((res) => {
if (res.code === 1) {
uni.switchTab({
url: '/pages/memberCenter/index'
})
uni.showToast({
title: '请等待审核',
icon: 'success'
icon: 'success',
duration: 2000
})
}
} else {
uni.showToast({
title: res.msg,
icon: 'fail',
duration: 2000
})
}
}
})
}
}).catch(() => {
//
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>
<style scoped lang="scss">
.container {
background-color: #ffffff;
.container {
background-color: #e9ecf3;
width: 100%;
height: 100vh;
overflow-y: hidden;
@ -482,9 +531,9 @@ onShow(async () => {
color: #ffffff;
}
}
}
}
.yyzz {
.yyzz {
margin-top: 12rpx;
width: 100%;
height: 288rpx;
@ -499,23 +548,23 @@ onShow(async () => {
line-height: 70rpx;
letter-spacing: normal;
color: #cccccc;
}
}
:deep(.u-upload) {
:deep(.u-upload) {
.u-upload__wrap {
view {
width: 100%;
}
}
}
}
</style>
<style>
.u-input {
.u-input {
background-color: #ffffff;
height: 100rpx !important;
}
}
.u-form-item__body__left__content__label {
.u-form-item__body__left__content__label {
white-space: nowrap;
}
}
</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="left">
<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>
</view>
<image
v-if="logintype"
style="width: 48rpx; height: 48rpx"
src="@/static/img/setting.png"
mode=""
@click="goeditinfo('')"
></image>
<image v-if="logintype" style="width: 48rpx; height: 48rpx" src="@/static/img/setting.png" mode=""
@click="goeditinfo('')"></image>
</view>
<view class="editlist">
<view class="editone" @click="goeditinfo('关联企业')">
@ -31,6 +27,13 @@
</view>
<image style="width: 14.14rpx; height: 14.14rpx" src="@/static/img/Group13.png" mode=""></image>
</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="left">
<image style="width: 74rpx; height: 74rpx" src="@/static/img/wdkc.png" mode=""></image>
@ -49,15 +52,23 @@
</template>
<script setup>
import { onLoad } from '@dcloudio/uni-app'
import { ref } from 'vue'
import useUserStore from '@/store/user'
const userStore = useUserStore()
import {
onLoad
} from '@dcloudio/uni-app'
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 logintype = ref(false)
const url = ref(import.meta.env.VITE_APP_BASE_URL)
const logintype = ref(false)
const goeditinfo = (val) => {
const goeditinfo = (val) => {
if (val === '关联企业') {
uni.navigateTo({
url: '/pages/mine/associatedEnterprise'
@ -70,20 +81,32 @@ const goeditinfo = (val) => {
uni.navigateTo({
url: '/pages/mine/myCourses'
})
} else if (val === '完善入会信息') {
uni.navigateTo({
url: '/pages/memberCenter/inpart?number='+userStore.userInfo.moblie
})
} else {
uni.navigateTo({
url: '/pages/mine/porsonalinfo'
})
}
}
}
const outLogin = () => {
const outLogin = () => {
userStore.logOut()
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')
if(!logintype.value) {
if (!logintype.value) {
userStore.userInfo = {}
}
// if (uni.getStorageSync('access_token') === '') {
@ -93,11 +116,11 @@ onShow(() => {
// } else {
userStore.getUserInfo()
// }
})
})
</script>
<style scoped lang="scss">
.container {
.container {
background-color: #ffffff;
height: 100vh;
width: 100%;
@ -190,5 +213,5 @@ onShow(() => {
}
}
}
}
}
</style>
Loading…
Cancel
Save