infoInput.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <template>
  2. <view>
  3. <!-- 公共组件-每个页面必须引入 -->
  4. <public-module></public-module>
  5. <view class="posi p-3 mb-3 d-flex j-center">
  6. <view class="posi2 on">推荐关系</view>
  7. <view class="posi2">实名认证</view>
  8. </view>
  9. <view class="inputView px-3 mb-2" v-if="recommenderId">
  10. <view class="d-flex">
  11. <view class="d-flex a-center">推荐人会员号</view>
  12. <view class="d-flex a-center">{{recommenderId}}</view>
  13. </view>
  14. <view class="d-flex">
  15. <view class="d-flex a-center">所属机构</view>
  16. <view class="d-flex a-center">{{recommendDept}}</view>
  17. </view>
  18. </view>
  19. <view class="notice px-3 font-weight">
  20. <view class="title">从业告知</view>
  21. <view>
  22. <view class="btns d-flex j-sb">
  23. <view :class="(noticeBtn1 == '1')?'active':''" @tap="adjustNoticeBtn('noticeBtn1',1)" >有相关经验</view>
  24. <view :class="(noticeBtn2 == '1')?'active':''" @tap="adjustNoticeBtn('noticeBtn2',1)">有犯罪记录</view>
  25. <view :class="(noticeBtn3 == '1')?'active':''" @tap="adjustNoticeBtn('noticeBtn3',1)">有接受过保监会处罚</view>
  26. </view>
  27. <view class="btns d-flex j-sb">
  28. <view :class="(noticeBtn1 == '2')?'active':''" @tap="adjustNoticeBtn('noticeBtn1',2)">无相关经验</view>
  29. <view :class="(noticeBtn2 == '2')?'active':''" @tap="adjustNoticeBtn('noticeBtn2',2)">无犯罪记录</view>
  30. <view :class="(noticeBtn3 == '2')?'active':''" @tap="adjustNoticeBtn('noticeBtn3',2)">无接受过保监会处罚</view>
  31. </view>
  32. </view>
  33. </view>
  34. <view class="p-3">
  35. <checkbox-group @change="changeAgree" >
  36. <label>
  37. <checkbox value="true" :checked="agree" style="transform:scale(0.6)" ></checkbox >本人已如实告知相关信息,如因不实信息产生的一切后果,本人愿承担一切法律责任。
  38. </label>
  39. </checkbox-group>
  40. </view>
  41. <button class="mx-3 mt-4 d-flex a-center j-center main-bg-color" :class="{'main-bf-hover-color':disabled}" type="primary" @tap="toNext" :disabled="disabled">下一步</button>
  42. </view>
  43. </template>
  44. <script>
  45. import {mapState} from "vuex"
  46. export default {
  47. data() {
  48. return {
  49. noticeBtn1:"", //按钮1
  50. noticeBtn2:"", //按钮2
  51. noticeBtn3:"", //按钮3
  52. agree:false, //是否同意协议
  53. disabled:true, //按钮是否可用
  54. recommenderId:"",//推荐人会员号
  55. recommendDept:"",//推荐机构
  56. }
  57. },
  58. async onLoad() {
  59. this.recommenderId = this.userCheckInfo.esmUserAgent.recommenderid;
  60. // 查询推荐人信息
  61. let res = await this.$http.get('/user/findById?id='+this.recommenderId);
  62. if((res.code == '200') && (res.data!= null)){
  63. this.recommendDept = res.data.comname;
  64. }
  65. },
  66. computed:{
  67. ...mapState(['userCheckInfo'])
  68. },
  69. watch:{
  70. noticeBtn1(val){
  71. this.OnBtnChange();
  72. },
  73. noticeBtn2(val){
  74. this.OnBtnChange();
  75. },
  76. noticeBtn3(val){
  77. this.OnBtnChange();
  78. },
  79. agree(val){
  80. this.OnBtnChange();
  81. }
  82. },
  83. methods: {
  84. changeAgree(e){
  85. this.agree = e.detail.value[0];
  86. },
  87. // 改变按钮状态value
  88. OnBtnChange(){
  89. if( (!!this.noticeBtn1) && (!!this.noticeBtn2) && (!!this.noticeBtn3) && (!!this.agree) ){
  90. this.disabled=false; return;
  91. }
  92. this.disabled=true;
  93. },
  94. toNext(){
  95. if((this.noticeBtn2 == '1') || (this.noticeBtn3 == '1')){
  96. return uni.showToast({ title: '您不符合我司的入司要求,感谢关注', icon:"none" });
  97. }
  98. uni.showModal({
  99. title: '重要提示',
  100. content: '您即将成为掌柜车险代理人,请问您是否已充分了解监管部门对展业地区的限制和要求,并承诺在监管部门指定的合规的地区开展业务?',
  101. cancelText:'不了解',
  102. confirmText:'我已了解',
  103. success: (res)=> {
  104. if (res.confirm) {
  105. this.navigate({
  106. url:"/pages/user/certification"
  107. },'navigateTo')
  108. }
  109. }
  110. });
  111. },
  112. adjustNoticeBtn(btnLabel,status){
  113. this[btnLabel] = status;
  114. }
  115. }
  116. }
  117. </script>
  118. <style lang="scss" scoped>
  119. @import '@/style/mixin.scss';
  120. .posi{ counter-reset: num; }
  121. .posi2{
  122. position: relative;
  123. display: inline-block;
  124. height: 40rpx;
  125. line-height: 40rpx;
  126. text-align: right;
  127. padding-right: 15rpx;
  128. width: 140rpx;
  129. border-radius: 30rpx;
  130. border: 1px solid #F0F0F0;
  131. background: #F0F0F0;
  132. margin-left: 30rpx;
  133. color: #999;
  134. font-size: 24rpx;
  135. }
  136. .posi2.on{
  137. border: 1px solid $themeColor;
  138. background: #FFFFFF;
  139. color: $themeColor;
  140. }
  141. .posi2:before{
  142. position: absolute;
  143. display: block;
  144. left: 2rpx;
  145. top: 6rpx;
  146. width: 28rpx;
  147. height: 28rpx;
  148. border-radius: 100%;
  149. background: #fff;
  150. color: #999;
  151. counter-increment: num;
  152. content: counter(num);
  153. text-align: center;
  154. line-height: 28rpx;
  155. }
  156. .posi2.on:before{
  157. background: $themeColor;
  158. color: #FFF;
  159. }
  160. .posi>view:nth-of-type(1):after{
  161. position: absolute;
  162. display: block;
  163. content: "";
  164. right: -20rpx;
  165. top: 12rpx;
  166. width: 16rpx;
  167. height: 16rpx;
  168. border-top: 1px solid $themeColor;
  169. border-right: 1px solid $themeColor;
  170. transform: rotate(45deg);
  171. }
  172. .posi>.posi2:nth-of-type(1){
  173. margin-left: 0;
  174. }
  175. .inputView{
  176. background:#FFFFFF;
  177. }
  178. .inputView>view{
  179. height: 90rpx;
  180. border-bottom: 1px solid #ddd;
  181. }
  182. .inputView>view>view:nth-of-type(1){
  183. flex-shrink: 0;
  184. width: 190upx;
  185. padding-left: 15upx;
  186. color: #999;
  187. }
  188. .notice{
  189. background-color: #FFFFFF;
  190. }
  191. .notice .title{
  192. height: 80upx;
  193. line-height: 80upx;
  194. font-size: 32upx;
  195. border-bottom: 1px solid #ddd;
  196. }
  197. .notice .btns{
  198. padding-top:20upx;
  199. padding-bottom:20upx;
  200. }
  201. .notice .btns>view{
  202. display: block;
  203. padding: 0 16rpx;
  204. color: #999;
  205. line-height: 52rpx;
  206. font-size: 24rpx;
  207. border-radius: 30rpx;
  208. border: 1px solid #f0f0f0;
  209. background-color: #f0f0f0;
  210. height: 56rpx;
  211. }
  212. .notice .btns>view.active{
  213. color: #fff;
  214. border: 1px solid $themeColor;
  215. background-color: $themeColor;
  216. }
  217. </style>