index.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <template>
  2. <view>
  3. <view class="accredit_model">
  4. <view class="model_container">
  5. <view class="model_top">
  6. <image class="model_icon" :src="urlDomain+'crmebimage/presets/model_img.png'"></image>
  7. </view>
  8. <view class="model_content">
  9. <view class="model_title">提示</view>
  10. <view class="model_desc">{{content}}</view>
  11. <view class="model_btns">
  12. <view class="mbtn cancel_btn" @click="modelCancel()">取消</view>
  13. <view class="mbtn confirm_btn" @click="modelConfirm()" v-if="locationType">确定</view>
  14. <button class="mbtn confirm_btn" v-if="userPhoneType" open-type="getPhoneNumber" @getphonenumber="getphonenumber">确定</button>
  15. </view>
  16. </view>
  17. </view>
  18. </view>
  19. <view class="mask"></view>
  20. </view>
  21. </template>
  22. <script>
  23. // +----------------------------------------------------------------------
  24. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  25. // +----------------------------------------------------------------------
  26. // | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
  27. // +----------------------------------------------------------------------
  28. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  29. // +----------------------------------------------------------------------
  30. // | Author: CRMEB Team <admin@crmeb.com>
  31. // +----------------------------------------------------------------------
  32. import Routine from '@/libs/routine';
  33. import { getUserPhone } from '@/api/public';
  34. import {silenceBindingSpread} from "../../utils";
  35. import {
  36. mapGetters
  37. } from "vuex";
  38. const app = getApp();
  39. export default {
  40. name:'',
  41. props:{
  42. locationType:{
  43. type:Boolean,
  44. default:false
  45. },
  46. userPhoneType:{
  47. type:Boolean,
  48. default:false
  49. },
  50. authKey:{
  51. type:String,
  52. default:'',
  53. },
  54. isPhoneBox:{
  55. type:Boolean,
  56. default:false,
  57. },
  58. content:{
  59. type:String,
  60. default:'申请获取用于完整服务',
  61. }
  62. },
  63. computed: mapGetters(['isLogin', 'uid', 'globalData']),
  64. data() {
  65. return {
  66. urlDomain: this.$Cache.get("imgHost"),
  67. isStatus:false
  68. }
  69. },
  70. methods:{
  71. modelCancel(){
  72. this.$emit('closeModel',{isStatus:this.isStatus});
  73. },
  74. modelConfirm(){
  75. this.$emit('confirmModel');
  76. },
  77. // #ifdef MP
  78. // 小程序获取手机号码
  79. getphonenumber(e){
  80. uni.showLoading({ title: '加载中' });
  81. Routine.getCode()
  82. .then(code => {
  83. this.getUserPhoneNumber(e.detail.encryptedData, e.detail.iv, code);
  84. })
  85. .catch(error => {
  86. this.modelCancel();
  87. uni.hideLoading();
  88. });
  89. },
  90. // 小程序获取手机号码回调
  91. getUserPhoneNumber(encryptedData, iv, code) {
  92. getUserPhone({
  93. encryptedData: encryptedData,
  94. iv: iv,
  95. code: code,
  96. key:this.authKey,
  97. type: 'routine'
  98. })
  99. .then(res => {
  100. this.$store.commit('LOGIN', {
  101. token: res.data.token
  102. });
  103. this.$store.commit("SETUID", res.data.id);
  104. this.getUserInfo();
  105. if (res.data.isNew && res.data.newPeopleCouponList && res.data.newPeopleCouponList.length !== 0) {
  106. this.$Cache.set('newGift', res.data.newPeopleCouponList);
  107. } else {
  108. this.$Cache.clear('newGift');
  109. }
  110. })
  111. .catch(res => {
  112. uni.hideLoading();
  113. this.$util.Tips({
  114. title: res
  115. });
  116. });
  117. },
  118. /**
  119. * 获取个人用户信息
  120. */
  121. getUserInfo() {
  122. this.$store.dispatch("GetTokenIsExist");
  123. // #ifdef MP
  124. if(!this.$Cache.get('wechatQRcode')) Routine.getQrcode()
  125. // #endif
  126. //分销绑定
  127. silenceBindingSpread(true,this.globalData.spread)
  128. this.$store.dispatch('USERINFO').then(res => {
  129. uni.hideLoading();
  130. this.isStatus = true
  131. this.modelCancel();
  132. });
  133. },
  134. // #endif
  135. }
  136. }
  137. </script>
  138. <style scoped lang="scss">
  139. .accredit_model{
  140. /* position: relative; */
  141. width: 560rpx;
  142. height: 660rpx;
  143. position: fixed;
  144. left: 50%;
  145. top: 50%;
  146. transform: translate(-50%,-50%);
  147. z-index: 999;
  148. }
  149. .model_container{
  150. width: 100%;
  151. height: 660rpx;
  152. }
  153. .model_top{
  154. width: 100%;
  155. height: 270rpx;
  156. // background: #D64532;
  157. @include main_bg_color(theme);
  158. border-radius: 20rpx 20rpx 0 0;
  159. background-image: url(data:image/png;base64,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);
  160. background-size: cover;
  161. display: flex;
  162. justify-content: center;
  163. align-items: flex-end;
  164. }
  165. .model_icon{
  166. width: 230rpx;
  167. height: 210rpx;
  168. }
  169. .model_content{
  170. width: 100%;
  171. height: 390rpx;
  172. background-color: #fff;
  173. border-radius: 0 0 20rpx 20rpx;
  174. padding: 32rpx;
  175. box-sizing: border-box;
  176. }
  177. .model_title{
  178. text-align: center;
  179. font-size: 36rpx;
  180. font-family: PingFangSC-Semibold, PingFang SC;
  181. font-weight: 600;
  182. color: #333333;
  183. line-height: 50rpx;
  184. }
  185. .model_desc{
  186. width: 448rpx;
  187. height: 96rpx;
  188. margin: 20rpx auto 0;
  189. font-size: 32rpx;
  190. text-align: center;
  191. font-family: PingFangSC-Regular, PingFang SC;
  192. font-weight: 400;
  193. color: #666666;
  194. line-height: 48rpx;
  195. }
  196. .model_btns{
  197. width: 448rpx;
  198. height: 82rpx;
  199. margin: auto;
  200. display: flex;
  201. justify-content: space-between;
  202. }
  203. .mbtn{
  204. width: 208rpx;
  205. height: 82rpx;
  206. border-radius: 42rpx;
  207. margin-top: 44rpx;
  208. }
  209. .cancel_btn{
  210. background: #F5F5F5;
  211. font-weight: 400;
  212. color: #666666;
  213. line-height: 82rpx;
  214. text-align: center;
  215. font-size: 32rpx;
  216. }
  217. .confirm_btn{
  218. @include linear-gradient(theme);
  219. font-weight: 400;
  220. color: #fff;
  221. line-height: 82rpx;
  222. text-align: center;
  223. font-size: 32rpx;
  224. }
  225. .mask{
  226. z-index: 900;
  227. }
  228. </style>