jiayubo 3 miesięcy temu
rodzic
commit
0f3dfbec87
5 zmienionych plików z 83 dodań i 52 usunięć
  1. 2 2
      api/login.js
  2. 9 15
      api/qrcode.js
  3. 15 11
      components/QRCode/index.vue
  4. 23 15
      pages/login.vue
  5. 34 9
      pages_classify/pages/handle/index.vue

+ 2 - 2
api/login.js

@@ -8,8 +8,8 @@ export function login(username, password, code, uuid, referrerType, referrerId,
 	
 	// 只有当referrerQrCodeVersion有值且不为空字符串时才转换为数字
 	const qrCodeVersion = referrerQrCodeVersion === "" || referrerQrCodeVersion === undefined ? "" : Number(referrerQrCodeVersion)
-	// 确保referrerType有默认值1
-	const type = 1
+	// 使用传入的referrerType
+	const type = referrerType
 	// 确保referrerId有默认值
 	const id = referrerId || ""
 	

+ 9 - 15
api/qrcode.js

@@ -3,26 +3,20 @@ import request from '@/utils/request'
 // 获取不限制的小程序码
 export function getUnlimitedQRCode(data = {}) {
   console.log(data,'data');
-  // 从本地存储获取用户类型和用户ID
-  const userType = 1;
+  // 从本地存储获取用户ID
   const userId = uni.getStorageSync('userId') || '';
-  
+
+  const userType = 1;
+    
   return request({
     url: '/core/InviteUser/getInviteQrCode',
     method: 'get',
     params: {
-      // scene: data.scene, // 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符
-      // page: data.page, // 默认是主页,页面 page,例如 pages/index/index
-      // check_path: data.check_path || true, // 默认是true,检查page 是否存在
-      // env_version: data.env_version || 'release', // 要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"
-      // width: data.width || 430, // 二维码的宽度,单位 px,最小 280px,最大 1280px
-      // 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: userType,
-      referrerId: userId, // 使用本地存储的 userId
-      page:'pages/login',
-      scene: data.scene || `${userType}:${userId}`,
+      // 设置默认参数
+      referrerType: userType, // 使用传入的推荐人类型
+      referrerId: userId, // 推荐人ID
+      page: 'pages/login', // 跳转页面
+      scene: data.scene || `${userType}:${userId}`, // 场景值,格式:推荐人类型:推荐人ID
     },
     responseType: 'arraybuffer', // 设置响应类型为arraybuffer,因为返回的是图片二进制内容
   })

+ 15 - 11
components/QRCode/index.vue

@@ -45,33 +45,37 @@ const props = defineProps({
     type: Boolean,
     default: false,
   },
+  referrerType: {
+    type: Number,
+    default: 1
+  }
 })
 
 const qrCodeUrl = ref('')
-const userType = 1 //默认为1
-const userId = uni.getStorageSync('userId')// 读取本地存储
-
+// 使用props中的referrerType
+const userType = props.referrerType
+// 从本地存储获取用户ID
+const userId = uni.getStorageSync('userId')
 
 // 初始化二维码版本号
 const referrerQrCodeVersion = ref()
 
-// 打印用户信息,方便查看
-console.log('=== QRCode组件读取到的用户信息 ===')
-console.log('userType:', userType)
-console.log('userId:', userId)
+console.log('=== 二维码组件用户信息 ===')
+console.log('推荐人类型:', userType)
+console.log('用户ID:', userId)
 
 const generateQRCode = async () => {
   try {
     const response = await getUnlimitedQRCode({
       page: props.page,
-      referrerType: userType,
-      referrerId: userId,
-      referrerQrCodeVersion: referrerQrCodeVersion.value,
+      referrerType: userType, // 推荐人类型,默认为1
+      referrerId: userId, // 用户ID
+      referrerQrCodeVersion: referrerQrCodeVersion.value, // 二维码版本号
     })
     
     // 处理返回的二进制数据
     if (response.data instanceof ArrayBuffer) {
-      // 使用arrayBufferToBase64转换二进制数据为base64
+      // 将二进制数据转换为base64格式
       const base64Data = uni.arrayBufferToBase64(response.data)
       // 拼接Base64图片前缀
       qrCodeUrl.value = 'data:image/png;base64,' + base64Data

+ 23 - 15
pages/login.vue

@@ -50,7 +50,7 @@ const loginForm = reactive({
   password: '',
   code: '',
   uuid: '',
-  referrerType: 1,
+  referrerType: '',
   referrerId: '',
   referrerQrCodeVersion: '',
   latitude: 0,
@@ -69,27 +69,35 @@ const router = useRouter()
 
 // 获取小程序码参数
 onLoad((options) => {
-  console.log(options,'options');
+  console.log('登录页面接收到的参数:', options);
+  
   // 处理从二维码扫描进入的场景
-  // debugger
   if (options.scene) {
-  console.log('options.scene:>>>>>>>123123s', options.scene)
-  const scene = decodeURIComponent(options.scene)
-  const params = scene.split(':')
-  console.log('params:>>>>>>>123123s', params)
-  loginForm.referrerType = params[0]
-  loginForm.referrerId = params[1]
-  if (params.length >= 3) {
-    loginForm.referrerQrCodeVersion = params[2]
-  }
+    // 解码场景值
+    const scene = decodeURIComponent(options.scene);
+    // const scene = "2:122:2"
+    console.log('解码后的场景值:', scene);
+    
+    // 解析场景值参数,格式:推荐人类型:推荐人ID:二维码版本号
+    const params = scene.split(':');
+    console.log('解析后的参数:', params);
+    
+    // 设置推荐人类型,默认为1
+    loginForm.referrerType = params[0] || 1;
+    // 设置推荐人ID
+    loginForm.referrerId = params[1] || '';
+    // 设置二维码版本号(如果有)
+    if (params.length >= 3) {
+      loginForm.referrerQrCodeVersion = params[2];
+    }
   }
 
-  // 如果有直接传入的参数也可以获取
+  // 处理直接传入的参数
   if (options.referrerType) {
-    loginForm.referrerType = options.referrerType
+    loginForm.referrerType = options.referrerType;
   }
   if (options.referrerId) {
-    loginForm.referrerId = options.referrerId
+    loginForm.referrerId = options.referrerId;
   }
 })
 

+ 34 - 9
pages_classify/pages/handle/index.vue

@@ -7,17 +7,32 @@
 
     <view class="user-info">
       <view class="handle-user-info">
-        <view class="user-name">下单时间:{{ detaile.createTime }}</view>
-        <view>上门时间:{{ detaile.workDate + ' ' + detaile.workStartTime }}</view>
-        <view>服务人员:{{ detaile.clientName }} 123123456</view>
-        <view class="user-id" style="display: flex">服务类别:{{ detaile.businessTireName }}</view>
-        <view class="adress-text">地址:{{ detaile.address }}</view>
+        <view class="user-name">
+          <text class="user-PlaEde">下单时间:</text>
+          <text>{{ detaile.createTime }}</text>
+        </view>
+        <view class="user-name">
+          <text class="user-Home">上门时间:</text>
+          <text>{{ detaile.workDate + ' ' + detaile.workStartTime }}</text>
+        </view>
+        <view class="user-name">
+          <text class="user-Serve">服务人员:</text>
+          <text>{{ detaile.clientName }}</text>
+        </view>
+        <view class="user-id" style="display: flex">
+          <text class="user-category">服务类别:</text>
+          <text>{{ detaile.businessTireName }}</text>
+        </view>
+        <view class="adress-text">
+          <text class="user-address">地址:</text>
+          <text>{{ detaile.address }}</text>
+        </view>
         <view class="handle-remark">
           <view class="remark-title">备注</view>
           <view class="remark-text">{{ detaile.remark || '暂无备注' }}</view>
         </view>
-
       </view>
+
       <view class="footer-g">
         <view class="handle-start" v-if="orderStatus && detaile.serviceStartTime && dateData">
           服务已开始:<text class="handle-time">{{ dateData }}</text>
@@ -304,7 +319,6 @@ onUnload(() => {
 })
 </script>
 <style lang="scss" scoped>
-
 .handle-user-info {
   // display: flex;
   // flex-direction: column;
@@ -316,8 +330,9 @@ onUnload(() => {
   bottom: 0;
   background: red;
   width: 750rpx;
-    height: 804rpx;
-    border-radius: 20rpx 20rpx 0rpx 0rpx;
+  height: 804rpx;
+  border-radius: 20rpx 20rpx 0rpx 0rpx;
+
   // margin-left: 38rpx;
   // margin-right: 36rpx;
   // margin-top: 50rpx;
@@ -331,5 +346,15 @@ onUnload(() => {
   //   // justify-content: flex-start;
   //   // align-items: center;
   // }
+  .footer-g {}
+
+  .slider-verify data-v-346965dc {
+    position: relative;
+    width: 100%;
+    height: 100rpx;
+    overflow: hidden;
+    border-radius: 50rpx;
+    top: 659rpx;
+  }
 }
 </style>