Browse Source

用户扫描二维码优化

jiayubo 6 days ago
parent
commit
f37763a910
6 changed files with 48 additions and 36 deletions
  1. 5 5
      api/qrcode.js
  2. 1 1
      components/QRCode/index.vue
  3. 2 2
      config.js
  4. 9 2
      pages.json
  5. 2 16
      pages/index.vue
  6. 29 10
      pages/login.vue

+ 5 - 5
api/qrcode.js

@@ -1,7 +1,7 @@
 import request from '@/utils/request'
 
 // 获取不限制的小程序码
-export function getUnlimitedQRCode(params) {
+export function getUnlimitedQRCode(data = {}) {
   return request({
     url: '/core/InviteUser/getInviteQrCode',
     method: 'get',
@@ -14,10 +14,10 @@ export function getUnlimitedQRCode(params) {
       // auto_color: data.auto_color || false, // 自动配置线条颜色
       // line_color: data.line_color || { r: 0, g: 0, b: 0 }, // 使用 rgb 设置颜色
       // is_hyaline: data.is_hyaline || false, // 是否需要透明底色
-      referrerType: 1,
-      referrerId: 111,
-      page: 'pages/index/index',
-      scene: '1234567890',
+      referrerType: data.referrerType || 1,
+      referrerId: data.referrerId || 111,
+      page: data.page || 'pages/index/index',
+      scene: data.scene || `${data.referrerType || 1}:${data.referrerId || 111}`,
     },
     // responseType: 'arraybuffer', // 设置响应类型为arraybuffer,因为返回的是图片二进制内容
   })

+ 1 - 1
components/QRCode/index.vue

@@ -83,7 +83,7 @@ const handleLongPress = async () => {
 }
 
 onMounted(() => {
-  // generateQRCode()
+  generateQRCode()
 })
 </script>
 

+ 2 - 2
config.js

@@ -2,9 +2,9 @@
 const config = {
   // baseUrl: 'https://vue.ruoyi.vip/prod-api',
   //cloud后台网关地址
-  baseUrl: 'http://192.168.100.139:9527', //嵘哥
+  // baseUrl: 'http://192.168.100.139:9527', //嵘哥
   // baseUrl: 'http://192.168.100.127:9527',//龙哥
-  // baseUrl: 'http://192.168.100.122:9527',
+  baseUrl: 'http://192.168.100.122:9527',
   // baseUrl: 'https://goldshulin.com/prod-api',
   mapKey: 'KFEBZ-P2GKZ-A5PX4-7Q6Y7-KXOBF-XCB4C',
   appName: '金邻助家',

+ 9 - 2
pages.json

@@ -14,8 +14,15 @@
 		{
 			"path": "pages/index",
 			"style": {
-				// "navigationBarTitleText": "金邻助家",
-				"navigationStyle": "custom"
+				"navigationStyle": "custom",
+				"transparentTitle": "always",
+				"navigationBarTextStyle": "white",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent",
+						"buttons": []
+					}
+				}
 			}
 		},
 		{

+ 2 - 16
pages/index.vue

@@ -8,14 +8,12 @@
       </view>
     </view>
 
-    <!-- 首页顶部区域-轮播图 -->
     <view class="home-main">
       <view class="custom-swiper" v-if="list3.length > 0">
         <up-swiper :list="list3" indicator indicatorMode="line" circular :height="'554rpx'"></up-swiper>
       </view>
     </view>
 
-    <!-- 首页顶部区域-服务分类 -->
     <view class="Wrapper-Top">
       <view class="home-grid">
         <Client />
@@ -28,19 +26,7 @@
       </view>
     </view>
 
-    <view class="home-grid hot-box" v-if="userType === 1">
-      <view v-for="(item, index) in hotList" :key="index + 'hot'" class="hot-item">
-        <img :src="item" alt="" style="width: 100%; height: 160rpx" />
-      </view>
-
-    </view>
-
-    <view class="hot-swiper">
-      <view v-if="ValueZone.length > 0">
-        <up-swiper :list="ValueZone" :indicator="false" indicatorMode="line" circular></up-swiper>
-      </view>
-    </view>
-
+ 
 
     <view class="home-ranking">
       <ServIces :leftList="leftList" :rightList="rightList" :ValueZoneSwiper="ValueZoneSwiper" v-if="userType == 1">
@@ -67,9 +53,9 @@
       </view>
       <custom-tab-bar page="home" class="customTabBar" />
 
-
       <view class="safe-area-bottom"></view>
     </view>
+  </view>
 </template>
 
 <script setup>

+ 29 - 10
pages/login.vue

@@ -56,8 +56,7 @@
 import { ref, reactive, onMounted } from 'vue'
 import { useRouter } from 'vue-router' // 根据实际情况选择路由库
 import store from '@/store'
-import { onShow } from '@dcloudio/uni-app'
-
+import { onShow, onLoad } from '@dcloudio/uni-app'
 
 const imagePath = '/static/9efd1.png' // Path to the logo image (red tree)
 
@@ -69,8 +68,8 @@ const loginForm = reactive({
   password: '',
   code: '',
   uuid: '',
-  referrerType: 1,
-  referrerId: 111,
+  referrerType: '',
+  referrerId: '',
 })
 
 const checkboxValue = ref(false)
@@ -84,6 +83,29 @@ const globalData = ref({
 
 const router = useRouter()
 
+// 获取小程序码参数
+onLoad((options) => {
+  console.log('onLoad options:', options)
+  // 处理从二维码扫描进入的场景
+  if (options.scene) {
+    const scene = decodeURIComponent(options.scene)
+    const params = scene.split(':')
+    if (params.length >= 2) {
+      loginForm.referrerType = params[0]
+      loginForm.referrerId = params[1]
+      console.log('从二维码获取参数:', loginForm.referrerType, loginForm.referrerId)
+    }
+  }
+  
+  // 如果有直接传入的参数也可以获取
+  if (options.referrerType) {
+    loginForm.referrerType = options.referrerType
+  }
+  if (options.referrerId) {
+    loginForm.referrerId = options.referrerId
+  }
+})
+
 // 用户注册 - assuming this might be needed later, keeping it
 const handleUserRegister = () => {
   router.push('/pages/register') // 替换为实际的路由跳转逻辑
@@ -158,14 +180,11 @@ const handleLogin = async () => {
           title: '系统暂未开放',
         })
       }
-      // 保持原有的 referrerType 和 referrerId
-      const currentReferrerType = loginForm.referrerType
-      const currentReferrerId = loginForm.referrerId
       
       loginForm.code = res.code
-      // 确保 referrerType 和 referrerId 不被覆盖
-      loginForm.referrerType = currentReferrerType
-      loginForm.referrerId = currentReferrerId
+      
+      // 打印当前登录信息
+      console.log('登录信息:', loginForm)
       
       // 获取用户信息
       uni.getUserInfo({