Просмотр исходного кода

Merge branch 'li-yi' of https://git.bjtdba.com/TDBA/cxb-minapp-vue3 into li-yi

dxz1228 лет назад: 2
Родитель
Сommit
9b15fbfc34

+ 11 - 1
src/apis/model/userInfoModel.ts

@@ -7,10 +7,15 @@ export interface UpdateUserInfoRequestModel {
7
     avatar: string
7
     avatar: string
8
     // addres: string
8
     // addres: string
9
 }
9
 }
10
-export interface UserInfoModel{
10
+export interface UserInfoModel {
11
     /** 用户id */
11
     /** 用户id */
12
     uid: string
12
     uid: string
13
     /** 微信用户 id */
13
     /** 微信用户 id */
14
+    /** 市/县代理 */
15
+    area_manage_type: string
16
+    area_manage: manageModel
17
+    /**股东 id */
18
+    stockholder: number
14
     wechat_user_id: string
19
     wechat_user_id: string
15
     /** 支付宝用户 id */
20
     /** 支付宝用户 id */
16
     ali_user_id: string
21
     ali_user_id: string
@@ -140,4 +145,9 @@ export interface UserInfoModel{
140
     /** 团队人数 */
145
     /** 团队人数 */
141
     team_number: number
146
     team_number: number
142
     is_bangfu: boolean
147
     is_bangfu: boolean
148
+}
149
+export interface manageModel {
150
+    area_name: []
151
+    code_list: string
152
+    type: string
143
 }
153
 }

+ 4 - 1
src/components/FPopup/FPopup.vue

@@ -7,7 +7,10 @@ import { usePopup } from './use-popup'
7
 const props = defineProps(popupProps)
7
 const props = defineProps(popupProps)
8
 const emit = defineEmits(popupEmits)
8
 const emit = defineEmits(popupEmits)
9
 const { showValue, classes } = usePopup(props, emit)
9
 const { showValue, classes } = usePopup(props, emit)
10
-
10
+onLoad(()=>{
11
+  console.log(showValue, classes);
12
+  
13
+})
11
 const animationName = {
14
 const animationName = {
12
   center: 'fade',
15
   center: 'fade',
13
   top: 'slide-down',
16
   top: 'slide-down',

+ 1 - 0
src/config/app.ts

@@ -11,6 +11,7 @@ let httpApi = 'https://app.bjtdba.com'
11
 
11
 
12
 // let httpApi = 'http://192.168.1.77:8324'
12
 // let httpApi = 'http://192.168.1.77:8324'
13
 export const CDN_URL = 'https://cdn.bjtdba.com/chuxubao'
13
 export const CDN_URL = 'https://cdn.bjtdba.com/chuxubao'
14
+export const CDM_URL = 'https://cdn.bjtdba.com/vod'
14
 
15
 
15
 // 聊天接口修改此字符 小程序聊天要求wss 例如:wss://mer.crmeb.net
16
 // 聊天接口修改此字符 小程序聊天要求wss 例如:wss://mer.crmeb.net
16
 let wsApi = ''
17
 let wsApi = ''

Разница между файлами не показана из-за своего большого размера
+ 887 - 1
src/pages.json


+ 5 - 5
src/pages/home/components/navs.vue

@@ -2,11 +2,11 @@
2
 import {getHomeQuickLink} from "~/apis/common";
2
 import {getHomeQuickLink} from "~/apis/common";
3
 import {PLATFORM_NAME} from "~/apis/model/common.model";
3
 import {PLATFORM_NAME} from "~/apis/model/common.model";
4
 import {useDacangStore} from "~/stores/dacangStore";
4
 import {useDacangStore} from "~/stores/dacangStore";
5
-import {CDN_URL} from "~/config/app";
5
+import {CDN_URL,CDM_URL} from "~/config/app";
6
 
6
 
7
 const navList = ref([{
7
 const navList = ref([{
8
-  image: CDN_URL + '/static/home-nav/home_dacang_220614.png',
9
-  title: '精品大仓',
8
+  image: CDM_URL + '/image/2023-11-20/20231120155257975.png',
9
+  title: '精品商城',
10
   key: 'jingpin'
10
   key: 'jingpin'
11
 }, {
11
 }, {
12
   image: CDN_URL + '/static/home-nav/home_xianshimiaosha_220614.png',
12
   image: CDN_URL + '/static/home-nav/home_xianshimiaosha_220614.png',
@@ -24,7 +24,7 @@ const navList = ref([{
24
   // 测试库
24
   // 测试库
25
   // categoryId: '149'
25
   // categoryId: '149'
26
 },{
26
 },{
27
-  image: CDN_URL + '/static/home-nav/pinduoduo_x.png',
27
+  image: CDM_URL + '/image/2023-11-24/20231124150424710.png',
28
   title: '拼多多',
28
   title: '拼多多',
29
   key: PLATFORM_NAME.PDD
29
   key: PLATFORM_NAME.PDD
30
 }, {
30
 }, {
@@ -69,7 +69,7 @@ const navList = ref([{
69
 //   categoryId: '576'
69
 //   categoryId: '576'
70
 // }, 
70
 // }, 
71
 {
71
 {
72
-  image: CDN_URL + '/static/home-nav/vip_img.png',
72
+  image: CDM_URL + '/image/2023-11-20/20231120155340358.png',
73
   title: '会员专区',
73
   title: '会员专区',
74
   key: 'member',
74
   key: 'member',
75
   // key: PLATFORM_NAME.DC,
75
   // key: PLATFORM_NAME.DC,

+ 221 - 144
src/pages/my-rules/index.vue

@@ -2,8 +2,8 @@
2
 // import CXBBasePage from "~/components/CXBBasePage/CXBBasePage.vue";
2
 // import CXBBasePage from "~/components/CXBBasePage/CXBBasePage.vue";
3
 import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
3
 import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
4
 
4
 
5
-import {encodePhone} from "../../utils";
6
-import {getAgentInfo, getRules, getUserInfo} from "~/apis/user";
5
+import { encodePhone } from "../../utils";
6
+import { getAgentInfo, getRules, getUserInfo } from "~/apis/user";
7
 
7
 
8
 const userStore = useUserStore()
8
 const userStore = useUserStore()
9
 const ruleDetail = ref<{
9
 const ruleDetail = ref<{
@@ -19,119 +19,205 @@ const ruleDetail = ref<{
19
 const currentType = ref<any>([])
19
 const currentType = ref<any>([])
20
 
20
 
21
 const showUpgradeInfo = ref(false)
21
 const showUpgradeInfo = ref(false)
22
+
23
+// const userType = computed(() => {
24
+//   const userRichType = userStore.userInfo?.user_rich_type
25
+//   // console.log(userStore.userInfo)
26
+//   const bangfu = userStore.userInfo?.is_bangfu ? '帮扶中心 ' : ''
27
+//   // 创始人
28
+//   if (userRichType == 3) {
29
+//     if (bangfu) {
30
+//       return ['创始人', bangfu]
31
+//     }
32
+//     return ['创始人']
33
+//     // return [].push()
34
+//   }
35
+//   // 普通用户
36
+//   if (userRichType == 0) {
37
+//     if (bangfu) {
38
+//       return ['用户', bangfu]
39
+//     }
40
+//     return ['用户']
41
+//   }
42
+//   // 会员
43
+//   if (userRichType == 1) {
44
+//     if (bangfu) {
45
+//       return ['会员', bangfu]
46
+//     }
47
+//     return ['会员']
48
+
49
+//   }
50
+//   if (userRichType == 3) {
51
+//     if (bangfu) {
52
+//       return ['创始人', bangfu]
53
+//     }
54
+//     return ['创始人']
55
+//   }
56
+//   // 合伙人
57
+//   if (userRichType == 4) {
58
+//     // return '高级会员'
59
+//     if (bangfu) {
60
+//       return ['VIP', bangfu]
61
+//     }
62
+//     return ['VIP']
63
+//   }
64
+//   if (userRichType == 5) {
65
+//     if (bangfu) {
66
+//       return ['初始级合伙人', bangfu]
67
+//     }
68
+//     return ['初始级合伙人']
69
+//   }
70
+//   if (userRichType == 6) {
71
+//     if (bangfu) {
72
+//       return ['中级合伙人', bangfu]
73
+//     }
74
+//     return ['中级合伙人']
75
+//   }
76
+//   if (userRichType == 7) {
77
+//     if (bangfu) {
78
+//       return ['高级合伙人', bangfu]
79
+//     }
80
+//     return ['高级合伙人']
81
+//   }
82
+//   if (!userRichType) {
83
+//     if (bangfu) {
84
+//       return ['用户', bangfu]
85
+//     }
86
+//     return ['用户']
87
+//   }
88
+// })
89
+// /*
90
+// const userType = computed(() => {
91
+//   const userRichType = userStore.userInfo?.user_rich_type
92
+
93
+//   // 创始人
94
+//   if (userRichType == 3) {
95
+//     return '创始人'
96
+//   }
97
+//   // 普通用户
98
+//   if (userRichType == 0) {
99
+//     return '用户'
100
+//   }
101
+//   // 会员
102
+//   if (userRichType == 1) {
103
+//     return '会员'
104
+//   }
105
+//   if (userRichType == 3) {
106
+//     return '创始人'
107
+//   }
108
+//   // 合伙人
109
+//   if (userRichType == 4) {
110
+//     // return '合伙人(VIP)'
111
+//     return 'VIP'
112
+//   }
113
+//   if (userRichType == 5) {
114
+//     return '初始级合伙人'
115
+//   }
116
+//   if (userRichType == 6) {
117
+//     return '中级合伙人'
118
+//   }
119
+//   if (userRichType == 7) {
120
+//     return '高级合伙人'
121
+//   }
122
+//   if (!userRichType) {
123
+//     return '用户'
124
+//   }
125
+// })
126
+// */
127
+
128
+//0:普通用户 1:会员  3:创始人 4:高级会员  8合伙人 9联合创始人
22
 const userType = computed(() => {
129
 const userType = computed(() => {
23
   const userRichType = userStore.userInfo?.user_rich_type
130
   const userRichType = userStore.userInfo?.user_rich_type
24
-  // console.log(userStore.userInfo)
131
+  // console.log('我是大哥',userStore.userInfo)
25
   const bangfu = userStore.userInfo?.is_bangfu ? '帮扶中心 ' : ''
132
   const bangfu = userStore.userInfo?.is_bangfu ? '帮扶中心 ' : ''
26
-  // 创始人
27
-  if (userRichType == 3) {
28
-    if (bangfu) {
29
-      return ['创始人', bangfu]
30
-    }
31
-    return ['创始人']
32
-    // return [].push()
33
-  }
133
+  // console.log('我是帮扶',bangfu);
134
+  
34
   // 普通用户
135
   // 普通用户
35
   if (userRichType == 0) {
136
   if (userRichType == 0) {
36
-    if (bangfu) {
37
-      return ['用户', bangfu]
38
-    }
39
-    return ['用户']
137
+    // if (bangfu) {
138
+    //   return ['../../static/img-hy/帮扶中心.png', bangfu]
139
+    // }
140
+    return ['../../static/img-hy/用户.png']
40
   }
141
   }
41
   // 会员
142
   // 会员
42
   if (userRichType == 1) {
143
   if (userRichType == 1) {
43
-    if (bangfu) {
44
-      return ['会员', bangfu]
45
-    }
46
-    return ['会员']
144
+    // if (bangfu) {
145
+    //   return ['../../static/img-hy/帮扶中心.png', bangfu]
146
+    // }
147
+    return ['../../static/img-hy/会员.png']
47
 
148
 
48
   }
149
   }
150
+    // 创始人
49
   if (userRichType == 3) {
151
   if (userRichType == 3) {
50
-    if (bangfu) {
51
-      return ['创始人', bangfu]
52
-    }
53
-    return ['创始人']
152
+    // if (bangfu) {
153
+    //   return ['../../static/img-hy/帮扶中心.png', bangfu]
154
+    // }
155
+    return ['../../static/img-hy/创始人.png']
54
   }
156
   }
55
   // 合伙人
157
   // 合伙人
56
   if (userRichType == 4) {
158
   if (userRichType == 4) {
57
     // return '高级会员'
159
     // return '高级会员'
58
-    if (bangfu) {
59
-      return ['VIP', bangfu]
60
-    }
61
-    return ['VIP']
62
-  }
63
-  if (userRichType == 5) {
64
-    if (bangfu) {
65
-      return ['初始级合伙人', bangfu]
66
-    }
67
-    return ['初始级合伙人']
68
-  }
69
-  if (userRichType == 6) {
70
-    if (bangfu) {
71
-      return ['中级合伙人', bangfu]
72
-    }
73
-    return ['中级合伙人']
74
-  }
75
-  if (userRichType == 7) {
76
-    if (bangfu) {
77
-      return ['高级合伙人', bangfu]
78
-    }
79
-    return ['高级合伙人']
80
-  }
81
-  if (!userRichType) {
82
-    if (bangfu) {
83
-      return ['用户', bangfu]
84
-    }
85
-    return ['用户']
86
-  }
87
-})
88
-/*
89
-const userType = computed(() => {
90
-  const userRichType = userStore.userInfo?.user_rich_type
91
-
92
-  // 创始人
93
-  if (userRichType == 3) {
94
-    return '创始人'
95
-  }
96
-  // 普通用户
97
-  if (userRichType == 0) {
98
-    return '用户'
160
+    // if (bangfu) {
161
+    //   return ['../../static/img-hy/帮扶中心.png', bangfu]
162
+    // }
163
+    return ['../../static/img-hy/高级会员.png']
99
   }
164
   }
100
-  // 会员
101
-  if (userRichType == 1) {
102
-    return '会员'
103
-  }
104
-  if (userRichType == 3) {
105
-    return '创始人'
106
-  }
107
-  // 合伙人
108
-  if (userRichType == 4) {
109
-    // return '合伙人(VIP)'
110
-    return 'VIP'
111
-  }
112
-  if (userRichType == 5) {
113
-    return '初始级合伙人'
165
+  if (userRichType == 8) {
166
+    // if (bangfu) {
167
+    //   return ['../../static/img-hy/帮扶中心.png', bangfu]
168
+    // }
169
+    return ['../../static/img-hy/合伙人.png']
114
   }
170
   }
115
-  if (userRichType == 6) {
116
-    return '中级合伙人'
117
-  }
118
-  if (userRichType == 7) {
119
-    return '高级合伙人'
171
+  if (userRichType == 9) {
172
+    // if (bangfu) {
173
+    //   return ['../../static/img-hy/帮扶中心.png', bangfu]
174
+    // }
175
+    return ['../../static/img-hy/联合创始人.png']
120
   }
176
   }
121
   if (!userRichType) {
177
   if (!userRichType) {
122
-    return '用户'
178
+    // if (bangfu) {
179
+    //   return ['../../static/img-hy/帮扶中心.png', bangfu]
180
+    // }
181
+    return ['']
123
   }
182
   }
124
 })
183
 })
125
-*/
126
-
184
+//0:普通用户 1:股东
185
+// const AlholderType = computed(() => {
186
+//   const stockholder = userStore.userInfo?.stockholder
187
+//   console.log('我是stockholder',userStore.userInfo.stockholder)
188
+//   // 普通用户
189
+//   if (stockholder == 0) {
190
+//     return ['']
191
+//   }
192
+//   // 股东
193
+//   if (stockholder == 1) {
194
+//     return ['../../static/img-hy/股东.png']
195
+//   }
196
+  
197
+// })
198
+// '':普通用户 district-区/县代 city-市代',
199
+// const areaType = computed(() => {
200
+//   const areamanage = userStore.userInfo?.area_manage_type
201
+//   console.log('我是area_manage_type',userStore.userInfo.area_manage_type)
202
+//   // 县/区代理
203
+//   if (areamanage == 'district') {
204
+//     return ['../../static/img-hy/district.png']
205
+//   }
206
+//   // 市代理
207
+//   if (areamanage == 'city') {
208
+//     return ['../../static/img-hy/city.png']
209
+//   }
210
+//   //普通用户
211
+//   if(!areamanage){
212
+//     return['']
213
+//   }
214
+  
215
+// })
216
+
217
+
218
+
219
+onLoad(async () => {
127
 
220
 
128
-onLoad(async (option) => {
129
-  // console.log(option)
130
-  if (option && option.userType) {
131
-    currentType.value = [option.userType]
132
-  } else {
133
-    currentType.value = userType
134
-  }
135
   await userStore.getUserInfo()
221
   await userStore.getUserInfo()
136
   await userStore.getUserYanglaoJin()
222
   await userStore.getUserYanglaoJin()
137
 })
223
 })
@@ -208,9 +294,21 @@ onShow(() => {
208
 })
294
 })
209
 
295
 
210
 function handleUserUpgrade() {
296
 function handleUserUpgrade() {
211
-  if (ruleId.value < 21) {
297
+  console.log('ruleid',ruleId.value);
298
+  
299
+  if (ruleId.value < 20) {
212
     const id = ruleId.value + 1
300
     const id = ruleId.value + 1
213
     getRules(id).then(res => {
301
     getRules(id).then(res => {
302
+      console.log(res);
303
+      
304
+      ruleDetail.value = res
305
+      showUpgradeInfo.value = true
306
+    })
307
+  }else if(ruleId.value = 20){
308
+    const id = ruleId.value + 4
309
+    getRules(id).then(res => {
310
+      console.log(res);
311
+      
214
       ruleDetail.value = res
312
       ruleDetail.value = res
215
       showUpgradeInfo.value = true
313
       showUpgradeInfo.value = true
216
     })
314
     })
@@ -229,10 +327,8 @@ function handleToVipPage() {
229
     <div class="flex flex-col gap-4 relative px-3 pb-safe">
327
     <div class="flex flex-col gap-4 relative px-3 pb-safe">
230
       <div class="pt-5 ">
328
       <div class="pt-5 ">
231
         <div class="flex gap-2 mb-2 text-white mb-6">
329
         <div class="flex gap-2 mb-2 text-white mb-6">
232
-          <image v-if="userStore.userInfo && userStore.userInfo.avatar" :src="userStore.userInfo.avatar"
233
-                 mode="widthFix"
234
-                 class="w-9 h-9 rounded-full"
235
-          ></image>
330
+          <image v-if="userStore.userInfo && userStore.userInfo.avatar" :src="userStore.userInfo.avatar" mode="widthFix"
331
+            class="w-9 h-9 rounded-full"></image>
236
 
332
 
237
           <div class="flex">
333
           <div class="flex">
238
             <div class="flex flex-col">
334
             <div class="flex flex-col">
@@ -246,51 +342,38 @@ function handleToVipPage() {
246
               </div>
342
               </div>
247
             </div>
343
             </div>
248
             <div class="flex gap-1 items-center px-1">
344
             <div class="flex gap-1 items-center px-1">
249
-              <div
250
-                  v-for="(item, index) in currentType"
251
-                  :key="index"
252
-                  class="flex rounded-full border border-solid border-1px border-yellow text-[12px] text-white w-12 h-5 justify-center items-center w-fit px-1">
253
-                {{ item }}
345
+              <div class="flex rounded-full  text-[12px] text-white w-12 h-5 justify-center items-center w-fit px-1">
346
+                <image class="vip_img" :src="userType" v-if="userType"></image>
347
+                <!-- <image class="vip_img" :src="AlholderType" v-if="AlholderType
348
+                  "></image>
349
+                <image class="vip_img" :src="areaType" v-if="areaType"></image> -->
254
               </div>
350
               </div>
255
             </div>
351
             </div>
256
-<!--            <div-->
257
-<!--                class="flex rounded-full border border-solid border-1px border-yellow text-[12px] text-white w-12 h-5 justify-center items-center w-fit px-1">-->
258
-<!--              {{ userType }}-->
259
-<!--            </div>-->
352
+            <!--            <div-->
353
+            <!--                class="flex rounded-full border border-solid border-1px border-yellow text-[12px] text-white w-12 h-5 justify-center items-center w-fit px-1">-->
354
+            <!--              {{ userType }}-->
355
+            <!--            </div>-->
260
           </div>
356
           </div>
261
 
357
 
262
 
358
 
263
         </div>
359
         </div>
264
         <div class="bg-white rounded flex flex-col gap-6 py-4 text-xl">
360
         <div class="bg-white rounded flex flex-col gap-6 py-4 text-xl">
265
-          <div
266
-              v-if="userStore.userInfo"
267
-              class="flex flex-wrap">
268
-            <div
269
-                @tap="handleShowAnnuityDetail"
270
-                class="w-1/3 flex flex-col justify-center items-center"
271
-            >
361
+          <div v-if="userStore.userInfo" class="flex flex-wrap">
362
+            <div @tap="handleShowAnnuityDetail" class="w-1/3 flex flex-col justify-center items-center">
272
               <div>{{ userStore.yanglao.all_yanglao }}</div>
363
               <div>{{ userStore.yanglao.all_yanglao }}</div>
273
               <div class="text-xs">养老金</div>
364
               <div class="text-xs">养老金</div>
274
             </div>
365
             </div>
275
-            <div
276
-                @tap="handleShowMyInvitation"
277
-                class="w-1/3  flex flex-col justify-center items-center">
366
+            <div @tap="handleShowMyInvitation" class="w-1/3  flex flex-col justify-center items-center">
278
               <div>{{ agentInfo.brokerage_price ? agentInfo.brokerage_price : '0' }}</div>
367
               <div>{{ agentInfo.brokerage_price ? agentInfo.brokerage_price : '0' }}</div>
279
               <div class="text-xs">我的佣金</div>
368
               <div class="text-xs">我的佣金</div>
280
             </div>
369
             </div>
281
-            <div
282
-                @tap="handleShowMyIntegral"
283
-                class="w-1/3  flex flex-col justify-center items-center">
370
+            <div @tap="handleShowMyIntegral" class="w-1/3  flex flex-col justify-center items-center">
284
               <div>{{ userStore.userInfo.score }}</div>
371
               <div>{{ userStore.userInfo.score }}</div>
285
               <div class="text-xs">我的积分</div>
372
               <div class="text-xs">我的积分</div>
286
             </div>
373
             </div>
287
           </div>
374
           </div>
288
-          <div
289
-              v-if="userStore.userInfo"
290
-              class="flex">
291
-            <div
292
-                @click="handleToRedIntegral"
293
-                class="w-1/2 flex flex-col justify-center items-center">
375
+          <div v-if="userStore.userInfo" class="flex">
376
+            <div @click="handleToRedIntegral" class="w-1/2 flex flex-col justify-center items-center">
294
               <div>{{ userStore.userInfo.red }}</div>
377
               <div>{{ userStore.userInfo.red }}</div>
295
               <div class="text-xs">红积分提现</div>
378
               <div class="text-xs">红积分提现</div>
296
             </div>
379
             </div>
@@ -304,22 +387,14 @@ function handleToVipPage() {
304
 
387
 
305
       </div>
388
       </div>
306
 
389
 
307
-      <div
308
-          v-if="ruleDetail && ruleDetail.content && !showUpgradeInfo"
309
-          class="p-3 bg-white text-sm text-gray-500"
310
-      >
390
+      <div v-if="ruleDetail && ruleDetail.content && !showUpgradeInfo" class="p-3 bg-white text-sm text-gray-500">
311
         <mpHtml :content="ruleDetail.content"></mpHtml>
391
         <mpHtml :content="ruleDetail.content"></mpHtml>
312
       </div>
392
       </div>
313
-      <div
314
-          v-else
315
-          class="p-3 bg-white text-sm text-gray-500"
316
-      >
393
+      <div v-else class="p-3 bg-white text-sm text-gray-500">
317
         <mpHtml :content="ruleDetail.content" v-if="ruleDetail && ruleDetail.content"></mpHtml>
394
         <mpHtml :content="ruleDetail.content" v-if="ruleDetail && ruleDetail.content"></mpHtml>
318
 
395
 
319
         <div class="flex justify-center items-center">
396
         <div class="flex justify-center items-center">
320
-          <nut-button
321
-              @click="handleToVipPage"
322
-              type="primary" size="small">立即开通</nut-button>
397
+          <nut-button @click="handleToVipPage" type="primary" size="small">立即开通</nut-button>
323
 
398
 
324
         </div>
399
         </div>
325
       </div>
400
       </div>
@@ -330,10 +405,8 @@ function handleToVipPage() {
330
         <div class="font-bold">还有更多奖励权益</div>
405
         <div class="font-bold">还有更多奖励权益</div>
331
         <div class="flex justify-end">
406
         <div class="flex justify-end">
332
 
407
 
333
-          <div
334
-              @click="handleUserUpgrade"
335
-              class="text-[12px] border border-solid border-1px rounded px-1 border-gray text-gray-600"
336
-          >了解更多奖励</div>
408
+          <div @click="handleUserUpgrade"
409
+            class="text-[12px] border border-solid border-1px rounded px-1 border-gray text-gray-600">了解更多奖励</div>
337
         </div>
410
         </div>
338
       </div>
411
       </div>
339
 
412
 
@@ -341,8 +414,6 @@ function handleToVipPage() {
341
 
414
 
342
     </div>
415
     </div>
343
   </div>
416
   </div>
344
-
345
-
346
 </template>
417
 </template>
347
 
418
 
348
 <route lang="yaml">
419
 <route lang="yaml">
@@ -355,7 +426,13 @@ style:
355
 </route>
426
 </route>
356
 
427
 
357
 <style>
428
 <style>
358
-page{
429
+page {
359
   background: #f5f5f5;
430
   background: #f5f5f5;
360
 }
431
 }
432
+
433
+.vip_img {
434
+  width: 48px;
435
+  height: 24px;
436
+  margin-left: 2px;
437
+}
361
 </style>
438
 </style>

+ 305 - 157
src/pages/user/index.vue

@@ -1,12 +1,14 @@
1
 <script lang="ts" setup>
1
 <script lang="ts" setup>
2
-import {useUserStore} from "~/stores/userStore";
2
+import { useUserStore } from "~/stores/userStore";
3
 import CXBAuthorize from "~/components/CXBAuthorize/CXBAuthorize.vue";
3
 import CXBAuthorize from "~/components/CXBAuthorize/CXBAuthorize.vue";
4
-import {getAgentInfo, getUserInfo} from "~/apis/user";
5
-import {CDN_URL} from "~/config/app";
4
+import { getAgentInfo, getUserInfo } from "~/apis/user";
5
+import { CDN_URL,CDM_URL } from "~/config/app";
6
 import Routine from "~/libs/routine";
6
 import Routine from "~/libs/routine";
7
-import {totalOrderNumber} from "~/apis/order.api";
8
-import type {OrderQuantityModel} from "~/apis/model/order.model";
9
-import type {Ref} from "vue";
7
+import { totalOrderNumber } from "~/apis/order.api";
8
+import type { OrderQuantityModel } from "~/apis/model/order.model";
9
+import FPopup from "~/components/FPopup/FPopup.vue";
10
+import { CANCEL_EVENT, OPEN_EVENT } from "~/constants/event";
11
+import type { Ref } from "vue";
10
 const pageStore = usePageStoreWidthOut()
12
 const pageStore = usePageStoreWidthOut()
11
 const currentType = ref('')
13
 const currentType = ref('')
12
 const myOrderList = [{
14
 const myOrderList = [{
@@ -42,13 +44,22 @@ const contactUsList = [{
42
   icon: '/static/icon/kefu_icon.png',
44
   icon: '/static/icon/kefu_icon.png',
43
   text: '联系客服',
45
   text: '联系客服',
44
   url: 'https://work.weixin.qq.com/kfid/kfce29f31a08fd53ee0'
46
   url: 'https://work.weixin.qq.com/kfid/kfce29f31a08fd53ee0'
45
-},{
47
+}, {
46
   type: 'link',
48
   type: 'link',
47
   icon: CDN_URL + '/static/assets/bangzhuzhongxin_220620.png',
49
   icon: CDN_URL + '/static/assets/bangzhuzhongxin_220620.png',
48
   text: '帮助中心',
50
   text: '帮助中心',
49
   url: '/pages/help-center/index'
51
   url: '/pages/help-center/index'
50
 }]
52
 }]
51
 
53
 
54
+
55
+//市/区代表弹框标识
56
+const showValue = ref(false)
57
+
58
+//https://cdn.bjtdba.com/vod/image/2023-11-24/20231124154421388.png
59
+
60
+
61
+//https://cdn.bjtdba.com/vod/image/2023-11-24/20231124154612477.png
62
+
52
 const myServiceList = [{
63
 const myServiceList = [{
53
   icon: CDN_URL + '/static/assets/wodeyaoqing_220620.png',
64
   icon: CDN_URL + '/static/assets/wodeyaoqing_220620.png',
54
   text: '我的邀请',
65
   text: '我的邀请',
@@ -234,71 +245,111 @@ function handleShowMyAllOrder(tab?: number) {
234
 
245
 
235
 const userType = computed(() => {
246
 const userType = computed(() => {
236
   const userRichType = userStore.userInfo?.user_rich_type
247
   const userRichType = userStore.userInfo?.user_rich_type
248
+ 
237
   // console.log(userStore.userInfo)
249
   // console.log(userStore.userInfo)
238
-  const bangfu = userStore.userInfo?.is_bangfu ? '帮扶中心 ' : ''
239
-  // 创始人
240
-  if (userRichType == 3) {
241
-    if (bangfu) {
242
-      return ['创始人', bangfu]
243
-    }
244
-    return ['创始人']
245
-    // return [].push()
246
-  }
247
   // 普通用户
250
   // 普通用户
248
   if (userRichType == 0) {
251
   if (userRichType == 0) {
249
-    if (bangfu) {
250
-      return ['用户', bangfu]
251
-    }
252
-    return ['用户']
252
+
253
+    return '../../static/img-hy/用户.png'
253
   }
254
   }
254
   // 会员
255
   // 会员
255
   if (userRichType == 1) {
256
   if (userRichType == 1) {
256
-    if (bangfu) {
257
-      return ['会员', bangfu]
258
-    }
259
-    return ['会员']
257
+
258
+    return '../../static/img-hy/会员.png'
260
 
259
 
261
   }
260
   }
262
   if (userRichType == 3) {
261
   if (userRichType == 3) {
263
-    if (bangfu) {
264
-      return ['创始人', bangfu]
265
-    }
266
-    return ['创始人']
262
+
263
+    return '../../static/img-hy/创始人.png'
267
   }
264
   }
268
-  // 合伙人
265
+  // 高级会员
269
   if (userRichType == 4) {
266
   if (userRichType == 4) {
270
-    // return '高级会员'
271
-    if (bangfu) {
272
-      return ['VIP', bangfu]
273
-    }
274
-    return ['VIP']
267
+
268
+    return '../../static/img-hy/高级会员.png'
275
   }
269
   }
276
-  if (userRichType == 5) {
277
-    if (bangfu) {
278
-      return ['初始级合伙人', bangfu]
279
-    }
280
-    return ['初始级合伙人']
270
+  if (userRichType == 8) {
271
+
272
+    return '../../static/img-hy/合伙人.png'
281
   }
273
   }
282
-  if (userRichType == 6) {
283
-    if (bangfu) {
284
-      return ['中级合伙人', bangfu]
285
-    }
286
-    return ['中级合伙人']
274
+  if (userRichType == 9) {
275
+
276
+    return '../../static/img-hy/联合创始人.png'
277
+  }
278
+  if (!userRichType) {
279
+
280
+    return ''
287
   }
281
   }
288
-  if (userRichType == 7) {
289
-    if (bangfu) {
290
-      return ['高级合伙人', bangfu]
282
+})
283
+
284
+//0:普通用户 1:股东
285
+const AlholderType = computed(() => {
286
+  const stockholder = userStore.userInfo?.stockholder
287
+  // 普通用户
288
+  if (stockholder == 0) {
289
+    return ''
290
+  }
291
+  // 股东
292
+  if (stockholder == 1) {
293
+    return '../../static/img-hy/股东.png'
294
+  }
295
+
296
+})
297
+// '':普通用户 district-区/县代 city-市代',
298
+const areaType = computed(() => {
299
+  if (userStore.userInfo?.area_manage.area_name.length>0) {
300
+    const areamanage = userStore.userInfo?.area_manage_type
301
+    // 县/区代理
302
+    if (areamanage == 'district') {
303
+      return '../../static/img-hy/district.png'
304
+    }
305
+    // 市代理
306
+    if (areamanage == 'city') {
307
+      return '../../static/img-hy/city.png'
308
+    }
309
+    //普通用户
310
+    if (!areamanage) {
311
+      return ''
291
     }
312
     }
292
-    return ['高级合伙人']
313
+
293
   }
314
   }
294
-  if (!userRichType) {
295
-    if (bangfu) {
296
-      return ['用户', bangfu]
315
+
316
+})
317
+
318
+//弹框展示
319
+function openPopup() {
320
+  showValue.value = true
321
+}
322
+//关闭弹框
323
+const onCancel = () => {
324
+  // show.value = false
325
+  showValue.value = false
326
+}
327
+
328
+//计算市区县展示图片
329
+const backImg = computed(() => {
330
+  if (userStore.userInfo?.area_manage_type) {
331
+    const areamanage = userStore.userInfo?.area_manage_type
332
+    // 县/区代理
333
+    if (areamanage == 'district') {
334
+      return CDM_URL+'/image/2023-11-24/20231124154421388.png'
335
+    }
336
+    // 市代理
337
+    if (areamanage == 'city') {
338
+      return CDM_URL+'/image/2023-11-24/20231124154612477.png'
297
     }
339
     }
298
-    return ['用户']
299
   }
340
   }
341
+
342
+})
343
+const textType = computed(() => {
344
+  if (userStore.userInfo?.area_manage?.area_name) {
345
+    const areamanage = userStore.userInfo?.area_manage.area_name
346
+    let res = areamanage.join("");
347
+    return res
348
+  }
349
+
300
 })
350
 })
301
 
351
 
352
+
302
 function handleToRedIntegral() {
353
 function handleToRedIntegral() {
303
   uni.navigateTo({
354
   uni.navigateTo({
304
     url: '/pages/red-integral/index'
355
     url: '/pages/red-integral/index'
@@ -333,9 +384,9 @@ function handleShowMyProfile() {
333
   })
384
   })
334
 }
385
 }
335
 
386
 
336
-function handleShowMyRulePage(item) {
387
+function handleShowMyRulePage() {
337
   uni.navigateTo({
388
   uni.navigateTo({
338
-    url: `/pages/my-rules/index?userType=${item}`
389
+    url: `/pages/my-rules/index`
339
   })
390
   })
340
 }
391
 }
341
 </script>
392
 </script>
@@ -346,71 +397,90 @@ function handleShowMyRulePage(item) {
346
       <div class="pt-15 ">
397
       <div class="pt-15 ">
347
         <div class="flex gap-2 mb-2 text-white mb-6">
398
         <div class="flex gap-2 mb-2 text-white mb-6">
348
           <image v-if="userStore.userInfo && userStore.userInfo.avatar" :src="userStore.userInfo.avatar"
399
           <image v-if="userStore.userInfo && userStore.userInfo.avatar" :src="userStore.userInfo.avatar"
349
-                 @click="handleShowMyProfile"
350
-                 mode="widthFix"
351
-                 class="w-9 h-9 rounded-full"
352
-          ></image>
353
-          <image
354
-              v-else
355
-              @click="checkAuth"
356
-              src="https://app.bjtdba.com/uploads/logo.jpg"
357
-              mode="widthFix"
358
-              class="w-9 h-9 rounded-full"
359
-          />
360
-          <div class="flex">
361
-            <div class="flex flex-col">
400
+            @click="handleShowMyProfile" mode="widthFix" class="w-9 h-9 rounded-full"></image>
401
+          <image v-else @click="checkAuth" src="https://app.bjtdba.com/uploads/logo.jpg" mode="widthFix"
402
+            class="w-9 h-9 rounded-full" />
403
+          <div class="flex flex-col">
404
+            <div class="flex">
362
               <div class="text-sm">
405
               <div class="text-sm">
363
                 <div class="text-sm" v-if="userStore.userInfo">
406
                 <div class="text-sm" v-if="userStore.userInfo">
364
                   {{ userStore.userInfo.nickname ? userStore.userInfo.nickname : '登录' }}
407
                   {{ userStore.userInfo.nickname ? userStore.userInfo.nickname : '登录' }}
365
                 </div>
408
                 </div>
366
               </div>
409
               </div>
367
-              <div class="text-xs" v-if="userStore.userInfo && userStore.userInfo.phone">
410
+              <div class="text-sm flex-height " v-if="userStore.userInfo && userStore.userInfo.phone">
368
                 {{ encodePhone(userStore.userInfo.phone) }}
411
                 {{ encodePhone(userStore.userInfo.phone) }}
369
               </div>
412
               </div>
370
             </div>
413
             </div>
371
-            <div class="flex gap-1 items-center px-1">
372
-            <div
373
-                v-for="(item, index) in userType"
374
-                :key="index"
375
-                @click="handleShowMyRulePage(item)"
376
-                class="flex rounded-full border border-solid border-1px border-yellow text-[12px] text-white w-12 h-5 justify-center items-center w-fit px-1">
377
-              {{ item }}
378
-            </div>
414
+            <div class="btm flex gap-1 px-1">
415
+              <!-- 用户 -->
416
+              <div v-if="userType" @click="handleShowMyRulePage()"
417
+                class="flex rounded-full  text-[12px] text-white w-12 h-5  w-fit px-1">
418
+                <image lazy-load class="vip_img" :src="userType"></image>
419
+              </div>
420
+              <!-- 市区县代理 -->
421
+              <div @click="openPopup" v-if="areaType"
422
+                class="flex rounded-full  text-[12px] text-white w-12 h-5  w-fit px-1">
423
+                <image lazy-load class="vip_img" :src="areaType"></image>
424
+              </div>
425
+              <!-- 股东 -->
426
+              <div v-if="AlholderType" 
427
+                class="flex rounded-full  text-[12px] text-white w-12 h-5   w-fit px-1">
428
+                <image lazy-load class="vip_img" :src="AlholderType"></image>
429
+              </div>
379
             </div>
430
             </div>
380
           </div>
431
           </div>
381
-
432
+          <FPopup v-model:show="showValue" position="center" exClass="box_2 ">
433
+            <div class="box_2 flex-row">
434
+              <div class="box_2" v-if="backImg" >
435
+                <image  lazy-load class="img_1" :src="backImg"></image>
436
+              </div>
437
+              <div class="group_2 flex-col lolr ">
438
+                <div class="div_box pong1 ">
439
+                  <div class="blue_1">
440
+                    <image lazy-load class="off_3" src="../../static/img-hy/DLqy.png" />
441
+                    <span class="pan">代理区域</span>
442
+                  </div>
443
+                  <div class="blue_2 height1 ">
444
+                    {{ textType }}
445
+                  </div>
446
+                </div>
447
+                <div class="div_box pong2 ">
448
+                  <div class="blue_1">
449
+                    <image lazy-load class="off_3" src="../../static/img-hy/QYDL.png" />
450
+                    <span class="pan">代理权益</span>
451
+                  </div>
452
+                  <div class="block_1 flex-col blue_2 height2 ">
453
+                    <div class="text-group_4 flex-col justify-between">
454
+                      <div class=" pend">所辖区域的区域管理分红</div>
455
+                      <div class="text_5 pand ">(参照会员系统佣金逻辑)</div>
456
+                    </div>
457
+                  </div>
458
+                </div>
459
+              </div>
460
+            </div>
461
+            <div @click="onCancel" class="off_1">
462
+              <image lazy-load class="off_2" src="../../static/img-hy/关闭.png" />
463
+            </div>
464
+          </FPopup>
382
 
465
 
383
         </div>
466
         </div>
384
         <div class="bg-white rounded flex flex-col gap-6 py-4 text-xl">
467
         <div class="bg-white rounded flex flex-col gap-6 py-4 text-xl">
385
-          <div
386
-              v-if="userStore.userInfo"
387
-              class="flex flex-wrap">
388
-            <div
389
-                @tap="handleShowAnnuityDetail"
390
-                class="w-1/3 flex flex-col justify-center items-center"
391
-            >
468
+          <div v-if="userStore.userInfo" class="flex flex-wrap">
469
+            <div @tap="handleShowAnnuityDetail" class="w-1/3 flex flex-col justify-center items-center">
392
               <div>{{ userStore.yanglao.all_yanglao }}</div>
470
               <div>{{ userStore.yanglao.all_yanglao }}</div>
393
               <div class="text-xs">养老金</div>
471
               <div class="text-xs">养老金</div>
394
             </div>
472
             </div>
395
-            <div
396
-                @tap="handleShowMyInvitation"
397
-                class="w-1/3  flex flex-col justify-center items-center">
398
-              <div>{{ agentInfo.brokerage_price ? agentInfo.brokerage_price : '0.00'}}</div>
473
+            <div @tap="handleShowMyInvitation" class="w-1/3  flex flex-col justify-center items-center">
474
+              <div>{{ agentInfo.brokerage_price ? agentInfo.brokerage_price : '0.00' }}</div>
399
               <div class="text-xs">我的佣金</div>
475
               <div class="text-xs">我的佣金</div>
400
             </div>
476
             </div>
401
-            <div
402
-                @tap="handleShowMyIntegral"
403
-                class="w-1/3  flex flex-col justify-center items-center">
477
+            <div @tap="handleShowMyIntegral" class="w-1/3  flex flex-col justify-center items-center">
404
               <div>{{ userStore.userInfo.score }}</div>
478
               <div>{{ userStore.userInfo.score }}</div>
405
               <div class="text-xs">我的积分</div>
479
               <div class="text-xs">我的积分</div>
406
             </div>
480
             </div>
407
           </div>
481
           </div>
408
-          <div
409
-              v-if="userStore.userInfo"
410
-              class="flex">
411
-            <div
412
-                @click="handleToRedIntegral"
413
-                class="w-1/2 flex flex-col justify-center items-center">
482
+          <div v-if="userStore.userInfo" class="flex">
483
+            <div @click="handleToRedIntegral" class="w-1/2 flex flex-col justify-center items-center">
414
               <div>{{ userStore.userInfo.red }}</div>
484
               <div>{{ userStore.userInfo.red }}</div>
415
               <div class="text-xs">红积分提现</div>
485
               <div class="text-xs">红积分提现</div>
416
             </div>
486
             </div>
@@ -428,9 +498,7 @@ function handleShowMyRulePage(item) {
428
         <div class="flex justify-between pt-4 mb-4">
498
         <div class="flex justify-between pt-4 mb-4">
429
           <div>我的订单</div>
499
           <div>我的订单</div>
430
           <div class="flex items-center">
500
           <div class="flex items-center">
431
-            <div
432
-                @click="handleShowMyAllOrder(0)"
433
-                class="text-sm text-gray">查看全部
501
+            <div @click="handleShowMyAllOrder(0)" class="text-sm text-gray">查看全部
434
             </div>
502
             </div>
435
             <div class="f-text-color-2 i-tabler-chevron-right"></div>
503
             <div class="f-text-color-2 i-tabler-chevron-right"></div>
436
           </div>
504
           </div>
@@ -438,51 +506,35 @@ function handleShowMyRulePage(item) {
438
 
506
 
439
         </div>
507
         </div>
440
         <div class="flex pb-4">
508
         <div class="flex pb-4">
441
-          <div
442
-              @click="handleShowMyAllOrder(index + 1)"
443
-              v-for="(item, index) in myOrderList" :key="index"
444
-              class="flex flex-col justify-center items-center w-1/5 gap-3"
445
-          >
509
+          <div @click="handleShowMyAllOrder(index + 1)" v-for="(item, index) in myOrderList" :key="index"
510
+            class="flex flex-col justify-center items-center w-1/5 gap-3">
446
             <div class="relative">
511
             <div class="relative">
447
-              <div class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
448
-                   v-if="
449
-                   item.id == 'noPay' && orderQuantity &&  orderQuantity.noPay != '0'"
450
-
451
-              >
452
-                {{ orderQuantity.noPay}}
512
+              <div
513
+                class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
514
+                v-if="item.id == 'noPay' && orderQuantity && orderQuantity.noPay != '0'">
515
+                {{ orderQuantity.noPay }}
453
               </div>
516
               </div>
454
-              <div class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
455
-                   v-if="
456
-                   item.id == 'refund' && orderQuantity && orderQuantity.refund != '0'"
457
-
458
-              >
459
-                {{ orderQuantity.refund}}
517
+              <div
518
+                class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
519
+                v-if="item.id == 'refund' && orderQuantity && orderQuantity.refund != '0'">
520
+                {{ orderQuantity.refund }}
460
               </div>
521
               </div>
461
-              <div class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
462
-                   v-if="
463
-                   item.id == 'noDeliver' && orderQuantity && orderQuantity.noDeliver != '0'"
464
-
465
-              >
466
-                {{ orderQuantity.noDeliver}}
522
+              <div
523
+                class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
524
+                v-if="item.id == 'noDeliver' && orderQuantity && orderQuantity.noDeliver != '0'">
525
+                {{ orderQuantity.noDeliver }}
467
               </div>
526
               </div>
468
-              <div class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
469
-                   v-if="
470
-                   item.id == 'noPostage' && orderQuantity && orderQuantity.noPostage != '0'"
471
-
472
-              >
473
-                {{ orderQuantity.noPostage}}
527
+              <div
528
+                class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
529
+                v-if="item.id == 'noPostage' && orderQuantity && orderQuantity.noPostage != '0'">
530
+                {{ orderQuantity.noPostage }}
474
               </div>
531
               </div>
475
-              <div class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
476
-                   v-if="
477
-                   item.id == 'noComment' && orderQuantity && orderQuantity.noComment != '0'"
478
-
479
-              >
480
-                {{ orderQuantity.noComment}}
532
+              <div
533
+                class="bg-primary rounded-full w-3 h-3 text-[9px] text-white flex justify-center items-center absolute top--1 right--2 text-center"
534
+                v-if="item.id == 'noComment' && orderQuantity && orderQuantity.noComment != '0'">
535
+                {{ orderQuantity.noComment }}
481
               </div>
536
               </div>
482
-              <image :src="item.icon"
483
-                     mode="widthFix"
484
-                     class="w-7 h-7 "
485
-              />
537
+              <image :src="item.icon" mode="widthFix" class="w-7 h-7 " />
486
             </div>
538
             </div>
487
 
539
 
488
             <div class="text-xs">{{ item.text }}</div>
540
             <div class="text-xs">{{ item.text }}</div>
@@ -495,15 +547,9 @@ function handleShowMyRulePage(item) {
495
           <div>我的服务</div>
547
           <div>我的服务</div>
496
         </div>
548
         </div>
497
         <div class="flex flex-wrap ">
549
         <div class="flex flex-wrap ">
498
-          <div
499
-              v-for="(item, index) in myServiceList" :key="index"
500
-              @tap="handleService(item)"
501
-              class="flex flex-col justify-center items-center w-1/4 gap-2 mb-4"
502
-          >
503
-            <image :src="item.icon"
504
-                   mode="widthFix"
505
-                   class="w-6 h-6 "
506
-            />
550
+          <div v-for="(item, index) in myServiceList" :key="index" @tap="handleService(item)"
551
+            class="flex flex-col justify-center items-center w-1/4 gap-2 mb-4">
552
+            <image :src="item.icon" mode="widthFix" class="w-6 h-6 " />
507
             <div class="text-xs">{{ item.text }}</div>
553
             <div class="text-xs">{{ item.text }}</div>
508
           </div>
554
           </div>
509
         </div>
555
         </div>
@@ -515,15 +561,9 @@ function handleShowMyRulePage(item) {
515
           <div>联系我们</div>
561
           <div>联系我们</div>
516
         </div>
562
         </div>
517
         <div class="flex flex-wrap ">
563
         <div class="flex flex-wrap ">
518
-          <div
519
-              v-for="(item, index) in contactUsList" :key="index"
520
-              @tap="handleToContact(item)"
521
-              class="flex flex-col justify-center items-center w-1/4 gap-2 mb-4"
522
-          >
523
-            <image :src="item.icon"
524
-                   mode="widthFix"
525
-                   class="w-6 h-6 "
526
-            />
564
+          <div v-for="(item, index) in contactUsList" :key="index" @tap="handleToContact(item)"
565
+            class="flex flex-col justify-center items-center w-1/4 gap-2 mb-4">
566
+            <image :src="item.icon" mode="widthFix" class="w-6 h-6 " />
527
             <div class="text-xs">{{ item.text }}</div>
567
             <div class="text-xs">{{ item.text }}</div>
528
           </div>
568
           </div>
529
         </div>
569
         </div>
@@ -539,6 +579,114 @@ function handleShowMyRulePage(item) {
539
 page {
579
 page {
540
   background-color: #f8f8f8;
580
   background-color: #f8f8f8;
541
 }
581
 }
582
+
583
+.flex-height {
584
+  margin-left: 3px;
585
+}
586
+
587
+.btm {
588
+  margin-top: 1px;
589
+}
590
+
591
+.vip_img {
592
+  width: 116rpx;
593
+  height: 58rpx;
594
+}
595
+
596
+.box_2 {
597
+  background-color: #ffffff00;
598
+}
599
+
600
+.img_1 {
601
+  width: 560rpx;
602
+  height: 660rpx;
603
+}
604
+
605
+.off_1 {
606
+  width: 72rpx;
607
+  height: 72rpx;
608
+  position: absolute;
609
+  margin-top: 40rpx;
610
+  left: 50%;
611
+  margin-left: -36rpx;
612
+}
613
+
614
+.off_2 {
615
+  width: 100%;
616
+  height: 100%;
617
+}
618
+
619
+.off_3 {
620
+  width: 34rpx;
621
+  height: 34rpx;
622
+}
623
+
624
+.div_box {
625
+  width: 496rpx;
626
+  height: 152rpx;
627
+  background: #E5F9FF;
628
+  border-radius: 16rpx;
629
+  margin-left: 32rpx;
630
+}
631
+
632
+.blue_1 {
633
+  height: 80rpx;
634
+  line-height: 80rpx;
635
+}
636
+
637
+.blue_1 image {
638
+  margin-left: 26rpx;
639
+  margin-top: 14rpx;
640
+}
641
+
642
+.pan {
643
+  font-size: 28rpx;
644
+  margin-left: 10rpx;
645
+  font-family: SourceHanSansCN, SourceHanSansCN;
646
+  font-weight: 500;
647
+  color: #4D4D69;
648
+
649
+}
650
+
651
+.blue_2 {
652
+  font-size: 30rpx;
653
+  font-family: SourceHanSansCN, SourceHanSansCN;
654
+  font-weight: bold;
655
+  color: #4D4D69;
656
+  background: #C2F0FF;
657
+  padding-left: 26rpx;
658
+}
659
+
660
+.pand {
661
+  font-size: 22rpx;
662
+  font-family: SourceHanSansCN, SourceHanSansCN;
663
+  font-weight: bold;
664
+  color: black;
665
+}
666
+
667
+.height1 {
668
+  height: 74rpx;
669
+  line-height: 74rpx;
670
+}
671
+
672
+.pend {
673
+  padding-top: 14rpx
674
+}
675
+
676
+.height2 {
677
+  height: 90rpx;
678
+  border-radius: 0rpx 0rpx 16rpx 16rpx;
679
+}
680
+
681
+.pong1 {
682
+  position: absolute;
683
+  top: 255rpx
684
+}
685
+
686
+.pong2 {
687
+  position: absolute;
688
+  top: 447rpx
689
+}
542
 </style>
690
 </style>
543
 <route lang="yaml">
691
 <route lang="yaml">
544
 style:
692
 style:

+ 85 - 98
src/pages/vip/index.vue

@@ -1,124 +1,111 @@
1
 <template>
1
 <template>
2
-<!--  <CXBBasePage :show="true" title="">-->
3
-
4
-    <div class="flex flex-col gap-3 ">
5
-      <div
6
-          class="overflow-hidden fixed top-0 w-full z-10"
7
-      >
8
-        <nut-searchbar
9
-            v-model="state.keyword" @search="loadList('reload')" @clear="loadList('reload')">
10
-          <!--      <template v-slot:leftout>-->
11
-          <!--        <div @tap="navBack">-->
12
-          <!--          <nut-icon name="left"></nut-icon>-->
13
-          <!--        </div>-->
14
-          <!--      </template>-->
15
-          <template v-slot:rightout>
16
-            <div @tap="loadList('reload')">
17
-              搜索
18
-            </div>
19
-          </template>
20
-        </nut-searchbar>
21
-      </div>
22
-<!--      <image :src="homeBanner" mode="widthFix" class="h-10 w-full "></image>-->
23
-
24
-      <div class="w-screen h-65">
25
-        <swiper
26
-            v-if="state.banners"
27
-            :indicator-dots="state.indicatorDots"
28
-            indicator-active-color="#e93323"
29
-            :autoplay="state.autoplay"
30
-            :circular="state.circular"
31
-            :interval="state.interval"
32
-            :duration="state.duration"
33
-            class="w-full h-full"
34
-        >
35
-          <swiper-item v-for="(item, index) in state.banners" :key="index">
36
-            <image :src="item.pic" class="!w-full !h-full" mode="aspectFill"/>
37
-          </swiper-item>
38
-        </swiper>
39
-      </div>
2
+  <!--  <CXBBasePage :show="true" title="">-->
3
+
4
+  <div class="flex flex-col gap-3 ">
5
+    <div style="background-color: transparent" class="overflow-hidden fixed top-0 w-full z-10">
6
+      <nut-searchbar v-model="state.keyword" @search="loadList('reload')" @clear="loadList('reload')">
7
+        <!--      <template v-slot:leftout>-->
8
+        <!--        <div @tap="navBack">-->
9
+        <!--          <nut-icon name="left"></nut-icon>-->
10
+        <!--        </div>-->
11
+        <!--      </template>-->
12
+        <template v-slot:rightout>
13
+          <div @tap="loadList('reload')">
14
+            搜索
15
+          </div>
16
+        </template>
17
+      </nut-searchbar>
18
+    </div>
19
+    
20
+    <!--      <image :src="homeBanner" mode="widthFix" class="h-10 w-full "></image>-->
21
+
22
+    <div class="w-screen h-45" style="margin-top: 80rpx;" >
23
+      <swiper v-if="state.banners" :indicator-dots="state.indicatorDots" indicator-active-color="#e93323"
24
+        :autoplay="state.autoplay" :circular="state.circular" :interval="state.interval" :duration="state.duration"
25
+        class="w-full h-full">
26
+        <swiper-item v-for="(item, index) in state.banners" :key="index">
27
+          <image :src="item.pic" class="!w-full !h-full" mode="	aspectFit" />
28
+        </swiper-item>
29
+      </swiper>
30
+    </div>
40
 
31
 
41
-      <div class="flex px-3">
42
-        会员专区
43
-      </div>
44
-      <div  class="px-3" v-if="list && list.length > 0">
45
-        <grid-view type="masonry" cross-axis-count="2" 	cross-axis-gap="10px" main-axis-gap="10px">
46
-          <div v-for="(item, index) in list"
47
-               :key="index"
48
-               @click="handleItemClick(item)"
49
-          >
50
-            <div
51
-                class="bg-white rounded-lg"
52
-            >
53
-              <image :src="item.image" mode="widthFix" 	:fade-in="true" class="rounded-t-lg  !w-full aspect-square"></image>
54
-
55
-              <div class="text-sm p-2 flex flex-col gap-1">
56
-                <div class="line-clamp-1">
57
-                  {{item.store_name}}
58
-                </div>
59
-                <div class="border border-solid border-1 border-red rounded flex text-xs items-center text-[#FE0032] w-fit">
60
-                  <image src="https://cdn.bjtdba.com/vod/image/2023-09-15/20230915160858609.png"
61
-                         mode="widthFix" class="!w-8 "></image>
62
-                  <div class="px-2 flex items-center jusitify-center">
63
-                    <div>
64
-                      养老金 ¥{{item.yanglao}}
65
-                    </div>
32
+    <div class="flex px-3">
33
+      会员专区
34
+    </div>
35
+    <div class="px-3" v-if="list && list.length > 0">
36
+      <grid-view type="masonry" cross-axis-count="2" cross-axis-gap="10px" main-axis-gap="10px">
37
+        <div v-for="(item, index) in list" :key="index" @click="handleItemClick(item)">
38
+          <div class="bg-white rounded-lg">
39
+            <image :src="item.image" mode="widthFix" :fade-in="true" class="rounded-t-lg  !w-full aspect-square"></image>
40
+
41
+            <div class="text-sm p-2 flex flex-col gap-1">
42
+              <div class="line-clamp-1">
43
+                {{ item.store_name }}
44
+              </div>
45
+              <div class="border border-solid border-1 border-red rounded flex text-xs items-center text-[#FE0032] w-fit">
46
+                <image src="https://cdn.bjtdba.com/vod/image/2023-09-15/20230915160858609.png" mode="widthFix"
47
+                  class="!w-8 "></image>
48
+                <div class="px-2 flex items-center jusitify-center">
49
+                  <div>
50
+                    养老金 ¥{{ item.yanglao }}
66
                   </div>
51
                   </div>
67
                 </div>
52
                 </div>
68
-                <div class="flex flex-row items-center gap-2">
69
-                  <div class="flex text-[#FE0032] font-bold text-lg">
70
-                    <div>
71
-                      ¥
72
-                    </div>
73
-                    <div>
74
-                      {{ item.price }}
75
-                    </div>
76
-
53
+              </div>
54
+              <div class="flex flex-row items-center gap-2">
55
+                <div class="flex text-[#FE0032] font-bold text-lg">
56
+                  <div>
57
+                    ¥
77
                   </div>
58
                   </div>
78
-
79
-                  <div class="bg-[#202020] text-[#FFDD99] rounded-t-lg rounded-br-lg text-10px leading-none px-1 flex items-center justify-center h-4">
80
-
81
-                    <div>
82
-                      大仓
83
-                    </div>
59
+                  <div>
60
+                    {{ item.price }}
84
                   </div>
61
                   </div>
85
 
62
 
86
                 </div>
63
                 </div>
87
 
64
 
88
-                <div class="line-through text-xs font-bold flex ">
65
+                <div
66
+                  class="bg-[#202020] text-[#FFDD99] rounded-t-lg rounded-br-lg text-10px leading-none px-1 flex items-center justify-center h-4">
67
+
89
                   <div>
68
                   <div>
90
-                    ¥ {{item.ot_price}}
69
+                    大仓
91
                   </div>
70
                   </div>
92
                 </div>
71
                 </div>
72
+
93
               </div>
73
               </div>
94
-            </div>
95
 
74
 
75
+              <div class="line-through text-xs font-bold flex ">
76
+                <div>
77
+                  ¥ {{ item.ot_price }}
78
+                </div>
79
+              </div>
80
+            </div>
96
           </div>
81
           </div>
97
-        </grid-view>
98
-        <div class="pb-safe flex justify-center items-center text-[12px] text-gray-500" >
99
-          <div v-if="state.status === 'loading'">
100
-            加载中...
101
-          </div>
102
-          <div v-if="state.status === 'noMore'">
103
-            没有更多了~
104
-          </div>
82
+
83
+        </div>
84
+      </grid-view>
85
+      <div class="pb-safe flex justify-center items-center text-[12px] text-gray-500">
86
+        <div v-if="state.status === 'loading'">
87
+          加载中...
88
+        </div>
89
+        <div v-if="state.status === 'noMore'">
90
+          没有更多了~
105
         </div>
91
         </div>
106
       </div>
92
       </div>
107
-      <CXBEmpty v-else/>
108
     </div>
93
     </div>
94
+    <CXBEmpty v-else />
95
+  </div>
109
 
96
 
110
-<!--  </CXBBasePage>-->
97
+  <!--  </CXBBasePage>-->
111
 </template>
98
 </template>
112
 
99
 
113
 <script setup lang="ts">
100
 <script setup lang="ts">
114
 import CXBBasePage from "~/components/CXBBasePage/CXBBasePage.vue";
101
 import CXBBasePage from "~/components/CXBBasePage/CXBBasePage.vue";
115
 import FSearch from "~/components/FSearch/FSearch.vue";
102
 import FSearch from "~/components/FSearch/FSearch.vue";
116
-import {computed} from "vue";
117
-import {getVipAreaList} from "~/apis/merchant";
118
-import {CDN_URL} from "~/config/app";
103
+import { computed } from "vue";
104
+import { getVipAreaList } from "~/apis/merchant";
105
+import { CDN_URL } from "~/config/app";
119
 import CXBEmpty from "~/components/CXBEmpty/CXBEmpty.vue";
106
 import CXBEmpty from "~/components/CXBEmpty/CXBEmpty.vue";
120
-import {getHomeBanner, getProductShare} from "~/apis/common";
121
-import {useUserStore} from "~/stores/userStore";
107
+import { getHomeBanner, getProductShare } from "~/apis/common";
108
+import { useUserStore } from "~/stores/userStore";
122
 import Cache from "~/utils/cache";
109
 import Cache from "~/utils/cache";
123
 
110
 
124
 const homeBanner = CDN_URL + '/static/assets/home-banner.png'
111
 const homeBanner = CDN_URL + '/static/assets/home-banner.png'
@@ -139,7 +126,7 @@ const state = reactive({
139
   totalPage: 1,
126
   totalPage: 1,
140
   banners: [],
127
   banners: [],
141
 
128
 
142
-  keyword: '' ,
129
+  keyword: '',
143
   status: 'noMore',
130
   status: 'noMore',
144
   indicatorDots: true,
131
   indicatorDots: true,
145
   circular: true,
132
   circular: true,
@@ -255,7 +242,7 @@ onPullDownRefresh(() => {
255
 
242
 
256
 <route lang="yaml">
243
 <route lang="yaml">
257
 style:
244
 style:
258
-  navigationBarTitleText: 储蓄保会员
245
+  navigationBarTitleText: 一壶茶会员中心
259
   enablePullDownRefresh: true
246
   enablePullDownRefresh: true
260
 </route>
247
 </route>
261
 <style>
248
 <style>

BIN
src/static/img-hy/DLqy.png


BIN
src/static/img-hy/QYDL.png


BIN
src/static/img-hy/city.png


BIN
src/static/img-hy/district.png


BIN
src/static/img-hy/会员.png


BIN
src/static/img-hy/关闭.png


BIN
src/static/img-hy/创始人.png


BIN
src/static/img-hy/合伙人.png


BIN
src/static/img-hy/用户.png


BIN
src/static/img-hy/联合创始人.png


BIN
src/static/img-hy/股东.png


BIN
src/static/img-hy/高级会员.png