jufubao-mall 2.0.82 → 2.0.83-beta2

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 (27) hide show
  1. package/.claude/settings.local.json +8 -0
  2. package/package.json +1 -1
  3. package/src/components/JfbMallCategoryAll/Api.js +40 -0
  4. package/src/components/JfbMallCategoryAll/Attr.js +20 -0
  5. package/src/components/JfbMallCategoryAll/JfbMallCategoryAll.vue +383 -0
  6. package/src/components/JfbMallCategoryAll/JfbMallCategoryAllLess.less +80 -0
  7. package/src/components/JfbMallCategoryAll/JfbMallCategoryAllMixin.js +30 -0
  8. package/src/components/JfbMallCategoryAll/Mock.js +1333 -0
  9. package/src/components/JfbMallCategoryAll/XdStoreProductType.vue +548 -0
  10. package/src/components/JfbMallCategoryAll/cusAttr/advanced.js +28 -0
  11. package/src/components/JfbMallCategoryAll/cusAttr/content.js +158 -0
  12. package/src/components/JfbMallCategoryAll/cusAttr/style.js +527 -0
  13. package/src/components/JfbMallCategoryProduct/Api.js +71 -0
  14. package/src/components/JfbMallCategoryProduct/Attr.js +20 -0
  15. package/src/components/JfbMallCategoryProduct/JfbMallCategoryProduct.vue +1242 -0
  16. package/src/components/JfbMallCategoryProduct/JfbMallCategoryProductLess.less +80 -0
  17. package/src/components/JfbMallCategoryProduct/JfbMallCategoryProductMixin.js +30 -0
  18. package/src/components/JfbMallCategoryProduct/Mock.js +1694 -0
  19. package/src/components/JfbMallCategoryProduct/cusAttr/advanced.js +53 -0
  20. package/src/components/JfbMallCategoryProduct/cusAttr/content.js +279 -0
  21. package/src/components/JfbMallCategoryProduct/cusAttr/style.js +388 -0
  22. package/src/components/JfbMallProductInfo/JfbMallProductInfo.vue +2 -1
  23. package/src/components/JfbMallProductInfo/XdSku.vue +5 -16
  24. package/src/components/JfbMallProductInfo/XdSkuJd.vue +5 -22
  25. package/src/components/JfbMallShop/JfbMallShop.vue +1 -1
  26. package/src/components/JfbMallShop/ShowQp.vue +4 -4
  27. package/get.package.path.js +0 -22
@@ -0,0 +1,8 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(git checkout *)",
5
+ "Bash(npx lessc *)"
6
+ ]
7
+ }
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-mall",
3
- "version": "2.0.82",
3
+ "version": "2.0.83-beta2",
4
4
  "private": false,
5
5
  "description": "聚福宝商城业务组件插件包",
6
6
  "main": "index.js",
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @description API模型
5
+ * 建议:Ffff=>模块 Xxxx=>自定义名字
6
+ * 获取单记录(getByIdFfffXxxx)
7
+ * 获取列表记录(getByListFfffXxxx)
8
+ * 添加列表记录(addFfffXxxxx)
9
+ * 删除列表记录(removeFfffXxxxx|deleteFfffXxxx)
10
+ * 更新列表记录(updateFfffXxxxx)
11
+ * @type {*[]}
12
+ */
13
+ module.exports = [
14
+ {
15
+ mapFnName: 'getMallCategoryTree',
16
+ title: '分类 - 树列表',
17
+ path: '/product/v1/:xnamespace/category/index',
18
+ isRule: false,
19
+ params: {
20
+ xnamespace: ['xnamespace', 'String', '必选'],
21
+ group_id: ['分组ID', 'Number', '必选'],
22
+ need_tag: ['分类', 'Number', '必选'],
23
+ },
24
+ isConsole: true,
25
+ disabled: true,
26
+ },
27
+ {
28
+ mapFnName: 'getMallCategoryChildren',
29
+ title: '分类 - 获取子级',
30
+ path: '/product/v1/:xnamespace/category/children',
31
+ isRule: false,
32
+ params: {
33
+ xnamespace: ['xnamespace', 'String', '必选'],
34
+ group_id: ['分组ID', 'Number', '必选'],
35
+ parent_id: ['父级ID 0时只获取第一级', 'Number', '必选'],
36
+ },
37
+ isConsole: true,
38
+ disabled: true,
39
+ },
40
+ ];
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ import style from "./cusAttr/style";
3
+ import advanced from "./cusAttr/advanced";
4
+ import content from "./cusAttr/content";
5
+
6
+ /**
7
+ * @description 当表单组件中有联动操作时候,使用方法进行返回
8
+ */
9
+ export default {
10
+ style: [],
11
+ advanced: [],
12
+ content: (data, gValue, gColor, oldData={})=>{
13
+
14
+ return [
15
+ ...content(data, gValue,gColor,oldData),
16
+ ...style(data, gValue,gColor,oldData),
17
+ ...advanced(data),
18
+ ].filter(i=>i)
19
+ },
20
+ };
@@ -0,0 +1,383 @@
1
+ <template>
2
+ <view
3
+ class="jfb-mall-category-all"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-mall-category-all__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-mall-category-all__edit-icon" @click.stop="delEdit">
14
+ <xd-font-icon icon="iconshanchu-01" color="#fff" size="30"></xd-font-icon>
15
+ </view>
16
+ </view>
17
+ <!-- #endif -->
18
+ <view class="jfb-mall-category-all__body">
19
+ <view v-if="loadingList" class="skeleton-wrap">
20
+ <view class="type-left">
21
+ <view v-for="i in 10" :key="i">
22
+ <view class="cate-item"></view>
23
+ </view>
24
+ </view>
25
+ <view class="type-right">
26
+ <view v-for="i in 10" :key="i">
27
+ <view class="type_title"><view></view></view>
28
+ <view class="type_list">
29
+ <view v-for="ii in 3" :key="ii" class="type_item">
30
+ <view></view>
31
+ <view></view>
32
+ </view>
33
+ </view>
34
+ </view>
35
+ </view>
36
+ </view>
37
+ <xd-store-product-type
38
+ :key="navKey"
39
+ v-if="onLoadStatus"
40
+ :layout-info="layoutInfo"
41
+ :color="mainColor"
42
+ :default-index="0"
43
+ :style-config="styleConfig"
44
+ :layout-style="layoutStyle"
45
+ @onNavList="handleNavList"
46
+ @onToDetail="handleToDetail"
47
+ ></xd-store-product-type>
48
+ </view>
49
+ </view>
50
+ </template>
51
+
52
+ <script>
53
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
54
+ import XdStoreProductType from "./XdStoreProductType";
55
+ import {jfbRootExec} from "@/utils/xd.event";
56
+ import JfbMallCategoryAllMixin from "./JfbMallCategoryAllMixin";
57
+ import componentsMixins from "@/mixins/componentsMixins";
58
+ import extsMixins from "@/mixins/extsMixins";
59
+ import { getContainerPropsValue, gCPVal } from "@/utils/xd.base";
60
+ import getServiceUrl from "@/common/getServiceUrl";
61
+ import Color from "color";
62
+
63
+ export default {
64
+ name: "JfbMallCategoryAll",
65
+ components: {
66
+ XdFontIcon,
67
+ XdStoreProductType
68
+ },
69
+ mixins: [componentsMixins, extsMixins, JfbMallCategoryAllMixin],
70
+ data() {
71
+ return {
72
+ closeMask: true,
73
+ isPreview: false,
74
+ allNavList: [],
75
+ loadingList: true,
76
+ xnamespace: "",
77
+ listPath: "",
78
+ selfMask: true,
79
+ onLoadStatus: false,
80
+ need_tag: null,
81
+ navKey: "navKey",
82
+
83
+ // content 属性
84
+ showRecommend: 'Y',
85
+ categoryParentType: 'child',
86
+ categoryParent: '',
87
+ recommendName: '',
88
+ layoutStyle: '1',
89
+
90
+ // 左侧导航样式
91
+ leftNavName: {},
92
+ leftNavItemSpacing: 0,
93
+ leftNavBgColor: '#F7F7F7',
94
+ leftNavBorder: '',
95
+ leftNavRadius: '0',
96
+ leftNavShadow: '',
97
+ leftNavPadding: {top:0, bottom:0, left:0, right:0},
98
+ // 右侧导航样式
99
+ rightNavMargin: [0],
100
+ rightNavPadding: {top:0, bottom:0, left:0, right:0},
101
+ rightNavBgColor: '#fff',
102
+ rightNavIconSize: 120,
103
+ rightNavIconPadding: 0,
104
+ rightNavIconTextColor: '#666',
105
+ rightNavIconTextSize: '12',
106
+ rightNavIconRadius: 'small',
107
+ rightNavIconBorder: '',
108
+ rightNavIconShadow: '',
109
+ rightNavIconBgColor: '',
110
+ rightNavIconTextGap: 0,
111
+ }
112
+ },
113
+ computed: {
114
+ styleConfig() {
115
+ return {
116
+ // content
117
+ xnamespace: this.xnamespace,
118
+ showRecommend: this.showRecommend,
119
+ need_tag: this.need_tag,
120
+ categoryParentType: this.categoryParentType,
121
+ categoryParent: this.categoryParent,
122
+ recommendName: this.recommendName,
123
+ layoutStyle: this.layoutStyle,
124
+ listPath: this.listPath,
125
+ // 左侧导航
126
+ leftNavName: this.leftNavName,
127
+ leftNavItemSpacing: this.leftNavItemSpacing,
128
+ leftNavBgColor: this.leftNavBgColor,
129
+ leftNavBorder: this.leftNavBorder,
130
+ leftNavRadius: this.leftNavRadius,
131
+ leftNavShadow: this.leftNavShadow,
132
+ leftNavPadding: this.getMarginAndPadding(this.leftNavPadding, 0),
133
+ // 右侧导航
134
+ rightNavMargin: this.getMarginAndPadding(this.rightNavMargin, 0),
135
+ rightNavPadding: this.getMarginAndPadding(this.rightNavPadding, 0),
136
+ rightNavBgColor: this.rightNavBgColor,
137
+ rightNavIconSize: this.rightNavIconSize,
138
+ rightNavIconPadding: this.rightNavIconPadding,
139
+ rightNavIconTextColor: this.rightNavIconTextColor,
140
+ rightNavIconTextSize: this.rightNavIconTextSize,
141
+ rightNavIconRadius: this.rightNavIconRadius,
142
+ rightNavIconBorder: this.rightNavIconBorder,
143
+ rightNavIconShadow: this.rightNavIconShadow,
144
+ rightNavIconBgColor: this.rightNavIconBgColor,
145
+ rightNavIconTextGap: this.rightNavIconTextGap,
146
+ }
147
+ }
148
+ },
149
+ watch: {
150
+ container(value, oldValue) {
151
+ if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
152
+ if (this.$configProject['isPreview']) this.init(value)
153
+ },
154
+ need_tag: {
155
+ deep: true,
156
+ handler(n, o) {
157
+ this.navKey = new Date().getTime()
158
+ }
159
+ },
160
+ recommendName: {
161
+ handler(n) {
162
+ if(this.isPreview && n && this.allNavList.length > 0) {
163
+ this.allNavList[0].category_name = n
164
+ }
165
+ }
166
+ },
167
+ },
168
+ created() {
169
+ this.init(this.container);
170
+ this.isPreview = this.$configProject.isPreview;
171
+ },
172
+ methods: {
173
+ onJfbLoad(options) {
174
+ this.setNameSpace(options);
175
+ this.onLoadStatus = true;
176
+ },
177
+ init(container) {
178
+ this.listPath = getContainerPropsValue(container, 'content.listPath', {value: ""}).value;
179
+ this.xnamespace = getContainerPropsValue(container, 'content.xnamespace', this.projectAttr.business_code);
180
+ this.showRecommend = gCPVal(container, 'showRecommend', 'Y');
181
+ this.need_tag = getContainerPropsValue(container, 'content.need_tag', null);
182
+ this.categoryParentType = gCPVal(container, 'categoryParentType', 'child');
183
+ this.categoryParent = gCPVal(container, 'categoryParent', '');
184
+ this.recommendName = gCPVal(container, 'recommendName', '推荐');
185
+ this.layoutStyle = gCPVal(container, 'layoutStyle', '1');
186
+
187
+ // ===== 左侧导航样式 =====
188
+ this.leftNavName = gCPVal(container, 'leftNavName', {
189
+ color: '#333',
190
+ actColor: this.mainColor,
191
+ fontSize: '24rpx',
192
+ actFontSize: '24rpx',
193
+ fontWeight: 'normal',
194
+ bgColor: '',
195
+ borderStyle: 'solid'
196
+ });
197
+ this.leftNavItemSpacing = gCPVal(container, 'leftNavItemSpacing', 0);
198
+ this.leftNavBgColor = gCPVal(container, 'leftNavBgColor', '#FFFFFF');
199
+ this.leftNavBorder = gCPVal(container, 'leftNavBorder', 'none', {isBorder: true});
200
+ this.leftNavRadius = gCPVal(container, 'leftNavRadius', '0', {sKey: "leftNavRadiusStatus"}) || 0;
201
+ this.leftNavShadow = gCPVal(container, 'leftNavShadow', {width:20, color:'rgba(0,0,0,0)'}, {isShadow: true});
202
+ this.leftNavPadding = gCPVal(container, 'leftNavPadding', {top:0, bottom:0, left:0, right:0}, {isPM: true, isCPM: true});
203
+
204
+ // ===== 右侧导航样式 =====
205
+ this.rightNavMargin = gCPVal(container, 'rightNavMargin', {top:24, bottom:24, left:24, right:24}, {sKey: "rightNavMarginStatus", isPMR: true});
206
+ this.rightNavPadding = gCPVal(container, 'rightNavPadding', {top:0, bottom:0, left:0, right:0}, {isPM: true, isCPM: true});
207
+ this.rightNavBgColor = gCPVal(container, 'rightNavBgColor', '#f8f8f8');
208
+ this.rightNavIconSize = gCPVal(container, 'rightNavIconSize', 120, {sKey: "rightNavIconSizeStatus"});
209
+ this.rightNavIconPadding = gCPVal(container, 'rightNavIconPadding', [12], {sKey: "rightNavIconPaddingStatus"});
210
+ this.rightNavIconTextColor = gCPVal(container, 'rightNavIconTextColor', '#666');
211
+ this.rightNavIconTextSize = gCPVal(container, 'rightNavIconTextSize', '24');
212
+ this.rightNavIconRadius = gCPVal(container, 'rightNavIconRadius', '16', {sKey: "rightNavIconRadiusStatus"});
213
+ this.rightNavIconBorder = gCPVal(container, 'rightNavIconBorder', {}, {isBorder: true});
214
+ this.rightNavIconShadow = gCPVal(container, 'rightNavIconShadow', [{color: 'rgba(0,0,0,.15)', width: '10'},'none'], { isShadow: true});
215
+ this.rightNavIconBgColor = gCPVal(container, 'rightNavIconBgColor', '');
216
+ this.rightNavIconTextGap = gCPVal(container, 'rightNavIconTextGap', 10);
217
+ console.log('rightNavIconShadow', this.rightNavIconShadow)
218
+ },
219
+ handleNavList(resolve) {
220
+ try {
221
+ jfbRootExec("getMallCategoryTree", {
222
+ vm: this,
223
+ data: {
224
+ xnamespace: this.xnamespace,
225
+ need_tag: this.need_tag,
226
+ group_id: 'default',
227
+ root_category_id: this.categoryParent || 0,
228
+ }
229
+ }).then(res => {
230
+ this.loadingList = false;
231
+ if(this.isPreview && !this.need_tag) {
232
+ this.allNavList = this.allNavList.filter(item => {
233
+ return item.category_id !== 5555
234
+ })
235
+ }
236
+ if(this.isPreview && this.need_tag) {
237
+ res.items.unshift({
238
+ category_name: this.recommendName,
239
+ category_id: 5555,
240
+ category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/43cc2cb3c71edb6415ec8cb662693471.webp.jpg',
241
+ parent_id: 2,
242
+ tag: 'rec',
243
+ children: [
244
+ {
245
+ category_name: '儿童车安全椅',
246
+ category_id: 4337,
247
+ category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/7a93387dedfc29f61745da6fc51517f4.jpg',
248
+ parent_id: 4360,
249
+ tag: 'rec',
250
+ children: []
251
+ },
252
+ {
253
+ category_name: '纸尿裤拉拉裤',
254
+ category_id: 4338,
255
+ category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/e3dc107d6c5fe5cce55a36f3631386da.png',
256
+ parent_id: 4360,
257
+ tag: '',
258
+ children: []
259
+ },
260
+ {
261
+ category_name: '营养辅食奶粉',
262
+ category_id: 4339,
263
+ category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/6a2edc1bf28f44671bdac27b73a0e0a5.jpg',
264
+ parent_id: 4360,
265
+ tag: '',
266
+ children: []
267
+ },
268
+ {
269
+ category_name: '孕产妇用品',
270
+ category_id: 4340,
271
+ category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/20c4d05eff9cb34757b42de770536c26.webp.jpg',
272
+ parent_id: 4360,
273
+ tag: '',
274
+ children: []
275
+ },
276
+ {
277
+ category_name: '婴童用品',
278
+ category_id: 4342,
279
+ category_icon: 'https://jfb-public-images.oss-cn-qingdao.aliyuncs.com/uploads/20230317/b8ec88d8b68a2cb50537a792820c6960.webp.jpg',
280
+ parent_id: 4360,
281
+ tag: '',
282
+ children: []
283
+ }
284
+ ]
285
+ })
286
+ }
287
+ let items = res.items.map(item => {
288
+ //category_id === 0 时,认为是推荐分类
289
+ if(item.category_id === 0) item.category_name = this.recommendName;
290
+ item['category_icon'] = getServiceUrl(item['category_icon'], 'size3');
291
+ item.children = item.children.map(child => {
292
+ child['category_icon'] = getServiceUrl(child['category_icon'], 'size3');
293
+ return child;
294
+ });
295
+ return item;
296
+ });
297
+ this.allNavList = items;
298
+ resolve(items)
299
+ }).catch(err => {
300
+ this.$xdLog.catch(err);
301
+ resolve([])
302
+ })
303
+ } catch (error) {
304
+ this.$xdLog.catch(error);
305
+ }
306
+ },
307
+ handleToDetail(item) {
308
+ let params = `pid=${item.pid}&need_tag=${this.need_tag}`;
309
+ if (item.cateId) {
310
+ params += `&cateId=${item.cateId}`;
311
+ }
312
+ this.$xdUniHelper.navigateTo({
313
+ url: `${this.listPath}?${params}`
314
+ })
315
+ },
316
+ onJfbBack(options) {
317
+ this.$xdUniHelper.navigateBack()
318
+ },
319
+ }
320
+ }
321
+ </script>
322
+
323
+ <style scoped lang="less">
324
+ @import "./JfbMallCategoryAllLess.less";
325
+
326
+ .jfb-mall-category-all {
327
+ &__body {
328
+ position: relative;
329
+ overflow: hidden;
330
+ z-index: 2;
331
+
332
+ .skeleton-wrap {
333
+ display: flex;
334
+ .type-left {
335
+ width: 200rpx;
336
+ display: flex;
337
+ flex-direction: column;
338
+ align-items: center;
339
+
340
+ & > view {
341
+ height: 110rpx;
342
+ display: flex;
343
+ align-items: center;
344
+ }
345
+ .cate-item {
346
+ .skeleton-item(100rpx);
347
+ }
348
+ }
349
+ .type-right {
350
+ flex: 1;
351
+ width: 100%;
352
+ padding: 20rpx;
353
+ .type_title {
354
+ height: 100rpx;
355
+ display: flex;
356
+ align-items: center;
357
+ & > view {
358
+ .skeleton-item(150rpx);
359
+ }
360
+ margin-bottom: 20rpx;
361
+ }
362
+ .type_list {
363
+ display: flex;
364
+ justify-content: space-around;
365
+ margin-bottom: 60rpx;
366
+ .type_item {
367
+ display: flex;
368
+ flex-direction: column;
369
+ align-items: center;
370
+ & > view:first-child {
371
+ .skeleton-item(120rpx, 120rpx, 50%);
372
+ }
373
+ & > view:last-child {
374
+ .skeleton-item(100rpx, 24rpx);
375
+ margin-top: 10rpx;
376
+ }
377
+ }
378
+ }
379
+ }
380
+ }
381
+ }
382
+ }
383
+ </style>
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @desc 获取绝对路径完整地址
3
+ * @param @path
4
+ **/
5
+ //例如:https://image.jufubao.cn/20220501010108/image/bg/default_gonghui_bg.png
6
+ @basePath: 'business/';
7
+ @doMain: '//sandbox-img.jufubao.cn/';
8
+
9
+ .getBusinessImageUrl(@path, @size: 'size8') {
10
+ @url: "@{doMain}@{basePath}@{path}?x-oss-process=style/@{size}";
11
+ background-image: url(@url);
12
+ }
13
+
14
+ //start
15
+ .jfb-mall-category-all {
16
+ box-sizing: border-box;
17
+
18
+ &__body{
19
+ position: relative;
20
+ overflow: hidden;
21
+ z-index: 2
22
+ }
23
+
24
+ &.editx,&.editx:hover {
25
+ position: relative;
26
+ min-height: unit(100, rpx);
27
+ z-index: 3;
28
+ &::after {
29
+ border: 2rpx dashed blue;
30
+ content: " ";
31
+ position: absolute;
32
+ top:0;
33
+ left:0;
34
+ bottom:0;
35
+ right:0;
36
+ z-index: var(--preview-z-index);
37
+ cursor: pointer;
38
+ }
39
+
40
+ }
41
+
42
+
43
+ &__edit {
44
+ cursor: pointer;
45
+ position: absolute;
46
+ right: unit(0, rpx);
47
+ top: unit(0, rpx);
48
+ height: unit(50, rpx);
49
+ z-index: 100;
50
+ display: flex;
51
+ justify-content: center;
52
+ align-items: center;
53
+ background: rgba(0, 0, 0, .4);
54
+ border-radius: 0 0 0 20rpx;
55
+ box-shadow: 0 0 10px rbga(0, 0, 0, 0.3);
56
+ color: #fff;
57
+ font-size: unit(22, rpx);
58
+ padding: 0 6rpx 0 6px;
59
+
60
+ &-icon{
61
+ padding: 0 unit(20, rpx);
62
+ }
63
+
64
+ &.editx {
65
+ box-sizing: border-box;
66
+
67
+ }
68
+ }
69
+ }
70
+ //end
71
+
72
+
73
+ /**notPreview**/
74
+ .jfb-mall-category-all {
75
+ //&:before {
76
+ //content: " ";
77
+ //display: table;
78
+ //}
79
+ }
80
+ /**endNotPreview**/
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+
4
+ //@AttrImport
5
+ import Attr from "./Attr";
6
+ //@EndAttrImport
7
+
8
+
9
+ export default {
10
+ data() {
11
+ return {
12
+ //#ifdef H5
13
+
14
+ //@AttrData
15
+ Attr:{}, //对外开发编辑属性
16
+ //@EndAttrData
17
+
18
+ // #endif
19
+ cssRoot: 'jfb-mall-category-all'
20
+ }
21
+ },
22
+ created() {
23
+
24
+ //@AttrDataCreated
25
+ this.Attr = this.$xdUniHelper.customClone(Attr);
26
+ //@EndAttrDataCreated
27
+
28
+
29
+ },
30
+ }