mix-public 1.1.3 → 1.1.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 (87) hide show
  1. package/README.md +6 -4
  2. package/main/mixappfunc.js +87 -73
  3. package/mix-project/.editorconfig +12 -0
  4. package/mix-project/.prettierignore +9 -0
  5. package/mix-project/.prettierrc.mjs +62 -0
  6. package/mix-project/.stylelintignore +2 -0
  7. package/mix-project/.stylelintrc.mjs +292 -0
  8. package/mix-project/.vscode/extensions.json +8 -0
  9. package/mix-project/.vscode/settings.json +25 -0
  10. package/mix-project/README.md +198 -0
  11. package/mix-project/config/inline-code.ts +14 -0
  12. package/mix-project/config/pages.config.ts +17 -0
  13. package/mix-project/config/plugins/index.ts +24 -0
  14. package/mix-project/config/plugins/plugin_autoImport.ts +14 -0
  15. package/mix-project/config/plugins/plugin_backup.ts +173 -0
  16. package/mix-project/config/plugins/plugin_svg.ts +109 -0
  17. package/mix-project/config/proxy.ts +3 -0
  18. package/mix-project/config/split-chunks.ts +24 -0
  19. package/mix-project/eslint.config.mjs +89 -0
  20. package/mix-project/package.json +92 -0
  21. package/mix-project/pnpm-lock.yaml +6608 -0
  22. package/mix-project/public/favicon.ico +0 -0
  23. package/mix-project/public/index.html +28 -0
  24. package/mix-project/public/static/image/tab-icon1-o.png +0 -0
  25. package/mix-project/public/static/image/tab-icon1.png +0 -0
  26. package/mix-project/public/static/image/tab-icon3-o.png +0 -0
  27. package/mix-project/public/static/image/tab-icon3.png +0 -0
  28. package/mix-project/public/static/image/tab-icon4-o.png +0 -0
  29. package/mix-project/public/static/image/tab-icon4.png +0 -0
  30. package/mix-project/public/static/images/default-tab-icon1-no@3x.png +0 -0
  31. package/mix-project/public/static/images/default-tab-icon2-no@3x.png +0 -0
  32. package/mix-project/public/static/images/default-tab-icon3-no@3x.png +0 -0
  33. package/mix-project/public/static/images/default-tab-icon4-no@3x.png +0 -0
  34. package/mix-project/public/static/images/default-tab-icon5-no@3x.png +0 -0
  35. package/mix-project/public/static/images/left-golden.png +0 -0
  36. package/mix-project/public/static/images/left-white.png +0 -0
  37. package/mix-project/public/static/images/left.png +0 -0
  38. package/mix-project/public/static/pag/default1.pag +0 -0
  39. package/mix-project/public/static/pag/default2.pag +0 -0
  40. package/mix-project/public/static/pag/default4.pag +0 -0
  41. package/mix-project/public/static/pag/default5.pag +0 -0
  42. package/mix-project/rsbuild.config.ts +164 -0
  43. package/mix-project/src/assets/static/css/crop.css +166 -0
  44. package/mix-project/src/assets/static/images/arrow-bottom-999.png +0 -0
  45. package/mix-project/src/assets/static/images/arrow-bottom.png +0 -0
  46. package/mix-project/src/assets/static/images/back.png +0 -0
  47. package/mix-project/src/assets/static/images/lkb-logo-text.png +0 -0
  48. package/mix-project/src/assets/static/images/scan.png +0 -0
  49. package/mix-project/src/components/kxs-version/index.vue +134 -0
  50. package/mix-project/src/components/lkb-banner/index.vue +55 -0
  51. package/mix-project/src/components/lkb-city/index.vue +29 -0
  52. package/mix-project/src/components/lkb-container/index.vue +44 -0
  53. package/mix-project/src/components/lkb-custom-navigation-container/index.vue +36 -0
  54. package/mix-project/src/components/lkb-mch-card/index.vue +101 -0
  55. package/mix-project/src/main.js +2 -0
  56. package/mix-project/src/pages/index/index.js +23 -0
  57. package/mix-project/src/pages/index/index.vue +145 -0
  58. package/mix-project/src/pages/my/index.js +23 -0
  59. package/mix-project/src/pages/my/index.vue +61 -0
  60. package/mix-project/src/pages/nearby-mch/index.js +23 -0
  61. package/mix-project/src/pages/nearby-mch/index.vue +57 -0
  62. package/mix-project/src/pages/protocol/index.js +23 -0
  63. package/mix-project/src/pages/protocol/index.vue +67 -0
  64. package/mix-project/src/pages/user-login/index.js +22 -0
  65. package/mix-project/src/pages/user-login/index.vue +170 -0
  66. package/mix-project/src/styles/constant.scss +37 -0
  67. package/mix-project/src/styles/grid.scss +31 -0
  68. package/mix-project/src/styles/main.scss +5 -0
  69. package/mix-project/src/styles/public.scss +188 -0
  70. package/mix-project/src/styles/utils.scss +460 -0
  71. package/mix-project/src/styles/vant-reset.scss +108 -0
  72. package/mix-project/src/types/README.md +3 -0
  73. package/mix-project/src/types/index.d.ts +1496 -0
  74. package/mix-project/src/utils/is.ts +182 -0
  75. package/mix-project/tsconfig.json +45 -0
  76. package/mix-project/types/env.d.ts +1 -0
  77. package/mix-project/types/global.d.ts +73 -0
  78. package/mix-project/types/index.d.ts +28 -0
  79. package/mix-project/types/shims/shims-app.d.ts +49 -0
  80. package/mix-project/types/shims/shims-tsx.d.ts +13 -0
  81. package/mix-project/types/shims/shims-vue.d.ts +9 -0
  82. package/mix-project/types/window.d.ts +57 -0
  83. package/mixRender.css +168 -0
  84. package/mixRender.js +43 -36
  85. package/package.json +1 -1
  86. package/pageRender/componentsRender.js +98 -0
  87. package/resource/md5.js +176 -2
package/README.md CHANGED
@@ -18,7 +18,7 @@
18
18
  ### 初始化方式
19
19
  ```javascript
20
20
  // 布局使用(入口文件)
21
- import mixRender from "mix-public"
21
+ import mixRender from "../../../../mixRender.js"
22
22
 
23
23
  const mixPublicLib = mixRender({
24
24
  mixProjectType: mixProjectType, // 项目类型: 在服务端创建的项目标识
@@ -27,11 +27,11 @@
27
27
  mixApptype: mixApptype, // app类型: web android ios
28
28
  mixDeviceInfo: mixDeviceInfo // 项目版本号: 服务端的版本标识
29
29
  });
30
- import 'mix-public/mixRender.css'; // 引入web端app基础样式
30
+ import '../../../../mixRender.css'; // 引入web端app基础样式
31
31
  mixPublicLib // 为原生基础调用方法,可在页面使用
32
32
 
33
33
  // 单独方法使用
34
- import mixRender from "mix-public"
34
+ import mixRender from "../../../../mixRender.js"
35
35
  const PublicLib = mixRender({
36
36
  mixJustMethod: true,
37
37
  mixApptype: apptype, // app类型: web android ios
@@ -81,4 +81,6 @@
81
81
  - v1.1.0 方法包调用方式整体调整
82
82
  - v1.1.1 添加OnloadPage生命周期/调整 goto 方法参数
83
83
  - v1.1.2 修复方法环境变量/添加 a 标签捕获自定义站内跳转
84
- - v1.1.3 方法包剩余调用方式整体调整
84
+ - v1.1.3 方法包剩余调用方式整体调整
85
+ - v1.1.4 goto 方法参数调整
86
+ - v1.1.5 部分方法网页版完善/优化方法样式
@@ -2,8 +2,6 @@
2
2
  // closeToast,
3
3
  // showConfirmDialog,
4
4
  // showDialog,
5
- // showLoadingToast,
6
- // showNotify,
7
5
  // } from "vant"
8
6
  import { mixLocalShakeDownDecrypt, mixLocalShakeDownEncrypt } from "../customMethod/cryptoJS.js"
9
7
  import { Cookies } from "../customMethod/cookie.js"
@@ -13,11 +11,7 @@ import { asyncReturnMethod, syncReturnMethod, callMethod, mixJsonStringify, mixJ
13
11
  import cachPictureForWeb from "../customMethod/cachPictureForWeb.js"
14
12
  import formatColor, { togglePageGrayscale } from "../customMethod/formatColor.js";
15
13
  import { getUrlQuery } from "../customMethod/pageParams.js"
16
-
17
- function mixShowAlert(message) {
18
- alert(message)
19
- // showNotify({ message })
20
- }
14
+ import { mixLoading, mixHideLoading, mixMsg, mixDialog, mixFloatingWindowData } from "../pageRender/componentsRender.js"
21
15
 
22
16
  const loginUrl = "user-login";
23
17
  var u = navigator.userAgent
@@ -71,8 +65,9 @@ export const mixPublicLib = (op) =>{
71
65
  * 以http开头为跳转外部网页
72
66
  * MiniApp?MiniAppId=appid&OnlineUrl=onlineurl&JumpUrl=miniapppagename
73
67
  * */
74
- Goto: function (op = {}, params = {}) {
68
+ Goto: function (op = {}) {
75
69
  const Url = op.Url || ""
70
+ const Params = op.Params || {}
76
71
  const OutSide = op.OutSide || false
77
72
  const mixPublicFn = mixPublicLib({isWeb, version})
78
73
  const Urlparams = getUrlQuery(Url)
@@ -87,8 +82,8 @@ export const mixPublicLib = (op) =>{
87
82
  mixPublicFn.JumpMiniApp({OnlineUrl:Urlparams.OnlineUrl,MiniAppId:Urlparams.MiniAppId,JumpUrl:Urlparams.JumpUrl})
88
83
  } else {
89
84
  //- 判断参数长度并将参数储存到cookies
90
- if (Object.keys(Urlparams).length > 0 || Object.keys(params).length > 0) {
91
- mixPublicLib({isWeb, version}).putCookieInfo("mixAPPPageParams", Object.keys(params).length > 0 ? params : Urlparams)
85
+ if (Object.keys(Urlparams).length > 0 || Object.keys(Params).length > 0) {
86
+ mixPublicLib({isWeb, version}).putCookieInfo("mixAPPPageParams", Object.keys(Params).length > 0 ? Params : Urlparams)
92
87
  }else{
93
88
  mixPublicLib({isWeb, version}).putCookieInfo("mixAPPPageParams", {})
94
89
  }
@@ -1665,7 +1660,18 @@ export const mixPublicLib = (op) =>{
1665
1660
  environment:this.environment,
1666
1661
  methodName: 'ClearAppCache',
1667
1662
  webMethod: ()=>{
1668
- console.log(`清理APP缓存`, "color: blue", "color: #4CAF50;")
1663
+ const cookies = document.cookie.split(';');
1664
+ const domainParts = window.location.hostname.split('.');
1665
+ const domains = [
1666
+ '', // 当前域名
1667
+ ...(domainParts.length > 1 ? [`.${domainParts.slice(-2).join('.')}`] : []) // 二级域名
1668
+ ];
1669
+ cookies.forEach(cookie => {
1670
+ const [name] = cookie.trim().split('=');
1671
+ domains.forEach(domain => {
1672
+ document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain}`;
1673
+ });
1674
+ });
1669
1675
  },
1670
1676
  params:{}
1671
1677
  })
@@ -1851,7 +1857,7 @@ export const mixPublicLib = (op) =>{
1851
1857
  environment:this.environment,
1852
1858
  methodName: 'ShowLoading',
1853
1859
  webMethod: ()=>{
1854
- ShowLoading(Message)
1860
+ mixLoading(Message)
1855
1861
  },
1856
1862
  params:{}
1857
1863
  });
@@ -1865,7 +1871,7 @@ export const mixPublicLib = (op) =>{
1865
1871
  environment:this.environment,
1866
1872
  methodName: 'HideLoading',
1867
1873
  webMethod: ()=>{
1868
- closeToast()
1874
+ mixHideLoading()
1869
1875
  },
1870
1876
  params:{}
1871
1877
  });
@@ -1875,56 +1881,69 @@ export const mixPublicLib = (op) =>{
1875
1881
  * 显示msg弹窗
1876
1882
  * */
1877
1883
  ShowMsg: function (op = {}) {
1878
- const Title = op.Title || "标题"
1879
- const Message = op.Message || "提示内容"
1880
- const ButtonText = op.confirmButtonText || "知道了"
1881
- callMethod({
1882
- environment:this.environment,
1883
- methodName: 'ShowMsg',
1884
- webMethod: ()=>{
1885
- showDialog({
1886
- title: Title,
1887
- message: Message,
1888
- confirmButtonText: ButtonText,
1889
- }).then(() => {
1890
- // on close
1891
- })
1892
- },
1893
- params:{Title, ButtonText, Message}
1894
- });
1884
+ return new Promise((resolve, reject) => {
1885
+ window.MixShowMsgCallBack = function () {
1886
+ resolve();
1887
+ }
1888
+ const Title = op.Title || "标题"
1889
+ const Message = op.Message || "提示内容"
1890
+ const ButtonText = op.confirmButtonText || "知道了"
1891
+ const ConfirmAction = "MixShowMsgCallBack"
1892
+ callMethod({
1893
+ environment:this.environment,
1894
+ methodName: 'ShowMsg',
1895
+ webMethod: ()=>{
1896
+ mixMsg({
1897
+ title: Title,
1898
+ message: Message,
1899
+ confirmButtonText: ButtonText,
1900
+ }).then(()=>{
1901
+ MixShowMsgCallBack()
1902
+ })
1903
+ },
1904
+ params:{Title, ButtonText, Message, ConfirmAction}
1905
+ });
1906
+
1907
+ })
1895
1908
  },
1896
1909
 
1897
1910
  /**
1898
1911
  * 确认弹出框
1899
1912
  * */
1900
1913
  ShowDialog: function (op = {}) {
1901
- const Title = op.Title || ""
1902
- const Message = op.Message || ""
1903
- const ConfirmText = op.ConfirmText || ""
1904
- const CancelText = op.CancelText || ""
1905
- const ConfirmAction = op.ConfirmAction || ""
1906
- const CancelAction = op.CancelAction || ""
1907
- callMethod({
1908
- environment:this.environment,
1909
- methodName: 'ShowDialog',
1910
- webMethod: ()=>{
1911
- showConfirmDialog({
1912
- title: Title,
1913
- message: Message,
1914
- confirmButtonText: ConfirmText || "确定",
1915
- cancelButtonText: CancelText || "取消",
1916
- })
1917
- .then(() => {
1918
- // on confirm
1919
- window[ConfirmAction]()
1920
- })
1921
- .catch(() => {
1922
- // on cancel
1923
- window[CancelAction]()
1914
+ return new Promise((resolve, reject) => {
1915
+ window.MixShowDialogConfirmActionCallBack = function () {
1916
+ resolve();
1917
+ }
1918
+ window.MixShowDialogCancelActionCallBack = function () {
1919
+ reject();
1920
+ }
1921
+ const Title = op.Title || "标题"
1922
+ const Message = op.Message || "确认内容"
1923
+ const ConfirmText = op.ConfirmText || "确认按钮"
1924
+ const CancelText = op.CancelText || "取消按钮"
1925
+ const ConfirmAction = "MixShowDialogConfirmActionCallBack"
1926
+ const CancelAction = "MixShowDialogCancelActionCallBack"
1927
+ callMethod({
1928
+ environment:this.environment,
1929
+ methodName: 'ShowDialog',
1930
+ webMethod: ()=>{
1931
+ mixDialog({
1932
+ title: Title,
1933
+ message: Message,
1934
+ confirmButtonText: ConfirmText || "确定",
1935
+ cancelButtonText: CancelText || "取消",
1924
1936
  })
1925
- },
1926
- params:{Title, Message, ConfirmText, CancelText, ConfirmAction, CancelAction}
1927
- });
1937
+ .then(() => {
1938
+ MixShowDialogConfirmActionCallBack()
1939
+ })
1940
+ .catch(() => {
1941
+ MixShowDialogCancelActionCallBack()
1942
+ })
1943
+ },
1944
+ params:{Title, Message, ConfirmText, CancelText, ConfirmAction, CancelAction}
1945
+ });
1946
+ })
1928
1947
  },
1929
1948
 
1930
1949
  /**
@@ -1934,17 +1953,15 @@ export const mixPublicLib = (op) =>{
1934
1953
  const Url = op.Url || ""
1935
1954
  const Title = op.Title || ""
1936
1955
  const Detail = op.Detail || ""
1937
- const Params = op.Params || ""
1956
+ const Params = op.Params || {}
1938
1957
  const Icon = op.Icon || ""
1939
1958
  callMethod({
1940
1959
  environment:this.environment,
1941
1960
  methodName: 'FloatingWindowData',
1942
1961
  webMethod: ()=>{
1943
- console.log(
1944
- `%c 添加页面浮窗=> %c 参数为:${row}`,
1945
- "color: blue",
1946
- "color: #4CAF50;",
1947
- )
1962
+ mixFloatingWindowData({
1963
+ Url, Title, Detail, Params, Icon,Fn: mixPublicLib({isWeb, version})
1964
+ })
1948
1965
  },
1949
1966
  params:{Url, Title, Detail, Params, Icon}
1950
1967
  });
@@ -2112,7 +2129,7 @@ export const mixPublicLib = (op) =>{
2112
2129
  },
2113
2130
 
2114
2131
  /**
2115
- * 启动本地服务器
2132
+ * 启动本地服务器(仅APP环境)
2116
2133
  * */
2117
2134
  StartHttpServer: function () {
2118
2135
  callMethod({
@@ -2126,7 +2143,7 @@ export const mixPublicLib = (op) =>{
2126
2143
  },
2127
2144
 
2128
2145
  /**
2129
- * 关闭本地服务器
2146
+ * 关闭本地服务器(仅APP环境)
2130
2147
  * */
2131
2148
  StopHttpServer: function () {
2132
2149
  callMethod({
@@ -2191,7 +2208,8 @@ export const mixPublicLib = (op) =>{
2191
2208
  environment:this.environment,
2192
2209
  methodName: 'CacheSize',
2193
2210
  webMethod: ()=>{
2194
- return "1.24KB"
2211
+ let cookies = document.cookie;
2212
+ return (Math.floor(cookies.length / 1024 * 100) / 100) + "KB";
2195
2213
  },
2196
2214
  params: {},
2197
2215
  })
@@ -2205,7 +2223,7 @@ export const mixPublicLib = (op) =>{
2205
2223
  environment:this.environment,
2206
2224
  methodName: 'OnlineService',
2207
2225
  webMethod: ()=>{
2208
- console.log(`客服中心`, "color: blue", "color: #4CAF50;")
2226
+ window.location.href = "http://oss.kexiaoshuang.com/MEIQIA/chatlink.html"
2209
2227
  },
2210
2228
  params:{}
2211
2229
  });
@@ -2219,19 +2237,15 @@ export const mixPublicLib = (op) =>{
2219
2237
  environment:this.environment,
2220
2238
  methodName: 'OpenAmap',
2221
2239
  webMethod: ()=>{
2240
+ var url = `https://m.amap.com/search?query=${encodeURIComponent(Address)}`;
2241
+ window.open(url);
2222
2242
  return new Promise((resolve, reject) => {
2223
- // TODO
2224
- console.log(`打开高德地图`, "color: blue", "color: #4CAF50;")
2225
- // window.location.href = Url;
2226
- setTimeout(() => {
2227
- resolve()
2228
- }, 4000);
2229
2243
  })
2230
2244
  },
2231
2245
  params:{Address}
2232
2246
  })
2233
2247
  },
2234
- /**
2248
+ /**-
2235
2249
  * 上传视频(单个视频,相机/相册)
2236
2250
  * MethodName:回调方法
2237
2251
  * VideoDuration: 录制时长
@@ -0,0 +1,12 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ [*]
7
+ indent_style = space
8
+ indent_size = 2
9
+ end_of_line = lf
10
+ charset = utf-8
11
+ trim_trailing_whitespace = true
12
+ insert_final_newline = true
@@ -0,0 +1,9 @@
1
+ /dist/*
2
+ .local
3
+ .output.js
4
+ /node_modules/**
5
+
6
+ **/*.svg
7
+ **/*.sh
8
+
9
+ /public/*
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @type {import('prettier').Config}
3
+ */
4
+ export default {
5
+ $schema: "https://json.schemastore.org/prettierrc",
6
+ tabWidth: 2, // 缩进宽度
7
+ printWidth: 80, // 一行代码最多几个字符
8
+ singleQuote: false, // 是否使用单引号
9
+ trailingComma: "all", // 最后一个属性时候带上逗号
10
+ useTabs: false, // 时候使用制表符
11
+ semi: false, // 在语句的末尾使用分号
12
+ bracketSpacing: true, // 对象文字中括号之间使用空格分割
13
+ jsxSingleQuote: true, // 在jsx中使用单引号
14
+ htmlWhitespaceSensitivity: "css", // HTML空白敏感度
15
+ vueIndentScriptAndStyle: false, // 是否缩进Vue文件中的script和style标签
16
+ // 对HTML属性进行排序
17
+ attributeSort: [
18
+ "^cols$",
19
+ "^v-if$",
20
+ "^v-else$",
21
+ "^v-for$",
22
+ "^:key$",
23
+ "^v-else-if$",
24
+ "^v-on$",
25
+ "^v-bind$",
26
+ "^ref$",
27
+ "^v-model",
28
+ "^name$",
29
+ "^:?type$",
30
+ "^:value$",
31
+ "^v-text$",
32
+ "^:?label$",
33
+ "^:headers$",
34
+ "^:items$",
35
+ "^:?item-text$",
36
+ "^:?item-value$",
37
+ "^:?item-disabled$",
38
+ "^:?placeholder$",
39
+ "^:?src$",
40
+ "^:?color$",
41
+ "^:?text-color$",
42
+ "^:?icon$",
43
+ "^:?small$",
44
+ "^:?hint$",
45
+ "^:?persistent-hint$",
46
+ "^prepend-",
47
+ "^@click:prepend",
48
+ "^append-",
49
+ "^@click:append",
50
+ "^:to$",
51
+ "^exact$",
52
+ "^:(?!(width|height|loading|disabled|data-))",
53
+ "^target$",
54
+ "^:?width$",
55
+ "^:?height$",
56
+ "^@click",
57
+ "^@",
58
+ "^:loading$",
59
+ "^:disabled$",
60
+ "^:?data-",
61
+ ],
62
+ }
@@ -0,0 +1,2 @@
1
+ /dist/*
2
+ /public/*
@@ -0,0 +1,292 @@
1
+ /** @type {import('stylelint').Config} */
2
+ export default {
3
+ extends: [
4
+ "stylelint-config-standard",
5
+ "stylelint-config-recommended-vue",
6
+ "stylelint-config-standard-scss",
7
+ "stylelint-prettier/recommended",
8
+ ],
9
+ plugins: ["stylelint-order", "stylelint-scss", "stylelint-prettier"],
10
+ overrides: [
11
+ {
12
+ files: ["**/*.scss"],
13
+ customSyntax: "postcss-scss",
14
+ },
15
+ {
16
+ files: ["*.html", "**/*.{html,vue}"],
17
+ customSyntax: "postcss-html",
18
+ },
19
+ ],
20
+ rules: {
21
+ "scss/load-no-partial-leading-underscore": null,
22
+ "keyframes-name-pattern": null,
23
+ "no-descending-specificity": null,
24
+ "number-max-precision": null,
25
+ "prettier/prettier": true,
26
+ "scss/at-extend-no-missing-placeholder": null,
27
+ "no-empty-source": null,
28
+ "selector-class-pattern": null,
29
+ "selector-pseudo-class-no-unknown": null,
30
+ "unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],
31
+ "order/order": ["custom-properties", "declarations"],
32
+ "order/properties-order": [
33
+ // 布局属性
34
+ "display",
35
+ "visibility",
36
+ "overflow",
37
+ "overflow-x",
38
+ "overflow-y",
39
+ "scroll-behavior",
40
+ "scroll-snap-align",
41
+ // 布局属性:浮动
42
+ "float",
43
+ "clear",
44
+ // 布局属性:定位
45
+ "position",
46
+ "left",
47
+ "right",
48
+ "top",
49
+ "bottom",
50
+ "z-index",
51
+ // 布局属性:列表
52
+ "list-style",
53
+ "list-style-type",
54
+ "list-style-position",
55
+ "list-style-image",
56
+ // 布局属性:表格
57
+ "table-layout",
58
+ "border-collapse",
59
+ "border-spacing",
60
+ "caption-side",
61
+ "empty-cells",
62
+ // 布局属性:弹性
63
+ "flex-flow",
64
+ "flex-direction",
65
+ "flex-wrap",
66
+ "justify-content",
67
+ "align-content",
68
+ "align-items",
69
+ "align-self",
70
+ "flex",
71
+ "flex-grow",
72
+ "flex-shrink",
73
+ "flex-basis",
74
+ "order",
75
+ // 布局属性:多列
76
+ "columns",
77
+ "column-width",
78
+ "column-count",
79
+ "column-gap",
80
+ "column-rule",
81
+ "column-rule-width",
82
+ "column-rule-style",
83
+ "column-rule-color",
84
+ "column-span",
85
+ "column-fill",
86
+ "column-break-before",
87
+ "column-break-after",
88
+ "column-break-inside",
89
+ // 布局属性:格栅
90
+ "grid-columns",
91
+ "grid-rows",
92
+ // 尺寸属性
93
+ "box-sizing",
94
+ "margin",
95
+ "margin-left",
96
+ "margin-right",
97
+ "margin-top",
98
+ "margin-bottom",
99
+ "padding",
100
+ "padding-left",
101
+ "padding-right",
102
+ "padding-top",
103
+ "padding-bottom",
104
+ "border",
105
+ "border-width",
106
+ "border-style",
107
+ "border-color",
108
+ "border-colors",
109
+ "border-left",
110
+ "border-left-width",
111
+ "border-left-style",
112
+ "border-left-color",
113
+ "border-left-colors",
114
+ "border-right",
115
+ "border-right-width",
116
+ "border-right-style",
117
+ "border-right-color",
118
+ "border-right-colors",
119
+ "border-top",
120
+ "border-top-width",
121
+ "border-top-style",
122
+ "border-top-color",
123
+ "border-top-colors",
124
+ "border-bottom",
125
+ "border-bottom-width",
126
+ "border-bottom-style",
127
+ "border-bottom-color",
128
+ "border-bottom-colors",
129
+ "border-radius",
130
+ "border-top-left-radius",
131
+ "border-top-right-radius",
132
+ "border-bottom-left-radius",
133
+ "border-bottom-right-radius",
134
+ "border-image",
135
+ "border-image-source",
136
+ "border-image-slice",
137
+ "border-image-width",
138
+ "border-image-outset",
139
+ "border-image-repeat",
140
+ "width",
141
+ "min-width",
142
+ "max-width",
143
+ "height",
144
+ "min-height",
145
+ "max-height",
146
+ // 界面属性
147
+ "appearance",
148
+ "outline",
149
+ "outline-width",
150
+ "outline-style",
151
+ "outline-color",
152
+ "outline-offset",
153
+ "outline-radius",
154
+ "outline-radius-topleft",
155
+ "outline-radius-topright",
156
+ "outline-radius-bottomleft",
157
+ "outline-radius-bottomright",
158
+ "background",
159
+ "background-color",
160
+ "background-image",
161
+ "background-repeat",
162
+ "background-repeat-x",
163
+ "background-repeat-y",
164
+ "background-position",
165
+ "background-position-x",
166
+ "background-position-y",
167
+ "background-size",
168
+ "background-origin",
169
+ "background-clip",
170
+ "background-attachment",
171
+ "bakground-composite",
172
+ "mask",
173
+ "mask-mode",
174
+ "mask-image",
175
+ "mask-repeat",
176
+ "mask-repeat-x",
177
+ "mask-repeat-y",
178
+ "mask-position",
179
+ "mask-position-x",
180
+ "mask-position-y",
181
+ "mask-size",
182
+ "mask-origin",
183
+ "mask-clip",
184
+ "mask-attachment",
185
+ "mask-composite",
186
+ "mask-box-image",
187
+ "mask-box-image-source",
188
+ "mask-box-image-width",
189
+ "mask-box-image-outset",
190
+ "mask-box-image-repeat",
191
+ "mask-box-image-slice",
192
+ "box-shadow",
193
+ "box-reflect",
194
+ "backdrop-filter",
195
+ "mix-blend-mode",
196
+ "filter",
197
+ "opacity",
198
+ "object-fit",
199
+ "clip",
200
+ "clip-path",
201
+ "resize",
202
+ "zoom",
203
+ "cursor",
204
+ "pointer-events",
205
+ "touch-callout",
206
+ "user-modify",
207
+ "user-focus",
208
+ "user-input",
209
+ "user-select",
210
+ "user-drag",
211
+ // 文字属性
212
+ "line-height",
213
+ "line-clamp",
214
+ "vertical-align",
215
+ "direction",
216
+ "unicode-bidi",
217
+ "writing-mode",
218
+ "ime-mode",
219
+ "text-overflow",
220
+ "text-decoration",
221
+ "text-decoration-line",
222
+ "text-decoration-style",
223
+ "text-decoration-color",
224
+ "text-decoration-skip",
225
+ "text-underline-position",
226
+ "text-align",
227
+ "text-align-last",
228
+ "text-justify",
229
+ "text-indent",
230
+ "text-stroke",
231
+ "text-stroke-width",
232
+ "text-stroke-color",
233
+ "text-shadow",
234
+ "text-transform",
235
+ "text-size-adjust",
236
+ "src",
237
+ "font",
238
+ "font-family",
239
+ "font-style",
240
+ "font-stretch",
241
+ "font-weight",
242
+ "font-variant",
243
+ "font-size",
244
+ "font-size-adjust",
245
+ "color",
246
+ // 内容属性
247
+ "tab-size",
248
+ "overflow-wrap",
249
+ "word-wrap",
250
+ "word-break",
251
+ "word-spacing",
252
+ "letter-spacing",
253
+ "white-space",
254
+ "caret-color",
255
+ "quotes",
256
+ "content",
257
+ "content-visibility",
258
+ "counter-reset",
259
+ "counter-increment",
260
+ "page",
261
+ "page-break-before",
262
+ "page-break-after",
263
+ "page-break-inside",
264
+ // 交互属性
265
+ "will-change",
266
+ "perspective",
267
+ "perspective-origin",
268
+ "backface-visibility",
269
+ "transform",
270
+ "transform-origin",
271
+ "transform-style",
272
+ "transition",
273
+ "transition-property",
274
+ "transition-duration",
275
+ "transition-timing-function",
276
+ "transition-delay",
277
+ "animation",
278
+ "animation-name",
279
+ "animation-duration",
280
+ "animation-timing-function",
281
+ "animation-delay",
282
+ "animation-iteration-count",
283
+ "animation-direction",
284
+ "animation-play-state",
285
+ "animation-fill-mode",
286
+ // Webkit专有属性
287
+ "-webkit-overflow-scrolling",
288
+ "-webkit-text-fill-color",
289
+ "-webkit-tap-highlight-color",
290
+ ],
291
+ },
292
+ }