xcx před 4 roky
rodič
revize
38dbf1ba64

+ 42
- 2
src/pages/WoDe/ZhiFuBaoRenZheng/index.vue Zobrazit soubor

@@ -1,8 +1,8 @@
1 1
 <template>
2 2
   <div class="Page">
3
-    <MainPageContainer :ShowMainHeader="true" :MainHeaderTitle="`支付宝认证`" :ShowMainHeaderBack="true" :ShowMainHeaderMore="true" :MainHeaderMoreText="`保存`">
3
+    <MainPageContainer @UserInfoChange="UserInfoChange" :ShowMainHeader="true" :MainHeaderTitle="`支付宝认证`" :ShowMainHeaderBack="true" :ShowMainHeaderMore="true" :MainHeaderMoreText="`保存`">
4 4
       <div class="Container">
5
-        <div class="Content">
5
+        <div class="Content" v-if="UserInfo !== null && UserInfo.isValidAli">
6 6
 
7 7
           <div>
8 8
             <div class="Line flex-h">
@@ -112,6 +112,9 @@
112 112
           </div>
113 113
 
114 114
         </div>
115
+        <div class="Content" v-if="UserInfo !== null && !UserInfo.isValidAli">
116
+          <a class="AliShouQuan centerLabel">支付宝授权</a>
117
+        </div>
115 118
       </div>
116 119
     </MainPageContainer>
117 120
   </div>
@@ -119,24 +122,61 @@
119 122
 
120 123
 <script>
121 124
 import MainPageContainer from '../../../components/common/MainPageContainer'
125
+import { createNamespacedHelpers } from 'vuex'
126
+const { mapState: mapUserState, mapActions: mapUserActions } = createNamespacedHelpers('user')
122 127
 export default {
123 128
   name: 'index',
124 129
   data () {
125 130
     return {
131
+      Timer: null
126 132
     }
127 133
   },
128 134
   computed: {
135
+    ...mapUserState({
136
+      CurrentShopInfo: x => x.CurrentShopInfo,
137
+      UserInfo: x => x.UserInfo
138
+    })
129 139
   },
130 140
   components: {
131 141
     MainPageContainer
132 142
   },
133 143
   created () {
144
+    if (this.UserInfo !== null) {
145
+      this.UserInfoChange()
146
+    }
134 147
   },
135 148
   mounted () {
136 149
     this.$nextTick(() => {
137 150
     })
138 151
   },
139 152
   methods: {
153
+    ...mapUserActions([
154
+      'GetAliAppId'
155
+    ]),
156
+    UserInfoChange () {
157
+      if (this.UserInfo !== null && !this.UserInfo.isValidAli) {
158
+        let HtmlHead = document.getElementsByTagName('head')[0]
159
+        let Script = document.createElement('script')
160
+        Script.src = 'https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.min.js'
161
+        HtmlHead.appendChild(Script)
162
+        window.clearInterval(this.Timer)
163
+        this.Timer = window.setInterval(() => {
164
+          if (window.ap) {
165
+            window.clearInterval(this.Timer)
166
+            this.GetAliAppId().then((res) => {
167
+              document.getElementsByClassName('AliShouQuan')[0].addEventListener('click', () => {
168
+                window.ap.getAuthCode({
169
+                  appId: res.data.data,
170
+                  scopes: ['auth_base']
171
+                }, (subRes) => {
172
+                  console.log(subRes)
173
+                })
174
+              })
175
+            })
176
+          }
177
+        }, 100)
178
+      }
179
+    },
140 180
     Refresh (done) { // 页面下拉刷新
141 181
       window.setTimeout(() => {
142 182
         done()

+ 10
- 0
src/pages/WoDe/ZhiFuBaoRenZheng/page.scss Zobrazit soubor

@@ -13,6 +13,16 @@
13 13
       position: relative;
14 14
       overflow: hidden;
15 15
       padding-bottom: 0.2rem;
16
+      min-height: 100%;
17
+      > .AliShouQuan {
18
+        font-size: 0.14rem;
19
+        line-height: 0.4rem;
20
+        width: 80%;
21
+        text-align: center;
22
+        background: #d91e36;
23
+        color: #fff;
24
+        border-radius: 0.06rem;
25
+      }
16 26
       > div {
17 27
         padding: 0 0.15rem;
18 28
         background: #fff;

+ 5
- 0
src/store/user/index.js Zobrazit soubor

@@ -79,6 +79,11 @@ export default {
79 79
     }
80 80
   },
81 81
   actions: {
82
+    GetAliAppId (context, payload) { // 获取阿里pay id
83
+      return new Promise((resolve, reject) => {
84
+        ToolClass.Axios(resolve, reject, Api.GetAliAppId, context, payload, 1000)
85
+      })
86
+    },
82 87
     ShopValid (context, payload) { // 店铺认证
83 88
       return new Promise((resolve, reject) => {
84 89
         ToolClass.Axios(resolve, reject, Api.ShopValid, context, payload, 1000)

+ 4
- 0
src/util/Api.js Zobrazit soubor

@@ -2,6 +2,10 @@
2 2
 const prefix = process.env.NODE_ENV === 'production' ? '/api' : '/api'
3 3
 
4 4
 const $api = {
5
+  GetAliAppId: { // 获取阿里pay id
6
+    method: 'get',
7
+    url: `${prefix}/shop/alipay/appid`
8
+  },
5 9
   ShopValid: { // 店铺认证
6 10
     method: 'put',
7 11
     url: `${prefix}/app/shop/valid`