utils-uniapp 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/fs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("../index-e3f8a8ef.js"),I=require("../http/index.js");require("../object/index.js");const x=I.createDownloadFile(),u=uni.getFileSystemManager(),P=["ascii","base64","binary","hex","ucs2","ucs-2","utf16le","utf-16le","utf-8","utf8","latin1"];function A(){return`data:image/${arguments.length>0&&arguments[0]!==void 0?arguments[0]:"png"};base64,`}function y(r){let{filePath:n,encoding:t,sync:e,opts:i={}}=r;if(!P.includes(t))throw"编码不符合";if(e===!0)try{return u.readFileSync(n,t,i.position,i.length)}catch(a){return console.error(a),null}return new Promise(function(a,s){u.readFile({filePath:n,encoding:t,...i,success(o){a(o)},fail:s})})}y.sync=function(r){return y({...r,sync:!0})};function g(r){let{filePath:n,data:t,encoding:e,sync:i,opts:a}=r;if(e=e||"binary",!P.includes(e))throw"编码不符合";if(i===!0)try{return u.writeFileSync(n,t,e),{tempFilePath:n,unlink:()=>u.unlinkSync(n)}}catch(s){return console.error(s),null}return new Promise(function(s,o){u.writeFile({filePath:n,encoding:e,data:t,...a,success(f){if(f.errMsg!=="writeFile:ok")return o(new Error(f.errMsg));s({tempFilePath:n,unlink:()=>u.unlinkSync(n)})},fail:o})})}g.sync=function(r){return g({...r,sync:!0})};function M(r){let{arraybuffer:n,fileType:t,method:e,canvasId:i,width:a,height:s,ctx:o,sync:f}=r;if(typeof n!="object"||n.toString().slice(8,-1)!=="ArrayBuffer")return reject(new Error("ArrayBuffer must be a ArrayBuffer"));if(e=e||"canvas",t=t||"png",e==="fs"){const d=wx.env.USER_DATA_PATH+"/"+Date.now()+"."+t;return g({filePath:d,data:n,sync:f})}if(e==="canvas")return new Promise(function(d,l){if(!["canvas","fs"].includes(e))return l(new Error("method must be canvas | fs"));const F=`data:image/${t};base64,${uni.arrayBufferToBase64(n)}`;if(typeof i!="string")return l(new Error("canvasId must be a string [#id]"));const w=uni.createSelectorQuery();o&&w.in(o),w.select(i).fields({node:!0,size:!0}).exec(function(){var b=v._asyncToGenerator(function*(c){if(c=c[0],!c)return l(new Error("No canvas nodes were obtained"));a=a||c.width,s=s||c.height;const m=c.node;if(!m)return l(new Error("No canvas instances were obtained"));const p=m.getContext("2d"),h=m.createImage();yield new Promise(T=>{h.onload=T,h.src=F}).catch(l),p.clearRect(0,0,a,s),p.drawImage(h,0,0,a,s),uni.canvasToTempFilePath({canvas:m,width:a,height:s,fileType:t,success:d,fail:l})});return function(c){return b.apply(this,arguments)}}())})}const S=uni.canIUse("chooseMedia");function B(r){return r={count:1,...r},new Promise((n,t)=>{S?uni.chooseMedia({...r,mediaType:"image",sizeType:["original","compressed"],success(e){if(e.errMsg=="chooseMedia:ok"&&e.tempFiles[0]){const i=e.tempFiles.map(a=>a.tempFilePath);n(i)}else t(e.errMsg)},fail(e){t(e)}}):uni.chooseImage({count,success(e){n(e.tempFilePaths)},fail(e){t(e)}})})}function E(r){return new Promise((n,t)=>{x(r).then(e=>{uni.saveImageToPhotosAlbum({filePath:e.tempFilePath,success:i=>{uni.showToast({icon:"none",title:"保存成功"}),n(i)},fail:i=>{t(i)}})})})}exports.$fs=u;exports.chooseImg=B;exports.getArraybufferTempPath=M;exports.getImgBase64Prefix=A;exports.readFile=y;exports.saveImageToPhotosAlbum=E;exports.writeFile=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("../index-e3f8a8ef.js"),I=require("../http/index.js");require("../object/index.js");const x=I.createDownloadFile(),u=uni.getFileSystemManager(),P=["ascii","base64","binary","hex","ucs2","ucs-2","utf16le","utf-16le","utf-8","utf8","latin1"];function A(){return`data:image/${arguments.length>0&&arguments[0]!==void 0?arguments[0]:"png"};base64,`}function y(r){let{filePath:n,encoding:t,sync:e,opts:i={}}=r;if(!P.includes(t))throw"编码不符合";if(e===!0)try{return u.readFileSync(n,t,i.position,i.length)}catch(a){return console.error(a),null}return new Promise(function(a,s){u.readFile({filePath:n,encoding:t,...i,success(o){a(o)},fail:s})})}y.sync=function(r){return y({...r,sync:!0})};function g(r){let{filePath:n,data:t,encoding:e,sync:i,opts:a}=r;if(e=e||"binary",!P.includes(e))throw"编码不符合";if(i===!0)try{return u.writeFileSync(n,t,e),{tempFilePath:n,unlink:()=>u.unlinkSync(n)}}catch(s){return console.error(s),null}return new Promise(function(s,o){u.writeFile({filePath:n,encoding:e,data:t,...a,success(f){if(f.errMsg!=="writeFile:ok")return o(new Error(f.errMsg));s({tempFilePath:n,unlink:()=>u.unlinkSync(n)})},fail:o})})}g.sync=function(r){return g({...r,sync:!0})};function M(r){let{arraybuffer:n,fileType:t,method:e,canvasId:i,width:a,height:s,ctx:o,sync:f}=r;if(typeof n!="object"||n.toString().slice(8,-1)!=="ArrayBuffer")return reject(new Error("ArrayBuffer must be a ArrayBuffer"));if(e=e||"canvas",t=t||"png",e==="fs"){const d=wx.env.USER_DATA_PATH+"/"+Date.now()+"."+t;return g({filePath:d,data:n,sync:f})}if(e==="canvas")return new Promise(function(d,l){if(!["canvas","fs"].includes(e))return l(new Error("method must be canvas | fs"));const F=`data:image/${t};base64,${uni.arrayBufferToBase64(n)}`;if(typeof i!="string")return l(new Error("canvasId must be a string [#id]"));const w=uni.createSelectorQuery();o&&w.in(o),w.select(i).fields({node:!0,size:!0}).exec(function(){var b=v._asyncToGenerator(function*(c){if(c=c[0],!c)return l(new Error("No canvas nodes were obtained"));a=a||c.width,s=s||c.height;const m=c.node;if(!m)return l(new Error("No canvas instances were obtained"));const p=m.getContext("2d"),h=m.createImage();yield new Promise(T=>{h.onload=T,h.src=F}).catch(l),p.clearRect(0,0,a,s),p.drawImage(h,0,0,a,s),uni.canvasToTempFilePath({canvas:m,width:a,height:s,fileType:t,success:d,fail:l})});return function(c){return b.apply(this,arguments)}}())})}const S=uni.canIUse("chooseMedia");function B(r){return r={count:1,...r},new Promise((n,t)=>{S?uni.chooseMedia({...r,mediaType:"image",sizeType:["original","compressed"],success(e){if(e.errMsg=="chooseMedia:ok"&&e.tempFiles[0]){const i=e.tempFiles.map(a=>a.tempFilePath);n(i)}else t(e.errMsg)},fail(e){t(e)}}):uni.chooseImage({count:r.count,success(e){n(e.tempFilePaths)},fail(e){t(e)}})})}function E(r){return new Promise((n,t)=>{x(r).then(e=>{uni.saveImageToPhotosAlbum({filePath:e.tempFilePath,success:i=>{uni.showToast({icon:"none",title:"保存成功"}),n(i)},fail:i=>{t(i)}})})})}exports.$fs=u;exports.chooseImg=B;exports.getArraybufferTempPath=M;exports.getImgBase64Prefix=A;exports.readFile=y;exports.saveImageToPhotosAlbum=E;exports.writeFile=g;
@@ -1,35 +1,176 @@
1
- /** 定位结果(uni.getLocation success) */
2
- export interface LocationResult {
3
- latitude: number;
4
- longitude: number;
5
- accuracy: number;
6
- altitude: number;
7
- verticalAccuracy: number;
8
- horizontalAccuracy: number;
9
- errMsg: string;
10
- [key: string]: any;
1
+ // location.d.ts
2
+
3
+ /**
4
+ * 定位参数(仅包含 uni.getLocation 支持的参数)
5
+ */
6
+ export interface LocationParams {
7
+ /**
8
+ * 是否获取高度信息
9
+ * @default true
10
+ */
11
+ altitude?: boolean;
12
+ /**
13
+ * 坐标系类型
14
+ * @default 'gcj02'
15
+ */
16
+ type?: 'wgs84' | 'gcj02';
17
+ /**
18
+ * 超时时间(毫秒)
19
+ */
20
+ timeout?: number;
21
+ /**
22
+ * 是否启用高精度定位
23
+ */
24
+ isHighAccuracy?: boolean;
25
+ /**
26
+ * 高精度定位超时时间(毫秒)
27
+ */
28
+ highAccuracyExpireTime?: number;
11
29
  }
12
30
 
13
31
  /**
14
- * 获取当前定位(gcj02)
15
- * @param { boolean } check 定位失败时是否检查并跳转错误页,默认false
32
+ * 错误页面配置
16
33
  */
17
- export function getLocation(check?: boolean): Promise<LocationResult>;
34
+ export interface ErrorPageConfig {
35
+ /**
36
+ * 错误页面路径
37
+ * @default '/packageOther/pages/errorPage/errorPage'
38
+ */
39
+ path?: string;
40
+ /**
41
+ * 错误提示信息
42
+ * @default '定位失败'
43
+ */
44
+ message?: string;
45
+ /**
46
+ * 错误类型
47
+ * @default 2
48
+ */
49
+ type?: number;
50
+ /**
51
+ * 是否启用错误页面跳转
52
+ * @default true
53
+ */
54
+ enabled?: boolean;
55
+ }
18
56
 
19
- /** 打开地图查看位置参数 */
20
- export interface OpenLocationOptions {
21
- /** 纬度 */
22
- latitude: string | number;
23
- /** 经度 */
24
- longitude: string | number;
25
- /** 位置名 */
26
- name?: string;
27
- /** 详细地址 */
57
+ /**
58
+ * getLocation 函数配置选项
59
+ */
60
+ export interface GetLocationOptions {
61
+ /**
62
+ * 是否启用错误处理(包括网络检测和错误页面跳转)
63
+ * @default false
64
+ */
65
+ check?: boolean;
66
+ /**
67
+ * 定位参数
68
+ */
69
+ locationParams?: LocationParams;
70
+ /**
71
+ * 错误页面配置
72
+ */
73
+ errorPage?: Partial<ErrorPageConfig>;
74
+ /**
75
+ * 定位失败回调(在错误页面跳转之前执行)
76
+ */
77
+ onLocationFail?: (err: { errMsg: string; code?: number }) => void;
78
+ /**
79
+ * 网络检测失败回调(仅在 check 为 true 时生效)
80
+ */
81
+ onNetworkFail?: (err: { errMsg: string; code?: number }) => void;
82
+ }
83
+
84
+ /**
85
+ * 定位结果
86
+ */
87
+ export interface LocationResult {
88
+ /**
89
+ * 纬度
90
+ */
91
+ latitude: number;
92
+ /**
93
+ * 经度
94
+ */
95
+ longitude: number;
96
+ /**
97
+ * 高度(如果 altitude 为 true 且有高度信息)
98
+ */
99
+ altitude?: number;
100
+ /**
101
+ * 水平精度(米)
102
+ */
103
+ accuracy?: number;
104
+ /**
105
+ * 垂直精度(米)
106
+ */
107
+ verticalAccuracy?: number;
108
+ /**
109
+ * 水平精度(米,Android 特有)
110
+ */
111
+ horizontalAccuracy?: number;
112
+ /**
113
+ * 地址信息(部分平台支持)
114
+ */
28
115
  address?: string;
116
+ /**
117
+ * 地址信息(部分平台支持)
118
+ */
119
+ addr?: string;
29
120
  }
30
121
 
31
122
  /**
32
- * 使用微信内置地图查看位置(失败时toast错误信息)
33
- * @param { OpenLocationOptions } opts 位置参数
123
+ * 获取当前位置
124
+ *
125
+ * @param options - 配置参数,可以是布尔值(兼容旧方式)或配置对象
126
+ * @param options.check - 是否启用错误处理
127
+ * @param options.locationParams - 定位参数(altitude, type等)
128
+ * @param options.errorPage - 错误页面配置
129
+ * @param options.onLocationFail - 定位失败回调
130
+ * @param options.onNetworkFail - 网络检测失败回调
131
+ * @returns Promise 返回定位结果
132
+ *
133
+ * @example
134
+ * // 基本用法
135
+ * const location = await getLocation();
136
+ * console.log(location.latitude, location.longitude);
137
+ *
138
+ * @example
139
+ * // 启用错误处理
140
+ * const location = await getLocation({
141
+ * check: true,
142
+ * locationParams: { altitude: false, type: 'wgs84' },
143
+ * errorPage: { message: '请检查定位权限', type: 1 },
144
+ * onLocationFail: (err) => console.warn('定位失败', err)
145
+ * });
146
+ *
147
+ * @example
148
+ * // 兼容旧方式
149
+ * const location = await getLocation(true);
34
150
  */
35
- export function openLocation(opts: OpenLocationOptions): Promise<any>;
151
+ export function getLocation(options?: boolean | GetLocationOptions): Promise<LocationResult>;
152
+
153
+ /**
154
+ * 打开地图查看位置
155
+ *
156
+ * @param params - 位置参数
157
+ * @param params.latitude - 纬度
158
+ * @param params.longitude - 经度
159
+ * @param params.name - 位置名称(可选)
160
+ * @param params.address - 详细地址(可选)
161
+ * @returns Promise 无返回值
162
+ *
163
+ * @example
164
+ * await openLocation({
165
+ * latitude: 39.90886,
166
+ * longitude: 116.39739,
167
+ * name: '天安门',
168
+ * address: '北京市东城区'
169
+ * });
170
+ */
171
+ export function openLocation(params: {
172
+ latitude: number | string;
173
+ longitude: number | string;
174
+ name?: string;
175
+ address?: string;
176
+ }): Promise<void>;
@@ -90,6 +90,31 @@ export type SearchParams = Record<string, string | string[]>;
90
90
  */
91
91
  export function getSearchParams(str: string): SearchParams;
92
92
 
93
+ /**
94
+ * 生成随机标识串(时间戳与随机数拼接)
95
+ * @param { number } random 附加随机数,默认0
96
+ * @param { string } sign 连接符,默认'-'
97
+ */
98
+ export function getRandom(random?: number, sign?: string): string;
99
+
100
+ /**
101
+ * 字符串转帕斯卡命名(按'-'分段首字母大写)
102
+ * @param { string } str 目标字符串
103
+ */
104
+ export function getPascalCase(str: string): string;
105
+
106
+ /**
107
+ * 比较版本号
108
+ * @param { string } v1 版本一
109
+ * @param { string } v2 版本二
110
+ */
111
+ export function compareVersion(v1: string, v2: string): 1 | -1 | 0;
112
+
113
+ /**
114
+ * 生成随机十六进制颜色值(#开头6位)
115
+ */
116
+ export function randomColor(): string;
117
+
93
118
  /**
94
119
  * 生成随机字符串
95
120
  * @param { number } len 长度,默认8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utils-uniapp",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "aubyn's utils for uniapp",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",