dever 4 vuotta sitten
vanhempi
commit
b034d159dd

+ 147 - 0
lib/dever/components/base64.js

@@ -0,0 +1,147 @@
+function getLocalFilePath(path) {
+    if (path.indexOf('_www') === 0 || path.indexOf('_doc') === 0 || path.indexOf('_documents') === 0 || path.indexOf('_downloads') === 0) {
+        return path
+    }
+    if (path.indexOf('file://') === 0) {
+        return path
+    }
+    if (path.indexOf('/storage/emulated/0/') === 0) {
+        return path
+    }
+    if (path.indexOf('/') === 0) {
+        var localFilePath = plus.io.convertAbsoluteFileSystem(path)
+        if (localFilePath !== path) {
+            return localFilePath
+        } else {
+            path = path.substr(1)
+        }
+    }
+    return '_www/' + path
+}
+
+export function pathToBase64(path) {
+    return new Promise(function(resolve, reject) {
+        if (typeof window === 'object' && 'document' in window) {
+            if (typeof FileReader === 'function') {
+                var xhr = new XMLHttpRequest()
+                xhr.open('GET', path, true)
+                xhr.responseType = 'blob'
+                xhr.onload = function() {
+                    if (this.status === 200) {
+                        let fileReader = new FileReader()
+                        fileReader.onload = function(e) {
+                            resolve(e.target.result)
+                        }
+                        fileReader.onerror = reject
+                        fileReader.readAsDataURL(this.response)
+                    }
+                }
+                xhr.onerror = reject
+                xhr.send()
+                return
+            }
+            var canvas = document.createElement('canvas')
+            var c2x = canvas.getContext('2d')
+            var img = new Image
+            img.onload = function() {
+                canvas.width = img.width
+                canvas.height = img.height
+                c2x.drawImage(img, 0, 0)
+                resolve(canvas.toDataURL())
+                canvas.height = canvas.width = 0
+            }
+            img.onerror = reject
+            img.src = path
+            return
+        }
+        if (typeof plus === 'object') {
+            plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) {
+                entry.file(function(file) {
+                    var fileReader = new plus.io.FileReader()
+                    fileReader.onload = function(data) {
+                        resolve(data.target.result)
+                    }
+                    fileReader.onerror = function(error) {
+                        reject(error)
+                    }
+                    fileReader.readAsDataURL(file)
+                }, function(error) {
+                    reject(error)
+                })
+            }, function(error) {
+                reject(error)
+            })
+            return
+        }
+        if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) {
+            wx.getFileSystemManager().readFile({
+                filePath: path,
+                encoding: 'base64',
+                success: function(res) {
+                    resolve('data:image/png;base64,' + res.data)
+                },
+                fail: function(error) {
+                    reject(error)
+                }
+            })
+            return
+        }
+        reject(new Error('not support'))
+    })
+}
+
+export function base64ToPath(base64) {
+    return new Promise(function(resolve, reject) {
+        if (typeof window === 'object' && 'document' in window) {
+            base64 = base64.split(',')
+            var type = base64[0].match(/:(.*?);/)[1]
+            var str = atob(base64[1])
+            var n = str.length
+            var array = new Uint8Array(n)
+            while (n--) {
+                array[n] = str.charCodeAt(n)
+            }
+            return resolve((window.URL || window.webkitURL).createObjectURL(new Blob([array], { type: type })))
+        }
+        var extName = base64.match(/data\:\S+\/(\S+);/)
+        if (extName) {
+            extName = extName[1]
+        } else {
+            reject(new Error('base64 error'))
+        }
+        var fileName = Date.now() + '.' + extName
+        if (typeof plus === 'object') {
+            var bitmap = new plus.nativeObj.Bitmap('bitmap' + Date.now())
+            bitmap.loadBase64Data(base64, function() {
+                var filePath = '_doc/uniapp_temp/' + fileName
+                bitmap.save(filePath, {}, function() {
+                    bitmap.clear()
+                    resolve(filePath)
+                }, function(error) {
+                    bitmap.clear()
+                    reject(error)
+                })
+            }, function(error) {
+                bitmap.clear()
+                reject(error)
+            })
+            return
+        }
+        if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) {
+            var filePath = wx.env.USER_DATA_PATH + '/' + fileName
+            wx.getFileSystemManager().writeFile({
+                filePath: filePath,
+                data: base64.replace(/^data:\S+\/\S+;base64,/, ''),
+                encoding: 'base64',
+                success: function() {
+                    resolve(filePath)
+                },
+                fail: function(error) {
+                    reject(error)
+                }
+            })
+            return
+        }
+        reject(new Error('not support'))
+    })
+}

+ 351 - 90
lib/dever/components/qiniu/upload.js

@@ -82,8 +82,12 @@
             console.error('qiniu UploadToken is null, please check the init config or networking');
             return
         }
-        var url = uploadURLFromRegionCode(config.qiniuRegion);
-        var fileName = filePath.split('//')[1];
+        var url = uploadURLFromRegionCode(config.qiniuRegion);
+		if (filePath.indexOf('//') != -1) {
+			var fileName = filePath.split('//')[1];
+		} else {
+			var fileName = hex_md5(filePath);
+		}
         // 自定义上传key(即自定义上传文件名)。通过修改qiniuUploader.upload方法传入的options参数,可以进行自定义文件名称。如果options非空,则使用options中的key作为fileName
         if (options && options.key) {
             fileName = options.key;
@@ -94,93 +98,93 @@
         // qiniuShouldUseQiniuFileName 如果是 true,则文件的 key 由 qiniu 服务器分配(全局去重)。如果是 false,则文件的 key 使用微信自动生成的 filename。出于初代sdk用户升级后兼容问题的考虑,默认是 false。
         if (!config.qiniuShouldUseQiniuFileName) {
             formData['key'] = fileName
-        }
-		var source = 'h5';
-		//#ifdef APP-PLUS
-		source = 'app';
-		//#endif
-		
-		if (source == 'app') {
-			var uploader = plus.uploader.createUpload(url,{},function(up,state){
-				if( state== 200) {
-					var res = JSON.parse(up.responseText);
-					if (success) {
-					    success(res);
-					}
-				} else {
-					if (fail) {
-					    fail(state);
-					}
-				}
-			});
-			var num = 0;
-			var uploadInfo = {};
-			var uploadChangeInfo = function(upload, status) {
-				if (upload.state == 3) {
-					var count = (upload.uploadedSize / upload.totalSize)*100;
-					count = parseInt(count);
-					if (num != count) {
-						num = count;
-						
-						if (num % 10 == 0) {
-							uploadInfo.progress = num;
-							progress && progress(uploadInfo);
-						}
-					}
-				}
-			};
-			uploader.addEventListener("statechanged", uploadChangeInfo, false);
-			uploader.addData("key", fileName);  
-			uploader.addData("token",config.qiniuUploadToken);  
-			uploader.addFile(filePath,{"key":"file"});
-			uploader.start();
-		} else {
-			var uploadTask = uni.uploadFile({
-			    url: url,
-			    filePath: filePath,
-			    name: 'file',
-			    formData: formData,
-			    success: function (res) {
-			        var dataString = res.data
-			        //   // this if case is a compatibility with wechat server returned a charcode, but was fixed
-			        //   if(res.data.hasOwnProperty('type') && res.data.type === 'Buffer'){
-			        //     dataString = String.fromCharCode.apply(null, res.data.data)
-			        //   }
-			        try {
-			            var dataObject = JSON.parse(dataString);
-			            // 拼接fileURL
-			            var fileURL = config.qiniuBucketURLPrefix + '/' + dataObject.key;
-			            dataObject.fileURL = fileURL;
-			            // imageURL字段和fileURL字段重复,但本sdk不做删除,因为在最初版本使用的是imageURL。直接删除可能导致原有用户升级至新版sdk后出现异常。
-			            dataObject.imageURL = fileURL;
-			            console.log(dataObject);
-			            if (success) {
-			                success(dataObject);
-			            }
-			        } catch (e) {
-			            console.log('parse JSON failed, origin String is: ' + dataString)
-			            if (fail) {
-			                fail(e);
-			            }
-			        }
-			    },
-			    fail: function (error) {
-			        console.error(error);
-			        if (fail) {
-			            fail(error);
-			        }
-			    }
-			})
-			
-			// 文件上传进度
-			uploadTask.onProgressUpdate((res) => {
-			    progress && progress(res)
-			})
-			
-			// 中断文件上传
-			cancelTask && cancelTask(() => {
-			    uploadTask.abort()
-			})
+        }
+		var source = 'h5';
+		//#ifdef APP-PLUS
+		source = 'app';
+		//#endif
+		
+		if (source == 'app') {
+			var uploader = plus.uploader.createUpload(url,{},function(up,state){
+				if( state== 200) {
+					var res = JSON.parse(up.responseText);
+					if (success) {
+					    success(res);
+					}
+				} else {
+					if (fail) {
+					    fail(state);
+					}
+				}
+			});
+			var num = 0;
+			var uploadInfo = {};
+			var uploadChangeInfo = function(upload, status) {
+				if (upload.state == 3) {
+					var count = (upload.uploadedSize / upload.totalSize)*100;
+					count = parseInt(count);
+					if (num != count) {
+						num = count;
+						
+						if (num % 10 == 0) {
+							uploadInfo.progress = num;
+							progress && progress(uploadInfo);
+						}
+					}
+				}
+			};
+			uploader.addEventListener("statechanged", uploadChangeInfo, false);
+			uploader.addData("key", fileName);  
+			uploader.addData("token",config.qiniuUploadToken);  
+			uploader.addFile(filePath,{"key":"file"});
+			uploader.start();
+		} else {
+			var uploadTask = uni.uploadFile({
+			    url: url,
+			    filePath: filePath,
+			    name: 'file',
+			    formData: formData,
+			    success: function (res) {
+			        var dataString = res.data
+			        //   // this if case is a compatibility with wechat server returned a charcode, but was fixed
+			        //   if(res.data.hasOwnProperty('type') && res.data.type === 'Buffer'){
+			        //     dataString = String.fromCharCode.apply(null, res.data.data)
+			        //   }
+			        try {
+			            var dataObject = JSON.parse(dataString);
+			            // 拼接fileURL
+			            var fileURL = config.qiniuBucketURLPrefix + '/' + dataObject.key;
+			            dataObject.fileURL = fileURL;
+			            // imageURL字段和fileURL字段重复,但本sdk不做删除,因为在最初版本使用的是imageURL。直接删除可能导致原有用户升级至新版sdk后出现异常。
+			            dataObject.imageURL = fileURL;
+			            console.log(dataObject);
+			            if (success) {
+			                success(dataObject);
+			            }
+			        } catch (e) {
+			            console.log('parse JSON failed, origin String is: ' + dataString)
+			            if (fail) {
+			                fail(e);
+			            }
+			        }
+			    },
+			    fail: function (error) {
+			        console.error(error);
+			        if (fail) {
+			            fail(error);
+			        }
+			    }
+			})
+			
+			// 文件上传进度
+			uploadTask.onProgressUpdate((res) => {
+			    progress && progress(res)
+			})
+			
+			// 中断文件上传
+			cancelTask && cancelTask(() => {
+			    uploadTask.abort()
+			})
 		}
     }
 
@@ -217,7 +221,264 @@
             default: console.error('please make the region is with one of [ECN, SCN, NCN, NA, ASG]');
         }
         return uploadURL;
-    }
+    }
+	
+	/*
+	 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+	 * Digest Algorithm, as defined in RFC 1321.
+	 * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
+	 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+	 * Distributed under the BSD License
+	 * See http://pajhome.org.uk/crypt/md5 for more info.
+	 */
+	
+	/*
+	 * Configurable variables. You may need to tweak these to be compatible with
+	 * the server-side, but the defaults work in most cases.
+	 */
+	var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */
+	var b64pad  = ""; /* base-64 pad character. "=" for strict RFC compliance   */
+	var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */
+	
+	/*
+	 * These are the functions you'll usually want to call
+	 * They take string arguments and return either hex or base-64 encoded strings
+	 */
+	function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
+	function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
+	function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
+	function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
+	function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
+	function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
+	
+	/*
+	 * Perform a simple self-test to see if the VM is working
+	 */
+	function md5_vm_test()
+	{
+	  return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
+	}
+	
+	/*
+	 * Calculate the MD5 of an array of little-endian words, and a bit length
+	 */
+	function core_md5(x, len)
+	{
+	  /* append padding */
+	  x[len >> 5] |= 0x80 << ((len) % 32);
+	  x[(((len + 64) >>> 9) << 4) + 14] = len;
+	
+	  var a =  1732584193;
+	  var b = -271733879;
+	  var c = -1732584194;
+	  var d =  271733878;
+	
+	  for(var i = 0; i < x.length; i += 16)
+	  {
+	    var olda = a;
+	    var oldb = b;
+	    var oldc = c;
+	    var oldd = d;
+	
+	    a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
+	    d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
+	    c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
+	    b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
+	    a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
+	    d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
+	    c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
+	    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
+	    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
+	    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
+	    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
+	    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
+	    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
+	    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
+	    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
+	    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
+	
+	    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
+	    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
+	    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
+	    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
+	    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
+	    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
+	    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
+	    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
+	    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
+	    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
+	    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
+	    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
+	    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
+	    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
+	    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
+	    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
+	
+	    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
+	    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
+	    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
+	    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
+	    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
+	    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
+	    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
+	    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
+	    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
+	    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
+	    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
+	    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
+	    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
+	    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
+	    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
+	    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
+	
+	    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
+	    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
+	    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
+	    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
+	    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
+	    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
+	    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
+	    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
+	    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
+	    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
+	    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
+	    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
+	    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
+	    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
+	    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
+	    b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
+	
+	    a = safe_add(a, olda);
+	    b = safe_add(b, oldb);
+	    c = safe_add(c, oldc);
+	    d = safe_add(d, oldd);
+	  }
+	  return Array(a, b, c, d);
+	
+	}
+	
+	/*
+	 * These functions implement the four basic operations the algorithm uses.
+	 */
+	function md5_cmn(q, a, b, x, s, t)
+	{
+	  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
+	}
+	function md5_ff(a, b, c, d, x, s, t)
+	{
+	  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
+	}
+	function md5_gg(a, b, c, d, x, s, t)
+	{
+	  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
+	}
+	function md5_hh(a, b, c, d, x, s, t)
+	{
+	  return md5_cmn(b ^ c ^ d, a, b, x, s, t);
+	}
+	function md5_ii(a, b, c, d, x, s, t)
+	{
+	  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
+	}
+	
+	/*
+	 * Calculate the HMAC-MD5, of a key and some data
+	 */
+	function core_hmac_md5(key, data)
+	{
+	  var bkey = str2binl(key);
+	  if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
+	
+	  var ipad = Array(16), opad = Array(16);
+	  for(var i = 0; i < 16; i++)
+	  {
+	    ipad[i] = bkey[i] ^ 0x36363636;
+	    opad[i] = bkey[i] ^ 0x5C5C5C5C;
+	  }
+	
+	  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
+	  return core_md5(opad.concat(hash), 512 + 128);
+	}
+	
+	/*
+	 * Add integers, wrapping at 2^32. This uses 16-bit operations internally
+	 * to work around bugs in some JS interpreters.
+	 */
+	function safe_add(x, y)
+	{
+	  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+	  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+	  return (msw << 16) | (lsw & 0xFFFF);
+	}
+	
+	/*
+	 * Bitwise rotate a 32-bit number to the left.
+	 */
+	function bit_rol(num, cnt)
+	{
+	  return (num << cnt) | (num >>> (32 - cnt));
+	}
+	
+	/*
+	 * Convert a string to an array of little-endian words
+	 * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
+	 */
+	function str2binl(str)
+	{
+	  var bin = Array();
+	  var mask = (1 << chrsz) - 1;
+	  for(var i = 0; i < str.length * chrsz; i += chrsz)
+	    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
+	  return bin;
+	}
+	
+	/*
+	 * Convert an array of little-endian words to a string
+	 */
+	function binl2str(bin)
+	{
+	  var str = "";
+	  var mask = (1 << chrsz) - 1;
+	  for(var i = 0; i < bin.length * 32; i += chrsz)
+	    str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
+	  return str;
+	}
+	
+	/*
+	 * Convert an array of little-endian words to a hex string.
+	 */
+	function binl2hex(binarray)
+	{
+	  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
+	  var str = "";
+	  for(var i = 0; i < binarray.length * 4; i++)
+	  {
+	    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
+	           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
+	  }
+	  return str;
+	}
+	
+	/*
+	 * Convert an array of little-endian words to a base-64 string
+	 */
+	function binl2b64(binarray)
+	{
+	  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+	  var str = "";
+	  for(var i = 0; i < binarray.length * 4; i += 3)
+	  {
+	    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)
+	                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
+	                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
+	    for(var j = 0; j < 4; j++)
+	    {
+	      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
+	      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
+	    }
+	  }
+	  return str;
+	}
 
     module.exports = {
         init: init,

+ 2 - 2
lib/dever/components/seat.vue

@@ -171,7 +171,7 @@
 			
 			initData: function(hall) {
 				var self = this;
-				this.Dever.get(this, 'app/collection/?l=user.seat', {code:this.Dever.config.code,noloading:1, content_id : this.type_id, hall : hall}, function(t) {
+				this.Dever.get(this, 'app/user/?l=api.seat', {code:this.Dever.config.code,noloading:1, content_id : this.type_id, hall : hall}, function(t) {
 					let arr = t.seat
 					//数据说明:SeatCode座位编号,RowNum-行号,ColumnNum-纵号,YCoord-Y坐标,XCoord-X坐标,Status-状态
 					let row = 0
@@ -356,7 +356,7 @@
 				seat = seat.join(',');
 				var self = this;
 				this.Dever.confirm('确定购买座位吗?公测期间免费~', function() {
-					self.Dever.post('app/collection/?l=user.seatSave', {code:self.Dever.config.code, seat:seat, content_id : self.type_id}, function(t) {
+					self.Dever.post('app/user/?l=api.seatSave', {code:self.Dever.config.code, seat:seat, content_id : self.type_id}, function(t) {
 						self.Dever.alert('选座成功,您可以点击头像发布内容~');
 						self.initData(self.fetch.hall);
 					});

+ 5 - 5
pages/dream/func/my.vue

@@ -149,7 +149,7 @@ export default {
 				uni.stopPullDownRefresh();
 			}
 			var self = this;
-			this.Dever.get(this, 'app/collection/?l=user.get', {code:this.Dever.config.code, noloading:1});
+			this.Dever.get(this, 'app/user/?l=api.get', {code:this.Dever.config.code, noloading:1});
 			this.handleTab(this.activeTab);
 		},
 		getInfo : function(t) {
@@ -157,10 +157,10 @@ export default {
 			this.handleTab(this.activeTab, 2);
 		},
 		getOrder : function(page) {
-			this.Dever.page([page,'order'], this, 'app/collection/?l=user.order', {code:this.Dever.config.code, noloading:1});
+			this.Dever.page([page,'order'], this, 'app/user/?l=api.goods_order', {code:this.Dever.config.code, noloading:1});
 		},
 		getCommunity : function(page) {
-			this.Dever.page([page,'chat'], this, 'app/collection/?l=user.community', {code:this.Dever.config.code, noloading:1});
+			this.Dever.page([page,'chat'], this, 'app/user/?l=api.community', {code:this.Dever.config.code, noloading:1});
 		},
 		goChat : function(uid, username) {
 			this.Dever.location('chat/user?uid=' + uid + '&code=' + this.Dever.config.code + '&title=' + username);
@@ -186,7 +186,7 @@ export default {
 			var checkRes = graceChecker.check(formData, rule);
 			if (checkRes) {
 				formData.code = this.Dever.config.code;
-				this.Dever.post('app/collection/?l=user.up', formData, function(t) {
+				this.Dever.post('app/user/?l=api.up', formData, function(t) {
 					self.Dever.alert('保存成功');
 				});
 			} else {
@@ -199,7 +199,7 @@ export default {
 			
 			this.Dever.uploadFile(e.path, 'avatar', 1, function(type, file) {
 				self.fetch.user.avatar = file;
-				self.Dever.post('app/collection/?l=user.upAvatar', {avatar:file, noloading:1});
+				self.Dever.post('app/user/?l=api.upAvatar', {avatar:file, noloading:1});
 			});
 		},
 		avatarSet : function(index) {

+ 19 - 7
pages/dream/func/share.vue

@@ -103,6 +103,7 @@
 import { mapState, mapMutations } from 'vuex';
 let settingWritePhotosAlbum = false;
 import copyText from "@/lib/clipboard.thorui.js"; 
+import { pathToBase64, base64ToPath } from "@/lib/dever/components/base64.js"; 
 export default {
 	props: {
 		content_id : {
@@ -348,14 +349,13 @@ export default {
 					height: 673,
 					quality : 1,
 					success: (res) => {
-						if(this.posterImgs[this.swiperIndex]){
-							this.posterImgs[this.swiperIndex].temporary = res.tempFilePath;
-						}else{
-							this.posterImgs[this.swiperIndex] = {
-								temporary: res.tempFilePath
-							};
+						if (res.tempFilePath.indexOf('base64')) {
+							base64ToPath(res.tempFilePath).then(path => {
+								this.finish(path, resolve);
+							});
+						} else {
+							this.finish(res.tempFilePath, resolve);
 						}
-						resolve(res.tempFilePath);
 					},
 					fail: () => {
 						uni.hideLoading();
@@ -365,6 +365,18 @@ export default {
 			});
 		},
 		
+		// 完成绘制
+		finish : function(path, resolve) {
+			if(this.posterImgs[this.swiperIndex]){
+				this.posterImgs[this.swiperIndex].temporary = path;
+			}else{
+				this.posterImgs[this.swiperIndex] = {
+					temporary: path
+				};
+			}
+			resolve(path);
+		},
+		
 		// 保存图片
 		async showPoster() {
 			let imgUrl = "";

+ 5 - 1
pages/dream/func/times.vue

@@ -73,7 +73,11 @@ export default {
 			var self = this;
 			this.Dever.alert('正在进入' + times.name);
 			// 要拿到最新的page_id
-			var day = this.fetch.user_times[times.id].day;
+			if (this.fetch.user_times[times.id]) {
+				var day = this.fetch.user_times[times.id].day;
+			} else {
+				var day = '正点';
+			}
 			if (day == '正点') {
 				day = '';
 			}

+ 1 - 1
pages/dream/view.vue

@@ -165,7 +165,7 @@ export default{
 		},
 		record : function() {
 			var content_id = this.fetch.items[this.swiper.index].id;
-			this.Dever.post('app/collection/?l=api.record', {noloading:1, code:this.Dever.config.code, index: this.swiper.index, content_id: content_id});
+			this.Dever.post('app/user/?l=api.record', {noloading:1, code:this.Dever.config.code, index: this.swiper.index, content_id: content_id});
 		},
 		
 		controlHandle : function() {

+ 2 - 2
pages/dream/view/dialogue.vue

@@ -64,10 +64,10 @@ export default {
 					var audio = uni.createInnerAudioContext()
 					audio.src = v.audio;
 					audio.onPause((res) => {
-						//this.playing[aid] = '';
+						this.playing[aid] = '';
 					})
 					audio.onEnded((res) => {
-						//this.playing[aid] = '';
+						this.stopAudio('none3', aid);
 					})
 					this.audio[aid] = audio;
 					this.playing[aid] = '';

+ 1 - 1
pages/dream/view/product.vue

@@ -231,7 +231,7 @@ export default {
 			console.log(data);
 			//如果想关闭属性
 			//this.closeAttr();
-			this.Dever.post('app/collection/?l=pay.product', data, function(t) {
+			this.Dever.post('app/user/?l=pay.product', data, function(t) {
 				console.info(t);
 			});
 		},