cms-chenhj-ui 2.0.38 → 2.0.39

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
 
@@ -1096,6 +741,252 @@ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSc
1096
741
 
1097
742
  /***/ }),
1098
743
 
744
+ /***/ 304:
745
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
746
+
747
+ "use strict";
748
+ // ESM COMPAT FLAG
749
+ __webpack_require__.r(__webpack_exports__);
750
+
751
+ // EXPORTS
752
+ __webpack_require__.d(__webpack_exports__, {
753
+ "default": function() { return /* binding */ View; }
754
+ });
755
+
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
757
+ var render = function render() {
758
+ var _vm = this,
759
+ _c = _vm._self._c;
760
+ return _c('BaseComp', _vm._b({
761
+ attrs: {
762
+ "data": _vm.data,
763
+ "nowCompId": _vm.nowCompId,
764
+ "isOpcacity": _vm.isOpcacity,
765
+ "isMask": false,
766
+ "lang": _vm.lang
767
+ },
768
+ on: {
769
+ "getConfigData": _vm.getConfigData,
770
+ "getDevice": _vm.getDevice
771
+ }
772
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
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
797
+ }
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)]);
803
+ };
804
+ var staticRenderFns = [];
805
+
806
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
807
+ var baseComp = __webpack_require__(677);
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
809
+
810
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
811
+ name: "cms-video-group",
812
+ components: {
813
+ BaseComp: baseComp["default"]
814
+ },
815
+ props: {
816
+ data: {
817
+ type: Object,
818
+ default: () => {
819
+ return {};
820
+ }
821
+ },
822
+ nowCompId: {
823
+ type: [String, Number],
824
+ default: ""
825
+ },
826
+ isOpcacity: {
827
+ type: Boolean,
828
+ default: true
829
+ },
830
+ lang: {
831
+ type: String,
832
+ default: "zh-HK"
833
+ }
834
+ },
835
+ data() {
836
+ return {
837
+ configData: {},
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
854
+ };
855
+ },
856
+ mounted() {},
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
+ },
921
+ methods: {
922
+ getDevice(val) {
923
+ this.isMobile = val;
924
+ },
925
+ // 获取配置数据
926
+ getConfigData(configData) {
927
+ this.configData = this.getMergedConfig(configData);
928
+ this.updateStyles();
929
+ this.isShowPannel = this.colNums * this.configData.defaultCol < this.data.childList.length;
930
+ },
931
+ // 更新样式
932
+ updateStyles() {
933
+ this.$nextTick(() => {
934
+ // 触发样式更新
935
+ this.$forceUpdate();
936
+ });
937
+ },
938
+ // 折叠/展开文本
939
+ foldMessText() {
940
+ this.messFold = !this.messFold;
941
+ },
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
+ };
954
+ }
955
+ }
956
+ });
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
960
+ // extracted by mini-css-extract-plugin
961
+
962
+ ;// ./package/cms-video-group/View.vue?vue&type=style&index=0&id=279ca476&prod&lang=scss&scoped=true
963
+
964
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
965
+ var componentNormalizer = __webpack_require__(1656);
966
+ ;// ./package/cms-video-group/View.vue
967
+
968
+
969
+
970
+ ;
971
+
972
+
973
+ /* normalize component */
974
+
975
+ var component = (0,componentNormalizer/* default */.A)(
976
+ cms_video_group_Viewvue_type_script_lang_js,
977
+ render,
978
+ staticRenderFns,
979
+ false,
980
+ null,
981
+ "279ca476",
982
+ null
983
+
984
+ )
985
+
986
+ /* harmony default export */ var View = (component.exports);
987
+
988
+ /***/ }),
989
+
1099
990
  /***/ 342:
1100
991
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1101
992
 
@@ -3489,6 +3380,472 @@ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABECAMAAAAP
3489
3380
 
3490
3381
  /***/ }),
3491
3382
 
3383
+ /***/ 579:
3384
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3385
+
3386
+ "use strict";
3387
+ // ESM COMPAT FLAG
3388
+ __webpack_require__.r(__webpack_exports__);
3389
+
3390
+ // EXPORTS
3391
+ __webpack_require__.d(__webpack_exports__, {
3392
+ "default": function() { return /* binding */ View; }
3393
+ });
3394
+
3395
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
3396
+ var es_iterator_constructor = __webpack_require__(8111);
3397
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js
3398
+ var es_iterator_drop = __webpack_require__(9314);
3399
+ ;// ./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
3400
+
3401
+
3402
+
3403
+
3404
+ var render = function render() {
3405
+ var _vm = this,
3406
+ _c = _vm._self._c;
3407
+ return _c('BaseComp', _vm._b({
3408
+ attrs: {
3409
+ "data": _vm.data,
3410
+ "nowCompId": _vm.nowCompId,
3411
+ "isOpcacity": _vm.isOpcacity,
3412
+ "isMask": false,
3413
+ "lang": _vm.lang,
3414
+ "showDel": false
3415
+ },
3416
+ on: {
3417
+ "getConfigData": _vm.getConfigData
3418
+ }
3419
+ }, 'BaseComp', _vm.$attrs, false), [_vm.isConfigPage ? _c('div', {
3420
+ staticClass: "main_drag hoverBorderClass",
3421
+ style: _vm.cardContainerStyle,
3422
+ attrs: {
3423
+ "id": `cardTarget${_vm.data.componentId}`
3424
+ },
3425
+ on: {
3426
+ "dragover": _vm.dragover,
3427
+ "dragend": function ($event) {
3428
+ _vm.showAddCom = false;
3429
+ },
3430
+ "drop": _vm.drop
3431
+ }
3432
+ }, [_c('Draggable', {
3433
+ staticStyle: {
3434
+ "position": "relative"
3435
+ },
3436
+ attrs: {
3437
+ "group": _vm.groupConfigForMain,
3438
+ "chosen-class": "chosen",
3439
+ "force-fallback": "true",
3440
+ "animation": "1000",
3441
+ "move": _vm.onMove
3442
+ },
3443
+ on: {
3444
+ "start": _vm.onStart,
3445
+ "end": function ($event) {
3446
+ _vm.showAddCom = false;
3447
+ }
3448
+ },
3449
+ model: {
3450
+ value: _vm.data.childList,
3451
+ callback: function ($$v) {
3452
+ _vm.$set(_vm.data, "childList", $$v);
3453
+ },
3454
+ expression: "data.childList"
3455
+ }
3456
+ }, [_vm._l(_vm.data.childList, function (item, index) {
3457
+ return _c('div', {
3458
+ key: item.componentId,
3459
+ staticStyle: {
3460
+ "position": "relative"
3461
+ }
3462
+ }, [_vm.showAddCom ? _c('div', {
3463
+ staticClass: "up_insert",
3464
+ attrs: {
3465
+ "id": `${item.componentId}-cardTargetup`
3466
+ }
3467
+ }, [_c('i', {
3468
+ staticClass: "icon-up",
3469
+ attrs: {
3470
+ "id": `${item.componentId}-upi`
3471
+ }
3472
+ }), _c('span', {
3473
+ attrs: {
3474
+ "id": `${item.componentId}-upspan`
3475
+ }
3476
+ }, [_vm._v("插入组件")])]) : _vm._e(), _c(item.cmsCompName, {
3477
+ tag: "component",
3478
+ style: {
3479
+ marginTop: _vm.showAddCom && index == 0 ? '20px' : '0px'
3480
+ },
3481
+ attrs: {
3482
+ "data": item,
3483
+ "lang": _vm.lang,
3484
+ "isOpcacity": _vm.isOpcacity,
3485
+ "nowCompId": _vm.nowCompId,
3486
+ "showCmhkMain": false
3487
+ }
3488
+ })], 1);
3489
+ }), _vm.showAddCom ? _c('div', {
3490
+ staticClass: "up_insert insert_bottom",
3491
+ style: {
3492
+ bottom: _vm.data.childList.length ? '0px' : '-24px'
3493
+ },
3494
+ attrs: {
3495
+ "id": `-cardTargetdown`
3496
+ }
3497
+ }, [_c('i', {
3498
+ staticClass: "icon-up"
3499
+ }), _c('span', [_vm._v("插入组件")])]) : _vm._e()], 2)], 1) : _c('cms-view', _vm._b({
3500
+ style: _vm.cardContainerStyle,
3501
+ attrs: {
3502
+ "data": _vm.data.childList,
3503
+ "lang": _vm.lang,
3504
+ "isOpcacity": false,
3505
+ "showCmhkMain": false
3506
+ }
3507
+ }, 'cms-view', _vm.$attrs, false))], 1);
3508
+ };
3509
+ var staticRenderFns = [];
3510
+
3511
+ ;// ./package/cms-column-card/View.vue?vue&type=template&id=ad0fdc1e&scoped=true
3512
+
3513
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
3514
+ var es_array_push = __webpack_require__(4114);
3515
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
3516
+ var baseComp = __webpack_require__(677);
3517
+ // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
3518
+ var vuedraggable_umd = __webpack_require__(9014);
3519
+ var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);
3520
+ // EXTERNAL MODULE: ./package/baseConfig.js
3521
+ var baseConfig = __webpack_require__(2128);
3522
+ // EXTERNAL MODULE: ./src/views/standard_page.js
3523
+ var standard_page = __webpack_require__(521);
3524
+ ;// ./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
3525
+
3526
+
3527
+
3528
+
3529
+
3530
+
3531
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
3532
+ name: "cms-column-card",
3533
+ components: {
3534
+ BaseComp: baseComp["default"],
3535
+ Draggable: (vuedraggable_umd_default())
3536
+ },
3537
+ props: {
3538
+ data: {
3539
+ type: Object,
3540
+ default: () => {
3541
+ return {};
3542
+ }
3543
+ },
3544
+ nowCompId: {
3545
+ type: [String, Number],
3546
+ default: ""
3547
+ },
3548
+ isOpcacity: {
3549
+ type: Boolean,
3550
+ default: true
3551
+ },
3552
+ lang: {
3553
+ type: String,
3554
+ default: "zh-HK"
3555
+ },
3556
+ isMobile: {
3557
+ type: Boolean,
3558
+ default: false
3559
+ },
3560
+ mobileLayout: {
3561
+ type: String,
3562
+ default: ""
3563
+ }
3564
+ },
3565
+ data() {
3566
+ return {
3567
+ configData: {},
3568
+ messFold: true,
3569
+ showAddCom: false,
3570
+ temporaryList: []
3571
+ };
3572
+ },
3573
+ computed: {
3574
+ isConfigPage() {
3575
+ return this.$EventBus && this.isOpcacity;
3576
+ },
3577
+ groupConfigForMain() {
3578
+ return {
3579
+ name: "task",
3580
+ pull: true,
3581
+ // A列表的元素可以被拖出
3582
+ put: (to, from, dragEl) => {
3583
+ console.log(from.el.classList);
3584
+ if (from.el.classList.contains("main_drag")) {
3585
+ const dataId = this.findFirstComponentKey(dragEl);
3586
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column"];
3587
+ console.log("allowedComponents", dataId);
3588
+ if (dataId === "cms-column") {
3589
+ if (!this.checkColumnNestingLevel()) {
3590
+ console.log("cms-column 嵌套层级超出限制");
3591
+ return false;
3592
+ }
3593
+ }
3594
+ return allowedComponents.includes(dataId);
3595
+ }
3596
+ return true;
3597
+ }
3598
+ };
3599
+ },
3600
+ // 卡片容器样式
3601
+ cardContainerStyle() {
3602
+ return {
3603
+ backgroundImage: this.configData.backgroundImage ? `url('${this.configData.backgroundImage}')` : "none",
3604
+ backgroundSize: "cover",
3605
+ backgroundRepeat: "no-repeat",
3606
+ backgroundPosition: "center center",
3607
+ height: this.getContainerHeight(),
3608
+ border: this.getContainerBorder(),
3609
+ borderRadius: this.getContainerBorderRadius(),
3610
+ backgroundColor: this.configData.backgroundColor || "transparent",
3611
+ boxShadow: this.configData.boxShadow || "none"
3612
+ };
3613
+ }
3614
+ },
3615
+ mounted() {
3616
+ if (this.$EventBus) {
3617
+ this.$EventBus.$on("handleDragEnd", () => {
3618
+ this.showAddCom = false;
3619
+ });
3620
+ }
3621
+ },
3622
+ watch: {},
3623
+ methods: {
3624
+ findFirstComponentKey(root) {
3625
+ var _root$querySelector;
3626
+ if (!root) return null;
3627
+
3628
+ // 若起点自身就有
3629
+ if (root.nodeType === 1 && root.hasAttribute("component-key")) {
3630
+ return root.getAttribute("component-key");
3631
+ }
3632
+
3633
+ // 向下查找第一个匹配的后代
3634
+ const el = (_root$querySelector = root.querySelector) === null || _root$querySelector === void 0 ? void 0 : _root$querySelector.call(root, "[component-key]");
3635
+ return el ? el.getAttribute("component-key") : null;
3636
+ },
3637
+ // 获取容器高度
3638
+ getContainerHeight() {
3639
+ if (this.configData.heightType === "fixed") {
3640
+ return `${this.configData.fixedHeight}px`;
3641
+ }
3642
+ return this.isMobile && this.mobileLayout == "vertical" ? "auto" : "100%";
3643
+ },
3644
+ // 获取容器边框
3645
+ getContainerBorder() {
3646
+ if (this.configData.borderWidth) {
3647
+ return `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}`;
3648
+ }
3649
+ return "none";
3650
+ },
3651
+ // 获取容器圆角
3652
+ getContainerBorderRadius() {
3653
+ const radius = this.configData.borderRadius !== undefined && this.configData.borderRadius !== null ? this.configData.borderRadius : 0;
3654
+ if (radius === "full") {
3655
+ return "9999px";
3656
+ }
3657
+ const radiusNumber = Number(radius);
3658
+ return Number.isNaN(radiusNumber) ? "0px" : `${radiusNumber}px`;
3659
+ },
3660
+ getConfigData(configData) {
3661
+ this.configData = configData;
3662
+ },
3663
+ foldMessText() {
3664
+ this.messFold = !this.messFold;
3665
+ },
3666
+ decodeJumpUrl(url) {
3667
+ if (!url) return;
3668
+ top.location.href = url;
3669
+ },
3670
+ onStart(evt) {
3671
+ console.log("drag start in column-card", evt);
3672
+ this.showAddCom = true;
3673
+ },
3674
+ // 限制拖拽的组件类型
3675
+ onMove(evt) {
3676
+ const {
3677
+ draggedContext
3678
+ } = evt;
3679
+
3680
+ // 允许的组件类型
3681
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
3682
+ ];
3683
+
3684
+ // 如果是从外部拖入的组件
3685
+ if (draggedContext && draggedContext.element) {
3686
+ const componentType = draggedContext.element.cmsCompName;
3687
+ if (componentType && !allowedComponents.includes(componentType)) {
3688
+ console.log("draggedContext.element", draggedContext.element);
3689
+ console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
3690
+ return false;
3691
+ }
3692
+
3693
+ // 特殊处理 cms-column:检查嵌套层级
3694
+ if (componentType === "cms-column") {
3695
+ if (!this.checkColumnNestingLevel()) {
3696
+ console.log("cms-column 嵌套层级超出限制");
3697
+ return false;
3698
+ }
3699
+ }
3700
+ }
3701
+ return true;
3702
+ },
3703
+ // 检查 cms-column 嵌套层级
3704
+ checkColumnNestingLevel() {
3705
+ // 检查当前 column-card 是否已经在 cms-column 内部
3706
+ let parent = this.$parent;
3707
+ let columnDepth = 0;
3708
+ while (parent) {
3709
+ // 检查父组件是否是 cms-column 或包含 cms-column
3710
+ if (parent.$options.name === "cms-column" || parent.$data && parent.$data.data && parent.$data.data.cmsCompName === "cms-column") {
3711
+ columnDepth++;
3712
+ }
3713
+
3714
+ // 如果已经有一层 cms-column,则不允许再嵌套
3715
+ if (columnDepth >= 2) {
3716
+ console.log(`检测到 cms-column 嵌套层级: ${columnDepth}, 超出限制`);
3717
+ return false;
3718
+ }
3719
+ parent = parent.$parent;
3720
+ }
3721
+ console.log(`cms-column 嵌套层级检查通过: ${columnDepth}`);
3722
+ return true;
3723
+ },
3724
+ // 处理拖拽悬停
3725
+ dragover(e) {
3726
+ e.preventDefault();
3727
+ this.showAddCom = true;
3728
+ },
3729
+ // 处理拖拽放置
3730
+ drop(e) {
3731
+ e.preventDefault();
3732
+ const componentKey = e.dataTransfer.getData("componentKey");
3733
+ let temporaryId = "";
3734
+ this.temporaryList = e.dataTransfer.getData("temporaryList") ? JSON.parse(e.dataTransfer.getData("temporaryList")) : [];
3735
+ console.log("cms-colum-card-drop", componentKey, this.temporaryList);
3736
+ if (!componentKey) return;
3737
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
3738
+ const isTemporary = isTemporaryItem === "true";
3739
+ if (isTemporary) {
3740
+ temporaryId = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey).cmsCompName;
3741
+ }
3742
+ const componentType = isTemporary ? temporaryId : componentKey;
3743
+ // 允许的组件类型
3744
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
3745
+ ];
3746
+
3747
+ // 检查组件类型是否允许
3748
+ if (!allowedComponents.includes(componentType)) {
3749
+ console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
3750
+ this.$message && this.$message.warning(`该组件类型不支持拖入卡片容器`);
3751
+ this.showAddCom = false;
3752
+ return;
3753
+ }
3754
+
3755
+ // 特殊处理 cms-column:检查嵌套层级
3756
+ if (componentType === "cms-column") {
3757
+ if (!this.checkColumnNestingLevel()) {
3758
+ console.log("cms-column 嵌套层级超出限制");
3759
+ this.$message && this.$message.warning(`cms-column 只能嵌套一层`);
3760
+ this.showAddCom = false;
3761
+ return;
3762
+ }
3763
+ }
3764
+ this.addOneComp(e, componentKey);
3765
+ },
3766
+ // 添加组件到卡片容器
3767
+ addOneComp(e, componentKey) {
3768
+ this.showAddCom = false;
3769
+ console.log("drop to column-card", componentKey);
3770
+
3771
+ // 动态导入组件配置
3772
+ let initCompData;
3773
+ try {
3774
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
3775
+ const isTemporary = isTemporaryItem === "true";
3776
+ if (isTemporary) {
3777
+ initCompData = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey);
3778
+ } else {
3779
+ initCompData = __webpack_require__(1640)(`./${componentKey}`).default.settings(componentKey);
3780
+ }
3781
+ if (!isTemporary) {
3782
+ initCompData = {
3783
+ ...initCompData,
3784
+ styleConfig: {
3785
+ pc: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(16, 16, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")],
3786
+ mb: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(12, 12, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")]
3787
+ }
3788
+ };
3789
+ }
3790
+ } catch (error) {
3791
+ console.error(`无法加载组件 ${componentKey}:`, error);
3792
+ this.$message && this.$message.error(`组件加载失败`);
3793
+ return;
3794
+ }
3795
+ const toElementId = e.toElement.id;
3796
+ if (toElementId === `cardTarget${this.data.componentId}` || toElementId.includes("cardTargetdown")) {
3797
+ // 添加到卡片容器末尾
3798
+ this.data.childList.push(initCompData);
3799
+ } else if (toElementId.includes("cardTargetup")) {
3800
+ // 插入到指定位置
3801
+ const underComponentId = toElementId.split("-cardTargetup")[0];
3802
+ const index = this.data.childList.findIndex(item => item.componentId === underComponentId);
3803
+ if (index !== -1) {
3804
+ this.data.childList.splice(index, 0, initCompData);
3805
+ }
3806
+ }
3807
+
3808
+ // 触发数据更新
3809
+ this.$emit("update:data", this.data);
3810
+ if (componentKey === "cms-column") {
3811
+ this.$EventBus.$emit("handleNowComp", initCompData);
3812
+ }
3813
+ }
3814
+ }
3815
+ });
3816
+ ;// ./package/cms-column-card/View.vue?vue&type=script&lang=js
3817
+ /* harmony default export */ var cms_column_card_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
3818
+ ;// ./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
3819
+ // extracted by mini-css-extract-plugin
3820
+
3821
+ ;// ./package/cms-column-card/View.vue?vue&type=style&index=0&id=ad0fdc1e&prod&lang=scss&scoped=true
3822
+
3823
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
3824
+ var componentNormalizer = __webpack_require__(1656);
3825
+ ;// ./package/cms-column-card/View.vue
3826
+
3827
+
3828
+
3829
+ ;
3830
+
3831
+
3832
+ /* normalize component */
3833
+
3834
+ var component = (0,componentNormalizer/* default */.A)(
3835
+ cms_column_card_Viewvue_type_script_lang_js,
3836
+ render,
3837
+ staticRenderFns,
3838
+ false,
3839
+ null,
3840
+ "ad0fdc1e",
3841
+ null
3842
+
3843
+ )
3844
+
3845
+ /* harmony default export */ var View = (component.exports);
3846
+
3847
+ /***/ }),
3848
+
3492
3849
  /***/ 613:
3493
3850
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3494
3851
 
@@ -22768,8 +23125,8 @@ var map = {
22768
23125
  "./cms-column": 3154,
22769
23126
  "./cms-column-card": 3583,
22770
23127
  "./cms-column-card/": 3583,
22771
- "./cms-column-card/View": 4552,
22772
- "./cms-column-card/View.vue": 4552,
23128
+ "./cms-column-card/View": 579,
23129
+ "./cms-column-card/View.vue": 579,
22773
23130
  "./cms-column-card/index": 3583,
22774
23131
  "./cms-column-card/index.js": 3583,
22775
23132
  "./cms-column/": 3154,
@@ -22798,13 +23155,13 @@ var map = {
22798
23155
  "./cms-image": 3513,
22799
23156
  "./cms-image-group": 2987,
22800
23157
  "./cms-image-group/": 2987,
22801
- "./cms-image-group/View": 7800,
22802
- "./cms-image-group/View.vue": 7800,
23158
+ "./cms-image-group/View": 2578,
23159
+ "./cms-image-group/View.vue": 2578,
22803
23160
  "./cms-image-group/index": 2987,
22804
23161
  "./cms-image-group/index.js": 2987,
22805
23162
  "./cms-image/": 3513,
22806
- "./cms-image/View": 153,
22807
- "./cms-image/View.vue": 153,
23163
+ "./cms-image/View": 9383,
23164
+ "./cms-image/View.vue": 9383,
22808
23165
  "./cms-image/index": 3513,
22809
23166
  "./cms-image/index.js": 3513,
22810
23167
  "./cms-imgFour": 3395,
@@ -22929,13 +23286,13 @@ var map = {
22929
23286
  "./cms-video": 3275,
22930
23287
  "./cms-video-group": 2697,
22931
23288
  "./cms-video-group/": 2697,
22932
- "./cms-video-group/View": 1882,
22933
- "./cms-video-group/View.vue": 1882,
23289
+ "./cms-video-group/View": 304,
23290
+ "./cms-video-group/View.vue": 304,
22934
23291
  "./cms-video-group/index": 2697,
22935
23292
  "./cms-video-group/index.js": 2697,
22936
23293
  "./cms-video/": 3275,
22937
- "./cms-video/View": 1659,
22938
- "./cms-video/View.vue": 1659,
23294
+ "./cms-video/View": 6722,
23295
+ "./cms-video/View.vue": 6722,
22939
23296
  "./cms-video/index": 3275,
22940
23297
  "./cms-video/index.js": 3275,
22941
23298
  "./cms-view": 725,
@@ -23108,346 +23465,6 @@ function normalizeComponent(
23108
23465
  }
23109
23466
 
23110
23467
 
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
23468
  /***/ }),
23452
23469
 
23453
23470
  /***/ 1661:
@@ -24126,189 +24143,6 @@ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABz
24126
24143
 
24127
24144
  /***/ }),
24128
24145
 
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
24146
  /***/ 1944:
24313
24147
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
24314
24148
 
@@ -25898,56 +25732,355 @@ var baseComp = __webpack_require__(677);
25898
25732
  },
25899
25733
  data() {
25900
25734
  return {
25901
- configList: [],
25902
- expend: "",
25903
- problemActive: 0
25735
+ configList: [],
25736
+ expend: "",
25737
+ problemActive: 0
25738
+ };
25739
+ },
25740
+ mounted() {},
25741
+ watch: {},
25742
+ methods: {
25743
+ getConfigData(configData) {
25744
+ this.configList = configData.configList;
25745
+ },
25746
+ open(item, index, event) {
25747
+ var _this$configList$this;
25748
+ console.log(event);
25749
+ this.expend = item.input1;
25750
+ (_this$configList$this = this.configList[this.problemActive]) === null || _this$configList$this === void 0 ? void 0 : _this$configList$this.contentArray.forEach((cur, curIndex) => {
25751
+ var _this$configList$this2;
25752
+ 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);
25753
+ });
25754
+ },
25755
+ decodeJumpUrl(url) {
25756
+ if (!url) return;
25757
+ top.location.href = url;
25758
+ }
25759
+ },
25760
+ computed: {
25761
+ _stableProblemGuide() {
25762
+ let res = this.configList || [];
25763
+ return res.map(item => {
25764
+ return {
25765
+ ...item,
25766
+ contentArray: ((item === null || item === void 0 ? void 0 : item.contentArray) || []).map(cur => ({
25767
+ ...cur,
25768
+ status: (cur === null || cur === void 0 ? void 0 : cur.status) || false
25769
+ }))
25770
+ };
25771
+ });
25772
+ }
25773
+ }
25774
+ });
25775
+ ;// ./package/cms-question/View.vue?vue&type=script&lang=js
25776
+ /* harmony default export */ var cms_question_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
25777
+ ;// ./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
25778
+ // extracted by mini-css-extract-plugin
25779
+
25780
+ ;// ./package/cms-question/View.vue?vue&type=style&index=0&id=06710479&prod&lang=scss&scoped=true
25781
+
25782
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
25783
+ var componentNormalizer = __webpack_require__(1656);
25784
+ ;// ./package/cms-question/View.vue
25785
+
25786
+
25787
+
25788
+ ;
25789
+
25790
+
25791
+ /* normalize component */
25792
+
25793
+ var component = (0,componentNormalizer/* default */.A)(
25794
+ cms_question_Viewvue_type_script_lang_js,
25795
+ render,
25796
+ staticRenderFns,
25797
+ false,
25798
+ null,
25799
+ "06710479",
25800
+ null
25801
+
25802
+ )
25803
+
25804
+ /* harmony default export */ var View = (component.exports);
25805
+
25806
+ /***/ }),
25807
+
25808
+ /***/ 2520:
25809
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
25810
+
25811
+ "use strict";
25812
+ __webpack_require__.r(__webpack_exports__);
25813
+ /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
25814
+
25815
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 5865));
25816
+ const langData = {
25817
+ input1: "描述",
25818
+ input2: "标题",
25819
+ input3: "高亮标题"
25820
+ };
25821
+ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
25822
+ input1: {
25823
+ label: "描述"
25824
+ },
25825
+ input2: {
25826
+ label: "标题"
25827
+ },
25828
+ input3: {
25829
+ label: "高亮标题"
25830
+ }
25831
+ });
25832
+ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
25833
+ /* harmony default export */ __webpack_exports__["default"] = ({
25834
+ View,
25835
+ validateSchema,
25836
+ configDataType,
25837
+ langData,
25838
+ settings: cmsCompName => {
25839
+ return (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getInitCompData)({
25840
+ cmsCompName,
25841
+ langData
25842
+ });
25843
+ }
25844
+ });
25845
+
25846
+ /***/ }),
25847
+
25848
+ /***/ 2529:
25849
+ /***/ (function(module) {
25850
+
25851
+ "use strict";
25852
+
25853
+ // `CreateIterResultObject` abstract operation
25854
+ // https://tc39.es/ecma262/#sec-createiterresultobject
25855
+ module.exports = function (value, done) {
25856
+ return { value: value, done: done };
25857
+ };
25858
+
25859
+
25860
+ /***/ }),
25861
+
25862
+ /***/ 2578:
25863
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
25864
+
25865
+ "use strict";
25866
+ // ESM COMPAT FLAG
25867
+ __webpack_require__.r(__webpack_exports__);
25868
+
25869
+ // EXPORTS
25870
+ __webpack_require__.d(__webpack_exports__, {
25871
+ "default": function() { return /* binding */ View; }
25872
+ });
25873
+
25874
+ ;// ./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
25875
+ var render = function render() {
25876
+ var _vm = this,
25877
+ _c = _vm._self._c;
25878
+ return _c('BaseComp', _vm._b({
25879
+ attrs: {
25880
+ "data": _vm.data,
25881
+ "nowCompId": _vm.nowCompId,
25882
+ "isOpcacity": _vm.isOpcacity,
25883
+ "isMask": false,
25884
+ "lang": _vm.lang
25885
+ },
25886
+ on: {
25887
+ "getConfigData": _vm.getConfigData
25888
+ }
25889
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
25890
+ staticClass: "cmhk-home_main"
25891
+ }, [_c('div', {
25892
+ staticClass: "wrap",
25893
+ style: _vm.wrapStyle
25894
+ }, _vm._l(_vm.showVideoList, function (item) {
25895
+ return _c('cms-image', {
25896
+ key: item.componentId,
25897
+ staticStyle: {
25898
+ "overflow": "hidden"
25899
+ },
25900
+ attrs: {
25901
+ "data": item,
25902
+ "nowCompId": _vm.nowCompId,
25903
+ "isOpcacity": _vm.isOpcacity,
25904
+ "isMask": false,
25905
+ "lang": _vm.lang
25906
+ }
25907
+ });
25908
+ }), 1), _vm.isShowPannel ? [_c('div', {
25909
+ staticClass: "view-more-container"
25910
+ }, [_c('div', {
25911
+ staticClass: "view-more-btn",
25912
+ on: {
25913
+ "click": _vm.foldMessText
25914
+ }
25915
+ }, [_c('span', {
25916
+ staticClass: "view-more-text"
25917
+ }, [_vm._v(" " + _vm._s(_vm.messFold ? _vm.$t("roamIndex.Collpase") : _vm.$t("roamIndex.More")) + " ")]), _c('i', {
25918
+ class: ['view-more-icon', _vm.messFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down']
25919
+ })])])] : _vm._e()], 2)]);
25920
+ };
25921
+ var staticRenderFns = [];
25922
+
25923
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
25924
+ var baseComp = __webpack_require__(677);
25925
+ ;// ./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
25926
+
25927
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
25928
+ name: "cms-image-group",
25929
+ components: {
25930
+ BaseComp: baseComp["default"]
25931
+ },
25932
+ props: {
25933
+ data: {
25934
+ type: Object,
25935
+ default: () => {
25936
+ return {};
25937
+ }
25938
+ },
25939
+ nowCompId: {
25940
+ type: [String, Number],
25941
+ default: ""
25942
+ },
25943
+ isOpcacity: {
25944
+ type: Boolean,
25945
+ default: true
25946
+ },
25947
+ lang: {
25948
+ type: String,
25949
+ default: "zh-HK"
25950
+ }
25951
+ },
25952
+ data() {
25953
+ return {
25954
+ configData: {},
25955
+ messFold: false,
25956
+ // 默认配置数据
25957
+ defaultConfig: {
25958
+ colNums: 1,
25959
+ defaultCol: 12,
25960
+ gap: 10,
25961
+ cornerRadius: {
25962
+ topLeft: "8",
25963
+ topRight: "8",
25964
+ bottomLeft: "8",
25965
+ bottomRight: "8"
25966
+ }
25967
+ },
25968
+ isShowPannel: false
25904
25969
  };
25905
25970
  },
25906
25971
  mounted() {},
25907
- watch: {},
25908
- methods: {
25909
- getConfigData(configData) {
25910
- this.configList = configData.configList;
25972
+ watch: {
25973
+ configData: {
25974
+ handler() {
25975
+ this.updateStyles();
25976
+ },
25977
+ deep: true
25978
+ }
25979
+ },
25980
+ computed: {
25981
+ showVideoList() {
25982
+ if (this.isShowPannel && !this.messFold) return this.data.childList.slice(0, this.configData.colNums * this.configData.defaultCol);
25983
+ return this.data.childList;
25911
25984
  },
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
- });
25985
+ isConfigPage() {
25986
+ return this.$EventBus && this.isOpcacity;
25920
25987
  },
25921
- decodeJumpUrl(url) {
25922
- if (!url) return;
25923
- top.location.href = url;
25988
+ borderRadiusStyle() {
25989
+ const config = {
25990
+ ...this.defaultConfig,
25991
+ ...this.configData
25992
+ };
25993
+ const radiusConfig = config.cornerRadius || {};
25994
+ const legacyMap = {
25995
+ topLeft: config.borderRadiusTopLeft,
25996
+ topRight: config.borderRadiusTopRight,
25997
+ bottomLeft: config.borderRadiusBottomLeft,
25998
+ bottomRight: config.borderRadiusBottomRight
25999
+ };
26000
+ const formatRadius = value => {
26001
+ if (value === "full") return "9999px";
26002
+ if (value === undefined || value === null || value === "") {
26003
+ return "0px";
26004
+ }
26005
+ const num = Number(value);
26006
+ return Number.isNaN(num) ? "0px" : `${num}px`;
26007
+ };
26008
+ const resolveValue = corner => {
26009
+ const value = radiusConfig[corner] !== undefined && radiusConfig[corner] !== null ? radiusConfig[corner] : legacyMap[corner];
26010
+ return formatRadius(value);
26011
+ };
26012
+ return {
26013
+ topLeft: resolveValue("topLeft"),
26014
+ topRight: resolveValue("topRight"),
26015
+ bottomLeft: resolveValue("bottomLeft"),
26016
+ bottomRight: resolveValue("bottomRight")
26017
+ };
26018
+ },
26019
+ wrapStyle() {
26020
+ const config = {
26021
+ ...this.defaultConfig,
26022
+ ...this.configData
26023
+ };
26024
+ return {
26025
+ gridTemplateColumns: `repeat(${config.colNums}, 1fr)`,
26026
+ gridGap: `${config.gap}px`,
26027
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
26028
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
26029
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
26030
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
26031
+ overflow: "hidden"
26032
+ };
25924
26033
  }
25925
26034
  },
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
- };
26035
+ methods: {
26036
+ // 获取配置数据
26037
+ getConfigData(configData) {
26038
+ this.configData = this.getMergedConfig(configData);
26039
+ this.updateStyles();
26040
+ this.isShowPannel = this.configData.colNums * this.configData.defaultCol < this.data.childList.length;
26041
+ },
26042
+ // 更新样式
26043
+ updateStyles() {
26044
+ this.$nextTick(() => {
26045
+ // 触发样式更新
26046
+ this.$forceUpdate();
25937
26047
  });
26048
+ },
26049
+ // 折叠/展开文本
26050
+ foldMessText() {
26051
+ this.messFold = !this.messFold;
26052
+ },
26053
+ getMergedConfig(configData = {}) {
26054
+ const mergedCorner = {
26055
+ ...(this.defaultConfig.cornerRadius || {})
26056
+ };
26057
+ if (configData.cornerRadius) {
26058
+ Object.assign(mergedCorner, configData.cornerRadius);
26059
+ } else {
26060
+ var _configData$borderRad, _configData$borderRad2, _configData$borderRad3, _configData$borderRad4;
26061
+ mergedCorner.topLeft = (_configData$borderRad = configData.borderRadiusTopLeft) === null || _configData$borderRad === void 0 ? void 0 : _configData$borderRad.mergedCorner.topLeft;
26062
+ mergedCorner.topRight = (_configData$borderRad2 = configData.borderRadiusTopRight) === null || _configData$borderRad2 === void 0 ? void 0 : _configData$borderRad2.mergedCorner.topRight;
26063
+ mergedCorner.bottomLeft = (_configData$borderRad3 = configData.borderRadiusBottomLeft) === null || _configData$borderRad3 === void 0 ? void 0 : _configData$borderRad3.mergedCorner.bottomLeft;
26064
+ mergedCorner.bottomRight = (_configData$borderRad4 = configData.borderRadiusBottomRight) === null || _configData$borderRad4 === void 0 ? void 0 : _configData$borderRad4.mergedCorner.bottomRight;
26065
+ }
26066
+ return {
26067
+ ...this.defaultConfig,
26068
+ ...configData,
26069
+ cornerRadius: mergedCorner
26070
+ };
25938
26071
  }
25939
26072
  }
25940
26073
  });
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
26074
+ ;// ./package/cms-image-group/View.vue?vue&type=script&lang=js
26075
+ /* harmony default export */ var cms_image_group_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
26076
+ ;// ./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
26077
  // extracted by mini-css-extract-plugin
25945
26078
 
25946
- ;// ./package/cms-question/View.vue?vue&type=style&index=0&id=06710479&prod&lang=scss&scoped=true
26079
+ ;// ./package/cms-image-group/View.vue?vue&type=style&index=0&id=4dee5e5e&prod&lang=scss&scoped=true
25947
26080
 
25948
26081
  // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
25949
26082
  var componentNormalizer = __webpack_require__(1656);
25950
- ;// ./package/cms-question/View.vue
26083
+ ;// ./package/cms-image-group/View.vue
25951
26084
 
25952
26085
 
25953
26086
 
@@ -25957,72 +26090,18 @@ var componentNormalizer = __webpack_require__(1656);
25957
26090
  /* normalize component */
25958
26091
 
25959
26092
  var component = (0,componentNormalizer/* default */.A)(
25960
- cms_question_Viewvue_type_script_lang_js,
26093
+ cms_image_group_Viewvue_type_script_lang_js,
25961
26094
  render,
25962
26095
  staticRenderFns,
25963
26096
  false,
25964
26097
  null,
25965
- "06710479",
26098
+ "4dee5e5e",
25966
26099
  null
25967
26100
 
25968
26101
  )
25969
26102
 
25970
26103
  /* harmony default export */ var View = (component.exports);
25971
26104
 
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
26105
  /***/ }),
26027
26106
 
26028
26107
  /***/ 2584:
@@ -26745,13 +26824,35 @@ module.exports = function (iterable, unboundFunction, options) {
26745
26824
  __webpack_require__.r(__webpack_exports__);
26746
26825
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
26747
26826
 
26748
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 1882));
26827
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 304));
26749
26828
  const langData = {
26750
26829
  colNums_PC: 1,
26751
26830
  colNums_Mobile: 1,
26752
26831
  defaultCol: 12,
26753
- gap: 10
26832
+ gap: 10,
26833
+ cornerRadius: {
26834
+ topLeft: "8",
26835
+ topRight: "8",
26836
+ bottomLeft: "8",
26837
+ bottomRight: "8"
26838
+ }
26754
26839
  };
26840
+ const radiusOptions = [{
26841
+ label: "0",
26842
+ value: "0"
26843
+ }, {
26844
+ label: "4",
26845
+ value: "4"
26846
+ }, {
26847
+ label: "8",
26848
+ value: "8"
26849
+ }, {
26850
+ label: "16",
26851
+ value: "16"
26852
+ }, {
26853
+ label: "全圆角",
26854
+ value: "full"
26855
+ }];
26755
26856
  const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
26756
26857
  // 布局配置
26757
26858
  colNums_PC: {
@@ -26793,6 +26894,11 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
26793
26894
  step: 1,
26794
26895
  isCol: true,
26795
26896
  unit: "行"
26897
+ },
26898
+ cornerRadius: {
26899
+ label: "圆角",
26900
+ widgetType: "CornerRadiusPicker",
26901
+ options: radiusOptions
26796
26902
  }
26797
26903
  });
26798
26904
  const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
@@ -27857,16 +27963,16 @@ module.exports = Math.pow;
27857
27963
  __webpack_require__.r(__webpack_exports__);
27858
27964
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
27859
27965
 
27860
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 7800));
27966
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 2578));
27861
27967
  const langData = {
27862
27968
  colNums: 1,
27863
27969
  defaultCol: 12,
27864
27970
  gap: 10,
27865
27971
  cornerRadius: {
27866
- topLeft: "0",
27867
- topRight: "0",
27868
- bottomLeft: "0",
27869
- bottomRight: "0"
27972
+ topLeft: "8",
27973
+ topRight: "8",
27974
+ bottomLeft: "8",
27975
+ bottomRight: "8"
27870
27976
  }
27871
27977
  };
27872
27978
  const radiusOptions = [{
@@ -28332,7 +28438,7 @@ module.exports = function (O) {
28332
28438
  __webpack_require__.r(__webpack_exports__);
28333
28439
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
28334
28440
 
28335
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 1659));
28441
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 6722));
28336
28442
  const langData = {
28337
28443
  // 视频源设置
28338
28444
  title: '',
@@ -28349,10 +28455,32 @@ const langData = {
28349
28455
  aspectRatio: "16:9",
28350
28456
  // 样式设置
28351
28457
  borderRadius: 0,
28458
+ cornerRadius: {
28459
+ topLeft: "8",
28460
+ topRight: "8",
28461
+ bottomLeft: "8",
28462
+ bottomRight: "8"
28463
+ },
28352
28464
  // 高级配置
28353
28465
  customClass: "",
28354
28466
  customStyle: ""
28355
28467
  };
28468
+ const radiusOptions = [{
28469
+ label: "0",
28470
+ value: "0"
28471
+ }, {
28472
+ label: "4",
28473
+ value: "4"
28474
+ }, {
28475
+ label: "8",
28476
+ value: "8"
28477
+ }, {
28478
+ label: "16",
28479
+ value: "16"
28480
+ }, {
28481
+ label: "全圆角",
28482
+ value: "full"
28483
+ }];
28356
28484
  const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
28357
28485
  // 视频源设置配置
28358
28486
  title: {
@@ -28430,13 +28558,10 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
28430
28558
  }]
28431
28559
  },
28432
28560
  // 样式设置配置
28433
- borderRadius: {
28434
- label: "圆角(px)",
28435
- widgetType: "el-input-number",
28436
- size: "small",
28437
- min: 0,
28438
- max: 100,
28439
- step: 1
28561
+ cornerRadius: {
28562
+ label: "圆角",
28563
+ widgetType: "CornerRadiusPicker",
28564
+ options: radiusOptions
28440
28565
  }
28441
28566
 
28442
28567
  // 高级配置
@@ -28718,7 +28843,7 @@ module.exports = function (argument) {
28718
28843
  __webpack_require__.r(__webpack_exports__);
28719
28844
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
28720
28845
 
28721
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 153));
28846
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 9383));
28722
28847
  const langData = {
28723
28848
  // 图片设置
28724
28849
  remark: "",
@@ -28728,10 +28853,10 @@ const langData = {
28728
28853
  // 样式设置
28729
28854
  borderRadius: 0,
28730
28855
  cornerRadius: {
28731
- topLeft: "0",
28732
- topRight: "0",
28733
- bottomLeft: "0",
28734
- bottomRight: "0"
28856
+ topLeft: "8",
28857
+ topRight: "8",
28858
+ bottomLeft: "8",
28859
+ bottomRight: "8"
28735
28860
  },
28736
28861
  objectFit: "cover",
28737
28862
  // 交互功能
@@ -36785,7 +36910,23 @@ $({ target: 'Iterator', proto: true, real: true }, {
36785
36910
  __webpack_require__.r(__webpack_exports__);
36786
36911
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2128);
36787
36912
 
36788
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 4552));
36913
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 579));
36914
+ const radiusOptions = [{
36915
+ label: "0",
36916
+ value: 0
36917
+ }, {
36918
+ label: "4",
36919
+ value: 4
36920
+ }, {
36921
+ label: "8",
36922
+ value: 8
36923
+ }, {
36924
+ label: "16",
36925
+ value: 16
36926
+ }, {
36927
+ label: "全圆角",
36928
+ value: "full"
36929
+ }];
36789
36930
 
36790
36931
  // 默认配置数据
36791
36932
  const langData = {
@@ -36796,7 +36937,7 @@ const langData = {
36796
36937
  borderWidth: 0,
36797
36938
  borderStyle: "solid",
36798
36939
  borderColor: "",
36799
- borderRadius: 0,
36940
+ borderRadius: 8,
36800
36941
  // 背景设置
36801
36942
  backgroundColor: "",
36802
36943
  backgroundImage: "",
@@ -36859,12 +37000,9 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
36859
37000
  predefine: ["#262729", "rgb(36,38,40,0.8)", "rgb(36,38,40,0.5)", "#2F85FF", "#D6197F", "#52C41A", "#f48427", "#FFFFFF"]
36860
37001
  },
36861
37002
  borderRadius: {
36862
- label: "圆角(px)",
36863
- widgetType: "el-input-number",
36864
- size: "small",
36865
- min: 0,
36866
- max: 100,
36867
- step: 1
37003
+ label: "圆角",
37004
+ widgetType: "el-select",
37005
+ options: radiusOptions
36868
37006
  },
36869
37007
  // 背景设置配置
36870
37008
  backgroundColor: {
@@ -39802,470 +39940,6 @@ var component = (0,componentNormalizer/* default */.A)(
39802
39940
 
39803
39941
  /***/ }),
39804
39942
 
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
39943
  /***/ 4576:
40270
39944
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
40271
39945
 
@@ -42102,13 +41776,13 @@ var map = {
42102
41776
  "./cms-banner/View.vue": 9894,
42103
41777
  "./cms-button/View.vue": 7318,
42104
41778
  "./cms-cells/View.vue": 983,
42105
- "./cms-column-card/View.vue": 4552,
41779
+ "./cms-column-card/View.vue": 579,
42106
41780
  "./cms-column/View.vue": 4623,
42107
41781
  "./cms-description/View.vue": 6296,
42108
41782
  "./cms-dynamic-comp/View.vue": 471,
42109
41783
  "./cms-iconFour/View.vue": 2946,
42110
- "./cms-image-group/View.vue": 7800,
42111
- "./cms-image/View.vue": 153,
41784
+ "./cms-image-group/View.vue": 2578,
41785
+ "./cms-image/View.vue": 9383,
42112
41786
  "./cms-imgFour/View.vue": 9545,
42113
41787
  "./cms-lineFive/View.vue": 1716,
42114
41788
  "./cms-lineFour/View.vue": 8067,
@@ -42128,8 +41802,8 @@ var map = {
42128
41802
  "./cms-titleCenter/View.vue": 788,
42129
41803
  "./cms-titleLeft/View.vue": 6946,
42130
41804
  "./cms-via-storedValueCard/View.vue": 5669,
42131
- "./cms-video-group/View.vue": 1882,
42132
- "./cms-video/View.vue": 1659,
41805
+ "./cms-video-group/View.vue": 304,
41806
+ "./cms-video/View.vue": 6722,
42133
41807
  "./cms-view/View.vue": 3774
42134
41808
  };
42135
41809
 
@@ -48748,139 +48422,521 @@ module.exports = !!$Map && /** @type {Exclude<import('.'), false>} */function ge
48748
48422
  throw new $TypeError('Side channel does not contain ' + inspect(key));
48749
48423
  }
48750
48424
  },
48751
- 'delete': function (key) {
48752
- if ($m) {
48753
- var result = $mapDelete($m, key);
48754
- if ($mapSize($m) === 0) {
48755
- $m = void undefined;
48756
- }
48757
- return result;
48425
+ 'delete': function (key) {
48426
+ if ($m) {
48427
+ var result = $mapDelete($m, key);
48428
+ if ($mapSize($m) === 0) {
48429
+ $m = void undefined;
48430
+ }
48431
+ return result;
48432
+ }
48433
+ return false;
48434
+ },
48435
+ get: function (key) {
48436
+ // eslint-disable-line consistent-return
48437
+ if ($m) {
48438
+ return $mapGet($m, key);
48439
+ }
48440
+ },
48441
+ has: function (key) {
48442
+ if ($m) {
48443
+ return $mapHas($m, key);
48444
+ }
48445
+ return false;
48446
+ },
48447
+ set: function (key, value) {
48448
+ if (!$m) {
48449
+ // @ts-expect-error TS can't handle narrowing a variable inside a closure
48450
+ $m = new $Map();
48451
+ }
48452
+ $mapSet($m, key, value);
48453
+ }
48454
+ };
48455
+
48456
+ // @ts-expect-error TODO: figure out why TS is erroring here
48457
+ return channel;
48458
+ };
48459
+
48460
+ /***/ }),
48461
+
48462
+ /***/ 6677:
48463
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
48464
+
48465
+ "use strict";
48466
+
48467
+
48468
+ __webpack_require__(6573);
48469
+ __webpack_require__(8100);
48470
+ __webpack_require__(7936);
48471
+ __webpack_require__(7467);
48472
+ __webpack_require__(4732);
48473
+ __webpack_require__(9577);
48474
+ exports.__esModule = true;
48475
+ exports.isDefined = exports.isUndefined = exports.isFunction = undefined;
48476
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
48477
+ return typeof obj;
48478
+ } : function (obj) {
48479
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
48480
+ };
48481
+ exports.isString = isString;
48482
+ exports.isObject = isObject;
48483
+ exports.isHtmlElement = isHtmlElement;
48484
+ var _vue = __webpack_require__(3562);
48485
+ var _vue2 = _interopRequireDefault(_vue);
48486
+ function _interopRequireDefault(obj) {
48487
+ return obj && obj.__esModule ? obj : {
48488
+ default: obj
48489
+ };
48490
+ }
48491
+ function isString(obj) {
48492
+ return Object.prototype.toString.call(obj) === '[object String]';
48493
+ }
48494
+ function isObject(obj) {
48495
+ return Object.prototype.toString.call(obj) === '[object Object]';
48496
+ }
48497
+ function isHtmlElement(node) {
48498
+ return node && node.nodeType === Node.ELEMENT_NODE;
48499
+ }
48500
+
48501
+ /**
48502
+ * - Inspired:
48503
+ * https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js
48504
+ */
48505
+ var isFunction = function isFunction(functionToCheck) {
48506
+ var getType = {};
48507
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
48508
+ };
48509
+ if ( true && (typeof Int8Array === 'undefined' ? 'undefined' : _typeof(Int8Array)) !== 'object' && (_vue2.default.prototype.$isServer || typeof document.childNodes !== 'function')) {
48510
+ exports.isFunction = isFunction = function isFunction(obj) {
48511
+ return typeof obj === 'function' || false;
48512
+ };
48513
+ }
48514
+ exports.isFunction = isFunction;
48515
+ var isUndefined = exports.isUndefined = function isUndefined(val) {
48516
+ return val === void 0;
48517
+ };
48518
+ var isDefined = exports.isDefined = function isDefined(val) {
48519
+ return val !== undefined && val !== null;
48520
+ };
48521
+
48522
+ /***/ }),
48523
+
48524
+ /***/ 6699:
48525
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
48526
+
48527
+ "use strict";
48528
+
48529
+ var DESCRIPTORS = __webpack_require__(3724);
48530
+ var definePropertyModule = __webpack_require__(4913);
48531
+ var createPropertyDescriptor = __webpack_require__(6980);
48532
+
48533
+ module.exports = DESCRIPTORS ? function (object, key, value) {
48534
+ return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
48535
+ } : function (object, key, value) {
48536
+ object[key] = value;
48537
+ return object;
48538
+ };
48539
+
48540
+
48541
+ /***/ }),
48542
+
48543
+ /***/ 6706:
48544
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
48545
+
48546
+ "use strict";
48547
+
48548
+ var uncurryThis = __webpack_require__(9504);
48549
+ var aCallable = __webpack_require__(9306);
48550
+
48551
+ module.exports = function (object, key, method) {
48552
+ try {
48553
+ // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
48554
+ return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
48555
+ } catch (error) { /* empty */ }
48556
+ };
48557
+
48558
+
48559
+ /***/ }),
48560
+
48561
+ /***/ 6722:
48562
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
48563
+
48564
+ "use strict";
48565
+ // ESM COMPAT FLAG
48566
+ __webpack_require__.r(__webpack_exports__);
48567
+
48568
+ // EXPORTS
48569
+ __webpack_require__.d(__webpack_exports__, {
48570
+ "default": function() { return /* binding */ View; }
48571
+ });
48572
+
48573
+ ;// ./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
48574
+ var render = function render() {
48575
+ var _vm = this,
48576
+ _c = _vm._self._c;
48577
+ return _c('BaseComp', _vm._b({
48578
+ attrs: {
48579
+ "data": _vm.data,
48580
+ "nowCompId": _vm.nowCompId,
48581
+ "isOpcacity": _vm.isOpcacity,
48582
+ "lang": _vm.lang
48583
+ },
48584
+ on: {
48585
+ "getConfigData": _vm.getConfigData
48586
+ }
48587
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
48588
+ staticClass: "cms-video-container",
48589
+ class: [_vm.configData.customClass || ''],
48590
+ style: _vm.containerStyle
48591
+ }, [_c('div', {
48592
+ staticClass: "video-wrapper",
48593
+ style: _vm.wrapperStyle
48594
+ }, [_vm.videoType === 'direct' && _vm.configData.videoUrl ? _c('video', {
48595
+ staticClass: "cms-video direct-video",
48596
+ style: _vm.videoStyle,
48597
+ attrs: {
48598
+ "src": _vm.configData.videoUrl,
48599
+ "controls": _vm.configData.showControls,
48600
+ "autoplay": _vm.configData.autoplay,
48601
+ "loop": _vm.configData.loop,
48602
+ "poster": _vm.configData.posterUrl
48603
+ },
48604
+ domProps: {
48605
+ "muted": _vm.configData.muted
48606
+ },
48607
+ on: {
48608
+ "loadstart": _vm.onVideoLoadStart,
48609
+ "loadeddata": _vm.onVideoLoaded,
48610
+ "error": _vm.onVideoError
48611
+ }
48612
+ }) : _vm.configData.embedCode ? _c('div', {
48613
+ staticClass: "cms-video embed-video cms-ht",
48614
+ style: _vm.videoStyle,
48615
+ domProps: {
48616
+ "innerHTML": _vm._s(_vm.configData.embedCode)
48617
+ }
48618
+ }) : _c('div', {
48619
+ staticClass: "video-placeholder",
48620
+ style: _vm.placeholderStyle
48621
+ }, [_c('img', {
48622
+ staticStyle: {
48623
+ "width": "97.82px",
48624
+ "height": "97.82px"
48625
+ },
48626
+ attrs: {
48627
+ "src": __webpack_require__(6148),
48628
+ "alt": "Video Camera"
48629
+ }
48630
+ })])]), _vm.configData.title ? _c('div', {
48631
+ staticClass: "f-c-c"
48632
+ }, [_vm._v(_vm._s(_vm.configData.title))]) : _vm._e()])]);
48633
+ };
48634
+ var staticRenderFns = [];
48635
+
48636
+ ;// ./package/cms-video/View.vue?vue&type=template&id=11fc0d9a&scoped=true
48637
+
48638
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
48639
+ var es_iterator_constructor = __webpack_require__(8111);
48640
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
48641
+ var es_iterator_for_each = __webpack_require__(7588);
48642
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
48643
+ var baseComp = __webpack_require__(677);
48644
+ ;// ./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
48645
+
48646
+
48647
+
48648
+
48649
+
48650
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
48651
+ name: "cms-video",
48652
+ components: {
48653
+ BaseComp: baseComp["default"]
48654
+ },
48655
+ props: {
48656
+ data: {
48657
+ type: Object,
48658
+ default: () => {
48659
+ return {};
48660
+ }
48661
+ },
48662
+ nowCompId: {
48663
+ type: [String, Number],
48664
+ default: ""
48665
+ },
48666
+ isOpcacity: {
48667
+ type: Boolean,
48668
+ default: true
48669
+ },
48670
+ lang: {
48671
+ type: String,
48672
+ default: "zh-HK"
48673
+ }
48674
+ },
48675
+ data() {
48676
+ return {
48677
+ configData: {},
48678
+ videoLoaded: false,
48679
+ videoError: false,
48680
+ // 默认配置数据
48681
+ defaultConfig: {
48682
+ // 视频源设置
48683
+ videoType: "direct",
48684
+ videoUrl: "",
48685
+ embedCode: "",
48686
+ posterUrl: "",
48687
+ // 播放控制
48688
+ showControls: true,
48689
+ autoplay: false,
48690
+ loop: false,
48691
+ muted: false,
48692
+ // 尺寸控制
48693
+ aspectRatio: "16:9",
48694
+ // 样式设置
48695
+ borderRadius: 0,
48696
+ cornerRadius: {
48697
+ topLeft: "8",
48698
+ topRight: "8",
48699
+ bottomLeft: "8",
48700
+ bottomRight: "8"
48701
+ },
48702
+ // 高级配置
48703
+ customClass: "",
48704
+ customStyle: ""
48705
+ }
48706
+ };
48707
+ },
48708
+ mounted() {
48709
+ this.initConfigData();
48710
+ },
48711
+ watch: {
48712
+ configData: {
48713
+ handler() {
48714
+ this.updateStyles();
48715
+ },
48716
+ deep: true
48717
+ }
48718
+ },
48719
+ computed: {
48720
+ showEmbedCode() {
48721
+ return this.configData.embedCode.replace(/<iframe(.*?)width="(\d+)"(.*?)height="(\d+)"(.*?)>/gi, '<iframe$1width="100%"$3height="auto"$5 aspect-ratio="$2/$4">');
48722
+ },
48723
+ // 视频类型
48724
+ videoType() {
48725
+ return this.configData.videoType || this.defaultConfig.videoType;
48726
+ },
48727
+ // 实际使用的宽高比
48728
+ actualAspectRatio() {
48729
+ const config = {
48730
+ ...this.defaultConfig,
48731
+ ...this.configData
48732
+ };
48733
+ return config.aspectRatio || "16:9";
48734
+ },
48735
+ aspectRatioValue() {
48736
+ const ratio = this.actualAspectRatio;
48737
+ if (!ratio || ratio === "auto") {
48738
+ return null;
48739
+ }
48740
+ return ratio.replace(":", "/");
48741
+ },
48742
+ // 容器样式
48743
+ containerStyle() {
48744
+ const config = {
48745
+ ...this.defaultConfig,
48746
+ ...this.configData
48747
+ };
48748
+ return {
48749
+ ...this.parseCustomStyle(config.customStyle)
48750
+ };
48751
+ },
48752
+ borderRadiusStyle() {
48753
+ const config = {
48754
+ ...this.defaultConfig,
48755
+ ...this.configData
48756
+ };
48757
+ const fallback = config.borderRadius !== undefined && config.borderRadius !== null ? `${config.borderRadius}px` : "0px";
48758
+ const radiusConfig = config.cornerRadius || {};
48759
+ const resolveValue = corner => {
48760
+ const value = radiusConfig[corner] !== undefined && radiusConfig[corner] !== null ? radiusConfig[corner] : config.borderRadius;
48761
+ if (value === "full") return "9999px";
48762
+ if (value === undefined || value === null || value === "") {
48763
+ return fallback;
48764
+ }
48765
+ const num = Number(value);
48766
+ return Number.isNaN(num) ? fallback : `${num}px`;
48767
+ };
48768
+ return {
48769
+ topLeft: resolveValue("topLeft"),
48770
+ topRight: resolveValue("topRight"),
48771
+ bottomLeft: resolveValue("bottomLeft"),
48772
+ bottomRight: resolveValue("bottomRight")
48773
+ };
48774
+ },
48775
+ // 包装器样式
48776
+ wrapperStyle() {
48777
+ const config = {
48778
+ ...this.defaultConfig,
48779
+ ...this.configData
48780
+ };
48781
+ const style = {
48782
+ width: "100%",
48783
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
48784
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
48785
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
48786
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
48787
+ overflow: "hidden",
48788
+ display: "block",
48789
+ position: "relative"
48790
+ };
48791
+ if (this.aspectRatioValue) {
48792
+ style.aspectRatio = this.aspectRatioValue;
48793
+ }
48794
+ return style;
48795
+ },
48796
+ // 视频样式
48797
+ videoStyle() {
48798
+ const config = {
48799
+ ...this.defaultConfig,
48800
+ ...this.configData
48801
+ };
48802
+ const style = {
48803
+ width: "100%",
48804
+ display: "block",
48805
+ border: "none",
48806
+ outline: "none"
48807
+ };
48808
+ if (this.aspectRatioValue) {
48809
+ style.height = "100%";
48810
+ style.aspectRatio = this.aspectRatioValue;
48811
+ } else {
48812
+ style.height = "auto";
48758
48813
  }
48759
- return false;
48814
+ return style;
48760
48815
  },
48761
- get: function (key) {
48762
- // eslint-disable-line consistent-return
48763
- if ($m) {
48764
- return $mapGet($m, key);
48816
+ // 占位符样式
48817
+ placeholderStyle() {
48818
+ const config = {
48819
+ ...this.defaultConfig,
48820
+ ...this.configData
48821
+ };
48822
+ const style = {
48823
+ width: "100%",
48824
+ backgroundColor: "#f5f7fa",
48825
+ border: "1px dashed #dcdfe6",
48826
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
48827
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
48828
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
48829
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
48830
+ display: "flex",
48831
+ flexDirection: "column",
48832
+ alignItems: "center",
48833
+ justifyContent: "center",
48834
+ color: "#909399",
48835
+ fontSize: "14px"
48836
+ };
48837
+ if (this.aspectRatioValue) {
48838
+ style.aspectRatio = this.aspectRatioValue;
48839
+ } else {
48840
+ style.minHeight = "160px";
48765
48841
  }
48842
+ return style;
48843
+ }
48844
+ },
48845
+ methods: {
48846
+ // 初始化配置数据
48847
+ initConfigData() {
48848
+ this.configData = this.getMergedConfig(this.configData);
48766
48849
  },
48767
- has: function (key) {
48768
- if ($m) {
48769
- return $mapHas($m, key);
48850
+ // 获取配置数据
48851
+ getConfigData(configData) {
48852
+ this.configData = this.getMergedConfig(configData);
48853
+ this.updateStyles();
48854
+ },
48855
+ // 更新样式
48856
+ updateStyles() {
48857
+ this.$nextTick(() => {
48858
+ this.$forceUpdate();
48859
+ });
48860
+ },
48861
+ // 视频开始加载
48862
+ onVideoLoadStart() {
48863
+ this.videoLoaded = false;
48864
+ this.videoError = false;
48865
+ },
48866
+ // 视频加载完成
48867
+ onVideoLoaded() {
48868
+ this.videoLoaded = true;
48869
+ this.videoError = false;
48870
+ },
48871
+ // 视频加载失败
48872
+ onVideoError() {
48873
+ this.videoLoaded = false;
48874
+ this.videoError = true;
48875
+ },
48876
+ getMergedConfig(configData = {}) {
48877
+ const mergedCorner = {
48878
+ ...(this.defaultConfig.cornerRadius || {})
48879
+ };
48880
+ if (configData.cornerRadius) {
48881
+ Object.assign(mergedCorner, configData.cornerRadius);
48770
48882
  }
48771
- return false;
48883
+ return {
48884
+ ...this.defaultConfig,
48885
+ ...configData,
48886
+ cornerRadius: mergedCorner
48887
+ };
48772
48888
  },
48773
- set: function (key, value) {
48774
- if (!$m) {
48775
- // @ts-expect-error TS can't handle narrowing a variable inside a closure
48776
- $m = new $Map();
48889
+ // 解析自定义样式
48890
+ parseCustomStyle(customStyle) {
48891
+ if (!customStyle) return {};
48892
+ try {
48893
+ const styles = {};
48894
+ const declarations = customStyle.split(";");
48895
+ declarations.forEach(declaration => {
48896
+ const [property, value] = declaration.split(":");
48897
+ if (property && value) {
48898
+ const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
48899
+ styles[camelCaseProperty] = value.trim();
48900
+ }
48901
+ });
48902
+ return styles;
48903
+ } catch (error) {
48904
+ console.warn("解析自定义样式失败:", error);
48905
+ return {};
48777
48906
  }
48778
- $mapSet($m, key, value);
48779
48907
  }
48780
- };
48781
-
48782
- // @ts-expect-error TODO: figure out why TS is erroring here
48783
- return channel;
48784
- };
48785
-
48786
- /***/ }),
48787
-
48788
- /***/ 6677:
48789
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
48790
-
48791
- "use strict";
48792
-
48793
-
48794
- __webpack_require__(6573);
48795
- __webpack_require__(8100);
48796
- __webpack_require__(7936);
48797
- __webpack_require__(7467);
48798
- __webpack_require__(4732);
48799
- __webpack_require__(9577);
48800
- exports.__esModule = true;
48801
- exports.isDefined = exports.isUndefined = exports.isFunction = undefined;
48802
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
48803
- return typeof obj;
48804
- } : function (obj) {
48805
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
48806
- };
48807
- exports.isString = isString;
48808
- exports.isObject = isObject;
48809
- exports.isHtmlElement = isHtmlElement;
48810
- var _vue = __webpack_require__(3562);
48811
- var _vue2 = _interopRequireDefault(_vue);
48812
- function _interopRequireDefault(obj) {
48813
- return obj && obj.__esModule ? obj : {
48814
- default: obj
48815
- };
48816
- }
48817
- function isString(obj) {
48818
- return Object.prototype.toString.call(obj) === '[object String]';
48819
- }
48820
- function isObject(obj) {
48821
- return Object.prototype.toString.call(obj) === '[object Object]';
48822
- }
48823
- function isHtmlElement(node) {
48824
- return node && node.nodeType === Node.ELEMENT_NODE;
48825
- }
48826
-
48827
- /**
48828
- * - Inspired:
48829
- * https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js
48830
- */
48831
- var isFunction = function isFunction(functionToCheck) {
48832
- var getType = {};
48833
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
48834
- };
48835
- if ( true && (typeof Int8Array === 'undefined' ? 'undefined' : _typeof(Int8Array)) !== 'object' && (_vue2.default.prototype.$isServer || typeof document.childNodes !== 'function')) {
48836
- exports.isFunction = isFunction = function isFunction(obj) {
48837
- return typeof obj === 'function' || false;
48838
- };
48839
- }
48840
- exports.isFunction = isFunction;
48841
- var isUndefined = exports.isUndefined = function isUndefined(val) {
48842
- return val === void 0;
48843
- };
48844
- var isDefined = exports.isDefined = function isDefined(val) {
48845
- return val !== undefined && val !== null;
48846
- };
48847
-
48848
- /***/ }),
48849
-
48850
- /***/ 6699:
48851
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
48852
-
48853
- "use strict";
48908
+ }
48909
+ });
48910
+ ;// ./package/cms-video/View.vue?vue&type=script&lang=js
48911
+ /* harmony default export */ var cms_video_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
48912
+ ;// ./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
48913
+ // extracted by mini-css-extract-plugin
48854
48914
 
48855
- var DESCRIPTORS = __webpack_require__(3724);
48856
- var definePropertyModule = __webpack_require__(4913);
48857
- var createPropertyDescriptor = __webpack_require__(6980);
48915
+ ;// ./package/cms-video/View.vue?vue&type=style&index=0&id=11fc0d9a&prod&lang=scss&scoped=true
48858
48916
 
48859
- module.exports = DESCRIPTORS ? function (object, key, value) {
48860
- return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
48861
- } : function (object, key, value) {
48862
- object[key] = value;
48863
- return object;
48864
- };
48917
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
48918
+ var componentNormalizer = __webpack_require__(1656);
48919
+ ;// ./package/cms-video/View.vue
48865
48920
 
48866
48921
 
48867
- /***/ }),
48868
48922
 
48869
- /***/ 6706:
48870
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
48923
+ ;
48871
48924
 
48872
- "use strict";
48873
48925
 
48874
- var uncurryThis = __webpack_require__(9504);
48875
- var aCallable = __webpack_require__(9306);
48926
+ /* normalize component */
48876
48927
 
48877
- module.exports = function (object, key, method) {
48878
- try {
48879
- // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
48880
- return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
48881
- } catch (error) { /* empty */ }
48882
- };
48928
+ var component = (0,componentNormalizer/* default */.A)(
48929
+ cms_video_Viewvue_type_script_lang_js,
48930
+ render,
48931
+ staticRenderFns,
48932
+ false,
48933
+ null,
48934
+ "11fc0d9a",
48935
+ null
48936
+
48937
+ )
48883
48938
 
48939
+ /* harmony default export */ var View = (component.exports);
48884
48940
 
48885
48941
  /***/ }),
48886
48942
 
@@ -51553,251 +51609,6 @@ var component = (0,componentNormalizer/* default */.A)(
51553
51609
 
51554
51610
  /***/ }),
51555
51611
 
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
51612
  /***/ 7811:
51802
51613
  /***/ (function(module) {
51803
51614
 
@@ -58713,6 +58524,361 @@ __webpack_require__.r(__webpack_exports__);
58713
58524
 
58714
58525
  /***/ }),
58715
58526
 
58527
+ /***/ 9383:
58528
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
58529
+
58530
+ "use strict";
58531
+ // ESM COMPAT FLAG
58532
+ __webpack_require__.r(__webpack_exports__);
58533
+
58534
+ // EXPORTS
58535
+ __webpack_require__.d(__webpack_exports__, {
58536
+ "default": function() { return /* binding */ View; }
58537
+ });
58538
+
58539
+ ;// ./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
58540
+ var render = function render() {
58541
+ var _vm = this,
58542
+ _c = _vm._self._c;
58543
+ return _c('BaseComp', _vm._b({
58544
+ attrs: {
58545
+ "data": _vm.data,
58546
+ "nowCompId": _vm.nowCompId,
58547
+ "isOpcacity": _vm.isOpcacity,
58548
+ "lang": _vm.lang
58549
+ },
58550
+ on: {
58551
+ "getConfigData": _vm.getConfigData
58552
+ }
58553
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
58554
+ staticClass: "cms-image-container",
58555
+ class: [_vm.configData.customClass || '', {
58556
+ 'has-link': _vm.configData.zoomDynamic
58557
+ }],
58558
+ style: _vm.containerStyle
58559
+ }, [_c('div', {
58560
+ staticClass: "image-wrapper",
58561
+ style: _vm.wrapperStyle,
58562
+ on: {
58563
+ "click": _vm.handleClick
58564
+ }
58565
+ }, [_vm.configData.imageUrl ? _c('img', {
58566
+ staticClass: "cms-image",
58567
+ style: _vm.imageStyle,
58568
+ attrs: {
58569
+ "src": _vm.configData.imageUrl,
58570
+ "alt": _vm.configData.altText || '图片',
58571
+ "title": _vm.configData.title
58572
+ },
58573
+ on: {
58574
+ "load": _vm.onImageLoad,
58575
+ "error": _vm.onImageError
58576
+ }
58577
+ }) : _c('div', {
58578
+ staticClass: "image-placeholder",
58579
+ style: _vm.placeholderStyle
58580
+ }, [_c('img', {
58581
+ staticStyle: {
58582
+ "width": "200px",
58583
+ "height": "200px"
58584
+ },
58585
+ attrs: {
58586
+ "src": __webpack_require__(4806),
58587
+ "alt": "Picture"
58588
+ }
58589
+ })])])]), _vm.configData.remark ? _c('div', {
58590
+ staticClass: "f-c-c"
58591
+ }, [_vm._v(_vm._s(_vm.configData.remark))]) : _vm._e()]);
58592
+ };
58593
+ var staticRenderFns = [];
58594
+
58595
+ ;// ./package/cms-image/View.vue?vue&type=template&id=0c128a30&scoped=true
58596
+
58597
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
58598
+ var es_iterator_constructor = __webpack_require__(8111);
58599
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
58600
+ var es_iterator_for_each = __webpack_require__(7588);
58601
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
58602
+ var baseComp = __webpack_require__(677);
58603
+ ;// ./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
58604
+
58605
+
58606
+
58607
+
58608
+
58609
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
58610
+ name: "cms-image",
58611
+ components: {
58612
+ BaseComp: baseComp["default"]
58613
+ },
58614
+ props: {
58615
+ data: {
58616
+ type: Object,
58617
+ default: () => {
58618
+ return {};
58619
+ }
58620
+ },
58621
+ nowCompId: {
58622
+ type: [String, Number],
58623
+ default: ""
58624
+ },
58625
+ isOpcacity: {
58626
+ type: Boolean,
58627
+ default: true
58628
+ },
58629
+ lang: {
58630
+ type: String,
58631
+ default: "zh-HK"
58632
+ }
58633
+ },
58634
+ data() {
58635
+ return {
58636
+ configData: {},
58637
+ imageLoaded: false,
58638
+ imageError: false,
58639
+ // 默认配置数据
58640
+ defaultConfig: {
58641
+ // 图片设置
58642
+ imageUrl: "",
58643
+ altText: "图片",
58644
+ title: "",
58645
+ // 样式设置
58646
+ borderRadius: 0,
58647
+ cornerRadius: {
58648
+ topLeft: "8",
58649
+ topRight: "8",
58650
+ bottomLeft: "8",
58651
+ bottomRight: "8"
58652
+ },
58653
+ objectFit: "cover",
58654
+ // 交互功能
58655
+ linkUrl: "",
58656
+ linkTarget: "_self",
58657
+ // 高级配置
58658
+ customClass: "",
58659
+ customStyle: "",
58660
+ lazyLoad: false,
58661
+ zoomDynamic: false
58662
+ }
58663
+ };
58664
+ },
58665
+ mounted() {
58666
+ this.initConfigData();
58667
+ },
58668
+ watch: {
58669
+ configData: {
58670
+ handler() {
58671
+ this.updateStyles();
58672
+ },
58673
+ deep: true
58674
+ }
58675
+ },
58676
+ computed: {
58677
+ // 容器样式
58678
+ containerStyle() {
58679
+ const config = {
58680
+ ...this.defaultConfig,
58681
+ ...this.configData
58682
+ };
58683
+ return {
58684
+ ...this.parseCustomStyle(config.customStyle)
58685
+ };
58686
+ },
58687
+ borderRadiusStyle() {
58688
+ const config = {
58689
+ ...this.defaultConfig,
58690
+ ...this.configData
58691
+ };
58692
+ const fallback = config.borderRadius !== undefined && config.borderRadius !== null ? `${config.borderRadius}px` : "0px";
58693
+ const radiusConfig = config.cornerRadius || {};
58694
+ const legacyMap = {
58695
+ topLeft: config.borderRadiusTopLeft,
58696
+ topRight: config.borderRadiusTopRight,
58697
+ bottomLeft: config.borderRadiusBottomLeft,
58698
+ bottomRight: config.borderRadiusBottomRight
58699
+ };
58700
+ const resolveValue = corner => {
58701
+ const value = radiusConfig[corner] !== undefined && radiusConfig[corner] !== null ? radiusConfig[corner] : legacyMap[corner];
58702
+ if (value === "full") return "9999px";
58703
+ if (value === undefined || value === null || value === "") {
58704
+ return fallback;
58705
+ }
58706
+ const num = Number(value);
58707
+ return Number.isNaN(num) ? fallback : `${num}px`;
58708
+ };
58709
+ return {
58710
+ topLeft: resolveValue("topLeft"),
58711
+ topRight: resolveValue("topRight"),
58712
+ bottomLeft: resolveValue("bottomLeft"),
58713
+ bottomRight: resolveValue("bottomRight")
58714
+ };
58715
+ },
58716
+ // 包装器样式
58717
+ wrapperStyle() {
58718
+ const config = {
58719
+ ...this.defaultConfig,
58720
+ ...this.configData
58721
+ };
58722
+ return {
58723
+ width: "100%",
58724
+ height: "auto",
58725
+ maxWidth: "100%",
58726
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
58727
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
58728
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
58729
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
58730
+ overflow: "hidden",
58731
+ cursor: config.linkUrl ? "pointer" : "default",
58732
+ display: "block"
58733
+ };
58734
+ },
58735
+ // 图片样式
58736
+ imageStyle() {
58737
+ const config = {
58738
+ ...this.defaultConfig,
58739
+ ...this.configData
58740
+ };
58741
+ return {
58742
+ width: "100%",
58743
+ height: "auto",
58744
+ objectFit: config.objectFit,
58745
+ display: "block"
58746
+ };
58747
+ },
58748
+ // 占位符样式
58749
+ placeholderStyle() {
58750
+ const config = {
58751
+ ...this.defaultConfig,
58752
+ ...this.configData
58753
+ };
58754
+ return {
58755
+ width: "100%",
58756
+ minHeight: "150px",
58757
+ backgroundColor: "#F2F9FF",
58758
+ border: "1px dashed #dcdfe6",
58759
+ borderTopLeftRadius: this.borderRadiusStyle.topLeft,
58760
+ borderTopRightRadius: this.borderRadiusStyle.topRight,
58761
+ borderBottomLeftRadius: this.borderRadiusStyle.bottomLeft,
58762
+ borderBottomRightRadius: this.borderRadiusStyle.bottomRight,
58763
+ display: "flex",
58764
+ flexDirection: "column",
58765
+ alignItems: "center",
58766
+ justifyContent: "center",
58767
+ color: "#909399",
58768
+ fontSize: "14px"
58769
+ };
58770
+ }
58771
+ },
58772
+ methods: {
58773
+ // 初始化配置数据
58774
+ initConfigData() {
58775
+ this.configData = this.getMergedConfig(this.configData);
58776
+ },
58777
+ // 获取配置数据
58778
+ getConfigData(configData) {
58779
+ this.configData = this.getMergedConfig(configData);
58780
+ this.updateStyles();
58781
+ },
58782
+ // 更新样式
58783
+ updateStyles() {
58784
+ this.$nextTick(() => {
58785
+ this.$forceUpdate();
58786
+ });
58787
+ },
58788
+ getMergedConfig(configData = {}) {
58789
+ const mergedCorner = {
58790
+ ...(this.defaultConfig.cornerRadius || {})
58791
+ };
58792
+ if (configData.cornerRadius) {
58793
+ Object.assign(mergedCorner, configData.cornerRadius);
58794
+ } else {
58795
+ var _configData$borderRad, _configData$borderRad2, _configData$borderRad3, _configData$borderRad4;
58796
+ mergedCorner.topLeft = (_configData$borderRad = configData.borderRadiusTopLeft) === null || _configData$borderRad === void 0 ? void 0 : _configData$borderRad.mergedCorner.topLeft;
58797
+ mergedCorner.topRight = (_configData$borderRad2 = configData.borderRadiusTopRight) === null || _configData$borderRad2 === void 0 ? void 0 : _configData$borderRad2.mergedCorner.topRight;
58798
+ mergedCorner.bottomLeft = (_configData$borderRad3 = configData.borderRadiusBottomLeft) === null || _configData$borderRad3 === void 0 ? void 0 : _configData$borderRad3.mergedCorner.bottomLeft;
58799
+ mergedCorner.bottomRight = (_configData$borderRad4 = configData.borderRadiusBottomRight) === null || _configData$borderRad4 === void 0 ? void 0 : _configData$borderRad4.mergedCorner.bottomRight;
58800
+ }
58801
+ return {
58802
+ ...this.defaultConfig,
58803
+ ...configData,
58804
+ cornerRadius: mergedCorner
58805
+ };
58806
+ },
58807
+ // 处理点击事件
58808
+ handleClick() {
58809
+ if (this.configData.linkUrl) {
58810
+ const target = this.configData.linkTarget || "_self";
58811
+ if (target === "_blank") {
58812
+ window.open(this.configData.linkUrl, "_blank");
58813
+ } else {
58814
+ window.location.href = this.configData.linkUrl;
58815
+ }
58816
+ }
58817
+ },
58818
+ // 图片加载成功
58819
+ onImageLoad() {
58820
+ this.imageLoaded = true;
58821
+ this.imageError = false;
58822
+ },
58823
+ // 图片加载失败
58824
+ onImageError() {
58825
+ this.imageLoaded = false;
58826
+ this.imageError = true;
58827
+ },
58828
+ // 解析自定义样式
58829
+ parseCustomStyle(customStyle) {
58830
+ if (!customStyle) return {};
58831
+ try {
58832
+ const styles = {};
58833
+ const declarations = customStyle.split(";");
58834
+ declarations.forEach(declaration => {
58835
+ const [property, value] = declaration.split(":");
58836
+ if (property && value) {
58837
+ const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
58838
+ styles[camelCaseProperty] = value.trim();
58839
+ }
58840
+ });
58841
+ return styles;
58842
+ } catch (error) {
58843
+ console.warn("解析自定义样式失败:", error);
58844
+ return {};
58845
+ }
58846
+ }
58847
+ }
58848
+ });
58849
+ ;// ./package/cms-image/View.vue?vue&type=script&lang=js
58850
+ /* harmony default export */ var cms_image_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
58851
+ ;// ./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
58852
+ // extracted by mini-css-extract-plugin
58853
+
58854
+ ;// ./package/cms-image/View.vue?vue&type=style&index=0&id=0c128a30&prod&lang=scss&scoped=true
58855
+
58856
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
58857
+ var componentNormalizer = __webpack_require__(1656);
58858
+ ;// ./package/cms-image/View.vue
58859
+
58860
+
58861
+
58862
+ ;
58863
+
58864
+
58865
+ /* normalize component */
58866
+
58867
+ var component = (0,componentNormalizer/* default */.A)(
58868
+ cms_image_Viewvue_type_script_lang_js,
58869
+ render,
58870
+ staticRenderFns,
58871
+ false,
58872
+ null,
58873
+ "0c128a30",
58874
+ null
58875
+
58876
+ )
58877
+
58878
+ /* harmony default export */ var View = (component.exports);
58879
+
58880
+ /***/ }),
58881
+
58716
58882
  /***/ 9429:
58717
58883
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
58718
58884