@luck-design-biz/luckda 0.0.21 → 0.0.22-2

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 (52) hide show
  1. package/README.md +21 -30
  2. package/es/components/Builder/index.js +3 -3
  3. package/es/components/LdAutoForm/index.js +7 -9
  4. package/es/components/LdCard/index.js +6 -7
  5. package/es/components/LdCard/model.js +1 -1
  6. package/es/components/LdCom/index.js +3 -3
  7. package/es/components/LdFormList/index.js +15 -16
  8. package/es/components/LdGrid/index.js +7 -8
  9. package/es/components/LdGrid/model.js +1 -1
  10. package/es/components/LdGridForm/index.js +10 -10
  11. package/es/components/LdInfoPanel/index.js +2 -2
  12. package/es/components/LdTree/index.js +4 -5
  13. package/es/helper/FromItems.js +1 -1
  14. package/es/helper/action.js +3 -3
  15. package/es/helper/form.js +2 -2
  16. package/es/helper/ldBuilder.js +1 -1
  17. package/es/helper/ldComBuild.js +4 -4
  18. package/es/index.js +9 -9
  19. package/es/services.js +1 -1
  20. package/es/upload/Form/gridForm.js +20 -15
  21. package/es/upload/Form/index.js +3 -2
  22. package/es/upload/FormItem/index.js +0 -0
  23. package/es/upload/GridCell/index.js +1 -1
  24. package/es/upload/index.js +3 -3
  25. package/es/utils/action.js +1 -1
  26. package/es/utils/form.js +4 -4
  27. package/es/utils/grid.js +24 -26
  28. package/es/utils/index.js +3 -3
  29. package/lib/components/Builder/index.js +2 -4
  30. package/lib/components/LdAutoForm/index.js +5 -8
  31. package/lib/components/LdCard/index.js +6 -8
  32. package/lib/components/LdCom/index.js +7 -12
  33. package/lib/components/LdFormList/index.js +10 -12
  34. package/lib/components/LdGrid/index.js +6 -8
  35. package/lib/components/LdGridForm/index.js +6 -7
  36. package/lib/components/LdInfoPanel/index.js +2 -3
  37. package/lib/components/LdPop/index.js +2 -4
  38. package/lib/components/LdTree/index.js +3 -5
  39. package/lib/helper/FromItems.js +15 -29
  40. package/lib/helper/action.js +4 -6
  41. package/lib/helper/form.js +4 -6
  42. package/lib/helper/ldBuilder.js +1 -2
  43. package/lib/helper/ldComBuild.js +7 -11
  44. package/lib/services.js +1 -1
  45. package/lib/upload/Form/gridForm.js +21 -17
  46. package/lib/upload/Form/index.js +3 -3
  47. package/lib/upload/FormItem/index.js +1 -2
  48. package/lib/upload/GridCell/index.js +2 -3
  49. package/lib/utils/form.js +5 -8
  50. package/lib/utils/grid.js +26 -29
  51. package/package.json +96 -23
  52. package/README.zh-CN.md +0 -51
package/lib/utils/grid.js CHANGED
@@ -10,14 +10,13 @@ exports.getGridColumn = void 0;
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
- var _react = _interopRequireDefault(require("react"));
14
13
  var _umi = require("umi");
15
14
  var _lodash = require("lodash");
16
- var _antd = require("antd");
15
+ var _antd = require("luck-design/antd");
17
16
  var _moment = _interopRequireDefault(require("moment"));
18
17
  var _GridCell = _interopRequireDefault(require("../upload/GridCell"));
19
18
  var _utils = require("@luck-design-biz/base/utils");
20
- var _ApiConfig = _interopRequireDefault(require("@/services/ApiConfig"));
19
+ var _ApiConfig = _interopRequireDefault(require("../../src/services/ApiConfig"));
21
20
  var _form = require("../helper/form");
22
21
  var formItemUtils = _interopRequireWildcard(require("../helper/FromItems"));
23
22
  var _excluded = ["comName", "property"],
@@ -36,7 +35,7 @@ function getColumnRender(name, type) {
36
35
  case 'textarea':
37
36
  render = function render(text, record) {
38
37
  var _props$config;
39
- return record["".concat(name, "_virtual")] || (((_props$config = props.config) === null || _props$config === void 0 ? void 0 : _props$config.precision) && text ? Number(text).toFixed(props.config.precision) : text);
38
+ return record["".concat(name, "_virtual")] || ((_props$config = props.config) !== null && _props$config !== void 0 && _props$config.precision && text ? Number(text).toFixed(props.config.precision) : text);
40
39
  };
41
40
  break;
42
41
  case 'date':
@@ -62,7 +61,7 @@ function getColumnRender(name, type) {
62
61
  break;
63
62
  case 'switch':
64
63
  render = function render(text) {
65
- return /*#__PURE__*/_react.default.createElement(_antd.Switch, {
64
+ return /*#__PURE__*/React.createElement(_antd.Switch, {
66
65
  checked: !!text,
67
66
  size: "small"
68
67
  });
@@ -70,7 +69,7 @@ function getColumnRender(name, type) {
70
69
  break;
71
70
  case 'color':
72
71
  render = function render(text) {
73
- return /*#__PURE__*/_react.default.createElement(_antd.Tag, {
72
+ return /*#__PURE__*/React.createElement(_antd.Tag, {
74
73
  color: text
75
74
  }, text);
76
75
  };
@@ -92,7 +91,7 @@ function getColumnRender(name, type) {
92
91
  previewUrl: "".concat(_ApiConfig.default.LUCKDA_HOST).concat(file.previewUrl)
93
92
  };
94
93
  });
95
- return /*#__PURE__*/_react.default.createElement(_GridCell.default, {
94
+ return /*#__PURE__*/React.createElement(_GridCell.default, {
96
95
  fileList: fileList
97
96
  });
98
97
  };
@@ -115,7 +114,7 @@ var getAlign = function getAlign(extraData, alignClass) {
115
114
  return 'left';
116
115
  }
117
116
  };
118
- var getGridColumn = function getGridColumn() {
117
+ var getGridColumn = exports.getGridColumn = function getGridColumn() {
119
118
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
120
119
  comName = _ref.comName,
121
120
  property = _ref.property,
@@ -134,7 +133,7 @@ var getGridColumn = function getGridColumn() {
134
133
  filter = _merge.filter,
135
134
  filterParams = _merge.filterParams,
136
135
  _props = (0, _objectWithoutProperties2.default)(_merge, _excluded3);
137
- var _extra = JSON.parse(extra);
136
+ var _extra = JSON.parse(extra) || {};
138
137
  var data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _props), {}, {
139
138
  field: name,
140
139
  title: _props.label,
@@ -183,14 +182,14 @@ var getGridColumn = function getGridColumn() {
183
182
  data.filter = 'select';
184
183
  data.filterParams = {
185
184
  options: function options() {
186
- var _getDvaApp, _getDvaApp$_store;
187
- return (_getDvaApp = (0, _umi.getDvaApp)()) === null || _getDvaApp === void 0 ? void 0 : (_getDvaApp$_store = _getDvaApp._store) === null || _getDvaApp$_store === void 0 ? void 0 : _getDvaApp$_store.dispatch({
185
+ var _getDvaApp;
186
+ return (_getDvaApp = (0, _umi.getDvaApp)()) === null || _getDvaApp === void 0 || (_getDvaApp = _getDvaApp._store) === null || _getDvaApp === void 0 ? void 0 : _getDvaApp.dispatch({
188
187
  type: 'global/getUser'
189
188
  });
190
189
  },
191
190
  searchData: function searchData(str) {
192
- var _getDvaApp2, _getDvaApp2$_store;
193
- return (_getDvaApp2 = (0, _umi.getDvaApp)()) === null || _getDvaApp2 === void 0 ? void 0 : (_getDvaApp2$_store = _getDvaApp2._store) === null || _getDvaApp2$_store === void 0 ? void 0 : _getDvaApp2$_store.dispatch({
191
+ var _getDvaApp2;
192
+ return (_getDvaApp2 = (0, _umi.getDvaApp)()) === null || _getDvaApp2 === void 0 || (_getDvaApp2 = _getDvaApp2._store) === null || _getDvaApp2 === void 0 ? void 0 : _getDvaApp2.dispatch({
194
193
  type: "global/getUser",
195
194
  payload: str
196
195
  });
@@ -205,8 +204,8 @@ var getGridColumn = function getGridColumn() {
205
204
  if (_props.alias) {
206
205
  data.filterParams = {
207
206
  options: function options() {
208
- var _getDvaApp3, _getDvaApp3$_store;
209
- return (_getDvaApp3 = (0, _umi.getDvaApp)()) === null || _getDvaApp3 === void 0 ? void 0 : (_getDvaApp3$_store = _getDvaApp3._store) === null || _getDvaApp3$_store === void 0 ? void 0 : _getDvaApp3$_store.dispatch({
207
+ var _getDvaApp3;
208
+ return (_getDvaApp3 = (0, _umi.getDvaApp)()) === null || _getDvaApp3 === void 0 || (_getDvaApp3 = _getDvaApp3._store) === null || _getDvaApp3 === void 0 ? void 0 : _getDvaApp3.dispatch({
210
209
  type: 'global/getDatadic',
211
210
  payload: {
212
211
  snamealias: _props.alias
@@ -221,8 +220,8 @@ var getGridColumn = function getGridColumn() {
221
220
  data.filter = 'treeSelect';
222
221
  data.filterParams = {
223
222
  options: function options() {
224
- var _getDvaApp4, _getDvaApp4$_store;
225
- return (_getDvaApp4 = (0, _umi.getDvaApp)()) === null || _getDvaApp4 === void 0 ? void 0 : (_getDvaApp4$_store = _getDvaApp4._store) === null || _getDvaApp4$_store === void 0 ? void 0 : _getDvaApp4$_store.dispatch({
223
+ var _getDvaApp4;
224
+ return (_getDvaApp4 = (0, _umi.getDvaApp)()) === null || _getDvaApp4 === void 0 || (_getDvaApp4 = _getDvaApp4._store) === null || _getDvaApp4 === void 0 ? void 0 : _getDvaApp4.dispatch({
226
225
  type: 'global/readGroup',
227
226
  payload: {
228
227
  sclassKey: _props.sclassKey
@@ -230,8 +229,8 @@ var getGridColumn = function getGridColumn() {
230
229
  });
231
230
  },
232
231
  searchData: function searchData(str) {
233
- var _getDvaApp5, _getDvaApp5$_store;
234
- return (_getDvaApp5 = (0, _umi.getDvaApp)()) === null || _getDvaApp5 === void 0 ? void 0 : (_getDvaApp5$_store = _getDvaApp5._store) === null || _getDvaApp5$_store === void 0 ? void 0 : _getDvaApp5$_store.dispatch({
232
+ var _getDvaApp5;
233
+ return (_getDvaApp5 = (0, _umi.getDvaApp)()) === null || _getDvaApp5 === void 0 || (_getDvaApp5 = _getDvaApp5._store) === null || _getDvaApp5 === void 0 ? void 0 : _getDvaApp5.dispatch({
235
234
  type: 'global/readGroup',
236
235
  payload: {
237
236
  sclassKey: _props.sclassKey,
@@ -243,6 +242,8 @@ var getGridColumn = function getGridColumn() {
243
242
  };
244
243
  break;
245
244
  case 'upload':
245
+ case 'textarea':
246
+ case 'editor':
246
247
  data.filter = false;
247
248
  break;
248
249
  default:
@@ -261,8 +262,7 @@ var getGridColumn = function getGridColumn() {
261
262
  case 'date':
262
263
  formItemProps = {
263
264
  dataFormat: function dataFormat(value) {
264
- var _ref2;
265
- return _ref2 = {}, (0, _defineProperty2.default)(_ref2, name, value ? (0, _moment.default)(value).valueOf() : undefined), (0, _defineProperty2.default)(_ref2, "".concat(name, "_virtual"), value ? (0, _moment.default)(value).format('YYYY-MM-DD HH:mm:ss') : undefined), _ref2;
265
+ return (0, _defineProperty2.default)((0, _defineProperty2.default)({}, name, value ? (0, _moment.default)(value).valueOf() : undefined), "".concat(name, "_virtual"), value ? (0, _moment.default)(value).format('YYYY-MM-DD HH:mm:ss') : undefined);
266
266
  },
267
267
  inputFormat: function inputFormat(value, record, params) {
268
268
  return (0, _moment.default)(record["".concat(name, "_virtual")], 'YYYY-MM-DD HH:mm:ss');
@@ -275,12 +275,11 @@ var getGridColumn = function getGridColumn() {
275
275
  if (translateProps.multiple) {
276
276
  formItemProps = {
277
277
  dataFormat: function dataFormat(value) {
278
- var _ref3;
279
- return _ref3 = {}, (0, _defineProperty2.default)(_ref3, name, value.map(function (v) {
278
+ return (0, _defineProperty2.default)((0, _defineProperty2.default)({}, name, value.map(function (v) {
280
279
  return v.value || v.key;
281
- }).join(',')), (0, _defineProperty2.default)(_ref3, "".concat(name, "_virtual"), value.map(function (v) {
280
+ }).join(',')), "".concat(name, "_virtual"), value.map(function (v) {
282
281
  return v.label;
283
- }).join(',')), _ref3;
282
+ }).join(','));
284
283
  },
285
284
  inputFormat: function inputFormat(value, record, params) {
286
285
  return (0, _defineProperty2.default)({}, name, (0, _form.splitStrToObj)(value, record["".concat(name, "_virtual")]));
@@ -289,8 +288,7 @@ var getGridColumn = function getGridColumn() {
289
288
  } else {
290
289
  formItemProps = {
291
290
  dataFormat: function dataFormat(value) {
292
- var _ref5;
293
- return _ref5 = {}, (0, _defineProperty2.default)(_ref5, name, value ? value.value || value.key : undefined), (0, _defineProperty2.default)(_ref5, "".concat(name, "_virtual"), value ? value.label : undefined), _ref5;
291
+ return (0, _defineProperty2.default)((0, _defineProperty2.default)({}, name, value ? value.value || value.key : undefined), "".concat(name, "_virtual"), value ? value.label : undefined);
294
292
  },
295
293
  inputFormat: function inputFormat(value, record, params) {
296
294
  return (0, _defineProperty2.default)({}, name, !(0, _lodash.isNil)(value) ? {
@@ -307,5 +305,4 @@ var getGridColumn = function getGridColumn() {
307
305
  }
308
306
  }
309
307
  return data;
310
- };
311
- exports.getGridColumn = getGridColumn;
308
+ };
package/package.json CHANGED
@@ -1,17 +1,16 @@
1
1
  {
2
2
  "name": "@luck-design-biz/luckda",
3
- "version": "0.0.21",
3
+ "version": "0.0.22-2",
4
+ "description": "前端配置管理中心业务组件库",
4
5
  "scripts": {
5
- "start": "dumi dev",
6
- "docs:build": "dumi build",
7
- "docs:deploy": "gh-pages -d docs-dist",
8
- "build": "father-build",
9
- "deploy": "npm run docs:build && npm run docs:deploy",
10
- "release": "npm run build && npm publish",
6
+ "start": "cross-env NODE_OPTIONS=--max-old-space-size=10240 USER_RUNTIME=SITE RUNTIME=dev umi dev",
7
+ "build": "umi build",
8
+ "build-biz": "father build",
9
+ "async": "npm run build-biz && yalc push",
10
+ "release": "npm run build-biz && npm publish",
11
11
  "prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"",
12
12
  "test": "umi-test",
13
13
  "test:coverage": "umi-test --coverage",
14
- "async": "npm run build && yalc push",
15
14
  "watch": "nodemon --ignore dist/ --ignore node_modules/ --watch src/ -C -e js,jsx,less --debug -x 'tnpm run async'"
16
15
  },
17
16
  "files": [
@@ -25,6 +24,10 @@
25
24
  "gitHooks": {
26
25
  "pre-commit": "lint-staged"
27
26
  },
27
+ "engines": {
28
+ "node": ">=16",
29
+ "pnpm": ">=7.14.0"
30
+ },
28
31
  "license": "MIT",
29
32
  "repository": {
30
33
  "type": "git",
@@ -32,17 +35,16 @@
32
35
  "branch": "main"
33
36
  },
34
37
  "lint-staged": {
35
- "*.{js,jsx,less,md,json}": [
36
- "prettier --write"
38
+ "**/*.less": "stylelint --syntax less",
39
+ "**/*.{js,jsx,tsx,ts,less,md,json}": [
40
+ "prettier --write",
41
+ "git add"
37
42
  ],
38
- "*.ts?(x)": [
39
- "prettier --parser=typescript --write"
40
- ]
43
+ "**/*.{js,ts,jsx,tsx}": "npm run lint-staged:js"
41
44
  },
42
45
  "dependencies": {
43
46
  "@babel/runtime": "^7.18.9",
44
47
  "ahooks": "^3.7.0",
45
- "antd": "^3.26.6",
46
48
  "classnames": "^2.3.1",
47
49
  "lodash": "^4.17.11",
48
50
  "moment": "^2.24.0",
@@ -51,21 +53,92 @@
51
53
  "react": "^16.12.0"
52
54
  },
53
55
  "devDependencies": {
54
- "@umijs/test": "^3.0.5",
55
- "dumi": "^1.1.0",
56
- "father-build": "^1.19.1",
57
- "gh-pages": "^3.0.0",
58
- "lint-staged": "^10.0.7",
59
- "prettier": "^1.19.1",
60
- "rollup-plugin-node-resolve": "^5.2.0",
61
- "yorkie": "^2.0.0"
56
+ "@amap/amap-jsapi-loader": "^0.0.7",
57
+ "@luck-helper/ui-design": "0.0.4",
58
+ "@umijs/plugin-qiankun": "^2.41.0",
59
+ "@umijs/preset-react": "~1.8.31",
60
+ "@luck-design-biz/base": "0.0.40",
61
+ "@luck-design-biz/bpm": "0.0.3",
62
+ "luck-design": "0.1.72",
63
+ "bpmn-js": "^7.5.0",
64
+ "bpmn-js-properties-panel": "^0.35.0",
65
+ "d3-selection": "^1.4.2",
66
+ "gm-crypt": "^0.0.2",
67
+ "js-cookie": "^2.2.1",
68
+ "nprogress": "^0.2.0",
69
+ "promise-sequential": "^1.1.1",
70
+ "qrcode.react": "^1.0.1",
71
+ "qs": "^6.11.0",
72
+ "raphael": "^2.3.0",
73
+ "react-copy-to-clipboard": "^5.1.0",
74
+ "react-device-detect": "^1.17.0",
75
+ "react-dnd": "^9.5.1",
76
+ "react-dnd-html5-backend": "^9.5.1",
77
+ "react-dom": "^16.14.0",
78
+ "react-helmet": "^5.2.1",
79
+ "react-iframe": "^1.8.5",
80
+ "react-loading": "^2.0.3",
81
+ "react-viewer": "^3.2.2",
82
+ "resizable": "^1.2.1",
83
+ "umi": "^3.5.35",
84
+ "uuid": "^9.0.1",
85
+ "@ant-design/pro-cli": "^1.0.28",
86
+ "@babel/core": "^7.20.2",
87
+ "@babel/eslint-parser": "^7.19.1",
88
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
89
+ "@babel/plugin-proposal-decorators": "^7.20.2",
90
+ "@babel/plugin-transform-strict-mode": "^7.18.6",
91
+ "@babel/polyfill": "^7.12.1",
92
+ "@types/classnames": "^2.3.1",
93
+ "@types/express": "^4.17.14",
94
+ "@types/history": "^4.7.11",
95
+ "@types/lodash": "^4.14.189",
96
+ "@types/qs": "^6.9.7",
97
+ "@types/react": "^16.14.34",
98
+ "@types/react-dom": "^16.9.17",
99
+ "@types/react-helmet": "^5.0.20",
100
+ "@umijs/fabric": "^2.14.0",
101
+ "chalk": "^3.0.0",
102
+ "check-prettier": "^1.0.3",
103
+ "compression-webpack-plugin": "^6.1.1",
104
+ "core-js": "^3.26.1",
105
+ "cross-env": "^6.0.3",
106
+ "cross-port-killer": "^1.4.0",
107
+ "cross-var": "^1.1.0",
108
+ "dry-dry": "^0.4.0",
109
+ "enzyme": "^3.11.0",
110
+ "eslint": "^7.32.0",
111
+ "eslint-plugin-babel": "^5.3.1",
112
+ "eslint-plugin-react": "^7.31.10",
113
+ "eslint-plugin-react-hooks": "^4.6.0",
114
+ "express": "^4.18.2",
115
+ "father": "^4.3.1",
116
+ "gh-pages": "^2.2.0",
117
+ "husky": "^7.0.4",
118
+ "import-sort-cli": "^6.0.0",
119
+ "import-sort-parser-babylon": "^6.0.0",
120
+ "import-sort-parser-typescript": "^6.0.0",
121
+ "import-sort-style-module": "^6.0.0",
122
+ "jsdom-global": "^3.0.2",
123
+ "lint-staged": "^11.2.6",
124
+ "node-fetch": "^2.6.7",
125
+ "only-allow": "^1.1.1",
126
+ "prettier": "^2.7.1",
127
+ "pro-download": "1.0.1",
128
+ "slash2": "^2.0.0",
129
+ "stylelint": "^13.13.1",
130
+ "umi-types": "^0.5.14"
62
131
  },
63
132
  "peerDependencies": {
64
133
  "@luck-design-biz/base": ">= 0.0.10",
65
134
  "@luck-design-biz/bpm": ">= 0.0.1",
66
135
  "luck-design": ">=0.1.51"
67
136
  },
68
- "description": "前端配置管理中心业务组件库",
137
+ "pnpm": {
138
+ "overrides": {
139
+ "immer": "^2.1.1"
140
+ }
141
+ },
69
142
  "bugs": {
70
143
  "url": "https://github.com/xieyt203/luck-biz-components/issues"
71
144
  },
package/README.zh-CN.md DELETED
@@ -1,51 +0,0 @@
1
- # 🌟 Dumi Template
2
-
3
- 为组件开发场景而生的文档模板
4
-
5
- [English](./README.md) | 简体中文
6
-
7
- ## 🚀 如何使用?
8
-
9
- ![](https://gw.alipayobjects.com/zos/bmw-prod/91791904-cdde-4408-959d-72fd0c9049b1/kj80x6lv_w1918_h352.png)
10
-
11
- ## ✨ 在线预览
12
-
13
- https://umijs.github.io/luck-biz-components/
14
-
15
- ## 📒 目录介绍
16
-
17
- ```
18
- ├── docs 文档存放路径
19
- │ ├── index.md 首页展示
20
- │ └── **.** 网站目录文档
21
- ├── src 组件主目录
22
- │ ├── index.ts 组件注册
23
- │ └── Foo 组件开发
24
- ├── .eslintrc.js eslint 配置
25
- ├── .fatherrc.ts father 配置
26
- ├── .umirc.ts dumi 配置
27
- └── tsconfig.json typescript 配置
28
- ```
29
-
30
- 其余文件可自行查阅了解。
31
-
32
- ## 🤖 命令介绍
33
-
34
- | 名称 | 描述 | 备注 |
35
- | ----------------------- | -------------- | -------------------------------------------------------------------- |
36
- | `npm run start` | 项目启动 | 使用 [dumi](https://github.com/umijs/dumi),组件开发和文档开发在一起 |
37
- | `npm run test` | 组件测试 | - |
38
- | `npm run test:coverage` | 代码覆盖率查看 | - |
39
- | `npm run prettier` | 代码美化 | - |
40
- | `npm run build` | 组件打包 | 使用 [father](https://github.com/umijs/father) 工具 |
41
- | `npm run release` | 组件打包发布 | - |
42
- | `npm run docs:build` | 文档打包 | - |
43
- | `npm run docs:deploy` | 文档发布 | 这里默认是使用了 GitHub Pages |
44
- | `npm run deploy` | 文档打包发布 | - |
45
-
46
- ## 交流群
47
-
48
- <div>
49
- <img data-type="dingtalk" src="https://gw.alipayobjects.com/zos/bmw-prod/ce3439e7-3bf9-4031-b823-6473439ec9e6/kxkiis4c_w1004_h1346.jpeg" width="300" />
50
- <img data-type="wechat" src="https://gw.alipayobjects.com/zos/bmw-prod/c18bc2a5-719a-48ca-b225-c79ef88bfb43/k7m10ymd_w1004_h1346.jpeg" width="300" />
51
- </div>