cms-chenhj-ui 2.0.38 → 2.0.40

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.
@@ -366,361 +366,6 @@ __webpack_require__.r(__webpack_exports__);
366
366
 
367
367
  /***/ }),
368
368
 
369
- /***/ 153:
370
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
371
-
372
- "use strict";
373
- // ESM COMPAT FLAG
374
- __webpack_require__.r(__webpack_exports__);
375
-
376
- // EXPORTS
377
- __webpack_require__.d(__webpack_exports__, {
378
- "default": function() { return /* binding */ View; }
379
- });
380
-
381
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image/View.vue?vue&type=template&id=1fc80050&scoped=true
382
- var render = function render() {
383
- var _vm = this,
384
- _c = _vm._self._c;
385
- return _c('BaseComp', _vm._b({
386
- attrs: {
387
- "data": _vm.data,
388
- "nowCompId": _vm.nowCompId,
389
- "isOpcacity": _vm.isOpcacity,
390
- "lang": _vm.lang
391
- },
392
- on: {
393
- "getConfigData": _vm.getConfigData
394
- }
395
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
396
- staticClass: "cms-image-container",
397
- class: [_vm.configData.customClass || '', {
398
- 'has-link': _vm.configData.zoomDynamic
399
- }],
400
- style: _vm.containerStyle
401
- }, [_c('div', {
402
- staticClass: "image-wrapper",
403
- style: _vm.wrapperStyle,
404
- on: {
405
- "click": _vm.handleClick
406
- }
407
- }, [_vm.configData.imageUrl ? _c('img', {
408
- staticClass: "cms-image",
409
- style: _vm.imageStyle,
410
- attrs: {
411
- "src": _vm.configData.imageUrl,
412
- "alt": _vm.configData.altText || '图片',
413
- "title": _vm.configData.title
414
- },
415
- on: {
416
- "load": _vm.onImageLoad,
417
- "error": _vm.onImageError
418
- }
419
- }) : _c('div', {
420
- staticClass: "image-placeholder",
421
- style: _vm.placeholderStyle
422
- }, [_c('img', {
423
- staticStyle: {
424
- "width": "200px",
425
- "height": "200px"
426
- },
427
- attrs: {
428
- "src": __webpack_require__(4806),
429
- "alt": "Picture"
430
- }
431
- })])])]), _vm.configData.remark ? _c('div', {
432
- staticClass: "f-c-c"
433
- }, [_vm._v(_vm._s(_vm.configData.remark))]) : _vm._e()]);
434
- };
435
- var staticRenderFns = [];
436
-
437
- ;// ./package/cms-image/View.vue?vue&type=template&id=1fc80050&scoped=true
438
-
439
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
440
- var es_iterator_constructor = __webpack_require__(8111);
441
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
442
- var es_iterator_for_each = __webpack_require__(7588);
443
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
444
- var baseComp = __webpack_require__(677);
445
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image/View.vue?vue&type=script&lang=js
446
-
447
-
448
-
449
-
450
-
451
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
452
- name: "cms-image",
453
- components: {
454
- BaseComp: baseComp["default"]
455
- },
456
- props: {
457
- data: {
458
- type: Object,
459
- default: () => {
460
- return {};
461
- }
462
- },
463
- nowCompId: {
464
- type: [String, Number],
465
- default: ""
466
- },
467
- isOpcacity: {
468
- type: Boolean,
469
- default: true
470
- },
471
- lang: {
472
- type: String,
473
- default: "zh-HK"
474
- }
475
- },
476
- data() {
477
- return {
478
- configData: {},
479
- imageLoaded: false,
480
- imageError: false,
481
- // 默认配置数据
482
- defaultConfig: {
483
- // 图片设置
484
- imageUrl: "",
485
- altText: "图片",
486
- title: "",
487
- // 样式设置
488
- borderRadius: 0,
489
- cornerRadius: {
490
- topLeft: "0",
491
- topRight: "0",
492
- bottomLeft: "0",
493
- bottomRight: "0"
494
- },
495
- objectFit: "cover",
496
- // 交互功能
497
- linkUrl: "",
498
- linkTarget: "_self",
499
- // 高级配置
500
- customClass: "",
501
- customStyle: "",
502
- lazyLoad: false,
503
- zoomDynamic: false
504
- }
505
- };
506
- },
507
- mounted() {
508
- this.initConfigData();
509
- },
510
- watch: {
511
- configData: {
512
- handler() {
513
- this.updateStyles();
514
- },
515
- deep: true
516
- }
517
- },
518
- computed: {
519
- // 容器样式
520
- containerStyle() {
521
- const config = {
522
- ...this.defaultConfig,
523
- ...this.configData
524
- };
525
- return {
526
- ...this.parseCustomStyle(config.customStyle)
527
- };
528
- },
529
- borderRadiusStyle() {
530
- const config = {
531
- ...this.defaultConfig,
532
- ...this.configData
533
- };
534
- const fallback = config.borderRadius !== undefined && config.borderRadius !== null ? `${config.borderRadius}px` : "0px";
535
- const radiusConfig = config.cornerRadius || {};
536
- const legacyMap = {
537
- topLeft: config.borderRadiusTopLeft,
538
- topRight: config.borderRadiusTopRight,
539
- bottomLeft: config.borderRadiusBottomLeft,
540
- bottomRight: config.borderRadiusBottomRight
541
- };
542
- const resolveValue = corner => {
543
- const value = radiusConfig[corner] !== undefined && radiusConfig[corner] !== null ? radiusConfig[corner] : legacyMap[corner];
544
- if (value === "full") return "9999px";
545
- if (value === undefined || value === null || value === "") {
546
- return fallback;
547
- }
548
- const num = Number(value);
549
- return Number.isNaN(num) ? fallback : `${num}px`;
550
- };
551
- return {
552
- topLeft: resolveValue("topLeft"),
553
- topRight: resolveValue("topRight"),
554
- bottomLeft: resolveValue("bottomLeft"),
555
- bottomRight: resolveValue("bottomRight")
556
- };
557
- },
558
- // 包装器样式
559
- wrapperStyle() {
560
- const config = {
561
- ...this.defaultConfig,
562
- ...this.configData
563
- };
564
- return {
565
- width: "100%",
566
- height: "auto",
567
- maxWidth: "100%",
568
- borderTopLeftRadius: this.borderRadiusStyle.topLeft,
569
- borderTopRightRadius: this.borderRadiusStyle.topRight,
570
- borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
571
- borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
572
- overflow: "hidden",
573
- cursor: config.linkUrl ? "pointer" : "default",
574
- display: "block"
575
- };
576
- },
577
- // 图片样式
578
- imageStyle() {
579
- const config = {
580
- ...this.defaultConfig,
581
- ...this.configData
582
- };
583
- return {
584
- width: "100%",
585
- height: "auto",
586
- objectFit: config.objectFit,
587
- display: "block"
588
- };
589
- },
590
- // 占位符样式
591
- placeholderStyle() {
592
- const config = {
593
- ...this.defaultConfig,
594
- ...this.configData
595
- };
596
- return {
597
- width: "100%",
598
- minHeight: "150px",
599
- backgroundColor: "#F2F9FF",
600
- border: "1px dashed #dcdfe6",
601
- borderTopLeftRadius: this.borderRadiusStyle.topLeft,
602
- borderTopRightRadius: this.borderRadiusStyle.topRight,
603
- borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
604
- borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
605
- display: "flex",
606
- flexDirection: "column",
607
- alignItems: "center",
608
- justifyContent: "center",
609
- color: "#909399",
610
- fontSize: "14px"
611
- };
612
- }
613
- },
614
- methods: {
615
- // 初始化配置数据
616
- initConfigData() {
617
- this.configData = this.getMergedConfig(this.configData);
618
- },
619
- // 获取配置数据
620
- getConfigData(configData) {
621
- this.configData = this.getMergedConfig(configData);
622
- this.updateStyles();
623
- },
624
- // 更新样式
625
- updateStyles() {
626
- this.$nextTick(() => {
627
- this.$forceUpdate();
628
- });
629
- },
630
- getMergedConfig(configData = {}) {
631
- const mergedCorner = {
632
- ...(this.defaultConfig.cornerRadius || {})
633
- };
634
- if (configData.cornerRadius) {
635
- Object.assign(mergedCorner, configData.cornerRadius);
636
- } else {
637
- var _configData$borderRad, _configData$borderRad2, _configData$borderRad3, _configData$borderRad4;
638
- mergedCorner.topLeft = (_configData$borderRad = configData.borderRadiusTopLeft) === null || _configData$borderRad === void 0 ? void 0 : _configData$borderRad.mergedCorner.topLeft;
639
- mergedCorner.topRight = (_configData$borderRad2 = configData.borderRadiusTopRight) === null || _configData$borderRad2 === void 0 ? void 0 : _configData$borderRad2.mergedCorner.topRight;
640
- mergedCorner.bottomLeft = (_configData$borderRad3 = configData.borderRadiusBottomLeft) === null || _configData$borderRad3 === void 0 ? void 0 : _configData$borderRad3.mergedCorner.bottomLeft;
641
- mergedCorner.bottomRight = (_configData$borderRad4 = configData.borderRadiusBottomRight) === null || _configData$borderRad4 === void 0 ? void 0 : _configData$borderRad4.mergedCorner.bottomRight;
642
- }
643
- return {
644
- ...this.defaultConfig,
645
- ...configData,
646
- cornerRadius: mergedCorner
647
- };
648
- },
649
- // 处理点击事件
650
- handleClick() {
651
- if (this.configData.linkUrl) {
652
- const target = this.configData.linkTarget || "_self";
653
- if (target === "_blank") {
654
- window.open(this.configData.linkUrl, "_blank");
655
- } else {
656
- window.location.href = this.configData.linkUrl;
657
- }
658
- }
659
- },
660
- // 图片加载成功
661
- onImageLoad() {
662
- this.imageLoaded = true;
663
- this.imageError = false;
664
- },
665
- // 图片加载失败
666
- onImageError() {
667
- this.imageLoaded = false;
668
- this.imageError = true;
669
- },
670
- // 解析自定义样式
671
- parseCustomStyle(customStyle) {
672
- if (!customStyle) return {};
673
- try {
674
- const styles = {};
675
- const declarations = customStyle.split(";");
676
- declarations.forEach(declaration => {
677
- const [property, value] = declaration.split(":");
678
- if (property && value) {
679
- const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
680
- styles[camelCaseProperty] = value.trim();
681
- }
682
- });
683
- return styles;
684
- } catch (error) {
685
- console.warn("解析自定义样式失败:", error);
686
- return {};
687
- }
688
- }
689
- }
690
- });
691
- ;// ./package/cms-image/View.vue?vue&type=script&lang=js
692
- /* harmony default export */ var cms_image_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
693
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image/View.vue?vue&type=style&index=0&id=1fc80050&prod&lang=scss&scoped=true
694
- // extracted by mini-css-extract-plugin
695
-
696
- ;// ./package/cms-image/View.vue?vue&type=style&index=0&id=1fc80050&prod&lang=scss&scoped=true
697
-
698
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
699
- var componentNormalizer = __webpack_require__(1656);
700
- ;// ./package/cms-image/View.vue
701
-
702
-
703
-
704
- ;
705
-
706
-
707
- /* normalize component */
708
-
709
- var component = (0,componentNormalizer/* default */.A)(
710
- cms_image_Viewvue_type_script_lang_js,
711
- render,
712
- staticRenderFns,
713
- false,
714
- null,
715
- "1fc80050",
716
- null
717
-
718
- )
719
-
720
- /* harmony default export */ var View = (component.exports);
721
-
722
- /***/ }),
723
-
724
369
  /***/ 165:
725
370
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
726
371
 
@@ -1070,7 +715,7 @@ Function.prototype.toString = makeBuiltIn(function toString() {
1070
715
  __webpack_require__.r(__webpack_exports__);
1071
716
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
1072
717
 
1073
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 342));
718
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 8737));
1074
719
  const langData = {
1075
720
  input1: "请输入富文本内容"
1076
721
  };
@@ -1096,7 +741,7 @@ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSc
1096
741
 
1097
742
  /***/ }),
1098
743
 
1099
- /***/ 342:
744
+ /***/ 304:
1100
745
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1101
746
 
1102
747
  "use strict";
@@ -1108,7 +753,7 @@ __webpack_require__.d(__webpack_exports__, {
1108
753
  "default": function() { return /* binding */ View; }
1109
754
  });
1110
755
 
1111
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-richText/View.vue?vue&type=template&id=982cf5e8&scoped=true
756
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video-group/View.vue?vue&type=template&id=279ca476&scoped=true
1112
757
  var render = function render() {
1113
758
  var _vm = this,
1114
759
  _c = _vm._self._c;
@@ -1117,32 +762,53 @@ var render = function render() {
1117
762
  "data": _vm.data,
1118
763
  "nowCompId": _vm.nowCompId,
1119
764
  "isOpcacity": _vm.isOpcacity,
765
+ "isMask": false,
1120
766
  "lang": _vm.lang
1121
767
  },
1122
768
  on: {
1123
- "getConfigData": _vm.getConfigData
769
+ "getConfigData": _vm.getConfigData,
770
+ "getDevice": _vm.getDevice
1124
771
  }
1125
772
  }, 'BaseComp', _vm.$attrs, false), [_c('section', {
1126
- class: {
1127
- 'cmhk-home_main': _vm.showCmhkMain
1128
- }
1129
- }, [_c('div', [_c('div', {
1130
- staticClass: "inner"
1131
- }, [_c('p', {
1132
- staticClass: "cms-ht",
1133
- domProps: {
1134
- "innerHTML": _vm._s(_vm.configData.input1)
773
+ staticClass: "cmhk-home_main"
774
+ }, [_c('div', {
775
+ staticClass: "wrap",
776
+ style: _vm.wrapStyle
777
+ }, _vm._l(_vm.showVideoList, function (item) {
778
+ return _c('cms-video', {
779
+ key: item.componentId,
780
+ staticStyle: {
781
+ "overflow": "hidden"
782
+ },
783
+ attrs: {
784
+ "data": item,
785
+ "nowCompId": _vm.nowCompId,
786
+ "isOpcacity": _vm.isOpcacity,
787
+ "isMask": false,
788
+ "lang": _vm.lang
789
+ }
790
+ });
791
+ }), 1), _vm.isShowPannel ? [_c('div', {
792
+ staticClass: "view-more-container"
793
+ }, [_c('div', {
794
+ staticClass: "view-more-btn",
795
+ on: {
796
+ "click": _vm.foldMessText
1135
797
  }
1136
- })])])])]);
798
+ }, [_c('span', {
799
+ staticClass: "view-more-text"
800
+ }, [_vm._v(" " + _vm._s(_vm.messFold ? _vm.$t("roamIndex.Collpase") : _vm.$t("roamIndex.More")) + " ")]), _c('i', {
801
+ class: ['view-more-icon', _vm.messFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down']
802
+ })])])] : _vm._e()], 2)]);
1137
803
  };
1138
804
  var staticRenderFns = [];
1139
805
 
1140
806
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
1141
807
  var baseComp = __webpack_require__(677);
1142
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-richText/View.vue?vue&type=script&lang=js
808
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video-group/View.vue?vue&type=script&lang=js
1143
809
 
1144
810
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
1145
- name: "cms-richText",
811
+ name: "cms-video-group",
1146
812
  components: {
1147
813
  BaseComp: baseComp["default"]
1148
814
  },
@@ -1164,64 +830,155 @@ var baseComp = __webpack_require__(677);
1164
830
  lang: {
1165
831
  type: String,
1166
832
  default: "zh-HK"
1167
- },
1168
- showCmhkMain: {
1169
- type: Boolean,
1170
- default: true
1171
833
  }
1172
834
  },
1173
835
  data() {
1174
836
  return {
1175
837
  configData: {},
1176
- messFold: false
838
+ messFold: false,
839
+ // 默认配置数据
840
+ defaultConfig: {
841
+ colNums_PC: 1,
842
+ colNums_Mobile: 1,
843
+ defaultCol: 12,
844
+ gap: 10,
845
+ cornerRadius: {
846
+ topLeft: "0",
847
+ topRight: "0",
848
+ bottomLeft: "0",
849
+ bottomRight: "0"
850
+ }
851
+ },
852
+ isShowPannel: false,
853
+ isMobile: false
1177
854
  };
1178
855
  },
1179
856
  mounted() {},
1180
- watch: {},
857
+ watch: {
858
+ configData: {
859
+ handler() {
860
+ this.updateStyles();
861
+ },
862
+ deep: true
863
+ }
864
+ },
865
+ computed: {
866
+ colNums() {
867
+ const config = {
868
+ ...this.defaultConfig,
869
+ ...this.configData
870
+ };
871
+ return this.isMobile ? config.colNums_Mobile : config.colNums_PC;
872
+ },
873
+ showVideoList() {
874
+ if (this.isShowPannel && !this.messFold) return this.data.childList.slice(0, this.colNums * this.configData.defaultCol);
875
+ return this.data.childList;
876
+ },
877
+ isConfigPage() {
878
+ return this.$EventBus && this.isOpcacity;
879
+ },
880
+ borderRadiusStyle() {
881
+ const config = {
882
+ ...this.defaultConfig,
883
+ ...this.configData
884
+ };
885
+ const radiusConfig = config.cornerRadius || {};
886
+ const formatRadius = value => {
887
+ if (value === "full") return "9999px";
888
+ if (value === undefined || value === null || value === "") {
889
+ return "0px";
890
+ }
891
+ const num = Number(value);
892
+ return Number.isNaN(num) ? "0px" : `${num}px`;
893
+ };
894
+ const resolveValue = corner => {
895
+ const value = radiusConfig[corner];
896
+ return formatRadius(value);
897
+ };
898
+ return {
899
+ topLeft: resolveValue("topLeft"),
900
+ topRight: resolveValue("topRight"),
901
+ bottomLeft: resolveValue("bottomLeft"),
902
+ bottomRight: resolveValue("bottomRight")
903
+ };
904
+ },
905
+ wrapStyle() {
906
+ const config = {
907
+ ...this.defaultConfig,
908
+ ...this.configData
909
+ };
910
+ return {
911
+ gridTemplateColumns: `repeat(${this.colNums}, 1fr)`,
912
+ gridGap: `${config.gap}px`,
913
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
914
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
915
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
916
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
917
+ overflow: "hidden"
918
+ };
919
+ }
920
+ },
1181
921
  methods: {
922
+ getDevice(val) {
923
+ this.isMobile = val;
924
+ },
925
+ // 获取配置数据
1182
926
  getConfigData(configData) {
1183
- this.configData = configData;
927
+ this.configData = this.getMergedConfig(configData);
928
+ this.updateStyles();
929
+ this.isShowPannel = this.colNums * this.configData.defaultCol < this.data.childList.length;
1184
930
  },
931
+ // 更新样式
932
+ updateStyles() {
933
+ this.$nextTick(() => {
934
+ // 触发样式更新
935
+ this.$forceUpdate();
936
+ });
937
+ },
938
+ // 折叠/展开文本
1185
939
  foldMessText() {
1186
940
  this.messFold = !this.messFold;
1187
941
  },
1188
- decodeJumpUrl(url) {
1189
- if (!url) return;
1190
- top.location.href = url;
942
+ getMergedConfig(configData = {}) {
943
+ const mergedCorner = {
944
+ ...(this.defaultConfig.cornerRadius || {})
945
+ };
946
+ if (configData.cornerRadius) {
947
+ Object.assign(mergedCorner, configData.cornerRadius);
948
+ }
949
+ return {
950
+ ...this.defaultConfig,
951
+ ...configData,
952
+ cornerRadius: mergedCorner
953
+ };
1191
954
  }
1192
955
  }
1193
956
  });
1194
- ;// ./package/cms-richText/View.vue?vue&type=script&lang=js
1195
- /* harmony default export */ var cms_richText_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
1196
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-richText/View.vue?vue&type=style&index=0&id=982cf5e8&prod&lang=scss&scoped=true
1197
- // extracted by mini-css-extract-plugin
1198
-
1199
- ;// ./package/cms-richText/View.vue?vue&type=style&index=0&id=982cf5e8&prod&lang=scss&scoped=true
1200
-
1201
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-richText/View.vue?vue&type=style&index=1&id=982cf5e8&prod&lang=scss
957
+ ;// ./package/cms-video-group/View.vue?vue&type=script&lang=js
958
+ /* harmony default export */ var cms_video_group_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
959
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video-group/View.vue?vue&type=style&index=0&id=279ca476&prod&lang=scss&scoped=true
1202
960
  // extracted by mini-css-extract-plugin
1203
961
 
1204
- ;// ./package/cms-richText/View.vue?vue&type=style&index=1&id=982cf5e8&prod&lang=scss
962
+ ;// ./package/cms-video-group/View.vue?vue&type=style&index=0&id=279ca476&prod&lang=scss&scoped=true
1205
963
 
1206
964
  // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
1207
965
  var componentNormalizer = __webpack_require__(1656);
1208
- ;// ./package/cms-richText/View.vue
966
+ ;// ./package/cms-video-group/View.vue
1209
967
 
1210
968
 
1211
969
 
1212
970
  ;
1213
971
 
1214
972
 
1215
-
1216
973
  /* normalize component */
1217
974
 
1218
975
  var component = (0,componentNormalizer/* default */.A)(
1219
- cms_richText_Viewvue_type_script_lang_js,
976
+ cms_video_group_Viewvue_type_script_lang_js,
1220
977
  render,
1221
978
  staticRenderFns,
1222
979
  false,
1223
980
  null,
1224
- "982cf5e8",
981
+ "279ca476",
1225
982
  null
1226
983
 
1227
984
  )
@@ -3489,6 +3246,472 @@ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABECAMAAAAP
3489
3246
 
3490
3247
  /***/ }),
3491
3248
 
3249
+ /***/ 579:
3250
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3251
+
3252
+ "use strict";
3253
+ // ESM COMPAT FLAG
3254
+ __webpack_require__.r(__webpack_exports__);
3255
+
3256
+ // EXPORTS
3257
+ __webpack_require__.d(__webpack_exports__, {
3258
+ "default": function() { return /* binding */ View; }
3259
+ });
3260
+
3261
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
3262
+ var es_iterator_constructor = __webpack_require__(8111);
3263
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js
3264
+ var es_iterator_drop = __webpack_require__(9314);
3265
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-column-card/View.vue?vue&type=template&id=ad0fdc1e&scoped=true
3266
+
3267
+
3268
+
3269
+
3270
+ var render = function render() {
3271
+ var _vm = this,
3272
+ _c = _vm._self._c;
3273
+ return _c('BaseComp', _vm._b({
3274
+ attrs: {
3275
+ "data": _vm.data,
3276
+ "nowCompId": _vm.nowCompId,
3277
+ "isOpcacity": _vm.isOpcacity,
3278
+ "isMask": false,
3279
+ "lang": _vm.lang,
3280
+ "showDel": false
3281
+ },
3282
+ on: {
3283
+ "getConfigData": _vm.getConfigData
3284
+ }
3285
+ }, 'BaseComp', _vm.$attrs, false), [_vm.isConfigPage ? _c('div', {
3286
+ staticClass: "main_drag hoverBorderClass",
3287
+ style: _vm.cardContainerStyle,
3288
+ attrs: {
3289
+ "id": `cardTarget${_vm.data.componentId}`
3290
+ },
3291
+ on: {
3292
+ "dragover": _vm.dragover,
3293
+ "dragend": function ($event) {
3294
+ _vm.showAddCom = false;
3295
+ },
3296
+ "drop": _vm.drop
3297
+ }
3298
+ }, [_c('Draggable', {
3299
+ staticStyle: {
3300
+ "position": "relative"
3301
+ },
3302
+ attrs: {
3303
+ "group": _vm.groupConfigForMain,
3304
+ "chosen-class": "chosen",
3305
+ "force-fallback": "true",
3306
+ "animation": "1000",
3307
+ "move": _vm.onMove
3308
+ },
3309
+ on: {
3310
+ "start": _vm.onStart,
3311
+ "end": function ($event) {
3312
+ _vm.showAddCom = false;
3313
+ }
3314
+ },
3315
+ model: {
3316
+ value: _vm.data.childList,
3317
+ callback: function ($$v) {
3318
+ _vm.$set(_vm.data, "childList", $$v);
3319
+ },
3320
+ expression: "data.childList"
3321
+ }
3322
+ }, [_vm._l(_vm.data.childList, function (item, index) {
3323
+ return _c('div', {
3324
+ key: item.componentId,
3325
+ staticStyle: {
3326
+ "position": "relative"
3327
+ }
3328
+ }, [_vm.showAddCom ? _c('div', {
3329
+ staticClass: "up_insert",
3330
+ attrs: {
3331
+ "id": `${item.componentId}-cardTargetup`
3332
+ }
3333
+ }, [_c('i', {
3334
+ staticClass: "icon-up",
3335
+ attrs: {
3336
+ "id": `${item.componentId}-upi`
3337
+ }
3338
+ }), _c('span', {
3339
+ attrs: {
3340
+ "id": `${item.componentId}-upspan`
3341
+ }
3342
+ }, [_vm._v("插入组件")])]) : _vm._e(), _c(item.cmsCompName, {
3343
+ tag: "component",
3344
+ style: {
3345
+ marginTop: _vm.showAddCom && index == 0 ? '20px' : '0px'
3346
+ },
3347
+ attrs: {
3348
+ "data": item,
3349
+ "lang": _vm.lang,
3350
+ "isOpcacity": _vm.isOpcacity,
3351
+ "nowCompId": _vm.nowCompId,
3352
+ "showCmhkMain": false
3353
+ }
3354
+ })], 1);
3355
+ }), _vm.showAddCom ? _c('div', {
3356
+ staticClass: "up_insert insert_bottom",
3357
+ style: {
3358
+ bottom: _vm.data.childList.length ? '0px' : '-24px'
3359
+ },
3360
+ attrs: {
3361
+ "id": `-cardTargetdown`
3362
+ }
3363
+ }, [_c('i', {
3364
+ staticClass: "icon-up"
3365
+ }), _c('span', [_vm._v("插入组件")])]) : _vm._e()], 2)], 1) : _c('cms-view', _vm._b({
3366
+ style: _vm.cardContainerStyle,
3367
+ attrs: {
3368
+ "data": _vm.data.childList,
3369
+ "lang": _vm.lang,
3370
+ "isOpcacity": false,
3371
+ "showCmhkMain": false
3372
+ }
3373
+ }, 'cms-view', _vm.$attrs, false))], 1);
3374
+ };
3375
+ var staticRenderFns = [];
3376
+
3377
+ ;// ./package/cms-column-card/View.vue?vue&type=template&id=ad0fdc1e&scoped=true
3378
+
3379
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
3380
+ var es_array_push = __webpack_require__(4114);
3381
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
3382
+ var baseComp = __webpack_require__(677);
3383
+ // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
3384
+ var vuedraggable_umd = __webpack_require__(9014);
3385
+ var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);
3386
+ // EXTERNAL MODULE: ./package/baseConfig.js
3387
+ var baseConfig = __webpack_require__(2128);
3388
+ // EXTERNAL MODULE: ./src/views/standard_page.js
3389
+ var standard_page = __webpack_require__(521);
3390
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-column-card/View.vue?vue&type=script&lang=js
3391
+
3392
+
3393
+
3394
+
3395
+
3396
+
3397
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
3398
+ name: "cms-column-card",
3399
+ components: {
3400
+ BaseComp: baseComp["default"],
3401
+ Draggable: (vuedraggable_umd_default())
3402
+ },
3403
+ props: {
3404
+ data: {
3405
+ type: Object,
3406
+ default: () => {
3407
+ return {};
3408
+ }
3409
+ },
3410
+ nowCompId: {
3411
+ type: [String, Number],
3412
+ default: ""
3413
+ },
3414
+ isOpcacity: {
3415
+ type: Boolean,
3416
+ default: true
3417
+ },
3418
+ lang: {
3419
+ type: String,
3420
+ default: "zh-HK"
3421
+ },
3422
+ isMobile: {
3423
+ type: Boolean,
3424
+ default: false
3425
+ },
3426
+ mobileLayout: {
3427
+ type: String,
3428
+ default: ""
3429
+ }
3430
+ },
3431
+ data() {
3432
+ return {
3433
+ configData: {},
3434
+ messFold: true,
3435
+ showAddCom: false,
3436
+ temporaryList: []
3437
+ };
3438
+ },
3439
+ computed: {
3440
+ isConfigPage() {
3441
+ return this.$EventBus && this.isOpcacity;
3442
+ },
3443
+ groupConfigForMain() {
3444
+ return {
3445
+ name: "task",
3446
+ pull: true,
3447
+ // A列表的元素可以被拖出
3448
+ put: (to, from, dragEl) => {
3449
+ console.log(from.el.classList);
3450
+ if (from.el.classList.contains("main_drag")) {
3451
+ const dataId = this.findFirstComponentKey(dragEl);
3452
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column"];
3453
+ console.log("allowedComponents", dataId);
3454
+ if (dataId === "cms-column") {
3455
+ if (!this.checkColumnNestingLevel()) {
3456
+ console.log("cms-column 嵌套层级超出限制");
3457
+ return false;
3458
+ }
3459
+ }
3460
+ return allowedComponents.includes(dataId);
3461
+ }
3462
+ return true;
3463
+ }
3464
+ };
3465
+ },
3466
+ // 卡片容器样式
3467
+ cardContainerStyle() {
3468
+ return {
3469
+ backgroundImage: this.configData.backgroundImage ? `url('${this.configData.backgroundImage}')` : "none",
3470
+ backgroundSize: "cover",
3471
+ backgroundRepeat: "no-repeat",
3472
+ backgroundPosition: "center center",
3473
+ height: this.getContainerHeight(),
3474
+ border: this.getContainerBorder(),
3475
+ borderRadius: this.getContainerBorderRadius(),
3476
+ backgroundColor: this.configData.backgroundColor || "transparent",
3477
+ boxShadow: this.configData.boxShadow || "none"
3478
+ };
3479
+ }
3480
+ },
3481
+ mounted() {
3482
+ if (this.$EventBus) {
3483
+ this.$EventBus.$on("handleDragEnd", () => {
3484
+ this.showAddCom = false;
3485
+ });
3486
+ }
3487
+ },
3488
+ watch: {},
3489
+ methods: {
3490
+ findFirstComponentKey(root) {
3491
+ var _root$querySelector;
3492
+ if (!root) return null;
3493
+
3494
+ // 若起点自身就有
3495
+ if (root.nodeType === 1 && root.hasAttribute("component-key")) {
3496
+ return root.getAttribute("component-key");
3497
+ }
3498
+
3499
+ // 向下查找第一个匹配的后代
3500
+ const el = (_root$querySelector = root.querySelector) === null || _root$querySelector === void 0 ? void 0 : _root$querySelector.call(root, "[component-key]");
3501
+ return el ? el.getAttribute("component-key") : null;
3502
+ },
3503
+ // 获取容器高度
3504
+ getContainerHeight() {
3505
+ if (this.configData.heightType === "fixed") {
3506
+ return `${this.configData.fixedHeight}px`;
3507
+ }
3508
+ return this.isMobile && this.mobileLayout == "vertical" ? "auto" : "100%";
3509
+ },
3510
+ // 获取容器边框
3511
+ getContainerBorder() {
3512
+ if (this.configData.borderWidth) {
3513
+ return `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}`;
3514
+ }
3515
+ return "none";
3516
+ },
3517
+ // 获取容器圆角
3518
+ getContainerBorderRadius() {
3519
+ const radius = this.configData.borderRadius !== undefined && this.configData.borderRadius !== null ? this.configData.borderRadius : 0;
3520
+ if (radius === "full") {
3521
+ return "9999px";
3522
+ }
3523
+ const radiusNumber = Number(radius);
3524
+ return Number.isNaN(radiusNumber) ? "0px" : `${radiusNumber}px`;
3525
+ },
3526
+ getConfigData(configData) {
3527
+ this.configData = configData;
3528
+ },
3529
+ foldMessText() {
3530
+ this.messFold = !this.messFold;
3531
+ },
3532
+ decodeJumpUrl(url) {
3533
+ if (!url) return;
3534
+ top.location.href = url;
3535
+ },
3536
+ onStart(evt) {
3537
+ console.log("drag start in column-card", evt);
3538
+ this.showAddCom = true;
3539
+ },
3540
+ // 限制拖拽的组件类型
3541
+ onMove(evt) {
3542
+ const {
3543
+ draggedContext
3544
+ } = evt;
3545
+
3546
+ // 允许的组件类型
3547
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
3548
+ ];
3549
+
3550
+ // 如果是从外部拖入的组件
3551
+ if (draggedContext && draggedContext.element) {
3552
+ const componentType = draggedContext.element.cmsCompName;
3553
+ if (componentType && !allowedComponents.includes(componentType)) {
3554
+ console.log("draggedContext.element", draggedContext.element);
3555
+ console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
3556
+ return false;
3557
+ }
3558
+
3559
+ // 特殊处理 cms-column:检查嵌套层级
3560
+ if (componentType === "cms-column") {
3561
+ if (!this.checkColumnNestingLevel()) {
3562
+ console.log("cms-column 嵌套层级超出限制");
3563
+ return false;
3564
+ }
3565
+ }
3566
+ }
3567
+ return true;
3568
+ },
3569
+ // 检查 cms-column 嵌套层级
3570
+ checkColumnNestingLevel() {
3571
+ // 检查当前 column-card 是否已经在 cms-column 内部
3572
+ let parent = this.$parent;
3573
+ let columnDepth = 0;
3574
+ while (parent) {
3575
+ // 检查父组件是否是 cms-column 或包含 cms-column
3576
+ if (parent.$options.name === "cms-column" || parent.$data && parent.$data.data && parent.$data.data.cmsCompName === "cms-column") {
3577
+ columnDepth++;
3578
+ }
3579
+
3580
+ // 如果已经有一层 cms-column,则不允许再嵌套
3581
+ if (columnDepth >= 2) {
3582
+ console.log(`检测到 cms-column 嵌套层级: ${columnDepth}, 超出限制`);
3583
+ return false;
3584
+ }
3585
+ parent = parent.$parent;
3586
+ }
3587
+ console.log(`cms-column 嵌套层级检查通过: ${columnDepth}`);
3588
+ return true;
3589
+ },
3590
+ // 处理拖拽悬停
3591
+ dragover(e) {
3592
+ e.preventDefault();
3593
+ this.showAddCom = true;
3594
+ },
3595
+ // 处理拖拽放置
3596
+ drop(e) {
3597
+ e.preventDefault();
3598
+ const componentKey = e.dataTransfer.getData("componentKey");
3599
+ let temporaryId = "";
3600
+ this.temporaryList = e.dataTransfer.getData("temporaryList") ? JSON.parse(e.dataTransfer.getData("temporaryList")) : [];
3601
+ console.log("cms-colum-card-drop", componentKey, this.temporaryList);
3602
+ if (!componentKey) return;
3603
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
3604
+ const isTemporary = isTemporaryItem === "true";
3605
+ if (isTemporary) {
3606
+ temporaryId = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey).cmsCompName;
3607
+ }
3608
+ const componentType = isTemporary ? temporaryId : componentKey;
3609
+ // 允许的组件类型
3610
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
3611
+ ];
3612
+
3613
+ // 检查组件类型是否允许
3614
+ if (!allowedComponents.includes(componentType)) {
3615
+ console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
3616
+ this.$message && this.$message.warning(`该组件类型不支持拖入卡片容器`);
3617
+ this.showAddCom = false;
3618
+ return;
3619
+ }
3620
+
3621
+ // 特殊处理 cms-column:检查嵌套层级
3622
+ if (componentType === "cms-column") {
3623
+ if (!this.checkColumnNestingLevel()) {
3624
+ console.log("cms-column 嵌套层级超出限制");
3625
+ this.$message && this.$message.warning(`cms-column 只能嵌套一层`);
3626
+ this.showAddCom = false;
3627
+ return;
3628
+ }
3629
+ }
3630
+ this.addOneComp(e, componentKey);
3631
+ },
3632
+ // 添加组件到卡片容器
3633
+ addOneComp(e, componentKey) {
3634
+ this.showAddCom = false;
3635
+ console.log("drop to column-card", componentKey);
3636
+
3637
+ // 动态导入组件配置
3638
+ let initCompData;
3639
+ try {
3640
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
3641
+ const isTemporary = isTemporaryItem === "true";
3642
+ if (isTemporary) {
3643
+ initCompData = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey);
3644
+ } else {
3645
+ initCompData = __webpack_require__(1640)(`./${componentKey}`).default.settings(componentKey);
3646
+ }
3647
+ if (!isTemporary) {
3648
+ initCompData = {
3649
+ ...initCompData,
3650
+ styleConfig: {
3651
+ pc: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(16, 16, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")],
3652
+ mb: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(12, 12, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")]
3653
+ }
3654
+ };
3655
+ }
3656
+ } catch (error) {
3657
+ console.error(`无法加载组件 ${componentKey}:`, error);
3658
+ this.$message && this.$message.error(`组件加载失败`);
3659
+ return;
3660
+ }
3661
+ const toElementId = e.toElement.id;
3662
+ if (toElementId === `cardTarget${this.data.componentId}` || toElementId.includes("cardTargetdown")) {
3663
+ // 添加到卡片容器末尾
3664
+ this.data.childList.push(initCompData);
3665
+ } else if (toElementId.includes("cardTargetup")) {
3666
+ // 插入到指定位置
3667
+ const underComponentId = toElementId.split("-cardTargetup")[0];
3668
+ const index = this.data.childList.findIndex(item => item.componentId === underComponentId);
3669
+ if (index !== -1) {
3670
+ this.data.childList.splice(index, 0, initCompData);
3671
+ }
3672
+ }
3673
+
3674
+ // 触发数据更新
3675
+ this.$emit("update:data", this.data);
3676
+ if (componentKey === "cms-column") {
3677
+ this.$EventBus.$emit("handleNowComp", initCompData);
3678
+ }
3679
+ }
3680
+ }
3681
+ });
3682
+ ;// ./package/cms-column-card/View.vue?vue&type=script&lang=js
3683
+ /* harmony default export */ var cms_column_card_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
3684
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-column-card/View.vue?vue&type=style&index=0&id=ad0fdc1e&prod&lang=scss&scoped=true
3685
+ // extracted by mini-css-extract-plugin
3686
+
3687
+ ;// ./package/cms-column-card/View.vue?vue&type=style&index=0&id=ad0fdc1e&prod&lang=scss&scoped=true
3688
+
3689
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
3690
+ var componentNormalizer = __webpack_require__(1656);
3691
+ ;// ./package/cms-column-card/View.vue
3692
+
3693
+
3694
+
3695
+ ;
3696
+
3697
+
3698
+ /* normalize component */
3699
+
3700
+ var component = (0,componentNormalizer/* default */.A)(
3701
+ cms_column_card_Viewvue_type_script_lang_js,
3702
+ render,
3703
+ staticRenderFns,
3704
+ false,
3705
+ null,
3706
+ "ad0fdc1e",
3707
+ null
3708
+
3709
+ )
3710
+
3711
+ /* harmony default export */ var View = (component.exports);
3712
+
3713
+ /***/ }),
3714
+
3492
3715
  /***/ 613:
3493
3716
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3494
3717
 
@@ -22768,8 +22991,8 @@ var map = {
22768
22991
  "./cms-column": 3154,
22769
22992
  "./cms-column-card": 3583,
22770
22993
  "./cms-column-card/": 3583,
22771
- "./cms-column-card/View": 4552,
22772
- "./cms-column-card/View.vue": 4552,
22994
+ "./cms-column-card/View": 579,
22995
+ "./cms-column-card/View.vue": 579,
22773
22996
  "./cms-column-card/index": 3583,
22774
22997
  "./cms-column-card/index.js": 3583,
22775
22998
  "./cms-column/": 3154,
@@ -22798,13 +23021,13 @@ var map = {
22798
23021
  "./cms-image": 3513,
22799
23022
  "./cms-image-group": 2987,
22800
23023
  "./cms-image-group/": 2987,
22801
- "./cms-image-group/View": 7800,
22802
- "./cms-image-group/View.vue": 7800,
23024
+ "./cms-image-group/View": 2578,
23025
+ "./cms-image-group/View.vue": 2578,
22803
23026
  "./cms-image-group/index": 2987,
22804
23027
  "./cms-image-group/index.js": 2987,
22805
23028
  "./cms-image/": 3513,
22806
- "./cms-image/View": 153,
22807
- "./cms-image/View.vue": 153,
23029
+ "./cms-image/View": 9383,
23030
+ "./cms-image/View.vue": 9383,
22808
23031
  "./cms-image/index": 3513,
22809
23032
  "./cms-image/index.js": 3513,
22810
23033
  "./cms-imgFour": 3395,
@@ -22863,8 +23086,8 @@ var map = {
22863
23086
  "./cms-question/index.js": 9704,
22864
23087
  "./cms-richText": 289,
22865
23088
  "./cms-richText/": 289,
22866
- "./cms-richText/View": 342,
22867
- "./cms-richText/View.vue": 342,
23089
+ "./cms-richText/View": 8737,
23090
+ "./cms-richText/View.vue": 8737,
22868
23091
  "./cms-richText/index": 289,
22869
23092
  "./cms-richText/index.js": 289,
22870
23093
  "./cms-servePlan-tab": 5786,
@@ -22929,13 +23152,13 @@ var map = {
22929
23152
  "./cms-video": 3275,
22930
23153
  "./cms-video-group": 2697,
22931
23154
  "./cms-video-group/": 2697,
22932
- "./cms-video-group/View": 1882,
22933
- "./cms-video-group/View.vue": 1882,
23155
+ "./cms-video-group/View": 304,
23156
+ "./cms-video-group/View.vue": 304,
22934
23157
  "./cms-video-group/index": 2697,
22935
23158
  "./cms-video-group/index.js": 2697,
22936
23159
  "./cms-video/": 3275,
22937
- "./cms-video/View": 1659,
22938
- "./cms-video/View.vue": 1659,
23160
+ "./cms-video/View": 6722,
23161
+ "./cms-video/View.vue": 6722,
22939
23162
  "./cms-video/index": 3275,
22940
23163
  "./cms-video/index.js": 3275,
22941
23164
  "./cms-view": 725,
@@ -23108,346 +23331,6 @@ function normalizeComponent(
23108
23331
  }
23109
23332
 
23110
23333
 
23111
- /***/ }),
23112
-
23113
- /***/ 1659:
23114
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
23115
-
23116
- "use strict";
23117
- // ESM COMPAT FLAG
23118
- __webpack_require__.r(__webpack_exports__);
23119
-
23120
- // EXPORTS
23121
- __webpack_require__.d(__webpack_exports__, {
23122
- "default": function() { return /* binding */ View; }
23123
- });
23124
-
23125
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video/View.vue?vue&type=template&id=9d8bb9e8&scoped=true
23126
- var render = function render() {
23127
- var _vm = this,
23128
- _c = _vm._self._c;
23129
- return _c('BaseComp', _vm._b({
23130
- attrs: {
23131
- "data": _vm.data,
23132
- "nowCompId": _vm.nowCompId,
23133
- "isOpcacity": _vm.isOpcacity,
23134
- "lang": _vm.lang
23135
- },
23136
- on: {
23137
- "getConfigData": _vm.getConfigData
23138
- }
23139
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
23140
- staticClass: "cms-video-container",
23141
- class: [_vm.configData.customClass || ''],
23142
- style: _vm.containerStyle
23143
- }, [_c('div', {
23144
- staticClass: "video-wrapper",
23145
- style: _vm.wrapperStyle
23146
- }, [_vm.videoType === 'direct' && _vm.configData.videoUrl ? _c('video', {
23147
- staticClass: "cms-video direct-video",
23148
- style: _vm.videoStyle,
23149
- attrs: {
23150
- "src": _vm.configData.videoUrl,
23151
- "controls": _vm.configData.showControls,
23152
- "autoplay": _vm.configData.autoplay,
23153
- "loop": _vm.configData.loop,
23154
- "poster": _vm.configData.posterUrl
23155
- },
23156
- domProps: {
23157
- "muted": _vm.configData.muted
23158
- },
23159
- on: {
23160
- "loadstart": _vm.onVideoLoadStart,
23161
- "loadeddata": _vm.onVideoLoaded,
23162
- "error": _vm.onVideoError
23163
- }
23164
- }) : _vm.configData.embedCode ? _c('div', {
23165
- staticClass: "cms-video embed-video cms-ht",
23166
- style: _vm.videoStyle,
23167
- domProps: {
23168
- "innerHTML": _vm._s(_vm.configData.embedCode)
23169
- }
23170
- }) : _c('div', {
23171
- staticClass: "video-placeholder",
23172
- style: _vm.placeholderStyle
23173
- }, [_c('img', {
23174
- staticStyle: {
23175
- "width": "97.82px",
23176
- "height": "97.82px"
23177
- },
23178
- attrs: {
23179
- "src": __webpack_require__(6148),
23180
- "alt": "Video Camera"
23181
- }
23182
- })])]), _vm.configData.title ? _c('div', {
23183
- staticClass: "f-c-c"
23184
- }, [_vm._v(_vm._s(_vm.configData.title))]) : _vm._e()])]);
23185
- };
23186
- var staticRenderFns = [];
23187
-
23188
- ;// ./package/cms-video/View.vue?vue&type=template&id=9d8bb9e8&scoped=true
23189
-
23190
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
23191
- var es_iterator_constructor = __webpack_require__(8111);
23192
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
23193
- var es_iterator_for_each = __webpack_require__(7588);
23194
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
23195
- var baseComp = __webpack_require__(677);
23196
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video/View.vue?vue&type=script&lang=js
23197
-
23198
-
23199
-
23200
-
23201
-
23202
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
23203
- name: "cms-video",
23204
- components: {
23205
- BaseComp: baseComp["default"]
23206
- },
23207
- props: {
23208
- data: {
23209
- type: Object,
23210
- default: () => {
23211
- return {};
23212
- }
23213
- },
23214
- nowCompId: {
23215
- type: [String, Number],
23216
- default: ""
23217
- },
23218
- isOpcacity: {
23219
- type: Boolean,
23220
- default: true
23221
- },
23222
- lang: {
23223
- type: String,
23224
- default: "zh-HK"
23225
- }
23226
- },
23227
- data() {
23228
- return {
23229
- configData: {},
23230
- videoLoaded: false,
23231
- videoError: false,
23232
- // 默认配置数据
23233
- defaultConfig: {
23234
- // 视频源设置
23235
- videoType: "direct",
23236
- videoUrl: "",
23237
- embedCode: "",
23238
- posterUrl: "",
23239
- // 播放控制
23240
- showControls: true,
23241
- autoplay: false,
23242
- loop: false,
23243
- muted: false,
23244
- // 尺寸控制
23245
- aspectRatio: "16:9",
23246
- // 样式设置
23247
- borderRadius: 0,
23248
- // 高级配置
23249
- customClass: "",
23250
- customStyle: ""
23251
- }
23252
- };
23253
- },
23254
- mounted() {
23255
- this.initConfigData();
23256
- },
23257
- watch: {
23258
- configData: {
23259
- handler() {
23260
- this.updateStyles();
23261
- },
23262
- deep: true
23263
- }
23264
- },
23265
- computed: {
23266
- showEmbedCode() {
23267
- return this.configData.embedCode.replace(/<iframe(.*?)width="(\d+)"(.*?)height="(\d+)"(.*?)>/gi, '<iframe$1width="100%"$3height="auto"$5 aspect-ratio="$2/$4">');
23268
- },
23269
- // 视频类型
23270
- videoType() {
23271
- return this.configData.videoType || this.defaultConfig.videoType;
23272
- },
23273
- // 实际使用的宽高比
23274
- actualAspectRatio() {
23275
- const config = {
23276
- ...this.defaultConfig,
23277
- ...this.configData
23278
- };
23279
- return config.aspectRatio || "16:9";
23280
- },
23281
- aspectRatioValue() {
23282
- const ratio = this.actualAspectRatio;
23283
- if (!ratio || ratio === "auto") {
23284
- return null;
23285
- }
23286
- return ratio.replace(":", "/");
23287
- },
23288
- // 容器样式
23289
- containerStyle() {
23290
- const config = {
23291
- ...this.defaultConfig,
23292
- ...this.configData
23293
- };
23294
- return {
23295
- ...this.parseCustomStyle(config.customStyle)
23296
- };
23297
- },
23298
- // 包装器样式
23299
- wrapperStyle() {
23300
- const config = {
23301
- ...this.defaultConfig,
23302
- ...this.configData
23303
- };
23304
- const style = {
23305
- width: "100%",
23306
- borderRadius: `${config.borderRadius}px`,
23307
- overflow: "hidden",
23308
- display: "block",
23309
- position: "relative"
23310
- };
23311
- if (this.aspectRatioValue) {
23312
- style.aspectRatio = this.aspectRatioValue;
23313
- }
23314
- return style;
23315
- },
23316
- // 视频样式
23317
- videoStyle() {
23318
- const config = {
23319
- ...this.defaultConfig,
23320
- ...this.configData
23321
- };
23322
- const style = {
23323
- width: "100%",
23324
- display: "block",
23325
- border: "none",
23326
- outline: "none"
23327
- };
23328
- if (this.aspectRatioValue) {
23329
- style.height = "100%";
23330
- style.aspectRatio = this.aspectRatioValue;
23331
- } else {
23332
- style.height = "auto";
23333
- }
23334
- return style;
23335
- },
23336
- // 占位符样式
23337
- placeholderStyle() {
23338
- const config = {
23339
- ...this.defaultConfig,
23340
- ...this.configData
23341
- };
23342
- const style = {
23343
- width: "100%",
23344
- backgroundColor: "#f5f7fa",
23345
- border: "1px dashed #dcdfe6",
23346
- borderRadius: `${config.borderRadius}px`,
23347
- display: "flex",
23348
- flexDirection: "column",
23349
- alignItems: "center",
23350
- justifyContent: "center",
23351
- color: "#909399",
23352
- fontSize: "14px"
23353
- };
23354
- if (this.aspectRatioValue) {
23355
- style.aspectRatio = this.aspectRatioValue;
23356
- } else {
23357
- style.minHeight = "160px";
23358
- }
23359
- return style;
23360
- }
23361
- },
23362
- methods: {
23363
- // 初始化配置数据
23364
- initConfigData() {
23365
- this.configData = {
23366
- ...this.defaultConfig,
23367
- ...this.configData
23368
- };
23369
- },
23370
- // 获取配置数据
23371
- getConfigData(configData) {
23372
- this.configData = {
23373
- ...this.defaultConfig,
23374
- ...configData
23375
- };
23376
- this.updateStyles();
23377
- },
23378
- // 更新样式
23379
- updateStyles() {
23380
- this.$nextTick(() => {
23381
- this.$forceUpdate();
23382
- });
23383
- },
23384
- // 视频开始加载
23385
- onVideoLoadStart() {
23386
- this.videoLoaded = false;
23387
- this.videoError = false;
23388
- },
23389
- // 视频加载完成
23390
- onVideoLoaded() {
23391
- this.videoLoaded = true;
23392
- this.videoError = false;
23393
- },
23394
- // 视频加载失败
23395
- onVideoError() {
23396
- this.videoLoaded = false;
23397
- this.videoError = true;
23398
- },
23399
- // 解析自定义样式
23400
- parseCustomStyle(customStyle) {
23401
- if (!customStyle) return {};
23402
- try {
23403
- const styles = {};
23404
- const declarations = customStyle.split(";");
23405
- declarations.forEach(declaration => {
23406
- const [property, value] = declaration.split(":");
23407
- if (property && value) {
23408
- const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
23409
- styles[camelCaseProperty] = value.trim();
23410
- }
23411
- });
23412
- return styles;
23413
- } catch (error) {
23414
- console.warn("解析自定义样式失败:", error);
23415
- return {};
23416
- }
23417
- }
23418
- }
23419
- });
23420
- ;// ./package/cms-video/View.vue?vue&type=script&lang=js
23421
- /* harmony default export */ var cms_video_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
23422
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video/View.vue?vue&type=style&index=0&id=9d8bb9e8&prod&lang=scss&scoped=true
23423
- // extracted by mini-css-extract-plugin
23424
-
23425
- ;// ./package/cms-video/View.vue?vue&type=style&index=0&id=9d8bb9e8&prod&lang=scss&scoped=true
23426
-
23427
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
23428
- var componentNormalizer = __webpack_require__(1656);
23429
- ;// ./package/cms-video/View.vue
23430
-
23431
-
23432
-
23433
- ;
23434
-
23435
-
23436
- /* normalize component */
23437
-
23438
- var component = (0,componentNormalizer/* default */.A)(
23439
- cms_video_Viewvue_type_script_lang_js,
23440
- render,
23441
- staticRenderFns,
23442
- false,
23443
- null,
23444
- "9d8bb9e8",
23445
- null
23446
-
23447
- )
23448
-
23449
- /* harmony default export */ var View = (component.exports);
23450
-
23451
23334
  /***/ }),
23452
23335
 
23453
23336
  /***/ 1661:
@@ -24126,189 +24009,6 @@ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABz
24126
24009
 
24127
24010
  /***/ }),
24128
24011
 
24129
- /***/ 1882:
24130
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24131
-
24132
- "use strict";
24133
- // ESM COMPAT FLAG
24134
- __webpack_require__.r(__webpack_exports__);
24135
-
24136
- // EXPORTS
24137
- __webpack_require__.d(__webpack_exports__, {
24138
- "default": function() { return /* binding */ View; }
24139
- });
24140
-
24141
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video-group/View.vue?vue&type=template&id=bc32924e&scoped=true
24142
- var render = function render() {
24143
- var _vm = this,
24144
- _c = _vm._self._c;
24145
- return _c('BaseComp', _vm._b({
24146
- attrs: {
24147
- "data": _vm.data,
24148
- "nowCompId": _vm.nowCompId,
24149
- "isOpcacity": _vm.isOpcacity,
24150
- "isMask": false,
24151
- "lang": _vm.lang
24152
- },
24153
- on: {
24154
- "getConfigData": _vm.getConfigData,
24155
- "getDevice": _vm.getDevice
24156
- }
24157
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
24158
- staticClass: "cmhk-home_main"
24159
- }, [_c('div', {
24160
- staticClass: "wrap",
24161
- style: {
24162
- 'grid-template-columns': `repeat(${_vm.colNums}, 1fr)`,
24163
- 'grid-gap': `${_vm.configData.gap}px`
24164
- }
24165
- }, _vm._l(_vm.showVideoList, function (item) {
24166
- return _c('cms-video', {
24167
- key: item.componentId,
24168
- staticStyle: {
24169
- "overflow": "hidden"
24170
- },
24171
- attrs: {
24172
- "data": item,
24173
- "nowCompId": _vm.nowCompId,
24174
- "isOpcacity": _vm.isOpcacity,
24175
- "isMask": false,
24176
- "lang": _vm.lang
24177
- }
24178
- });
24179
- }), 1), _vm.isShowPannel ? [_c('div', {
24180
- staticClass: "view-more-container"
24181
- }, [_c('div', {
24182
- staticClass: "view-more-btn",
24183
- on: {
24184
- "click": _vm.foldMessText
24185
- }
24186
- }, [_c('span', {
24187
- staticClass: "view-more-text"
24188
- }, [_vm._v(" " + _vm._s(_vm.messFold ? _vm.$t("roamIndex.Collpase") : _vm.$t("roamIndex.More")) + " ")]), _c('i', {
24189
- class: ['view-more-icon', _vm.messFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down']
24190
- })])])] : _vm._e()], 2)]);
24191
- };
24192
- var staticRenderFns = [];
24193
-
24194
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
24195
- var baseComp = __webpack_require__(677);
24196
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video-group/View.vue?vue&type=script&lang=js
24197
-
24198
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
24199
- name: "cms-video-group",
24200
- components: {
24201
- BaseComp: baseComp["default"]
24202
- },
24203
- props: {
24204
- data: {
24205
- type: Object,
24206
- default: () => {
24207
- return {};
24208
- }
24209
- },
24210
- nowCompId: {
24211
- type: [String, Number],
24212
- default: ""
24213
- },
24214
- isOpcacity: {
24215
- type: Boolean,
24216
- default: true
24217
- },
24218
- lang: {
24219
- type: String,
24220
- default: "zh-HK"
24221
- }
24222
- },
24223
- data() {
24224
- return {
24225
- configData: {},
24226
- messFold: false,
24227
- // 默认配置数据
24228
- isShowPannel: false,
24229
- isMobile: false
24230
- };
24231
- },
24232
- mounted() {},
24233
- watch: {
24234
- configData: {
24235
- handler() {
24236
- this.updateStyles();
24237
- },
24238
- deep: true
24239
- }
24240
- },
24241
- computed: {
24242
- colNums() {
24243
- return this.isMobile ? this.configData.colNums_Mobile : this.configData.colNums_PC;
24244
- },
24245
- showVideoList() {
24246
- if (this.isShowPannel && !this.messFold) return this.data.childList.slice(0, this.colNums * this.configData.defaultCol);
24247
- return this.data.childList;
24248
- },
24249
- isConfigPage() {
24250
- return this.$EventBus && this.isOpcacity;
24251
- }
24252
- },
24253
- methods: {
24254
- getDevice(val) {
24255
- this.isMobile = val;
24256
- },
24257
- // 获取配置数据
24258
- getConfigData(configData) {
24259
- this.configData = {
24260
- ...this.defaultConfig,
24261
- ...configData
24262
- };
24263
- this.updateStyles();
24264
- this.isShowPannel = this.colNums * this.configData.defaultCol < this.data.childList.length;
24265
- },
24266
- // 更新样式
24267
- updateStyles() {
24268
- this.$nextTick(() => {
24269
- // 触发样式更新
24270
- this.$forceUpdate();
24271
- });
24272
- },
24273
- // 折叠/展开文本
24274
- foldMessText() {
24275
- this.messFold = !this.messFold;
24276
- }
24277
- }
24278
- });
24279
- ;// ./package/cms-video-group/View.vue?vue&type=script&lang=js
24280
- /* harmony default export */ var cms_video_group_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
24281
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video-group/View.vue?vue&type=style&index=0&id=bc32924e&prod&lang=scss&scoped=true
24282
- // extracted by mini-css-extract-plugin
24283
-
24284
- ;// ./package/cms-video-group/View.vue?vue&type=style&index=0&id=bc32924e&prod&lang=scss&scoped=true
24285
-
24286
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
24287
- var componentNormalizer = __webpack_require__(1656);
24288
- ;// ./package/cms-video-group/View.vue
24289
-
24290
-
24291
-
24292
- ;
24293
-
24294
-
24295
- /* normalize component */
24296
-
24297
- var component = (0,componentNormalizer/* default */.A)(
24298
- cms_video_group_Viewvue_type_script_lang_js,
24299
- render,
24300
- staticRenderFns,
24301
- false,
24302
- null,
24303
- "bc32924e",
24304
- null
24305
-
24306
- )
24307
-
24308
- /* harmony default export */ var View = (component.exports);
24309
-
24310
- /***/ }),
24311
-
24312
24012
  /***/ 1944:
24313
24013
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
24314
24014
 
@@ -25898,56 +25598,355 @@ var baseComp = __webpack_require__(677);
25898
25598
  },
25899
25599
  data() {
25900
25600
  return {
25901
- configList: [],
25902
- expend: "",
25903
- problemActive: 0
25601
+ configList: [],
25602
+ expend: "",
25603
+ problemActive: 0
25604
+ };
25605
+ },
25606
+ mounted() {},
25607
+ watch: {},
25608
+ methods: {
25609
+ getConfigData(configData) {
25610
+ this.configList = configData.configList;
25611
+ },
25612
+ open(item, index, event) {
25613
+ var _this$configList$this;
25614
+ console.log(event);
25615
+ this.expend = item.input1;
25616
+ (_this$configList$this = this.configList[this.problemActive]) === null || _this$configList$this === void 0 ? void 0 : _this$configList$this.contentArray.forEach((cur, curIndex) => {
25617
+ var _this$configList$this2;
25618
+ this.$set((_this$configList$this2 = this.configList[this.problemActive]) === null || _this$configList$this2 === void 0 ? void 0 : _this$configList$this2.contentArray[curIndex], "status", curIndex == index ? !item.status : false);
25619
+ });
25620
+ },
25621
+ decodeJumpUrl(url) {
25622
+ if (!url) return;
25623
+ top.location.href = url;
25624
+ }
25625
+ },
25626
+ computed: {
25627
+ _stableProblemGuide() {
25628
+ let res = this.configList || [];
25629
+ return res.map(item => {
25630
+ return {
25631
+ ...item,
25632
+ contentArray: ((item === null || item === void 0 ? void 0 : item.contentArray) || []).map(cur => ({
25633
+ ...cur,
25634
+ status: (cur === null || cur === void 0 ? void 0 : cur.status) || false
25635
+ }))
25636
+ };
25637
+ });
25638
+ }
25639
+ }
25640
+ });
25641
+ ;// ./package/cms-question/View.vue?vue&type=script&lang=js
25642
+ /* harmony default export */ var cms_question_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
25643
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-question/View.vue?vue&type=style&index=0&id=06710479&prod&lang=scss&scoped=true
25644
+ // extracted by mini-css-extract-plugin
25645
+
25646
+ ;// ./package/cms-question/View.vue?vue&type=style&index=0&id=06710479&prod&lang=scss&scoped=true
25647
+
25648
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
25649
+ var componentNormalizer = __webpack_require__(1656);
25650
+ ;// ./package/cms-question/View.vue
25651
+
25652
+
25653
+
25654
+ ;
25655
+
25656
+
25657
+ /* normalize component */
25658
+
25659
+ var component = (0,componentNormalizer/* default */.A)(
25660
+ cms_question_Viewvue_type_script_lang_js,
25661
+ render,
25662
+ staticRenderFns,
25663
+ false,
25664
+ null,
25665
+ "06710479",
25666
+ null
25667
+
25668
+ )
25669
+
25670
+ /* harmony default export */ var View = (component.exports);
25671
+
25672
+ /***/ }),
25673
+
25674
+ /***/ 2520:
25675
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
25676
+
25677
+ "use strict";
25678
+ __webpack_require__.r(__webpack_exports__);
25679
+ /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
25680
+
25681
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 5865));
25682
+ const langData = {
25683
+ input1: "描述",
25684
+ input2: "标题",
25685
+ input3: "高亮标题"
25686
+ };
25687
+ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
25688
+ input1: {
25689
+ label: "描述"
25690
+ },
25691
+ input2: {
25692
+ label: "标题"
25693
+ },
25694
+ input3: {
25695
+ label: "高亮标题"
25696
+ }
25697
+ });
25698
+ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
25699
+ /* harmony default export */ __webpack_exports__["default"] = ({
25700
+ View,
25701
+ validateSchema,
25702
+ configDataType,
25703
+ langData,
25704
+ settings: cmsCompName => {
25705
+ return (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getInitCompData)({
25706
+ cmsCompName,
25707
+ langData
25708
+ });
25709
+ }
25710
+ });
25711
+
25712
+ /***/ }),
25713
+
25714
+ /***/ 2529:
25715
+ /***/ (function(module) {
25716
+
25717
+ "use strict";
25718
+
25719
+ // `CreateIterResultObject` abstract operation
25720
+ // https://tc39.es/ecma262/#sec-createiterresultobject
25721
+ module.exports = function (value, done) {
25722
+ return { value: value, done: done };
25723
+ };
25724
+
25725
+
25726
+ /***/ }),
25727
+
25728
+ /***/ 2578:
25729
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
25730
+
25731
+ "use strict";
25732
+ // ESM COMPAT FLAG
25733
+ __webpack_require__.r(__webpack_exports__);
25734
+
25735
+ // EXPORTS
25736
+ __webpack_require__.d(__webpack_exports__, {
25737
+ "default": function() { return /* binding */ View; }
25738
+ });
25739
+
25740
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image-group/View.vue?vue&type=template&id=4dee5e5e&scoped=true
25741
+ var render = function render() {
25742
+ var _vm = this,
25743
+ _c = _vm._self._c;
25744
+ return _c('BaseComp', _vm._b({
25745
+ attrs: {
25746
+ "data": _vm.data,
25747
+ "nowCompId": _vm.nowCompId,
25748
+ "isOpcacity": _vm.isOpcacity,
25749
+ "isMask": false,
25750
+ "lang": _vm.lang
25751
+ },
25752
+ on: {
25753
+ "getConfigData": _vm.getConfigData
25754
+ }
25755
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
25756
+ staticClass: "cmhk-home_main"
25757
+ }, [_c('div', {
25758
+ staticClass: "wrap",
25759
+ style: _vm.wrapStyle
25760
+ }, _vm._l(_vm.showVideoList, function (item) {
25761
+ return _c('cms-image', {
25762
+ key: item.componentId,
25763
+ staticStyle: {
25764
+ "overflow": "hidden"
25765
+ },
25766
+ attrs: {
25767
+ "data": item,
25768
+ "nowCompId": _vm.nowCompId,
25769
+ "isOpcacity": _vm.isOpcacity,
25770
+ "isMask": false,
25771
+ "lang": _vm.lang
25772
+ }
25773
+ });
25774
+ }), 1), _vm.isShowPannel ? [_c('div', {
25775
+ staticClass: "view-more-container"
25776
+ }, [_c('div', {
25777
+ staticClass: "view-more-btn",
25778
+ on: {
25779
+ "click": _vm.foldMessText
25780
+ }
25781
+ }, [_c('span', {
25782
+ staticClass: "view-more-text"
25783
+ }, [_vm._v(" " + _vm._s(_vm.messFold ? _vm.$t("roamIndex.Collpase") : _vm.$t("roamIndex.More")) + " ")]), _c('i', {
25784
+ class: ['view-more-icon', _vm.messFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down']
25785
+ })])])] : _vm._e()], 2)]);
25786
+ };
25787
+ var staticRenderFns = [];
25788
+
25789
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
25790
+ var baseComp = __webpack_require__(677);
25791
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image-group/View.vue?vue&type=script&lang=js
25792
+
25793
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
25794
+ name: "cms-image-group",
25795
+ components: {
25796
+ BaseComp: baseComp["default"]
25797
+ },
25798
+ props: {
25799
+ data: {
25800
+ type: Object,
25801
+ default: () => {
25802
+ return {};
25803
+ }
25804
+ },
25805
+ nowCompId: {
25806
+ type: [String, Number],
25807
+ default: ""
25808
+ },
25809
+ isOpcacity: {
25810
+ type: Boolean,
25811
+ default: true
25812
+ },
25813
+ lang: {
25814
+ type: String,
25815
+ default: "zh-HK"
25816
+ }
25817
+ },
25818
+ data() {
25819
+ return {
25820
+ configData: {},
25821
+ messFold: false,
25822
+ // 默认配置数据
25823
+ defaultConfig: {
25824
+ colNums: 1,
25825
+ defaultCol: 12,
25826
+ gap: 10,
25827
+ cornerRadius: {
25828
+ topLeft: "8",
25829
+ topRight: "8",
25830
+ bottomLeft: "8",
25831
+ bottomRight: "8"
25832
+ }
25833
+ },
25834
+ isShowPannel: false
25904
25835
  };
25905
25836
  },
25906
25837
  mounted() {},
25907
- watch: {},
25908
- methods: {
25909
- getConfigData(configData) {
25910
- this.configList = configData.configList;
25838
+ watch: {
25839
+ configData: {
25840
+ handler() {
25841
+ this.updateStyles();
25842
+ },
25843
+ deep: true
25844
+ }
25845
+ },
25846
+ computed: {
25847
+ showVideoList() {
25848
+ if (this.isShowPannel && !this.messFold) return this.data.childList.slice(0, this.configData.colNums * this.configData.defaultCol);
25849
+ return this.data.childList;
25911
25850
  },
25912
- open(item, index, event) {
25913
- var _this$configList$this;
25914
- console.log(event);
25915
- this.expend = item.input1;
25916
- (_this$configList$this = this.configList[this.problemActive]) === null || _this$configList$this === void 0 ? void 0 : _this$configList$this.contentArray.forEach((cur, curIndex) => {
25917
- var _this$configList$this2;
25918
- this.$set((_this$configList$this2 = this.configList[this.problemActive]) === null || _this$configList$this2 === void 0 ? void 0 : _this$configList$this2.contentArray[curIndex], "status", curIndex == index ? !item.status : false);
25919
- });
25851
+ isConfigPage() {
25852
+ return this.$EventBus && this.isOpcacity;
25920
25853
  },
25921
- decodeJumpUrl(url) {
25922
- if (!url) return;
25923
- top.location.href = url;
25854
+ borderRadiusStyle() {
25855
+ const config = {
25856
+ ...this.defaultConfig,
25857
+ ...this.configData
25858
+ };
25859
+ const radiusConfig = config.cornerRadius || {};
25860
+ const legacyMap = {
25861
+ topLeft: config.borderRadiusTopLeft,
25862
+ topRight: config.borderRadiusTopRight,
25863
+ bottomLeft: config.borderRadiusBottomLeft,
25864
+ bottomRight: config.borderRadiusBottomRight
25865
+ };
25866
+ const formatRadius = value => {
25867
+ if (value === "full") return "9999px";
25868
+ if (value === undefined || value === null || value === "") {
25869
+ return "0px";
25870
+ }
25871
+ const num = Number(value);
25872
+ return Number.isNaN(num) ? "0px" : `${num}px`;
25873
+ };
25874
+ const resolveValue = corner => {
25875
+ const value = radiusConfig[corner] !== undefined && radiusConfig[corner] !== null ? radiusConfig[corner] : legacyMap[corner];
25876
+ return formatRadius(value);
25877
+ };
25878
+ return {
25879
+ topLeft: resolveValue("topLeft"),
25880
+ topRight: resolveValue("topRight"),
25881
+ bottomLeft: resolveValue("bottomLeft"),
25882
+ bottomRight: resolveValue("bottomRight")
25883
+ };
25884
+ },
25885
+ wrapStyle() {
25886
+ const config = {
25887
+ ...this.defaultConfig,
25888
+ ...this.configData
25889
+ };
25890
+ return {
25891
+ gridTemplateColumns: `repeat(${config.colNums}, 1fr)`,
25892
+ gridGap: `${config.gap}px`,
25893
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
25894
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
25895
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
25896
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
25897
+ overflow: "hidden"
25898
+ };
25924
25899
  }
25925
25900
  },
25926
- computed: {
25927
- _stableProblemGuide() {
25928
- let res = this.configList || [];
25929
- return res.map(item => {
25930
- return {
25931
- ...item,
25932
- contentArray: ((item === null || item === void 0 ? void 0 : item.contentArray) || []).map(cur => ({
25933
- ...cur,
25934
- status: (cur === null || cur === void 0 ? void 0 : cur.status) || false
25935
- }))
25936
- };
25901
+ methods: {
25902
+ // 获取配置数据
25903
+ getConfigData(configData) {
25904
+ this.configData = this.getMergedConfig(configData);
25905
+ this.updateStyles();
25906
+ this.isShowPannel = this.configData.colNums * this.configData.defaultCol < this.data.childList.length;
25907
+ },
25908
+ // 更新样式
25909
+ updateStyles() {
25910
+ this.$nextTick(() => {
25911
+ // 触发样式更新
25912
+ this.$forceUpdate();
25937
25913
  });
25914
+ },
25915
+ // 折叠/展开文本
25916
+ foldMessText() {
25917
+ this.messFold = !this.messFold;
25918
+ },
25919
+ getMergedConfig(configData = {}) {
25920
+ const mergedCorner = {
25921
+ ...(this.defaultConfig.cornerRadius || {})
25922
+ };
25923
+ if (configData.cornerRadius) {
25924
+ Object.assign(mergedCorner, configData.cornerRadius);
25925
+ } else {
25926
+ var _configData$borderRad, _configData$borderRad2, _configData$borderRad3, _configData$borderRad4;
25927
+ mergedCorner.topLeft = (_configData$borderRad = configData.borderRadiusTopLeft) === null || _configData$borderRad === void 0 ? void 0 : _configData$borderRad.mergedCorner.topLeft;
25928
+ mergedCorner.topRight = (_configData$borderRad2 = configData.borderRadiusTopRight) === null || _configData$borderRad2 === void 0 ? void 0 : _configData$borderRad2.mergedCorner.topRight;
25929
+ mergedCorner.bottomLeft = (_configData$borderRad3 = configData.borderRadiusBottomLeft) === null || _configData$borderRad3 === void 0 ? void 0 : _configData$borderRad3.mergedCorner.bottomLeft;
25930
+ mergedCorner.bottomRight = (_configData$borderRad4 = configData.borderRadiusBottomRight) === null || _configData$borderRad4 === void 0 ? void 0 : _configData$borderRad4.mergedCorner.bottomRight;
25931
+ }
25932
+ return {
25933
+ ...this.defaultConfig,
25934
+ ...configData,
25935
+ cornerRadius: mergedCorner
25936
+ };
25938
25937
  }
25939
25938
  }
25940
25939
  });
25941
- ;// ./package/cms-question/View.vue?vue&type=script&lang=js
25942
- /* harmony default export */ var cms_question_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
25943
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-question/View.vue?vue&type=style&index=0&id=06710479&prod&lang=scss&scoped=true
25940
+ ;// ./package/cms-image-group/View.vue?vue&type=script&lang=js
25941
+ /* harmony default export */ var cms_image_group_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
25942
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image-group/View.vue?vue&type=style&index=0&id=4dee5e5e&prod&lang=scss&scoped=true
25944
25943
  // extracted by mini-css-extract-plugin
25945
25944
 
25946
- ;// ./package/cms-question/View.vue?vue&type=style&index=0&id=06710479&prod&lang=scss&scoped=true
25945
+ ;// ./package/cms-image-group/View.vue?vue&type=style&index=0&id=4dee5e5e&prod&lang=scss&scoped=true
25947
25946
 
25948
25947
  // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
25949
25948
  var componentNormalizer = __webpack_require__(1656);
25950
- ;// ./package/cms-question/View.vue
25949
+ ;// ./package/cms-image-group/View.vue
25951
25950
 
25952
25951
 
25953
25952
 
@@ -25957,72 +25956,18 @@ var componentNormalizer = __webpack_require__(1656);
25957
25956
  /* normalize component */
25958
25957
 
25959
25958
  var component = (0,componentNormalizer/* default */.A)(
25960
- cms_question_Viewvue_type_script_lang_js,
25959
+ cms_image_group_Viewvue_type_script_lang_js,
25961
25960
  render,
25962
25961
  staticRenderFns,
25963
25962
  false,
25964
25963
  null,
25965
- "06710479",
25964
+ "4dee5e5e",
25966
25965
  null
25967
25966
 
25968
25967
  )
25969
25968
 
25970
25969
  /* harmony default export */ var View = (component.exports);
25971
25970
 
25972
- /***/ }),
25973
-
25974
- /***/ 2520:
25975
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
25976
-
25977
- "use strict";
25978
- __webpack_require__.r(__webpack_exports__);
25979
- /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
25980
-
25981
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 5865));
25982
- const langData = {
25983
- input1: "描述",
25984
- input2: "标题",
25985
- input3: "高亮标题"
25986
- };
25987
- const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
25988
- input1: {
25989
- label: "描述"
25990
- },
25991
- input2: {
25992
- label: "标题"
25993
- },
25994
- input3: {
25995
- label: "高亮标题"
25996
- }
25997
- });
25998
- const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
25999
- /* harmony default export */ __webpack_exports__["default"] = ({
26000
- View,
26001
- validateSchema,
26002
- configDataType,
26003
- langData,
26004
- settings: cmsCompName => {
26005
- return (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getInitCompData)({
26006
- cmsCompName,
26007
- langData
26008
- });
26009
- }
26010
- });
26011
-
26012
- /***/ }),
26013
-
26014
- /***/ 2529:
26015
- /***/ (function(module) {
26016
-
26017
- "use strict";
26018
-
26019
- // `CreateIterResultObject` abstract operation
26020
- // https://tc39.es/ecma262/#sec-createiterresultobject
26021
- module.exports = function (value, done) {
26022
- return { value: value, done: done };
26023
- };
26024
-
26025
-
26026
25971
  /***/ }),
26027
25972
 
26028
25973
  /***/ 2584:
@@ -26745,13 +26690,35 @@ module.exports = function (iterable, unboundFunction, options) {
26745
26690
  __webpack_require__.r(__webpack_exports__);
26746
26691
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
26747
26692
 
26748
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 1882));
26693
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 304));
26749
26694
  const langData = {
26750
26695
  colNums_PC: 1,
26751
26696
  colNums_Mobile: 1,
26752
26697
  defaultCol: 12,
26753
- gap: 10
26698
+ gap: 10,
26699
+ cornerRadius: {
26700
+ topLeft: "8",
26701
+ topRight: "8",
26702
+ bottomLeft: "8",
26703
+ bottomRight: "8"
26704
+ }
26754
26705
  };
26706
+ const radiusOptions = [{
26707
+ label: "0",
26708
+ value: "0"
26709
+ }, {
26710
+ label: "4",
26711
+ value: "4"
26712
+ }, {
26713
+ label: "8",
26714
+ value: "8"
26715
+ }, {
26716
+ label: "16",
26717
+ value: "16"
26718
+ }, {
26719
+ label: "全圆角",
26720
+ value: "full"
26721
+ }];
26755
26722
  const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
26756
26723
  // 布局配置
26757
26724
  colNums_PC: {
@@ -26793,6 +26760,11 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
26793
26760
  step: 1,
26794
26761
  isCol: true,
26795
26762
  unit: "行"
26763
+ },
26764
+ cornerRadius: {
26765
+ label: "圆角",
26766
+ widgetType: "CornerRadiusPicker",
26767
+ options: radiusOptions
26796
26768
  }
26797
26769
  });
26798
26770
  const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
@@ -27110,7 +27082,7 @@ module.exports = userAgent ? String(userAgent) : '';
27110
27082
  /* harmony export */ WL: function() { return /* binding */ queryV1; },
27111
27083
  /* harmony export */ yX: function() { return /* binding */ getCommodityDetails; }
27112
27084
  /* harmony export */ });
27113
- /* unused harmony exports saveInstance, queryInstanceConfig, queryCategoryInfo, queryCommodityList, listV1, queryMenuList, uploadImage, uploadVideo, queryDeptList, queryBreadCrumbsList, queryPageHfList, queryUrl, createPage, queryPageInfo, editPage, getPreDictonaryList, saveTemporaryInfo, getTemporaryInfo, queryApproveList, queryComponentByColumn, queryCollections, collectionComponent, syncComponentConfigure, queryComponentConfigure, queryOperateList, updateDefaultConfig, omniHeartbeat, emallHeartbeat, qryBtList */
27085
+ /* unused harmony exports saveInstance, queryInstanceConfig, queryCategoryInfo, queryCommodityList, listV1, queryMenuList, uploadImage, uploadVideo, queryDeptList, queryBreadCrumbsList, queryPageHfList, queryUrl, createPage, queryPageInfo, editPage, getPreDictonaryList, saveTemporaryInfo, getTemporaryInfo, queryApproveList, queryComponentByColumn, queryCollections, collectionComponent, syncComponentConfigure, queryComponentConfigure, queryOperateList, updateDefaultConfig, omniHeartbeat, emallHeartbeat, qryBtList, uploadToResourceLibrary, getResourceLibraryList */
27114
27086
  /* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9688);
27115
27087
 
27116
27088
 
@@ -27195,9 +27167,9 @@ function uploadVideo(data) {
27195
27167
  data
27196
27168
  });
27197
27169
  }
27198
- /**
27199
- * 查询部门列表
27200
- * @returns {Promise}
27170
+ /**
27171
+ * 查询部门列表
27172
+ * @returns {Promise}
27201
27173
  */
27202
27174
  function queryDeptList(data) {
27203
27175
  return request({
@@ -27207,9 +27179,9 @@ function queryDeptList(data) {
27207
27179
  });
27208
27180
  }
27209
27181
 
27210
- /**
27211
- * 查询面包屑列表
27212
- * @returns {Promise}
27182
+ /**
27183
+ * 查询面包屑列表
27184
+ * @returns {Promise}
27213
27185
  */
27214
27186
  function queryBreadCrumbsList(data) {
27215
27187
  return request({
@@ -27219,9 +27191,9 @@ function queryBreadCrumbsList(data) {
27219
27191
  });
27220
27192
  }
27221
27193
 
27222
- /**
27223
- * 查询页头页脚列表
27224
- * @returns {Promise}
27194
+ /**
27195
+ * 查询页头页脚列表
27196
+ * @returns {Promise}
27225
27197
  */
27226
27198
  function queryPageHfList(data) {
27227
27199
  return request({
@@ -27231,9 +27203,9 @@ function queryPageHfList(data) {
27231
27203
  });
27232
27204
  }
27233
27205
 
27234
- /**
27235
- * 查询URL接口
27236
- * @returns {Promise}
27206
+ /**
27207
+ * 查询URL接口
27208
+ * @returns {Promise}
27237
27209
  */
27238
27210
  function queryUrl(data) {
27239
27211
  return request({
@@ -27243,10 +27215,10 @@ function queryUrl(data) {
27243
27215
  });
27244
27216
  }
27245
27217
 
27246
- /**
27247
- * 创建页面
27248
- * @param {Object} pageData 页面数据
27249
- * @returns {Promise}
27218
+ /**
27219
+ * 创建页面
27220
+ * @param {Object} pageData 页面数据
27221
+ * @returns {Promise}
27250
27222
  */
27251
27223
  function createPage(data) {
27252
27224
  return request({
@@ -27255,9 +27227,9 @@ function createPage(data) {
27255
27227
  data
27256
27228
  });
27257
27229
  }
27258
- /**
27259
- * 查询页面信息
27260
- * @returns {Promise}
27230
+ /**
27231
+ * 查询页面信息
27232
+ * @returns {Promise}
27261
27233
  */
27262
27234
  function queryPageInfo(data) {
27263
27235
  return request({
@@ -27267,9 +27239,9 @@ function queryPageInfo(data) {
27267
27239
  });
27268
27240
  }
27269
27241
 
27270
- /**
27271
- * 查询页面信息
27272
- * @returns {Promise}
27242
+ /**
27243
+ * 查询页面信息
27244
+ * @returns {Promise}
27273
27245
  */
27274
27246
  function editPage(data) {
27275
27247
  return request({
@@ -27278,9 +27250,9 @@ function editPage(data) {
27278
27250
  data
27279
27251
  });
27280
27252
  }
27281
- /**
27282
- * 字典值
27283
- * @returns {Promise}
27253
+ /**
27254
+ * 字典值
27255
+ * @returns {Promise}
27284
27256
  */
27285
27257
  function getPreDictonaryList(data) {
27286
27258
  return request({
@@ -27290,9 +27262,9 @@ function getPreDictonaryList(data) {
27290
27262
  });
27291
27263
  }
27292
27264
 
27293
- /**
27294
- * 无痕浏览
27295
- * @returns {Promise}
27265
+ /**
27266
+ * 无痕浏览
27267
+ * @returns {Promise}
27296
27268
  */
27297
27269
  function saveTemporaryInfo(data) {
27298
27270
  return request({
@@ -27301,9 +27273,9 @@ function saveTemporaryInfo(data) {
27301
27273
  data
27302
27274
  });
27303
27275
  }
27304
- /**
27305
- * 无痕浏览
27306
- * @returns {Promise}
27276
+ /**
27277
+ * 无痕浏览
27278
+ * @returns {Promise}
27307
27279
  */
27308
27280
  function getTemporaryInfo(data) {
27309
27281
  return request({
@@ -27312,9 +27284,9 @@ function getTemporaryInfo(data) {
27312
27284
  data
27313
27285
  });
27314
27286
  }
27315
- /**
27316
- * 查询操作记录
27317
- * @returns {Promise}
27287
+ /**
27288
+ * 查询操作记录
27289
+ * @returns {Promise}
27318
27290
  */
27319
27291
  function queryApproveList(data) {
27320
27292
  return request({
@@ -27323,8 +27295,8 @@ function queryApproveList(data) {
27323
27295
  data
27324
27296
  });
27325
27297
  }
27326
- /**
27327
- * 通过栏目查询组件列表
27298
+ /**
27299
+ * 通过栏目查询组件列表
27328
27300
  */
27329
27301
  function queryComponentByColumn(data) {
27330
27302
  return request({
@@ -27333,8 +27305,8 @@ function queryComponentByColumn(data) {
27333
27305
  data
27334
27306
  });
27335
27307
  }
27336
- /**
27337
- * 查询收藏组件列表
27308
+ /**
27309
+ * 查询收藏组件列表
27338
27310
  */
27339
27311
  function queryCollections(data) {
27340
27312
  return request({
@@ -27343,8 +27315,8 @@ function queryCollections(data) {
27343
27315
  data
27344
27316
  });
27345
27317
  }
27346
- /**
27347
- * 收藏组件
27318
+ /**
27319
+ * 收藏组件
27348
27320
  */
27349
27321
  function collectionComponent(data) {
27350
27322
  return request({
@@ -27353,8 +27325,8 @@ function collectionComponent(data) {
27353
27325
  data
27354
27326
  });
27355
27327
  }
27356
- /**
27357
- * 保存/删除/修改组件配置
27328
+ /**
27329
+ * 保存/删除/修改组件配置
27358
27330
  */
27359
27331
  function syncComponentConfigure(data) {
27360
27332
  return request({
@@ -27363,8 +27335,8 @@ function syncComponentConfigure(data) {
27363
27335
  data
27364
27336
  });
27365
27337
  }
27366
- /**
27367
- * 查询已保存组件列表
27338
+ /**
27339
+ * 查询已保存组件列表
27368
27340
  */
27369
27341
  function queryComponentConfigure(data) {
27370
27342
  return request({
@@ -27416,6 +27388,27 @@ function queryViaComponentByCode(data) {
27416
27388
  });
27417
27389
  }
27418
27390
 
27391
+ // 本地上传到资源库
27392
+ function uploadToResourceLibrary(formData) {
27393
+ return request({
27394
+ method: "post",
27395
+ url: "/omni-channel-service-console/rest/cmsUpload/common/onlineshop",
27396
+ data: formData,
27397
+ headers: {
27398
+ "Content-Type": "multipart/form-data"
27399
+ }
27400
+ });
27401
+ }
27402
+
27403
+ // 资源库列表查询
27404
+ function getResourceLibraryList(params) {
27405
+ return request({
27406
+ method: "post",
27407
+ url: "/omni-channel-service-console/rest/cmsUpload/list",
27408
+ data: params
27409
+ });
27410
+ }
27411
+
27419
27412
  /***/ }),
27420
27413
 
27421
27414
  /***/ 2946:
@@ -27857,16 +27850,16 @@ module.exports = Math.pow;
27857
27850
  __webpack_require__.r(__webpack_exports__);
27858
27851
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
27859
27852
 
27860
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 7800));
27853
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 2578));
27861
27854
  const langData = {
27862
27855
  colNums: 1,
27863
27856
  defaultCol: 12,
27864
27857
  gap: 10,
27865
27858
  cornerRadius: {
27866
- topLeft: "0",
27867
- topRight: "0",
27868
- bottomLeft: "0",
27869
- bottomRight: "0"
27859
+ topLeft: "8",
27860
+ topRight: "8",
27861
+ bottomLeft: "8",
27862
+ bottomRight: "8"
27870
27863
  }
27871
27864
  };
27872
27865
  const radiusOptions = [{
@@ -28332,7 +28325,7 @@ module.exports = function (O) {
28332
28325
  __webpack_require__.r(__webpack_exports__);
28333
28326
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
28334
28327
 
28335
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 1659));
28328
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 6722));
28336
28329
  const langData = {
28337
28330
  // 视频源设置
28338
28331
  title: '',
@@ -28349,10 +28342,32 @@ const langData = {
28349
28342
  aspectRatio: "16:9",
28350
28343
  // 样式设置
28351
28344
  borderRadius: 0,
28345
+ cornerRadius: {
28346
+ topLeft: "8",
28347
+ topRight: "8",
28348
+ bottomLeft: "8",
28349
+ bottomRight: "8"
28350
+ },
28352
28351
  // 高级配置
28353
28352
  customClass: "",
28354
28353
  customStyle: ""
28355
28354
  };
28355
+ const radiusOptions = [{
28356
+ label: "0",
28357
+ value: "0"
28358
+ }, {
28359
+ label: "4",
28360
+ value: "4"
28361
+ }, {
28362
+ label: "8",
28363
+ value: "8"
28364
+ }, {
28365
+ label: "16",
28366
+ value: "16"
28367
+ }, {
28368
+ label: "全圆角",
28369
+ value: "full"
28370
+ }];
28356
28371
  const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
28357
28372
  // 视频源设置配置
28358
28373
  title: {
@@ -28430,13 +28445,10 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
28430
28445
  }]
28431
28446
  },
28432
28447
  // 样式设置配置
28433
- borderRadius: {
28434
- label: "圆角(px)",
28435
- widgetType: "el-input-number",
28436
- size: "small",
28437
- min: 0,
28438
- max: 100,
28439
- step: 1
28448
+ cornerRadius: {
28449
+ label: "圆角",
28450
+ widgetType: "CornerRadiusPicker",
28451
+ options: radiusOptions
28440
28452
  }
28441
28453
 
28442
28454
  // 高级配置
@@ -28718,7 +28730,7 @@ module.exports = function (argument) {
28718
28730
  __webpack_require__.r(__webpack_exports__);
28719
28731
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
28720
28732
 
28721
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 153));
28733
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 9383));
28722
28734
  const langData = {
28723
28735
  // 图片设置
28724
28736
  remark: "",
@@ -28728,10 +28740,10 @@ const langData = {
28728
28740
  // 样式设置
28729
28741
  borderRadius: 0,
28730
28742
  cornerRadius: {
28731
- topLeft: "0",
28732
- topRight: "0",
28733
- bottomLeft: "0",
28734
- bottomRight: "0"
28743
+ topLeft: "8",
28744
+ topRight: "8",
28745
+ bottomLeft: "8",
28746
+ bottomRight: "8"
28735
28747
  },
28736
28748
  objectFit: "cover",
28737
28749
  // 交互功能
@@ -36785,7 +36797,23 @@ $({ target: 'Iterator', proto: true, real: true }, {
36785
36797
  __webpack_require__.r(__webpack_exports__);
36786
36798
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
36787
36799
 
36788
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 4552));
36800
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 579));
36801
+ const radiusOptions = [{
36802
+ label: "0",
36803
+ value: 0
36804
+ }, {
36805
+ label: "4",
36806
+ value: 4
36807
+ }, {
36808
+ label: "8",
36809
+ value: 8
36810
+ }, {
36811
+ label: "16",
36812
+ value: 16
36813
+ }, {
36814
+ label: "全圆角",
36815
+ value: "full"
36816
+ }];
36789
36817
 
36790
36818
  // 默认配置数据
36791
36819
  const langData = {
@@ -36796,7 +36824,7 @@ const langData = {
36796
36824
  borderWidth: 0,
36797
36825
  borderStyle: "solid",
36798
36826
  borderColor: "",
36799
- borderRadius: 0,
36827
+ borderRadius: 8,
36800
36828
  // 背景设置
36801
36829
  backgroundColor: "",
36802
36830
  backgroundImage: "",
@@ -36859,12 +36887,9 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
36859
36887
  predefine: ["#262729", "rgb(36,38,40,0.8)", "rgb(36,38,40,0.5)", "#2F85FF", "#D6197F", "#52C41A", "#f48427", "#FFFFFF"]
36860
36888
  },
36861
36889
  borderRadius: {
36862
- label: "圆角(px)",
36863
- widgetType: "el-input-number",
36864
- size: "small",
36865
- min: 0,
36866
- max: 100,
36867
- step: 1
36890
+ label: "圆角",
36891
+ widgetType: "el-select",
36892
+ options: radiusOptions
36868
36893
  },
36869
36894
  // 背景设置配置
36870
36895
  backgroundColor: {
@@ -39802,470 +39827,6 @@ var component = (0,componentNormalizer/* default */.A)(
39802
39827
 
39803
39828
  /***/ }),
39804
39829
 
39805
- /***/ 4552:
39806
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
39807
-
39808
- "use strict";
39809
- // ESM COMPAT FLAG
39810
- __webpack_require__.r(__webpack_exports__);
39811
-
39812
- // EXPORTS
39813
- __webpack_require__.d(__webpack_exports__, {
39814
- "default": function() { return /* binding */ View; }
39815
- });
39816
-
39817
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
39818
- var es_iterator_constructor = __webpack_require__(8111);
39819
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js
39820
- var es_iterator_drop = __webpack_require__(9314);
39821
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-column-card/View.vue?vue&type=template&id=155a8242&scoped=true
39822
-
39823
-
39824
-
39825
-
39826
- var render = function render() {
39827
- var _vm = this,
39828
- _c = _vm._self._c;
39829
- return _c('BaseComp', _vm._b({
39830
- attrs: {
39831
- "data": _vm.data,
39832
- "nowCompId": _vm.nowCompId,
39833
- "isOpcacity": _vm.isOpcacity,
39834
- "isMask": false,
39835
- "lang": _vm.lang,
39836
- "showDel": false
39837
- },
39838
- on: {
39839
- "getConfigData": _vm.getConfigData
39840
- }
39841
- }, 'BaseComp', _vm.$attrs, false), [_vm.isConfigPage ? _c('div', {
39842
- staticClass: "main_drag hoverBorderClass",
39843
- style: _vm.cardContainerStyle,
39844
- attrs: {
39845
- "id": `cardTarget${_vm.data.componentId}`
39846
- },
39847
- on: {
39848
- "dragover": _vm.dragover,
39849
- "dragend": function ($event) {
39850
- _vm.showAddCom = false;
39851
- },
39852
- "drop": _vm.drop
39853
- }
39854
- }, [_c('Draggable', {
39855
- staticStyle: {
39856
- "position": "relative"
39857
- },
39858
- attrs: {
39859
- "group": _vm.groupConfigForMain,
39860
- "chosen-class": "chosen",
39861
- "force-fallback": "true",
39862
- "animation": "1000",
39863
- "move": _vm.onMove
39864
- },
39865
- on: {
39866
- "start": _vm.onStart,
39867
- "end": function ($event) {
39868
- _vm.showAddCom = false;
39869
- }
39870
- },
39871
- model: {
39872
- value: _vm.data.childList,
39873
- callback: function ($$v) {
39874
- _vm.$set(_vm.data, "childList", $$v);
39875
- },
39876
- expression: "data.childList"
39877
- }
39878
- }, [_vm._l(_vm.data.childList, function (item, index) {
39879
- return _c('div', {
39880
- key: item.componentId,
39881
- staticStyle: {
39882
- "position": "relative"
39883
- }
39884
- }, [_vm.showAddCom ? _c('div', {
39885
- staticClass: "up_insert",
39886
- attrs: {
39887
- "id": `${item.componentId}-cardTargetup`
39888
- }
39889
- }, [_c('i', {
39890
- staticClass: "icon-up",
39891
- attrs: {
39892
- "id": `${item.componentId}-upi`
39893
- }
39894
- }), _c('span', {
39895
- attrs: {
39896
- "id": `${item.componentId}-upspan`
39897
- }
39898
- }, [_vm._v("插入组件")])]) : _vm._e(), _c(item.cmsCompName, {
39899
- tag: "component",
39900
- style: {
39901
- marginTop: _vm.showAddCom && index == 0 ? '20px' : '0px'
39902
- },
39903
- attrs: {
39904
- "data": item,
39905
- "lang": _vm.lang,
39906
- "isOpcacity": _vm.isOpcacity,
39907
- "nowCompId": _vm.nowCompId,
39908
- "showCmhkMain": false
39909
- }
39910
- })], 1);
39911
- }), _vm.showAddCom ? _c('div', {
39912
- staticClass: "up_insert insert_bottom",
39913
- style: {
39914
- bottom: _vm.data.childList.length ? '0px' : '-24px'
39915
- },
39916
- attrs: {
39917
- "id": `-cardTargetdown`
39918
- }
39919
- }, [_c('i', {
39920
- staticClass: "icon-up"
39921
- }), _c('span', [_vm._v("插入组件")])]) : _vm._e()], 2)], 1) : _c('cms-view', _vm._b({
39922
- style: _vm.cardContainerStyle,
39923
- attrs: {
39924
- "data": _vm.data.childList,
39925
- "lang": _vm.lang,
39926
- "isOpcacity": false,
39927
- "showCmhkMain": false
39928
- }
39929
- }, 'cms-view', _vm.$attrs, false))], 1);
39930
- };
39931
- var staticRenderFns = [];
39932
-
39933
- ;// ./package/cms-column-card/View.vue?vue&type=template&id=155a8242&scoped=true
39934
-
39935
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
39936
- var es_array_push = __webpack_require__(4114);
39937
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
39938
- var baseComp = __webpack_require__(677);
39939
- // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
39940
- var vuedraggable_umd = __webpack_require__(9014);
39941
- var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);
39942
- // EXTERNAL MODULE: ./package/baseConfig.js
39943
- var baseConfig = __webpack_require__(2128);
39944
- // EXTERNAL MODULE: ./src/views/standard_page.js
39945
- var standard_page = __webpack_require__(521);
39946
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-column-card/View.vue?vue&type=script&lang=js
39947
-
39948
-
39949
-
39950
-
39951
-
39952
-
39953
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
39954
- name: "cms-column-card",
39955
- components: {
39956
- BaseComp: baseComp["default"],
39957
- Draggable: (vuedraggable_umd_default())
39958
- },
39959
- props: {
39960
- data: {
39961
- type: Object,
39962
- default: () => {
39963
- return {};
39964
- }
39965
- },
39966
- nowCompId: {
39967
- type: [String, Number],
39968
- default: ""
39969
- },
39970
- isOpcacity: {
39971
- type: Boolean,
39972
- default: true
39973
- },
39974
- lang: {
39975
- type: String,
39976
- default: "zh-HK"
39977
- },
39978
- isMobile: {
39979
- type: Boolean,
39980
- default: false
39981
- },
39982
- mobileLayout: {
39983
- type: String,
39984
- default: ""
39985
- }
39986
- },
39987
- data() {
39988
- return {
39989
- configData: {},
39990
- messFold: true,
39991
- showAddCom: false,
39992
- temporaryList: []
39993
- };
39994
- },
39995
- computed: {
39996
- isConfigPage() {
39997
- return this.$EventBus && this.isOpcacity;
39998
- },
39999
- groupConfigForMain() {
40000
- return {
40001
- name: "task",
40002
- pull: true,
40003
- // A列表的元素可以被拖出
40004
- put: (to, from, dragEl) => {
40005
- console.log(from.el.classList);
40006
- if (from.el.classList.contains("main_drag")) {
40007
- const dataId = this.findFirstComponentKey(dragEl);
40008
- const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column"];
40009
- console.log("allowedComponents", dataId);
40010
- if (dataId === "cms-column") {
40011
- if (!this.checkColumnNestingLevel()) {
40012
- console.log("cms-column 嵌套层级超出限制");
40013
- return false;
40014
- }
40015
- }
40016
- return allowedComponents.includes(dataId);
40017
- }
40018
- return true;
40019
- }
40020
- };
40021
- },
40022
- // 卡片容器样式
40023
- cardContainerStyle() {
40024
- return {
40025
- backgroundImage: this.configData.backgroundImage ? `url('${this.configData.backgroundImage}')` : "none",
40026
- backgroundSize: "cover",
40027
- backgroundRepeat: "no-repeat",
40028
- backgroundPosition: "center center",
40029
- height: this.getContainerHeight(),
40030
- border: this.getContainerBorder(),
40031
- borderRadius: this.getContainerBorderRadius(),
40032
- backgroundColor: this.configData.backgroundColor || "transparent",
40033
- boxShadow: this.configData.boxShadow || "none"
40034
- };
40035
- }
40036
- },
40037
- mounted() {
40038
- if (this.$EventBus) {
40039
- this.$EventBus.$on("handleDragEnd", () => {
40040
- this.showAddCom = false;
40041
- });
40042
- }
40043
- },
40044
- watch: {},
40045
- methods: {
40046
- findFirstComponentKey(root) {
40047
- var _root$querySelector;
40048
- if (!root) return null;
40049
-
40050
- // 若起点自身就有
40051
- if (root.nodeType === 1 && root.hasAttribute("component-key")) {
40052
- return root.getAttribute("component-key");
40053
- }
40054
-
40055
- // 向下查找第一个匹配的后代
40056
- const el = (_root$querySelector = root.querySelector) === null || _root$querySelector === void 0 ? void 0 : _root$querySelector.call(root, "[component-key]");
40057
- return el ? el.getAttribute("component-key") : null;
40058
- },
40059
- // 获取容器高度
40060
- getContainerHeight() {
40061
- if (this.configData.heightType === "fixed") {
40062
- return `${this.configData.fixedHeight}px`;
40063
- }
40064
- return this.isMobile && this.mobileLayout == "vertical" ? "auto" : "100%";
40065
- },
40066
- // 获取容器边框
40067
- getContainerBorder() {
40068
- if (this.configData.borderWidth) {
40069
- return `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}`;
40070
- }
40071
- return "none";
40072
- },
40073
- // 获取容器圆角
40074
- getContainerBorderRadius() {
40075
- if (this.configData.borderRadius) {
40076
- return `${this.configData.borderRadius}px`;
40077
- }
40078
- return "0";
40079
- },
40080
- getConfigData(configData) {
40081
- this.configData = configData;
40082
- },
40083
- foldMessText() {
40084
- this.messFold = !this.messFold;
40085
- },
40086
- decodeJumpUrl(url) {
40087
- if (!url) return;
40088
- top.location.href = url;
40089
- },
40090
- onStart(evt) {
40091
- console.log("drag start in column-card", evt);
40092
- this.showAddCom = true;
40093
- },
40094
- // 限制拖拽的组件类型
40095
- onMove(evt) {
40096
- const {
40097
- draggedContext
40098
- } = evt;
40099
-
40100
- // 允许的组件类型
40101
- const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
40102
- ];
40103
-
40104
- // 如果是从外部拖入的组件
40105
- if (draggedContext && draggedContext.element) {
40106
- const componentType = draggedContext.element.cmsCompName;
40107
- if (componentType && !allowedComponents.includes(componentType)) {
40108
- console.log("draggedContext.element", draggedContext.element);
40109
- console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
40110
- return false;
40111
- }
40112
-
40113
- // 特殊处理 cms-column:检查嵌套层级
40114
- if (componentType === "cms-column") {
40115
- if (!this.checkColumnNestingLevel()) {
40116
- console.log("cms-column 嵌套层级超出限制");
40117
- return false;
40118
- }
40119
- }
40120
- }
40121
- return true;
40122
- },
40123
- // 检查 cms-column 嵌套层级
40124
- checkColumnNestingLevel() {
40125
- // 检查当前 column-card 是否已经在 cms-column 内部
40126
- let parent = this.$parent;
40127
- let columnDepth = 0;
40128
- while (parent) {
40129
- // 检查父组件是否是 cms-column 或包含 cms-column
40130
- if (parent.$options.name === "cms-column" || parent.$data && parent.$data.data && parent.$data.data.cmsCompName === "cms-column") {
40131
- columnDepth++;
40132
- }
40133
-
40134
- // 如果已经有一层 cms-column,则不允许再嵌套
40135
- if (columnDepth >= 2) {
40136
- console.log(`检测到 cms-column 嵌套层级: ${columnDepth}, 超出限制`);
40137
- return false;
40138
- }
40139
- parent = parent.$parent;
40140
- }
40141
- console.log(`cms-column 嵌套层级检查通过: ${columnDepth}`);
40142
- return true;
40143
- },
40144
- // 处理拖拽悬停
40145
- dragover(e) {
40146
- e.preventDefault();
40147
- this.showAddCom = true;
40148
- },
40149
- // 处理拖拽放置
40150
- drop(e) {
40151
- e.preventDefault();
40152
- const componentKey = e.dataTransfer.getData("componentKey");
40153
- let temporaryId = "";
40154
- this.temporaryList = e.dataTransfer.getData("temporaryList") ? JSON.parse(e.dataTransfer.getData("temporaryList")) : [];
40155
- console.log("cms-colum-card-drop", componentKey, this.temporaryList);
40156
- if (!componentKey) return;
40157
- const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
40158
- const isTemporary = isTemporaryItem === "true";
40159
- if (isTemporary) {
40160
- temporaryId = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey).cmsCompName;
40161
- }
40162
- const componentType = isTemporary ? temporaryId : componentKey;
40163
- // 允许的组件类型
40164
- const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
40165
- ];
40166
-
40167
- // 检查组件类型是否允许
40168
- if (!allowedComponents.includes(componentType)) {
40169
- console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
40170
- this.$message && this.$message.warning(`该组件类型不支持拖入卡片容器`);
40171
- this.showAddCom = false;
40172
- return;
40173
- }
40174
-
40175
- // 特殊处理 cms-column:检查嵌套层级
40176
- if (componentType === "cms-column") {
40177
- if (!this.checkColumnNestingLevel()) {
40178
- console.log("cms-column 嵌套层级超出限制");
40179
- this.$message && this.$message.warning(`cms-column 只能嵌套一层`);
40180
- this.showAddCom = false;
40181
- return;
40182
- }
40183
- }
40184
- this.addOneComp(e, componentKey);
40185
- },
40186
- // 添加组件到卡片容器
40187
- addOneComp(e, componentKey) {
40188
- this.showAddCom = false;
40189
- console.log("drop to column-card", componentKey);
40190
-
40191
- // 动态导入组件配置
40192
- let initCompData;
40193
- try {
40194
- const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
40195
- const isTemporary = isTemporaryItem === "true";
40196
- if (isTemporary) {
40197
- initCompData = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey);
40198
- } else {
40199
- initCompData = __webpack_require__(1640)(`./${componentKey}`).default.settings(componentKey);
40200
- }
40201
- if (!isTemporary) {
40202
- initCompData = {
40203
- ...initCompData,
40204
- styleConfig: {
40205
- pc: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(16, 16, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")],
40206
- mb: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(12, 12, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")]
40207
- }
40208
- };
40209
- }
40210
- } catch (error) {
40211
- console.error(`无法加载组件 ${componentKey}:`, error);
40212
- this.$message && this.$message.error(`组件加载失败`);
40213
- return;
40214
- }
40215
- const toElementId = e.toElement.id;
40216
- if (toElementId === `cardTarget${this.data.componentId}` || toElementId.includes("cardTargetdown")) {
40217
- // 添加到卡片容器末尾
40218
- this.data.childList.push(initCompData);
40219
- } else if (toElementId.includes("cardTargetup")) {
40220
- // 插入到指定位置
40221
- const underComponentId = toElementId.split("-cardTargetup")[0];
40222
- const index = this.data.childList.findIndex(item => item.componentId === underComponentId);
40223
- if (index !== -1) {
40224
- this.data.childList.splice(index, 0, initCompData);
40225
- }
40226
- }
40227
-
40228
- // 触发数据更新
40229
- this.$emit("update:data", this.data);
40230
- if (componentKey === "cms-column") {
40231
- this.$EventBus.$emit("handleNowComp", initCompData);
40232
- }
40233
- }
40234
- }
40235
- });
40236
- ;// ./package/cms-column-card/View.vue?vue&type=script&lang=js
40237
- /* harmony default export */ var cms_column_card_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
40238
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-column-card/View.vue?vue&type=style&index=0&id=155a8242&prod&lang=scss&scoped=true
40239
- // extracted by mini-css-extract-plugin
40240
-
40241
- ;// ./package/cms-column-card/View.vue?vue&type=style&index=0&id=155a8242&prod&lang=scss&scoped=true
40242
-
40243
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
40244
- var componentNormalizer = __webpack_require__(1656);
40245
- ;// ./package/cms-column-card/View.vue
40246
-
40247
-
40248
-
40249
- ;
40250
-
40251
-
40252
- /* normalize component */
40253
-
40254
- var component = (0,componentNormalizer/* default */.A)(
40255
- cms_column_card_Viewvue_type_script_lang_js,
40256
- render,
40257
- staticRenderFns,
40258
- false,
40259
- null,
40260
- "155a8242",
40261
- null
40262
-
40263
- )
40264
-
40265
- /* harmony default export */ var View = (component.exports);
40266
-
40267
- /***/ }),
40268
-
40269
39830
  /***/ 4576:
40270
39831
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
40271
39832
 
@@ -42102,13 +41663,13 @@ var map = {
42102
41663
  "./cms-banner/View.vue": 9894,
42103
41664
  "./cms-button/View.vue": 7318,
42104
41665
  "./cms-cells/View.vue": 983,
42105
- "./cms-column-card/View.vue": 4552,
41666
+ "./cms-column-card/View.vue": 579,
42106
41667
  "./cms-column/View.vue": 4623,
42107
41668
  "./cms-description/View.vue": 6296,
42108
41669
  "./cms-dynamic-comp/View.vue": 471,
42109
41670
  "./cms-iconFour/View.vue": 2946,
42110
- "./cms-image-group/View.vue": 7800,
42111
- "./cms-image/View.vue": 153,
41671
+ "./cms-image-group/View.vue": 2578,
41672
+ "./cms-image/View.vue": 9383,
42112
41673
  "./cms-imgFour/View.vue": 9545,
42113
41674
  "./cms-lineFive/View.vue": 1716,
42114
41675
  "./cms-lineFour/View.vue": 8067,
@@ -42118,7 +41679,7 @@ var map = {
42118
41679
  "./cms-prodCustomization/View.vue": 1054,
42119
41680
  "./cms-productDetails/View.vue": 7979,
42120
41681
  "./cms-question/View.vue": 2519,
42121
- "./cms-richText/View.vue": 342,
41682
+ "./cms-richText/View.vue": 8737,
42122
41683
  "./cms-servePlan-tab/View.vue": 9051,
42123
41684
  "./cms-servePlan-text/View.vue": 5865,
42124
41685
  "./cms-tab/View.vue": 3591,
@@ -42128,8 +41689,8 @@ var map = {
42128
41689
  "./cms-titleCenter/View.vue": 788,
42129
41690
  "./cms-titleLeft/View.vue": 6946,
42130
41691
  "./cms-via-storedValueCard/View.vue": 5669,
42131
- "./cms-video-group/View.vue": 1882,
42132
- "./cms-video/View.vue": 1659,
41692
+ "./cms-video-group/View.vue": 304,
41693
+ "./cms-video/View.vue": 6722,
42133
41694
  "./cms-view/View.vue": 3774
42134
41695
  };
42135
41696
 
@@ -48882,6 +48443,388 @@ module.exports = function (object, key, method) {
48882
48443
  };
48883
48444
 
48884
48445
 
48446
+ /***/ }),
48447
+
48448
+ /***/ 6722:
48449
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
48450
+
48451
+ "use strict";
48452
+ // ESM COMPAT FLAG
48453
+ __webpack_require__.r(__webpack_exports__);
48454
+
48455
+ // EXPORTS
48456
+ __webpack_require__.d(__webpack_exports__, {
48457
+ "default": function() { return /* binding */ View; }
48458
+ });
48459
+
48460
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video/View.vue?vue&type=template&id=11fc0d9a&scoped=true
48461
+ var render = function render() {
48462
+ var _vm = this,
48463
+ _c = _vm._self._c;
48464
+ return _c('BaseComp', _vm._b({
48465
+ attrs: {
48466
+ "data": _vm.data,
48467
+ "nowCompId": _vm.nowCompId,
48468
+ "isOpcacity": _vm.isOpcacity,
48469
+ "lang": _vm.lang
48470
+ },
48471
+ on: {
48472
+ "getConfigData": _vm.getConfigData
48473
+ }
48474
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
48475
+ staticClass: "cms-video-container",
48476
+ class: [_vm.configData.customClass || ''],
48477
+ style: _vm.containerStyle
48478
+ }, [_c('div', {
48479
+ staticClass: "video-wrapper",
48480
+ style: _vm.wrapperStyle
48481
+ }, [_vm.videoType === 'direct' && _vm.configData.videoUrl ? _c('video', {
48482
+ staticClass: "cms-video direct-video",
48483
+ style: _vm.videoStyle,
48484
+ attrs: {
48485
+ "src": _vm.configData.videoUrl,
48486
+ "controls": _vm.configData.showControls,
48487
+ "autoplay": _vm.configData.autoplay,
48488
+ "loop": _vm.configData.loop,
48489
+ "poster": _vm.configData.posterUrl
48490
+ },
48491
+ domProps: {
48492
+ "muted": _vm.configData.muted
48493
+ },
48494
+ on: {
48495
+ "loadstart": _vm.onVideoLoadStart,
48496
+ "loadeddata": _vm.onVideoLoaded,
48497
+ "error": _vm.onVideoError
48498
+ }
48499
+ }) : _vm.configData.embedCode ? _c('div', {
48500
+ staticClass: "cms-video embed-video cms-ht",
48501
+ style: _vm.videoStyle,
48502
+ domProps: {
48503
+ "innerHTML": _vm._s(_vm.configData.embedCode)
48504
+ }
48505
+ }) : _c('div', {
48506
+ staticClass: "video-placeholder",
48507
+ style: _vm.placeholderStyle
48508
+ }, [_c('img', {
48509
+ staticStyle: {
48510
+ "width": "97.82px",
48511
+ "height": "97.82px"
48512
+ },
48513
+ attrs: {
48514
+ "src": __webpack_require__(6148),
48515
+ "alt": "Video Camera"
48516
+ }
48517
+ })])]), _vm.configData.title ? _c('div', {
48518
+ staticClass: "f-c-c"
48519
+ }, [_vm._v(_vm._s(_vm.configData.title))]) : _vm._e()])]);
48520
+ };
48521
+ var staticRenderFns = [];
48522
+
48523
+ ;// ./package/cms-video/View.vue?vue&type=template&id=11fc0d9a&scoped=true
48524
+
48525
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
48526
+ var es_iterator_constructor = __webpack_require__(8111);
48527
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
48528
+ var es_iterator_for_each = __webpack_require__(7588);
48529
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
48530
+ var baseComp = __webpack_require__(677);
48531
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video/View.vue?vue&type=script&lang=js
48532
+
48533
+
48534
+
48535
+
48536
+
48537
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
48538
+ name: "cms-video",
48539
+ components: {
48540
+ BaseComp: baseComp["default"]
48541
+ },
48542
+ props: {
48543
+ data: {
48544
+ type: Object,
48545
+ default: () => {
48546
+ return {};
48547
+ }
48548
+ },
48549
+ nowCompId: {
48550
+ type: [String, Number],
48551
+ default: ""
48552
+ },
48553
+ isOpcacity: {
48554
+ type: Boolean,
48555
+ default: true
48556
+ },
48557
+ lang: {
48558
+ type: String,
48559
+ default: "zh-HK"
48560
+ }
48561
+ },
48562
+ data() {
48563
+ return {
48564
+ configData: {},
48565
+ videoLoaded: false,
48566
+ videoError: false,
48567
+ // 默认配置数据
48568
+ defaultConfig: {
48569
+ // 视频源设置
48570
+ videoType: "direct",
48571
+ videoUrl: "",
48572
+ embedCode: "",
48573
+ posterUrl: "",
48574
+ // 播放控制
48575
+ showControls: true,
48576
+ autoplay: false,
48577
+ loop: false,
48578
+ muted: false,
48579
+ // 尺寸控制
48580
+ aspectRatio: "16:9",
48581
+ // 样式设置
48582
+ borderRadius: 0,
48583
+ cornerRadius: {
48584
+ topLeft: "8",
48585
+ topRight: "8",
48586
+ bottomLeft: "8",
48587
+ bottomRight: "8"
48588
+ },
48589
+ // 高级配置
48590
+ customClass: "",
48591
+ customStyle: ""
48592
+ }
48593
+ };
48594
+ },
48595
+ mounted() {
48596
+ this.initConfigData();
48597
+ },
48598
+ watch: {
48599
+ configData: {
48600
+ handler() {
48601
+ this.updateStyles();
48602
+ },
48603
+ deep: true
48604
+ }
48605
+ },
48606
+ computed: {
48607
+ showEmbedCode() {
48608
+ return this.configData.embedCode.replace(/<iframe(.*?)width="(\d+)"(.*?)height="(\d+)"(.*?)>/gi, '<iframe$1width="100%"$3height="auto"$5 aspect-ratio="$2/$4">');
48609
+ },
48610
+ // 视频类型
48611
+ videoType() {
48612
+ return this.configData.videoType || this.defaultConfig.videoType;
48613
+ },
48614
+ // 实际使用的宽高比
48615
+ actualAspectRatio() {
48616
+ const config = {
48617
+ ...this.defaultConfig,
48618
+ ...this.configData
48619
+ };
48620
+ return config.aspectRatio || "16:9";
48621
+ },
48622
+ aspectRatioValue() {
48623
+ const ratio = this.actualAspectRatio;
48624
+ if (!ratio || ratio === "auto") {
48625
+ return null;
48626
+ }
48627
+ return ratio.replace(":", "/");
48628
+ },
48629
+ // 容器样式
48630
+ containerStyle() {
48631
+ const config = {
48632
+ ...this.defaultConfig,
48633
+ ...this.configData
48634
+ };
48635
+ return {
48636
+ ...this.parseCustomStyle(config.customStyle)
48637
+ };
48638
+ },
48639
+ borderRadiusStyle() {
48640
+ const config = {
48641
+ ...this.defaultConfig,
48642
+ ...this.configData
48643
+ };
48644
+ const fallback = config.borderRadius !== undefined && config.borderRadius !== null ? `${config.borderRadius}px` : "0px";
48645
+ const radiusConfig = config.cornerRadius || {};
48646
+ const resolveValue = corner => {
48647
+ const value = radiusConfig[corner] !== undefined && radiusConfig[corner] !== null ? radiusConfig[corner] : config.borderRadius;
48648
+ if (value === "full") return "9999px";
48649
+ if (value === undefined || value === null || value === "") {
48650
+ return fallback;
48651
+ }
48652
+ const num = Number(value);
48653
+ return Number.isNaN(num) ? fallback : `${num}px`;
48654
+ };
48655
+ return {
48656
+ topLeft: resolveValue("topLeft"),
48657
+ topRight: resolveValue("topRight"),
48658
+ bottomLeft: resolveValue("bottomLeft"),
48659
+ bottomRight: resolveValue("bottomRight")
48660
+ };
48661
+ },
48662
+ // 包装器样式
48663
+ wrapperStyle() {
48664
+ const config = {
48665
+ ...this.defaultConfig,
48666
+ ...this.configData
48667
+ };
48668
+ const style = {
48669
+ width: "100%",
48670
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
48671
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
48672
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
48673
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
48674
+ overflow: "hidden",
48675
+ display: "block",
48676
+ position: "relative"
48677
+ };
48678
+ if (this.aspectRatioValue) {
48679
+ style.aspectRatio = this.aspectRatioValue;
48680
+ }
48681
+ return style;
48682
+ },
48683
+ // 视频样式
48684
+ videoStyle() {
48685
+ const config = {
48686
+ ...this.defaultConfig,
48687
+ ...this.configData
48688
+ };
48689
+ const style = {
48690
+ width: "100%",
48691
+ display: "block",
48692
+ border: "none",
48693
+ outline: "none"
48694
+ };
48695
+ if (this.aspectRatioValue) {
48696
+ style.height = "100%";
48697
+ style.aspectRatio = this.aspectRatioValue;
48698
+ } else {
48699
+ style.height = "auto";
48700
+ }
48701
+ return style;
48702
+ },
48703
+ // 占位符样式
48704
+ placeholderStyle() {
48705
+ const config = {
48706
+ ...this.defaultConfig,
48707
+ ...this.configData
48708
+ };
48709
+ const style = {
48710
+ width: "100%",
48711
+ backgroundColor: "#f5f7fa",
48712
+ border: "1px dashed #dcdfe6",
48713
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
48714
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
48715
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
48716
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
48717
+ display: "flex",
48718
+ flexDirection: "column",
48719
+ alignItems: "center",
48720
+ justifyContent: "center",
48721
+ color: "#909399",
48722
+ fontSize: "14px"
48723
+ };
48724
+ if (this.aspectRatioValue) {
48725
+ style.aspectRatio = this.aspectRatioValue;
48726
+ } else {
48727
+ style.minHeight = "160px";
48728
+ }
48729
+ return style;
48730
+ }
48731
+ },
48732
+ methods: {
48733
+ // 初始化配置数据
48734
+ initConfigData() {
48735
+ this.configData = this.getMergedConfig(this.configData);
48736
+ },
48737
+ // 获取配置数据
48738
+ getConfigData(configData) {
48739
+ this.configData = this.getMergedConfig(configData);
48740
+ this.updateStyles();
48741
+ },
48742
+ // 更新样式
48743
+ updateStyles() {
48744
+ this.$nextTick(() => {
48745
+ this.$forceUpdate();
48746
+ });
48747
+ },
48748
+ // 视频开始加载
48749
+ onVideoLoadStart() {
48750
+ this.videoLoaded = false;
48751
+ this.videoError = false;
48752
+ },
48753
+ // 视频加载完成
48754
+ onVideoLoaded() {
48755
+ this.videoLoaded = true;
48756
+ this.videoError = false;
48757
+ },
48758
+ // 视频加载失败
48759
+ onVideoError() {
48760
+ this.videoLoaded = false;
48761
+ this.videoError = true;
48762
+ },
48763
+ getMergedConfig(configData = {}) {
48764
+ const mergedCorner = {
48765
+ ...(this.defaultConfig.cornerRadius || {})
48766
+ };
48767
+ if (configData.cornerRadius) {
48768
+ Object.assign(mergedCorner, configData.cornerRadius);
48769
+ }
48770
+ return {
48771
+ ...this.defaultConfig,
48772
+ ...configData,
48773
+ cornerRadius: mergedCorner
48774
+ };
48775
+ },
48776
+ // 解析自定义样式
48777
+ parseCustomStyle(customStyle) {
48778
+ if (!customStyle) return {};
48779
+ try {
48780
+ const styles = {};
48781
+ const declarations = customStyle.split(";");
48782
+ declarations.forEach(declaration => {
48783
+ const [property, value] = declaration.split(":");
48784
+ if (property && value) {
48785
+ const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
48786
+ styles[camelCaseProperty] = value.trim();
48787
+ }
48788
+ });
48789
+ return styles;
48790
+ } catch (error) {
48791
+ console.warn("解析自定义样式失败:", error);
48792
+ return {};
48793
+ }
48794
+ }
48795
+ }
48796
+ });
48797
+ ;// ./package/cms-video/View.vue?vue&type=script&lang=js
48798
+ /* harmony default export */ var cms_video_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
48799
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-video/View.vue?vue&type=style&index=0&id=11fc0d9a&prod&lang=scss&scoped=true
48800
+ // extracted by mini-css-extract-plugin
48801
+
48802
+ ;// ./package/cms-video/View.vue?vue&type=style&index=0&id=11fc0d9a&prod&lang=scss&scoped=true
48803
+
48804
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
48805
+ var componentNormalizer = __webpack_require__(1656);
48806
+ ;// ./package/cms-video/View.vue
48807
+
48808
+
48809
+
48810
+ ;
48811
+
48812
+
48813
+ /* normalize component */
48814
+
48815
+ var component = (0,componentNormalizer/* default */.A)(
48816
+ cms_video_Viewvue_type_script_lang_js,
48817
+ render,
48818
+ staticRenderFns,
48819
+ false,
48820
+ null,
48821
+ "11fc0d9a",
48822
+ null
48823
+
48824
+ )
48825
+
48826
+ /* harmony default export */ var View = (component.exports);
48827
+
48885
48828
  /***/ }),
48886
48829
 
48887
48830
  /***/ 6801:
@@ -51553,251 +51496,6 @@ var component = (0,componentNormalizer/* default */.A)(
51553
51496
 
51554
51497
  /***/ }),
51555
51498
 
51556
- /***/ 7800:
51557
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
51558
-
51559
- "use strict";
51560
- // ESM COMPAT FLAG
51561
- __webpack_require__.r(__webpack_exports__);
51562
-
51563
- // EXPORTS
51564
- __webpack_require__.d(__webpack_exports__, {
51565
- "default": function() { return /* binding */ View; }
51566
- });
51567
-
51568
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image-group/View.vue?vue&type=template&id=a0772124&scoped=true
51569
- var render = function render() {
51570
- var _vm = this,
51571
- _c = _vm._self._c;
51572
- return _c('BaseComp', _vm._b({
51573
- attrs: {
51574
- "data": _vm.data,
51575
- "nowCompId": _vm.nowCompId,
51576
- "isOpcacity": _vm.isOpcacity,
51577
- "isMask": false,
51578
- "lang": _vm.lang
51579
- },
51580
- on: {
51581
- "getConfigData": _vm.getConfigData
51582
- }
51583
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
51584
- staticClass: "cmhk-home_main"
51585
- }, [_c('div', {
51586
- staticClass: "wrap",
51587
- style: _vm.wrapStyle
51588
- }, _vm._l(_vm.showVideoList, function (item) {
51589
- return _c('cms-image', {
51590
- key: item.componentId,
51591
- staticStyle: {
51592
- "overflow": "hidden"
51593
- },
51594
- attrs: {
51595
- "data": item,
51596
- "nowCompId": _vm.nowCompId,
51597
- "isOpcacity": _vm.isOpcacity,
51598
- "isMask": false,
51599
- "lang": _vm.lang
51600
- }
51601
- });
51602
- }), 1), _vm.isShowPannel ? [_c('div', {
51603
- staticClass: "view-more-container"
51604
- }, [_c('div', {
51605
- staticClass: "view-more-btn",
51606
- on: {
51607
- "click": _vm.foldMessText
51608
- }
51609
- }, [_c('span', {
51610
- staticClass: "view-more-text"
51611
- }, [_vm._v(" " + _vm._s(_vm.messFold ? _vm.$t("roamIndex.Collpase") : _vm.$t("roamIndex.More")) + " ")]), _c('i', {
51612
- class: ['view-more-icon', _vm.messFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down']
51613
- })])])] : _vm._e()], 2)]);
51614
- };
51615
- var staticRenderFns = [];
51616
-
51617
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
51618
- var baseComp = __webpack_require__(677);
51619
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image-group/View.vue?vue&type=script&lang=js
51620
-
51621
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
51622
- name: "cms-image-group",
51623
- components: {
51624
- BaseComp: baseComp["default"]
51625
- },
51626
- props: {
51627
- data: {
51628
- type: Object,
51629
- default: () => {
51630
- return {};
51631
- }
51632
- },
51633
- nowCompId: {
51634
- type: [String, Number],
51635
- default: ""
51636
- },
51637
- isOpcacity: {
51638
- type: Boolean,
51639
- default: true
51640
- },
51641
- lang: {
51642
- type: String,
51643
- default: "zh-HK"
51644
- }
51645
- },
51646
- data() {
51647
- return {
51648
- configData: {},
51649
- messFold: false,
51650
- // 默认配置数据
51651
- defaultConfig: {
51652
- colNums: 1,
51653
- defaultCol: 12,
51654
- gap: 10,
51655
- cornerRadius: {
51656
- topLeft: "0",
51657
- topRight: "0",
51658
- bottomLeft: "0",
51659
- bottomRight: "0"
51660
- }
51661
- },
51662
- isShowPannel: false
51663
- };
51664
- },
51665
- mounted() {},
51666
- watch: {
51667
- configData: {
51668
- handler() {
51669
- this.updateStyles();
51670
- },
51671
- deep: true
51672
- }
51673
- },
51674
- computed: {
51675
- showVideoList() {
51676
- if (this.isShowPannel && !this.messFold) return this.data.childList.slice(0, this.configData.colNums * this.configData.defaultCol);
51677
- return this.data.childList;
51678
- },
51679
- isConfigPage() {
51680
- return this.$EventBus && this.isOpcacity;
51681
- },
51682
- borderRadiusStyle() {
51683
- const config = {
51684
- ...this.defaultConfig,
51685
- ...this.configData
51686
- };
51687
- const radiusConfig = config.cornerRadius || {};
51688
- const legacyMap = {
51689
- topLeft: config.borderRadiusTopLeft,
51690
- topRight: config.borderRadiusTopRight,
51691
- bottomLeft: config.borderRadiusBottomLeft,
51692
- bottomRight: config.borderRadiusBottomRight
51693
- };
51694
- const formatRadius = value => {
51695
- if (value === "full") return "9999px";
51696
- if (value === undefined || value === null || value === "") {
51697
- return "0px";
51698
- }
51699
- const num = Number(value);
51700
- return Number.isNaN(num) ? "0px" : `${num}px`;
51701
- };
51702
- const resolveValue = corner => {
51703
- const value = radiusConfig[corner] !== undefined && radiusConfig[corner] !== null ? radiusConfig[corner] : legacyMap[corner];
51704
- return formatRadius(value);
51705
- };
51706
- return {
51707
- topLeft: resolveValue("topLeft"),
51708
- topRight: resolveValue("topRight"),
51709
- bottomLeft: resolveValue("bottomLeft"),
51710
- bottomRight: resolveValue("bottomRight")
51711
- };
51712
- },
51713
- wrapStyle() {
51714
- const config = {
51715
- ...this.defaultConfig,
51716
- ...this.configData
51717
- };
51718
- return {
51719
- gridTemplateColumns: `repeat(${config.colNums}, 1fr)`,
51720
- gridGap: `${config.gap}px`,
51721
- borderTopLeftRadius: this.borderRadiusStyle.topLeft,
51722
- borderTopRightRadius: this.borderRadiusStyle.topRight,
51723
- borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
51724
- borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
51725
- overflow: "hidden"
51726
- };
51727
- }
51728
- },
51729
- methods: {
51730
- // 获取配置数据
51731
- getConfigData(configData) {
51732
- this.configData = this.getMergedConfig(configData);
51733
- this.updateStyles();
51734
- this.isShowPannel = this.configData.colNums * this.configData.defaultCol < this.data.childList.length;
51735
- },
51736
- // 更新样式
51737
- updateStyles() {
51738
- this.$nextTick(() => {
51739
- // 触发样式更新
51740
- this.$forceUpdate();
51741
- });
51742
- },
51743
- // 折叠/展开文本
51744
- foldMessText() {
51745
- this.messFold = !this.messFold;
51746
- },
51747
- getMergedConfig(configData = {}) {
51748
- const mergedCorner = {
51749
- ...(this.defaultConfig.cornerRadius || {})
51750
- };
51751
- if (configData.cornerRadius) {
51752
- Object.assign(mergedCorner, configData.cornerRadius);
51753
- } else {
51754
- var _configData$borderRad, _configData$borderRad2, _configData$borderRad3, _configData$borderRad4;
51755
- mergedCorner.topLeft = (_configData$borderRad = configData.borderRadiusTopLeft) === null || _configData$borderRad === void 0 ? void 0 : _configData$borderRad.mergedCorner.topLeft;
51756
- mergedCorner.topRight = (_configData$borderRad2 = configData.borderRadiusTopRight) === null || _configData$borderRad2 === void 0 ? void 0 : _configData$borderRad2.mergedCorner.topRight;
51757
- mergedCorner.bottomLeft = (_configData$borderRad3 = configData.borderRadiusBottomLeft) === null || _configData$borderRad3 === void 0 ? void 0 : _configData$borderRad3.mergedCorner.bottomLeft;
51758
- mergedCorner.bottomRight = (_configData$borderRad4 = configData.borderRadiusBottomRight) === null || _configData$borderRad4 === void 0 ? void 0 : _configData$borderRad4.mergedCorner.bottomRight;
51759
- }
51760
- return {
51761
- ...this.defaultConfig,
51762
- ...configData,
51763
- cornerRadius: mergedCorner
51764
- };
51765
- }
51766
- }
51767
- });
51768
- ;// ./package/cms-image-group/View.vue?vue&type=script&lang=js
51769
- /* harmony default export */ var cms_image_group_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
51770
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image-group/View.vue?vue&type=style&index=0&id=a0772124&prod&lang=scss&scoped=true
51771
- // extracted by mini-css-extract-plugin
51772
-
51773
- ;// ./package/cms-image-group/View.vue?vue&type=style&index=0&id=a0772124&prod&lang=scss&scoped=true
51774
-
51775
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
51776
- var componentNormalizer = __webpack_require__(1656);
51777
- ;// ./package/cms-image-group/View.vue
51778
-
51779
-
51780
-
51781
- ;
51782
-
51783
-
51784
- /* normalize component */
51785
-
51786
- var component = (0,componentNormalizer/* default */.A)(
51787
- cms_image_group_Viewvue_type_script_lang_js,
51788
- render,
51789
- staticRenderFns,
51790
- false,
51791
- null,
51792
- "a0772124",
51793
- null
51794
-
51795
- )
51796
-
51797
- /* harmony default export */ var View = (component.exports);
51798
-
51799
- /***/ }),
51800
-
51801
51499
  /***/ 7811:
51802
51500
  /***/ (function(module) {
51803
51501
 
@@ -53575,6 +53273,140 @@ module.exports = [
53575
53273
  ];
53576
53274
 
53577
53275
 
53276
+ /***/ }),
53277
+
53278
+ /***/ 8737:
53279
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
53280
+
53281
+ "use strict";
53282
+ // ESM COMPAT FLAG
53283
+ __webpack_require__.r(__webpack_exports__);
53284
+
53285
+ // EXPORTS
53286
+ __webpack_require__.d(__webpack_exports__, {
53287
+ "default": function() { return /* binding */ View; }
53288
+ });
53289
+
53290
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-richText/View.vue?vue&type=template&id=9800760a&scoped=true
53291
+ var render = function render() {
53292
+ var _vm = this,
53293
+ _c = _vm._self._c;
53294
+ return _c('BaseComp', _vm._b({
53295
+ attrs: {
53296
+ "data": _vm.data,
53297
+ "nowCompId": _vm.nowCompId,
53298
+ "isOpcacity": _vm.isOpcacity,
53299
+ "lang": _vm.lang
53300
+ },
53301
+ on: {
53302
+ "getConfigData": _vm.getConfigData
53303
+ }
53304
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
53305
+ class: {
53306
+ 'cmhk-home_main': _vm.showCmhkMain
53307
+ }
53308
+ }, [_c('div', [_c('div', {
53309
+ staticClass: "inner"
53310
+ }, [_c('p', {
53311
+ staticClass: "cms-ht",
53312
+ domProps: {
53313
+ "innerHTML": _vm._s(_vm.configData.input1)
53314
+ }
53315
+ })])])])]);
53316
+ };
53317
+ var staticRenderFns = [];
53318
+
53319
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
53320
+ var baseComp = __webpack_require__(677);
53321
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-richText/View.vue?vue&type=script&lang=js
53322
+
53323
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
53324
+ name: "cms-richText",
53325
+ components: {
53326
+ BaseComp: baseComp["default"]
53327
+ },
53328
+ props: {
53329
+ data: {
53330
+ type: Object,
53331
+ default: () => {
53332
+ return {};
53333
+ }
53334
+ },
53335
+ nowCompId: {
53336
+ type: [String, Number],
53337
+ default: ""
53338
+ },
53339
+ isOpcacity: {
53340
+ type: Boolean,
53341
+ default: true
53342
+ },
53343
+ lang: {
53344
+ type: String,
53345
+ default: "zh-HK"
53346
+ },
53347
+ showCmhkMain: {
53348
+ type: Boolean,
53349
+ default: true
53350
+ }
53351
+ },
53352
+ data() {
53353
+ return {
53354
+ configData: {},
53355
+ messFold: false
53356
+ };
53357
+ },
53358
+ mounted() {},
53359
+ watch: {},
53360
+ methods: {
53361
+ getConfigData(configData) {
53362
+ this.configData = configData;
53363
+ },
53364
+ foldMessText() {
53365
+ this.messFold = !this.messFold;
53366
+ },
53367
+ decodeJumpUrl(url) {
53368
+ if (!url) return;
53369
+ top.location.href = url;
53370
+ }
53371
+ }
53372
+ });
53373
+ ;// ./package/cms-richText/View.vue?vue&type=script&lang=js
53374
+ /* harmony default export */ var cms_richText_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
53375
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-richText/View.vue?vue&type=style&index=0&id=9800760a&prod&lang=scss&scoped=true
53376
+ // extracted by mini-css-extract-plugin
53377
+
53378
+ ;// ./package/cms-richText/View.vue?vue&type=style&index=0&id=9800760a&prod&lang=scss&scoped=true
53379
+
53380
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-richText/View.vue?vue&type=style&index=1&id=9800760a&prod&lang=scss
53381
+ // extracted by mini-css-extract-plugin
53382
+
53383
+ ;// ./package/cms-richText/View.vue?vue&type=style&index=1&id=9800760a&prod&lang=scss
53384
+
53385
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
53386
+ var componentNormalizer = __webpack_require__(1656);
53387
+ ;// ./package/cms-richText/View.vue
53388
+
53389
+
53390
+
53391
+ ;
53392
+
53393
+
53394
+
53395
+ /* normalize component */
53396
+
53397
+ var component = (0,componentNormalizer/* default */.A)(
53398
+ cms_richText_Viewvue_type_script_lang_js,
53399
+ render,
53400
+ staticRenderFns,
53401
+ false,
53402
+ null,
53403
+ "9800760a",
53404
+ null
53405
+
53406
+ )
53407
+
53408
+ /* harmony default export */ var View = (component.exports);
53409
+
53578
53410
  /***/ }),
53579
53411
 
53580
53412
  /***/ 8745:
@@ -58713,6 +58545,361 @@ __webpack_require__.r(__webpack_exports__);
58713
58545
 
58714
58546
  /***/ }),
58715
58547
 
58548
+ /***/ 9383:
58549
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
58550
+
58551
+ "use strict";
58552
+ // ESM COMPAT FLAG
58553
+ __webpack_require__.r(__webpack_exports__);
58554
+
58555
+ // EXPORTS
58556
+ __webpack_require__.d(__webpack_exports__, {
58557
+ "default": function() { return /* binding */ View; }
58558
+ });
58559
+
58560
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image/View.vue?vue&type=template&id=0c128a30&scoped=true
58561
+ var render = function render() {
58562
+ var _vm = this,
58563
+ _c = _vm._self._c;
58564
+ return _c('BaseComp', _vm._b({
58565
+ attrs: {
58566
+ "data": _vm.data,
58567
+ "nowCompId": _vm.nowCompId,
58568
+ "isOpcacity": _vm.isOpcacity,
58569
+ "lang": _vm.lang
58570
+ },
58571
+ on: {
58572
+ "getConfigData": _vm.getConfigData
58573
+ }
58574
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
58575
+ staticClass: "cms-image-container",
58576
+ class: [_vm.configData.customClass || '', {
58577
+ 'has-link': _vm.configData.zoomDynamic
58578
+ }],
58579
+ style: _vm.containerStyle
58580
+ }, [_c('div', {
58581
+ staticClass: "image-wrapper",
58582
+ style: _vm.wrapperStyle,
58583
+ on: {
58584
+ "click": _vm.handleClick
58585
+ }
58586
+ }, [_vm.configData.imageUrl ? _c('img', {
58587
+ staticClass: "cms-image",
58588
+ style: _vm.imageStyle,
58589
+ attrs: {
58590
+ "src": _vm.configData.imageUrl,
58591
+ "alt": _vm.configData.altText || '图片',
58592
+ "title": _vm.configData.title
58593
+ },
58594
+ on: {
58595
+ "load": _vm.onImageLoad,
58596
+ "error": _vm.onImageError
58597
+ }
58598
+ }) : _c('div', {
58599
+ staticClass: "image-placeholder",
58600
+ style: _vm.placeholderStyle
58601
+ }, [_c('img', {
58602
+ staticStyle: {
58603
+ "width": "200px",
58604
+ "height": "200px"
58605
+ },
58606
+ attrs: {
58607
+ "src": __webpack_require__(4806),
58608
+ "alt": "Picture"
58609
+ }
58610
+ })])])]), _vm.configData.remark ? _c('div', {
58611
+ staticClass: "f-c-c"
58612
+ }, [_vm._v(_vm._s(_vm.configData.remark))]) : _vm._e()]);
58613
+ };
58614
+ var staticRenderFns = [];
58615
+
58616
+ ;// ./package/cms-image/View.vue?vue&type=template&id=0c128a30&scoped=true
58617
+
58618
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
58619
+ var es_iterator_constructor = __webpack_require__(8111);
58620
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
58621
+ var es_iterator_for_each = __webpack_require__(7588);
58622
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
58623
+ var baseComp = __webpack_require__(677);
58624
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-85.use[1]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-41.use!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image/View.vue?vue&type=script&lang=js
58625
+
58626
+
58627
+
58628
+
58629
+
58630
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
58631
+ name: "cms-image",
58632
+ components: {
58633
+ BaseComp: baseComp["default"]
58634
+ },
58635
+ props: {
58636
+ data: {
58637
+ type: Object,
58638
+ default: () => {
58639
+ return {};
58640
+ }
58641
+ },
58642
+ nowCompId: {
58643
+ type: [String, Number],
58644
+ default: ""
58645
+ },
58646
+ isOpcacity: {
58647
+ type: Boolean,
58648
+ default: true
58649
+ },
58650
+ lang: {
58651
+ type: String,
58652
+ default: "zh-HK"
58653
+ }
58654
+ },
58655
+ data() {
58656
+ return {
58657
+ configData: {},
58658
+ imageLoaded: false,
58659
+ imageError: false,
58660
+ // 默认配置数据
58661
+ defaultConfig: {
58662
+ // 图片设置
58663
+ imageUrl: "",
58664
+ altText: "图片",
58665
+ title: "",
58666
+ // 样式设置
58667
+ borderRadius: 0,
58668
+ cornerRadius: {
58669
+ topLeft: "8",
58670
+ topRight: "8",
58671
+ bottomLeft: "8",
58672
+ bottomRight: "8"
58673
+ },
58674
+ objectFit: "cover",
58675
+ // 交互功能
58676
+ linkUrl: "",
58677
+ linkTarget: "_self",
58678
+ // 高级配置
58679
+ customClass: "",
58680
+ customStyle: "",
58681
+ lazyLoad: false,
58682
+ zoomDynamic: false
58683
+ }
58684
+ };
58685
+ },
58686
+ mounted() {
58687
+ this.initConfigData();
58688
+ },
58689
+ watch: {
58690
+ configData: {
58691
+ handler() {
58692
+ this.updateStyles();
58693
+ },
58694
+ deep: true
58695
+ }
58696
+ },
58697
+ computed: {
58698
+ // 容器样式
58699
+ containerStyle() {
58700
+ const config = {
58701
+ ...this.defaultConfig,
58702
+ ...this.configData
58703
+ };
58704
+ return {
58705
+ ...this.parseCustomStyle(config.customStyle)
58706
+ };
58707
+ },
58708
+ borderRadiusStyle() {
58709
+ const config = {
58710
+ ...this.defaultConfig,
58711
+ ...this.configData
58712
+ };
58713
+ const fallback = config.borderRadius !== undefined && config.borderRadius !== null ? `${config.borderRadius}px` : "0px";
58714
+ const radiusConfig = config.cornerRadius || {};
58715
+ const legacyMap = {
58716
+ topLeft: config.borderRadiusTopLeft,
58717
+ topRight: config.borderRadiusTopRight,
58718
+ bottomLeft: config.borderRadiusBottomLeft,
58719
+ bottomRight: config.borderRadiusBottomRight
58720
+ };
58721
+ const resolveValue = corner => {
58722
+ const value = radiusConfig[corner] !== undefined && radiusConfig[corner] !== null ? radiusConfig[corner] : legacyMap[corner];
58723
+ if (value === "full") return "9999px";
58724
+ if (value === undefined || value === null || value === "") {
58725
+ return fallback;
58726
+ }
58727
+ const num = Number(value);
58728
+ return Number.isNaN(num) ? fallback : `${num}px`;
58729
+ };
58730
+ return {
58731
+ topLeft: resolveValue("topLeft"),
58732
+ topRight: resolveValue("topRight"),
58733
+ bottomLeft: resolveValue("bottomLeft"),
58734
+ bottomRight: resolveValue("bottomRight")
58735
+ };
58736
+ },
58737
+ // 包装器样式
58738
+ wrapperStyle() {
58739
+ const config = {
58740
+ ...this.defaultConfig,
58741
+ ...this.configData
58742
+ };
58743
+ return {
58744
+ width: "100%",
58745
+ height: "auto",
58746
+ maxWidth: "100%",
58747
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
58748
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
58749
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
58750
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
58751
+ overflow: "hidden",
58752
+ cursor: config.linkUrl ? "pointer" : "default",
58753
+ display: "block"
58754
+ };
58755
+ },
58756
+ // 图片样式
58757
+ imageStyle() {
58758
+ const config = {
58759
+ ...this.defaultConfig,
58760
+ ...this.configData
58761
+ };
58762
+ return {
58763
+ width: "100%",
58764
+ height: "auto",
58765
+ objectFit: config.objectFit,
58766
+ display: "block"
58767
+ };
58768
+ },
58769
+ // 占位符样式
58770
+ placeholderStyle() {
58771
+ const config = {
58772
+ ...this.defaultConfig,
58773
+ ...this.configData
58774
+ };
58775
+ return {
58776
+ width: "100%",
58777
+ minHeight: "150px",
58778
+ backgroundColor: "#F2F9FF",
58779
+ border: "1px dashed #dcdfe6",
58780
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
58781
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
58782
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
58783
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
58784
+ display: "flex",
58785
+ flexDirection: "column",
58786
+ alignItems: "center",
58787
+ justifyContent: "center",
58788
+ color: "#909399",
58789
+ fontSize: "14px"
58790
+ };
58791
+ }
58792
+ },
58793
+ methods: {
58794
+ // 初始化配置数据
58795
+ initConfigData() {
58796
+ this.configData = this.getMergedConfig(this.configData);
58797
+ },
58798
+ // 获取配置数据
58799
+ getConfigData(configData) {
58800
+ this.configData = this.getMergedConfig(configData);
58801
+ this.updateStyles();
58802
+ },
58803
+ // 更新样式
58804
+ updateStyles() {
58805
+ this.$nextTick(() => {
58806
+ this.$forceUpdate();
58807
+ });
58808
+ },
58809
+ getMergedConfig(configData = {}) {
58810
+ const mergedCorner = {
58811
+ ...(this.defaultConfig.cornerRadius || {})
58812
+ };
58813
+ if (configData.cornerRadius) {
58814
+ Object.assign(mergedCorner, configData.cornerRadius);
58815
+ } else {
58816
+ var _configData$borderRad, _configData$borderRad2, _configData$borderRad3, _configData$borderRad4;
58817
+ mergedCorner.topLeft = (_configData$borderRad = configData.borderRadiusTopLeft) === null || _configData$borderRad === void 0 ? void 0 : _configData$borderRad.mergedCorner.topLeft;
58818
+ mergedCorner.topRight = (_configData$borderRad2 = configData.borderRadiusTopRight) === null || _configData$borderRad2 === void 0 ? void 0 : _configData$borderRad2.mergedCorner.topRight;
58819
+ mergedCorner.bottomLeft = (_configData$borderRad3 = configData.borderRadiusBottomLeft) === null || _configData$borderRad3 === void 0 ? void 0 : _configData$borderRad3.mergedCorner.bottomLeft;
58820
+ mergedCorner.bottomRight = (_configData$borderRad4 = configData.borderRadiusBottomRight) === null || _configData$borderRad4 === void 0 ? void 0 : _configData$borderRad4.mergedCorner.bottomRight;
58821
+ }
58822
+ return {
58823
+ ...this.defaultConfig,
58824
+ ...configData,
58825
+ cornerRadius: mergedCorner
58826
+ };
58827
+ },
58828
+ // 处理点击事件
58829
+ handleClick() {
58830
+ if (this.configData.linkUrl) {
58831
+ const target = this.configData.linkTarget || "_self";
58832
+ if (target === "_blank") {
58833
+ window.open(this.configData.linkUrl, "_blank");
58834
+ } else {
58835
+ window.location.href = this.configData.linkUrl;
58836
+ }
58837
+ }
58838
+ },
58839
+ // 图片加载成功
58840
+ onImageLoad() {
58841
+ this.imageLoaded = true;
58842
+ this.imageError = false;
58843
+ },
58844
+ // 图片加载失败
58845
+ onImageError() {
58846
+ this.imageLoaded = false;
58847
+ this.imageError = true;
58848
+ },
58849
+ // 解析自定义样式
58850
+ parseCustomStyle(customStyle) {
58851
+ if (!customStyle) return {};
58852
+ try {
58853
+ const styles = {};
58854
+ const declarations = customStyle.split(";");
58855
+ declarations.forEach(declaration => {
58856
+ const [property, value] = declaration.split(":");
58857
+ if (property && value) {
58858
+ const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
58859
+ styles[camelCaseProperty] = value.trim();
58860
+ }
58861
+ });
58862
+ return styles;
58863
+ } catch (error) {
58864
+ console.warn("解析自定义样式失败:", error);
58865
+ return {};
58866
+ }
58867
+ }
58868
+ }
58869
+ });
58870
+ ;// ./package/cms-image/View.vue?vue&type=script&lang=js
58871
+ /* harmony default export */ var cms_image_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
58872
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-67.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-67.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-67.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-67.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-42.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./package/cms-image/View.vue?vue&type=style&index=0&id=0c128a30&prod&lang=scss&scoped=true
58873
+ // extracted by mini-css-extract-plugin
58874
+
58875
+ ;// ./package/cms-image/View.vue?vue&type=style&index=0&id=0c128a30&prod&lang=scss&scoped=true
58876
+
58877
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
58878
+ var componentNormalizer = __webpack_require__(1656);
58879
+ ;// ./package/cms-image/View.vue
58880
+
58881
+
58882
+
58883
+ ;
58884
+
58885
+
58886
+ /* normalize component */
58887
+
58888
+ var component = (0,componentNormalizer/* default */.A)(
58889
+ cms_image_Viewvue_type_script_lang_js,
58890
+ render,
58891
+ staticRenderFns,
58892
+ false,
58893
+ null,
58894
+ "0c128a30",
58895
+ null
58896
+
58897
+ )
58898
+
58899
+ /* harmony default export */ var View = (component.exports);
58900
+
58901
+ /***/ }),
58902
+
58716
58903
  /***/ 9429:
58717
58904
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
58718
58905
 
@@ -59424,17 +59611,17 @@ function throttleNew(fun, wait) {
59424
59611
  }
59425
59612
  function getDevice() {
59426
59613
  const DEVICES = {
59427
- /**
59428
- * 桌面
59614
+ /**
59615
+ * 桌面
59429
59616
  */
59430
59617
  DESKTOP: "pc",
59431
59618
  PC: "pc",
59432
- /**
59433
- * 平板
59619
+ /**
59620
+ * 平板
59434
59621
  */
59435
59622
  TABLET: "tablet",
59436
- /**
59437
- * 移动端/手机
59623
+ /**
59624
+ * 移动端/手机
59438
59625
  */
59439
59626
  MOBILE: "mobile"
59440
59627
  };