Selaa lähdekoodia

!34 分销提现完善,签到完善
Merge pull request !34 from Bluemark/master-vue3

芋道源码 1 vuosi sitten
vanhempi
sitoutus
9e25f8e944

+ 1 - 1
App.vue

@@ -19,7 +19,7 @@
     // 获取urlSchemes参数
     const args = plus.runtime.arguments;
     if (args) {
-    }
+    } 
 
     // 获取剪贴板
     uni.getClipboardData({

+ 229 - 214
manifest.json

@@ -1,225 +1,240 @@
 {
-    "name" : "星品",
-    "appid" : "__UNI__082C0BA",
-    "description" : "Shopro是由SheepJS团队开发,使用Uniapp+Vue3技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
-    "versionName" : "1.8.3",
-    "versionCode" : 183,
-    "transformPx" : false,
-    "app-plus" : {
-        "usingComponents" : true,
-        "nvueCompiler" : "uni-app",
-        "nvueStyleCompiler" : "uni-app",
-        "compilerVersion" : 3,
-        "nvueLaunchMode" : "fast",
-        "splashscreen" : {
-            "alwaysShowBeforeRender" : true,
-            "waiting" : true,
-            "autoclose" : true,
-            "delay" : 0
-        },
-        "safearea" : {
-            "bottom" : {
-                "offset" : "none"
-            }
-        },
-        "modules" : {
-            "Payment" : {},
-            "Share" : {},
-            "VideoPlayer" : {},
-            "OAuth" : {}
-        },
-        "distribute" : {
-            "android" : {
-                "permissions" : [
-                    "<uses-feature android:name=\"android.hardware.camera\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
-                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-                    "<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
-                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
-                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
-                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
-                    "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
-                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
-                    "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
-                    "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
-                    "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
-                ],
-                "minSdkVersion" : 21,
-                "schemes" : "shopro"
-            },
-            "ios" : {
-                "urlschemewhitelist" : [ "baidumap", "iosamap" ],
-                "dSYMs" : false,
-                "privacyDescription" : {
-                    "NSPhotoLibraryUsageDescription" : "需要同意访问您的相册选取图片才能完善该条目",
-                    "NSPhotoLibraryAddUsageDescription" : "需要同意访问您的相册才能保存该图片",
-                    "NSCameraUsageDescription" : "需要同意访问您的摄像头拍摄照片才能完善该条目",
-                    "NSUserTrackingUsageDescription" : "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
-                },
-                "urltypes" : "shopro",
-                "capabilities" : {
-                    "entitlements" : {
-                        "com.apple.developer.associated-domains" : [ "applinks:shopro.sheepjs.com" ]
-                    }
-                },
-                "idfa" : true
-            },
-            "sdkConfigs" : {
-                "speech" : {
-                    "ifly" : {}
-                },
-                "ad" : {},
-                "oauth" : {
-                    "apple" : {},
-                    "weixin" : {
-                        "appid" : "wxae7a0c156da9383b",
-                        "UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
-                    }
-                },
-                "payment" : {
-                    "weixin" : {
-                        "__platform__" : [ "ios", "android" ],
-                        "appid" : "wxae7a0c156da9383b",
-                        "UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
-                    },
-                    "alipay" : {
-                        "__platform__" : [ "ios", "android" ]
-                    }
-                },
-                "share" : {
-                    "weixin" : {
-                        "appid" : "wxae7a0c156da9383b",
-                        "UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
-                    }
-                }
-            },
-            "orientation" : [ "portrait-primary" ],
-            "splashscreen" : {
-                "androidStyle" : "common",
-                "iosStyle" : "common",
-                "useOriginalMsgbox" : true
-            },
-            "icons" : {
-                "android" : {
-                    "hdpi" : "unpackage/res/icons/72x72.png",
-                    "xhdpi" : "unpackage/res/icons/96x96.png",
-                    "xxhdpi" : "unpackage/res/icons/144x144.png",
-                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
-                },
-                "ios" : {
-                    "appstore" : "unpackage/res/icons/1024x1024.png",
-                    "ipad" : {
-                        "app" : "unpackage/res/icons/76x76.png",
-                        "app@2x" : "unpackage/res/icons/152x152.png",
-                        "notification" : "unpackage/res/icons/20x20.png",
-                        "notification@2x" : "unpackage/res/icons/40x40.png",
-                        "proapp@2x" : "unpackage/res/icons/167x167.png",
-                        "settings" : "unpackage/res/icons/29x29.png",
-                        "settings@2x" : "unpackage/res/icons/58x58.png",
-                        "spotlight" : "unpackage/res/icons/40x40.png",
-                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
-                    },
-                    "iphone" : {
-                        "app@2x" : "unpackage/res/icons/120x120.png",
-                        "app@3x" : "unpackage/res/icons/180x180.png",
-                        "notification@2x" : "unpackage/res/icons/40x40.png",
-                        "notification@3x" : "unpackage/res/icons/60x60.png",
-                        "settings@2x" : "unpackage/res/icons/58x58.png",
-                        "settings@3x" : "unpackage/res/icons/87x87.png",
-                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
-                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
-                    }
-                }
-            }
-        }
+  "name": "星品",
+  "appid": "__UNI__082C0BA",
+  "description": "Shopro是由SheepJS团队开发,使用Uniapp+Vue3技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
+  "versionName": "1.8.3",
+  "versionCode": 183,
+  "transformPx": false,
+  "app-plus": {
+    "usingComponents": true,
+    "nvueCompiler": "uni-app",
+    "nvueStyleCompiler": "uni-app",
+    "compilerVersion": 3,
+    "nvueLaunchMode": "fast",
+    "splashscreen": {
+      "alwaysShowBeforeRender": true,
+      "waiting": true,
+      "autoclose": true,
+      "delay": 0
     },
-    "quickapp" : {},
-    "quickapp-native" : {
-        "icon" : "/static/logo.png",
-        "package" : "com.example.demo",
-        "features" : [
-            {
-                "name" : "system.clipboard"
-            }
-        ]
+    "safearea": {
+      "bottom": {
+        "offset": "none"
+      }
     },
-    "quickapp-webview" : {
-        "icon" : "/static/logo.png",
-        "package" : "com.example.demo",
-        "minPlatformVersion" : 1070,
-        "versionName" : "1.0.0",
-        "versionCode" : 100
+    "modules": {
+      "Payment": {},
+      "Share": {},
+      "VideoPlayer": {},
+      "OAuth": {}
     },
-    "mp-weixin" : {
-        "appid" : "wx63c280fe3248a3e7",
-        "setting" : {
-            "urlCheck" : false,
-            "minified" : true,
-            "postcss" : true
+    "distribute": {
+      "android": {
+        "permissions": [
+          "<uses-feature android:name=\"android.hardware.camera\"/>",
+          "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+          "<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
+          "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+          "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+          "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+          "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
+          "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
+          "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+          "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
+          "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
+          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+          "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+          "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
+          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
+          "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
+          "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
+        ],
+        "minSdkVersion": 21,
+        "schemes": "shopro"
+      },
+      "ios": {
+        "urlschemewhitelist": [
+          "baidumap",
+          "iosamap"
+        ],
+        "dSYMs": false,
+        "privacyDescription": {
+          "NSPhotoLibraryUsageDescription": "需要同意访问您的相册选取图片才能完善该条目",
+          "NSPhotoLibraryAddUsageDescription": "需要同意访问您的相册才能保存该图片",
+          "NSCameraUsageDescription": "需要同意访问您的摄像头拍摄照片才能完善该条目",
+          "NSUserTrackingUsageDescription": "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
         },
-        "optimization" : {
-            "subPackages" : true
+        "urltypes": "shopro",
+        "capabilities": {
+          "entitlements": {
+            "com.apple.developer.associated-domains": [
+              "applinks:shopro.sheepjs.com"
+            ]
+          }
         },
-        "plugins" : {},
-        "lazyCodeLoading" : "requiredComponents",
-        "usingComponents" : {},
-        "permission" : {},
-        "requiredPrivateInfos" : [ "chooseAddress" ]
-    },
-    "mp-alipay" : {
-        "usingComponents" : true
-    },
-    "mp-baidu" : {
-        "usingComponents" : true
-    },
-    "mp-toutiao" : {
-        "usingComponents" : true
-    },
-    "mp-jd" : {
-        "usingComponents" : true
-    },
-    "h5" : {
-        "template" : "index.html",
-        "router" : {
-            "mode" : "hash",
-            "base" : "./"
+        "idfa": true
+      },
+      "sdkConfigs": {
+        "speech": {
+          "ifly": {}
+        },
+        "ad": {},
+        "oauth": {
+          "apple": {},
+          "weixin": {
+            "appid": "wxae7a0c156da9383b",
+            "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
+          }
         },
-        "sdkConfigs" : {
-            "maps" : {}
+        "payment": {
+          "weixin": {
+            "__platform__": [
+              "ios",
+              "android"
+            ],
+            "appid": "wxae7a0c156da9383b",
+            "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
+          },
+          "alipay": {
+            "__platform__": [
+              "ios",
+              "android"
+            ]
+          }
         },
-        "async" : {
-            "timeout" : 20000
+        "share": {
+          "weixin": {
+            "appid": "wxae7a0c156da9383b",
+            "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
+          }
+        }
+      },
+      "orientation": [
+        "portrait-primary"
+      ],
+      "splashscreen": {
+        "androidStyle": "common",
+        "iosStyle": "common",
+        "useOriginalMsgbox": true
+      },
+      "icons": {
+        "android": {
+          "hdpi": "unpackage/res/icons/72x72.png",
+          "xhdpi": "unpackage/res/icons/96x96.png",
+          "xxhdpi": "unpackage/res/icons/144x144.png",
+          "xxxhdpi": "unpackage/res/icons/192x192.png"
         },
-        "title" : "星品购",
-        "optimization" : {
-            "treeShaking" : {
-                "enable" : true
-            }
+        "ios": {
+          "appstore": "unpackage/res/icons/1024x1024.png",
+          "ipad": {
+            "app": "unpackage/res/icons/76x76.png",
+            "app@2x": "unpackage/res/icons/152x152.png",
+            "notification": "unpackage/res/icons/20x20.png",
+            "notification@2x": "unpackage/res/icons/40x40.png",
+            "proapp@2x": "unpackage/res/icons/167x167.png",
+            "settings": "unpackage/res/icons/29x29.png",
+            "settings@2x": "unpackage/res/icons/58x58.png",
+            "spotlight": "unpackage/res/icons/40x40.png",
+            "spotlight@2x": "unpackage/res/icons/80x80.png"
+          },
+          "iphone": {
+            "app@2x": "unpackage/res/icons/120x120.png",
+            "app@3x": "unpackage/res/icons/180x180.png",
+            "notification@2x": "unpackage/res/icons/40x40.png",
+            "notification@3x": "unpackage/res/icons/60x60.png",
+            "settings@2x": "unpackage/res/icons/58x58.png",
+            "settings@3x": "unpackage/res/icons/87x87.png",
+            "spotlight@2x": "unpackage/res/icons/80x80.png",
+            "spotlight@3x": "unpackage/res/icons/120x120.png"
+          }
         }
+      }
+    }
+  },
+  "quickapp": {},
+  "quickapp-native": {
+    "icon": "/static/logo.png",
+    "package": "com.example.demo",
+    "features": [
+      {
+        "name": "system.clipboard"
+      }
+    ]
+  },
+  "quickapp-webview": {
+    "icon": "/static/logo.png",
+    "package": "com.example.demo",
+    "minPlatformVersion": 1070,
+    "versionName": "1.0.0",
+    "versionCode": 100
+  },
+  "mp-weixin": {
+    "appid": "wx63c280fe3248a3e7",
+    "setting": {
+      "urlCheck": false,
+      "minified": true,
+      "postcss": true
+    },
+    "optimization": {
+      "subPackages": true
+    },
+    "plugins": {},
+    "lazyCodeLoading": "requiredComponents",
+    "usingComponents": {},
+    "permission": {},
+    "requiredPrivateInfos": [
+      "chooseAddress"
+    ]
+  },
+  "mp-alipay": {
+    "usingComponents": true
+  },
+  "mp-baidu": {
+    "usingComponents": true
+  },
+  "mp-toutiao": {
+    "usingComponents": true
+  },
+  "mp-jd": {
+    "usingComponents": true
+  },
+  "h5": {
+    "template": "index.html",
+    "router": {
+      "mode": "hash",
+      "base": "./"
+    },
+    "sdkConfigs": {
+      "maps": {}
+    },
+    "async": {
+      "timeout": 20000
     },
-    "vueVersion" : "3",
-    "_spaceID" : "192b4892-5452-4e1d-9f09-eee1ece40639",
-    "locale" : "zh-Hans",
-    "fallbackLocale" : "zh-Hans"
-}
+    "title": "星品购",
+    "optimization": {
+      "treeShaking": {
+        "enable": true
+      }
+    }
+  },
+  "vueVersion": "3",
+  "_spaceID": "192b4892-5452-4e1d-9f09-eee1ece40639",
+  "locale": "zh-Hans",
+  "fallbackLocale": "zh-Hans"
+}

+ 14 - 14
pages.json

@@ -337,18 +337,18 @@
 						"group": "分销商城"
 					}
 				},
-                {
-                  "path": "wallet",
-                  "style": {
-                    "navigationBarTitleText": "我的佣金"
-                  },
-                  "meta": {
-                    "auth": true,
-                    "sync": true,
-                    "title": "用户佣金",
-                    "group": "分销中心"
-                  }
-                },
+				{
+					"path": "wallet",
+					"style": {
+						"navigationBarTitleText": "我的佣金"
+					},
+					"meta": {
+						"auth": true,
+						"sync": true,
+						"title": "用户佣金",
+						"group": "分销中心"
+					}
+				},
 				{
 					"path": "goods",
 					"style": {
@@ -622,7 +622,7 @@
 					}
 				},
 				{
-					"path": "bargainingList",
+					"path": "bargain/list",
 					"style": {
 						"navigationBarTitleText": "砍价列表"
 					},
@@ -633,7 +633,7 @@
 					}
 				},
 				{
-					"path": "bargainingDetail",
+					"path": "bargain/detail",
 					"style": {
 						"navigationBarTitleText": "砍价详情"
 					},

+ 13 - 23
pages/activity/bargainingDetail.vue → pages/activity/bargain/detail.vue

@@ -1,8 +1,8 @@
 <!-- 砍价详情 -->
 <template>
-  <!-- TODO @科举:按照项目的代码风格,调整下这个界面 -->
-  <!-- TODO @科举:挪到 bargain/detail.vue 里 -->
-  <!-- TODO @科举:尽量都迁移完;依赖数据的部分,通过直接在 state 写死状态,不用后端返回,跑通整个界面;不追求 100% 对,但是至少自己观感是 ok 的 -->
+	<!-- TODO @科举:按照项目的代码风格,调整下这个界面 -->
+	<!-- TODO @科举:挪到 bargain/detail.vue 里 -->
+	<!-- TODO @科举:尽量都迁移完;依赖数据的部分,通过直接在 state 写死状态,不用后端返回,跑通整个界面;不追求 100% 对,但是至少自己观感是 ok 的 -->
 	<s-layout title='砍价详情'>
 		<view class='bargain'>
 			<!-- :class="startBargainUid !== userInfo.uid ? 'on' : ''" -->
@@ -138,28 +138,18 @@
 	});
 
 
-	function getBargainDetails() {
-		sheep.$api.activity.getBargainActivityDetail({
+	async function getBargainDetails() {
+		let {
+			data,
+			code
+		} = await sheep.$api.activity.getBargainActivityDetail({
 			id: state.id
-		}).then(res => {
-			state.bargainInfo = res.data;
-			state.buyPrice = state.bargainInfo.bargainFirstPrice;
-			// state.pages = '/pages/activity/goods_bargain_details/index?id=' + state.id +
-			// 	'&startBargainUid=' + state.uid + '&scene=' + state.uid + '&storeBargainId=' + state
-			// 	.storeBargainId;
-			// uni.setNavigationBarTitle({
-			// 	title: bargainInfo.name.substring(0, 13) + '...'
-			// })
-
-			// 获得拼团记录
-			// this.gobargainUserInfo();
-
-			//#ifdef H5
-			// this.getImageBase64(bargainInfo.picUrl);
-			//#endif
-		}).catch(function(err) {
-			// 错误了可以跳转回上个页面
 		})
+		if (code == 0) {
+			state.bargainInfo = data;
+			state.buyPrice = state.bargainInfo.bargainFirstPrice;
+		}
+
 	}
 	onLoad(function(options) {
 		if (options.hasOwnProperty('id')) {

+ 44 - 33
pages/activity/bargainingList.vue → pages/activity/bargain/list.vue

@@ -1,6 +1,5 @@
-<!-- 砍价列表 TODO @科举:新建一个 bargain 包,然后这个页面挪进去,改成 list.vue。写的时候,要思考怎么更好的融入到当前项目 -->
 <template>
-  <!-- TODO @科举:参考 groupon/list.vue 和 seckill/list.vue 界面,调整下头部,就是从 5 到 11 行的  -->
+	<!-- TODO @科举:参考 groupon/list.vue 和 seckill/list.vue 界面,调整下头部,就是从 5 到 11 行的  -->
 	<s-layout navbar="inner" title='砍价列表'>
 		<view style='background-color: red;height:100vh;'>
 			<view class='bargain-list'>
@@ -14,8 +13,8 @@
 				<view class='header'>
 					<view class="pic">
 						<view class='swipers'>
-							<swiper indicator-dots="true" autoplay="true" interval="2500"
-								duration="500" vertical="true" circular="true">
+							<swiper indicator-dots="true" autoplay="true" interval="2500" duration="500" vertical="true"
+								circular="true">
 								<block v-for="(item,index) in state.bargainSuccessList" :key='index'>
 									<swiper-item>
 										<view class="acea-row row-middle" style='display:flex'>
@@ -36,7 +35,7 @@
 				<view class='list'>
 					<block v-for="(item,index) in state.bargainList" :key="index">
 						<view style='display:flex' class='item acea-row row-between-wrapper'
-							@tap="openSubscribe('/pages/activity/bargainingDetail?id='+ item.id)">
+							@tap="openSubscribe('/pages/activity/bargain/detail?id='+ item.id)">
 							<view class='pictrue'>
 								<image :src='item.picUrl'></image>
 							</view>
@@ -71,12 +70,19 @@
 </template>
 
 <script setup>
-	import { reactive } from 'vue';
+	import {
+		reactive
+	} from 'vue';
 	import sheep from '@/sheep';
 	import _ from 'lodash';
-	import { onLoad, onReachBottom } from '@dcloudio/uni-app';
-  import { fen2yuan } from '@/sheep/hooks/useGoods';
-
+	import {
+		onLoad,
+		onReachBottom
+	} from '@dcloudio/uni-app';
+	import {
+		fen2yuan
+	} from '@/sheep/hooks/useGoods';
+	import BargainApi from '@/sheep/api/activity'
 	const state = reactive({
 		navH: '',
 		returnShow: true,
@@ -101,53 +107,58 @@
 		loadTitle: '加载更多',
 	});
 
-	function getBargainHeader() {
-    // TODO @科举:这个改成 BargainApi.getBargainRecordSummary,使用 await 操作;代码风格要统一
-		sheep.$api.activity.getBargainRecordSummary().then(res => {
-			state.bargainTotal = res.data.successUserCount;
-			state.bargainSuccessList = res.data.successList;
-		}).catch(err => {
-			return state.$util.Tips({
-				title: err
+	async function getBargainHeader() {
+		let {
+			code,
+			data
+		} = await BargainApi.getBargainRecordSummary()
+		if (code == 0) {
+			state.bargainTotal = data.successUserCount;
+			state.bargainSuccessList = data.successList;
+		} else {
+			state.$util.Tips({
+				title: data
 			});
-		})
+		}
 	}
 
-	function getBargainList() {
-    // TODO @科举:loading 和 loadTitle 改成现在这个项目的风格,包括组件使用 uni-load-more
-    if (state.loadend || state.loading) {
+	async function getBargainList() {
+		// TODO @科举:loading 和 loadTitle 改成现在这个项目的风格,包括组件使用 uni-load-more
+		if (state.loadend || state.loading) {
 			return;
 		}
 		state.loading = true;
 		state.loadTitle = '';
-    // TODO @科举:这个改成 BargainApi.getBargainRecordSummary,使用 await 操作;代码风格要统一
-    sheep.$api.activity.getBargainActivityPage({
+		let {
+			data,
+			code
+		} = await BargainApi.getBargainActivityPage({
 			pageNo: state.page,
 			pageSize: state.limit
-		}).then(res => {
-			const list = res.data.list;
+		})
+		if (code == 0) {
+			const list = data.list;
 			const bargainList = _.concat(state.bargainList, list);
 			const loadend = list.length < state.limit;
 			state.loadend = loadend;
 			state.loading = false;
 			state.loadTitle = loadend ? '已全部加载' : '加载更多';
 			// this.$set(this, 'bargainList', bargainList);
-			state.bargainList = res.data.list
+			state.bargainList = data.list
 			// this.$set(this, 'page', this.page + 1);
 			state.page = state.page + 1;
-		}).catch(res => {
+
+		} else {
 			state.loading = false;
 			state.loadTitle = '加载更多';
-		});
+		}
 	}
 
 	function openSubscribe(e) {
+		console.log('跳转')
 		console.log(e)
-    // TODO @科举:参考 pages/pay/result.vue 页面的 subscribeMessage 方法,写订阅逻辑。
-    // TODO @科举:navigateTo 在项目里,应该是 sheep.$router.go,参考写下
-		uni.navigateTo({
-			url: page,
-		});
+		// TODO @科举:参考 pages/pay/result.vue 页面的 subscribeMessage 方法,写订阅逻辑。
+		sheep.$router.go(e)
 		return;
 		let page = e;
 		// #ifndef MP

+ 3 - 4
pages/app/sign.vue

@@ -22,11 +22,10 @@
             align-items: center;
           "
         >
-          <!-- TODO @科举:1)这里已签到的样式不太对;2)最后一天(第 7 天)的大奖样式不太对 -->
           <view class="item" v-for="(item, index) in state.signConfigList" :key="index">
             <view
               :class="
-                (index + 1 === state.signConfigList.length ? 'reward' : '') +
+                (index  === state.signConfigList.length ? 'reward' : '') +
                 ' ' +
                 (state.signInfo.continuousDay >= item.day ? 'rewardTxt' : '')
               "
@@ -66,7 +65,7 @@
       <!-- 签到说明 TODO @科举:这里改成【已累计签到】 -->
       <view class="bg-white ss-m-t-16 ss-p-t-30 ss-p-b-60 ss-p-x-40">
         <view class="activity-title ss-m-b-30">签到说明</view>
-        <view class="activity-des">1、每天签到,可获得积分或经验</view>
+        <view class="activity-des">1、已累计签到{{state.signInfo.totalDay}}天</view>
         <view class="activity-des">
           2、据说连续签到第 {{ state.maxDay }} 天可获得超额积分,一定要坚持签到哦~~~
         </view>
@@ -111,7 +110,7 @@
     signInfo: {}, // 签到信息
 
     signConfigList: [], // 签到配置列表
-    maxDay: 0, // 最大的签到天数
+    maxDay: 0, // 最大的签到天数 
 
     showModel: false, // 签到弹框
     signResult: {}, // 签到结果

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 152 - 151
pages/commission/commission-ranking.vue


+ 280 - 10
pages/commission/team.vue

@@ -1,13 +1,104 @@
 <!-- 页面 TODO 芋艿:检查未开发 -->
 <template>
 	<s-layout title="我的团队" :class="state.scrollTop ? 'team-wrap' : ''" navbar="inner">
-		<view class="header-box" :style="[
+		<view class="promoter-list">
+			<view class='promoterHeader bg-color' style='backgroundColor:#e93323!important;height:218rpx;color:#fff'>
+				<view class='headerCon acea-row row-between' style='padding: 28px 29px 0 29px;'>
+					<view>
+						<view class='name' style="color:#fff">推广人数</view>
+						<view><text class='num'
+								style="color:#fff">{{(state.getSummary.firstBrokerageUserCount+ state.getSummary.secondBrokerageUserCount)|| 0 }}</text>人
+						</view>
+					</view>
+					<view class='iconfont icon-tuandui'></view>
+				</view>
+			</view>
+			<view style='padding: 0 30rpx;'>
+				<view class='nav acea-row row-around l1'>
+					<view :class="state.level == 1 ? 'item on' : 'item'" @click='setType(1)'>
+						一级({{state.getSummary.firstBrokerageUserCount || 0 }})</view>
+					<view :class="state.level == 2 ? 'item on' : 'item'" @click='setType(2)'>
+						二级({{state.getSummary.secondBrokerageUserCount || 0 }})
+					</view>
+				</view>
+				<view class='search acea-row row-between-wrapper'
+					style="display: flex;height: 100rpx;align-items: center;">
+					<view class='input'>
+						<input placeholder='点击搜索会员名称' v-model="state.nickname" confirm-type='search' name="search"
+							@confirm="submitForm" />
+
+					</view> 
+					<image src="/static/images/search.png" mode="" style='width: 60rpx;height: 64rpx;' @click="submitForm"></image>
+				</view>
+				<view class='list'>
+					<view class="sortNav acea-row row-middle" style="display: flex;align-items: center;">
+						<view class="sortItem" @click='setSort("userCount","asc")' v-if="sort === 'userCountDESC'">
+							团队排序
+							<image src='/static/images/sort1.png'></image>
+						</view>
+						<view class="sortItem" @click='setSort("userCount", "desc")'
+							v-else-if="sort === 'userCountASC'">团队排序
+							<image src='/static/images/sort3.png'></image>
+						</view>
+						<view class="sortItem" @click='setSort("userCount","desc")' v-else>团队排序
+							<image src='/static/images/sort2.png'></image>
+						</view>
+						<view class="sortItem" @click='setSort("price","asc")' v-if="sort === 'priceDESC'">
+							金额排序
+							<image src='/static/images/sort1.png'></image>
+						</view>
+						<view class="sortItem" @click='setSort("price", "desc")' v-else-if="sort === 'priceASC'">
+							金额排序
+							<image src='/static/images/sort3.png'></image>
+						</view>
+						<view class="sortItem" @click='setSort("price","desc")' v-else>金额排序
+							<image src='/static/images/sort2.png'></image>
+						</view>
+						<view class="sortItem" @click='setSort("orderCount","asc")' v-if="sort === 'orderCountDESC'">
+							订单排序
+							<image src='/static/images/sort1.png'></image>
+						</view>
+						<view class="sortItem" @click='setSort("orderCount", "desc")'
+							v-else-if="sort === 'orderCountASC'">订单排序
+							<image src='/static/images/sort3.png'></image>
+						</view>
+						<view class="sortItem" @click='setSort("orderCount","desc")' v-else>订单排序
+							<image src='/static/images/sort2.png'></image>
+						</view>
+					</view>
+								<block v-for="(item,index) in  state.pagination.data" :key="index">
+						<view class='item acea-row row-between-wrapper' style="display: flex;">
+							<view class="picTxt acea-row row-between-wrapper" style="display: flex;align-items: center;">
+								<view class='pictrue'>
+									<image :src='item.avatar'></image>
+								</view>
+								<view class='text'>
+									<view class='name line1'>{{item.nickname}}</view>
+									<view>加入时间: {{  sheep.$helper.timeFormat(item.brokerageTime, 'yyyy-mm-dd hh:MM:ss') }}</view>
+								</view>
+							</view>
+							<view class="right" style='justify-content:center;flex-direction:  column;display: flex;margin-left: auto;'>
+								<view><text class='num font-color'>{{ item.brokerageUserCount || 0}}</text>人
+								</view>
+								<view><text class="num">{{ item.orderCount|| 0}}</text>单</view>
+								<view><text class="num">{{ item.brokeragePrice || 0 }}</text>元</view>
+							</view>
+						</view>
+					</block>
+					<block v-if="state.pagination.data.length == 0">
+						<view style='text-align: center;'>暂无推广人数</view>
+					</block>
+				</view>
+			</view>
+		</view>
+		<!-- <home></home> -->
+
+		<!-- 		<view class="header-box" :style="[
         {
           marginTop: '-' + Number(statusBarHeight + 88) + 'rpx',
           paddingTop: Number(statusBarHeight + 108) + 'rpx',
         },
       ]">
-			<!-- 推荐人 -->
 			<view v-if="userInfo.parent_user" class="referrer-box ss-flex ss-col-center">
 				推荐人:
 				<image class="referrer-avatar ss-m-r-10" :src="sheep.$url.cdn(userInfo.parent_user.avatar)"
@@ -15,7 +106,6 @@
 				</image>
 				{{ userInfo.parent_user.nickname }}
 			</view>
-			<!-- 团队数据总览 -->
 			<view class="team-data-box ss-flex ss-col-center ss-row-between">
 				<view class="data-card">
 					<view class="total-item">
@@ -38,16 +128,16 @@
 				<view class="data-card">
 					<view class="total-item">
 						<view class="item-title">团队分销商人数(人)</view>
-						<view class="total-num">{{ agentInfo.child_agent_count_all || 0 }}</view>
+						<view class="total-num">{{ agentInfo?.child_agent_count_all || 0 }}</view>
 					</view>
 					<view class="category-item ss-flex">
 						<view class="ss-flex-1">
 							<view class="item-title">一级分销商</view>
-							<view class="category-num">{{ agentInfo.child_agent_count_1 || 0 }}</view>
+							<view class="category-num">{{ agentInfo?.child_agent_count_1 || 0 }}</view>
 						</view>
 						<view class="ss-flex-1">
 							<view class="item-title">二级分销商</view>
-							<view class="category-num">{{ agentInfo.child_agent_count_2 || 0 }}</view>
+							<view class="category-num">{{ agentInfo?.child_agent_count_2 || 0 }}</view>
 						</view>
 					</view>
 				</view>
@@ -71,7 +161,7 @@
 			</uni-list>
 		</view>
 		<s-empty v-if="state.pagination.total === 0" icon="/static/data-empty.png" text="暂无团队信息">
-		</s-empty>
+		</s-empty> -->
 	</s-layout>
 </template>
 
@@ -83,13 +173,18 @@
 	} from '@dcloudio/uni-app';
 	import {
 		computed,
-		reactive
+		reactive,
+		ref
 	} from 'vue';
 	import _ from 'lodash';
 	import {
 		onPageScroll
 	} from '@dcloudio/uni-app';
 
+
+
+
+
 	const statusBarHeight = sheep.$platform.device.statusBarHeight * 2;
 	const agentInfo = computed(() => sheep.$store('user').agentInfo);
 	const userInfo = computed(() => sheep.$store('user').userInfo);
@@ -102,6 +197,7 @@
 			state.scrollTop = true;
 		}
 	});
+	let sort=ref();
 	const state = reactive({
 		getSummary: {},
 		pagination: {
@@ -111,8 +207,14 @@
 			last_page: 1,
 		},
 		loadStatus: '',
+		// ↓新ui逻辑
+		level: 1,
+		nickname: ref(''),
+		sortKey:'',
+		isAsc:''
 	});
 
+
 	function filterUserNum(num) {
 		if (_.isNil(num)) {
 			return '';
@@ -120,6 +222,10 @@
 		return `下级团队${num}人`;
 	}
 
+	function submitForm() {
+		state.pagination.data = []
+		getTeamList();
+	}
 	async function getTeamList(page = 1, list_rows = 8) {
 		state.loadStatus = 'loading';
 		// 	nickname: this.nickname,
@@ -128,10 +234,10 @@
 		let res = await sheep.$api.commission.team({
 			pageSize: list_rows,
 			pageNo: page,
-			level: '1',
+			level: state.level,
 			'sortingField.order': 'desc',
 			'sortingField.field': 'userCount',
-			nickname: ''
+			nickname: state.nickname
 		});
 		console.log(res, '分销团队列表');
 		if (res.code === 0) {
@@ -148,6 +254,19 @@
 		}
 	}
 
+	function setType(e) {
+		state.pagination.data = []
+		state.level = e + '';
+		getTeamList( )
+	}
+
+	function setSort(sortKey, isAsc) {
+		state.pagination.data = []
+		sort = sortKey + isAsc.toUpperCase();	
+		state.isAsc=isAsc;
+		state.sortKey=sortKey;
+		getTeamList();
+	}
 	onLoad(async () => {
 		getTeamList();
 		let res = await sheep.$api.commission.getSummary();
@@ -168,6 +287,19 @@
 </script>
 
 <style lang="scss" scoped>
+	.l1 {
+		background-color: #fff;
+		height: 86rpx;
+		line-height: 86rpx;
+		font-size: 28rpx;
+		color: #282828;
+		border-bottom: 1rpx solid #eee;
+		border-top-left-radius: 14rpx;
+		border-top-right-radius: 14rpx;
+		display: flex;
+		justify-content: space-around;
+	}
+
 	.header-box {
 		box-sizing: border-box;
 		padding: 0 20rpx 20rpx 20rpx;
@@ -263,4 +395,142 @@
 			border-radius: 50%;
 		}
 	}
+
+	.promoter-list .nav {
+		background-color: #fff;
+		height: 86rpx;
+		line-height: 86rpx;
+		font-size: 28rpx;
+		color: #282828;
+		border-bottom: 1rpx solid #eee;
+		border-top-left-radius: 14rpx;
+		border-top-right-radius: 14rpx;
+		margin-top: -30rpx;
+	}
+
+	.promoter-list .nav .item.on {
+		border-bottom: 5rpx solid;
+		// $theme-color
+		color: red;
+		// $theme-color
+	}
+
+	.promoter-list .search {
+		width: 100%;
+		background-color: #fff;
+		height: 100rpx;
+		padding: 0 24rpx;
+		box-sizing: border-box;
+		border-bottom-left-radius: 14rpx;
+		border-bottom-right-radius: 14rpx;
+	}
+
+	.promoter-list .search .input {
+		width: 592rpx;
+		height: 60rpx;
+		border-radius: 50rpx;
+		background-color: #f5f5f5;
+		text-align: center;
+		position: relative;
+	}
+
+	.promoter-list .search .input input {
+		height: 100%;
+		font-size: 26rpx;
+		width: 610rpx;
+		text-align: center;
+	}
+
+	.promoter-list .search .input .placeholder {
+		color: #bbb;
+	}
+
+	.promoter-list .search .input .iconfont {
+		position: absolute;
+		right: 28rpx;
+		color: #999;
+		font-size: 28rpx;
+		top: 50%;
+		transform: translateY(-50%);
+	}
+
+	.promoter-list .search .iconfont {
+		font-size: 32rpx;
+		color: #515151;
+		height: 60rpx;
+		line-height: 60rpx;
+	}
+
+	.promoter-list .list {
+		margin-top: 20rpx;
+	}
+
+	.promoter-list .list .sortNav {
+		background-color: #fff;
+		height: 76rpx;
+		border-bottom: 1rpx solid #eee;
+		color: #333;
+		font-size: 28rpx;
+		border-top-left-radius: 14rpx;
+		border-top-right-radius: 14rpx;
+	}
+
+	.promoter-list .list .sortNav .sortItem {
+		text-align: center;
+		flex: 1;
+	}
+
+	.promoter-list .list .sortNav .sortItem image {
+		width: 24rpx;
+		height: 24rpx;
+		margin-left: 6rpx;
+		vertical-align: -3rpx;
+	}
+
+	.promoter-list .list .item {
+		background-color: #fff;
+		border-bottom: 1rpx solid #eee;
+		height: 152rpx;
+		padding: 0 24rpx;
+		font-size: 24rpx;
+		color: #666;
+	}
+
+	.promoter-list .list .item .picTxt .pictrue {
+		width: 106rpx;
+		height: 106rpx;
+		border-radius: 50%;
+	}
+
+	.promoter-list .list .item .picTxt .pictrue image {
+		width: 100%;
+		height: 100%;
+		border-radius: 50%;
+		border: 3rpx solid #fff;
+		box-shadow: 0 0 10rpx #aaa;
+		box-sizing: border-box;
+	}
+
+	.promoter-list .list .item .picTxt .text {
+		// width: 304rpx;
+		font-size: 24rpx;
+		color: #666;
+		margin-left: 14rpx;
+	}
+
+	.promoter-list .list .item .picTxt .text .name {
+		font-size: 28rpx;
+		color: #333;
+		margin-bottom: 13rpx;
+	}
+
+	.promoter-list .list .item .right {
+		text-align: right;
+		font-size: 22rpx;
+		color: #333;
+	}
+
+	.promoter-list .list .item .right .num {
+		margin-right: 7rpx;
+	}
 </style>

+ 4 - 3
pages/pay/components/account-type-select.vue

@@ -30,7 +30,8 @@
 	import {
 		reactive,
 		onBeforeMount,
-		nextTick
+		nextTick,
+		ref
 	} from 'vue';
 	import sheep from '@/sheep';
 
@@ -52,7 +53,7 @@
 	const state = reactive({
 		currentValue: '0',
 	});
-	const typeList = [{
+	const typeList = reactive([{
 			// icon: '/static/img/shop/pay/wechat.png',
 			title: '工商银行',
 			value: '0',
@@ -67,7 +68,7 @@
 			title: '农业',
 			value: '2',
 		},
-	];
+	])
 	const getWalletAccountInfo = async () => {
 		return new Promise(async (resolve, reject) => {
 			let res = await sheep.$api.user.account.info({

+ 34 - 17
pages/pay/withdraw.vue

@@ -21,29 +21,44 @@
 				<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.amount" type="number"
 					placeholder="请输入提现金额" />
 			</view>
-			<view class="card-title">持卡人</view>
-			<view class="input-box ss-flex ss-col-center border-bottom">
+			<view class="card-title" v-show='txfag==1'>持卡人</view>
+			<view class="input-box ss-flex ss-col-center border-bottom"  v-show='txfag==1'>
 				<view class="unit"></view>
 				<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.name"
 					placeholder="请输入持卡人姓名" />
 			</view>
-			<view class="card-title">卡号</view>
-			<view class="input-box ss-flex ss-col-center border-bottom">
+			<view class="card-title"  v-show='txfag==1'>卡号</view>
+			<view class="input-box ss-flex ss-col-center border-bottom"  v-show='txfag==1'>
 				<view class="unit"></view>
 				<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.accountNo"
 					placeholder="请输卡号" />
 			</view>
-			<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30">
+			<view class="card-title">收款码</view>
+			<view class="input-box ss-flex ss-col-center border-bottom">
+				<view class="unit"></view>
+				<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.accountQrCodeUrl"
+					placeholder="请输收款码地址" />
+			</view>
+			
+			<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30" style='display:block'>
+				<view class="name">选择提现方式:</view>
+				<!-- <view class="bank-list ss-flex ss-col-center" style="margin-left:auto" >
+					<view class="empty-text">请选择提现方式</view>
+					<text class="cicon-forward"></text>
+				</view> -->
+					<uni-section title="单选" type="line">
+						<view class="uni-px-5 uni-pb-5" style='font-size:28rpx'>
+							<uni-data-checkbox v-model="txfag" :localdata="txList"></uni-data-checkbox>
+						</view>
+					</uni-section>
+			</view>
+			<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30"  v-show='txfag==1'>
 				<view class="name">选择银行</view>
 				<view class="bank-list ss-flex ss-col-center" @tap="onAccountSelect(true)">
 					<view v-if="!state.accountInfo.type" class="empty-text">请选择提现方式</view>
 					<view v-if="state.accountInfo.type === '0'" class="empty-text">工商银行</view>
 					<view v-if="state.accountInfo.type === '1'" class="empty-text">建设银行</view>
 					<view v-if="state.accountInfo.type === '2'" class="empty-text">农业银行</view>
-					<!-- 	<view v-if="!state.accountInfo.type" class="empty-text">请选择提现方式</view>
-					<view v-if="state.accountInfo.type === 'wechat'" class="empty-text">微信零钱</view>
-					<view v-if="state.accountInfo.type === 'alipay'" class="empty-text">支付宝账户</view>
-					<view v-if="state.accountInfo.type === 'bank'" class="empty-text">银行卡转账</view> -->
 					<text class="cicon-forward"></text>
 				</view>
 			</view>
@@ -51,10 +66,6 @@
 				<view class="placeholder-text" v-if="state.accountInfo.account_name">
 					{{ state.accountInfo.account_header }}|{{ state.accountInfo.account_name }}
 				</view>
-				<!-- 	<view class="placeholder-text" v-else>暂无提现账户</view>
-				<button class="add-btn ss-reset-button" @tap="onAccountEdit(true)">
-					{{ state.accountInfo.account_name ? '修改' : '添加' }}
-				</button> -->
 			</view>
 			<button class="ss-reset-button save-btn ui-BG-Main-Gradient ui-Shadow-Main" @tap="onConfirm">
 				确认提现
@@ -91,7 +102,7 @@
 	import {
 		computed,
 		reactive,
-		onBeforeMount
+		onBeforeMount,ref
 	} from 'vue';
 	import sheep from '@/sheep';
 	import accountTypeSelect from './components/account-type-select.vue';
@@ -130,7 +141,11 @@
 
 		return list;
 	}
-
+	let txfag=ref(1)
+	const txList=[{text:'银行卡提现',value:1},{text:'微信提现',value:2},{text:'支付宝提现',value:3}]
+	function tixian(v){
+		console.log(v)
+	}
 	const userStore = sheep.$store('user');
 	const userInfo = computed(() => userStore.userInfo);
 	const state = reactive({
@@ -152,6 +167,7 @@
 			methods: [],
 		},
 		rulesList: [],
+		accountQrCodeUrl:''
 	});
 
 	const onAccountEdit = (e) => {
@@ -167,8 +183,9 @@
 			accountNo: state.accountNo,
 			name: state.name,
 			bankName: state.accountInfo.type,
-			type: '2',
-			price: state.amount * 100
+			type: txfag.value,
+			price: state.amount * 100,
+			accountQrCodeUrl:state.accountQrCodeUrl
 		};
 		console.log(payload);
 		// return;

+ 6 - 6
sheep/api/promotion/diy/template.js

@@ -1,12 +1,12 @@
 import request from '@/sheep/request';
 
 const DiyTemplateApi = {
-	getUsedDiyTemplate: () => {
-	    return request({
-	        url: '/app-api/promotion/diy-template/used',
-	        method: 'GET',
-	    });
-	},
+	// getUsedDiyTemplate: () => {
+	//     return request({
+	//         url: '/app-api/promotion/diy-template/used',
+	//         method: 'GET',
+	//     });
+	// },
 	getDiyTemplate: (id) => {
 		return request({
 			url: '/app-api/promotion/diy-template/get',

+ 10 - 9
sheep/request/index.js

@@ -94,7 +94,8 @@ http.interceptors.request.use(
 		if (config.url.indexOf('/app-api/') !== -1) {
 			config.header['Accept'] = '*/*'
 			config.header['tenant-id'] = '1';
-      config.header['terminal'] = '20';
+			config.header['terminal'] = '20';
+			config.header['Authorization'] = 'Bearer test247';
 		}
 		return config;
 	},
@@ -108,10 +109,10 @@ http.interceptors.request.use(
  */
 http.interceptors.response.use(
 	(response) => {
-    // 约定:如果是 /auth/ 下的 URL 地址,并且返回了 accessToken 说明是登录相关的接口,则自动设置登陆令牌
-    if (response.config.url.indexOf('/member/auth/') >= 0 && response.data?.data?.accessToken) {
-      $store('user').setToken(response.data.data.accessToken);
-    }
+		// 约定:如果是 /auth/ 下的 URL 地址,并且返回了 accessToken 说明是登录相关的接口,则自动设置登陆令牌
+		if (response.config.url.indexOf('/member/auth/') >= 0 && response.data?.data?.accessToken) {
+			$store('user').setToken(response.data.data.accessToken);
+		}
 
 		response.config.custom.showLoading && closeLoading();
 		if (response.data.error !== 0 && response.data.code !== 0) {
@@ -123,10 +124,10 @@ http.interceptors.response.use(
 				});
 			return Promise.resolve(response.data);
 		}
-    // 成功时的提示
+		// 成功时的提示
 		if (
 			(response.data.error === 0 || response.data.code === 0) &&
-      ( response.data.msg !== '' || response.config.custom.successMsg !== '' ) &&
+			(response.data.msg !== '' || response.config.custom.successMsg !== '') &&
 			response.config.custom.showSuccess
 		) {
 			uni.showToast({
@@ -213,8 +214,8 @@ const request = (config) => {
 	}
 	// TODO 芋艿:额外拼接
 	if (config.url.indexOf('/app-api/') >= 0) {
-		// config.url = 'http://api-dashboard.yudao.iocoder.cn' + config.url; // 调用【云端】
-		config.url = 'http://127.0.0.1:48080' + config.url; // 调用【本地】
+		config.url = 'http://api-dashboard.yudao.iocoder.cn' + config.url; // 调用【云端】
+		// config.url = 'http://127.0.0.1:48080' + config.url; // 调用【本地】
 		// config.url = 'http://yunai.natapp1.cc' + config.url; // 调用【natapp】
 	}
 	return http.middleware(config);

BIN
static/images/search.png


BIN
static/images/sort1.png


BIN
static/images/sort2.png


BIN
static/images/sort3.png


+ 4 - 0
uni_modules/uni-data-checkbox/changelog.md

@@ -1,3 +1,7 @@
+## 1.0.3(2022-09-16)
+- 可以使用 uni-scss 控制主题色
+## 1.0.2(2022-06-30)
+- 优化 在 uni-forms 中的依赖注入方式
 ## 1.0.1(2022-02-07)
 - 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug
 ## 1.0.0(2021-11-19)

+ 67 - 63
uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue

@@ -155,17 +155,17 @@
 			value(newVal) {
 				this.dataList = this.getDataList(newVal)
 				// fix by mehaotian is_reset 在 uni-forms 中定义
-				if(!this.is_reset){
-					this.is_reset = false
-					this.formItem && this.formItem.setValue(newVal)
-				}
+				// if(!this.is_reset){
+				// 	this.is_reset = false
+				// 	this.formItem && this.formItem.setValue(newVal)
+				// }
 			},
 			modelValue(newVal) {
 				this.dataList = this.getDataList(newVal);
-				if(!this.is_reset){
-					this.is_reset = false
-					this.formItem && this.formItem.setValue(newVal)
-				}
+				// if(!this.is_reset){
+				// 	this.is_reset = false
+				// 	this.formItem && this.formItem.setValue(newVal)
+				// }
 			}
 		},
 		data() {
@@ -193,22 +193,22 @@
 			}
 		},
 		created() {
-			this.form = this.getForm('uniForms')
-			this.formItem = this.getForm('uniFormsItem')
+			// this.form = this.getForm('uniForms')
+			// this.formItem = this.getForm('uniFormsItem')
 			// this.formItem && this.formItem.setValue(this.value)
 
-			if (this.formItem) {
-				this.isTop = 6
-				if (this.formItem.name) {
-					// 如果存在name添加默认值,否则formData 中不存在这个字段不校验
-					if(!this.is_reset){
-						this.is_reset = false
-						this.formItem.setValue(this.dataValue)
-					}
-					this.rename = this.formItem.name
-					this.form.inputChildrens.push(this)
-				}
-			}
+			// if (this.formItem) {
+			// 	this.isTop = 6
+			// 	if (this.formItem.name) {
+			// 		// 如果存在name添加默认值,否则formData 中不存在这个字段不校验
+			// 		if(!this.is_reset){
+			// 			this.is_reset = false
+			// 			this.formItem.setValue(this.dataValue)
+			// 		}
+			// 		this.rename = this.formItem.name
+			// 		this.form.inputChildrens.push(this)
+			// 	}
+			// }
 
 			if (this.localdata && this.localdata.length !== 0) {
 				this.isLocal = true
@@ -273,7 +273,7 @@
 						}
 					}
 				}
-				this.formItem && this.formItem.setValue(detail.value)
+				// this.formItem && this.formItem.setValue(detail.value)
 				// TODO 兼容 vue2
 				this.$emit('input', detail.value);
 				// // TOTO 兼容 vue3
@@ -375,7 +375,7 @@
 						selectedArr.push(item[this.map.value])
 					}
 				})
-				return this.dataValue && this.dataValue.length > 0 ? this.dataValue : selectedArr
+				return this.dataValue.length > 0 ? this.dataValue : selectedArr
 			},
 
 			/**
@@ -384,11 +384,13 @@
 			setStyleBackgroud(item) {
 				let styles = {}
 				let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
-				if (this.mode !== 'list') {
-					styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
-				}
-				if (this.mode === 'tag') {
-					styles['background-color'] = item.selected? selectedColor:'#f5f5f5'
+				if (this.selectedColor) {
+					if (this.mode !== 'list') {
+						styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
+					}
+					if (this.mode === 'tag') {
+						styles['background-color'] = item.selected? selectedColor:'#f5f5f5'
+					}
 				}
 				let classles = ''
 				for (let i in styles) {
@@ -399,15 +401,16 @@
 			setStyleIcon(item) {
 				let styles = {}
 				let classles = ''
-				let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
-				styles['background-color'] = item.selected?selectedColor:'#fff'
-				styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
-
-				if(!item.selected && item.disabled){
-					styles['background-color'] = '#F2F6FC'
+				if (this.selectedColor) {
+					let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
+					styles['background-color'] = item.selected?selectedColor:'#fff'
 					styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
+					
+					if(!item.selected && item.disabled){
+						styles['background-color'] = '#F2F6FC'
+						styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
+					}
 				}
-
 				for (let i in styles) {
 					classles += `${i}:${styles[i]};`
 				}
@@ -416,16 +419,17 @@
 			setStyleIconText(item) {
 				let styles = {}
 				let classles = ''
-				let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
-				if (this.mode === 'tag') {
-					styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#666'
-				} else {
-					styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:selectedColor):'#666'
-				}
-				if(!item.selected && item.disabled){
-					styles.color = '#999'
+				if (this.selectedColor) {
+					let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
+					if (this.mode === 'tag') {
+						styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#666'
+					} else {
+						styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:selectedColor):'#666'
+					}
+					if(!item.selected && item.disabled){
+						styles.color = '#999'
+					}
 				}
-
 				for (let i in styles) {
 					classles += `${i}:${styles[i]};`
 				}
@@ -448,7 +452,7 @@
 </script>
 
 <style lang="scss">
-	$checked-color: #2979ff;
+	$uni-primary: #2979ff !default;
 	$border-color: #DCDFE6;
 	$disable:0.4;
 
@@ -614,8 +618,8 @@
 					// 选中
 					&.is-checked {
 						.checkbox__inner {
-							border-color: $checked-color;
-							background-color: $checked-color;
+							border-color: $uni-primary;
+							background-color: $uni-primary;
 
 							.checkbox__inner-icon {
 								opacity: 1;
@@ -623,14 +627,14 @@
 							}
 						}
 						.radio__inner {
-							border-color: $checked-color;
+							border-color: $uni-primary;
 							.radio__inner-icon {
 								opacity: 1;
-								background-color: $checked-color;
+								background-color: $uni-primary;
 							}
 						}
 						.checklist-text {
-							color: $checked-color;
+							color: $uni-primary;
 						}
 						// 选中禁用
 						&.is-disable {
@@ -683,10 +687,10 @@
 					}
 
 					&.is-checked {
-						border-color: $checked-color;
+						border-color: $uni-primary;
 						.checkbox__inner {
-							border-color: $checked-color;
-							background-color: $checked-color;
+							border-color: $uni-primary;
+							background-color: $uni-primary;
 							.checkbox__inner-icon {
 								opacity: 1;
 								transform: rotate(45deg);
@@ -694,16 +698,16 @@
 						}
 
 						.radio__inner {
-							border-color: $checked-color;
+							border-color: $uni-primary;
 
 							.radio__inner-icon {
 								opacity: 1;
-								background-color: $checked-color;
+								background-color: $uni-primary;
 							}
 						}
 
 						.checklist-text {
-							color: $checked-color;
+							color: $uni-primary;
 						}
 
 						// 选中禁用
@@ -735,8 +739,8 @@
 					}
 
 					&.is-checked {
-						background-color: $checked-color;
-						border-color: $checked-color;
+						background-color: $uni-primary;
+						border-color: $uni-primary;
 
 						.checklist-text {
 							color: #fff;
@@ -775,8 +779,8 @@
 
 					&.is-checked {
 						.checkbox__inner {
-							border-color: $checked-color;
-							background-color: $checked-color;
+							border-color: $uni-primary;
+							background-color: $uni-primary;
 
 							.checkbox__inner-icon {
 								opacity: 1;
@@ -789,13 +793,13 @@
 							}
 						}
 						.checklist-text {
-							color: $checked-color;
+							color: $uni-primary;
 						}
 
 						.checklist-content {
 							.checkobx__list {
 								opacity: 1;
-								border-color: $checked-color;
+								border-color: $uni-primary;
 							}
 						}
 

+ 4 - 7
uni_modules/uni-data-checkbox/package.json

@@ -1,7 +1,7 @@
 {
   "id": "uni-data-checkbox",
   "displayName": "uni-data-checkbox 数据选择器",
-  "version": "1.0.1",
+  "version": "1.0.3",
   "description": "通过数据驱动的单选框和复选框",
   "keywords": [
     "uni-ui",
@@ -17,11 +17,7 @@
   "directories": {
     "example": "../../temps/example_temps"
   },
-  "dcloudext": {
-    "category": [
-      "前端组件",
-      "通用组件"
-    ],
+"dcloudext": {
     "sale": {
       "regular": {
         "price": "0.00"
@@ -38,7 +34,8 @@
       "data": "无",
       "permissions": "无"
     },
-    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+    "type": "component-vue"
   },
   "uni_modules": {
     "dependencies": ["uni-load-more","uni-scss"],

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä