Ver Fonte

Merge branch 'master' of http://git.lcpcp.cc/root/lcoco

WIN-8NDK4S1KEGQ\Administrator há 2 anos atrás
pai
commit
c38ed98cc9

+ 3 - 3
api/common.js

@@ -1,8 +1,8 @@
-import {request} from '../service/ajax.js'
+import {request} from '@/service/ajax'
 
-const commonUrl = '/api/common/'
+const commonUrl = '/utility/'
 // 发送短信
 export const commonSend = (data) => request(commonUrl + 'send', 'post', { ...data })
 // 获取sts
-export const getSts = (data) => request(commonUrl + 'sts', 'post', { ...data })
+export const getTxySts = (data) => request(commonUrl + 'credential', 'post', { ...data })
 

+ 30 - 0
package-lock.json

@@ -6,6 +6,7 @@
     "": {
       "dependencies": {
         "animate.css": "^4.1.1",
+        "cos-js-sdk-v5": "^1.4.18",
         "inobounce": "^0.2.1",
         "jquery": "^3.6.4",
         "uni-read-pages": "^1.0.5",
@@ -56,11 +57,27 @@
         "source-map": "^0.6.1"
       }
     },
+    "node_modules/@xmldom/xmldom": {
+      "version": "0.8.8",
+      "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.8.tgz",
+      "integrity": "sha512-0LNz4EY8B/8xXY86wMrQ4tz6zEHZv9ehFMJPm8u2gq5lQ71cfRKdaKyxfJAx5aUoyzx0qzgURblTisPGgz3d+Q==",
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
     "node_modules/animate.css": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz",
       "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ=="
     },
+    "node_modules/cos-js-sdk-v5": {
+      "version": "1.4.18",
+      "resolved": "https://registry.npmjs.org/cos-js-sdk-v5/-/cos-js-sdk-v5-1.4.18.tgz",
+      "integrity": "sha512-vTy8p59qnEoNJH/1chBSU8lSJDEcKV5PeOlAngmPbmHEwoMNJmKmA71nnquGIWHI4KpR4n57yC+RKP6RZkgsBg==",
+      "dependencies": {
+        "@xmldom/xmldom": "^0.8.6"
+      }
+    },
     "node_modules/crypto-js": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
@@ -211,11 +228,24 @@
         "source-map": "^0.6.1"
       }
     },
+    "@xmldom/xmldom": {
+      "version": "0.8.8",
+      "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.8.tgz",
+      "integrity": "sha512-0LNz4EY8B/8xXY86wMrQ4tz6zEHZv9ehFMJPm8u2gq5lQ71cfRKdaKyxfJAx5aUoyzx0qzgURblTisPGgz3d+Q=="
+    },
     "animate.css": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz",
       "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ=="
     },
+    "cos-js-sdk-v5": {
+      "version": "1.4.18",
+      "resolved": "https://registry.npmjs.org/cos-js-sdk-v5/-/cos-js-sdk-v5-1.4.18.tgz",
+      "integrity": "sha512-vTy8p59qnEoNJH/1chBSU8lSJDEcKV5PeOlAngmPbmHEwoMNJmKmA71nnquGIWHI4KpR4n57yC+RKP6RZkgsBg==",
+      "requires": {
+        "@xmldom/xmldom": "^0.8.6"
+      }
+    },
     "crypto-js": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",

+ 1 - 0
package.json

@@ -1,6 +1,7 @@
 {
   "dependencies": {
     "animate.css": "^4.1.1",
+    "cos-js-sdk-v5": "^1.4.18",
     "inobounce": "^0.2.1",
     "jquery": "^3.6.4",
     "uni-read-pages": "^1.0.5",

+ 8 - 1
pages/perfect/cards.vue

@@ -71,6 +71,7 @@ import tools from "@/service/tools";
 import LoginAgreement from "@/pages/login/model/loginAgreement";
 import EnPopup from "@/components/en-utils/en-popup/en-popup";
 import {register} from "@/api/login";
+import txUploadFile from "@/service/txOssSts";
 export default {
   components: {EnPopup, LoginAgreement, EnNav},
   data() {
@@ -95,6 +96,12 @@ export default {
         sourceType: ['album'], //从相册选择
         success:  (res) =>{
           if(res.tempFilePaths.length>0){
+            console.log(res.tempFilePaths)
+            res.tempFilePaths.forEach((item,key)=>{
+              txUploadFile(item,'gallery').then((res)=>{
+                console.log(res)
+              })
+            })
             this.imgBg=res.tempFilePaths[0]
             this.imgList=res.tempFilePaths
             this.isOK=true
@@ -109,7 +116,7 @@ export default {
     },
     setNextStep(){
       if(this.isOK){
-       
+
         uni.switchTab({
           'url':'/pages/index/index'
         })

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
service/cos-wx-sdk-v5.min.js


+ 19 - 0
service/tools.js

@@ -278,6 +278,24 @@ tools.leftClick = function () {
     }
 }
 
+tools.getDate = function () {
+    let myDate = new Date();
+    // let myYear = myDate.getFullYear(); //获取完整的年份(4位,1970-????)
+    // let myMonth = myDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
+    // let myToday = myDate.getDate(); //获取当前日(1-31)
+    // let myDay = myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
+    // let myHour = myDate.getHours(); //获取当前小时数(0-23)
+    // let myMinute = myDate.getMinutes(); //获取当前分钟数(0-59)
+    // let mySecond = myDate.getSeconds(); //获取当前秒数(0-59)
+    return myDate.getFullYear() + '-' + (myDate.getMonth() + 1) + '-' + myDate.getDate()
+}
+
+tools.getRandFileName = function (filePath)
+{
+    let extIndex = filePath.lastIndexOf('.');
+    let extName = extIndex === -1 ? '' : filePath.substr(extIndex);
+    return parseInt('' + Date.now() + Math.floor(Math.random() * 900 + 100), 10).toString(36) + extName;
+}
 /**
  * 自定义 获取指定日期到当前日期的 所有年 or 年月
  */
@@ -354,6 +372,7 @@ tools.setLoginData = function (data) {
     //     }
     // }, 1500)
 
+
 }
 
 

+ 96 - 0
service/txOssSts.js

@@ -0,0 +1,96 @@
+/**
+ * 微信小程序通过STS直传阿里云OSS
+ *(uniapp版上传,小程序原生需要将uni.XXX替换为wx.XXX)
+ *
+ * @param {filePath} 图片临时地址
+ * @param {option|Object} OSS和STS配置
+ * @param {savePath} oss中的文件目录
+ * @param {AccessKeySecret} 服务端返回的STS中的AccessKeySecret
+ * @param {SecurityToken} 服务端返回的STS中的SecurityToken
+ * @param {AccessKeyId} 服务端返回的STS中的AccessKeyId
+ * @param {bucket} 存储桶
+ * @param {area} 地区
+ * @return {string|boolean} 成功返回文件地址,失败返回false
+ */
+import COS from "./cos-wx-sdk-v5.min"
+
+console.log(COS)
+import tools from "./tools";
+import {getTxySts} from "@/api/common";
+
+// 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucket
+let Bucket = 'icoco-1317650740';
+// 存储桶Region可以在COS控制台指定存储桶的概览页查看 https://console.cloud.tencent.com/cos5/bucket/
+// 关于地域的详情见 https://cloud.tencent.com/document/product/436/6224
+let Region = 'ap-guangzhou';
+
+let cos=null;
+function startCos(){
+    cos = new COS({
+        getAuthorization: function (options, callback) {
+            console.log('---------------获取初始化信息')
+            getTxySts().then((res)=>{
+                if(res.code===0){
+                    callback({
+                        TmpSecretId: res.data.credentials.tmpSecretId,
+                        TmpSecretKey: res.data.credentials.tmpSecretKey,
+                        XCosSecurityToken: res.data.credentials.sessionToken,
+                        StartTime: res.data.startTime, // 时间戳,单位秒,如:1580000000,建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误
+                        ExpiredTime: res.data.expiredTime, // 时间戳,单位秒,如:1580000900
+                    })
+                }
+            })
+
+        }
+    });
+}
+
+/**
+ * COS文件上传
+ * @param file
+ * @param folder 上传目录
+ * @returns {Promise<unknown>}
+ */
+function txUploadFile(file,folder){
+    if(cos===null){
+        console.log('对象初始化')
+        //初始化对象
+        startCos();
+    }
+    //默认为个人目录gallery
+    folder=folder==='moment'?'moment':'gallery'
+    tools.showLoading()
+    return new Promise((resolve, reject) => {
+        console.log('cos-*-------------------------',cos)
+        console.log(file)
+        console.log(folder+'/'+tools.getDate()+tools.getRandFileName(file))
+        // 分片上传文件
+        cos.postObject({
+            Bucket: Bucket,
+            Region: Region,
+            Key: folder+'/'+tools.getDate()+'/'+tools.getRandFileName(file),
+            FilePath: file,
+            onHashProgress: function (progressData) {
+                console.log('校验中', JSON.stringify(progressData));
+            },
+            onProgress: function (progressData) {
+                console.log('上传中', JSON.stringify(progressData));
+            },
+        }, function (err, data) {
+            tools.hideLoading()
+            console.log(err, data);
+            if(data.Location!==undefined){
+                data.Location='https://'+data.Location;
+                resolve( data)
+            }else {
+                resolve( false)
+            }
+
+        });
+    })
+
+}
+
+
+
+export default txUploadFile

+ 8 - 0
uniCloud-aliyun/cloudfunctions/getPhone/index.js

@@ -0,0 +1,8 @@
+'use strict';
+exports.main = async (event, context) => {
+	//event为客户端上传的参数
+	console.log('event : ', event)
+	
+	//返回数据给客户端
+	return event
+};

+ 8 - 0
uniCloud-aliyun/cloudfunctions/getPhone/package.json

@@ -0,0 +1,8 @@
+{
+  "name": "getPhone",
+  "dependencies": {},
+  "extensions": {
+    "uni-cloud-jql": {},
+    "uni-cloud-verify": {}
+  }
+}

+ 12 - 0
yarn.lock

@@ -28,11 +28,23 @@
     "postcss" "^8.4.14"
     "source-map" "^0.6.1"
 
+"@xmldom/xmldom@^0.8.6":
+  "integrity" "sha512-0LNz4EY8B/8xXY86wMrQ4tz6zEHZv9ehFMJPm8u2gq5lQ71cfRKdaKyxfJAx5aUoyzx0qzgURblTisPGgz3d+Q=="
+  "resolved" "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.8.tgz"
+  "version" "0.8.8"
+
 "animate.css@^4.1.1":
   "integrity" "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ=="
   "resolved" "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz"
   "version" "4.1.1"
 
+"cos-js-sdk-v5@^1.4.18":
+  "integrity" "sha512-vTy8p59qnEoNJH/1chBSU8lSJDEcKV5PeOlAngmPbmHEwoMNJmKmA71nnquGIWHI4KpR4n57yC+RKP6RZkgsBg=="
+  "resolved" "https://registry.npmjs.org/cos-js-sdk-v5/-/cos-js-sdk-v5-1.4.18.tgz"
+  "version" "1.4.18"
+  dependencies:
+    "@xmldom/xmldom" "^0.8.6"
+
 "crypto-js@^4.1.1":
   "integrity" "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
   "resolved" "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz"

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff