cms-chenhj-ui 2.0.28 → 2.0.29

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.
@@ -10671,8 +10671,8 @@ var map = {
10671
10671
  "./cms-column": 3923,
10672
10672
  "./cms-column-card": 5340,
10673
10673
  "./cms-column-card/": 5340,
10674
- "./cms-column-card/View": 2328,
10675
- "./cms-column-card/View.vue": 2328,
10674
+ "./cms-column-card/View": 7058,
10675
+ "./cms-column-card/View.vue": 7058,
10676
10676
  "./cms-column-card/index": 5340,
10677
10677
  "./cms-column-card/index.js": 5340,
10678
10678
  "./cms-column/": 3923,
@@ -10787,6 +10787,12 @@ var map = {
10787
10787
  "./cms-servePlan-text/View.vue": 9487,
10788
10788
  "./cms-servePlan-text/index": 6501,
10789
10789
  "./cms-servePlan-text/index.js": 6501,
10790
+ "./cms-tab": 8892,
10791
+ "./cms-tab/": 8892,
10792
+ "./cms-tab/View": 9251,
10793
+ "./cms-tab/View.vue": 9251,
10794
+ "./cms-tab/index": 8892,
10795
+ "./cms-tab/index.js": 8892,
10790
10796
  "./cms-termsAndConditions": 9387,
10791
10797
  "./cms-termsAndConditions/": 9387,
10792
10798
  "./cms-termsAndConditions/View": 8073,
@@ -13342,524 +13348,6 @@ __webpack_require__.r(__webpack_exports__);
13342
13348
 
13343
13349
  /***/ }),
13344
13350
 
13345
- /***/ 2328:
13346
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
13347
-
13348
- "use strict";
13349
- // ESM COMPAT FLAG
13350
- __webpack_require__.r(__webpack_exports__);
13351
-
13352
- // EXPORTS
13353
- __webpack_require__.d(__webpack_exports__, {
13354
- "default": function() { return /* binding */ View; }
13355
- });
13356
-
13357
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
13358
- var es_iterator_constructor = __webpack_require__(8111);
13359
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js
13360
- var es_iterator_drop = __webpack_require__(9314);
13361
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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=2dcb9de2&scoped=true
13362
-
13363
-
13364
-
13365
-
13366
- var render = function render() {
13367
- var _vm = this,
13368
- _c = _vm._self._c;
13369
- return _c('BaseComp', _vm._b({
13370
- attrs: {
13371
- "data": _vm.data,
13372
- "nowCompId": _vm.nowCompId,
13373
- "isOpcacity": _vm.isOpcacity,
13374
- "isMask": false,
13375
- "lang": _vm.lang,
13376
- "showDel": false
13377
- },
13378
- on: {
13379
- "getConfigData": _vm.getConfigData
13380
- }
13381
- }, 'BaseComp', _vm.$attrs, false), [_vm.isConfigPage ? _c('div', {
13382
- staticClass: "main_drag hoverBorderClass",
13383
- style: _vm.cardContainerStyle,
13384
- attrs: {
13385
- "id": `cardTarget${_vm.data.componentId}`
13386
- },
13387
- on: {
13388
- "dragover": _vm.dragover,
13389
- "dragend": function ($event) {
13390
- _vm.showAddCom = false;
13391
- },
13392
- "drop": _vm.drop
13393
- }
13394
- }, [_c('Draggable', {
13395
- staticStyle: {
13396
- "position": "relative"
13397
- },
13398
- attrs: {
13399
- "group": _vm.groupConfigForMain,
13400
- "chosen-class": "chosen",
13401
- "force-fallback": "true",
13402
- "animation": "1000",
13403
- "move": _vm.onMove
13404
- },
13405
- on: {
13406
- "start": _vm.onStart,
13407
- "end": function ($event) {
13408
- _vm.showAddCom = false;
13409
- }
13410
- },
13411
- model: {
13412
- value: _vm.data.childList,
13413
- callback: function ($$v) {
13414
- _vm.$set(_vm.data, "childList", $$v);
13415
- },
13416
- expression: "data.childList"
13417
- }
13418
- }, [_vm._l(_vm.data.childList, function (item, index) {
13419
- return _c('div', {
13420
- key: item.componentId,
13421
- staticStyle: {
13422
- "position": "relative"
13423
- }
13424
- }, [_vm.showAddCom ? _c('div', {
13425
- staticClass: "up_insert",
13426
- attrs: {
13427
- "id": `${item.componentId}-cardTargetup`
13428
- }
13429
- }, [_c('i', {
13430
- staticClass: "icon-up",
13431
- attrs: {
13432
- "id": `${item.componentId}-upi`
13433
- }
13434
- }), _c('span', {
13435
- attrs: {
13436
- "id": `${item.componentId}-upspan`
13437
- }
13438
- }, [_vm._v("插入组件")])]) : _vm._e(), _c(item.cmsCompName, {
13439
- tag: "component",
13440
- style: {
13441
- marginTop: _vm.showAddCom && index == 0 ? '20px' : '0px'
13442
- },
13443
- attrs: {
13444
- "data": item,
13445
- "lang": _vm.lang,
13446
- "isOpcacity": _vm.isOpcacity,
13447
- "nowCompId": _vm.nowCompId
13448
- }
13449
- })], 1);
13450
- }), _vm.showAddCom ? _c('div', {
13451
- staticClass: "up_insert insert_bottom",
13452
- style: {
13453
- bottom: _vm.data.childList.length ? '0px' : '-24px'
13454
- },
13455
- attrs: {
13456
- "id": `-cardTargetdown`
13457
- }
13458
- }, [_c('i', {
13459
- staticClass: "icon-up"
13460
- }), _c('span', [_vm._v("插入组件")])]) : _vm._e()], 2)], 1) : _c('cms-view', _vm._b({
13461
- style: _vm.cardContainerStyle,
13462
- attrs: {
13463
- "data": _vm.data.childList,
13464
- "lang": _vm.lang,
13465
- "isOpcacity": false
13466
- }
13467
- }, 'cms-view', _vm.$attrs, false))], 1);
13468
- };
13469
- var staticRenderFns = [];
13470
-
13471
- ;// ./package/cms-column-card/View.vue?vue&type=template&id=2dcb9de2&scoped=true
13472
-
13473
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
13474
- var es_array_push = __webpack_require__(4114);
13475
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
13476
- var baseComp = __webpack_require__(4128);
13477
- // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
13478
- var vuedraggable_umd = __webpack_require__(1527);
13479
- var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);
13480
- // EXTERNAL MODULE: ./package/baseConfig.js
13481
- var baseConfig = __webpack_require__(649);
13482
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js
13483
- var es_iterator_find = __webpack_require__(116);
13484
- // EXTERNAL MODULE: ./src/utils/index.js
13485
- var utils = __webpack_require__(1996);
13486
- ;// ./src/views/standard_page.js
13487
-
13488
-
13489
-
13490
-
13491
-
13492
- const standard_page_list = [{
13493
- id: 1,
13494
- componentId: 1,
13495
- componentName: "范本1-防诈骗提示",
13496
- standList: ["cms-banner", "cms-titleCenter", "cms-lineThree"]
13497
- }, {
13498
- id: 2,
13499
- componentId: 2,
13500
- componentName: "范本2-员工优惠",
13501
- standList: ["cms-banner", "cms-description", "cms-activityCountdown", "cms-titleLeft", "cms-proCard", "cms-termsAndConditions"]
13502
- }];
13503
- const getComponentKey = (compList, id, noCompId = false) => {
13504
- if (noCompId) return id;
13505
- let compConfig = compList.find(item => item.id == id);
13506
- if (compConfig.type == "1") {
13507
- return compConfig.componentId;
13508
- }
13509
- return "cms-dynamic-comp";
13510
- };
13511
- const getCopyTemplateCompConfig = (compList, componentKey) => {
13512
- let otherConfig = {};
13513
- const configureJson = compList.find(item => item.id == componentKey).configureJson;
13514
- if (configureJson.wujieConfig) {
13515
- //如果是第三方组件加一个临时标识
13516
- otherConfig = {
13517
- originalComponentId: configureJson.componentId,
13518
- originalVersionId: configureJson.wujieConfig.versionId,
13519
- operation: "copyTemplate"
13520
- };
13521
- }
13522
- return {
13523
- ...configureJson,
13524
- componentId: (0,utils/* getUuidCode */.J0)(32),
13525
- ...otherConfig
13526
- };
13527
- };
13528
- const isStaticComp = componentKey => {
13529
- return ["cms-header", "cms-footer", "cms-breadCrumb"].includes(componentKey);
13530
- };
13531
- const getWujieCompInfo = (compList, componentId, isTemplate) => {
13532
- let compConfig = compList.find(item => item.id == componentId);
13533
- if (isTemplate) if (compConfig.type == "1") {
13534
- return compConfig;
13535
- }
13536
- return {
13537
- ...compConfig
13538
- };
13539
- };
13540
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
13541
-
13542
-
13543
-
13544
-
13545
-
13546
-
13547
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
13548
- name: "cms-column-card",
13549
- components: {
13550
- BaseComp: baseComp["default"],
13551
- Draggable: (vuedraggable_umd_default())
13552
- },
13553
- props: {
13554
- data: {
13555
- type: Object,
13556
- default: () => {
13557
- return {};
13558
- }
13559
- },
13560
- nowCompId: {
13561
- type: [String, Number],
13562
- default: ""
13563
- },
13564
- isOpcacity: {
13565
- type: Boolean,
13566
- default: true
13567
- },
13568
- lang: {
13569
- type: String,
13570
- default: "zh-HK"
13571
- },
13572
- isMobile: {
13573
- type: Boolean,
13574
- default: false
13575
- },
13576
- mobileLayout: {
13577
- type: String,
13578
- default: ""
13579
- }
13580
- },
13581
- data() {
13582
- return {
13583
- configData: {},
13584
- messFold: true,
13585
- showAddCom: false,
13586
- temporaryList: []
13587
- };
13588
- },
13589
- computed: {
13590
- isConfigPage() {
13591
- return this.$EventBus && this.isOpcacity;
13592
- },
13593
- groupConfigForMain() {
13594
- return {
13595
- name: "task",
13596
- pull: true,
13597
- // A列表的元素可以被拖出
13598
- put: (to, from, dragEl) => {
13599
- console.log(from.el.classList);
13600
- if (from.el.classList.contains("main_drag")) {
13601
- const dataId = this.findFirstComponentKey(dragEl);
13602
- const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column"];
13603
- console.log("allowedComponents", dataId);
13604
- if (dataId === "cms-column") {
13605
- if (!this.checkColumnNestingLevel()) {
13606
- console.log("cms-column 嵌套层级超出限制");
13607
- return false;
13608
- }
13609
- }
13610
- return allowedComponents.includes(dataId);
13611
- }
13612
- return true;
13613
- }
13614
- };
13615
- },
13616
- // 卡片容器样式
13617
- cardContainerStyle() {
13618
- return {
13619
- backgroundImage: this.configData.backgroundImage ? `url('${this.configData.backgroundImage}')` : "none",
13620
- backgroundSize: "cover",
13621
- backgroundRepeat: "no-repeat",
13622
- backgroundPosition: "center center",
13623
- height: this.getContainerHeight(),
13624
- border: this.getContainerBorder(),
13625
- borderRadius: this.getContainerBorderRadius(),
13626
- backgroundColor: this.configData.backgroundColor || "transparent",
13627
- boxShadow: this.configData.boxShadow || "none"
13628
- };
13629
- }
13630
- },
13631
- mounted() {
13632
- if (this.$EventBus) {
13633
- this.$EventBus.$on("handleDragEnd", () => {
13634
- this.showAddCom = false;
13635
- });
13636
- }
13637
- },
13638
- watch: {},
13639
- methods: {
13640
- findFirstComponentKey(root) {
13641
- var _root$querySelector;
13642
- if (!root) return null;
13643
-
13644
- // 若起点自身就有
13645
- if (root.nodeType === 1 && root.hasAttribute("component-key")) {
13646
- return root.getAttribute("component-key");
13647
- }
13648
-
13649
- // 向下查找第一个匹配的后代
13650
- const el = (_root$querySelector = root.querySelector) === null || _root$querySelector === void 0 ? void 0 : _root$querySelector.call(root, "[component-key]");
13651
- return el ? el.getAttribute("component-key") : null;
13652
- },
13653
- // 获取容器高度
13654
- getContainerHeight() {
13655
- if (this.configData.heightType === "fixed") {
13656
- return `${this.configData.fixedHeight}px`;
13657
- }
13658
- return this.isMobile && this.mobileLayout == "vertical" ? "auto" : "100%";
13659
- },
13660
- // 获取容器边框
13661
- getContainerBorder() {
13662
- if (this.configData.borderWidth) {
13663
- return `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}`;
13664
- }
13665
- return "none";
13666
- },
13667
- // 获取容器圆角
13668
- getContainerBorderRadius() {
13669
- if (this.configData.borderRadius) {
13670
- return `${this.configData.borderRadius}px`;
13671
- }
13672
- return "0";
13673
- },
13674
- getConfigData(configData) {
13675
- this.configData = configData;
13676
- },
13677
- foldMessText() {
13678
- this.messFold = !this.messFold;
13679
- },
13680
- decodeJumpUrl(url) {
13681
- if (!url) return;
13682
- top.location.href = url;
13683
- },
13684
- onStart(evt) {
13685
- console.log("drag start in column-card", evt);
13686
- this.showAddCom = true;
13687
- },
13688
- // 限制拖拽的组件类型
13689
- onMove(evt) {
13690
- const {
13691
- draggedContext
13692
- } = evt;
13693
-
13694
- // 允许的组件类型
13695
- const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
13696
- ];
13697
-
13698
- // 如果是从外部拖入的组件
13699
- if (draggedContext && draggedContext.element) {
13700
- const componentType = draggedContext.element.cmsCompName;
13701
- if (componentType && !allowedComponents.includes(componentType)) {
13702
- console.log("draggedContext.element", draggedContext.element);
13703
- console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
13704
- return false;
13705
- }
13706
-
13707
- // 特殊处理 cms-column:检查嵌套层级
13708
- if (componentType === "cms-column") {
13709
- if (!this.checkColumnNestingLevel()) {
13710
- console.log("cms-column 嵌套层级超出限制");
13711
- return false;
13712
- }
13713
- }
13714
- }
13715
- return true;
13716
- },
13717
- // 检查 cms-column 嵌套层级
13718
- checkColumnNestingLevel() {
13719
- // 检查当前 column-card 是否已经在 cms-column 内部
13720
- let parent = this.$parent;
13721
- let columnDepth = 0;
13722
- while (parent) {
13723
- // 检查父组件是否是 cms-column 或包含 cms-column
13724
- if (parent.$options.name === "cms-column" || parent.$data && parent.$data.data && parent.$data.data.cmsCompName === "cms-column") {
13725
- columnDepth++;
13726
- }
13727
-
13728
- // 如果已经有一层 cms-column,则不允许再嵌套
13729
- if (columnDepth >= 2) {
13730
- console.log(`检测到 cms-column 嵌套层级: ${columnDepth}, 超出限制`);
13731
- return false;
13732
- }
13733
- parent = parent.$parent;
13734
- }
13735
- console.log(`cms-column 嵌套层级检查通过: ${columnDepth}`);
13736
- return true;
13737
- },
13738
- // 处理拖拽悬停
13739
- dragover(e) {
13740
- e.preventDefault();
13741
- this.showAddCom = true;
13742
- },
13743
- // 处理拖拽放置
13744
- drop(e) {
13745
- e.preventDefault();
13746
- const componentKey = e.dataTransfer.getData("componentKey");
13747
- let temporaryId = "";
13748
- this.temporaryList = e.dataTransfer.getData("temporaryList") ? JSON.parse(e.dataTransfer.getData("temporaryList")) : [];
13749
- console.log("cms-colum-card-drop", componentKey, this.temporaryList);
13750
- if (!componentKey) return;
13751
- const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
13752
- const isTemporary = isTemporaryItem === "true";
13753
- if (isTemporary) {
13754
- temporaryId = getCopyTemplateCompConfig(this.temporaryList, componentKey).cmsCompName;
13755
- }
13756
- const componentType = isTemporary ? temporaryId : componentKey;
13757
- // 允许的组件类型
13758
- const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
13759
- ];
13760
-
13761
- // 检查组件类型是否允许
13762
- if (!allowedComponents.includes(componentType)) {
13763
- console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
13764
- this.$message && this.$message.warning(`该组件类型不支持拖入卡片容器`);
13765
- this.showAddCom = false;
13766
- return;
13767
- }
13768
-
13769
- // 特殊处理 cms-column:检查嵌套层级
13770
- if (componentType === "cms-column") {
13771
- if (!this.checkColumnNestingLevel()) {
13772
- console.log("cms-column 嵌套层级超出限制");
13773
- this.$message && this.$message.warning(`cms-column 只能嵌套一层`);
13774
- this.showAddCom = false;
13775
- return;
13776
- }
13777
- }
13778
- this.addOneComp(e, componentKey);
13779
- },
13780
- // 添加组件到卡片容器
13781
- addOneComp(e, componentKey) {
13782
- this.showAddCom = false;
13783
- console.log("drop to column-card", componentKey);
13784
-
13785
- // 动态导入组件配置
13786
- let initCompData;
13787
- try {
13788
- const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
13789
- const isTemporary = isTemporaryItem === "true";
13790
- if (isTemporary) {
13791
- initCompData = getCopyTemplateCompConfig(this.temporaryList, componentKey);
13792
- } else {
13793
- initCompData = __webpack_require__(1640)(`./${componentKey}`).default.settings(componentKey);
13794
- }
13795
- if (!isTemporary) {
13796
- initCompData = {
13797
- ...initCompData,
13798
- styleConfig: {
13799
- pc: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(16, 16, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")],
13800
- mb: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(12, 12, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")]
13801
- }
13802
- };
13803
- }
13804
- } catch (error) {
13805
- console.error(`无法加载组件 ${componentKey}:`, error);
13806
- this.$message && this.$message.error(`组件加载失败`);
13807
- return;
13808
- }
13809
- const toElementId = e.toElement.id;
13810
- if (toElementId === `cardTarget${this.data.componentId}` || toElementId.includes("cardTargetdown")) {
13811
- // 添加到卡片容器末尾
13812
- this.data.childList.push(initCompData);
13813
- } else if (toElementId.includes("cardTargetup")) {
13814
- // 插入到指定位置
13815
- const underComponentId = toElementId.split("-cardTargetup")[0];
13816
- const index = this.data.childList.findIndex(item => item.componentId === underComponentId);
13817
- if (index !== -1) {
13818
- this.data.childList.splice(index, 0, initCompData);
13819
- }
13820
- }
13821
-
13822
- // 触发数据更新
13823
- this.$emit("update:data", this.data);
13824
- if (componentKey === "cms-column") {
13825
- this.$EventBus.$emit("handleNowComp", initCompData);
13826
- }
13827
- }
13828
- }
13829
- });
13830
- ;// ./package/cms-column-card/View.vue?vue&type=script&lang=js
13831
- /* harmony default export */ var cms_column_card_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
13832
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.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=2dcb9de2&prod&lang=scss&scoped=true
13833
- // extracted by mini-css-extract-plugin
13834
-
13835
- ;// ./package/cms-column-card/View.vue?vue&type=style&index=0&id=2dcb9de2&prod&lang=scss&scoped=true
13836
-
13837
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
13838
- var componentNormalizer = __webpack_require__(1656);
13839
- ;// ./package/cms-column-card/View.vue
13840
-
13841
-
13842
-
13843
- ;
13844
-
13845
-
13846
- /* normalize component */
13847
-
13848
- var component = (0,componentNormalizer/* default */.A)(
13849
- cms_column_card_Viewvue_type_script_lang_js,
13850
- render,
13851
- staticRenderFns,
13852
- false,
13853
- null,
13854
- "2dcb9de2",
13855
- null
13856
-
13857
- )
13858
-
13859
- /* harmony default export */ var View = (component.exports);
13860
-
13861
- /***/ }),
13862
-
13863
13351
  /***/ 2358:
13864
13352
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
13865
13353
 
@@ -40435,7 +39923,7 @@ var map = {
40435
39923
  "./cms-banner/View.vue": 6815,
40436
39924
  "./cms-button/View.vue": 2404,
40437
39925
  "./cms-cells/View.vue": 5700,
40438
- "./cms-column-card/View.vue": 2328,
39926
+ "./cms-column-card/View.vue": 7058,
40439
39927
  "./cms-column/View.vue": 7855,
40440
39928
  "./cms-description/View.vue": 3203,
40441
39929
  "./cms-dynamic-comp/View.vue": 2809,
@@ -40454,6 +39942,7 @@ var map = {
40454
39942
  "./cms-richText/View.vue": 3411,
40455
39943
  "./cms-servePlan-tab/View.vue": 8757,
40456
39944
  "./cms-servePlan-text/View.vue": 9487,
39945
+ "./cms-tab/View.vue": 9251,
40457
39946
  "./cms-termsAndConditions/View.vue": 8073,
40458
39947
  "./cms-text/View.vue": 1765,
40459
39948
  "./cms-threeScroll/View.vue": 517,
@@ -40893,7 +40382,7 @@ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVAAAAEQCAYAAADm
40893
40382
  __webpack_require__.r(__webpack_exports__);
40894
40383
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
40895
40384
 
40896
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 2328));
40385
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 7058));
40897
40386
 
40898
40387
  // 默认配置数据
40899
40388
  const langData = {
@@ -52115,141 +51604,603 @@ module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
52115
51604
  };
52116
51605
 
52117
51606
 
52118
- /***/ }),
52119
-
52120
- /***/ 6969:
52121
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
52122
-
52123
- "use strict";
52124
-
52125
- var toPrimitive = __webpack_require__(2777);
52126
- var isSymbol = __webpack_require__(757);
52127
-
52128
- // `ToPropertyKey` abstract operation
52129
- // https://tc39.es/ecma262/#sec-topropertykey
52130
- module.exports = function (argument) {
52131
- var key = toPrimitive(argument, 'string');
52132
- return isSymbol(key) ? key : key + '';
52133
- };
51607
+ /***/ }),
51608
+
51609
+ /***/ 6969:
51610
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51611
+
51612
+ "use strict";
51613
+
51614
+ var toPrimitive = __webpack_require__(2777);
51615
+ var isSymbol = __webpack_require__(757);
51616
+
51617
+ // `ToPropertyKey` abstract operation
51618
+ // https://tc39.es/ecma262/#sec-topropertykey
51619
+ module.exports = function (argument) {
51620
+ var key = toPrimitive(argument, 'string');
51621
+ return isSymbol(key) ? key : key + '';
51622
+ };
51623
+
51624
+
51625
+ /***/ }),
51626
+
51627
+ /***/ 6980:
51628
+ /***/ (function(module) {
51629
+
51630
+ "use strict";
51631
+
51632
+ module.exports = function (bitmap, value) {
51633
+ return {
51634
+ enumerable: !(bitmap & 1),
51635
+ configurable: !(bitmap & 2),
51636
+ writable: !(bitmap & 4),
51637
+ value: value
51638
+ };
51639
+ };
51640
+
51641
+
51642
+ /***/ }),
51643
+
51644
+ /***/ 7012:
51645
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
51646
+
51647
+ "use strict";
51648
+
51649
+
51650
+ __webpack_require__(6573);
51651
+ __webpack_require__(8100);
51652
+ __webpack_require__(7936);
51653
+ __webpack_require__(7467);
51654
+ __webpack_require__(4732);
51655
+ __webpack_require__(9577);
51656
+ exports.__esModule = true;
51657
+ exports.isDefined = exports.isUndefined = exports.isFunction = undefined;
51658
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
51659
+ return typeof obj;
51660
+ } : function (obj) {
51661
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
51662
+ };
51663
+ exports.isString = isString;
51664
+ exports.isObject = isObject;
51665
+ exports.isHtmlElement = isHtmlElement;
51666
+ var _vue = __webpack_require__(6848);
51667
+ var _vue2 = _interopRequireDefault(_vue);
51668
+ function _interopRequireDefault(obj) {
51669
+ return obj && obj.__esModule ? obj : {
51670
+ default: obj
51671
+ };
51672
+ }
51673
+ function isString(obj) {
51674
+ return Object.prototype.toString.call(obj) === '[object String]';
51675
+ }
51676
+ function isObject(obj) {
51677
+ return Object.prototype.toString.call(obj) === '[object Object]';
51678
+ }
51679
+ function isHtmlElement(node) {
51680
+ return node && node.nodeType === Node.ELEMENT_NODE;
51681
+ }
51682
+
51683
+ /**
51684
+ * - Inspired:
51685
+ * https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js
51686
+ */
51687
+ var isFunction = function isFunction(functionToCheck) {
51688
+ var getType = {};
51689
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
51690
+ };
51691
+ if ( true && (typeof Int8Array === 'undefined' ? 'undefined' : _typeof(Int8Array)) !== 'object' && (_vue2.default.prototype.$isServer || typeof document.childNodes !== 'function')) {
51692
+ exports.isFunction = isFunction = function isFunction(obj) {
51693
+ return typeof obj === 'function' || false;
51694
+ };
51695
+ }
51696
+ exports.isFunction = isFunction;
51697
+ var isUndefined = exports.isUndefined = function isUndefined(val) {
51698
+ return val === void 0;
51699
+ };
51700
+ var isDefined = exports.isDefined = function isDefined(val) {
51701
+ return val !== undefined && val !== null;
51702
+ };
51703
+
51704
+ /***/ }),
51705
+
51706
+ /***/ 7040:
51707
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51708
+
51709
+ "use strict";
51710
+
51711
+ /* eslint-disable es/no-symbol -- required for testing */
51712
+ var NATIVE_SYMBOL = __webpack_require__(4495);
51713
+
51714
+ module.exports = NATIVE_SYMBOL &&
51715
+ !Symbol.sham &&
51716
+ typeof Symbol.iterator == 'symbol';
51717
+
51718
+
51719
+ /***/ }),
51720
+
51721
+ /***/ 7055:
51722
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51723
+
51724
+ "use strict";
51725
+
51726
+ var uncurryThis = __webpack_require__(9504);
51727
+ var fails = __webpack_require__(9039);
51728
+ var classof = __webpack_require__(2195);
51729
+
51730
+ var $Object = Object;
51731
+ var split = uncurryThis(''.split);
51732
+
51733
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
51734
+ module.exports = fails(function () {
51735
+ // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
51736
+ // eslint-disable-next-line no-prototype-builtins -- safe
51737
+ return !$Object('z').propertyIsEnumerable(0);
51738
+ }) ? function (it) {
51739
+ return classof(it) === 'String' ? split(it, '') : $Object(it);
51740
+ } : $Object;
51741
+
51742
+
51743
+ /***/ }),
51744
+
51745
+ /***/ 7058:
51746
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
51747
+
51748
+ "use strict";
51749
+ // ESM COMPAT FLAG
51750
+ __webpack_require__.r(__webpack_exports__);
51751
+
51752
+ // EXPORTS
51753
+ __webpack_require__.d(__webpack_exports__, {
51754
+ "default": function() { return /* binding */ View; }
51755
+ });
51756
+
51757
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
51758
+ var es_iterator_constructor = __webpack_require__(8111);
51759
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js
51760
+ var es_iterator_drop = __webpack_require__(9314);
51761
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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=2dcb9de2&scoped=true
51762
+
51763
+
51764
+
51765
+
51766
+ var render = function render() {
51767
+ var _vm = this,
51768
+ _c = _vm._self._c;
51769
+ return _c('BaseComp', _vm._b({
51770
+ attrs: {
51771
+ "data": _vm.data,
51772
+ "nowCompId": _vm.nowCompId,
51773
+ "isOpcacity": _vm.isOpcacity,
51774
+ "isMask": false,
51775
+ "lang": _vm.lang,
51776
+ "showDel": false
51777
+ },
51778
+ on: {
51779
+ "getConfigData": _vm.getConfigData
51780
+ }
51781
+ }, 'BaseComp', _vm.$attrs, false), [_vm.isConfigPage ? _c('div', {
51782
+ staticClass: "main_drag hoverBorderClass",
51783
+ style: _vm.cardContainerStyle,
51784
+ attrs: {
51785
+ "id": `cardTarget${_vm.data.componentId}`
51786
+ },
51787
+ on: {
51788
+ "dragover": _vm.dragover,
51789
+ "dragend": function ($event) {
51790
+ _vm.showAddCom = false;
51791
+ },
51792
+ "drop": _vm.drop
51793
+ }
51794
+ }, [_c('Draggable', {
51795
+ staticStyle: {
51796
+ "position": "relative"
51797
+ },
51798
+ attrs: {
51799
+ "group": _vm.groupConfigForMain,
51800
+ "chosen-class": "chosen",
51801
+ "force-fallback": "true",
51802
+ "animation": "1000",
51803
+ "move": _vm.onMove
51804
+ },
51805
+ on: {
51806
+ "start": _vm.onStart,
51807
+ "end": function ($event) {
51808
+ _vm.showAddCom = false;
51809
+ }
51810
+ },
51811
+ model: {
51812
+ value: _vm.data.childList,
51813
+ callback: function ($$v) {
51814
+ _vm.$set(_vm.data, "childList", $$v);
51815
+ },
51816
+ expression: "data.childList"
51817
+ }
51818
+ }, [_vm._l(_vm.data.childList, function (item, index) {
51819
+ return _c('div', {
51820
+ key: item.componentId,
51821
+ staticStyle: {
51822
+ "position": "relative"
51823
+ }
51824
+ }, [_vm.showAddCom ? _c('div', {
51825
+ staticClass: "up_insert",
51826
+ attrs: {
51827
+ "id": `${item.componentId}-cardTargetup`
51828
+ }
51829
+ }, [_c('i', {
51830
+ staticClass: "icon-up",
51831
+ attrs: {
51832
+ "id": `${item.componentId}-upi`
51833
+ }
51834
+ }), _c('span', {
51835
+ attrs: {
51836
+ "id": `${item.componentId}-upspan`
51837
+ }
51838
+ }, [_vm._v("插入组件")])]) : _vm._e(), _c(item.cmsCompName, {
51839
+ tag: "component",
51840
+ style: {
51841
+ marginTop: _vm.showAddCom && index == 0 ? '20px' : '0px'
51842
+ },
51843
+ attrs: {
51844
+ "data": item,
51845
+ "lang": _vm.lang,
51846
+ "isOpcacity": _vm.isOpcacity,
51847
+ "nowCompId": _vm.nowCompId
51848
+ }
51849
+ })], 1);
51850
+ }), _vm.showAddCom ? _c('div', {
51851
+ staticClass: "up_insert insert_bottom",
51852
+ style: {
51853
+ bottom: _vm.data.childList.length ? '0px' : '-24px'
51854
+ },
51855
+ attrs: {
51856
+ "id": `-cardTargetdown`
51857
+ }
51858
+ }, [_c('i', {
51859
+ staticClass: "icon-up"
51860
+ }), _c('span', [_vm._v("插入组件")])]) : _vm._e()], 2)], 1) : _c('cms-view', _vm._b({
51861
+ style: _vm.cardContainerStyle,
51862
+ attrs: {
51863
+ "data": _vm.data.childList,
51864
+ "lang": _vm.lang,
51865
+ "isOpcacity": false
51866
+ }
51867
+ }, 'cms-view', _vm.$attrs, false))], 1);
51868
+ };
51869
+ var staticRenderFns = [];
51870
+
51871
+ ;// ./package/cms-column-card/View.vue?vue&type=template&id=2dcb9de2&scoped=true
51872
+
51873
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
51874
+ var es_array_push = __webpack_require__(4114);
51875
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
51876
+ var baseComp = __webpack_require__(4128);
51877
+ // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
51878
+ var vuedraggable_umd = __webpack_require__(1527);
51879
+ var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);
51880
+ // EXTERNAL MODULE: ./package/baseConfig.js
51881
+ var baseConfig = __webpack_require__(649);
51882
+ // EXTERNAL MODULE: ./src/views/standard_page.js
51883
+ var standard_page = __webpack_require__(8134);
51884
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
52134
51885
 
52135
51886
 
52136
- /***/ }),
52137
51887
 
52138
- /***/ 6980:
52139
- /***/ (function(module) {
52140
51888
 
52141
- "use strict";
52142
51889
 
52143
- module.exports = function (bitmap, value) {
52144
- return {
52145
- enumerable: !(bitmap & 1),
52146
- configurable: !(bitmap & 2),
52147
- writable: !(bitmap & 4),
52148
- value: value
52149
- };
52150
- };
52151
51890
 
51891
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
51892
+ name: "cms-column-card",
51893
+ components: {
51894
+ BaseComp: baseComp["default"],
51895
+ Draggable: (vuedraggable_umd_default())
51896
+ },
51897
+ props: {
51898
+ data: {
51899
+ type: Object,
51900
+ default: () => {
51901
+ return {};
51902
+ }
51903
+ },
51904
+ nowCompId: {
51905
+ type: [String, Number],
51906
+ default: ""
51907
+ },
51908
+ isOpcacity: {
51909
+ type: Boolean,
51910
+ default: true
51911
+ },
51912
+ lang: {
51913
+ type: String,
51914
+ default: "zh-HK"
51915
+ },
51916
+ isMobile: {
51917
+ type: Boolean,
51918
+ default: false
51919
+ },
51920
+ mobileLayout: {
51921
+ type: String,
51922
+ default: ""
51923
+ }
51924
+ },
51925
+ data() {
51926
+ return {
51927
+ configData: {},
51928
+ messFold: true,
51929
+ showAddCom: false,
51930
+ temporaryList: []
51931
+ };
51932
+ },
51933
+ computed: {
51934
+ isConfigPage() {
51935
+ return this.$EventBus && this.isOpcacity;
51936
+ },
51937
+ groupConfigForMain() {
51938
+ return {
51939
+ name: "task",
51940
+ pull: true,
51941
+ // A列表的元素可以被拖出
51942
+ put: (to, from, dragEl) => {
51943
+ console.log(from.el.classList);
51944
+ if (from.el.classList.contains("main_drag")) {
51945
+ const dataId = this.findFirstComponentKey(dragEl);
51946
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column"];
51947
+ console.log("allowedComponents", dataId);
51948
+ if (dataId === "cms-column") {
51949
+ if (!this.checkColumnNestingLevel()) {
51950
+ console.log("cms-column 嵌套层级超出限制");
51951
+ return false;
51952
+ }
51953
+ }
51954
+ return allowedComponents.includes(dataId);
51955
+ }
51956
+ return true;
51957
+ }
51958
+ };
51959
+ },
51960
+ // 卡片容器样式
51961
+ cardContainerStyle() {
51962
+ return {
51963
+ backgroundImage: this.configData.backgroundImage ? `url('${this.configData.backgroundImage}')` : "none",
51964
+ backgroundSize: "cover",
51965
+ backgroundRepeat: "no-repeat",
51966
+ backgroundPosition: "center center",
51967
+ height: this.getContainerHeight(),
51968
+ border: this.getContainerBorder(),
51969
+ borderRadius: this.getContainerBorderRadius(),
51970
+ backgroundColor: this.configData.backgroundColor || "transparent",
51971
+ boxShadow: this.configData.boxShadow || "none"
51972
+ };
51973
+ }
51974
+ },
51975
+ mounted() {
51976
+ if (this.$EventBus) {
51977
+ this.$EventBus.$on("handleDragEnd", () => {
51978
+ this.showAddCom = false;
51979
+ });
51980
+ }
51981
+ },
51982
+ watch: {},
51983
+ methods: {
51984
+ findFirstComponentKey(root) {
51985
+ var _root$querySelector;
51986
+ if (!root) return null;
52152
51987
 
52153
- /***/ }),
51988
+ // 若起点自身就有
51989
+ if (root.nodeType === 1 && root.hasAttribute("component-key")) {
51990
+ return root.getAttribute("component-key");
51991
+ }
52154
51992
 
52155
- /***/ 7012:
52156
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
51993
+ // 向下查找第一个匹配的后代
51994
+ const el = (_root$querySelector = root.querySelector) === null || _root$querySelector === void 0 ? void 0 : _root$querySelector.call(root, "[component-key]");
51995
+ return el ? el.getAttribute("component-key") : null;
51996
+ },
51997
+ // 获取容器高度
51998
+ getContainerHeight() {
51999
+ if (this.configData.heightType === "fixed") {
52000
+ return `${this.configData.fixedHeight}px`;
52001
+ }
52002
+ return this.isMobile && this.mobileLayout == "vertical" ? "auto" : "100%";
52003
+ },
52004
+ // 获取容器边框
52005
+ getContainerBorder() {
52006
+ if (this.configData.borderWidth) {
52007
+ return `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}`;
52008
+ }
52009
+ return "none";
52010
+ },
52011
+ // 获取容器圆角
52012
+ getContainerBorderRadius() {
52013
+ if (this.configData.borderRadius) {
52014
+ return `${this.configData.borderRadius}px`;
52015
+ }
52016
+ return "0";
52017
+ },
52018
+ getConfigData(configData) {
52019
+ this.configData = configData;
52020
+ },
52021
+ foldMessText() {
52022
+ this.messFold = !this.messFold;
52023
+ },
52024
+ decodeJumpUrl(url) {
52025
+ if (!url) return;
52026
+ top.location.href = url;
52027
+ },
52028
+ onStart(evt) {
52029
+ console.log("drag start in column-card", evt);
52030
+ this.showAddCom = true;
52031
+ },
52032
+ // 限制拖拽的组件类型
52033
+ onMove(evt) {
52034
+ const {
52035
+ draggedContext
52036
+ } = evt;
52157
52037
 
52158
- "use strict";
52038
+ // 允许的组件类型
52039
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
52040
+ ];
52159
52041
 
52042
+ // 如果是从外部拖入的组件
52043
+ if (draggedContext && draggedContext.element) {
52044
+ const componentType = draggedContext.element.cmsCompName;
52045
+ if (componentType && !allowedComponents.includes(componentType)) {
52046
+ console.log("draggedContext.element", draggedContext.element);
52047
+ console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
52048
+ return false;
52049
+ }
52160
52050
 
52161
- __webpack_require__(6573);
52162
- __webpack_require__(8100);
52163
- __webpack_require__(7936);
52164
- __webpack_require__(7467);
52165
- __webpack_require__(4732);
52166
- __webpack_require__(9577);
52167
- exports.__esModule = true;
52168
- exports.isDefined = exports.isUndefined = exports.isFunction = undefined;
52169
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
52170
- return typeof obj;
52171
- } : function (obj) {
52172
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
52173
- };
52174
- exports.isString = isString;
52175
- exports.isObject = isObject;
52176
- exports.isHtmlElement = isHtmlElement;
52177
- var _vue = __webpack_require__(6848);
52178
- var _vue2 = _interopRequireDefault(_vue);
52179
- function _interopRequireDefault(obj) {
52180
- return obj && obj.__esModule ? obj : {
52181
- default: obj
52182
- };
52183
- }
52184
- function isString(obj) {
52185
- return Object.prototype.toString.call(obj) === '[object String]';
52186
- }
52187
- function isObject(obj) {
52188
- return Object.prototype.toString.call(obj) === '[object Object]';
52189
- }
52190
- function isHtmlElement(node) {
52191
- return node && node.nodeType === Node.ELEMENT_NODE;
52192
- }
52051
+ // 特殊处理 cms-column:检查嵌套层级
52052
+ if (componentType === "cms-column") {
52053
+ if (!this.checkColumnNestingLevel()) {
52054
+ console.log("cms-column 嵌套层级超出限制");
52055
+ return false;
52056
+ }
52057
+ }
52058
+ }
52059
+ return true;
52060
+ },
52061
+ // 检查 cms-column 嵌套层级
52062
+ checkColumnNestingLevel() {
52063
+ // 检查当前 column-card 是否已经在 cms-column 内部
52064
+ let parent = this.$parent;
52065
+ let columnDepth = 0;
52066
+ while (parent) {
52067
+ // 检查父组件是否是 cms-column 或包含 cms-column
52068
+ if (parent.$options.name === "cms-column" || parent.$data && parent.$data.data && parent.$data.data.cmsCompName === "cms-column") {
52069
+ columnDepth++;
52070
+ }
52193
52071
 
52194
- /**
52195
- * - Inspired:
52196
- * https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js
52197
- */
52198
- var isFunction = function isFunction(functionToCheck) {
52199
- var getType = {};
52200
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
52201
- };
52202
- if ( true && (typeof Int8Array === 'undefined' ? 'undefined' : _typeof(Int8Array)) !== 'object' && (_vue2.default.prototype.$isServer || typeof document.childNodes !== 'function')) {
52203
- exports.isFunction = isFunction = function isFunction(obj) {
52204
- return typeof obj === 'function' || false;
52205
- };
52206
- }
52207
- exports.isFunction = isFunction;
52208
- var isUndefined = exports.isUndefined = function isUndefined(val) {
52209
- return val === void 0;
52210
- };
52211
- var isDefined = exports.isDefined = function isDefined(val) {
52212
- return val !== undefined && val !== null;
52213
- };
52072
+ // 如果已经有一层 cms-column,则不允许再嵌套
52073
+ if (columnDepth >= 2) {
52074
+ console.log(`检测到 cms-column 嵌套层级: ${columnDepth}, 超出限制`);
52075
+ return false;
52076
+ }
52077
+ parent = parent.$parent;
52078
+ }
52079
+ console.log(`cms-column 嵌套层级检查通过: ${columnDepth}`);
52080
+ return true;
52081
+ },
52082
+ // 处理拖拽悬停
52083
+ dragover(e) {
52084
+ e.preventDefault();
52085
+ this.showAddCom = true;
52086
+ },
52087
+ // 处理拖拽放置
52088
+ drop(e) {
52089
+ e.preventDefault();
52090
+ const componentKey = e.dataTransfer.getData("componentKey");
52091
+ let temporaryId = "";
52092
+ this.temporaryList = e.dataTransfer.getData("temporaryList") ? JSON.parse(e.dataTransfer.getData("temporaryList")) : [];
52093
+ console.log("cms-colum-card-drop", componentKey, this.temporaryList);
52094
+ if (!componentKey) return;
52095
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
52096
+ const isTemporary = isTemporaryItem === "true";
52097
+ if (isTemporary) {
52098
+ temporaryId = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey).cmsCompName;
52099
+ }
52100
+ const componentType = isTemporary ? temporaryId : componentKey;
52101
+ // 允许的组件类型
52102
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
52103
+ ];
52214
52104
 
52215
- /***/ }),
52105
+ // 检查组件类型是否允许
52106
+ if (!allowedComponents.includes(componentType)) {
52107
+ console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
52108
+ this.$message && this.$message.warning(`该组件类型不支持拖入卡片容器`);
52109
+ this.showAddCom = false;
52110
+ return;
52111
+ }
52216
52112
 
52217
- /***/ 7040:
52218
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
52113
+ // 特殊处理 cms-column:检查嵌套层级
52114
+ if (componentType === "cms-column") {
52115
+ if (!this.checkColumnNestingLevel()) {
52116
+ console.log("cms-column 嵌套层级超出限制");
52117
+ this.$message && this.$message.warning(`cms-column 只能嵌套一层`);
52118
+ this.showAddCom = false;
52119
+ return;
52120
+ }
52121
+ }
52122
+ this.addOneComp(e, componentKey);
52123
+ },
52124
+ // 添加组件到卡片容器
52125
+ addOneComp(e, componentKey) {
52126
+ this.showAddCom = false;
52127
+ console.log("drop to column-card", componentKey);
52219
52128
 
52220
- "use strict";
52129
+ // 动态导入组件配置
52130
+ let initCompData;
52131
+ try {
52132
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
52133
+ const isTemporary = isTemporaryItem === "true";
52134
+ if (isTemporary) {
52135
+ initCompData = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey);
52136
+ } else {
52137
+ initCompData = __webpack_require__(1640)(`./${componentKey}`).default.settings(componentKey);
52138
+ }
52139
+ if (!isTemporary) {
52140
+ initCompData = {
52141
+ ...initCompData,
52142
+ styleConfig: {
52143
+ pc: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(16, 16, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")],
52144
+ mb: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(12, 12, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")]
52145
+ }
52146
+ };
52147
+ }
52148
+ } catch (error) {
52149
+ console.error(`无法加载组件 ${componentKey}:`, error);
52150
+ this.$message && this.$message.error(`组件加载失败`);
52151
+ return;
52152
+ }
52153
+ const toElementId = e.toElement.id;
52154
+ if (toElementId === `cardTarget${this.data.componentId}` || toElementId.includes("cardTargetdown")) {
52155
+ // 添加到卡片容器末尾
52156
+ this.data.childList.push(initCompData);
52157
+ } else if (toElementId.includes("cardTargetup")) {
52158
+ // 插入到指定位置
52159
+ const underComponentId = toElementId.split("-cardTargetup")[0];
52160
+ const index = this.data.childList.findIndex(item => item.componentId === underComponentId);
52161
+ if (index !== -1) {
52162
+ this.data.childList.splice(index, 0, initCompData);
52163
+ }
52164
+ }
52221
52165
 
52222
- /* eslint-disable es/no-symbol -- required for testing */
52223
- var NATIVE_SYMBOL = __webpack_require__(4495);
52166
+ // 触发数据更新
52167
+ this.$emit("update:data", this.data);
52168
+ if (componentKey === "cms-column") {
52169
+ this.$EventBus.$emit("handleNowComp", initCompData);
52170
+ }
52171
+ }
52172
+ }
52173
+ });
52174
+ ;// ./package/cms-column-card/View.vue?vue&type=script&lang=js
52175
+ /* harmony default export */ var cms_column_card_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
52176
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.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=2dcb9de2&prod&lang=scss&scoped=true
52177
+ // extracted by mini-css-extract-plugin
52224
52178
 
52225
- module.exports = NATIVE_SYMBOL &&
52226
- !Symbol.sham &&
52227
- typeof Symbol.iterator == 'symbol';
52179
+ ;// ./package/cms-column-card/View.vue?vue&type=style&index=0&id=2dcb9de2&prod&lang=scss&scoped=true
52228
52180
 
52181
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
52182
+ var componentNormalizer = __webpack_require__(1656);
52183
+ ;// ./package/cms-column-card/View.vue
52229
52184
 
52230
- /***/ }),
52231
52185
 
52232
- /***/ 7055:
52233
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
52234
52186
 
52235
- "use strict";
52187
+ ;
52236
52188
 
52237
- var uncurryThis = __webpack_require__(9504);
52238
- var fails = __webpack_require__(9039);
52239
- var classof = __webpack_require__(2195);
52240
52189
 
52241
- var $Object = Object;
52242
- var split = uncurryThis(''.split);
52190
+ /* normalize component */
52243
52191
 
52244
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
52245
- module.exports = fails(function () {
52246
- // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
52247
- // eslint-disable-next-line no-prototype-builtins -- safe
52248
- return !$Object('z').propertyIsEnumerable(0);
52249
- }) ? function (it) {
52250
- return classof(it) === 'String' ? split(it, '') : $Object(it);
52251
- } : $Object;
52192
+ var component = (0,componentNormalizer/* default */.A)(
52193
+ cms_column_card_Viewvue_type_script_lang_js,
52194
+ render,
52195
+ staticRenderFns,
52196
+ false,
52197
+ null,
52198
+ "2dcb9de2",
52199
+ null
52200
+
52201
+ )
52252
52202
 
52203
+ /* harmony default export */ var View = (component.exports);
52253
52204
 
52254
52205
  /***/ }),
52255
52206
 
@@ -54248,6 +54199,75 @@ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSc
54248
54199
 
54249
54200
  /***/ }),
54250
54201
 
54202
+ /***/ 8134:
54203
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
54204
+
54205
+ "use strict";
54206
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
54207
+ /* harmony export */ L7: function() { return /* binding */ getCopyTemplateCompConfig; }
54208
+ /* harmony export */ });
54209
+ /* unused harmony exports standard_page_list, getComponentKey, isStaticComp, getWujieCompInfo */
54210
+ /* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8111);
54211
+ /* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);
54212
+ /* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(116);
54213
+ /* harmony import */ var core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__);
54214
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1996);
54215
+
54216
+
54217
+
54218
+
54219
+
54220
+ const standard_page_list = [{
54221
+ id: 1,
54222
+ componentId: 1,
54223
+ componentName: "范本1-防诈骗提示",
54224
+ standList: ["cms-banner", "cms-titleCenter", "cms-lineThree"]
54225
+ }, {
54226
+ id: 2,
54227
+ componentId: 2,
54228
+ componentName: "范本2-员工优惠",
54229
+ standList: ["cms-banner", "cms-description", "cms-activityCountdown", "cms-titleLeft", "cms-proCard", "cms-termsAndConditions"]
54230
+ }];
54231
+ const getComponentKey = (compList, id, noCompId = false) => {
54232
+ if (noCompId) return id;
54233
+ let compConfig = compList.find(item => item.id == id);
54234
+ if (compConfig.type == "1") {
54235
+ return compConfig.componentId;
54236
+ }
54237
+ return "cms-dynamic-comp";
54238
+ };
54239
+ const getCopyTemplateCompConfig = (compList, componentKey) => {
54240
+ let otherConfig = {};
54241
+ const configureJson = compList.find(item => item.id == componentKey).configureJson;
54242
+ if (configureJson.wujieConfig) {
54243
+ //如果是第三方组件加一个临时标识
54244
+ otherConfig = {
54245
+ originalComponentId: configureJson.componentId,
54246
+ originalVersionId: configureJson.wujieConfig.versionId,
54247
+ operation: "copyTemplate"
54248
+ };
54249
+ }
54250
+ return {
54251
+ ...configureJson,
54252
+ componentId: (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .getUuidCode */ .J0)(32),
54253
+ ...otherConfig
54254
+ };
54255
+ };
54256
+ const isStaticComp = componentKey => {
54257
+ return ["cms-header", "cms-footer", "cms-breadCrumb"].includes(componentKey);
54258
+ };
54259
+ const getWujieCompInfo = (compList, componentId, isTemplate) => {
54260
+ let compConfig = compList.find(item => item.id == componentId);
54261
+ if (isTemplate) if (compConfig.type == "1") {
54262
+ return compConfig;
54263
+ }
54264
+ return {
54265
+ ...compConfig
54266
+ };
54267
+ };
54268
+
54269
+ /***/ }),
54270
+
54251
54271
  /***/ 8216:
54252
54272
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
54253
54273
 
@@ -57831,6 +57851,50 @@ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSc
57831
57851
 
57832
57852
  /***/ }),
57833
57853
 
57854
+ /***/ 8892:
57855
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
57856
+
57857
+ "use strict";
57858
+ __webpack_require__.r(__webpack_exports__);
57859
+ /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
57860
+
57861
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 9251));
57862
+ const langData = {
57863
+ configList: [{
57864
+ id: Math.random().toString(),
57865
+ name: "栏目名称",
57866
+ tabList: []
57867
+ }]
57868
+ };
57869
+ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
57870
+ configList: {
57871
+ label: "栏目配置",
57872
+ value: [{
57873
+ id: {
57874
+ label: ""
57875
+ },
57876
+ name: {
57877
+ label: "栏目名称"
57878
+ }
57879
+ }]
57880
+ }
57881
+ });
57882
+ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
57883
+ /* harmony default export */ __webpack_exports__["default"] = ({
57884
+ View,
57885
+ validateSchema,
57886
+ configDataType,
57887
+ langData,
57888
+ settings: cmsCompName => {
57889
+ return (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getInitCompData)({
57890
+ cmsCompName,
57891
+ langData
57892
+ });
57893
+ }
57894
+ });
57895
+
57896
+ /***/ }),
57897
+
57834
57898
  /***/ 8895:
57835
57899
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
57836
57900
 
@@ -58212,6 +58276,509 @@ module.exports = function sign(number) {
58212
58276
 
58213
58277
  /***/ }),
58214
58278
 
58279
+ /***/ 9251:
58280
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
58281
+
58282
+ "use strict";
58283
+ // ESM COMPAT FLAG
58284
+ __webpack_require__.r(__webpack_exports__);
58285
+
58286
+ // EXPORTS
58287
+ __webpack_require__.d(__webpack_exports__, {
58288
+ "default": function() { return /* binding */ View; }
58289
+ });
58290
+
58291
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
58292
+ var es_iterator_constructor = __webpack_require__(8111);
58293
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js
58294
+ var es_iterator_drop = __webpack_require__(9314);
58295
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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-tab/View.vue?vue&type=template&id=29a0258e&scoped=true
58296
+
58297
+
58298
+
58299
+
58300
+ var render = function render() {
58301
+ var _vm = this,
58302
+ _c = _vm._self._c;
58303
+ return _c('BaseComp', _vm._b({
58304
+ attrs: {
58305
+ "data": _vm.data,
58306
+ "nowCompId": _vm.nowCompId,
58307
+ "isOpcacity": _vm.isOpcacity,
58308
+ "isMask": false,
58309
+ "lang": _vm.lang
58310
+ },
58311
+ on: {
58312
+ "getConfigData": _vm.getConfigData
58313
+ }
58314
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
58315
+ staticClass: "cmhk-home_main"
58316
+ }, [_c('div', {
58317
+ staticClass: "page-tab-swiper_wrapper",
58318
+ class: _vm.swiperArrow == true ? '' : 'active'
58319
+ }, [_c('div', {
58320
+ ref: "barparent",
58321
+ staticClass: "page-tab-swiper common-swiper_tab",
58322
+ attrs: {
58323
+ "id": "tab-swiper"
58324
+ }
58325
+ }, [_c('div', {
58326
+ staticClass: "swiper-wrapper"
58327
+ }, _vm._l(_vm.configList, function (item, index) {
58328
+ return _c('div', {
58329
+ key: `${index}${item === null || item === void 0 ? void 0 : item.id}`,
58330
+ staticClass: "swiper-slide",
58331
+ class: index == _vm.currentTab ? 'active' : '',
58332
+ on: {
58333
+ "click": function ($event) {
58334
+ $event.stopPropagation();
58335
+ return _vm.changeTab(index);
58336
+ }
58337
+ }
58338
+ }, [_vm._v(" " + _vm._s(item.name) + " ")]);
58339
+ }), 0)])]), _vm.configList[_vm.currentTab] ? _c('div', {
58340
+ staticClass: "page-tab-swiper-body"
58341
+ }, [_vm.isConfigPage ? _c('div', {
58342
+ staticClass: "main_drag hoverBorderClass min-h",
58343
+ attrs: {
58344
+ "id": `tabTarget${_vm.currentTab}`
58345
+ },
58346
+ on: {
58347
+ "dragover": _vm.dragover,
58348
+ "dragend": function ($event) {
58349
+ _vm.showAddCom = false;
58350
+ },
58351
+ "drop": _vm.drop
58352
+ }
58353
+ }, [_c('Draggable', {
58354
+ staticStyle: {
58355
+ "position": "relative"
58356
+ },
58357
+ attrs: {
58358
+ "group": _vm.groupConfigForMain,
58359
+ "chosen-class": "chosen",
58360
+ "force-fallback": "true",
58361
+ "animation": "1000",
58362
+ "move": _vm.onMove
58363
+ },
58364
+ on: {
58365
+ "start": _vm.onStart,
58366
+ "end": function ($event) {
58367
+ _vm.showAddCom = false;
58368
+ }
58369
+ },
58370
+ model: {
58371
+ value: _vm.configList[_vm.currentTab].tabList,
58372
+ callback: function ($$v) {
58373
+ _vm.$set(_vm.configList[_vm.currentTab], "tabList", $$v);
58374
+ },
58375
+ expression: "configList[currentTab].tabList"
58376
+ }
58377
+ }, [_vm._l(_vm.configList[_vm.currentTab].tabList, function (item, index) {
58378
+ return _c('div', {
58379
+ key: item.componentId,
58380
+ staticStyle: {
58381
+ "position": "relative"
58382
+ }
58383
+ }, [_vm.showAddCom ? _c('div', {
58384
+ staticClass: "up_insert",
58385
+ attrs: {
58386
+ "id": `${item.componentId}-tabTargetup`
58387
+ }
58388
+ }, [_c('i', {
58389
+ staticClass: "icon-up",
58390
+ attrs: {
58391
+ "id": `${item.componentId}-upi`
58392
+ }
58393
+ }), _c('span', {
58394
+ attrs: {
58395
+ "id": `${item.componentId}-upspan`
58396
+ }
58397
+ }, [_vm._v("插入组件")])]) : _vm._e(), _c(item.cmsCompName, {
58398
+ tag: "component",
58399
+ style: {
58400
+ marginTop: _vm.showAddCom && index == 0 ? '20px' : '0px'
58401
+ },
58402
+ attrs: {
58403
+ "data": item,
58404
+ "lang": _vm.lang,
58405
+ "isOpcacity": _vm.isOpcacity,
58406
+ "nowCompId": _vm.nowCompId
58407
+ }
58408
+ })], 1);
58409
+ }), _vm.showAddCom ? _c('div', {
58410
+ staticClass: "up_insert insert_bottom",
58411
+ style: {
58412
+ bottom: _vm.configList[_vm.currentTab].tabList.length ? '0px' : '-24px'
58413
+ },
58414
+ attrs: {
58415
+ "id": `-tabTargetdown`
58416
+ }
58417
+ }, [_c('i', {
58418
+ staticClass: "icon-up"
58419
+ }), _c('span', [_vm._v("插入组件")])]) : _vm._e()], 2)], 1) : _c('cms-view', _vm._b({
58420
+ attrs: {
58421
+ "data": _vm.configList[_vm.currentTab].tabList,
58422
+ "lang": _vm.lang,
58423
+ "isOpcacity": false
58424
+ }
58425
+ }, 'cms-view', _vm.$attrs, false))], 1) : _vm._e()])]);
58426
+ };
58427
+ var staticRenderFns = [];
58428
+
58429
+ ;// ./package/cms-tab/View.vue?vue&type=template&id=29a0258e&scoped=true
58430
+
58431
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
58432
+ var es_array_push = __webpack_require__(4114);
58433
+ // EXTERNAL MODULE: ./node_modules/swiper/dist/js/swiper.js
58434
+ var swiper = __webpack_require__(2791);
58435
+ // EXTERNAL MODULE: ./node_modules/swiper/dist/js/swiper.esm.bundle.js + 3 modules
58436
+ var swiper_esm_bundle = __webpack_require__(4418);
58437
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
58438
+ var baseComp = __webpack_require__(4128);
58439
+ // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
58440
+ var vuedraggable_umd = __webpack_require__(1527);
58441
+ var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);
58442
+ // EXTERNAL MODULE: ./package/baseConfig.js
58443
+ var baseConfig = __webpack_require__(649);
58444
+ // EXTERNAL MODULE: ./src/views/standard_page.js
58445
+ var standard_page = __webpack_require__(8134);
58446
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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-tab/View.vue?vue&type=script&lang=js
58447
+
58448
+
58449
+
58450
+
58451
+
58452
+
58453
+
58454
+
58455
+
58456
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
58457
+ name: "cms-tab",
58458
+ components: {
58459
+ BaseComp: baseComp["default"],
58460
+ Draggable: (vuedraggable_umd_default())
58461
+ },
58462
+ props: {
58463
+ data: {
58464
+ type: Object,
58465
+ default: () => {
58466
+ return {};
58467
+ }
58468
+ },
58469
+ nowCompId: {
58470
+ type: [String, Number],
58471
+ default: ""
58472
+ },
58473
+ isOpcacity: {
58474
+ type: Boolean,
58475
+ default: true
58476
+ },
58477
+ lang: {
58478
+ type: String,
58479
+ default: "zh-HK"
58480
+ },
58481
+ isMobile: {
58482
+ type: Boolean,
58483
+ default: false
58484
+ },
58485
+ mobileLayout: {
58486
+ type: String,
58487
+ default: ""
58488
+ }
58489
+ },
58490
+ data() {
58491
+ return {
58492
+ showAddCom: false,
58493
+ temporaryList: [],
58494
+ configList: [],
58495
+ currentTab: 0,
58496
+ swiperArrow: false,
58497
+ broadbandSwiperC: null,
58498
+ swiperBeginning: false,
58499
+ swiperEnd: false
58500
+ };
58501
+ },
58502
+ computed: {
58503
+ isConfigPage() {
58504
+ return this.$EventBus && this.isOpcacity;
58505
+ },
58506
+ groupConfigForMain() {
58507
+ return {
58508
+ name: "task",
58509
+ pull: true,
58510
+ // A列表的元素可以被拖出
58511
+ put: (to, from, dragEl) => {
58512
+ console.log(from.el.classList);
58513
+ if (from.el.classList.contains("main_drag")) {
58514
+ const dataId = this.findFirstComponentKey(dragEl);
58515
+ if (dataId === "cms-column") {
58516
+ if (!this.checkColumnNestingLevel()) {
58517
+ console.log("cms-column 嵌套层级超出限制");
58518
+ return false;
58519
+ }
58520
+ }
58521
+ return true;
58522
+ }
58523
+ return true;
58524
+ }
58525
+ };
58526
+ }
58527
+ },
58528
+ mounted() {
58529
+ if (this.$EventBus) {
58530
+ this.$EventBus.$on("handleDragEnd", () => {
58531
+ this.showAddCom = false;
58532
+ });
58533
+ }
58534
+ this.$nextTick(() => {
58535
+ this.broadbandSwiperC = new swiper_esm_bundle/* default */.A("#tab-swiper", {
58536
+ autoplay: false,
58537
+ loop: false,
58538
+ // 循环模式选项
58539
+ spaceBetween: 0,
58540
+ slidesPerView: "auto",
58541
+ // slidesPerGroup:1,
58542
+ observer: true,
58543
+ observeParents: true,
58544
+ preventClicksPropagation: true,
58545
+ touchStartPreventDefault: false,
58546
+ touchStartForcePreventDefault: false
58547
+ });
58548
+ // 0820 -end
58549
+ });
58550
+ },
58551
+ watch: {},
58552
+ methods: {
58553
+ getConfigData(configData) {
58554
+ this.configList = configData.configList;
58555
+ this.$nextTick(() => {
58556
+ var _this$broadbandSwiper, _this$broadbandSwiper2;
58557
+ if (!this.$refs.barparent || !this.broadbandSwiperC) return;
58558
+ const parentClientWidth = this.$refs.barparent.clientWidth;
58559
+ console.log("this.broadbandSwiperC?.virtualSize ,", (_this$broadbandSwiper = this.broadbandSwiperC) === null || _this$broadbandSwiper === void 0 ? void 0 : _this$broadbandSwiper.virtualSize);
58560
+ if (((_this$broadbandSwiper2 = this.broadbandSwiperC) === null || _this$broadbandSwiper2 === void 0 ? void 0 : _this$broadbandSwiper2.virtualSize) <= parentClientWidth) {
58561
+ this.swiperArrow = false;
58562
+ } else {
58563
+ this.swiperArrow = true;
58564
+ }
58565
+ if (this.broadbandSwiperC.isBeginning) {
58566
+ this.swiperBeginning = true;
58567
+ }
58568
+ if (this.broadbandSwiperC.isEnd) {
58569
+ this.swiperEnd = true;
58570
+ }
58571
+ });
58572
+ },
58573
+ clickSwiperPrev() {
58574
+ this.broadbandSwiperC.slidePrev();
58575
+ if (this.broadbandSwiperC.isBeginning) {
58576
+ this.swiperBeginning = true;
58577
+ } else {
58578
+ this.swiperBeginning = false;
58579
+ }
58580
+ if (this.broadbandSwiperC.isEnd) {
58581
+ this.swiperEnd = true;
58582
+ } else {
58583
+ this.swiperEnd = false;
58584
+ }
58585
+ },
58586
+ clickSwiperNext() {
58587
+ this.broadbandSwiperC.slideNext();
58588
+ if (this.broadbandSwiperC.isBeginning) {
58589
+ this.swiperBeginning = true;
58590
+ } else {
58591
+ this.swiperBeginning = false;
58592
+ }
58593
+ if (this.broadbandSwiperC.isEnd) {
58594
+ this.swiperEnd = true;
58595
+ } else {
58596
+ this.swiperEnd = false;
58597
+ }
58598
+ },
58599
+ changeTab(index) {
58600
+ this.currentTab = index;
58601
+ },
58602
+ findFirstComponentKey(root) {
58603
+ var _root$querySelector;
58604
+ if (!root) return null;
58605
+
58606
+ // 若起点自身就有
58607
+ if (root.nodeType === 1 && root.hasAttribute("component-key")) {
58608
+ return root.getAttribute("component-key");
58609
+ }
58610
+
58611
+ // 向下查找第一个匹配的后代
58612
+ const el = (_root$querySelector = root.querySelector) === null || _root$querySelector === void 0 ? void 0 : _root$querySelector.call(root, "[component-key]");
58613
+ return el ? el.getAttribute("component-key") : null;
58614
+ },
58615
+ // 获取容器高度
58616
+ decodeJumpUrl(url) {
58617
+ if (!url) return;
58618
+ top.location.href = url;
58619
+ },
58620
+ onStart(evt) {
58621
+ console.log("drag start in column-card", evt);
58622
+ this.showAddCom = true;
58623
+ },
58624
+ // 限制拖拽的组件类型
58625
+ onMove(evt) {
58626
+ const {
58627
+ draggedContext
58628
+ } = evt;
58629
+ // 如果是从外部拖入的组件
58630
+ if (draggedContext && draggedContext.element) {
58631
+ const componentType = draggedContext.element.cmsCompName;
58632
+ // 特殊处理 cms-column:检查嵌套层级
58633
+ if (componentType === "cms-column") {
58634
+ if (!this.checkColumnNestingLevel()) {
58635
+ console.log("cms-column 嵌套层级超出限制");
58636
+ return false;
58637
+ }
58638
+ }
58639
+ }
58640
+ return true;
58641
+ },
58642
+ // 检查 cms-column 嵌套层级
58643
+ checkColumnNestingLevel() {
58644
+ // 检查当前 column-card 是否已经在 cms-column 内部
58645
+ let parent = this.$parent;
58646
+ let columnDepth = 0;
58647
+ while (parent) {
58648
+ // 检查父组件是否是 cms-column 或包含 cms-column
58649
+ if (parent.$options.name === "cms-column" || parent.$data && parent.$data.data && parent.$data.data.cmsCompName === "cms-column") {
58650
+ columnDepth++;
58651
+ }
58652
+
58653
+ // 如果已经有一层 cms-column,则不允许再嵌套
58654
+ if (columnDepth >= 2) {
58655
+ console.log(`检测到 cms-column 嵌套层级: ${columnDepth}, 超出限制`);
58656
+ return false;
58657
+ }
58658
+ parent = parent.$parent;
58659
+ }
58660
+ console.log(`cms-column 嵌套层级检查通过: ${columnDepth}`);
58661
+ return true;
58662
+ },
58663
+ // 处理拖拽悬停
58664
+ dragover(e) {
58665
+ e.preventDefault();
58666
+ this.showAddCom = true;
58667
+ },
58668
+ // 处理拖拽放置
58669
+ drop(e) {
58670
+ e.preventDefault();
58671
+ const componentKey = e.dataTransfer.getData("componentKey");
58672
+ let temporaryId = "";
58673
+ this.temporaryList = e.dataTransfer.getData("temporaryList") ? JSON.parse(e.dataTransfer.getData("temporaryList")) : [];
58674
+ console.log("cms-colum-card-drop", componentKey, this.temporaryList);
58675
+ if (!componentKey) return;
58676
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
58677
+ const isTemporary = isTemporaryItem === "true";
58678
+ if (isTemporary) {
58679
+ temporaryId = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey).cmsCompName;
58680
+ }
58681
+ const componentType = isTemporary ? temporaryId : componentKey;
58682
+ // 特殊处理 cms-column:检查嵌套层级
58683
+ if (componentType === "cms-column") {
58684
+ if (!this.checkColumnNestingLevel()) {
58685
+ console.log("cms-column 嵌套层级超出限制");
58686
+ this.$message && this.$message.warning(`cms-column 只能嵌套一层`);
58687
+ this.showAddCom = false;
58688
+ return;
58689
+ }
58690
+ }
58691
+ this.addOneComp(e, componentKey);
58692
+ },
58693
+ // 添加组件到卡片容器
58694
+ addOneComp(e, componentKey) {
58695
+ this.showAddCom = false;
58696
+ console.log("drop to column-card", componentKey);
58697
+
58698
+ // 动态导入组件配置
58699
+ let initCompData;
58700
+ try {
58701
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
58702
+ const isTemporary = isTemporaryItem === "true";
58703
+ if (isTemporary) {
58704
+ initCompData = (0,standard_page/* getCopyTemplateCompConfig */.L7)(this.temporaryList, componentKey);
58705
+ } else {
58706
+ initCompData = __webpack_require__(1640)(`./${componentKey}`).default.settings(componentKey);
58707
+ }
58708
+ if (!isTemporary) {
58709
+ initCompData = {
58710
+ ...initCompData,
58711
+ styleConfig: {
58712
+ pc: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(16, 16, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")],
58713
+ mb: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(12, 12, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")]
58714
+ }
58715
+ };
58716
+ }
58717
+ } catch (error) {
58718
+ console.error(`无法加载组件 ${componentKey}:`, error);
58719
+ this.$message && this.$message.error(`组件加载失败`);
58720
+ return;
58721
+ }
58722
+ const toElementId = e.toElement.id;
58723
+ if (toElementId === `tabTarget${this.currentTab}` || toElementId.includes("tabTargetdown")) {
58724
+ // 添加到卡片容器末尾
58725
+ this.configList[this.currentTab].tabList.push(initCompData);
58726
+ } else if (toElementId.includes("tabTargetup")) {
58727
+ // 插入到指定位置
58728
+ const underComponentId = toElementId.split("-tabTargetup")[0];
58729
+ const index = this.configList[this.currentTab].tabList.findIndex(item => item.componentId === underComponentId);
58730
+ if (index !== -1) {
58731
+ this.configList[this.currentTab].tabList.splice(index, 0, initCompData);
58732
+ }
58733
+ }
58734
+
58735
+ // 触发数据更新
58736
+ this.$emit("update:data", this.data);
58737
+ if (componentKey === "cms-column") {
58738
+ this.$EventBus.$emit("handleNowComp", initCompData);
58739
+ }
58740
+ }
58741
+ }
58742
+ });
58743
+ ;// ./package/cms-tab/View.vue?vue&type=script&lang=js
58744
+ /* harmony default export */ var cms_tab_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
58745
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.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-tab/View.vue?vue&type=style&index=0&id=29a0258e&prod&lang=scss&scoped=true
58746
+ // extracted by mini-css-extract-plugin
58747
+
58748
+ ;// ./package/cms-tab/View.vue?vue&type=style&index=0&id=29a0258e&prod&lang=scss&scoped=true
58749
+
58750
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.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-tab/View.vue?vue&type=style&index=1&id=29a0258e&prod&lang=scss&scoped=true
58751
+ // extracted by mini-css-extract-plugin
58752
+
58753
+ ;// ./package/cms-tab/View.vue?vue&type=style&index=1&id=29a0258e&prod&lang=scss&scoped=true
58754
+
58755
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
58756
+ var componentNormalizer = __webpack_require__(1656);
58757
+ ;// ./package/cms-tab/View.vue
58758
+
58759
+
58760
+
58761
+ ;
58762
+
58763
+
58764
+
58765
+ /* normalize component */
58766
+
58767
+ var component = (0,componentNormalizer/* default */.A)(
58768
+ cms_tab_Viewvue_type_script_lang_js,
58769
+ render,
58770
+ staticRenderFns,
58771
+ false,
58772
+ null,
58773
+ "29a0258e",
58774
+ null
58775
+
58776
+ )
58777
+
58778
+ /* harmony default export */ var View = (component.exports);
58779
+
58780
+ /***/ }),
58781
+
58215
58782
  /***/ 9286:
58216
58783
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
58217
58784