@mybricks/to-code-taro 1.0.3 → 1.0.5

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.
Files changed (106) hide show
  1. package/dist/cjs/core/comlib/_AesEncode.js +115 -0
  2. package/dist/cjs/core/comlib/_BackTo.js +80 -0
  3. package/dist/cjs/core/comlib/_CallPhone.js +58 -0
  4. package/dist/cjs/core/comlib/_ChooseFile.js +103 -0
  5. package/dist/cjs/core/comlib/_ChooseMedia.js +70 -0
  6. package/dist/cjs/core/comlib/_Connector.js +92 -0
  7. package/dist/cjs/core/comlib/_ConnectorGlobalHeaders.js +79 -0
  8. package/dist/cjs/core/comlib/_Format.js +123 -0
  9. package/dist/cjs/core/comlib/_GetLocation.js +60 -0
  10. package/dist/cjs/core/comlib/_GetStorage.js +68 -0
  11. package/dist/cjs/core/comlib/_GetSystemInfo.js +62 -0
  12. package/dist/cjs/core/comlib/_OpenCamera.js +73 -0
  13. package/dist/cjs/core/comlib/_OpenPetalMap.js +49 -0
  14. package/dist/cjs/core/comlib/_OpenUrl.js +62 -0
  15. package/dist/cjs/core/comlib/_RemoveStorage.js +68 -0
  16. package/dist/cjs/core/comlib/_Router.js +100 -0
  17. package/dist/cjs/core/comlib/_ScanQrcode.js +9 -10
  18. package/dist/cjs/core/comlib/_SetStorage.js +10 -19
  19. package/dist/cjs/core/comlib/_Share.js +58 -0
  20. package/dist/cjs/core/comlib/_ShowToast.js +23 -50
  21. package/dist/cjs/core/comlib/_TextToSpeech.js +120 -0
  22. package/dist/cjs/core/comlib/_TimerDebounce.js +72 -0
  23. package/dist/cjs/core/comlib/_TimerDelay.js +63 -0
  24. package/dist/cjs/core/comlib/_TimerThrottle.js +75 -0
  25. package/dist/cjs/core/comlib/_Vibrate.js +60 -0
  26. package/dist/cjs/core/comlib/index.js +68 -2
  27. package/dist/cjs/core/utils/ComContext.js +3 -3
  28. package/dist/cjs/core/utils/PopupRenderer.js +63 -0
  29. package/dist/cjs/core/utils/hooks.js +16 -14
  30. package/dist/cjs/core/utils/index.js +15 -3
  31. package/dist/cjs/core/utils/{page.js → pageRouter.js} +28 -14
  32. package/dist/cjs/core/utils/popupRouter.js +98 -0
  33. package/dist/cjs/core/utils/useContext.js +9 -1
  34. package/dist/cjs/core/utils/with.js +37 -13
  35. package/dist/cjs/generate/generateTaroProjectJson.js +30 -0
  36. package/dist/cjs/handleSlot.d.ts +2 -0
  37. package/dist/cjs/handleSlot.js +19 -5
  38. package/dist/cjs/processors/processComEvents.js +47 -5
  39. package/dist/cjs/processors/processScene.js +9 -5
  40. package/dist/cjs/processors/processSceneLogic.js +9 -5
  41. package/dist/cjs/shims-taro.d.ts +20 -0
  42. package/dist/cjs/taro-template.json +493 -351
  43. package/dist/cjs/toCodeTaro.d.ts +1 -1
  44. package/dist/cjs/toCodeTaro.js +13 -1
  45. package/dist/cjs/utils/builder/buildResult.d.ts +1 -0
  46. package/dist/cjs/utils/builder/buildResult.js +26 -0
  47. package/dist/cjs/utils/config/handlePageConfig.d.ts +2 -1
  48. package/dist/cjs/utils/config/handlePageConfig.js +3 -2
  49. package/dist/cjs/utils/context/createEventQueries.js +1 -1
  50. package/dist/cjs/utils/logic/handleProcess.js +26 -5
  51. package/dist/cjs/utils/templates/scene.d.ts +3 -1
  52. package/dist/cjs/utils/templates/scene.js +16 -4
  53. package/dist/esm/core/comlib/_AesEncode.js +85 -0
  54. package/dist/esm/core/comlib/_BackTo.js +66 -0
  55. package/dist/esm/core/comlib/_CallPhone.js +30 -0
  56. package/dist/esm/core/comlib/_ChooseFile.js +81 -0
  57. package/dist/esm/core/comlib/_ChooseMedia.js +38 -0
  58. package/dist/esm/core/comlib/_Connector.js +60 -0
  59. package/dist/esm/core/comlib/_ConnectorGlobalHeaders.js +56 -0
  60. package/dist/esm/core/comlib/_Format.js +102 -0
  61. package/dist/esm/core/comlib/_GetLocation.js +26 -0
  62. package/dist/esm/core/comlib/_GetStorage.js +44 -0
  63. package/dist/esm/core/comlib/_GetSystemInfo.js +32 -0
  64. package/dist/esm/core/comlib/_OpenCamera.js +44 -0
  65. package/dist/esm/core/comlib/_OpenPetalMap.js +28 -0
  66. package/dist/esm/core/comlib/_OpenUrl.js +36 -0
  67. package/dist/esm/core/comlib/_RemoveStorage.js +42 -0
  68. package/dist/esm/core/comlib/_Router.js +113 -0
  69. package/dist/esm/core/comlib/_ScanQrcode.js +10 -11
  70. package/dist/esm/core/comlib/_SetStorage.js +13 -25
  71. package/dist/esm/core/comlib/_Share.js +28 -0
  72. package/dist/esm/core/comlib/_ShowToast.js +32 -55
  73. package/dist/esm/core/comlib/_TextToSpeech.js +117 -0
  74. package/dist/esm/core/comlib/_TimerDebounce.js +66 -0
  75. package/dist/esm/core/comlib/_TimerDelay.js +47 -0
  76. package/dist/esm/core/comlib/_TimerThrottle.js +69 -0
  77. package/dist/esm/core/comlib/_Vibrate.js +34 -0
  78. package/dist/esm/core/comlib/index.js +35 -1
  79. package/dist/esm/core/utils/ComContext.js +1 -1
  80. package/dist/esm/core/utils/PopupRenderer.js +27 -0
  81. package/dist/esm/core/utils/hooks.js +24 -16
  82. package/dist/esm/core/utils/index.js +3 -1
  83. package/dist/esm/core/utils/pageRouter.js +69 -0
  84. package/dist/esm/core/utils/popupRouter.js +116 -0
  85. package/dist/esm/core/utils/useContext.js +14 -2
  86. package/dist/esm/core/utils/with.js +62 -19
  87. package/dist/esm/generate/generateTaroProjectJson.js +35 -1
  88. package/dist/esm/handleSlot.d.ts +2 -0
  89. package/dist/esm/handleSlot.js +20 -4
  90. package/dist/esm/processors/processComEvents.js +62 -5
  91. package/dist/esm/processors/processScene.js +11 -3
  92. package/dist/esm/processors/processSceneLogic.js +15 -5
  93. package/dist/esm/shims-taro.d.ts +20 -0
  94. package/dist/esm/taro-template.json +493 -351
  95. package/dist/esm/toCodeTaro.d.ts +1 -1
  96. package/dist/esm/toCodeTaro.js +16 -1
  97. package/dist/esm/utils/builder/buildResult.d.ts +1 -0
  98. package/dist/esm/utils/builder/buildResult.js +21 -0
  99. package/dist/esm/utils/config/handlePageConfig.d.ts +2 -1
  100. package/dist/esm/utils/config/handlePageConfig.js +5 -1
  101. package/dist/esm/utils/context/createEventQueries.js +2 -1
  102. package/dist/esm/utils/logic/handleProcess.js +31 -4
  103. package/dist/esm/utils/templates/scene.d.ts +3 -1
  104. package/dist/esm/utils/templates/scene.js +13 -5
  105. package/package.json +4 -2
  106. package/dist/esm/core/utils/page.js +0 -50
@@ -0,0 +1,102 @@
1
+ export default (function (context) {
2
+ var _inputs$format;
3
+ var data = context.data;
4
+ var inputs = context.inputs;
5
+ var outputs = context.outputs;
6
+ (_inputs$format = inputs.format) === null || _inputs$format === void 0 || _inputs$format.call(inputs, function (val) {
7
+ try {
8
+ var input = (val === null || val === void 0 ? void 0 : val.input) !== undefined ? val.input : data.input;
9
+ var format = (val === null || val === void 0 ? void 0 : val.format) || data.format || 'string';
10
+ var options = (val === null || val === void 0 ? void 0 : val.options) || data.options || {};
11
+ if (input === undefined || input === null) {
12
+ outputs.onFail('输入值不能为空');
13
+ return;
14
+ }
15
+ var result;
16
+ switch (format) {
17
+ case 'json':
18
+ if (typeof input === 'string') {
19
+ try {
20
+ result = JSON.parse(input);
21
+ } catch (error) {
22
+ outputs.onFail('JSON解析失败');
23
+ return;
24
+ }
25
+ } else {
26
+ result = JSON.stringify(input, null, 2);
27
+ }
28
+ break;
29
+ case 'string':
30
+ result = String(input);
31
+ break;
32
+ case 'number':
33
+ var num = Number(input);
34
+ if (isNaN(num)) {
35
+ outputs.onFail('无法转换为有效数字');
36
+ return;
37
+ }
38
+ result = options.precision !== undefined ? Number(num.toFixed(options.precision)) : num;
39
+ break;
40
+ case 'boolean':
41
+ result = Boolean(input);
42
+ break;
43
+ case 'date':
44
+ var date = new Date(input);
45
+ if (isNaN(date.getTime())) {
46
+ outputs.onFail('无效的日期格式');
47
+ return;
48
+ }
49
+ if (options.dateFormat) {
50
+ // 简单的日期格式化
51
+ var year = date.getFullYear();
52
+ var month = String(date.getMonth() + 1).padStart(2, '0');
53
+ var day = String(date.getDate()).padStart(2, '0');
54
+ var hours = String(date.getHours()).padStart(2, '0');
55
+ var minutes = String(date.getMinutes()).padStart(2, '0');
56
+ var seconds = String(date.getSeconds()).padStart(2, '0');
57
+ result = options.dateFormat.replace('YYYY', year.toString()).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds);
58
+ } else {
59
+ result = date.toISOString();
60
+ }
61
+ break;
62
+ case 'base64':
63
+ if (typeof input === 'string') {
64
+ try {
65
+ // 尝试解码Base64
66
+ result = decodeURIComponent(escape(atob(input)));
67
+ } catch (_unused) {
68
+ // 如果解码失败,则编码为Base64
69
+ result = btoa(unescape(encodeURIComponent(input)));
70
+ }
71
+ } else {
72
+ outputs.onFail('Base64转换需要字符串输入');
73
+ return;
74
+ }
75
+ break;
76
+ case 'urlEncode':
77
+ result = encodeURIComponent(String(input));
78
+ break;
79
+ case 'urlDecode':
80
+ try {
81
+ result = decodeURIComponent(String(input));
82
+ } catch (error) {
83
+ outputs.onFail('URL解码失败');
84
+ return;
85
+ }
86
+ break;
87
+ default:
88
+ outputs.onFail("\u4E0D\u652F\u6301\u7684\u683C\u5F0F\u7C7B\u578B: ".concat(format));
89
+ return;
90
+ }
91
+ outputs.onSuccess({
92
+ input: input,
93
+ output: result,
94
+ format: format,
95
+ options: options
96
+ });
97
+ } catch (error) {
98
+ console.error('格式化失败:', error);
99
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '格式化失败');
100
+ }
101
+ });
102
+ });
@@ -0,0 +1,26 @@
1
+ import Taro from '@tarojs/taro';
2
+ export default (function (context) {
3
+ var _inputs$getLocation;
4
+ var data = context.data;
5
+ var inputs = context.inputs;
6
+ var outputs = context.outputs;
7
+ (_inputs$getLocation = inputs.getLocation) === null || _inputs$getLocation === void 0 || _inputs$getLocation.call(inputs, function (val) {
8
+ try {
9
+ var locationConfig = {
10
+ type: (val === null || val === void 0 ? void 0 : val.type) || data.type || 'wgs84',
11
+ altitude: (val === null || val === void 0 ? void 0 : val.altitude) !== undefined ? val.altitude : data.altitude || false,
12
+ timeout: (val === null || val === void 0 ? void 0 : val.timeout) || data.timeout || 30000,
13
+ success: function success(res) {
14
+ outputs.onSuccess(res);
15
+ },
16
+ fail: function fail(err) {
17
+ outputs.onFail(err.errMsg || '获取地理位置失败');
18
+ }
19
+ };
20
+ Taro.getLocation(locationConfig);
21
+ } catch (error) {
22
+ console.error('获取地理位置失败:', error);
23
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '获取地理位置失败');
24
+ }
25
+ });
26
+ });
@@ -0,0 +1,44 @@
1
+ import Taro from '@tarojs/taro';
2
+ export default (function (context) {
3
+ var _inputs$getStorage;
4
+ var data = context.data;
5
+ var inputs = context.inputs;
6
+ var outputs = context.outputs;
7
+ (_inputs$getStorage = inputs.getStorage) === null || _inputs$getStorage === void 0 || _inputs$getStorage.call(inputs, function (val) {
8
+ try {
9
+ var key = (val === null || val === void 0 ? void 0 : val.key) || data.key;
10
+ var useSync = (val === null || val === void 0 ? void 0 : val.sync) !== undefined ? val.sync : data.sync || false;
11
+ if (!key) {
12
+ outputs.onFail('存储 key 不能为空');
13
+ return;
14
+ }
15
+ if (useSync) {
16
+ try {
17
+ var _value = Taro.getStorageSync(key);
18
+ outputs.onSuccess({
19
+ key: key,
20
+ value: _value
21
+ });
22
+ } catch (error) {
23
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '读取本地缓存失败');
24
+ }
25
+ } else {
26
+ Taro.getStorage({
27
+ key: key,
28
+ success: function success(res) {
29
+ return outputs.onSuccess({
30
+ key: key,
31
+ value: res.data
32
+ });
33
+ },
34
+ fail: function fail(err) {
35
+ return outputs.onFail(err.errMsg || '读取本地缓存失败');
36
+ }
37
+ });
38
+ }
39
+ } catch (error) {
40
+ console.error('读取本地缓存失败:', error);
41
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '读取本地缓存失败');
42
+ }
43
+ });
44
+ });
@@ -0,0 +1,32 @@
1
+ import Taro from '@tarojs/taro';
2
+ export default (function (context) {
3
+ var _inputs$getSystemInfo;
4
+ var data = context.data;
5
+ var inputs = context.inputs;
6
+ var outputs = context.outputs;
7
+ (_inputs$getSystemInfo = inputs.getSystemInfo) === null || _inputs$getSystemInfo === void 0 || _inputs$getSystemInfo.call(inputs, function (val) {
8
+ try {
9
+ var useSync = (val === null || val === void 0 ? void 0 : val.sync) !== undefined ? val.sync : data.sync || false;
10
+ if (useSync) {
11
+ try {
12
+ var systemInfo = Taro.getSystemInfoSync();
13
+ outputs.onSuccess(systemInfo);
14
+ } catch (error) {
15
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '获取系统信息失败');
16
+ }
17
+ } else {
18
+ Taro.getSystemInfo({
19
+ success: function success(res) {
20
+ return outputs.onSuccess(res);
21
+ },
22
+ fail: function fail(err) {
23
+ return outputs.onFail(err.errMsg || '获取系统信息失败');
24
+ }
25
+ });
26
+ }
27
+ } catch (error) {
28
+ console.error('获取系统信息失败:', error);
29
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '获取系统信息失败');
30
+ }
31
+ });
32
+ });
@@ -0,0 +1,44 @@
1
+ import Taro from '@tarojs/taro';
2
+ export default (function (context) {
3
+ var _inputs$openCamera;
4
+ var data = context.data;
5
+ var inputs = context.inputs;
6
+ var outputs = context.outputs;
7
+ (_inputs$openCamera = inputs.openCamera) === null || _inputs$openCamera === void 0 || _inputs$openCamera.call(inputs, function (val) {
8
+ try {
9
+ var _config = {
10
+ camera: (val === null || val === void 0 ? void 0 : val.camera) || data.camera || 'back',
11
+ flash: (val === null || val === void 0 ? void 0 : val.flash) || data.flash || 'auto',
12
+ quality: (val === null || val === void 0 ? void 0 : val.quality) || data.quality || 'normal'
13
+ };
14
+
15
+ // Taro没有直接的打开相机API,我们可以:
16
+ // 1. 使用chooseImage并设置sourceType为camera
17
+ // 2. 或者提示用户使用系统相机
18
+
19
+ Taro.chooseImage({
20
+ count: 1,
21
+ sourceType: ['camera'],
22
+ success: function success(res) {
23
+ outputs.onSuccess({
24
+ type: 'camera',
25
+ tempFilePath: res.tempFilePaths[0],
26
+ tempFile: res.tempFiles[0],
27
+ config: _config
28
+ });
29
+ },
30
+ fail: function fail(err) {
31
+ var _err$errMsg;
32
+ if ((_err$errMsg = err.errMsg) !== null && _err$errMsg !== void 0 && _err$errMsg.includes('cancel')) {
33
+ outputs.onFail('用户取消拍照');
34
+ } else {
35
+ outputs.onFail(err.errMsg || '打开相机失败');
36
+ }
37
+ }
38
+ });
39
+ } catch (error) {
40
+ console.error('打开相机失败:', error);
41
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '打开相机失败');
42
+ }
43
+ });
44
+ });
@@ -0,0 +1,28 @@
1
+ export default (function (context) {
2
+ var _inputs$openMap;
3
+ var data = context.data;
4
+ var inputs = context.inputs;
5
+ var outputs = context.outputs;
6
+ (_inputs$openMap = inputs.openMap) === null || _inputs$openMap === void 0 || _inputs$openMap.call(inputs, function (val) {
7
+ try {
8
+ var _config = {
9
+ latitude: (val === null || val === void 0 ? void 0 : val.latitude) || data.latitude || 39.9093,
10
+ longitude: (val === null || val === void 0 ? void 0 : val.longitude) || data.longitude || 116.3974,
11
+ scale: (val === null || val === void 0 ? void 0 : val.scale) || data.scale || 16,
12
+ markers: (val === null || val === void 0 ? void 0 : val.markers) || data.markers || [],
13
+ showLocation: (val === null || val === void 0 ? void 0 : val.showLocation) !== undefined ? val.showLocation : data.showLocation || true
14
+ };
15
+
16
+ // 小程序环境下,使用Taro的地图组件
17
+ // 这里可以导航到地图页面或直接显示地图
18
+ outputs.onSuccess({
19
+ type: 'map',
20
+ config: _config,
21
+ message: '地图配置已准备就绪,请在页面中使用Map组件显示'
22
+ });
23
+ } catch (error) {
24
+ console.error('打开地图失败:', error);
25
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '打开地图失败');
26
+ }
27
+ });
28
+ });
@@ -0,0 +1,36 @@
1
+ import Taro from '@tarojs/taro';
2
+ export default (function (context) {
3
+ var _inputs$openUrl;
4
+ var data = context.data;
5
+ var inputs = context.inputs;
6
+ var outputs = context.outputs;
7
+ (_inputs$openUrl = inputs.openUrl) === null || _inputs$openUrl === void 0 || _inputs$openUrl.call(inputs, function (val) {
8
+ try {
9
+ var url = typeof val === 'string' ? val : (val === null || val === void 0 ? void 0 : val.url) || data.url;
10
+ if (!url) {
11
+ outputs.onFail('URL 地址不能为空');
12
+ return;
13
+ }
14
+
15
+ // 检查是否为有效的 URL
16
+ if (!/^https?:\/\//.test(url)) {
17
+ outputs.onFail('URL 格式不正确,请以 http:// 或 https:// 开头');
18
+ return;
19
+ }
20
+ Taro.navigateTo({
21
+ url: "/pages/webview/index?url=".concat(encodeURIComponent(url)),
22
+ success: function success() {
23
+ return outputs.onSuccess({
24
+ url: url
25
+ });
26
+ },
27
+ fail: function fail(err) {
28
+ return outputs.onFail(err.errMsg || '打开链接失败');
29
+ }
30
+ });
31
+ } catch (error) {
32
+ console.error('打开链接失败:', error);
33
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '打开链接失败');
34
+ }
35
+ });
36
+ });
@@ -0,0 +1,42 @@
1
+ import Taro from '@tarojs/taro';
2
+ export default (function (context) {
3
+ var _inputs$removeStorage;
4
+ var data = context.data;
5
+ var inputs = context.inputs;
6
+ var outputs = context.outputs;
7
+ (_inputs$removeStorage = inputs.removeStorage) === null || _inputs$removeStorage === void 0 || _inputs$removeStorage.call(inputs, function (val) {
8
+ try {
9
+ var key = (val === null || val === void 0 ? void 0 : val.key) || data.key;
10
+ var useSync = (val === null || val === void 0 ? void 0 : val.sync) !== undefined ? val.sync : data.sync || false;
11
+ if (!key) {
12
+ outputs.onFail('存储 key 不能为空');
13
+ return;
14
+ }
15
+ if (useSync) {
16
+ try {
17
+ Taro.removeStorageSync(key);
18
+ outputs.onSuccess({
19
+ key: key
20
+ });
21
+ } catch (error) {
22
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '移除本地缓存失败');
23
+ }
24
+ } else {
25
+ Taro.removeStorage({
26
+ key: key,
27
+ success: function success() {
28
+ return outputs.onSuccess({
29
+ key: key
30
+ });
31
+ },
32
+ fail: function fail(err) {
33
+ return outputs.onFail(err.errMsg || '移除本地缓存失败');
34
+ }
35
+ });
36
+ }
37
+ } catch (error) {
38
+ console.error('移除本地缓存失败:', error);
39
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '移除本地缓存失败');
40
+ }
41
+ });
42
+ });
@@ -0,0 +1,113 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import Taro from '@tarojs/taro';
3
+ export default (function (context) {
4
+ var _inputs$navigate;
5
+ var data = context.data;
6
+ var inputs = context.inputs;
7
+ var outputs = context.outputs;
8
+ (_inputs$navigate = inputs.navigate) === null || _inputs$navigate === void 0 || _inputs$navigate.call(inputs, function (val) {
9
+ try {
10
+ var type = (val === null || val === void 0 ? void 0 : val.type) || data.type || 'navigateTo';
11
+ var path = (val === null || val === void 0 ? void 0 : val.path) || data.path;
12
+ var params = (val === null || val === void 0 ? void 0 : val.params) || data.params || {};
13
+ var delta = (val === null || val === void 0 ? void 0 : val.delta) || data.delta || 1;
14
+ if (!path && type !== 'navigateBack') {
15
+ outputs.onFail('路由路径不能为空');
16
+ return;
17
+ }
18
+
19
+ // 构建完整的URL
20
+ var url = path;
21
+ if (params && Object.keys(params).length > 0) {
22
+ var queryString = Object.entries(params).map(function (_ref) {
23
+ var _ref2 = _slicedToArray(_ref, 2),
24
+ key = _ref2[0],
25
+ value = _ref2[1];
26
+ return "".concat(key, "=").concat(encodeURIComponent(String(value)));
27
+ }).join('&');
28
+ url += (url.includes('?') ? '&' : '?') + queryString;
29
+ }
30
+ switch (type) {
31
+ case 'navigateTo':
32
+ Taro.navigateTo({
33
+ url: url,
34
+ success: function success() {
35
+ return outputs.onSuccess({
36
+ type: type,
37
+ path: url,
38
+ params: params
39
+ });
40
+ },
41
+ fail: function fail(err) {
42
+ return outputs.onFail(err.errMsg || '页面跳转失败');
43
+ }
44
+ });
45
+ break;
46
+ case 'redirectTo':
47
+ Taro.redirectTo({
48
+ url: url,
49
+ success: function success() {
50
+ return outputs.onSuccess({
51
+ type: type,
52
+ path: url,
53
+ params: params
54
+ });
55
+ },
56
+ fail: function fail(err) {
57
+ return outputs.onFail(err.errMsg || '页面重定向失败');
58
+ }
59
+ });
60
+ break;
61
+ case 'switchTab':
62
+ Taro.switchTab({
63
+ url: url,
64
+ success: function success() {
65
+ return outputs.onSuccess({
66
+ type: type,
67
+ path: url,
68
+ params: params
69
+ });
70
+ },
71
+ fail: function fail(err) {
72
+ return outputs.onFail(err.errMsg || '切换Tab失败');
73
+ }
74
+ });
75
+ break;
76
+ case 'reLaunch':
77
+ Taro.reLaunch({
78
+ url: url,
79
+ success: function success() {
80
+ return outputs.onSuccess({
81
+ type: type,
82
+ path: url,
83
+ params: params
84
+ });
85
+ },
86
+ fail: function fail(err) {
87
+ return outputs.onFail(err.errMsg || '重启应用失败');
88
+ }
89
+ });
90
+ break;
91
+ case 'navigateBack':
92
+ Taro.navigateBack({
93
+ delta: delta,
94
+ success: function success() {
95
+ return outputs.onSuccess({
96
+ type: type,
97
+ delta: delta
98
+ });
99
+ },
100
+ fail: function fail(err) {
101
+ return outputs.onFail(err.errMsg || '返回失败');
102
+ }
103
+ });
104
+ break;
105
+ default:
106
+ outputs.onFail("\u4E0D\u652F\u6301\u7684\u8DEF\u7531\u7C7B\u578B: ".concat(type));
107
+ }
108
+ } catch (error) {
109
+ console.error('路由跳转失败:', error);
110
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '路由跳转失败');
111
+ }
112
+ });
113
+ });
@@ -4,24 +4,23 @@ export default (function (context) {
4
4
  var data = context.data;
5
5
  var inputs = context.inputs;
6
6
  var outputs = context.outputs;
7
- inputs === null || inputs === void 0 || (_inputs$scan = inputs.scan) === null || _inputs$scan === void 0 || _inputs$scan.call(inputs, function (val) {
7
+ (_inputs$scan = inputs.scan) === null || _inputs$scan === void 0 || _inputs$scan.call(inputs, function (val) {
8
8
  try {
9
- var _data$onlyFromCamera;
10
- var scanType = (data === null || data === void 0 ? void 0 : data.scanType) || ['barCode', 'qrCode'];
11
- var onlyFromCamera = (_data$onlyFromCamera = data === null || data === void 0 ? void 0 : data.onlyFromCamera) !== null && _data$onlyFromCamera !== void 0 ? _data$onlyFromCamera : false;
12
- Taro.scanCode({
13
- onlyFromCamera: onlyFromCamera,
14
- scanType: scanType,
9
+ var _ref, _val$onlyFromCamera, _ref2, _val$scanType;
10
+ var scanConfig = {
11
+ onlyFromCamera: (_ref = (_val$onlyFromCamera = val === null || val === void 0 ? void 0 : val.onlyFromCamera) !== null && _val$onlyFromCamera !== void 0 ? _val$onlyFromCamera : data.onlyFromCamera) !== null && _ref !== void 0 ? _ref : false,
12
+ scanType: (_ref2 = (_val$scanType = val === null || val === void 0 ? void 0 : val.scanType) !== null && _val$scanType !== void 0 ? _val$scanType : data.scanType) !== null && _ref2 !== void 0 ? _ref2 : ['barCode', 'qrCode'],
15
13
  success: function success(res) {
16
- outputs === null || outputs === void 0 || outputs.onSuccess(res.result || res);
14
+ outputs.onSuccess(res.result || res);
17
15
  },
18
16
  fail: function fail(err) {
19
- outputs === null || outputs === void 0 || outputs.onFail(err.errMsg || '扫码失败');
17
+ outputs.onFail(err.errMsg || '扫码失败');
20
18
  }
21
- });
19
+ };
20
+ Taro.scanCode(scanConfig);
22
21
  } catch (error) {
23
22
  console.error('扫码失败:', error);
24
- outputs === null || outputs === void 0 || outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '扫码失败');
23
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '扫码失败');
25
24
  }
26
25
  });
27
26
  });
@@ -6,47 +6,35 @@ export default (function (context) {
6
6
  var outputs = context.outputs;
7
7
  (_inputs$setStorage = inputs.setStorage) === null || _inputs$setStorage === void 0 || _inputs$setStorage.call(inputs, function (val) {
8
8
  try {
9
- var _data$sync;
10
- // 优先使用动态输入的值,否则使用配置的值
11
- var key = (val === null || val === void 0 ? void 0 : val.key) || (data === null || data === void 0 ? void 0 : data.key);
12
- var _value = (val === null || val === void 0 ? void 0 : val.value) !== undefined ? val.value : data === null || data === void 0 ? void 0 : data.value;
13
- var useSync = (val === null || val === void 0 ? void 0 : val.sync) !== undefined ? val.sync : (_data$sync = data === null || data === void 0 ? void 0 : data.sync) !== null && _data$sync !== void 0 ? _data$sync : false;
9
+ var key = (val === null || val === void 0 ? void 0 : val.key) || data.key;
10
+ var _value = (val === null || val === void 0 ? void 0 : val.value) !== undefined ? val.value : data.value;
11
+ var useSync = (val === null || val === void 0 ? void 0 : val.sync) !== undefined ? val.sync : data.sync || false;
14
12
  if (!key) {
15
- outputs === null || outputs === void 0 || outputs.onFail('存储 key 不能为空');
13
+ outputs.onFail('存储 key 不能为空');
16
14
  return;
17
15
  }
16
+ var result = {
17
+ key: key,
18
+ value: _value
19
+ };
18
20
  if (useSync) {
19
- // 使用同步方法
20
- try {
21
- Taro.setStorageSync(key, _value);
22
- outputs === null || outputs === void 0 || outputs.onSuccess({
23
- key: key,
24
- value: _value
25
- });
26
- } catch (error) {
27
- console.error('写入本地缓存失败:', error);
28
- outputs === null || outputs === void 0 || outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '写入本地缓存失败');
29
- }
21
+ Taro.setStorageSync(key, _value);
22
+ outputs.onSuccess(result);
30
23
  } else {
31
- // 使用异步方法
32
24
  Taro.setStorage({
33
25
  key: key,
34
26
  data: _value,
35
27
  success: function success() {
36
- outputs === null || outputs === void 0 || outputs.onSuccess({
37
- key: key,
38
- value: _value
39
- });
28
+ return outputs.onSuccess(result);
40
29
  },
41
30
  fail: function fail(err) {
42
- console.error('写入本地缓存失败:', err);
43
- outputs === null || outputs === void 0 || outputs.onFail(err.errMsg || '写入本地缓存失败');
31
+ return outputs.onFail(err.errMsg || '写入本地缓存失败');
44
32
  }
45
33
  });
46
34
  }
47
35
  } catch (error) {
48
36
  console.error('写入本地缓存失败:', error);
49
- outputs === null || outputs === void 0 || outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '写入本地缓存失败');
37
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '写入本地缓存失败');
50
38
  }
51
39
  });
52
40
  });
@@ -0,0 +1,28 @@
1
+ import Taro from '@tarojs/taro';
2
+ export default (function (context) {
3
+ var _inputs$share;
4
+ var data = context.data;
5
+ var inputs = context.inputs;
6
+ var outputs = context.outputs;
7
+ (_inputs$share = inputs.share) === null || _inputs$share === void 0 || _inputs$share.call(inputs, function (val) {
8
+ try {
9
+ var shareData = {
10
+ title: (val === null || val === void 0 ? void 0 : val.title) || data.title || '分享',
11
+ path: (val === null || val === void 0 ? void 0 : val.path) || data.path || '/pages/index/index',
12
+ imageUrl: (val === null || val === void 0 ? void 0 : val.imageUrl) || data.imageUrl
13
+ };
14
+ Taro.showShareMenu({
15
+ withShareTicket: true,
16
+ success: function success() {
17
+ return outputs.onSuccess(shareData);
18
+ },
19
+ fail: function fail(err) {
20
+ return outputs.onFail(err.errMsg || '分享失败');
21
+ }
22
+ });
23
+ } catch (error) {
24
+ console.error('分享失败:', error);
25
+ outputs.onFail((error === null || error === void 0 ? void 0 : error.message) || '分享失败');
26
+ }
27
+ });
28
+ });