Commit 6efe1a3b2009479a6d82de9609c2d2ae6fb67963
1 parent
de222c84
Exists in
master
feat: 出行人新增性别,选家长时提示
Showing
9 changed files
with
52 additions
and
337 deletions
 
Show diff stats
src/App.vue
| 1 | <template> | 1 | <template> | 
| 2 | <div id="app"> | 2 | <div id="app"> | 
| 3 | <keep-alive> | 3 | <keep-alive> | 
| 4 | - <!--这里是会被缓存的组件--> | ||
| 5 | <router-view v-if="this.$route.meta.keepAlive" /> | 4 | <router-view v-if="this.$route.meta.keepAlive" /> | 
| 6 | </keep-alive> | 5 | </keep-alive> | 
| 7 | - <!--这里是不会被缓存的组件--> | 6 | + | 
| 8 | <router-view v-if="!this.$route.meta.keepAlive" /> | 7 | <router-view v-if="!this.$route.meta.keepAlive" /> | 
| 9 | </div> | 8 | </div> | 
| 10 | </template> | 9 | </template> | 
src/component/Tabbar.vue
| @@ -1,102 +0,0 @@ | @@ -1,102 +0,0 @@ | ||
| 1 | -<template> | ||
| 2 | - <div id="tabbar"> | ||
| 3 | - <div class="tab" :class="active=='lecture'?'active':''" @click="handleLecture"> | ||
| 4 | - <img v-if="active=='lecture'" src="../assets/tabbar1/tab1_on.png" alt=""> | ||
| 5 | - <img v-else src="../assets/tabbar1/tab1_off.png" alt=""> | ||
| 6 | - <p>公益讲座</p> | ||
| 7 | - </div> | ||
| 8 | - <div class="center"> | ||
| 9 | - <img class="tip" src="../assets/tabbar1/tab2.png" alt=""> | ||
| 10 | - <wx-open-launch-weapp id="launch-btn" username="gh_c0f904a5ee0c" path="pages/index/index?type=zkedt"> | ||
| 11 | - <script type="text/wxtag-template"> | ||
| 12 | - <style>.mini_btn { width:500px;height:500px;background:transparent;border:0; }</style> | ||
| 13 | - <button class="mini_btn"></button> | ||
| 14 | - </script> | ||
| 15 | - </wx-open-launch-weapp> | ||
| 16 | - </div> | ||
| 17 | - <div class="tab"> | ||
| 18 | - <div class="block"></div> | ||
| 19 | - <p>志愿填报</p> | ||
| 20 | - </div> | ||
| 21 | - <div class="tab" :class="active=='center'?'active':''" @click="handleCenter"> | ||
| 22 | - <img v-if="active=='center'" src="../assets/tabbar1/tab3_on.png" alt=""> | ||
| 23 | - <img v-else src="../assets/tabbar1/tab3_off.png" alt=""> | ||
| 24 | - <p>个人中心</p> | ||
| 25 | - </div> | ||
| 26 | - </div> | ||
| 27 | -</template> | ||
| 28 | -<script> | ||
| 29 | -export default { | ||
| 30 | - name:'Tabbar', | ||
| 31 | - props:{ | ||
| 32 | - active:String | ||
| 33 | - }, | ||
| 34 | - mounted(){ | ||
| 35 | - console.log(this.active) | ||
| 36 | - }, | ||
| 37 | - methods:{ | ||
| 38 | - // 点击讲座 | ||
| 39 | - handleLecture(){ | ||
| 40 | - this.$router.push({name:'Lecture'}) | ||
| 41 | - }, | ||
| 42 | - // 点击个人中心 | ||
| 43 | - handleCenter(){ | ||
| 44 | - this.$router.push({name:'Home'}) | ||
| 45 | - } | ||
| 46 | - } | ||
| 47 | -} | ||
| 48 | -</script> | ||
| 49 | -<style lang="scss"> | ||
| 50 | -#tabbar { | ||
| 51 | - position: fixed; | ||
| 52 | - bottom: 0; | ||
| 53 | - width: 100%; | ||
| 54 | - height: 100px; | ||
| 55 | - background: #fff; | ||
| 56 | - display: flex; | ||
| 57 | - justify-content: space-around; | ||
| 58 | - padding-bottom: 40px; | ||
| 59 | - .tab { | ||
| 60 | - | ||
| 61 | - padding: 18px; | ||
| 62 | - img { | ||
| 63 | - width: 52px; | ||
| 64 | - display: block; | ||
| 65 | - margin: 0 auto; | ||
| 66 | - } | ||
| 67 | - .block{ | ||
| 68 | - width: 52px; | ||
| 69 | - height: 52px; | ||
| 70 | - } | ||
| 71 | - p { | ||
| 72 | - font-size: 20px; | ||
| 73 | - color: #999999; | ||
| 74 | - text-align: center; | ||
| 75 | - } | ||
| 76 | - &.active{ | ||
| 77 | - p{ | ||
| 78 | - color: #5789FF; | ||
| 79 | - } | ||
| 80 | - } | ||
| 81 | - } | ||
| 82 | - .center { | ||
| 83 | - width: 92px; | ||
| 84 | - height: 92px; | ||
| 85 | - padding: 30px; | ||
| 86 | - background: transparent; | ||
| 87 | - position: absolute; | ||
| 88 | - top: -60px; | ||
| 89 | - left: 299px; | ||
| 90 | - overflow: hidden; | ||
| 91 | - z-index: 1; | ||
| 92 | - .tip { | ||
| 93 | - width: 92px; | ||
| 94 | - position: absolute; | ||
| 95 | - top: 50%; | ||
| 96 | - left: 50%; | ||
| 97 | - transform: translate(-50%, -50%); | ||
| 98 | - z-index: -1; | ||
| 99 | - } | ||
| 100 | - } | ||
| 101 | -} | ||
| 102 | -</style> | ||
| 103 | \ No newline at end of file | 0 | \ No newline at end of file | 
src/component/Tabbar2.vue
| @@ -1,109 +0,0 @@ | @@ -1,109 +0,0 @@ | ||
| 1 | -<template> | ||
| 2 | - <div id="tabbar"> | ||
| 3 | - <div class="tab" :class="active=='databook'?'active':''" @click="handleDataBook"> | ||
| 4 | - <img v-if="active=='databook'" src="../assets/tabbar2/tab1_on.png" alt=""> | ||
| 5 | - <img v-else src="../assets/tabbar2/tab1_off.png" alt=""> | ||
| 6 | - <p>数据宝典</p> | ||
| 7 | - </div> | ||
| 8 | - <div class="tab" :class="active=='careerplan'?'active':''" @click="handleCareerPlan"> | ||
| 9 | - <img v-if="active=='careerplan'" src="../assets/tabbar2/tab2_on.png" alt=""> | ||
| 10 | - <img v-else src="../assets/tabbar2/tab2_off.png" alt=""> | ||
| 11 | - <p>生涯规划</p> | ||
| 12 | - </div> | ||
| 13 | - <!-- <div class="tab" :class="active=='community'?'active':''" @click="handleCommunity"> | ||
| 14 | - <img v-if="active=='community'" src="../assets/tabbar2/tab3_on.png" alt=""> | ||
| 15 | - <img v-else src="../assets/tabbar2/tab3_off.png" alt=""> | ||
| 16 | - <p>社区</p> | ||
| 17 | - </div> --> | ||
| 18 | - <div class="tab" :class="active=='service'?'active':''" @click="handleService"> | ||
| 19 | - <img v-if="active=='service'" src="../assets/tabbar2/tab3_on.png" alt=""> | ||
| 20 | - <img v-else src="../assets/tabbar2/tab3_off.png" alt=""> | ||
| 21 | - <p>服务活动</p> | ||
| 22 | - </div> | ||
| 23 | - <div class="tab" :class="active=='center'?'active':''" @click="handleCenter"> | ||
| 24 | - <img v-if="active=='center'" src="../assets/tabbar2/tab4_on.png" alt=""> | ||
| 25 | - <img v-else src="../assets/tabbar2/tab4_off.png" alt=""> | ||
| 26 | - <p>个人中心</p> | ||
| 27 | - </div> | ||
| 28 | - </div> | ||
| 29 | -</template> | ||
| 30 | -<script> | ||
| 31 | -export default { | ||
| 32 | - name: 'Tabbar2', | ||
| 33 | - props: { | ||
| 34 | - active: String | ||
| 35 | - }, | ||
| 36 | - methods: { | ||
| 37 | - handleDataBook () { | ||
| 38 | - this.$router.push({ name: 'DataBook' }) | ||
| 39 | - }, | ||
| 40 | - handleCareerPlan () { | ||
| 41 | - this.$router.push({ name: 'CareerPlan' }) | ||
| 42 | - }, | ||
| 43 | - handleCommunity () { | ||
| 44 | - this.$router.push({ name: 'Community' }) | ||
| 45 | - }, | ||
| 46 | - handleService () { | ||
| 47 | - this.$router.push({ name: 'Service' }) | ||
| 48 | - }, | ||
| 49 | - handleCenter(){ | ||
| 50 | - this.$router.push({ name: 'Home' }) | ||
| 51 | - } | ||
| 52 | - } | ||
| 53 | -} | ||
| 54 | -</script> | ||
| 55 | -<style lang="scss" scoped> | ||
| 56 | -#tabbar { | ||
| 57 | - position: fixed; | ||
| 58 | - bottom: 0; | ||
| 59 | - width: 100%; | ||
| 60 | - height: 100px; | ||
| 61 | - background: #fff; | ||
| 62 | - display: flex; | ||
| 63 | - justify-content: space-around; | ||
| 64 | - padding-bottom: 40px; | ||
| 65 | - z-index: 99; | ||
| 66 | - .tab { | ||
| 67 | - padding: 18px; | ||
| 68 | - img { | ||
| 69 | - width: 36px; | ||
| 70 | - padding: 20px; | ||
| 71 | - display: block; | ||
| 72 | - margin: 0 auto; | ||
| 73 | - } | ||
| 74 | - .block { | ||
| 75 | - width: 52px; | ||
| 76 | - height: 52px; | ||
| 77 | - } | ||
| 78 | - p { | ||
| 79 | - font-size: 20px; | ||
| 80 | - color: #999999; | ||
| 81 | - text-align: center; | ||
| 82 | - } | ||
| 83 | - &.active { | ||
| 84 | - p { | ||
| 85 | - color: #5789ff; | ||
| 86 | - } | ||
| 87 | - } | ||
| 88 | - } | ||
| 89 | - .center { | ||
| 90 | - width: 92px; | ||
| 91 | - height: 92px; | ||
| 92 | - padding: 30px; | ||
| 93 | - background: transparent; | ||
| 94 | - position: absolute; | ||
| 95 | - top: -60px; | ||
| 96 | - left: 299px; | ||
| 97 | - overflow: hidden; | ||
| 98 | - z-index: 1; | ||
| 99 | - .tip { | ||
| 100 | - width: 92px; | ||
| 101 | - position: absolute; | ||
| 102 | - top: 50%; | ||
| 103 | - left: 50%; | ||
| 104 | - transform: translate(-50%, -50%); | ||
| 105 | - z-index: -1; | ||
| 106 | - } | ||
| 107 | - } | ||
| 108 | -} | ||
| 109 | -</style> | ||
| 110 | \ No newline at end of file | 0 | \ No newline at end of file | 
src/component/Tabbar3.vue
| @@ -1,96 +0,0 @@ | @@ -1,96 +0,0 @@ | ||
| 1 | -<template> | ||
| 2 | - <div id="tabbar"> | ||
| 3 | - <div class="tab" :class="active=='ZZY'?'active':''" @click="handZZY"> | ||
| 4 | - <img v-if="active=='ZZY'" src="../assets/tabbar2/tab2_on.png" alt=""> | ||
| 5 | - <img v-else src="../assets/tabbar2/tab2_off.png" alt=""> | ||
| 6 | - <p>周周营</p> | ||
| 7 | - </div> | ||
| 8 | - <div class="tab" :class="active=='QXY'?'active':''" @click="handleQYX"> | ||
| 9 | - <img v-if="active=='QXY'" src="../assets/tabbar2/tab3_on.png" alt=""> | ||
| 10 | - <img v-else src="../assets/tabbar2/tab3_off.png" alt=""> | ||
| 11 | - <p>趣学院</p> | ||
| 12 | - </div> | ||
| 13 | - <div class="tab" :class="active=='center'?'active':''" @click="handleCenter"> | ||
| 14 | - <img v-if="active=='center'" src="../assets/tabbar2/tab4_on.png" alt=""> | ||
| 15 | - <img v-else src="../assets/tabbar2/tab4_off.png" alt=""> | ||
| 16 | - <p>我的</p> | ||
| 17 | - </div> | ||
| 18 | - </div> | ||
| 19 | -</template> | ||
| 20 | -<script> | ||
| 21 | -export default { | ||
| 22 | - name: 'Tabbar3', | ||
| 23 | - props: { | ||
| 24 | - active: String | ||
| 25 | - }, | ||
| 26 | - methods: { | ||
| 27 | - handZZY () { | ||
| 28 | - let publicName = sessionStorage.getItem('publicName'); | ||
| 29 | - this.$router.push({ name: 'Service' + publicName, query: { showTab: 'ZZY' } }) | ||
| 30 | - }, | ||
| 31 | - handleQYX () { | ||
| 32 | - let publicName = sessionStorage.getItem('publicName'); | ||
| 33 | - this.$router.push({ name: 'Service' + publicName, query: { showTab: 'QXY' } }) | ||
| 34 | - }, | ||
| 35 | - handleCenter () { | ||
| 36 | - let publicName = sessionStorage.getItem('publicName'); | ||
| 37 | - this.$router.push({ name: 'Home'+publicName }) | ||
| 38 | - } | ||
| 39 | - } | ||
| 40 | -} | ||
| 41 | -</script> | ||
| 42 | -<style lang="scss" scoped> | ||
| 43 | -#tabbar { | ||
| 44 | - position: fixed; | ||
| 45 | - bottom: 0; | ||
| 46 | - width: 100%; | ||
| 47 | - height: 100px; | ||
| 48 | - background: #fff; | ||
| 49 | - display: flex; | ||
| 50 | - justify-content: space-around; | ||
| 51 | - padding-bottom: 40px; | ||
| 52 | - z-index: 99; | ||
| 53 | - .tab { | ||
| 54 | - padding: 18px; | ||
| 55 | - img { | ||
| 56 | - width: 36px; | ||
| 57 | - padding: 20px; | ||
| 58 | - display: block; | ||
| 59 | - margin: 0 auto; | ||
| 60 | - } | ||
| 61 | - .block { | ||
| 62 | - width: 52px; | ||
| 63 | - height: 52px; | ||
| 64 | - } | ||
| 65 | - p { | ||
| 66 | - font-size: 20px; | ||
| 67 | - color: #999999; | ||
| 68 | - text-align: center; | ||
| 69 | - } | ||
| 70 | - &.active { | ||
| 71 | - p { | ||
| 72 | - color: #5789ff; | ||
| 73 | - } | ||
| 74 | - } | ||
| 75 | - } | ||
| 76 | - .center { | ||
| 77 | - width: 92px; | ||
| 78 | - height: 92px; | ||
| 79 | - padding: 30px; | ||
| 80 | - background: transparent; | ||
| 81 | - position: absolute; | ||
| 82 | - top: -60px; | ||
| 83 | - left: 299px; | ||
| 84 | - overflow: hidden; | ||
| 85 | - z-index: 1; | ||
| 86 | - .tip { | ||
| 87 | - width: 92px; | ||
| 88 | - position: absolute; | ||
| 89 | - top: 50%; | ||
| 90 | - left: 50%; | ||
| 91 | - transform: translate(-50%, -50%); | ||
| 92 | - z-index: -1; | ||
| 93 | - } | ||
| 94 | - } | ||
| 95 | -} | ||
| 96 | -</style> | ||
| 97 | \ No newline at end of file | 0 | \ No newline at end of file | 
src/component/Tabbar4.vue
| @@ -25,16 +25,13 @@ export default { | @@ -25,16 +25,13 @@ export default { | ||
| 25 | }, | 25 | }, | 
| 26 | methods: { | 26 | methods: { | 
| 27 | handZZY () { | 27 | handZZY () { | 
| 28 | - let publicName = sessionStorage.getItem('publicName'); | ||
| 29 | - this.$router.push({ name: 'Service' + publicName, query: { showTab: 'ZZY' } }) | 28 | + this.$router.push({ name: 'ServiceKQ', query: { showTab: 'ZZY' } }) | 
| 30 | }, | 29 | }, | 
| 31 | handleKQ () { | 30 | handleKQ () { | 
| 32 | - let publicName = sessionStorage.getItem('publicName'); | ||
| 33 | - this.$router.push({ name: 'Service' + publicName, query: { showTab: 'KQ' } }) | 31 | + this.$router.push({ name: 'ServiceKQ', query: { showTab: 'KQ' } }) | 
| 34 | }, | 32 | }, | 
| 35 | handleCenter () { | 33 | handleCenter () { | 
| 36 | - let publicName = sessionStorage.getItem('publicName'); | ||
| 37 | - this.$router.push({ name: 'Home'+publicName }) | 34 | + this.$router.push({ name: 'HomeKQ' }) | 
| 38 | } | 35 | } | 
| 39 | } | 36 | } | 
| 40 | } | 37 | } | 
src/router/index.js
| @@ -195,7 +195,7 @@ const routes = [{ | @@ -195,7 +195,7 @@ const routes = [{ | ||
| 195 | name: 'SelectContact', | 195 | name: 'SelectContact', | 
| 196 | component: SelectContact, | 196 | component: SelectContact, | 
| 197 | meta: { | 197 | meta: { | 
| 198 | - title: '选择联系人' | 198 | + title: '选择出行人' | 
| 199 | } | 199 | } | 
| 200 | }, | 200 | }, | 
| 201 | { | 201 | { | 
| @@ -203,7 +203,7 @@ const routes = [{ | @@ -203,7 +203,7 @@ const routes = [{ | ||
| 203 | name: 'EditContact', | 203 | name: 'EditContact', | 
| 204 | component: EditContact, | 204 | component: EditContact, | 
| 205 | meta: { | 205 | meta: { | 
| 206 | - title: '修改联系人' | 206 | + title: '修改出行人' | 
| 207 | } | 207 | } | 
| 208 | }, | 208 | }, | 
| 209 | { | 209 | { | 
| @@ -224,7 +224,7 @@ const routes = [{ | @@ -224,7 +224,7 @@ const routes = [{ | ||
| 224 | }, | 224 | }, | 
| 225 | ] | 225 | ] | 
| 226 | const router = new VueRouter({ | 226 | const router = new VueRouter({ | 
| 227 | - mode: 'history', | 227 | + mode: 'hash', | 
| 228 | // base: process.env.BASE_URL+'/center', | 228 | // base: process.env.BASE_URL+'/center', | 
| 229 | base: process.env.BASE_URL, | 229 | base: process.env.BASE_URL, | 
| 230 | routes | 230 | routes | 
src/views/PublicService/ServiceKQ.vue
| @@ -24,13 +24,13 @@ export default { | @@ -24,13 +24,13 @@ export default { | ||
| 24 | // sessionStorage.setItem('prePage', 'Service' + this.publicName); | 24 | // sessionStorage.setItem('prePage', 'Service' + this.publicName); | 
| 25 | // sessionStorage.setItem('unionId', 'oJPmPuLaAx2x2DaRGfCFeYuLWzLU'); | 25 | // sessionStorage.setItem('unionId', 'oJPmPuLaAx2x2DaRGfCFeYuLWzLU'); | 
| 26 | const sUserAgent = window.navigator.userAgent.toLowerCase() | 26 | const sUserAgent = window.navigator.userAgent.toLowerCase() | 
| 27 | - alert(sUserAgent) | 27 | + // alert(sUserAgent) | 
| 28 | console.log(sUserAgent) | 28 | console.log(sUserAgent) | 
| 29 | const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1 | 29 | const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1 | 
| 30 | const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1 | 30 | const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1 | 
| 31 | if (dtdreamweb) { | 31 | if (dtdreamweb) { | 
| 32 | alert('浙里办') | 32 | alert('浙里办') | 
| 33 | - // window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy`; | 33 | + window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy`; | 
| 34 | } | 34 | } | 
| 35 | 35 | ||
| 36 | if (miniprogram) { | 36 | if (miniprogram) { | 
src/views/Service/EditContact.vue
| @@ -4,6 +4,14 @@ | @@ -4,6 +4,14 @@ | ||
| 4 | <van-cell-group> | 4 | <van-cell-group> | 
| 5 | <van-field v-model="userTypeName" label="身份类型" readonly /> | 5 | <van-field v-model="userTypeName" label="身份类型" readonly /> | 
| 6 | <van-field v-model="travelerName" label="姓名" placeholder="需与证件姓名一致" /> | 6 | <van-field v-model="travelerName" label="姓名" placeholder="需与证件姓名一致" /> | 
| 7 | + <van-cell title="性别"> | ||
| 8 | + <template #right-icon> | ||
| 9 | + <van-radio-group v-model="gender" direction="horizontal" style="width:67%;"> | ||
| 10 | + <van-radio name="1">男</van-radio> | ||
| 11 | + <van-radio name="2">女</van-radio> | ||
| 12 | + </van-radio-group> | ||
| 13 | + </template> | ||
| 14 | + </van-cell> | ||
| 7 | <van-field v-model="phone" label="手机号码" maxlength="11" placeholder="请填写手机号码" /> | 15 | <van-field v-model="phone" label="手机号码" maxlength="11" placeholder="请填写手机号码" /> | 
| 8 | <van-field v-model="travelerIdCard" label="身份证" maxlength="18" placeholder="请填写证件号码" /> | 16 | <van-field v-model="travelerIdCard" label="身份证" maxlength="18" placeholder="请填写证件号码" /> | 
| 9 | </van-cell-group> | 17 | </van-cell-group> | 
| @@ -18,9 +26,10 @@ export default { | @@ -18,9 +26,10 @@ export default { | ||
| 18 | return { | 26 | return { | 
| 19 | id: '', | 27 | id: '', | 
| 20 | userType: '', | 28 | userType: '', | 
| 21 | - userTypeName:'', | 29 | + userTypeName: '', | 
| 22 | travelerName: '', | 30 | travelerName: '', | 
| 23 | phone: '', | 31 | phone: '', | 
| 32 | + gender: '', | ||
| 24 | travelerIdCard: '', | 33 | travelerIdCard: '', | 
| 25 | travelerNum: '' | 34 | travelerNum: '' | 
| 26 | } | 35 | } | 
| @@ -45,6 +54,10 @@ export default { | @@ -45,6 +54,10 @@ export default { | ||
| 45 | methods: { | 54 | methods: { | 
| 46 | // 确认 | 55 | // 确认 | 
| 47 | addContact () { | 56 | addContact () { | 
| 57 | + if (!this.gender) { | ||
| 58 | + this.$toast('请选择性别') | ||
| 59 | + return; | ||
| 60 | + } | ||
| 48 | if (!this.phone) { | 61 | if (!this.phone) { | 
| 49 | this.$toast('请输入手机号') | 62 | this.$toast('请输入手机号') | 
| 50 | return; | 63 | return; | 
| @@ -66,7 +79,8 @@ export default { | @@ -66,7 +79,8 @@ export default { | ||
| 66 | contactsName: this.travelerName, | 79 | contactsName: this.travelerName, | 
| 67 | contactsMobile: this.phone, | 80 | contactsMobile: this.phone, | 
| 68 | contactsIdCard: this.travelerIdCard, | 81 | contactsIdCard: this.travelerIdCard, | 
| 69 | - contactsType: this.userType | 82 | + contactsType: this.userType, | 
| 83 | + gender:Number(this.gender) | ||
| 70 | } | 84 | } | 
| 71 | this.$toast.loading({ | 85 | this.$toast.loading({ | 
| 72 | message: '加载中', | 86 | message: '加载中', | 
| @@ -77,7 +91,7 @@ export default { | @@ -77,7 +91,7 @@ export default { | ||
| 77 | this.$toast.clear() | 91 | this.$toast.clear() | 
| 78 | if (res.data.code == 200) { | 92 | if (res.data.code == 200) { | 
| 79 | this.$toast.success('完善成功') | 93 | this.$toast.success('完善成功') | 
| 80 | - this.$router.back() | 94 | + this.$router.back() | 
| 81 | } else { | 95 | } else { | 
| 82 | this.$toast.fail(res.message) | 96 | this.$toast.fail(res.message) | 
| 83 | } | 97 | } | 
src/views/Service/SelectContact.vue
| @@ -2,18 +2,19 @@ | @@ -2,18 +2,19 @@ | ||
| 2 | <div id="selectContact"> | 2 | <div id="selectContact"> | 
| 3 | <div class="box"> | 3 | <div class="box"> | 
| 4 | <template v-for="(item,index) in contactList"> | 4 | <template v-for="(item,index) in contactList"> | 
| 5 | - <div class="contact_item" v-if="!hideParent&&item.userType!=1||item.userType==1" :key="index"> | ||
| 6 | - <van-icon class="edit" name="edit" @click="editContact(index)" /> | ||
| 7 | - <div class="info"> | ||
| 8 | - <p class="name">{{item.travelerName}}<span v-if="!item.travelerIdCard">需完善</span></p> | ||
| 9 | - <p class="des">{{item.userType==1?'学生':'家长'}}·{{item.travelerMobile}}</p> | 5 | + <div class="contact_item" v-if="!hideParent&&item.userType!=1||item.userType==1" :key="index"> | 
| 6 | + <van-icon class="edit" name="edit" @click="editContact(index)" /> | ||
| 7 | + <div class="info"> | ||
| 8 | + <p class="name">{{item.travelerName}}<span v-if="!item.travelerIdCard||!item.gender">需完善</span></p> | ||
| 9 | + <p class="des">{{item.userType==1?'学生':'家长'}}·{{item.travelerMobile}}</p> | ||
| 10 | + </div> | ||
| 11 | + <van-checkbox v-if="item.userType==1" class="checkbox" v-model="item.checked" shape="square"></van-checkbox> | ||
| 12 | + <van-checkbox v-else class="checkbox" v-model="item.checked" @change="checkboxChange" shape="square"></van-checkbox> | ||
| 10 | </div> | 13 | </div> | 
| 11 | - <van-checkbox class="checkbox" v-model="item.checked" shape="square"></van-checkbox> | ||
| 12 | - </div> | ||
| 13 | </template> | 14 | </template> | 
| 14 | <div class="add_btn" @click="showAddChildPopupGroup=true"> | 15 | <div class="add_btn" @click="showAddChildPopupGroup=true"> | 
| 15 | <van-icon name="add-o" /> | 16 | <van-icon name="add-o" /> | 
| 16 | - 新增联系人 | 17 | + 新增出行学生 | 
| 17 | </div> | 18 | </div> | 
| 18 | </div> | 19 | </div> | 
| 19 | <van-button class="btn" type="primary" @click="selectContact">确定</van-button> | 20 | <van-button class="btn" type="primary" @click="selectContact">确定</van-button> | 
| @@ -24,18 +25,19 @@ | @@ -24,18 +25,19 @@ | ||
| 24 | </template> | 25 | </template> | 
| 25 | <script> | 26 | <script> | 
| 26 | import AddChildPopupGroup from '@/views/PublicHome/component/AddChildPopupGroup' | 27 | import AddChildPopupGroup from '@/views/PublicHome/component/AddChildPopupGroup' | 
| 28 | +import { Dialog } from 'vant'; | ||
| 27 | export default { | 29 | export default { | 
| 28 | data () { | 30 | data () { | 
| 29 | return { | 31 | return { | 
| 30 | - limit:'', | ||
| 31 | - hideParent:false, | 32 | + limit: '', | 
| 33 | + hideParent: false, | ||
| 32 | contactList: [], | 34 | contactList: [], | 
| 33 | showAddChildPopupGroup: false | 35 | showAddChildPopupGroup: false | 
| 34 | } | 36 | } | 
| 35 | }, | 37 | }, | 
| 36 | mounted () { | 38 | mounted () { | 
| 37 | this.limit = this.$route.query.limit; | 39 | this.limit = this.$route.query.limit; | 
| 38 | - this.hideParent = this.$route.query.hideParent?true:false; | 40 | + this.hideParent = this.$route.query.hideParent ? true : false; | 
| 39 | console.log(this.hideParent) | 41 | console.log(this.hideParent) | 
| 40 | this.getContactList() | 42 | this.getContactList() | 
| 41 | }, | 43 | }, | 
| @@ -58,7 +60,8 @@ export default { | @@ -58,7 +60,8 @@ export default { | ||
| 58 | travelerNum: userInfo?.centerNo, | 60 | travelerNum: userInfo?.centerNo, | 
| 59 | travelerIdCard: userInfo?.idCard, | 61 | travelerIdCard: userInfo?.idCard, | 
| 60 | userType: 2, | 62 | userType: 2, | 
| 61 | - travelerName: userInfo?.nickName | 63 | + travelerName: userInfo?.nickName, | 
| 64 | + gender: userInfo?.gender, | ||
| 62 | }) | 65 | }) | 
| 63 | this.contactList = contactList | 66 | this.contactList = contactList | 
| 64 | } | 67 | } | 
| @@ -87,7 +90,7 @@ export default { | @@ -87,7 +90,7 @@ export default { | ||
| 87 | let selectedArr = []; | 90 | let selectedArr = []; | 
| 88 | for (let i in contactList) { | 91 | for (let i in contactList) { | 
| 89 | if (contactList[i]?.checked) { | 92 | if (contactList[i]?.checked) { | 
| 90 | - if (!contactList[i].travelerIdCard&&!this.hideParent) { | 93 | + if ((!contactList[i].travelerIdCard||!contactList[i].gender) && !this.hideParent) { | 
| 91 | this.$toast('请先完善您选择的联系人信息') | 94 | this.$toast('请先完善您选择的联系人信息') | 
| 92 | return; | 95 | return; | 
| 93 | } else { | 96 | } else { | 
| @@ -99,7 +102,7 @@ export default { | @@ -99,7 +102,7 @@ export default { | ||
| 99 | } | 102 | } | 
| 100 | } | 103 | } | 
| 101 | } | 104 | } | 
| 102 | - console.log(this.limit,selectedArr.length) | 105 | + console.log(this.limit, selectedArr.length) | 
| 103 | if (this.limit && this.limit != selectedArr.length) { | 106 | if (this.limit && this.limit != selectedArr.length) { | 
| 104 | this.$toast(`请选择${this.limit}位联系人`) | 107 | this.$toast(`请选择${this.limit}位联系人`) | 
| 105 | return; | 108 | return; | 
| @@ -107,6 +110,15 @@ export default { | @@ -107,6 +110,15 @@ export default { | ||
| 107 | // console.log(selectedArr) | 110 | // console.log(selectedArr) | 
| 108 | sessionStorage.setItem('selectedContactArr', JSON.stringify(selectedArr)) | 111 | sessionStorage.setItem('selectedContactArr', JSON.stringify(selectedArr)) | 
| 109 | this.$router.back() | 112 | this.$router.back() | 
| 113 | + }, | ||
| 114 | + checkboxChange (e) { | ||
| 115 | + if (e == true) { | ||
| 116 | + Dialog.alert({ | ||
| 117 | + title: '温馨提示', | ||
| 118 | + message: '活动参与主体为学生本人,请选择出行学生!未绑定学生,请新增出行学生进行添加。', | ||
| 119 | + confirmButtonColor:'#3385FF' | ||
| 120 | + }) | ||
| 121 | + } | ||
| 110 | } | 122 | } | 
| 111 | }, | 123 | }, | 
| 112 | components: { | 124 | components: { | 
