cms-chenhj-ui 2.0.13 → 2.0.14

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.
@@ -8,9 +8,10 @@
8
8
  __webpack_require__.r(__webpack_exports__);
9
9
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
10
10
 
11
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 4467));
11
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 2048));
12
12
  const langData = {
13
13
  // 视频源设置
14
+ title: '',
14
15
  videoType: "direct",
15
16
  videoUrl: "",
16
17
  embedCode: "",
@@ -37,6 +38,11 @@ const langData = {
37
38
  };
38
39
  const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
39
40
  // 视频源设置配置
41
+ title: {
42
+ label: "视频标题",
43
+ widgetType: "el-input",
44
+ placeholder: "请输入视频标题"
45
+ },
40
46
  videoType: {
41
47
  label: "视频类型",
42
48
  widgetType: "el-radio-group",
@@ -569,7 +575,7 @@ var swiper = __webpack_require__(2791);
569
575
  // EXTERNAL MODULE: ./node_modules/swiper/dist/js/swiper.esm.bundle.js + 3 modules
570
576
  var swiper_esm_bundle = __webpack_require__(4418);
571
577
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
572
- var baseComp = __webpack_require__(537);
578
+ var baseComp = __webpack_require__(5298);
573
579
  ;// ./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-aLineThreeLeftOne/View.vue?vue&type=script&lang=js
574
580
 
575
581
 
@@ -866,7 +872,7 @@ const langData = {
866
872
  fontWeight: "normal",
867
873
  fontStyle: "normal",
868
874
  textDecoration: "none",
869
- fontFamily: "inherit",
875
+ fontFamily: "Microsoft YaHei",
870
876
  // 布局设置
871
877
  paddingTop: 0,
872
878
  paddingBottom: 0,
@@ -974,7 +980,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
974
980
  // 样式美化配置
975
981
  fontColor: {
976
982
  label: "字体颜色",
977
- widgetType: "el-color-picker"
983
+ widgetType: "el-color-picker",
984
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
978
985
  },
979
986
  fontWeight: {
980
987
  label: "字体粗细",
@@ -1045,35 +1052,21 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
1045
1052
  value: "overline"
1046
1053
  }]
1047
1054
  },
1048
- fontFamily: {
1049
- label: "字体族",
1050
- widgetType: "el-select",
1051
- options: [{
1052
- label: "默认",
1053
- value: "inherit"
1054
- }, {
1055
- label: "微软雅黑",
1056
- value: "Microsoft YaHei"
1057
- }, {
1058
- label: "宋体",
1059
- value: "SimSun"
1060
- }, {
1061
- label: "黑体",
1062
- value: "SimHei"
1063
- }, {
1064
- label: "楷体",
1065
- value: "KaiTi"
1066
- }, {
1067
- label: "Arial",
1068
- value: "Arial"
1069
- }, {
1070
- label: "Times New Roman",
1071
- value: "Times New Roman"
1072
- }, {
1073
- label: "Helvetica",
1074
- value: "Helvetica"
1075
- }]
1076
- },
1055
+ // fontFamily: {
1056
+ // label: "字体族",
1057
+ // widgetType: "el-select",
1058
+ // options: [
1059
+ // { label: "默认", value: "inherit" },
1060
+ // { label: "微软雅黑", value: "Microsoft YaHei" },
1061
+ // { label: "宋体", value: "SimSun" },
1062
+ // { label: "黑体", value: "SimHei" },
1063
+ // { label: "楷体", value: "KaiTi" },
1064
+ // { label: "Arial", value: "Arial" },
1065
+ // { label: "Times New Roman", value: "Times New Roman" },
1066
+ // { label: "Helvetica", value: "Helvetica" },
1067
+ // ],
1068
+ // },
1069
+
1077
1070
  // 布局设置配置
1078
1071
  paddingTop: {
1079
1072
  label: "上内边距(px)",
@@ -1133,7 +1126,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
1133
1126
  },
1134
1127
  backgroundColor: {
1135
1128
  label: "背景颜色",
1136
- widgetType: "el-color-picker"
1129
+ widgetType: "el-color-picker",
1130
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
1137
1131
  },
1138
1132
  // 视觉效果配置
1139
1133
  borderWidth: {
@@ -1162,7 +1156,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
1162
1156
  },
1163
1157
  borderColor: {
1164
1158
  label: "边框颜色",
1165
- widgetType: "el-color-picker"
1159
+ widgetType: "el-color-picker",
1160
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
1166
1161
  },
1167
1162
  borderRadius: {
1168
1163
  label: "圆角(px)",
@@ -1193,15 +1188,16 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
1193
1188
  label: "新窗口",
1194
1189
  value: "_blank"
1195
1190
  }]
1196
- },
1197
- showLinkIcon: {
1198
- label: "显示链接图标",
1199
- widgetType: "el-switch"
1200
- },
1201
- hoverEffect: {
1202
- label: "悬停效果",
1203
- widgetType: "el-switch"
1204
- },
1191
+ }
1192
+ // showLinkIcon: {
1193
+ // label: "显示链接图标",
1194
+ // widgetType: "el-switch",
1195
+ // },
1196
+ // hoverEffect: {
1197
+ // label: "链接悬停效果",
1198
+ // widgetType: "el-switch",
1199
+ // },
1200
+
1205
1201
  // 高级配置
1206
1202
  // customClass: {
1207
1203
  // label: "自定义CSS类",
@@ -1214,41 +1210,30 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
1214
1210
  // type: "textarea",
1215
1211
  // placeholder: "请输入CSS样式,如: color: red; font-size: 18px;",
1216
1212
  // },
1217
- enableAnimation: {
1218
- label: "启用动画",
1219
- widgetType: "el-switch"
1220
- },
1221
- animationType: {
1222
- label: "动画类型",
1223
- widgetType: "el-select",
1224
- options: [{
1225
- label: "淡入",
1226
- value: "fadeIn"
1227
- }, {
1228
- label: "从左滑入",
1229
- value: "slideInLeft"
1230
- }, {
1231
- label: "从右滑入",
1232
- value: "slideInRight"
1233
- }, {
1234
- label: "从上滑入",
1235
- value: "slideInDown"
1236
- }, {
1237
- label: "从下滑入",
1238
- value: "slideInUp"
1239
- }, {
1240
- label: "缩放进入",
1241
- value: "zoomIn"
1242
- }]
1243
- },
1244
- animationDuration: {
1245
- label: "动画时长(ms)",
1246
- widgetType: "el-input-number",
1247
- size: "small",
1248
- min: 100,
1249
- max: 2000,
1250
- step: 100
1251
- }
1213
+ // enableAnimation: {
1214
+ // label: "启用动画",
1215
+ // widgetType: "el-switch",
1216
+ // },
1217
+ // animationType: {
1218
+ // label: "动画类型",
1219
+ // widgetType: "el-select",
1220
+ // options: [
1221
+ // { label: "淡入", value: "fadeIn" },
1222
+ // { label: "从左滑入", value: "slideInLeft" },
1223
+ // { label: "从右滑入", value: "slideInRight" },
1224
+ // { label: "从上滑入", value: "slideInDown" },
1225
+ // { label: "从下滑入", value: "slideInUp" },
1226
+ // { label: "缩放进入", value: "zoomIn" },
1227
+ // ],
1228
+ // },
1229
+ // animationDuration: {
1230
+ // label: "动画时长(ms)",
1231
+ // widgetType: "el-input-number",
1232
+ // size: "small",
1233
+ // min: 100,
1234
+ // max: 2000,
1235
+ // step: 100,
1236
+ // },
1252
1237
  });
1253
1238
  const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
1254
1239
  /* harmony default export */ __webpack_exports__["default"] = ({
@@ -1297,6 +1282,513 @@ module.exports = Math.pow;
1297
1282
  module.exports = {};
1298
1283
 
1299
1284
 
1285
+ /***/ }),
1286
+
1287
+ /***/ 470:
1288
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1289
+
1290
+ "use strict";
1291
+ // ESM COMPAT FLAG
1292
+ __webpack_require__.r(__webpack_exports__);
1293
+
1294
+ // EXPORTS
1295
+ __webpack_require__.d(__webpack_exports__, {
1296
+ "default": function() { return /* binding */ View; }
1297
+ });
1298
+
1299
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
1300
+ var es_iterator_constructor = __webpack_require__(8111);
1301
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js
1302
+ var es_iterator_drop = __webpack_require__(9314);
1303
+ ;// ./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=28effaca&scoped=true
1304
+
1305
+
1306
+
1307
+
1308
+ var render = function render() {
1309
+ var _vm = this,
1310
+ _c = _vm._self._c;
1311
+ return _c('BaseComp', _vm._b({
1312
+ attrs: {
1313
+ "data": _vm.data,
1314
+ "nowCompId": _vm.nowCompId,
1315
+ "isOpcacity": _vm.isOpcacity,
1316
+ "isMask": false,
1317
+ "lang": _vm.lang,
1318
+ "showDel": false
1319
+ },
1320
+ on: {
1321
+ "getConfigData": _vm.getConfigData
1322
+ }
1323
+ }, 'BaseComp', _vm.$attrs, false), [_vm.isConfigPage ? _c('div', {
1324
+ staticClass: "main_drag hoverBorderClass",
1325
+ style: _vm.cardContainerStyle,
1326
+ attrs: {
1327
+ "id": `cardTarget${_vm.data.componentId}`
1328
+ },
1329
+ on: {
1330
+ "dragover": _vm.dragover,
1331
+ "dragend": function ($event) {
1332
+ _vm.showAddCom = false;
1333
+ },
1334
+ "drop": _vm.drop
1335
+ }
1336
+ }, [_c('Draggable', {
1337
+ staticStyle: {
1338
+ "position": "relative"
1339
+ },
1340
+ attrs: {
1341
+ "group": _vm.groupConfigForMain,
1342
+ "chosen-class": "chosen",
1343
+ "force-fallback": "true",
1344
+ "animation": "1000",
1345
+ "move": _vm.onMove
1346
+ },
1347
+ on: {
1348
+ "start": _vm.onStart,
1349
+ "end": function ($event) {
1350
+ _vm.showAddCom = false;
1351
+ }
1352
+ },
1353
+ model: {
1354
+ value: _vm.data.childList,
1355
+ callback: function ($$v) {
1356
+ _vm.$set(_vm.data, "childList", $$v);
1357
+ },
1358
+ expression: "data.childList"
1359
+ }
1360
+ }, [_vm._l(_vm.data.childList, function (item, index) {
1361
+ return _c('div', {
1362
+ key: item.componentId,
1363
+ staticStyle: {
1364
+ "position": "relative"
1365
+ }
1366
+ }, [_vm.showAddCom ? _c('div', {
1367
+ staticClass: "up_insert",
1368
+ attrs: {
1369
+ "id": `${item.componentId}-cardTargetup`
1370
+ }
1371
+ }, [_c('i', {
1372
+ staticClass: "icon-up",
1373
+ attrs: {
1374
+ "id": `${item.componentId}-upi`
1375
+ }
1376
+ }), _c('span', {
1377
+ attrs: {
1378
+ "id": `${item.componentId}-upspan`
1379
+ }
1380
+ }, [_vm._v("插入组件")])]) : _vm._e(), _c(item.cmsCompName, {
1381
+ tag: "component",
1382
+ style: {
1383
+ marginTop: _vm.showAddCom && index == 0 ? '20px' : '0px'
1384
+ },
1385
+ attrs: {
1386
+ "data": item,
1387
+ "lang": _vm.lang,
1388
+ "isOpcacity": _vm.isOpcacity,
1389
+ "nowCompId": _vm.nowCompId
1390
+ }
1391
+ })], 1);
1392
+ }), _vm.showAddCom ? _c('div', {
1393
+ staticClass: "up_insert insert_bottom",
1394
+ style: {
1395
+ bottom: _vm.data.childList.length ? '0px' : '-24px'
1396
+ },
1397
+ attrs: {
1398
+ "id": `-cardTargetdown`
1399
+ }
1400
+ }, [_c('i', {
1401
+ staticClass: "icon-up"
1402
+ }), _c('span', [_vm._v("插入组件")])]) : _vm._e()], 2)], 1) : _c('cms-view', _vm._b({
1403
+ style: _vm.cardContainerStyle,
1404
+ attrs: {
1405
+ "data": _vm.data.childList,
1406
+ "lang": _vm.lang,
1407
+ "isOpcacity": false
1408
+ }
1409
+ }, 'cms-view', _vm.$attrs, false))], 1);
1410
+ };
1411
+ var staticRenderFns = [];
1412
+
1413
+ ;// ./package/cms-column-card/View.vue?vue&type=template&id=28effaca&scoped=true
1414
+
1415
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
1416
+ var es_array_push = __webpack_require__(4114);
1417
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
1418
+ var baseComp = __webpack_require__(5298);
1419
+ // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
1420
+ var vuedraggable_umd = __webpack_require__(1527);
1421
+ var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);
1422
+ // EXTERNAL MODULE: ./package/baseConfig.js
1423
+ var baseConfig = __webpack_require__(649);
1424
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js
1425
+ var es_iterator_find = __webpack_require__(116);
1426
+ // EXTERNAL MODULE: ./src/utils/index.js
1427
+ var utils = __webpack_require__(1996);
1428
+ ;// ./src/views/standard_page.js
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+ const standard_page_list = [{
1435
+ id: 1,
1436
+ componentId: 1,
1437
+ componentName: "范本1-防诈骗提示",
1438
+ standList: ["cms-banner", "cms-titleCenter", "cms-lineThree"]
1439
+ }, {
1440
+ id: 2,
1441
+ componentId: 2,
1442
+ componentName: "范本2-员工优惠",
1443
+ standList: ["cms-banner", "cms-description", "cms-activityCountdown", "cms-titleLeft", "cms-proCard", "cms-termsAndConditions"]
1444
+ }];
1445
+ const getComponentKey = (compList, id, noCompId = false) => {
1446
+ if (noCompId) return id;
1447
+ let compConfig = compList.find(item => item.id == id);
1448
+ if (compConfig.type == "1") {
1449
+ return compConfig.componentId;
1450
+ }
1451
+ return "cms-dynamic-comp";
1452
+ };
1453
+ const getCopyTemplateCompConfig = (compList, componentKey) => {
1454
+ let otherConfig = {};
1455
+ const configureJson = compList.find(item => item.id == componentKey).configureJson;
1456
+ if (configureJson.wujieConfig) {
1457
+ //如果是第三方组件加一个临时标识
1458
+ otherConfig = {
1459
+ originalComponentId: configureJson.componentId,
1460
+ originalVersionId: configureJson.wujieConfig.versionId,
1461
+ operation: "copyTemplate"
1462
+ };
1463
+ }
1464
+ return {
1465
+ ...configureJson,
1466
+ componentId: (0,utils/* getUuidCode */.J0)(32),
1467
+ ...otherConfig
1468
+ };
1469
+ };
1470
+ const isStaticComp = componentKey => {
1471
+ return ["cms-header", "cms-footer", "cms-breadCrumb"].includes(componentKey);
1472
+ };
1473
+ const getWujieCompInfo = (compList, componentId, isTemplate) => {
1474
+ let compConfig = compList.find(item => item.id == componentId);
1475
+ if (isTemplate) if (compConfig.type == "1") {
1476
+ return compConfig;
1477
+ }
1478
+ return {
1479
+ ...compConfig
1480
+ };
1481
+ };
1482
+ ;// ./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
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
1490
+ name: "cms-column-card",
1491
+ components: {
1492
+ BaseComp: baseComp["default"],
1493
+ Draggable: (vuedraggable_umd_default())
1494
+ },
1495
+ props: {
1496
+ data: {
1497
+ type: Object,
1498
+ default: () => {
1499
+ return {};
1500
+ }
1501
+ },
1502
+ nowCompId: {
1503
+ type: [String, Number],
1504
+ default: ""
1505
+ },
1506
+ isOpcacity: {
1507
+ type: Boolean,
1508
+ default: true
1509
+ },
1510
+ lang: {
1511
+ type: String,
1512
+ default: "zh-HK"
1513
+ }
1514
+ },
1515
+ data() {
1516
+ return {
1517
+ configData: {},
1518
+ messFold: true,
1519
+ showAddCom: false,
1520
+ temporaryList: []
1521
+ };
1522
+ },
1523
+ computed: {
1524
+ isConfigPage() {
1525
+ return this.$EventBus && this.isOpcacity;
1526
+ },
1527
+ groupConfigForMain() {
1528
+ return {
1529
+ name: "task",
1530
+ pull: true,
1531
+ // A列表的元素可以被拖出
1532
+ put: (to, from, dragEl) => {
1533
+ console.log(from.el.classList);
1534
+ if (from.el.classList.contains("main_drag")) {
1535
+ const dataId = this.findFirstComponentKey(dragEl);
1536
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column"];
1537
+ console.log("allowedComponents", dataId);
1538
+ if (dataId === "cms-column") {
1539
+ if (!this.checkColumnNestingLevel()) {
1540
+ console.log("cms-column 嵌套层级超出限制");
1541
+ return false;
1542
+ }
1543
+ }
1544
+ return allowedComponents.includes(dataId);
1545
+ }
1546
+ return true;
1547
+ }
1548
+ };
1549
+ },
1550
+ // 卡片容器样式
1551
+ cardContainerStyle() {
1552
+ return {
1553
+ backgroundImage: this.configData.backgroundImage ? `url('${this.configData.backgroundImage}')` : "none",
1554
+ backgroundSize: "cover",
1555
+ backgroundRepeat: "no-repeat",
1556
+ backgroundPosition: "center center",
1557
+ height: this.getContainerHeight(),
1558
+ border: this.getContainerBorder(),
1559
+ borderRadius: this.getContainerBorderRadius(),
1560
+ backgroundColor: this.configData.backgroundColor || "transparent",
1561
+ boxShadow: this.configData.boxShadow || "none"
1562
+ };
1563
+ }
1564
+ },
1565
+ mounted() {
1566
+ if (this.$EventBus) {
1567
+ this.$EventBus.$on("handleDragEnd", () => {
1568
+ this.showAddCom = false;
1569
+ });
1570
+ }
1571
+ },
1572
+ watch: {},
1573
+ methods: {
1574
+ findFirstComponentKey(root) {
1575
+ var _root$querySelector;
1576
+ if (!root) return null;
1577
+
1578
+ // 若起点自身就有
1579
+ if (root.nodeType === 1 && root.hasAttribute("component-key")) {
1580
+ return root.getAttribute("component-key");
1581
+ }
1582
+
1583
+ // 向下查找第一个匹配的后代
1584
+ const el = (_root$querySelector = root.querySelector) === null || _root$querySelector === void 0 ? void 0 : _root$querySelector.call(root, "[component-key]");
1585
+ return el ? el.getAttribute("component-key") : null;
1586
+ },
1587
+ // 获取容器高度
1588
+ getContainerHeight() {
1589
+ if (this.configData.heightType === "fixed") {
1590
+ return `${this.configData.fixedHeight}px`;
1591
+ }
1592
+ return this.isOpcacity ? "100%" : "auto";
1593
+ },
1594
+ // 获取容器边框
1595
+ getContainerBorder() {
1596
+ if (this.configData.borderWidth) {
1597
+ return `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}`;
1598
+ }
1599
+ return "none";
1600
+ },
1601
+ // 获取容器圆角
1602
+ getContainerBorderRadius() {
1603
+ if (this.configData.borderRadius) {
1604
+ return `${this.configData.borderRadius}px`;
1605
+ }
1606
+ return "0";
1607
+ },
1608
+ getConfigData(configData) {
1609
+ this.configData = configData;
1610
+ },
1611
+ foldMessText() {
1612
+ this.messFold = !this.messFold;
1613
+ },
1614
+ decodeJumpUrl(url) {
1615
+ if (!url) return;
1616
+ top.location.href = url;
1617
+ },
1618
+ onStart(evt) {
1619
+ console.log("drag start in column-card", evt);
1620
+ this.showAddCom = true;
1621
+ },
1622
+ // 限制拖拽的组件类型
1623
+ onMove(evt) {
1624
+ const {
1625
+ draggedContext
1626
+ } = evt;
1627
+
1628
+ // 允许的组件类型
1629
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
1630
+ ];
1631
+
1632
+ // 如果是从外部拖入的组件
1633
+ if (draggedContext && draggedContext.element) {
1634
+ const componentType = draggedContext.element.cmsCompName;
1635
+ if (componentType && !allowedComponents.includes(componentType)) {
1636
+ console.log("draggedContext.element", draggedContext.element);
1637
+ console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
1638
+ return false;
1639
+ }
1640
+
1641
+ // 特殊处理 cms-column:检查嵌套层级
1642
+ if (componentType === "cms-column") {
1643
+ if (!this.checkColumnNestingLevel()) {
1644
+ console.log("cms-column 嵌套层级超出限制");
1645
+ return false;
1646
+ }
1647
+ }
1648
+ }
1649
+ return true;
1650
+ },
1651
+ // 检查 cms-column 嵌套层级
1652
+ checkColumnNestingLevel() {
1653
+ // 检查当前 column-card 是否已经在 cms-column 内部
1654
+ let parent = this.$parent;
1655
+ let columnDepth = 0;
1656
+ while (parent) {
1657
+ // 检查父组件是否是 cms-column 或包含 cms-column
1658
+ if (parent.$options.name === "cms-column" || parent.$data && parent.$data.data && parent.$data.data.cmsCompName === "cms-column") {
1659
+ columnDepth++;
1660
+ }
1661
+
1662
+ // 如果已经有一层 cms-column,则不允许再嵌套
1663
+ if (columnDepth >= 2) {
1664
+ console.log(`检测到 cms-column 嵌套层级: ${columnDepth}, 超出限制`);
1665
+ return false;
1666
+ }
1667
+ parent = parent.$parent;
1668
+ }
1669
+ console.log(`cms-column 嵌套层级检查通过: ${columnDepth}`);
1670
+ return true;
1671
+ },
1672
+ // 处理拖拽悬停
1673
+ dragover(e) {
1674
+ e.preventDefault();
1675
+ this.showAddCom = true;
1676
+ },
1677
+ // 处理拖拽放置
1678
+ drop(e) {
1679
+ e.preventDefault();
1680
+ const componentKey = e.dataTransfer.getData("componentKey");
1681
+ let temporaryId = "";
1682
+ this.temporaryList = e.dataTransfer.getData("temporaryList") ? JSON.parse(e.dataTransfer.getData("temporaryList")) : [];
1683
+ console.log("cms-colum-card-drop", componentKey, this.temporaryList);
1684
+ if (!componentKey) return;
1685
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
1686
+ const isTemporary = isTemporaryItem === "true";
1687
+ if (isTemporary) {
1688
+ temporaryId = getCopyTemplateCompConfig(this.temporaryList, componentKey).cmsCompName;
1689
+ }
1690
+ const componentType = isTemporary ? temporaryId : componentKey;
1691
+ // 允许的组件类型
1692
+ const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
1693
+ ];
1694
+
1695
+ // 检查组件类型是否允许
1696
+ if (!allowedComponents.includes(componentType)) {
1697
+ console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
1698
+ this.$message && this.$message.warning(`该组件类型不支持拖入卡片容器`);
1699
+ this.showAddCom = false;
1700
+ return;
1701
+ }
1702
+
1703
+ // 特殊处理 cms-column:检查嵌套层级
1704
+ if (componentType === "cms-column") {
1705
+ if (!this.checkColumnNestingLevel()) {
1706
+ console.log("cms-column 嵌套层级超出限制");
1707
+ this.$message && this.$message.warning(`cms-column 只能嵌套一层`);
1708
+ this.showAddCom = false;
1709
+ return;
1710
+ }
1711
+ }
1712
+ this.addOneComp(e, componentKey);
1713
+ },
1714
+ // 添加组件到卡片容器
1715
+ addOneComp(e, componentKey) {
1716
+ this.showAddCom = false;
1717
+ console.log("drop to column-card", componentKey);
1718
+
1719
+ // 动态导入组件配置
1720
+ let initCompData;
1721
+ try {
1722
+ const isTemporaryItem = e.dataTransfer.getData("isTemporaryItem");
1723
+ if (isTemporaryItem === "true") {
1724
+ initCompData = getCopyTemplateCompConfig(this.temporaryList, componentKey);
1725
+ } else {
1726
+ initCompData = __webpack_require__(1640)(`./${componentKey}`).default.settings(componentKey);
1727
+ }
1728
+ initCompData = {
1729
+ ...initCompData,
1730
+ styleConfig: {
1731
+ pc: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(16, 16, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")],
1732
+ mb: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(12, 12, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")]
1733
+ }
1734
+ };
1735
+ } catch (error) {
1736
+ console.error(`无法加载组件 ${componentKey}:`, error);
1737
+ this.$message && this.$message.error(`组件加载失败`);
1738
+ return;
1739
+ }
1740
+ const toElementId = e.toElement.id;
1741
+ if (toElementId === `cardTarget${this.data.componentId}` || toElementId.includes("cardTargetdown")) {
1742
+ // 添加到卡片容器末尾
1743
+ this.data.childList.push(initCompData);
1744
+ } else if (toElementId.includes("cardTargetup")) {
1745
+ // 插入到指定位置
1746
+ const underComponentId = toElementId.split("-cardTargetup")[0];
1747
+ const index = this.data.childList.findIndex(item => item.componentId === underComponentId);
1748
+ if (index !== -1) {
1749
+ this.data.childList.splice(index, 0, initCompData);
1750
+ }
1751
+ }
1752
+
1753
+ // 触发数据更新
1754
+ this.$emit("update:data", this.data);
1755
+ if (componentKey === "cms-column") {
1756
+ this.$EventBus.$emit("handleNowComp", initCompData);
1757
+ }
1758
+ }
1759
+ }
1760
+ });
1761
+ ;// ./package/cms-column-card/View.vue?vue&type=script&lang=js
1762
+ /* harmony default export */ var cms_column_card_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
1763
+ ;// ./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=28effaca&prod&lang=scss&scoped=true
1764
+ // extracted by mini-css-extract-plugin
1765
+
1766
+ ;// ./package/cms-column-card/View.vue?vue&type=style&index=0&id=28effaca&prod&lang=scss&scoped=true
1767
+
1768
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
1769
+ var componentNormalizer = __webpack_require__(1656);
1770
+ ;// ./package/cms-column-card/View.vue
1771
+
1772
+
1773
+
1774
+ ;
1775
+
1776
+
1777
+ /* normalize component */
1778
+
1779
+ var component = (0,componentNormalizer/* default */.A)(
1780
+ cms_column_card_Viewvue_type_script_lang_js,
1781
+ render,
1782
+ staticRenderFns,
1783
+ false,
1784
+ null,
1785
+ "28effaca",
1786
+ null
1787
+
1788
+ )
1789
+
1790
+ /* harmony default export */ var View = (component.exports);
1791
+
1300
1792
  /***/ }),
1301
1793
 
1302
1794
  /***/ 492:
@@ -1351,269 +1843,6 @@ module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {
1351
1843
  };
1352
1844
 
1353
1845
 
1354
- /***/ }),
1355
-
1356
- /***/ 537:
1357
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1358
-
1359
- "use strict";
1360
- // ESM COMPAT FLAG
1361
- __webpack_require__.r(__webpack_exports__);
1362
-
1363
- // EXPORTS
1364
- __webpack_require__.d(__webpack_exports__, {
1365
- "default": function() { return /* binding */ baseComp; }
1366
- });
1367
-
1368
- ;// ./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/baseComp.vue?vue&type=template&id=9d54e5e0&scoped=true
1369
- var render = function render() {
1370
- var _vm = this,
1371
- _c = _vm._self._c;
1372
- return _vm.$EventBus && _vm.isOpcacity ? _c('div', {
1373
- key: _vm.data.componentId,
1374
- class: [_vm.nowCompId !== '' && _vm.nowCompId == _vm.data.componentId ? 'highLight' : ''],
1375
- style: _vm.showStyleConfig,
1376
- on: {
1377
- "click": function ($event) {
1378
- $event.stopPropagation();
1379
- return _vm.handleNowComp.apply(null, arguments);
1380
- }
1381
- }
1382
- }, [_c('div', {
1383
- staticClass: "mask-wrap"
1384
- }, [_vm._t("default", null, {
1385
- "isMobile": _vm.isMobile
1386
- }), _vm.isMask ? _c('div', {
1387
- staticClass: "mask",
1388
- on: {
1389
- "click": _vm.handleNowComp
1390
- }
1391
- }) : _vm._e()], 2), _vm.nowCompId !== '' && _vm.nowCompId == _vm.data.componentId ? _c('div', {
1392
- staticClass: "com-delete"
1393
- }, [_vm.showDel ? _c('i', {
1394
- staticClass: "el-icon-delete",
1395
- on: {
1396
- "click": function ($event) {
1397
- $event.stopPropagation();
1398
- return _vm.delComp.apply(null, arguments);
1399
- }
1400
- }
1401
- }) : _vm._e(), _c('i', {
1402
- staticClass: "el-icon-top",
1403
- on: {
1404
- "click": function ($event) {
1405
- $event.stopPropagation();
1406
- return _vm.selectParentDom.apply(null, arguments);
1407
- }
1408
- }
1409
- })]) : _vm._e()]) : _vm.showSlot ? _c('div', {
1410
- key: _vm.data.componentId,
1411
- ref: "targetElement",
1412
- style: _vm.showStyleConfig
1413
- }, [_vm._t("default")], 2) : _vm._e();
1414
- };
1415
- var staticRenderFns = [];
1416
-
1417
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
1418
- var es_iterator_constructor = __webpack_require__(8111);
1419
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.reduce.js
1420
- var es_iterator_reduce = __webpack_require__(8237);
1421
- // EXTERNAL MODULE: ./package/patch.js
1422
- var patch = __webpack_require__(1618);
1423
- // EXTERNAL MODULE: ./node_modules/dayjs/dayjs.min.js
1424
- var dayjs_min = __webpack_require__(1576);
1425
- var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
1426
- ;// ./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/baseComp.vue?vue&type=script&lang=js
1427
-
1428
-
1429
-
1430
-
1431
- // 待办:判断移动pc端填充不同的样式
1432
-
1433
-
1434
- /* harmony default export */ var baseCompvue_type_script_lang_js = ({
1435
- name: "baseComp",
1436
- props: {
1437
- data: {
1438
- type: Object,
1439
- default: () => {
1440
- return {};
1441
- }
1442
- },
1443
- nowCompId: {
1444
- type: [String, Number],
1445
- default: ""
1446
- },
1447
- isOpcacity: {
1448
- type: Boolean,
1449
- default: true
1450
- },
1451
- isMask: {
1452
- type: Boolean,
1453
- default: true
1454
- },
1455
- lang: {
1456
- type: String,
1457
- default: "zh-HK"
1458
- },
1459
- timeline: {
1460
- type: String,
1461
- default: ""
1462
- },
1463
- cmhkChannel: {
1464
- type: String,
1465
- default: "WWW"
1466
- },
1467
- showDel: {
1468
- type: Boolean,
1469
- default: true
1470
- }
1471
- },
1472
- data() {
1473
- return {
1474
- styleConfig_mb: {},
1475
- styleConfig_pc: {},
1476
- configData: {},
1477
- elementWidth: 0,
1478
- resizeObserver: null
1479
- };
1480
- },
1481
- watch: {
1482
- data: {
1483
- handler(val) {
1484
- this.getStyleConfig(val, "pc");
1485
- this.getStyleConfig(val, "mb");
1486
- this.getValue(this.lang);
1487
- },
1488
- deep: true,
1489
- immediate: true
1490
- },
1491
- lang: {
1492
- handler(val) {
1493
- this.getValue(val);
1494
- },
1495
- deep: true,
1496
- immediate: true
1497
- }
1498
- },
1499
- mounted() {
1500
- if (this.$EventBus && this.isOpcacity) {
1501
- this.elementWidth = 800;
1502
- this.$EventBus.$on("handleDeviceChange", isMobile => {
1503
- this.elementWidth = isMobile ? 700 : 800;
1504
- });
1505
- } else if (this.showSlot) {
1506
- this.resizeObserver = new ResizeObserver(entries => {
1507
- for (let entry of entries) {
1508
- this.elementWidth = entry.contentRect.width;
1509
- // 可以在这里触发自定义逻辑
1510
- // this.onWidthChange(this.elementWidth);
1511
- }
1512
- });
1513
- const element = document.getElementById("app") || document.getElementById("__nuxt");
1514
- this.resizeObserver.observe(element);
1515
- }
1516
- },
1517
- beforeDestroy() {
1518
- // 组件销毁时停止观察
1519
- if (this.resizeObserver) {
1520
- this.resizeObserver.disconnect();
1521
- }
1522
- },
1523
- methods: {
1524
- selectParentDom() {
1525
- if (!this.isOpcacity) return;
1526
- this.$EventBus.$emit("handleParentComp", this.data);
1527
- },
1528
- onWidthChange(newWidth) {
1529
- console.log("新宽度:", newWidth, this.isMobile);
1530
- },
1531
- getValue(cur_lang) {
1532
- var _this$data, _this$data$settings;
1533
- const obj = {
1534
- "zh-CN": "lang_sc",
1535
- "zh-HK": "lang_tc",
1536
- "en-US": "lang_en"
1537
- };
1538
- if ((_this$data = this.data) !== null && _this$data !== void 0 && (_this$data$settings = _this$data.settings) !== null && _this$data$settings !== void 0 && _this$data$settings.settings) {
1539
- const baseInfo = (0,patch.transfor)(this.data);
1540
- this.configData = baseInfo.contentConfig.lang_all ? baseInfo.contentConfig.lang_all : baseInfo.contentConfig[`${obj[cur_lang]}`];
1541
- } else {
1542
- this.configData = this.data.contentConfig.lang_all ? this.data.contentConfig.lang_all : this.data.contentConfig[`${obj[cur_lang]}`];
1543
- }
1544
- this.$emit("getConfigData", this.configData);
1545
- },
1546
- getStyleConfig(data, type) {
1547
- this[`styleConfig_${type}`] = data.styleConfig[type].reduce((pre, cur) => {
1548
- pre[cur.key] = cur.value + cur.unit;
1549
- return pre;
1550
- }, {});
1551
- },
1552
- handleNowComp() {
1553
- if (!this.isOpcacity) return;
1554
- this.$EventBus.$emit("handleNowComp", this.data);
1555
- },
1556
- delComp() {
1557
- this.$EventBus.$emit("handleDeleteComp", this.data.componentId);
1558
- }
1559
- },
1560
- computed: {
1561
- showStyleConfig() {
1562
- if (!this.elementWidth) return {};
1563
- return this.isMobile ? this.styleConfig_mb : this.styleConfig_pc;
1564
- },
1565
- isMobile() {
1566
- return this.elementWidth < 760;
1567
- },
1568
- showSlot() {
1569
- if (this.$EventBus && this.isOpcacity) return false;
1570
- const {
1571
- cmhkChannelConfList = [],
1572
- startTime = "",
1573
- endTime = ""
1574
- } = this.data.baseConfig;
1575
- console.log("this.cmhkChannel", this.cmhkChannel, this.data.baseConfig);
1576
- const channelVisable = cmhkChannelConfList.includes("ALL") || cmhkChannelConfList.includes(this.cmhkChannel);
1577
- if (!channelVisable) return false;
1578
- if (!startTime && !endTime) return true;
1579
- const currentTime = this.timeline ? dayjs_min_default()(this.timeline) : dayjs_min_default()();
1580
- const isStart = startTime ? dayjs_min_default()(currentTime).isAfter(dayjs_min_default()(startTime)) || dayjs_min_default()(currentTime).isSame(dayjs_min_default()(startTime)) : true;
1581
- const isEnd = endTime ? dayjs_min_default()(currentTime).isBefore(dayjs_min_default()(endTime)) || dayjs_min_default()(currentTime).isSame(dayjs_min_default()(endTime)) : true;
1582
- return isStart && isEnd;
1583
- }
1584
- }
1585
- });
1586
- ;// ./package/baseComp.vue?vue&type=script&lang=js
1587
- /* harmony default export */ var package_baseCompvue_type_script_lang_js = (baseCompvue_type_script_lang_js);
1588
- ;// ./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/baseComp.vue?vue&type=style&index=0&id=9d54e5e0&prod&lang=scss&scoped=true
1589
- // extracted by mini-css-extract-plugin
1590
-
1591
- ;// ./package/baseComp.vue?vue&type=style&index=0&id=9d54e5e0&prod&lang=scss&scoped=true
1592
-
1593
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
1594
- var componentNormalizer = __webpack_require__(1656);
1595
- ;// ./package/baseComp.vue
1596
-
1597
-
1598
-
1599
- ;
1600
-
1601
-
1602
- /* normalize component */
1603
-
1604
- var component = (0,componentNormalizer/* default */.A)(
1605
- package_baseCompvue_type_script_lang_js,
1606
- render,
1607
- staticRenderFns,
1608
- false,
1609
- null,
1610
- "9d54e5e0",
1611
- null
1612
-
1613
- )
1614
-
1615
- /* harmony default export */ var baseComp = (component.exports);
1616
-
1617
1846
  /***/ }),
1618
1847
 
1619
1848
  /***/ 615:
@@ -1686,6 +1915,64 @@ module.exports = !fails(function () {
1686
1915
  });
1687
1916
 
1688
1917
 
1918
+ /***/ }),
1919
+
1920
+ /***/ 622:
1921
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1922
+
1923
+ "use strict";
1924
+ __webpack_require__.r(__webpack_exports__);
1925
+ /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
1926
+
1927
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 8216));
1928
+ const langData = {
1929
+ colNums: 1,
1930
+ defaultCol: 12,
1931
+ gap: 10
1932
+ };
1933
+ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
1934
+ // 布局配置
1935
+ colNums: {
1936
+ label: "视频样式",
1937
+ widgetType: "el-radio-group",
1938
+ options: [{
1939
+ label: "一行一个",
1940
+ value: 1
1941
+ }, {
1942
+ label: "一行两个",
1943
+ value: 2
1944
+ }, {
1945
+ label: "一行三个",
1946
+ value: 3
1947
+ }],
1948
+ isCol: true
1949
+ },
1950
+ defaultCol: {
1951
+ label: "默认展示(行)",
1952
+ widgetType: "el-input-number",
1953
+ size: "small",
1954
+ min: 1,
1955
+ max: 12,
1956
+ step: 1,
1957
+ isCol: true,
1958
+ unit: "行"
1959
+ }
1960
+ });
1961
+ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
1962
+ /* harmony default export */ __webpack_exports__["default"] = ({
1963
+ View,
1964
+ validateSchema,
1965
+ configDataType,
1966
+ langData,
1967
+ settings: cmsCompName => {
1968
+ return (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getInitCompData)({
1969
+ cmsCompName,
1970
+ langData,
1971
+ isLangAll: true
1972
+ });
1973
+ }
1974
+ });
1975
+
1689
1976
  /***/ }),
1690
1977
 
1691
1978
  /***/ 649:
@@ -3621,7 +3908,7 @@ var es_iterator_filter = __webpack_require__(2489);
3621
3908
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
3622
3909
  var es_iterator_for_each = __webpack_require__(7588);
3623
3910
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
3624
- var baseComp = __webpack_require__(537);
3911
+ var baseComp = __webpack_require__(5298);
3625
3912
  ;// ./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-text/View.vue?vue&type=script&lang=js
3626
3913
 
3627
3914
 
@@ -9111,7 +9398,7 @@ service.interceptors.request.use(config => {
9111
9398
  if (config.url.includes("/ecosp-console")) {
9112
9399
  document.cookie = "JSESSIONID=node017nm2falxdfe8c1parzfv9ilr29.node0";
9113
9400
  } else if (config.url.includes("omni-channel-service-console")) {
9114
- document.cookie = "JSESSIONID=78E8137DAEC4660E6E4A6310CAB2B300";
9401
+ document.cookie = "JSESSIONID=CA4058E3A195113C85AE1F926814CF89";
9115
9402
  }
9116
9403
  } else {
9117
9404
  if (config.url.includes("/api/") && is_cmsComp) {
@@ -9723,8 +10010,8 @@ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSc
9723
10010
 
9724
10011
  var map = {
9725
10012
  "./": 176,
9726
- "./baseComp": 537,
9727
- "./baseComp.vue": 537,
10013
+ "./baseComp": 5298,
10014
+ "./baseComp.vue": 5298,
9728
10015
  "./baseConfig": 649,
9729
10016
  "./baseConfig.js": 649,
9730
10017
  "./cms-aLineThreeLeftOne": 5041,
@@ -9774,13 +10061,13 @@ var map = {
9774
10061
  "./cms-column": 3923,
9775
10062
  "./cms-column-card": 5340,
9776
10063
  "./cms-column-card/": 5340,
9777
- "./cms-column-card/View": 3164,
9778
- "./cms-column-card/View.vue": 3164,
10064
+ "./cms-column-card/View": 470,
10065
+ "./cms-column-card/View.vue": 470,
9779
10066
  "./cms-column-card/index": 5340,
9780
10067
  "./cms-column-card/index.js": 5340,
9781
10068
  "./cms-column/": 3923,
9782
- "./cms-column/View": 9886,
9783
- "./cms-column/View.vue": 9886,
10069
+ "./cms-column/View": 6278,
10070
+ "./cms-column/View.vue": 6278,
9784
10071
  "./cms-column/index": 3923,
9785
10072
  "./cms-column/index.js": 3923,
9786
10073
  "./cms-description": 1921,
@@ -9802,9 +10089,15 @@ var map = {
9802
10089
  "./cms-iconFour/index": 8132,
9803
10090
  "./cms-iconFour/index.js": 8132,
9804
10091
  "./cms-image": 8886,
10092
+ "./cms-image-group": 6940,
10093
+ "./cms-image-group/": 6940,
10094
+ "./cms-image-group/View": 9345,
10095
+ "./cms-image-group/View.vue": 9345,
10096
+ "./cms-image-group/index": 6940,
10097
+ "./cms-image-group/index.js": 6940,
9805
10098
  "./cms-image/": 8886,
9806
- "./cms-image/View": 4986,
9807
- "./cms-image/View.vue": 4986,
10099
+ "./cms-image/View": 5314,
10100
+ "./cms-image/View.vue": 5314,
9808
10101
  "./cms-image/index": 8886,
9809
10102
  "./cms-image/index.js": 8886,
9810
10103
  "./cms-imgFour": 4352,
@@ -9916,9 +10209,15 @@ var map = {
9916
10209
  "./cms-via-storedValueCard/index": 4400,
9917
10210
  "./cms-via-storedValueCard/index.js": 4400,
9918
10211
  "./cms-video": 23,
10212
+ "./cms-video-group": 622,
10213
+ "./cms-video-group/": 622,
10214
+ "./cms-video-group/View": 8216,
10215
+ "./cms-video-group/View.vue": 8216,
10216
+ "./cms-video-group/index": 622,
10217
+ "./cms-video-group/index.js": 622,
9919
10218
  "./cms-video/": 23,
9920
- "./cms-video/View": 4467,
9921
- "./cms-video/View.vue": 4467,
10219
+ "./cms-video/View": 2048,
10220
+ "./cms-video/View.vue": 2048,
9922
10221
  "./cms-video/index": 23,
9923
10222
  "./cms-video/index.js": 23,
9924
10223
  "./cms-view": 2392,
@@ -10230,7 +10529,7 @@ var render = function render() {
10230
10529
  var staticRenderFns = [];
10231
10530
 
10232
10531
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
10233
- var baseComp = __webpack_require__(537);
10532
+ var baseComp = __webpack_require__(5298);
10234
10533
  // EXTERNAL MODULE: ./package/patch.js
10235
10534
  var patch = __webpack_require__(1618);
10236
10535
  ;// ./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-dynamic-comp/View.vue?vue&type=script&lang=js
@@ -10972,6 +11271,384 @@ function getDevice() {
10972
11271
 
10973
11272
  /***/ }),
10974
11273
 
11274
+ /***/ 2048:
11275
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11276
+
11277
+ "use strict";
11278
+ // ESM COMPAT FLAG
11279
+ __webpack_require__.r(__webpack_exports__);
11280
+
11281
+ // EXPORTS
11282
+ __webpack_require__.d(__webpack_exports__, {
11283
+ "default": function() { return /* binding */ View; }
11284
+ });
11285
+
11286
+ ;// ./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-video/View.vue?vue&type=template&id=787ca866&scoped=true
11287
+ var render = function render() {
11288
+ var _vm = this,
11289
+ _c = _vm._self._c;
11290
+ return _c('BaseComp', _vm._b({
11291
+ attrs: {
11292
+ "data": _vm.data,
11293
+ "nowCompId": _vm.nowCompId,
11294
+ "isOpcacity": _vm.isOpcacity,
11295
+ "isMask": false,
11296
+ "lang": _vm.lang
11297
+ },
11298
+ on: {
11299
+ "getConfigData": _vm.getConfigData
11300
+ }
11301
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
11302
+ staticClass: "cms-video-container",
11303
+ class: [_vm.configData.customClass || ''],
11304
+ style: _vm.containerStyle
11305
+ }, [_c('div', {
11306
+ staticClass: "f-c-c"
11307
+ }, [_vm._v(_vm._s(_vm.configData.title))]), _c('div', {
11308
+ staticClass: "video-wrapper",
11309
+ style: _vm.wrapperStyle
11310
+ }, [_vm.videoType === 'direct' && _vm.configData.videoUrl ? _c('video', {
11311
+ staticClass: "cms-video direct-video",
11312
+ style: _vm.videoStyle,
11313
+ attrs: {
11314
+ "src": _vm.configData.videoUrl,
11315
+ "controls": _vm.configData.showControls,
11316
+ "autoplay": _vm.configData.autoplay,
11317
+ "loop": _vm.configData.loop,
11318
+ "poster": _vm.configData.posterUrl
11319
+ },
11320
+ domProps: {
11321
+ "muted": _vm.configData.muted
11322
+ },
11323
+ on: {
11324
+ "loadstart": _vm.onVideoLoadStart,
11325
+ "loadeddata": _vm.onVideoLoaded,
11326
+ "error": _vm.onVideoError
11327
+ }
11328
+ }) : _vm.configData.embedCode ? _c('div', {
11329
+ staticClass: "cms-video embed-video",
11330
+ style: _vm.videoStyle,
11331
+ domProps: {
11332
+ "innerHTML": _vm._s(_vm.configData.embedCode)
11333
+ }
11334
+ }) : _c('div', {
11335
+ staticClass: "video-placeholder",
11336
+ style: _vm.placeholderStyle
11337
+ }, [_c('img', {
11338
+ staticStyle: {
11339
+ "width": "97.82px",
11340
+ "height": "97.82px"
11341
+ },
11342
+ attrs: {
11343
+ "src": __webpack_require__(6148),
11344
+ "alt": "Video Camera"
11345
+ }
11346
+ })])])])]);
11347
+ };
11348
+ var staticRenderFns = [];
11349
+
11350
+ ;// ./package/cms-video/View.vue?vue&type=template&id=787ca866&scoped=true
11351
+
11352
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
11353
+ var es_iterator_constructor = __webpack_require__(8111);
11354
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
11355
+ var es_iterator_for_each = __webpack_require__(7588);
11356
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
11357
+ var baseComp = __webpack_require__(5298);
11358
+ ;// ./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-video/View.vue?vue&type=script&lang=js
11359
+
11360
+
11361
+
11362
+
11363
+
11364
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
11365
+ name: "cms-video",
11366
+ components: {
11367
+ BaseComp: baseComp["default"]
11368
+ },
11369
+ props: {
11370
+ data: {
11371
+ type: Object,
11372
+ default: () => {
11373
+ return {};
11374
+ }
11375
+ },
11376
+ nowCompId: {
11377
+ type: [String, Number],
11378
+ default: ""
11379
+ },
11380
+ isOpcacity: {
11381
+ type: Boolean,
11382
+ default: true
11383
+ },
11384
+ lang: {
11385
+ type: String,
11386
+ default: "zh-HK"
11387
+ }
11388
+ },
11389
+ data() {
11390
+ return {
11391
+ configData: {},
11392
+ videoLoaded: false,
11393
+ videoError: false,
11394
+ // 默认配置数据
11395
+ defaultConfig: {
11396
+ // 视频源设置
11397
+ videoType: "direct",
11398
+ videoUrl: "",
11399
+ embedCode: "",
11400
+ posterUrl: "",
11401
+ // 播放控制
11402
+ showControls: true,
11403
+ autoplay: false,
11404
+ loop: false,
11405
+ muted: false,
11406
+ // 尺寸控制
11407
+ widthType: "auto",
11408
+ widthValue: 100,
11409
+ heightType: "auto",
11410
+ heightValue: 100,
11411
+ aspectRatio: "16:9",
11412
+ customAspectRatio: "16:9",
11413
+ maxWidth: 0,
11414
+ maxHeight: 0,
11415
+ // 样式设置
11416
+ borderRadius: 0,
11417
+ // 高级配置
11418
+ customClass: "",
11419
+ customStyle: ""
11420
+ }
11421
+ };
11422
+ },
11423
+ mounted() {
11424
+ this.initConfigData();
11425
+ },
11426
+ watch: {
11427
+ configData: {
11428
+ handler() {
11429
+ this.updateStyles();
11430
+ },
11431
+ deep: true
11432
+ }
11433
+ },
11434
+ computed: {
11435
+ // 视频类型
11436
+ videoType() {
11437
+ return this.configData.videoType || this.defaultConfig.videoType;
11438
+ },
11439
+ // 实际使用的宽高比
11440
+ actualAspectRatio() {
11441
+ const config = {
11442
+ ...this.defaultConfig,
11443
+ ...this.configData
11444
+ };
11445
+ if (config.aspectRatio === "custom") {
11446
+ return config.customAspectRatio || "16:9";
11447
+ }
11448
+ return config.aspectRatio;
11449
+ },
11450
+ // 容器样式
11451
+ containerStyle() {
11452
+ const config = {
11453
+ ...this.defaultConfig,
11454
+ ...this.configData
11455
+ };
11456
+ return {
11457
+ ...this.parseCustomStyle(config.customStyle)
11458
+ };
11459
+ },
11460
+ // 包装器样式
11461
+ wrapperStyle() {
11462
+ const config = {
11463
+ ...this.defaultConfig,
11464
+ ...this.configData
11465
+ };
11466
+ let width = "auto";
11467
+ let height = "auto";
11468
+
11469
+ // 宽度设置
11470
+ if (config.widthType === "fixed") {
11471
+ width = `${config.widthValue}px`;
11472
+ } else if (config.widthType === "percent") {
11473
+ width = `${config.widthValue}%`;
11474
+ }
11475
+
11476
+ // 高度设置
11477
+ if (config.heightType === "fixed") {
11478
+ height = `${config.heightValue}px`;
11479
+ } else if (config.heightType === "percent") {
11480
+ height = `${config.heightValue}%`;
11481
+ } else if (config.heightType === "aspect") {
11482
+ // 根据宽高比计算高度
11483
+ height = "auto";
11484
+ }
11485
+ return {
11486
+ width,
11487
+ height,
11488
+ maxWidth: config.maxWidth > 0 ? `${config.maxWidth}px` : "none",
11489
+ maxHeight: config.maxHeight > 0 ? `${config.maxHeight}px` : "none",
11490
+ borderRadius: `${config.borderRadius}px`,
11491
+ overflow: "hidden",
11492
+ display: "block",
11493
+ position: "relative"
11494
+ };
11495
+ },
11496
+ // 视频样式
11497
+ videoStyle() {
11498
+ const config = {
11499
+ ...this.defaultConfig,
11500
+ ...this.configData
11501
+ };
11502
+ let style = {
11503
+ width: "100%",
11504
+ height: "100%",
11505
+ display: "block",
11506
+ border: "none",
11507
+ outline: "none"
11508
+ };
11509
+
11510
+ // 如果是宽高比模式,设置aspect-ratio
11511
+ if (config.heightType === "aspect") {
11512
+ style.aspectRatio = this.actualAspectRatio.replace(":", "/");
11513
+ }
11514
+ return style;
11515
+ },
11516
+ // 占位符样式
11517
+ placeholderStyle() {
11518
+ const config = {
11519
+ ...this.defaultConfig,
11520
+ ...this.configData
11521
+ };
11522
+ let width = "100%";
11523
+ let height = "auto";
11524
+
11525
+ // 如果设置了固定尺寸,使用设置的尺寸
11526
+ if (config.widthType === "fixed") {
11527
+ width = `${config.widthValue}px`;
11528
+ } else if (config.widthType === "percent") {
11529
+ width = `${config.widthValue}%`;
11530
+ }
11531
+ if (config.heightType === "fixed") {
11532
+ height = `${config.heightValue}px`;
11533
+ } else if (config.heightType === "aspect") {
11534
+ // 使用aspect-ratio保持16:9比例
11535
+ height = "auto";
11536
+ } else {
11537
+ // 默认使用16:9比例
11538
+ height = "auto";
11539
+ }
11540
+ const style = {
11541
+ width,
11542
+ height,
11543
+ backgroundColor: "#f5f7fa",
11544
+ border: "1px dashed #dcdfe6",
11545
+ borderRadius: `${config.borderRadius}px`,
11546
+ display: "flex",
11547
+ flexDirection: "column",
11548
+ alignItems: "center",
11549
+ justifyContent: "center",
11550
+ color: "#909399",
11551
+ fontSize: "14px"
11552
+ };
11553
+
11554
+ // 如果不是固定高度,使用aspect-ratio保持16:9比例
11555
+ if (config.heightType !== "fixed") {
11556
+ style.aspectRatio = this.actualAspectRatio.replace(":", "/");
11557
+ }
11558
+ return style;
11559
+ }
11560
+ },
11561
+ methods: {
11562
+ // 初始化配置数据
11563
+ initConfigData() {
11564
+ this.configData = {
11565
+ ...this.defaultConfig,
11566
+ ...this.configData
11567
+ };
11568
+ },
11569
+ // 获取配置数据
11570
+ getConfigData(configData) {
11571
+ this.configData = {
11572
+ ...this.defaultConfig,
11573
+ ...configData
11574
+ };
11575
+ this.updateStyles();
11576
+ },
11577
+ // 更新样式
11578
+ updateStyles() {
11579
+ this.$nextTick(() => {
11580
+ this.$forceUpdate();
11581
+ });
11582
+ },
11583
+ // 视频开始加载
11584
+ onVideoLoadStart() {
11585
+ this.videoLoaded = false;
11586
+ this.videoError = false;
11587
+ },
11588
+ // 视频加载完成
11589
+ onVideoLoaded() {
11590
+ this.videoLoaded = true;
11591
+ this.videoError = false;
11592
+ },
11593
+ // 视频加载失败
11594
+ onVideoError() {
11595
+ this.videoLoaded = false;
11596
+ this.videoError = true;
11597
+ },
11598
+ // 解析自定义样式
11599
+ parseCustomStyle(customStyle) {
11600
+ if (!customStyle) return {};
11601
+ try {
11602
+ const styles = {};
11603
+ const declarations = customStyle.split(";");
11604
+ declarations.forEach(declaration => {
11605
+ const [property, value] = declaration.split(":");
11606
+ if (property && value) {
11607
+ const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
11608
+ styles[camelCaseProperty] = value.trim();
11609
+ }
11610
+ });
11611
+ return styles;
11612
+ } catch (error) {
11613
+ console.warn("解析自定义样式失败:", error);
11614
+ return {};
11615
+ }
11616
+ }
11617
+ }
11618
+ });
11619
+ ;// ./package/cms-video/View.vue?vue&type=script&lang=js
11620
+ /* harmony default export */ var cms_video_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
11621
+ ;// ./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-video/View.vue?vue&type=style&index=0&id=787ca866&prod&lang=scss&scoped=true
11622
+ // extracted by mini-css-extract-plugin
11623
+
11624
+ ;// ./package/cms-video/View.vue?vue&type=style&index=0&id=787ca866&prod&lang=scss&scoped=true
11625
+
11626
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
11627
+ var componentNormalizer = __webpack_require__(1656);
11628
+ ;// ./package/cms-video/View.vue
11629
+
11630
+
11631
+
11632
+ ;
11633
+
11634
+
11635
+ /* normalize component */
11636
+
11637
+ var component = (0,componentNormalizer/* default */.A)(
11638
+ cms_video_Viewvue_type_script_lang_js,
11639
+ render,
11640
+ staticRenderFns,
11641
+ false,
11642
+ null,
11643
+ "787ca866",
11644
+ null
11645
+
11646
+ )
11647
+
11648
+ /* harmony default export */ var View = (component.exports);
11649
+
11650
+ /***/ }),
11651
+
10975
11652
  /***/ 2071:
10976
11653
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
10977
11654
 
@@ -11404,7 +12081,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
11404
12081
  },
11405
12082
  fontColor: {
11406
12083
  label: "文字颜色",
11407
- widgetType: "el-color-picker"
12084
+ widgetType: "el-color-picker",
12085
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
11408
12086
  },
11409
12087
  fontWeight: {
11410
12088
  label: "字体粗细",
@@ -11450,7 +12128,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
11450
12128
  // 样式控制配置
11451
12129
  backgroundColor: {
11452
12130
  label: "背景颜色",
11453
- widgetType: "el-color-picker"
12131
+ widgetType: "el-color-picker",
12132
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
11454
12133
  },
11455
12134
  borderRadius: {
11456
12135
  label: "圆角(px)",
@@ -11487,7 +12166,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
11487
12166
  },
11488
12167
  borderColor: {
11489
12168
  label: "边框颜色",
11490
- widgetType: "el-color-picker"
12169
+ widgetType: "el-color-picker",
12170
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
11491
12171
  },
11492
12172
  // 空间布局配置
11493
12173
  paddingTop: {
@@ -12034,7 +12714,7 @@ var es_iterator_constructor = __webpack_require__(8111);
12034
12714
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
12035
12715
  var es_iterator_for_each = __webpack_require__(7588);
12036
12716
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
12037
- var baseComp = __webpack_require__(537);
12717
+ var baseComp = __webpack_require__(5298);
12038
12718
  ;// ./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-button/View.vue?vue&type=script&lang=js
12039
12719
 
12040
12720
 
@@ -12266,6 +12946,7 @@ var component = (0,componentNormalizer/* default */.A)(
12266
12946
  __webpack_require__.r(__webpack_exports__);
12267
12947
  /* harmony default export */ __webpack_exports__["default"] = ({
12268
12948
  Expand: "展開",
12949
+ More: "查看更多",
12269
12950
  Collpase: "收起",
12270
12951
  discount: '優惠期限:'
12271
12952
  });
@@ -16038,7 +16719,7 @@ var swiper_esm_bundle = __webpack_require__(4418);
16038
16719
  // EXTERNAL MODULE: ./src/utils/jumpUrl.js
16039
16720
  var jumpUrl = __webpack_require__(813);
16040
16721
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
16041
- var baseComp = __webpack_require__(537);
16722
+ var baseComp = __webpack_require__(5298);
16042
16723
  ;// ./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-banner/View.vue?vue&type=script&lang=js
16043
16724
 
16044
16725
 
@@ -24919,413 +25600,6 @@ module.exports = function callBoundIntrinsic(name, allowMissing) {
24919
25600
 
24920
25601
  /***/ }),
24921
25602
 
24922
- /***/ 3164:
24923
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24924
-
24925
- "use strict";
24926
- // ESM COMPAT FLAG
24927
- __webpack_require__.r(__webpack_exports__);
24928
-
24929
- // EXPORTS
24930
- __webpack_require__.d(__webpack_exports__, {
24931
- "default": function() { return /* binding */ View; }
24932
- });
24933
-
24934
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
24935
- var es_iterator_constructor = __webpack_require__(8111);
24936
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js
24937
- var es_iterator_drop = __webpack_require__(9314);
24938
- ;// ./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=971892d6&scoped=true
24939
-
24940
-
24941
-
24942
-
24943
- var render = function render() {
24944
- var _vm = this,
24945
- _c = _vm._self._c;
24946
- return _c('BaseComp', _vm._b({
24947
- attrs: {
24948
- "data": _vm.data,
24949
- "nowCompId": _vm.nowCompId,
24950
- "isOpcacity": _vm.isOpcacity,
24951
- "isMask": false,
24952
- "lang": _vm.lang,
24953
- "showDel": false
24954
- },
24955
- on: {
24956
- "getConfigData": _vm.getConfigData
24957
- }
24958
- }, 'BaseComp', _vm.$attrs, false), [_vm.$EventBus && _vm.isOpcacity ? _c('div', {
24959
- staticClass: "main_drag",
24960
- style: _vm.cardContainerStyle,
24961
- attrs: {
24962
- "id": `cardTarget${_vm.data.componentId}`
24963
- },
24964
- on: {
24965
- "dragover": _vm.dragover,
24966
- "dragend": function ($event) {
24967
- _vm.showAddCom = false;
24968
- },
24969
- "drop": _vm.drop
24970
- }
24971
- }, [_c('Draggable', {
24972
- staticStyle: {
24973
- "position": "relative"
24974
- },
24975
- attrs: {
24976
- "chosen-class": "chosen",
24977
- "force-fallback": "true",
24978
- "animation": "1000",
24979
- "move": _vm.onMove
24980
- },
24981
- on: {
24982
- "start": _vm.onStart,
24983
- "end": function ($event) {
24984
- _vm.showAddCom = false;
24985
- }
24986
- },
24987
- model: {
24988
- value: _vm.data.childList,
24989
- callback: function ($$v) {
24990
- _vm.$set(_vm.data, "childList", $$v);
24991
- },
24992
- expression: "data.childList"
24993
- }
24994
- }, [_vm._l(_vm.data.childList, function (item, index) {
24995
- return _c('div', {
24996
- key: item.componentId,
24997
- staticStyle: {
24998
- "position": "relative"
24999
- }
25000
- }, [_c('div', {
25001
- directives: [{
25002
- name: "show",
25003
- rawName: "v-show",
25004
- value: _vm.showAddCom,
25005
- expression: "showAddCom"
25006
- }],
25007
- staticClass: "up_insert",
25008
- attrs: {
25009
- "id": `${item.componentId}-cardTargetup`
25010
- }
25011
- }, [_c('i', {
25012
- staticClass: "icon-up",
25013
- attrs: {
25014
- "id": `${item.componentId}-upi`
25015
- }
25016
- }), _c('span', {
25017
- attrs: {
25018
- "id": `${item.componentId}-upspan`
25019
- }
25020
- }, [_vm._v("插入组件")])]), _c(item.cmsCompName, {
25021
- key: item.componentId,
25022
- tag: "component",
25023
- style: {
25024
- marginTop: _vm.showAddCom && index == 0 ? '20px' : '0px'
25025
- },
25026
- attrs: {
25027
- "data": item,
25028
- "lang": _vm.lang,
25029
- "isOpcacity": _vm.isOpcacity,
25030
- "nowCompId": _vm.nowCompId
25031
- }
25032
- })], 1);
25033
- }), _c('div', {
25034
- directives: [{
25035
- name: "show",
25036
- rawName: "v-show",
25037
- value: _vm.showAddCom,
25038
- expression: "showAddCom"
25039
- }],
25040
- staticClass: "up_insert insert_bottom",
25041
- style: {
25042
- bottom: _vm.data.childList.length ? '0px' : '-24px'
25043
- },
25044
- attrs: {
25045
- "id": `-cardTargetdown`
25046
- }
25047
- }, [_c('i', {
25048
- staticClass: "icon-up"
25049
- }), _c('span', [_vm._v("插入组件")])])], 2)], 1) : _c('cms-view', _vm._b({
25050
- style: _vm.cardContainerStyle,
25051
- attrs: {
25052
- "data": _vm.data.childList,
25053
- "lang": _vm.lang,
25054
- "isOpcacity": false
25055
- }
25056
- }, 'cms-view', _vm.$attrs, false))], 1);
25057
- };
25058
- var staticRenderFns = [];
25059
-
25060
- ;// ./package/cms-column-card/View.vue?vue&type=template&id=971892d6&scoped=true
25061
-
25062
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
25063
- var es_array_push = __webpack_require__(4114);
25064
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
25065
- var baseComp = __webpack_require__(537);
25066
- // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
25067
- var vuedraggable_umd = __webpack_require__(1527);
25068
- var vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);
25069
- // EXTERNAL MODULE: ./package/baseConfig.js
25070
- var baseConfig = __webpack_require__(649);
25071
- ;// ./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
25072
-
25073
-
25074
-
25075
-
25076
-
25077
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
25078
- name: "cms-column-card",
25079
- components: {
25080
- BaseComp: baseComp["default"],
25081
- Draggable: (vuedraggable_umd_default())
25082
- },
25083
- props: {
25084
- data: {
25085
- type: Object,
25086
- default: () => {
25087
- return {};
25088
- }
25089
- },
25090
- nowCompId: {
25091
- type: [String, Number],
25092
- default: ""
25093
- },
25094
- isOpcacity: {
25095
- type: Boolean,
25096
- default: true
25097
- },
25098
- lang: {
25099
- type: String,
25100
- default: "zh-HK"
25101
- }
25102
- },
25103
- data() {
25104
- return {
25105
- configData: {},
25106
- messFold: true,
25107
- showAddCom: false
25108
- };
25109
- },
25110
- computed: {
25111
- // 卡片容器样式
25112
- cardContainerStyle() {
25113
- return {
25114
- backgroundImage: this.configData.backgroundImage ? `url('${this.configData.backgroundImage}')` : "none",
25115
- backgroundSize: "cover",
25116
- backgroundRepeat: "no-repeat",
25117
- backgroundPosition: "center center",
25118
- height: this.getContainerHeight(),
25119
- border: this.getContainerBorder(),
25120
- borderRadius: this.getContainerBorderRadius(),
25121
- backgroundColor: this.configData.backgroundColor || "transparent",
25122
- boxShadow: this.configData.boxShadow || "none"
25123
- };
25124
- }
25125
- },
25126
- mounted() {
25127
- if (this.$EventBus) {
25128
- this.$EventBus.$on("handleDragEnd", () => {
25129
- this.showAddCom = false;
25130
- });
25131
- }
25132
- },
25133
- watch: {},
25134
- methods: {
25135
- // 获取容器高度
25136
- getContainerHeight() {
25137
- if (this.configData.heightType === "fixed") {
25138
- return `${this.configData.fixedHeight}px`;
25139
- }
25140
- return this.isOpcacity ? "100%" : "auto";
25141
- },
25142
- // 获取容器边框
25143
- getContainerBorder() {
25144
- if (this.configData.borderWidth) {
25145
- return `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}`;
25146
- }
25147
- return "none";
25148
- },
25149
- // 获取容器圆角
25150
- getContainerBorderRadius() {
25151
- if (this.configData.borderRadius) {
25152
- return `${this.configData.borderRadius}px`;
25153
- }
25154
- return "0";
25155
- },
25156
- getConfigData(configData) {
25157
- this.configData = configData;
25158
- },
25159
- foldMessText() {
25160
- this.messFold = !this.messFold;
25161
- },
25162
- decodeJumpUrl(url) {
25163
- if (!url) return;
25164
- top.location.href = url;
25165
- },
25166
- onStart(evt) {
25167
- console.log("drag start in column-card", evt);
25168
- this.showAddCom = true;
25169
- },
25170
- // 限制拖拽的组件类型
25171
- onMove(evt) {
25172
- const {
25173
- draggedContext
25174
- } = evt;
25175
-
25176
- // 允许的组件类型
25177
- const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
25178
- ];
25179
-
25180
- // 如果是从外部拖入的组件
25181
- if (draggedContext && draggedContext.element) {
25182
- const componentType = draggedContext.element.cmsCompName;
25183
- if (componentType && !allowedComponents.includes(componentType)) {
25184
- console.log(`组件类型 ${componentType} 不允许拖入 column-card`);
25185
- return false;
25186
- }
25187
-
25188
- // 特殊处理 cms-column:检查嵌套层级
25189
- if (componentType === "cms-column") {
25190
- if (!this.checkColumnNestingLevel()) {
25191
- console.log("cms-column 嵌套层级超出限制");
25192
- return false;
25193
- }
25194
- }
25195
- }
25196
- return true;
25197
- },
25198
- // 检查 cms-column 嵌套层级
25199
- checkColumnNestingLevel() {
25200
- // 检查当前 column-card 是否已经在 cms-column 内部
25201
- let parent = this.$parent;
25202
- let columnDepth = 0;
25203
- while (parent) {
25204
- // 检查父组件是否是 cms-column 或包含 cms-column
25205
- if (parent.$options.name === "cms-column" || parent.$data && parent.$data.data && parent.$data.data.cmsCompName === "cms-column") {
25206
- columnDepth++;
25207
- }
25208
-
25209
- // 如果已经有一层 cms-column,则不允许再嵌套
25210
- if (columnDepth >= 2) {
25211
- console.log(`检测到 cms-column 嵌套层级: ${columnDepth}, 超出限制`);
25212
- return false;
25213
- }
25214
- parent = parent.$parent;
25215
- }
25216
- console.log(`cms-column 嵌套层级检查通过: ${columnDepth}`);
25217
- return true;
25218
- },
25219
- // 处理拖拽悬停
25220
- dragover(e) {
25221
- e.preventDefault();
25222
- this.showAddCom = true;
25223
- },
25224
- // 处理拖拽放置
25225
- drop(e) {
25226
- console.log("cms-colum-card-drop");
25227
- e.preventDefault();
25228
- const componentKey = e.dataTransfer.getData("componentKey");
25229
- if (!componentKey) return;
25230
-
25231
- // 允许的组件类型
25232
- const allowedComponents = ["cms-text", "cms-image", "cms-video", "cms-button", "cms-richText", "cms-column" // 允许拖入 cms-column
25233
- ];
25234
-
25235
- // 检查组件类型是否允许
25236
- if (!allowedComponents.includes(componentKey)) {
25237
- console.log(`组件类型 ${componentKey} 不允许拖入 column-card`);
25238
- this.$message && this.$message.warning(`该组件类型不支持拖入卡片容器`);
25239
- this.showAddCom = false;
25240
- return;
25241
- }
25242
-
25243
- // 特殊处理 cms-column:检查嵌套层级
25244
- if (componentKey === "cms-column") {
25245
- if (!this.checkColumnNestingLevel()) {
25246
- console.log("cms-column 嵌套层级超出限制");
25247
- this.$message && this.$message.warning(`cms-column 只能嵌套一层`);
25248
- this.showAddCom = false;
25249
- return;
25250
- }
25251
- }
25252
- this.addOneComp(e, componentKey);
25253
- },
25254
- // 添加组件到卡片容器
25255
- addOneComp(e, componentKey) {
25256
- this.showAddCom = false;
25257
- console.log("drop to column-card", componentKey);
25258
-
25259
- // 动态导入组件配置
25260
- let initCompData;
25261
- try {
25262
- initCompData = __webpack_require__(1640)(`./${componentKey}`).default.settings(componentKey);
25263
- initCompData = {
25264
- ...initCompData,
25265
- styleConfig: {
25266
- pc: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(16, 16, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")],
25267
- mb: componentKey == "cms-text" ? [...(0,baseConfig.styleBaseConfig)(12, 12, 0, 0, "px")] : [...(0,baseConfig.styleBaseConfig)(0, 0, 0, 0, "px")]
25268
- }
25269
- };
25270
- } catch (error) {
25271
- console.error(`无法加载组件 ${componentKey}:`, error);
25272
- this.$message && this.$message.error(`组件加载失败`);
25273
- return;
25274
- }
25275
- const toElementId = e.toElement.id;
25276
- if (toElementId === `cardTarget${this.data.componentId}` || toElementId.includes("cardTargetdown")) {
25277
- // 添加到卡片容器末尾
25278
- this.data.childList.push(initCompData);
25279
- } else if (toElementId.includes("cardTargetup")) {
25280
- // 插入到指定位置
25281
- const underComponentId = toElementId.split("-cardTargetup")[0];
25282
- const index = this.data.childList.findIndex(item => item.componentId === underComponentId);
25283
- if (index !== -1) {
25284
- this.data.childList.splice(index, 0, initCompData);
25285
- }
25286
- }
25287
-
25288
- // 触发数据更新
25289
- this.$emit("update:data", this.data);
25290
- if (componentKey === "cms-column") {
25291
- this.$EventBus.$emit("handleNowComp", initCompData);
25292
- }
25293
- }
25294
- }
25295
- });
25296
- ;// ./package/cms-column-card/View.vue?vue&type=script&lang=js
25297
- /* harmony default export */ var cms_column_card_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
25298
- ;// ./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=971892d6&prod&lang=scss&scoped=true
25299
- // extracted by mini-css-extract-plugin
25300
-
25301
- ;// ./package/cms-column-card/View.vue?vue&type=style&index=0&id=971892d6&prod&lang=scss&scoped=true
25302
-
25303
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
25304
- var componentNormalizer = __webpack_require__(1656);
25305
- ;// ./package/cms-column-card/View.vue
25306
-
25307
-
25308
-
25309
- ;
25310
-
25311
-
25312
- /* normalize component */
25313
-
25314
- var component = (0,componentNormalizer/* default */.A)(
25315
- cms_column_card_Viewvue_type_script_lang_js,
25316
- render,
25317
- staticRenderFns,
25318
- false,
25319
- null,
25320
- "971892d6",
25321
- null
25322
-
25323
- )
25324
-
25325
- /* harmony default export */ var View = (component.exports);
25326
-
25327
- /***/ }),
25328
-
25329
25603
  /***/ 3167:
25330
25604
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
25331
25605
 
@@ -25390,7 +25664,7 @@ var render = function render() {
25390
25664
  var staticRenderFns = [];
25391
25665
 
25392
25666
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
25393
- var baseComp = __webpack_require__(537);
25667
+ var baseComp = __webpack_require__(5298);
25394
25668
  ;// ./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-description/View.vue?vue&type=script&lang=js
25395
25669
 
25396
25670
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -25570,7 +25844,7 @@ var render = function render() {
25570
25844
  var staticRenderFns = [];
25571
25845
 
25572
25846
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
25573
- var baseComp = __webpack_require__(537);
25847
+ var baseComp = __webpack_require__(5298);
25574
25848
  ;// ./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-lineTwo/View.vue?vue&type=script&lang=js
25575
25849
 
25576
25850
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -25844,7 +26118,7 @@ var render = function render() {
25844
26118
  var staticRenderFns = [];
25845
26119
 
25846
26120
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
25847
- var baseComp = __webpack_require__(537);
26121
+ var baseComp = __webpack_require__(5298);
25848
26122
  ;// ./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-richText/View.vue?vue&type=script&lang=js
25849
26123
 
25850
26124
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -26407,7 +26681,7 @@ __webpack_require__.r(__webpack_exports__);
26407
26681
  __webpack_require__.r(__webpack_exports__);
26408
26682
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
26409
26683
 
26410
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 9886));
26684
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 6278));
26411
26685
  const langData = {
26412
26686
  // 布局配置
26413
26687
  layoutType: "100",
@@ -26416,9 +26690,9 @@ const langData = {
26416
26690
  mobileLayout: "vertical",
26417
26691
  fixedHeight: 300,
26418
26692
  // 边框配置
26419
- borderWidth: 1,
26693
+ borderWidth: 0,
26420
26694
  borderStyle: "solid",
26421
- borderColor: "#409eff",
26695
+ borderColor: "",
26422
26696
  borderRadius: 0,
26423
26697
  // 背景配置
26424
26698
  backgroundColor: "#FFF",
@@ -26534,7 +26808,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
26534
26808
  },
26535
26809
  borderColor: {
26536
26810
  label: "边框颜色",
26537
- widgetType: "el-color-picker"
26811
+ widgetType: "el-color-picker",
26812
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
26538
26813
  },
26539
26814
  borderRadius: {
26540
26815
  label: "圆角(px)",
@@ -26546,7 +26821,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
26546
26821
  // 背景配置
26547
26822
  backgroundColor: {
26548
26823
  label: "背景颜色",
26549
- widgetType: "el-color-picker"
26824
+ widgetType: "el-color-picker",
26825
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
26550
26826
  },
26551
26827
  backgroundImage: {
26552
26828
  label: "背景图片",
@@ -26827,6 +27103,7 @@ __webpack_require__.r(__webpack_exports__);
26827
27103
  __webpack_require__.r(__webpack_exports__);
26828
27104
  /* harmony default export */ __webpack_exports__["default"] = ({
26829
27105
  Expand: "展开",
27106
+ More: "查看更多",
26830
27107
  Collpase: "收起",
26831
27108
  discount: '优惠期限:'
26832
27109
  });
@@ -26886,7 +27163,7 @@ var es_iterator_constructor = __webpack_require__(8111);
26886
27163
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.reduce.js
26887
27164
  var es_iterator_reduce = __webpack_require__(8237);
26888
27165
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
26889
- var baseComp = __webpack_require__(537);
27166
+ var baseComp = __webpack_require__(5298);
26890
27167
  // EXTERNAL MODULE: ./package/patch.js
26891
27168
  var patch = __webpack_require__(1618);
26892
27169
  ;// ./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-servePlan-tab/View.vue?vue&type=script&lang=js
@@ -27321,7 +27598,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
27321
27598
  },
27322
27599
  color: {
27323
27600
  label: "色值",
27324
- widgetType: "el-color-picker"
27601
+ widgetType: "el-color-picker",
27602
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
27325
27603
  }
27326
27604
  }]
27327
27605
  },
@@ -35940,7 +36218,7 @@ var render = function render() {
35940
36218
  var staticRenderFns = [];
35941
36219
 
35942
36220
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
35943
- var baseComp = __webpack_require__(537);
36221
+ var baseComp = __webpack_require__(5298);
35944
36222
  ;// ./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-lineFive/View.vue?vue&type=script&lang=js
35945
36223
 
35946
36224
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -36046,367 +36324,6 @@ module.exports = function isDisjointFrom(other) {
36046
36324
  };
36047
36325
 
36048
36326
 
36049
- /***/ }),
36050
-
36051
- /***/ 4467:
36052
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
36053
-
36054
- "use strict";
36055
- // ESM COMPAT FLAG
36056
- __webpack_require__.r(__webpack_exports__);
36057
-
36058
- // EXPORTS
36059
- __webpack_require__.d(__webpack_exports__, {
36060
- "default": function() { return /* binding */ View; }
36061
- });
36062
-
36063
- ;// ./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-video/View.vue?vue&type=template&id=a681eca6&scoped=true
36064
- var render = function render() {
36065
- var _vm = this,
36066
- _c = _vm._self._c;
36067
- return _c('BaseComp', _vm._b({
36068
- attrs: {
36069
- "data": _vm.data,
36070
- "nowCompId": _vm.nowCompId,
36071
- "isOpcacity": _vm.isOpcacity,
36072
- "isMask": false,
36073
- "lang": _vm.lang
36074
- },
36075
- on: {
36076
- "getConfigData": _vm.getConfigData
36077
- }
36078
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
36079
- staticClass: "cms-video-container",
36080
- class: [_vm.configData.customClass || ''],
36081
- style: _vm.containerStyle
36082
- }, [_c('div', {
36083
- staticClass: "video-wrapper",
36084
- style: _vm.wrapperStyle
36085
- }, [_vm.videoType === 'direct' && _vm.configData.videoUrl ? _c('video', {
36086
- staticClass: "cms-video direct-video",
36087
- style: _vm.videoStyle,
36088
- attrs: {
36089
- "src": _vm.configData.videoUrl,
36090
- "controls": _vm.configData.showControls,
36091
- "autoplay": _vm.configData.autoplay,
36092
- "loop": _vm.configData.loop,
36093
- "poster": _vm.configData.posterUrl
36094
- },
36095
- domProps: {
36096
- "muted": _vm.configData.muted
36097
- },
36098
- on: {
36099
- "loadstart": _vm.onVideoLoadStart,
36100
- "loadeddata": _vm.onVideoLoaded,
36101
- "error": _vm.onVideoError
36102
- }
36103
- }) : _vm.configData.embedCode ? _c('div', {
36104
- staticClass: "cms-video embed-video",
36105
- style: _vm.videoStyle,
36106
- domProps: {
36107
- "innerHTML": _vm._s(_vm.configData.embedCode)
36108
- }
36109
- }) : _c('div', {
36110
- staticClass: "video-placeholder",
36111
- style: _vm.placeholderStyle
36112
- }, [_c('i', {
36113
- staticClass: "el-icon-video-camera-solid"
36114
- }), _c('p', [_vm._v("请设置视频源")])])])])]);
36115
- };
36116
- var staticRenderFns = [];
36117
-
36118
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
36119
- var es_iterator_constructor = __webpack_require__(8111);
36120
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
36121
- var es_iterator_for_each = __webpack_require__(7588);
36122
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
36123
- var es_iterator_map = __webpack_require__(1701);
36124
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
36125
- var baseComp = __webpack_require__(537);
36126
- ;// ./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-video/View.vue?vue&type=script&lang=js
36127
-
36128
-
36129
-
36130
-
36131
-
36132
-
36133
-
36134
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
36135
- name: "cms-video",
36136
- components: {
36137
- BaseComp: baseComp["default"]
36138
- },
36139
- props: {
36140
- data: {
36141
- type: Object,
36142
- default: () => {
36143
- return {};
36144
- }
36145
- },
36146
- nowCompId: {
36147
- type: [String, Number],
36148
- default: ""
36149
- },
36150
- isOpcacity: {
36151
- type: Boolean,
36152
- default: true
36153
- },
36154
- lang: {
36155
- type: String,
36156
- default: "zh-HK"
36157
- }
36158
- },
36159
- data() {
36160
- return {
36161
- configData: {},
36162
- videoLoaded: false,
36163
- videoError: false,
36164
- // 默认配置数据
36165
- defaultConfig: {
36166
- // 视频源设置
36167
- videoType: "direct",
36168
- videoUrl: "",
36169
- embedCode: "",
36170
- posterUrl: "",
36171
- // 播放控制
36172
- showControls: true,
36173
- autoplay: false,
36174
- loop: false,
36175
- muted: false,
36176
- // 尺寸控制
36177
- widthType: "auto",
36178
- widthValue: 100,
36179
- heightType: "auto",
36180
- heightValue: 100,
36181
- aspectRatio: "16:9",
36182
- customAspectRatio: "16:9",
36183
- maxWidth: 0,
36184
- maxHeight: 0,
36185
- // 样式设置
36186
- borderRadius: 0,
36187
- // 高级配置
36188
- customClass: "",
36189
- customStyle: ""
36190
- }
36191
- };
36192
- },
36193
- mounted() {
36194
- this.initConfigData();
36195
- },
36196
- watch: {
36197
- configData: {
36198
- handler() {
36199
- this.updateStyles();
36200
- },
36201
- deep: true
36202
- }
36203
- },
36204
- computed: {
36205
- // 视频类型
36206
- videoType() {
36207
- return this.configData.videoType || this.defaultConfig.videoType;
36208
- },
36209
- // 实际使用的宽高比
36210
- actualAspectRatio() {
36211
- const config = {
36212
- ...this.defaultConfig,
36213
- ...this.configData
36214
- };
36215
- if (config.aspectRatio === 'custom') {
36216
- return config.customAspectRatio || '16:9';
36217
- }
36218
- return config.aspectRatio;
36219
- },
36220
- // 容器样式
36221
- containerStyle() {
36222
- const config = {
36223
- ...this.defaultConfig,
36224
- ...this.configData
36225
- };
36226
- return {
36227
- ...this.parseCustomStyle(config.customStyle)
36228
- };
36229
- },
36230
- // 包装器样式
36231
- wrapperStyle() {
36232
- const config = {
36233
- ...this.defaultConfig,
36234
- ...this.configData
36235
- };
36236
- let width = 'auto';
36237
- let height = 'auto';
36238
-
36239
- // 宽度设置
36240
- if (config.widthType === 'fixed') {
36241
- width = `${config.widthValue}px`;
36242
- } else if (config.widthType === 'percent') {
36243
- width = `${config.widthValue}%`;
36244
- }
36245
-
36246
- // 高度设置
36247
- if (config.heightType === 'fixed') {
36248
- height = `${config.heightValue}px`;
36249
- } else if (config.heightType === 'percent') {
36250
- height = `${config.heightValue}%`;
36251
- } else if (config.heightType === 'aspect') {
36252
- // 根据宽高比计算高度
36253
- height = 'auto';
36254
- }
36255
- return {
36256
- width,
36257
- height,
36258
- maxWidth: config.maxWidth > 0 ? `${config.maxWidth}px` : 'none',
36259
- maxHeight: config.maxHeight > 0 ? `${config.maxHeight}px` : 'none',
36260
- borderRadius: `${config.borderRadius}px`,
36261
- overflow: 'hidden',
36262
- display: 'block',
36263
- position: 'relative'
36264
- };
36265
- },
36266
- // 视频样式
36267
- videoStyle() {
36268
- const config = {
36269
- ...this.defaultConfig,
36270
- ...this.configData
36271
- };
36272
- let style = {
36273
- width: '100%',
36274
- height: '100%',
36275
- display: 'block',
36276
- border: 'none',
36277
- outline: 'none'
36278
- };
36279
-
36280
- // 如果是宽高比模式,设置aspect-ratio
36281
- if (config.heightType === 'aspect') {
36282
- style.aspectRatio = this.actualAspectRatio.replace(':', '/');
36283
- }
36284
- return style;
36285
- },
36286
- // 占位符样式
36287
- placeholderStyle() {
36288
- const config = {
36289
- ...this.defaultConfig,
36290
- ...this.configData
36291
- };
36292
- let width = '400px';
36293
- let height = '225px'; // 16:9 比例
36294
-
36295
- // 如果设置了固定尺寸,使用设置的尺寸
36296
- if (config.widthType === 'fixed') {
36297
- width = `${config.widthValue}px`;
36298
- }
36299
- if (config.heightType === 'fixed') {
36300
- height = `${config.heightValue}px`;
36301
- } else if (config.heightType === 'aspect') {
36302
- const [w, h] = this.actualAspectRatio.split(':').map(Number);
36303
- const widthPx = parseInt(width);
36304
- height = `${Math.round(widthPx * h / w)}px`;
36305
- }
36306
- return {
36307
- width,
36308
- height,
36309
- backgroundColor: '#f5f7fa',
36310
- border: '1px dashed #dcdfe6',
36311
- borderRadius: `${config.borderRadius}px`,
36312
- display: 'flex',
36313
- flexDirection: 'column',
36314
- alignItems: 'center',
36315
- justifyContent: 'center',
36316
- color: '#909399',
36317
- fontSize: '14px'
36318
- };
36319
- }
36320
- },
36321
- methods: {
36322
- // 初始化配置数据
36323
- initConfigData() {
36324
- this.configData = {
36325
- ...this.defaultConfig,
36326
- ...this.configData
36327
- };
36328
- },
36329
- // 获取配置数据
36330
- getConfigData(configData) {
36331
- this.configData = {
36332
- ...this.defaultConfig,
36333
- ...configData
36334
- };
36335
- this.updateStyles();
36336
- },
36337
- // 更新样式
36338
- updateStyles() {
36339
- this.$nextTick(() => {
36340
- this.$forceUpdate();
36341
- });
36342
- },
36343
- // 视频开始加载
36344
- onVideoLoadStart() {
36345
- this.videoLoaded = false;
36346
- this.videoError = false;
36347
- },
36348
- // 视频加载完成
36349
- onVideoLoaded() {
36350
- this.videoLoaded = true;
36351
- this.videoError = false;
36352
- },
36353
- // 视频加载失败
36354
- onVideoError() {
36355
- this.videoLoaded = false;
36356
- this.videoError = true;
36357
- },
36358
- // 解析自定义样式
36359
- parseCustomStyle(customStyle) {
36360
- if (!customStyle) return {};
36361
- try {
36362
- const styles = {};
36363
- const declarations = customStyle.split(';');
36364
- declarations.forEach(declaration => {
36365
- const [property, value] = declaration.split(':');
36366
- if (property && value) {
36367
- const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
36368
- styles[camelCaseProperty] = value.trim();
36369
- }
36370
- });
36371
- return styles;
36372
- } catch (error) {
36373
- console.warn('解析自定义样式失败:', error);
36374
- return {};
36375
- }
36376
- }
36377
- }
36378
- });
36379
- ;// ./package/cms-video/View.vue?vue&type=script&lang=js
36380
- /* harmony default export */ var cms_video_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
36381
- ;// ./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-video/View.vue?vue&type=style&index=0&id=a681eca6&prod&lang=scss&scoped=true
36382
- // extracted by mini-css-extract-plugin
36383
-
36384
- ;// ./package/cms-video/View.vue?vue&type=style&index=0&id=a681eca6&prod&lang=scss&scoped=true
36385
-
36386
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
36387
- var componentNormalizer = __webpack_require__(1656);
36388
- ;// ./package/cms-video/View.vue
36389
-
36390
-
36391
-
36392
- ;
36393
-
36394
-
36395
- /* normalize component */
36396
-
36397
- var component = (0,componentNormalizer/* default */.A)(
36398
- cms_video_Viewvue_type_script_lang_js,
36399
- render,
36400
- staticRenderFns,
36401
- false,
36402
- null,
36403
- "a681eca6",
36404
- null
36405
-
36406
- )
36407
-
36408
- /* harmony default export */ var View = (component.exports);
36409
-
36410
36327
  /***/ }),
36411
36328
 
36412
36329
  /***/ 4483:
@@ -37044,6 +36961,14 @@ exportTypedArrayMethod('toSorted', function toSorted(compareFn) {
37044
36961
  });
37045
36962
 
37046
36963
 
36964
+ /***/ }),
36965
+
36966
+ /***/ 4806:
36967
+ /***/ (function(module) {
36968
+
36969
+ "use strict";
36970
+ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAgoSURBVHgB7d1RbtxEGMDxb5yq8JgbsJygSaFIPJGcgHKCxuEAlBMkPQHliQcELjcoJ2h4QgLSLidguUEeaUV2mHHXtJRmMvbu2jPf/H9SIBVqidT5r+1vvR4RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSjKyheWZndin3jZFP3S9nAqRjLtZ9vZAH9cdmIQMNDuT73+w9U8lD9+2uAOm68C/ixx+aH2SAQYF8+6s9uLEjTwTIxaUc1nfMmfRUyQAujkaAnAxcs70D8UcP4XoD+Zk1L9duL70DqSrZEyBDywFrd8gpFhflyFXvtTvoGgQoBYEAAQQCBBAIEEAgQACBAAEEAgQQCBBAIEAAgQABBAIEEAgQQCBAAIEAAQQCBBAIEEAgQACBAAEEAgQQCBBAIEAAgQABBAIEEAgQcEPKdmFFfvePyTeVzP2vV1/e7nIpM2Pap/HtGZFbguIUGYiL4ie38E/dt/PjfXMR83v8XiiylCMxck94NnExigqkDeO5HB0P2FCl3m9/z6n/as6tD+VECEW9Uq5BFm5BHx7fNgfr7DbUqT8wj/yf54IbtCkL8lFCIHN5LofuCHAmG+SPKC64I3dY+lKglvZAfvCv9Js4alzFHU0eyt+yL68u7qGI5kDmtXuFryMvwtdRf2TmcimfCdTRGsjCnVaNumDb/e843VJHZyDPt3tadZX2dEvkTKCGvkCsPJoijn8ZqYXrETX0BfJCHsiE/HRraeVrgQq6Apn66LFSVeJPtTiKKKArkImPHh0/OfPv2guypymQeQpHj465bI8iyJyaQKxN7BX7Rnt3MDKnJhB3YXwmCVm9QUkkmVMTyM6Oe3MwMe1nTZA1TdcgC0mNZZKVOzWBjHHPVV+WUW/2+Ew6EKAmkOaZ3ZXEGJHkfib0oyaQv/5KcDEaPpKbOzWB3LwpB5IYdwR5T5A1NYG4xbgnCVmd8iX1M6E/PYEY+UQScnmZ3hEN/WmaYu01v9hkXrGrSu4KsqdqzLvcSWNR+ofMuVO+e4LsqQqkMvJFEuPeJXFooe2Nwl23OE9kQu0jSl8+1hQK6Hsn3cj95ld7IBOxljg00XmryY40U5xqNef2hGsPXbTeizUTK0/GjKT5zd7l1EofzTcr7rnrkVGOJN/6U7pKGoE6uu/mNW7s648kP7sL5y357tzev7EjT4QbE1Uq4Xb3PXlHnnzn9/TYIH9kctccX7nR8lcCtUr5PMjMLeTGLehm3aPJKowTd2T6w0/MJA8X7ud90D7p/rYx/st9v8/+Jtcraws2I0fuaHLkFvjjpciPn/uNcCJ948J696abUFkXhcnqdGrxtmcV1/vGP1DiyAV/6k9Dhd2y3qrMTTzdtYk7dN5tnlp/YX3m3rv43b2azpfLV59rr6p2wexWfvNO0954OJP8LK57kLd/VKqL5JBI3q70XW69A3fCceDev5BqRzS5iH3KfRvJL/YztxoYNryBz6RrtZS6z5Mm202A2N/kfwhEI3dBXn9oHktP7eakNo3nG6eCQJRx11Nfu4V+KgOtfi/TrRUC0WV+/IFZf/T8cnzNY1OFQDTZ2L6M7UP4TPtnLaRwBKLDxab3ZfSTLfm7jaTop0MSiAY9J1axmGwRSP4GTqxilT7ZIpCMrTuxilXyZItA8rWZiVWsQidbBJKnjU2sYpU62SKQ/Gx8YhWrxMkWgeRmSxOrWKVNtggkJ1ueWMUqabJFIJkYa2IVq5TJFoHkYdyJVawCJlsEkr7RJ1axSphsEUjaJptYxdI+2SKQlE08sYqlebJFIKlKZGIVS+tkq7RA5kv/Smfk/dXXvvtLrSWxc+jUJlaxNE62inmqiV90V0yC/BTmUXNuT10wk+4tspLmxCqWn2xZuSVKNjAt4wjiDv3XLbr21W/6U4RkJ1axtE229Afiz+UjT1cmjiT5iVUsTZMt3YH0iKMzWSSZTKxiaZls6Q1kQByd0SPJbGIVS8NkS2cga8TRGSuSXCdWsXKfbOkLZANxdEaIJO+JVayM79nSFcgG4+hsMZLsJ1axcp5s6QlkC3F0thCJmolVrFwnWzoC2WIcnY1GomxiFSvHyVb+gYwQR2cjkSidWMXKbbKVdyAjxtFZJxLtE6tYOU228g1kgjg6AyMpY2IVK5PJVp6BTBhHp2ckxUysYuUy2covkATi6ERGsihtYhUrh8lWXoEkFEen/Xku5dCK/PTGf+r2Jt8njqulPtnK5/MgCcbRqe+YM/evg+aZ9TvE+s9BLNpXR0Txk63m3M4S+TzOf+QRSMJxvK49rxY5E/Tm/36bpy4SkXuSkPRPsTKJAxuQ4GQr7UCIoygpTrbSDYQ4ipTaZCvNQIijaClNttILhDgg6dyzlVYgxIHXpHDPVjqBEAfeZuLJVhqBEAeuMPVka/pAiAPXmHKyNW0gxIFIU022pguEONDTFJOtaQIhDgw09mRr/ECIA+sacbI1biDEgQ0Yc7I1XiDEgQ0aa7I1TiDEgS0YY7I1zgemjJw0T21ynxYDrsMmnkAAgQABBAIEEAgQQCBAAIEAAQQCBBAIEEAgQACBAAEEAgQQCBBAIEAAgQABBAIEEAgQQCBAAIEAAUMCSXbLXuAavddu70CqZVp7yAGxqqr/2jUyQPPU/uH+NRMgH4v6tnlfehp2DXIptQA5McPW7KBA6jvmTGz7P+R6BKm78Gu13ndrdoBBp1id5pmdWSun7ts99wfdEiARVuRP94/H5oU8rD82CwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6PQPqhbJqz3H0TgAAAAASUVORK5CYII=";
36971
+
37047
36972
  /***/ }),
37048
36973
 
37049
36974
  /***/ 4811:
@@ -37394,329 +37319,6 @@ if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {
37394
37319
  }
37395
37320
 
37396
37321
 
37397
- /***/ }),
37398
-
37399
- /***/ 4986:
37400
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
37401
-
37402
- "use strict";
37403
- // ESM COMPAT FLAG
37404
- __webpack_require__.r(__webpack_exports__);
37405
-
37406
- // EXPORTS
37407
- __webpack_require__.d(__webpack_exports__, {
37408
- "default": function() { return /* binding */ View; }
37409
- });
37410
-
37411
- ;// ./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-image/View.vue?vue&type=template&id=2c876c4d&scoped=true
37412
- var render = function render() {
37413
- var _vm = this,
37414
- _c = _vm._self._c;
37415
- return _c('BaseComp', _vm._b({
37416
- attrs: {
37417
- "data": _vm.data,
37418
- "nowCompId": _vm.nowCompId,
37419
- "isOpcacity": _vm.isOpcacity,
37420
- "lang": _vm.lang
37421
- },
37422
- on: {
37423
- "getConfigData": _vm.getConfigData
37424
- }
37425
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
37426
- staticClass: "cms-image-container",
37427
- class: [_vm.configData.customClass || '', {
37428
- 'has-link': _vm.configData.linkUrl
37429
- }],
37430
- style: _vm.containerStyle
37431
- }, [_c('div', {
37432
- staticClass: "image-wrapper",
37433
- style: _vm.wrapperStyle,
37434
- on: {
37435
- "click": _vm.handleClick
37436
- }
37437
- }, [_vm.configData.imageUrl ? _c('img', {
37438
- staticClass: "cms-image",
37439
- style: _vm.imageStyle,
37440
- attrs: {
37441
- "src": _vm.configData.imageUrl,
37442
- "alt": _vm.configData.altText || '图片',
37443
- "title": _vm.configData.title
37444
- },
37445
- on: {
37446
- "load": _vm.onImageLoad,
37447
- "error": _vm.onImageError
37448
- }
37449
- }) : _c('div', {
37450
- staticClass: "image-placeholder",
37451
- style: _vm.placeholderStyle
37452
- }, [_c('i', {
37453
- staticClass: "el-icon-picture-outline"
37454
- }), _c('p', [_vm._v("请选择图片")])])])])]);
37455
- };
37456
- var staticRenderFns = [];
37457
-
37458
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
37459
- var es_iterator_constructor = __webpack_require__(8111);
37460
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
37461
- var es_iterator_for_each = __webpack_require__(7588);
37462
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
37463
- var baseComp = __webpack_require__(537);
37464
- ;// ./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-image/View.vue?vue&type=script&lang=js
37465
-
37466
-
37467
-
37468
-
37469
-
37470
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
37471
- name: "cms-image",
37472
- components: {
37473
- BaseComp: baseComp["default"]
37474
- },
37475
- props: {
37476
- data: {
37477
- type: Object,
37478
- default: () => {
37479
- return {};
37480
- }
37481
- },
37482
- nowCompId: {
37483
- type: [String, Number],
37484
- default: ""
37485
- },
37486
- isOpcacity: {
37487
- type: Boolean,
37488
- default: true
37489
- },
37490
- lang: {
37491
- type: String,
37492
- default: "zh-HK"
37493
- }
37494
- },
37495
- data() {
37496
- return {
37497
- configData: {},
37498
- imageLoaded: false,
37499
- imageError: false,
37500
- // 默认配置数据
37501
- defaultConfig: {
37502
- // 图片设置
37503
- imageUrl: "",
37504
- altText: "图片",
37505
- title: "",
37506
- // 尺寸控制
37507
- widthType: "auto",
37508
- widthValue: 100,
37509
- heightType: "auto",
37510
- heightValue: 100,
37511
- maxWidth: 0,
37512
- maxHeight: 0,
37513
- // 样式设置
37514
- borderRadius: 0,
37515
- objectFit: "cover",
37516
- // 交互功能
37517
- linkUrl: "",
37518
- linkTarget: "_self",
37519
- // 高级配置
37520
- customClass: "",
37521
- customStyle: "",
37522
- lazyLoad: false
37523
- }
37524
- };
37525
- },
37526
- mounted() {
37527
- this.initConfigData();
37528
- },
37529
- watch: {
37530
- configData: {
37531
- handler() {
37532
- this.updateStyles();
37533
- },
37534
- deep: true
37535
- }
37536
- },
37537
- computed: {
37538
- // 容器样式
37539
- containerStyle() {
37540
- const config = {
37541
- ...this.defaultConfig,
37542
- ...this.configData
37543
- };
37544
- return {
37545
- ...this.parseCustomStyle(config.customStyle)
37546
- };
37547
- },
37548
- // 包装器样式
37549
- wrapperStyle() {
37550
- const config = {
37551
- ...this.defaultConfig,
37552
- ...this.configData
37553
- };
37554
- let width = 'auto';
37555
- let height = 'auto';
37556
-
37557
- // 宽度设置
37558
- if (config.widthType === 'fixed') {
37559
- width = `${config.widthValue}px`;
37560
- } else if (config.widthType === 'percent') {
37561
- width = `${config.widthValue}%`;
37562
- }
37563
-
37564
- // 高度设置
37565
- if (config.heightType === 'fixed') {
37566
- height = `${config.heightValue}px`;
37567
- } else if (config.heightType === 'percent') {
37568
- height = `${config.heightValue}%`;
37569
- }
37570
- return {
37571
- width,
37572
- height,
37573
- maxWidth: config.maxWidth > 0 ? `${config.maxWidth}px` : 'none',
37574
- maxHeight: config.maxHeight > 0 ? `${config.maxHeight}px` : 'none',
37575
- borderRadius: `${config.borderRadius}px`,
37576
- overflow: 'hidden',
37577
- cursor: config.linkUrl ? 'pointer' : 'default',
37578
- display: 'inline-block'
37579
- };
37580
- },
37581
- // 图片样式
37582
- imageStyle() {
37583
- const config = {
37584
- ...this.defaultConfig,
37585
- ...this.configData
37586
- };
37587
- return {
37588
- width: '100%',
37589
- height: '100%',
37590
- objectFit: config.objectFit,
37591
- display: 'block'
37592
- };
37593
- },
37594
- // 占位符样式
37595
- placeholderStyle() {
37596
- const config = {
37597
- ...this.defaultConfig,
37598
- ...this.configData
37599
- };
37600
- let width = '200px';
37601
- let height = '150px';
37602
-
37603
- // 如果设置了固定尺寸,使用设置的尺寸
37604
- if (config.widthType === 'fixed') {
37605
- width = `${config.widthValue}px`;
37606
- }
37607
- if (config.heightType === 'fixed') {
37608
- height = `${config.heightValue}px`;
37609
- }
37610
- return {
37611
- width,
37612
- height,
37613
- backgroundColor: '#f5f7fa',
37614
- border: '1px dashed #dcdfe6',
37615
- borderRadius: `${config.borderRadius}px`,
37616
- display: 'flex',
37617
- flexDirection: 'column',
37618
- alignItems: 'center',
37619
- justifyContent: 'center',
37620
- color: '#909399',
37621
- fontSize: '14px'
37622
- };
37623
- }
37624
- },
37625
- methods: {
37626
- // 初始化配置数据
37627
- initConfigData() {
37628
- this.configData = {
37629
- ...this.defaultConfig,
37630
- ...this.configData
37631
- };
37632
- },
37633
- // 获取配置数据
37634
- getConfigData(configData) {
37635
- this.configData = {
37636
- ...this.defaultConfig,
37637
- ...configData
37638
- };
37639
- this.updateStyles();
37640
- },
37641
- // 更新样式
37642
- updateStyles() {
37643
- this.$nextTick(() => {
37644
- this.$forceUpdate();
37645
- });
37646
- },
37647
- // 处理点击事件
37648
- handleClick() {
37649
- if (this.configData.linkUrl) {
37650
- const target = this.configData.linkTarget || '_self';
37651
- if (target === '_blank') {
37652
- window.open(this.configData.linkUrl, '_blank');
37653
- } else {
37654
- window.location.href = this.configData.linkUrl;
37655
- }
37656
- }
37657
- },
37658
- // 图片加载成功
37659
- onImageLoad() {
37660
- this.imageLoaded = true;
37661
- this.imageError = false;
37662
- },
37663
- // 图片加载失败
37664
- onImageError() {
37665
- this.imageLoaded = false;
37666
- this.imageError = true;
37667
- },
37668
- // 解析自定义样式
37669
- parseCustomStyle(customStyle) {
37670
- if (!customStyle) return {};
37671
- try {
37672
- const styles = {};
37673
- const declarations = customStyle.split(';');
37674
- declarations.forEach(declaration => {
37675
- const [property, value] = declaration.split(':');
37676
- if (property && value) {
37677
- const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
37678
- styles[camelCaseProperty] = value.trim();
37679
- }
37680
- });
37681
- return styles;
37682
- } catch (error) {
37683
- console.warn('解析自定义样式失败:', error);
37684
- return {};
37685
- }
37686
- }
37687
- }
37688
- });
37689
- ;// ./package/cms-image/View.vue?vue&type=script&lang=js
37690
- /* harmony default export */ var cms_image_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
37691
- ;// ./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-image/View.vue?vue&type=style&index=0&id=2c876c4d&prod&lang=scss&scoped=true
37692
- // extracted by mini-css-extract-plugin
37693
-
37694
- ;// ./package/cms-image/View.vue?vue&type=style&index=0&id=2c876c4d&prod&lang=scss&scoped=true
37695
-
37696
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
37697
- var componentNormalizer = __webpack_require__(1656);
37698
- ;// ./package/cms-image/View.vue
37699
-
37700
-
37701
-
37702
- ;
37703
-
37704
-
37705
- /* normalize component */
37706
-
37707
- var component = (0,componentNormalizer/* default */.A)(
37708
- cms_image_Viewvue_type_script_lang_js,
37709
- render,
37710
- staticRenderFns,
37711
- false,
37712
- null,
37713
- "2c876c4d",
37714
- null
37715
-
37716
- )
37717
-
37718
- /* harmony default export */ var View = (component.exports);
37719
-
37720
37322
  /***/ }),
37721
37323
 
37722
37324
  /***/ 5002:
@@ -38804,12 +38406,13 @@ var map = {
38804
38406
  "./cms-banner/View.vue": 2646,
38805
38407
  "./cms-button/View.vue": 2404,
38806
38408
  "./cms-cells/View.vue": 5700,
38807
- "./cms-column-card/View.vue": 3164,
38808
- "./cms-column/View.vue": 9886,
38409
+ "./cms-column-card/View.vue": 470,
38410
+ "./cms-column/View.vue": 6278,
38809
38411
  "./cms-description/View.vue": 3203,
38810
38412
  "./cms-dynamic-comp/View.vue": 1705,
38811
38413
  "./cms-iconFour/View.vue": 8235,
38812
- "./cms-image/View.vue": 4986,
38414
+ "./cms-image-group/View.vue": 9345,
38415
+ "./cms-image/View.vue": 5314,
38813
38416
  "./cms-imgFour/View.vue": 8238,
38814
38417
  "./cms-lineFive/View.vue": 4432,
38815
38418
  "./cms-lineFour/View.vue": 9703,
@@ -38828,7 +38431,8 @@ var map = {
38828
38431
  "./cms-titleCenter/View.vue": 8106,
38829
38432
  "./cms-titleLeft/View.vue": 9004,
38830
38433
  "./cms-via-storedValueCard/View.vue": 7243,
38831
- "./cms-video/View.vue": 4467,
38434
+ "./cms-video-group/View.vue": 8216,
38435
+ "./cms-video/View.vue": 2048,
38832
38436
  "./cms-view/View.vue": 1380
38833
38437
  };
38834
38438
 
@@ -38865,6 +38469,272 @@ module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;
38865
38469
 
38866
38470
  /***/ }),
38867
38471
 
38472
+ /***/ 5298:
38473
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
38474
+
38475
+ "use strict";
38476
+ // ESM COMPAT FLAG
38477
+ __webpack_require__.r(__webpack_exports__);
38478
+
38479
+ // EXPORTS
38480
+ __webpack_require__.d(__webpack_exports__, {
38481
+ "default": function() { return /* binding */ baseComp; }
38482
+ });
38483
+
38484
+ ;// ./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/baseComp.vue?vue&type=template&id=e19eaa9e&scoped=true
38485
+ var render = function render() {
38486
+ var _vm = this,
38487
+ _c = _vm._self._c;
38488
+ return _vm.$EventBus && _vm.isOpcacity ? _c('div', {
38489
+ key: _vm.data.componentId,
38490
+ class: [_vm.nowCompId !== '' && _vm.nowCompId == _vm.data.componentId ? 'highLight' : ''],
38491
+ style: _vm.showStyleConfig,
38492
+ attrs: {
38493
+ "component-key": _vm.data.cmsCompName
38494
+ },
38495
+ on: {
38496
+ "click": function ($event) {
38497
+ $event.stopPropagation();
38498
+ return _vm.handleNowComp.apply(null, arguments);
38499
+ }
38500
+ }
38501
+ }, [_c('div', {
38502
+ staticClass: "mask-wrap"
38503
+ }, [_vm._t("default", null, {
38504
+ "isMobile": _vm.isMobile
38505
+ }), _vm.isMask ? _c('div', {
38506
+ staticClass: "mask",
38507
+ on: {
38508
+ "click": _vm.handleNowComp
38509
+ }
38510
+ }) : _vm._e()], 2), _vm.nowCompId !== '' && _vm.nowCompId == _vm.data.componentId ? _c('div', {
38511
+ staticClass: "com-delete"
38512
+ }, [_vm.showDel ? _c('i', {
38513
+ staticClass: "el-icon-delete",
38514
+ on: {
38515
+ "click": function ($event) {
38516
+ $event.stopPropagation();
38517
+ return _vm.delComp.apply(null, arguments);
38518
+ }
38519
+ }
38520
+ }) : _vm._e(), _c('i', {
38521
+ staticClass: "el-icon-top",
38522
+ on: {
38523
+ "click": function ($event) {
38524
+ $event.stopPropagation();
38525
+ return _vm.selectParentDom.apply(null, arguments);
38526
+ }
38527
+ }
38528
+ })]) : _vm._e()]) : _vm.showSlot ? _c('div', {
38529
+ key: _vm.data.componentId,
38530
+ ref: "targetElement",
38531
+ style: _vm.showStyleConfig
38532
+ }, [_vm._t("default")], 2) : _vm._e();
38533
+ };
38534
+ var staticRenderFns = [];
38535
+
38536
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
38537
+ var es_iterator_constructor = __webpack_require__(8111);
38538
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.reduce.js
38539
+ var es_iterator_reduce = __webpack_require__(8237);
38540
+ // EXTERNAL MODULE: ./package/patch.js
38541
+ var patch = __webpack_require__(1618);
38542
+ // EXTERNAL MODULE: ./node_modules/dayjs/dayjs.min.js
38543
+ var dayjs_min = __webpack_require__(1576);
38544
+ var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
38545
+ ;// ./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/baseComp.vue?vue&type=script&lang=js
38546
+
38547
+
38548
+
38549
+
38550
+ // 待办:判断移动pc端填充不同的样式
38551
+
38552
+
38553
+ /* harmony default export */ var baseCompvue_type_script_lang_js = ({
38554
+ name: "baseComp",
38555
+ props: {
38556
+ data: {
38557
+ type: Object,
38558
+ default: () => {
38559
+ return {};
38560
+ }
38561
+ },
38562
+ nowCompId: {
38563
+ type: [String, Number],
38564
+ default: ""
38565
+ },
38566
+ isOpcacity: {
38567
+ type: Boolean,
38568
+ default: true
38569
+ },
38570
+ isMask: {
38571
+ type: Boolean,
38572
+ default: true
38573
+ },
38574
+ lang: {
38575
+ type: String,
38576
+ default: "zh-HK"
38577
+ },
38578
+ timeline: {
38579
+ type: String,
38580
+ default: ""
38581
+ },
38582
+ cmhkChannel: {
38583
+ type: String,
38584
+ default: "WWW"
38585
+ },
38586
+ showDel: {
38587
+ type: Boolean,
38588
+ default: true
38589
+ }
38590
+ },
38591
+ data() {
38592
+ return {
38593
+ styleConfig_mb: {},
38594
+ styleConfig_pc: {},
38595
+ configData: {},
38596
+ elementWidth: 0,
38597
+ resizeObserver: null
38598
+ };
38599
+ },
38600
+ watch: {
38601
+ data: {
38602
+ handler(val) {
38603
+ this.getStyleConfig(val, "pc");
38604
+ this.getStyleConfig(val, "mb");
38605
+ this.getValue(this.lang);
38606
+ },
38607
+ deep: true,
38608
+ immediate: true
38609
+ },
38610
+ lang: {
38611
+ handler(val) {
38612
+ this.getValue(val);
38613
+ },
38614
+ deep: true,
38615
+ immediate: true
38616
+ }
38617
+ },
38618
+ mounted() {
38619
+ if (this.$EventBus && this.isOpcacity) {
38620
+ this.elementWidth = 800;
38621
+ this.$EventBus.$on("handleDeviceChange", isMobile => {
38622
+ this.elementWidth = isMobile ? 700 : 800;
38623
+ });
38624
+ } else if (this.showSlot) {
38625
+ this.resizeObserver = new ResizeObserver(entries => {
38626
+ for (let entry of entries) {
38627
+ this.elementWidth = entry.contentRect.width;
38628
+ // 可以在这里触发自定义逻辑
38629
+ // this.onWidthChange(this.elementWidth);
38630
+ }
38631
+ });
38632
+ const element = document.getElementById("app") || document.getElementById("__nuxt");
38633
+ this.resizeObserver.observe(element);
38634
+ }
38635
+ },
38636
+ beforeDestroy() {
38637
+ // 组件销毁时停止观察
38638
+ if (this.resizeObserver) {
38639
+ this.resizeObserver.disconnect();
38640
+ }
38641
+ },
38642
+ methods: {
38643
+ selectParentDom() {
38644
+ if (!this.isOpcacity) return;
38645
+ this.$EventBus.$emit("handleParentComp", this.data);
38646
+ },
38647
+ onWidthChange(newWidth) {
38648
+ console.log("新宽度:", newWidth, this.isMobile);
38649
+ },
38650
+ getValue(cur_lang) {
38651
+ var _this$data, _this$data$settings;
38652
+ const obj = {
38653
+ "zh-CN": "lang_sc",
38654
+ "zh-HK": "lang_tc",
38655
+ "en-US": "lang_en"
38656
+ };
38657
+ if ((_this$data = this.data) !== null && _this$data !== void 0 && (_this$data$settings = _this$data.settings) !== null && _this$data$settings !== void 0 && _this$data$settings.settings) {
38658
+ const baseInfo = (0,patch.transfor)(this.data);
38659
+ this.configData = baseInfo.contentConfig.lang_all ? baseInfo.contentConfig.lang_all : baseInfo.contentConfig[`${obj[cur_lang]}`];
38660
+ } else {
38661
+ this.configData = this.data.contentConfig.lang_all ? this.data.contentConfig.lang_all : this.data.contentConfig[`${obj[cur_lang]}`];
38662
+ }
38663
+ this.$emit("getConfigData", this.configData);
38664
+ },
38665
+ getStyleConfig(data, type) {
38666
+ this[`styleConfig_${type}`] = data.styleConfig[type].reduce((pre, cur) => {
38667
+ pre[cur.key] = cur.value + cur.unit;
38668
+ return pre;
38669
+ }, {});
38670
+ },
38671
+ handleNowComp() {
38672
+ if (!this.isOpcacity) return;
38673
+ this.$EventBus.$emit("handleNowComp", this.data);
38674
+ },
38675
+ delComp() {
38676
+ this.$EventBus.$emit("handleDeleteComp", this.data.componentId);
38677
+ }
38678
+ },
38679
+ computed: {
38680
+ showStyleConfig() {
38681
+ if (!this.elementWidth) return {};
38682
+ return this.isMobile ? this.styleConfig_mb : this.styleConfig_pc;
38683
+ },
38684
+ isMobile() {
38685
+ return this.elementWidth < 760;
38686
+ },
38687
+ showSlot() {
38688
+ if (this.$EventBus && this.isOpcacity) return false;
38689
+ const {
38690
+ cmhkChannelConfList = [],
38691
+ startTime = "",
38692
+ endTime = ""
38693
+ } = this.data.baseConfig;
38694
+ console.log("this.cmhkChannel", this.cmhkChannel, this.data.baseConfig);
38695
+ const channelVisable = cmhkChannelConfList.includes("ALL") || cmhkChannelConfList.includes(this.cmhkChannel);
38696
+ if (!channelVisable) return false;
38697
+ if (!startTime && !endTime) return true;
38698
+ const currentTime = this.timeline ? dayjs_min_default()(this.timeline) : dayjs_min_default()();
38699
+ const isStart = startTime ? dayjs_min_default()(currentTime).isAfter(dayjs_min_default()(startTime)) || dayjs_min_default()(currentTime).isSame(dayjs_min_default()(startTime)) : true;
38700
+ const isEnd = endTime ? dayjs_min_default()(currentTime).isBefore(dayjs_min_default()(endTime)) || dayjs_min_default()(currentTime).isSame(dayjs_min_default()(endTime)) : true;
38701
+ return isStart && isEnd;
38702
+ }
38703
+ }
38704
+ });
38705
+ ;// ./package/baseComp.vue?vue&type=script&lang=js
38706
+ /* harmony default export */ var package_baseCompvue_type_script_lang_js = (baseCompvue_type_script_lang_js);
38707
+ ;// ./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/baseComp.vue?vue&type=style&index=0&id=e19eaa9e&prod&lang=scss&scoped=true
38708
+ // extracted by mini-css-extract-plugin
38709
+
38710
+ ;// ./package/baseComp.vue?vue&type=style&index=0&id=e19eaa9e&prod&lang=scss&scoped=true
38711
+
38712
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
38713
+ var componentNormalizer = __webpack_require__(1656);
38714
+ ;// ./package/baseComp.vue
38715
+
38716
+
38717
+
38718
+ ;
38719
+
38720
+
38721
+ /* normalize component */
38722
+
38723
+ var component = (0,componentNormalizer/* default */.A)(
38724
+ package_baseCompvue_type_script_lang_js,
38725
+ render,
38726
+ staticRenderFns,
38727
+ false,
38728
+ null,
38729
+ "e19eaa9e",
38730
+ null
38731
+
38732
+ )
38733
+
38734
+ /* harmony default export */ var baseComp = (component.exports);
38735
+
38736
+ /***/ }),
38737
+
38868
38738
  /***/ 5302:
38869
38739
  /***/ (function(module) {
38870
38740
 
@@ -38878,6 +38748,340 @@ module.exports = Number.isNaN || function isNaN(a) {
38878
38748
 
38879
38749
  /***/ }),
38880
38750
 
38751
+ /***/ 5314:
38752
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
38753
+
38754
+ "use strict";
38755
+ // ESM COMPAT FLAG
38756
+ __webpack_require__.r(__webpack_exports__);
38757
+
38758
+ // EXPORTS
38759
+ __webpack_require__.d(__webpack_exports__, {
38760
+ "default": function() { return /* binding */ View; }
38761
+ });
38762
+
38763
+ ;// ./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-image/View.vue?vue&type=template&id=5dac7dea&scoped=true
38764
+ var render = function render() {
38765
+ var _vm = this,
38766
+ _c = _vm._self._c;
38767
+ return _c('BaseComp', _vm._b({
38768
+ attrs: {
38769
+ "data": _vm.data,
38770
+ "nowCompId": _vm.nowCompId,
38771
+ "isOpcacity": _vm.isOpcacity,
38772
+ "lang": _vm.lang
38773
+ },
38774
+ on: {
38775
+ "getConfigData": _vm.getConfigData
38776
+ }
38777
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
38778
+ staticClass: "cms-image-container",
38779
+ class: [_vm.configData.customClass || '', {
38780
+ 'has-link': _vm.configData.linkUrl
38781
+ }],
38782
+ style: _vm.containerStyle
38783
+ }, [_c('div', {
38784
+ staticClass: "image-wrapper",
38785
+ style: _vm.wrapperStyle,
38786
+ on: {
38787
+ "click": _vm.handleClick
38788
+ }
38789
+ }, [_vm.configData.imageUrl ? _c('img', {
38790
+ staticClass: "cms-image",
38791
+ style: _vm.imageStyle,
38792
+ attrs: {
38793
+ "src": _vm.configData.imageUrl,
38794
+ "alt": _vm.configData.altText || '图片',
38795
+ "title": _vm.configData.title
38796
+ },
38797
+ on: {
38798
+ "load": _vm.onImageLoad,
38799
+ "error": _vm.onImageError
38800
+ }
38801
+ }) : _c('div', {
38802
+ staticClass: "image-placeholder",
38803
+ style: _vm.placeholderStyle
38804
+ }, [_c('img', {
38805
+ staticStyle: {
38806
+ "width": "200px",
38807
+ "height": "200px"
38808
+ },
38809
+ attrs: {
38810
+ "src": __webpack_require__(4806),
38811
+ "alt": "Picture"
38812
+ }
38813
+ })])])]), _c('div', {
38814
+ staticClass: "f-c-c"
38815
+ }, [_vm._v(_vm._s(_vm.configData.remark))])]);
38816
+ };
38817
+ var staticRenderFns = [];
38818
+
38819
+ ;// ./package/cms-image/View.vue?vue&type=template&id=5dac7dea&scoped=true
38820
+
38821
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
38822
+ var es_iterator_constructor = __webpack_require__(8111);
38823
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
38824
+ var es_iterator_for_each = __webpack_require__(7588);
38825
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
38826
+ var baseComp = __webpack_require__(5298);
38827
+ ;// ./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-image/View.vue?vue&type=script&lang=js
38828
+
38829
+
38830
+
38831
+
38832
+
38833
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
38834
+ name: "cms-image",
38835
+ components: {
38836
+ BaseComp: baseComp["default"]
38837
+ },
38838
+ props: {
38839
+ data: {
38840
+ type: Object,
38841
+ default: () => {
38842
+ return {};
38843
+ }
38844
+ },
38845
+ nowCompId: {
38846
+ type: [String, Number],
38847
+ default: ""
38848
+ },
38849
+ isOpcacity: {
38850
+ type: Boolean,
38851
+ default: true
38852
+ },
38853
+ lang: {
38854
+ type: String,
38855
+ default: "zh-HK"
38856
+ }
38857
+ },
38858
+ data() {
38859
+ return {
38860
+ configData: {},
38861
+ imageLoaded: false,
38862
+ imageError: false,
38863
+ // 默认配置数据
38864
+ defaultConfig: {
38865
+ // 图片设置
38866
+ imageUrl: "",
38867
+ altText: "图片",
38868
+ title: "",
38869
+ // 尺寸控制
38870
+ widthType: "auto",
38871
+ widthValue: 100,
38872
+ heightType: "auto",
38873
+ heightValue: 100,
38874
+ maxWidth: 0,
38875
+ maxHeight: 0,
38876
+ // 样式设置
38877
+ borderRadius: 0,
38878
+ objectFit: "cover",
38879
+ // 交互功能
38880
+ linkUrl: "",
38881
+ linkTarget: "_self",
38882
+ // 高级配置
38883
+ customClass: "",
38884
+ customStyle: "",
38885
+ lazyLoad: false
38886
+ }
38887
+ };
38888
+ },
38889
+ mounted() {
38890
+ this.initConfigData();
38891
+ },
38892
+ watch: {
38893
+ configData: {
38894
+ handler() {
38895
+ this.updateStyles();
38896
+ },
38897
+ deep: true
38898
+ }
38899
+ },
38900
+ computed: {
38901
+ // 容器样式
38902
+ containerStyle() {
38903
+ const config = {
38904
+ ...this.defaultConfig,
38905
+ ...this.configData
38906
+ };
38907
+ return {
38908
+ ...this.parseCustomStyle(config.customStyle)
38909
+ };
38910
+ },
38911
+ // 包装器样式
38912
+ wrapperStyle() {
38913
+ const config = {
38914
+ ...this.defaultConfig,
38915
+ ...this.configData
38916
+ };
38917
+ let width = "100%";
38918
+ let height = "auto";
38919
+
38920
+ // 宽度设置
38921
+ if (config.widthType === "fixed") {
38922
+ width = `${config.widthValue}px`;
38923
+ } else if (config.widthType === "percent") {
38924
+ width = `${config.widthValue}%`;
38925
+ }
38926
+
38927
+ // 高度设置
38928
+ if (config.heightType === "fixed") {
38929
+ height = `${config.heightValue}px`;
38930
+ } else if (config.heightType === "percent") {
38931
+ height = `${config.heightValue}%`;
38932
+ }
38933
+ return {
38934
+ width,
38935
+ height,
38936
+ maxWidth: config.maxWidth > 0 ? `${config.maxWidth}px` : "none",
38937
+ maxHeight: config.maxHeight > 0 ? `${config.maxHeight}px` : "none",
38938
+ borderRadius: `${config.borderRadius}px`,
38939
+ overflow: "hidden",
38940
+ cursor: config.linkUrl ? "pointer" : "default",
38941
+ display: "inline-block"
38942
+ };
38943
+ },
38944
+ // 图片样式
38945
+ imageStyle() {
38946
+ const config = {
38947
+ ...this.defaultConfig,
38948
+ ...this.configData
38949
+ };
38950
+ return {
38951
+ width: "100%",
38952
+ height: "100%",
38953
+ objectFit: config.objectFit,
38954
+ display: "block"
38955
+ };
38956
+ },
38957
+ // 占位符样式
38958
+ placeholderStyle() {
38959
+ const config = {
38960
+ ...this.defaultConfig,
38961
+ ...this.configData
38962
+ };
38963
+ let width = "100%";
38964
+ let height = "auto";
38965
+
38966
+ // 如果设置了固定尺寸,使用设置的尺寸
38967
+ if (config.widthType === "fixed") {
38968
+ width = `${config.widthValue}px`;
38969
+ }
38970
+ if (config.heightType === "fixed") {
38971
+ height = `${config.heightValue}px`;
38972
+ }
38973
+ return {
38974
+ width,
38975
+ height,
38976
+ backgroundColor: "#F2F9FF",
38977
+ border: "1px dashed #dcdfe6",
38978
+ borderRadius: `${config.borderRadius}px`,
38979
+ display: "flex",
38980
+ flexDirection: "column",
38981
+ alignItems: "center",
38982
+ justifyContent: "center",
38983
+ color: "#909399",
38984
+ fontSize: "14px"
38985
+ };
38986
+ }
38987
+ },
38988
+ methods: {
38989
+ // 初始化配置数据
38990
+ initConfigData() {
38991
+ this.configData = {
38992
+ ...this.defaultConfig,
38993
+ ...this.configData
38994
+ };
38995
+ },
38996
+ // 获取配置数据
38997
+ getConfigData(configData) {
38998
+ this.configData = {
38999
+ ...this.defaultConfig,
39000
+ ...configData
39001
+ };
39002
+ this.updateStyles();
39003
+ },
39004
+ // 更新样式
39005
+ updateStyles() {
39006
+ this.$nextTick(() => {
39007
+ this.$forceUpdate();
39008
+ });
39009
+ },
39010
+ // 处理点击事件
39011
+ handleClick() {
39012
+ if (this.configData.linkUrl) {
39013
+ const target = this.configData.linkTarget || "_self";
39014
+ if (target === "_blank") {
39015
+ window.open(this.configData.linkUrl, "_blank");
39016
+ } else {
39017
+ window.location.href = this.configData.linkUrl;
39018
+ }
39019
+ }
39020
+ },
39021
+ // 图片加载成功
39022
+ onImageLoad() {
39023
+ this.imageLoaded = true;
39024
+ this.imageError = false;
39025
+ },
39026
+ // 图片加载失败
39027
+ onImageError() {
39028
+ this.imageLoaded = false;
39029
+ this.imageError = true;
39030
+ },
39031
+ // 解析自定义样式
39032
+ parseCustomStyle(customStyle) {
39033
+ if (!customStyle) return {};
39034
+ try {
39035
+ const styles = {};
39036
+ const declarations = customStyle.split(";");
39037
+ declarations.forEach(declaration => {
39038
+ const [property, value] = declaration.split(":");
39039
+ if (property && value) {
39040
+ const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
39041
+ styles[camelCaseProperty] = value.trim();
39042
+ }
39043
+ });
39044
+ return styles;
39045
+ } catch (error) {
39046
+ console.warn("解析自定义样式失败:", error);
39047
+ return {};
39048
+ }
39049
+ }
39050
+ }
39051
+ });
39052
+ ;// ./package/cms-image/View.vue?vue&type=script&lang=js
39053
+ /* harmony default export */ var cms_image_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
39054
+ ;// ./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-image/View.vue?vue&type=style&index=0&id=5dac7dea&prod&lang=scss&scoped=true
39055
+ // extracted by mini-css-extract-plugin
39056
+
39057
+ ;// ./package/cms-image/View.vue?vue&type=style&index=0&id=5dac7dea&prod&lang=scss&scoped=true
39058
+
39059
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
39060
+ var componentNormalizer = __webpack_require__(1656);
39061
+ ;// ./package/cms-image/View.vue
39062
+
39063
+
39064
+
39065
+ ;
39066
+
39067
+
39068
+ /* normalize component */
39069
+
39070
+ var component = (0,componentNormalizer/* default */.A)(
39071
+ cms_image_Viewvue_type_script_lang_js,
39072
+ render,
39073
+ staticRenderFns,
39074
+ false,
39075
+ null,
39076
+ "5dac7dea",
39077
+ null
39078
+
39079
+ )
39080
+
39081
+ /* harmony default export */ var View = (component.exports);
39082
+
39083
+ /***/ }),
39084
+
38881
39085
  /***/ 5340:
38882
39086
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
38883
39087
 
@@ -38885,7 +39089,7 @@ module.exports = Number.isNaN || function isNaN(a) {
38885
39089
  __webpack_require__.r(__webpack_exports__);
38886
39090
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
38887
39091
 
38888
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 3164));
39092
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 470));
38889
39093
 
38890
39094
  // 默认配置数据
38891
39095
  const langData = {
@@ -38893,9 +39097,9 @@ const langData = {
38893
39097
  heightType: "auto",
38894
39098
  fixedHeight: 300,
38895
39099
  // 边框设置
38896
- borderWidth: 1,
39100
+ borderWidth: 0,
38897
39101
  borderStyle: "solid",
38898
- borderColor: "#1c4fc6ff",
39102
+ borderColor: "",
38899
39103
  borderRadius: 0,
38900
39104
  // 背景设置
38901
39105
  backgroundColor: "",
@@ -38954,7 +39158,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
38954
39158
  },
38955
39159
  borderColor: {
38956
39160
  label: "边框颜色",
38957
- widgetType: "el-color-picker"
39161
+ widgetType: "el-color-picker",
39162
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
38958
39163
  },
38959
39164
  borderRadius: {
38960
39165
  label: "圆角(px)",
@@ -38967,7 +39172,8 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
38967
39172
  // 背景设置配置
38968
39173
  backgroundColor: {
38969
39174
  label: "背景颜色",
38970
- widgetType: "el-color-picker"
39175
+ widgetType: "el-color-picker",
39176
+ predefine: ['#2F85FF', '#f48427', '#52C41A', '#D6197F']
38971
39177
  },
38972
39178
  backgroundImage: {
38973
39179
  label: "背景图片",
@@ -39195,7 +39401,7 @@ var swiper = __webpack_require__(2791);
39195
39401
  // EXTERNAL MODULE: ./node_modules/swiper/dist/js/swiper.esm.bundle.js + 3 modules
39196
39402
  var swiper_esm_bundle = __webpack_require__(4418);
39197
39403
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
39198
- var baseComp = __webpack_require__(537);
39404
+ var baseComp = __webpack_require__(5298);
39199
39405
  ;// ./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-aLineThreeLeftTwo/View.vue?vue&type=script&lang=js
39200
39406
 
39201
39407
 
@@ -39510,7 +39716,7 @@ var render = function render() {
39510
39716
  var staticRenderFns = [];
39511
39717
 
39512
39718
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
39513
- var baseComp = __webpack_require__(537);
39719
+ var baseComp = __webpack_require__(5298);
39514
39720
  ;// ./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-cells/View.vue?vue&type=script&lang=js
39515
39721
 
39516
39722
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -39911,6 +40117,14 @@ module.exports = typeof Reflect !== 'undefined' && Reflect.getPrototypeOf || nul
39911
40117
 
39912
40118
  /***/ }),
39913
40119
 
40120
+ /***/ 6148:
40121
+ /***/ (function(module) {
40122
+
40123
+ "use strict";
40124
+ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAABiCAYAAABEZ20wAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAZASURBVHgB7Z1dUhtHEMd7FpXzaOUGywkMJklVniyfAHICtKTybDiBxQkMT6mKyxacIOYElp9SlYSgnMDKDZS3GIMm/55d2zLM7OdoNTL9qxIIzeyH5r/T3dMzuxAJgiAIgiAIgiAIgiAIwnJQtOI8/0P3oog2IqIH+DbxxwJNkxnR37MZjX/6Vo1oBVhJMYYXukszeoKz38ef3RKbTCDOiC7pMPleTShQVkqMGiLcRtMg2VKHFCArIwaEiNGQr/E2puZM6B09Dq2XRLQCDH/XGx6FILOfr+j18DcIHBDB9wzPPeImQfWQDi2An3HF3btHO1A6xus+f6aJ/sVrHF3SqNKXLyEE9vsPfrxSEY35b0RQXXNsRdsF23IP+RW/NykAvPaM4bnuY4+7eNsrqDqaaTr9cUudFOzvKfY3cJVDhDdo8EGy6Q5d0bN6qDikHFFwLoc4lwEtGS9iZKaEv3CPqjGCmUhsPSXb51vXhlrT8d6W2qeSvDzXRxDuiaN4ipZYh6hTWiKNHTgPutBoF1RdCDLbsCNlB30DNPbAuRWu5CpCMFyfBXQUd2HaKu1vETQSgxuxs2Zser2YPyWG57olCLrstqP+JKlpUuBTBvg1tpVF7l7TGrXFMGakY5yfD7q8LzOoo6y3uQRWlFBNjBm6pgNHcXeYHndp1BYjMyNxTpUpHOwpO0d+4f0Zf5ZTP/5gKpBr6jnqjPOcdRkS5KlM9GVhhhwXLZFaoW3mXHdd5Wyb2STs3XCIvJ1Gg7scKZsK1DnC9tZGgahn5AOEwWQ5B5NsXCK1xOBe4QzDUuc6sBXhqp7g1z5CVo5enlqqGEcKUe47jmu191VBz5jYzl8r+pqWSC0zhS/yyFqg6aSMc83qjGxlEOIRGmvdVra2Rl5CT5hB136aBCKNqSxG5mRjx96OqSzX5Mqc9iC2dXyBXhOTB3iETgFSWYyrK6eTm8IMlTcjnVyTY20siOTFwSrHxaRyBplt4DNrW8mE5I52MUtn+xiO34uDzXJWt+CZQVoiPsXw2fVdUVOv6VggG8PEtrIo8hMg1KWyGJ2O/aolHjRZ0hounuc1aoTQ09XT1qxRWGmQMRg6iiZNxzBNqSxGFp66GmqXSoLIqO8o4oHdFGHsqaO8Z7K5Nci2i62F2h7dtUktM6VdZgRz02XMyItzvQ8nahUOIrwxu4royLkDpM2rCoL6z/LS8bxYgZZMvXHGNZ04C5E45MZ2FXMZxhLPnPu+TEXgHpiTZU0F+Uu//aXANLI5RL2LbBGDHR3GqpHa8xn4gpyt7eVUmcxSUzPJDrSh0oknt6NPB40fE4FmTJOm52PKZ8w9Ss9lZLPjPaDi1P4keajWKQDqi5Hmp7ihfEVR1vnoBRyn8JjLonZoaxy5dqajqzOjA1ujmONc0WMiP6mQOYJbrtNonJHwHLb24Pg0pl6/Ua+cx/kOI3tlFg1MyA/jL3LdlEn6zegHqtdQfNVvJgULE8xxuIdAkFynXszUXDwqPCEYb6tDjG2f0YfVIXFBdW6UY1wKR3UWAZh5kTSNz2mNMr6k0fHaolAMjmjevzdrkEo70LWIdlCf0+zzYSc3AkdYZ8iajsgTPCsYfTrW/DmyTxtnK9FHVIPOFSKtFntQrhgv/9S72eAryJRzKyDcRo86aKNHOX0Gm4I7LwSjqN/WMh6nGNfXt7r9nSVS5XNujY7jKkAiT4RomZW4JeCuIGIExEJuCRA+hzPHnQjhtzLjsMQ1iSViLIjPBCh5o4+I4ZE6AswjYjSkqQDziBg18CnAPCJGSRYlwDwiRjni7KaghSLjjIAQMQJCxAgIESMgRIyAEDECQsQICBEjIESMgBAxAkLECAgRIyBEjIAQMQJCxAgIESMgRIyA8DnTx48t8ndbmQ9mtI1z2qHm8IPMzrKnCcW0ILyKkWwW34HUJi/OdYyu70WMvYeqz2/40axaU38RwsgceEWy1YD88i6MiNEA38KIGJ7wIYyIsQDqCuNTjC4c5oACIrvxcqncFIb+c9+i7VWMSDV7FtSXTtHzrGTQFxAiRkC4xbjy9pyOlUe39CBJpxhJ+r/tTkmYqnft3Ade/LiKc93X/CgIdfduRVb8SNdLOgn5f/sJgiAIgiAIgiAIgiAIgg/+B867RkXPJgUfAAAAAElFTkSuQmCC";
40125
+
40126
+ /***/ }),
40127
+
39914
40128
  /***/ 6175:
39915
40129
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
39916
40130
 
@@ -40010,6 +40224,281 @@ module.exports = function (obj) {
40010
40224
  module.exports = {};
40011
40225
 
40012
40226
 
40227
+ /***/ }),
40228
+
40229
+ /***/ 6278:
40230
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
40231
+
40232
+ "use strict";
40233
+ // ESM COMPAT FLAG
40234
+ __webpack_require__.r(__webpack_exports__);
40235
+
40236
+ // EXPORTS
40237
+ __webpack_require__.d(__webpack_exports__, {
40238
+ "default": function() { return /* binding */ View; }
40239
+ });
40240
+
40241
+ ;// ./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/View.vue?vue&type=template&id=73699845&scoped=true
40242
+ var render = function render() {
40243
+ var _vm = this,
40244
+ _c = _vm._self._c;
40245
+ return _c('BaseComp', _vm._b({
40246
+ attrs: {
40247
+ "data": _vm.data,
40248
+ "nowCompId": _vm.nowCompId,
40249
+ "isOpcacity": _vm.isOpcacity,
40250
+ "isMask": false,
40251
+ "lang": _vm.lang
40252
+ },
40253
+ on: {
40254
+ "getConfigData": _vm.getConfigData
40255
+ },
40256
+ scopedSlots: _vm._u([{
40257
+ key: "default",
40258
+ fn: function (slotProps) {
40259
+ return [_c('section', {
40260
+ class: (_vm.configData.widthType === 'full' ? 'width-full' : 'cmhk-home_main', {
40261
+ hoverBorderClass: _vm.isConfigPage
40262
+ }),
40263
+ style: _vm.containerStyle
40264
+ }, [_c('div', {
40265
+ staticClass: "column-setting",
40266
+ class: [`layout-${_vm.configData.layoutType || 'default'}`, `${slotProps.isMobile && _vm.configData.mobileLayout === 'vertical' ? 'mobile-vertical' : 'mobile-horizontal'}`],
40267
+ style: _vm.columnStyle
40268
+ }, _vm._l(_vm.data.childList, function (item, index) {
40269
+ return _c('cms-column-card', {
40270
+ key: item.componentId,
40271
+ class: _vm.getColumnItemClass(index),
40272
+ style: _vm.getColumnItemStyle(index),
40273
+ attrs: {
40274
+ "data": item,
40275
+ "nowCompId": _vm.nowCompId,
40276
+ "isOpcacity": _vm.isOpcacity,
40277
+ "isMask": false,
40278
+ "lang": _vm.lang
40279
+ }
40280
+ });
40281
+ }), 1)])];
40282
+ }
40283
+ }])
40284
+ }, 'BaseComp', _vm.$attrs, false));
40285
+ };
40286
+ var staticRenderFns = [];
40287
+
40288
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
40289
+ var baseComp = __webpack_require__(5298);
40290
+ ;// ./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/View.vue?vue&type=script&lang=js
40291
+
40292
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
40293
+ name: "cms-column",
40294
+ components: {
40295
+ BaseComp: baseComp["default"]
40296
+ },
40297
+ props: {
40298
+ data: {
40299
+ type: Object,
40300
+ default: () => {
40301
+ return {};
40302
+ }
40303
+ },
40304
+ nowCompId: {
40305
+ type: [String, Number],
40306
+ default: ""
40307
+ },
40308
+ isOpcacity: {
40309
+ type: Boolean,
40310
+ default: true
40311
+ },
40312
+ lang: {
40313
+ type: String,
40314
+ default: "zh-HK"
40315
+ }
40316
+ },
40317
+ data() {
40318
+ return {
40319
+ configData: {},
40320
+ messFold: true,
40321
+ // 默认配置数据
40322
+ defaultConfig: {
40323
+ layoutType: "100",
40324
+ heightType: "auto",
40325
+ widthType: "auto",
40326
+ mobileLayout: "vertical",
40327
+ fixedHeight: 300,
40328
+ borderWidth: 0,
40329
+ borderStyle: "solid",
40330
+ borderColor: "",
40331
+ backgroundColor: "#FFF",
40332
+ backgroundImage: "",
40333
+ boxShadow: "",
40334
+ borderRadius: 0,
40335
+ columnGap: 0,
40336
+ rowGap: 0,
40337
+ title: "",
40338
+ description: "",
40339
+ input1: "",
40340
+ showTitle: true,
40341
+ showDescription: true,
40342
+ animationDuration: 300,
40343
+ responsiveBreakpoint: 768
40344
+ }
40345
+ };
40346
+ },
40347
+ mounted() {
40348
+ this.initConfigData();
40349
+ // 添加窗口大小变化监听
40350
+ },
40351
+ watch: {
40352
+ configData: {
40353
+ handler() {
40354
+ this.updateStyles();
40355
+ },
40356
+ deep: true
40357
+ }
40358
+ },
40359
+ computed: {
40360
+ isConfigPage() {
40361
+ return this.$EventBus && this.isOpcacity;
40362
+ },
40363
+ // 容器样式
40364
+ containerStyle() {
40365
+ return {
40366
+ backgroundColor: this.configData.backgroundColor || this.defaultConfig.backgroundColor,
40367
+ backgroundImage: this.configData.backgroundImage ? `url(${this.configData.backgroundImage})` : "",
40368
+ backgroundSize: "cover",
40369
+ backgroundRepeat: "no-repeat",
40370
+ backgroundPosition: "center center",
40371
+ boxShadow: this.configData.boxShadow || this.defaultConfig.boxShadow,
40372
+ borderRadius: `${this.configData.borderRadius || this.defaultConfig.borderRadius}px`,
40373
+ minHeight: this.configData.heightType === "fixed" ? `${this.configData.fixedHeight}px` : "auto"
40374
+ };
40375
+ },
40376
+ // 分栏容器样式
40377
+ columnStyle() {
40378
+ // const gap = this.configData.rowGap || this.defaultConfig.rowGap;
40379
+ return {
40380
+ // gap: `${gap}px`,
40381
+ border: this.configData.borderWidth ? `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}` : "none"
40382
+ };
40383
+ }
40384
+ },
40385
+ methods: {
40386
+ // 初始化配置数据
40387
+ initConfigData() {
40388
+ // 合并默认配置和传入配置
40389
+ this.configData = {
40390
+ ...this.defaultConfig,
40391
+ ...this.configData
40392
+ };
40393
+ },
40394
+ // 获取配置数据
40395
+ getConfigData(configData) {
40396
+ this.configData = {
40397
+ ...this.defaultConfig,
40398
+ ...configData
40399
+ };
40400
+ this.updateStyles();
40401
+ },
40402
+ // 更新样式
40403
+ updateStyles() {
40404
+ this.$nextTick(() => {
40405
+ // 触发样式更新
40406
+ this.$forceUpdate();
40407
+ });
40408
+ },
40409
+ // 获取分栏项的类名
40410
+ getColumnItemClass(index) {
40411
+ const layoutType = this.configData.layoutType || this.defaultConfig.layoutType;
40412
+ return ["column-item", `column-item-${index}`, `layout-${layoutType}`, {
40413
+ "min-h": this.$EventBus && this.isOpcacity,
40414
+ "first-item": index === 0,
40415
+ "last-item": index === this.data.childList.length - 1
40416
+ }];
40417
+ },
40418
+ // 获取分栏项的样式
40419
+ getColumnItemStyle(index) {
40420
+ const layoutType = this.configData.layoutType || this.defaultConfig.layoutType;
40421
+ const gap = this.configData.rowGap || this.defaultConfig.rowGap;
40422
+ let flexBasis = "100%";
40423
+ let marginRight = "0";
40424
+
40425
+ // 根据布局类型设置宽度
40426
+ switch (layoutType) {
40427
+ case "50-50":
40428
+ flexBasis = `calc(50% - ${gap / 2}px)`;
40429
+ marginRight = index % 2 === 0 ? `${gap}px` : "0";
40430
+ break;
40431
+ case "33-66":
40432
+ flexBasis = index === 0 ? `calc(33.33% - ${gap / 2}px)` : `calc(66.67% - ${gap / 2}px)`;
40433
+ marginRight = index === 0 ? `${gap}px` : "0";
40434
+ break;
40435
+ case "66-33":
40436
+ flexBasis = index === 0 ? `calc(66.67% - ${gap / 2}px)` : `calc(33.33% - ${gap / 2}px)`;
40437
+ marginRight = index === 0 ? `${gap}px` : "0";
40438
+ break;
40439
+ case "33-33-33":
40440
+ flexBasis = `calc(33.33% - ${gap * 2 / 3}px)`;
40441
+ marginRight = index < 2 ? `${gap}px` : "0";
40442
+ break;
40443
+ case "25-50-25":
40444
+ if (index === 0 || index === 2) {
40445
+ flexBasis = `calc(25% - ${gap * 2 / 3}px)`;
40446
+ } else {
40447
+ flexBasis = `calc(50% - ${gap * 2 / 3}px)`;
40448
+ }
40449
+ marginRight = index < 2 ? `${gap}px` : "0";
40450
+ break;
40451
+ default:
40452
+ flexBasis = "100%";
40453
+ }
40454
+ return {
40455
+ flexBasis,
40456
+ marginRight,
40457
+ marginBottom: `${this.configData.columnGap || this.defaultConfig.columnGap}px`
40458
+ };
40459
+ },
40460
+ // 折叠/展开文本
40461
+ foldMessText() {
40462
+ this.messFold = !this.messFold;
40463
+ },
40464
+ // 处理跳转链接
40465
+ decodeJumpUrl(url) {
40466
+ if (!url) return;
40467
+ top.location.href = url;
40468
+ }
40469
+ }
40470
+ });
40471
+ ;// ./package/cms-column/View.vue?vue&type=script&lang=js
40472
+ /* harmony default export */ var cms_column_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
40473
+ ;// ./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/View.vue?vue&type=style&index=0&id=73699845&prod&lang=scss&scoped=true
40474
+ // extracted by mini-css-extract-plugin
40475
+
40476
+ ;// ./package/cms-column/View.vue?vue&type=style&index=0&id=73699845&prod&lang=scss&scoped=true
40477
+
40478
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
40479
+ var componentNormalizer = __webpack_require__(1656);
40480
+ ;// ./package/cms-column/View.vue
40481
+
40482
+
40483
+
40484
+ ;
40485
+
40486
+
40487
+ /* normalize component */
40488
+
40489
+ var component = (0,componentNormalizer/* default */.A)(
40490
+ cms_column_Viewvue_type_script_lang_js,
40491
+ render,
40492
+ staticRenderFns,
40493
+ false,
40494
+ null,
40495
+ "73699845",
40496
+ null
40497
+
40498
+ )
40499
+
40500
+ /* harmony default export */ var View = (component.exports);
40501
+
40013
40502
  /***/ }),
40014
40503
 
40015
40504
  /***/ 6279:
@@ -40118,6 +40607,7 @@ module.exports = $Object.getPrototypeOf || null;
40118
40607
  __webpack_require__.r(__webpack_exports__);
40119
40608
  /* harmony default export */ __webpack_exports__["default"] = ({
40120
40609
  Expand: "Expand",
40610
+ More: "More",
40121
40611
  Collpase: "Collpase",
40122
40612
  discount: 'Discount period:'
40123
40613
  });
@@ -40330,7 +40820,7 @@ var render = function render() {
40330
40820
  var staticRenderFns = [];
40331
40821
 
40332
40822
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
40333
- var baseComp = __webpack_require__(537);
40823
+ var baseComp = __webpack_require__(5298);
40334
40824
  // EXTERNAL MODULE: ./src/utils/jumpUrl.js
40335
40825
  var jumpUrl = __webpack_require__(813);
40336
40826
  // EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm.js
@@ -40683,7 +41173,7 @@ var staticRenderFns = [];
40683
41173
  ;// ./package/cms-prodCustomization/View.vue?vue&type=template&id=61a0a18c&scoped=true
40684
41174
 
40685
41175
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
40686
- var baseComp = __webpack_require__(537);
41176
+ var baseComp = __webpack_require__(5298);
40687
41177
  ;// ./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-prodCustomization/View.vue?vue&type=script&lang=js
40688
41178
 
40689
41179
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -48686,6 +49176,64 @@ module.exports = Math.min;
48686
49176
 
48687
49177
  /***/ }),
48688
49178
 
49179
+ /***/ 6940:
49180
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
49181
+
49182
+ "use strict";
49183
+ __webpack_require__.r(__webpack_exports__);
49184
+ /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
49185
+
49186
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 9345));
49187
+ const langData = {
49188
+ colNums: 1,
49189
+ defaultCol: 12,
49190
+ gap: 10
49191
+ };
49192
+ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
49193
+ // 布局配置
49194
+ colNums: {
49195
+ label: "视频样式",
49196
+ widgetType: "el-radio-group",
49197
+ options: [{
49198
+ label: "一行一个",
49199
+ value: 1
49200
+ }, {
49201
+ label: "一行两个",
49202
+ value: 2
49203
+ }, {
49204
+ label: "一行三个",
49205
+ value: 3
49206
+ }],
49207
+ isCol: true
49208
+ },
49209
+ defaultCol: {
49210
+ label: "默认展示(行)",
49211
+ widgetType: "el-input-number",
49212
+ size: "small",
49213
+ min: 1,
49214
+ max: 12,
49215
+ step: 1,
49216
+ isCol: true,
49217
+ unit: "行"
49218
+ }
49219
+ });
49220
+ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSchema)(langData);
49221
+ /* harmony default export */ __webpack_exports__["default"] = ({
49222
+ View,
49223
+ validateSchema,
49224
+ configDataType,
49225
+ langData,
49226
+ settings: cmsCompName => {
49227
+ return (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getInitCompData)({
49228
+ cmsCompName,
49229
+ langData,
49230
+ isLangAll: true
49231
+ });
49232
+ }
49233
+ });
49234
+
49235
+ /***/ }),
49236
+
48689
49237
  /***/ 6955:
48690
49238
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
48691
49239
 
@@ -49004,7 +49552,7 @@ var render = function render() {
49004
49552
  var staticRenderFns = [];
49005
49553
 
49006
49554
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
49007
- var baseComp = __webpack_require__(537);
49555
+ var baseComp = __webpack_require__(5298);
49008
49556
  // EXTERNAL MODULE: ./package/patch.js
49009
49557
  var patch = __webpack_require__(1618);
49010
49558
  ;// ./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-via-storedValueCard/View.vue?vue&type=script&lang=js
@@ -49825,7 +50373,7 @@ var render = function render() {
49825
50373
  var staticRenderFns = [];
49826
50374
 
49827
50375
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
49828
- var baseComp = __webpack_require__(537);
50376
+ var baseComp = __webpack_require__(5298);
49829
50377
  ;// ./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-productDetails/View.vue?vue&type=script&lang=js
49830
50378
 
49831
50379
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -50075,7 +50623,7 @@ var swiper = __webpack_require__(2791);
50075
50623
  // EXTERNAL MODULE: ./node_modules/swiper/dist/js/swiper.esm.bundle.js + 3 modules
50076
50624
  var swiper_esm_bundle = __webpack_require__(4418);
50077
50625
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
50078
- var baseComp = __webpack_require__(537);
50626
+ var baseComp = __webpack_require__(5298);
50079
50627
  ;// ./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-threeScroll/View.vue?vue&type=script&lang=js
50080
50628
 
50081
50629
 
@@ -50261,7 +50809,7 @@ var swiper = __webpack_require__(2791);
50261
50809
  // EXTERNAL MODULE: ./node_modules/swiper/dist/js/swiper.esm.bundle.js + 3 modules
50262
50810
  var swiper_esm_bundle = __webpack_require__(4418);
50263
50811
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
50264
- var baseComp = __webpack_require__(537);
50812
+ var baseComp = __webpack_require__(5298);
50265
50813
  ;// ./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-termsAndConditions/View.vue?vue&type=script&lang=js
50266
50814
 
50267
50815
 
@@ -50477,7 +51025,7 @@ var render = function render() {
50477
51025
  var staticRenderFns = [];
50478
51026
 
50479
51027
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
50480
- var baseComp = __webpack_require__(537);
51028
+ var baseComp = __webpack_require__(5298);
50481
51029
  ;// ./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-titleCenter/View.vue?vue&type=script&lang=js
50482
51030
 
50483
51031
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -50819,6 +51367,18 @@ function queryPageHfList(data) {
50819
51367
  });
50820
51368
  }
50821
51369
 
51370
+ /**
51371
+ * 查询URL接口
51372
+ * @returns {Promise}
51373
+ */
51374
+ function queryUrl(data) {
51375
+ return request({
51376
+ method: "post",
51377
+ url: "/omni-channel-service-console/rest/workBench/queryUrl",
51378
+ data
51379
+ });
51380
+ }
51381
+
50822
51382
  /**
50823
51383
  * 创建页面
50824
51384
  * @param {Object} pageData 页面数据
@@ -50977,11 +51537,18 @@ function emallHeartbeat(data) {
50977
51537
  data
50978
51538
  });
50979
51539
  }
51540
+ function qryBtList(data) {
51541
+ return request({
51542
+ method: "post",
51543
+ url: "/omni-channel-service-console/rest/component/qryBtList",
51544
+ data
51545
+ });
51546
+ }
50980
51547
  // EXTERNAL MODULE: ./node_modules/qs/lib/index.js
50981
51548
  var lib = __webpack_require__(9122);
50982
51549
  var lib_default = /*#__PURE__*/__webpack_require__.n(lib);
50983
51550
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
50984
- var baseComp = __webpack_require__(537);
51551
+ var baseComp = __webpack_require__(5298);
50985
51552
  ;// ./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-proCard/View.vue?vue&type=script&lang=js
50986
51553
 
50987
51554
 
@@ -51232,6 +51799,181 @@ const validateSchema = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getValidateSc
51232
51799
 
51233
51800
  /***/ }),
51234
51801
 
51802
+ /***/ 8216:
51803
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
51804
+
51805
+ "use strict";
51806
+ // ESM COMPAT FLAG
51807
+ __webpack_require__.r(__webpack_exports__);
51808
+
51809
+ // EXPORTS
51810
+ __webpack_require__.d(__webpack_exports__, {
51811
+ "default": function() { return /* binding */ View; }
51812
+ });
51813
+
51814
+ ;// ./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-video-group/View.vue?vue&type=template&id=13b5a669&scoped=true
51815
+ var render = function render() {
51816
+ var _vm = this,
51817
+ _c = _vm._self._c;
51818
+ return _c('BaseComp', _vm._b({
51819
+ attrs: {
51820
+ "data": _vm.data,
51821
+ "nowCompId": _vm.nowCompId,
51822
+ "isOpcacity": _vm.isOpcacity,
51823
+ "isMask": false,
51824
+ "lang": _vm.lang
51825
+ },
51826
+ on: {
51827
+ "getConfigData": _vm.getConfigData
51828
+ }
51829
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
51830
+ staticClass: "cmhk-home_main"
51831
+ }, [_c('div', {
51832
+ staticClass: "wrap",
51833
+ style: {
51834
+ 'grid-template-columns': `repeat(${_vm.configData.colNums}, 1fr)`,
51835
+ 'grid-gap': `${_vm.configData.gap}px`
51836
+ }
51837
+ }, _vm._l(_vm.showVideoList, function (item) {
51838
+ return _c('cms-video', {
51839
+ key: item.componentId,
51840
+ staticStyle: {
51841
+ "overflow": "hidden"
51842
+ },
51843
+ attrs: {
51844
+ "data": item,
51845
+ "nowCompId": _vm.nowCompId,
51846
+ "isOpcacity": _vm.isOpcacity,
51847
+ "isMask": false,
51848
+ "lang": _vm.lang
51849
+ }
51850
+ });
51851
+ }), 1), _vm.isShowPannel ? [_c('div', {
51852
+ staticClass: "view-more-container"
51853
+ }, [_c('div', {
51854
+ staticClass: "view-more-btn",
51855
+ on: {
51856
+ "click": _vm.foldMessText
51857
+ }
51858
+ }, [_c('span', {
51859
+ staticClass: "view-more-text"
51860
+ }, [_vm._v(" " + _vm._s(_vm.messFold ? _vm.$t("roamIndex.Collpase") : _vm.$t("roamIndex.More")) + " ")]), _c('i', {
51861
+ class: ['view-more-icon', _vm.messFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down']
51862
+ })])])] : _vm._e()], 2)]);
51863
+ };
51864
+ var staticRenderFns = [];
51865
+
51866
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
51867
+ var baseComp = __webpack_require__(5298);
51868
+ ;// ./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-video-group/View.vue?vue&type=script&lang=js
51869
+
51870
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
51871
+ name: "cms-video-group",
51872
+ components: {
51873
+ BaseComp: baseComp["default"]
51874
+ },
51875
+ props: {
51876
+ data: {
51877
+ type: Object,
51878
+ default: () => {
51879
+ return {};
51880
+ }
51881
+ },
51882
+ nowCompId: {
51883
+ type: [String, Number],
51884
+ default: ""
51885
+ },
51886
+ isOpcacity: {
51887
+ type: Boolean,
51888
+ default: true
51889
+ },
51890
+ lang: {
51891
+ type: String,
51892
+ default: "zh-HK"
51893
+ }
51894
+ },
51895
+ data() {
51896
+ return {
51897
+ configData: {},
51898
+ messFold: false,
51899
+ // 默认配置数据
51900
+ isShowPannel: false
51901
+ };
51902
+ },
51903
+ mounted() {},
51904
+ watch: {
51905
+ configData: {
51906
+ handler() {
51907
+ this.updateStyles();
51908
+ },
51909
+ deep: true
51910
+ }
51911
+ },
51912
+ computed: {
51913
+ showVideoList() {
51914
+ if (this.isShowPannel && !this.messFold) return this.data.childList.slice(0, this.configData.colNums * this.configData.defaultCol);
51915
+ return this.data.childList;
51916
+ },
51917
+ isConfigPage() {
51918
+ return this.$EventBus && this.isOpcacity;
51919
+ }
51920
+ },
51921
+ methods: {
51922
+ // 获取配置数据
51923
+ getConfigData(configData) {
51924
+ this.configData = {
51925
+ ...this.defaultConfig,
51926
+ ...configData
51927
+ };
51928
+ this.updateStyles();
51929
+ this.isShowPannel = this.configData.colNums * this.configData.defaultCol < this.data.childList.length;
51930
+ },
51931
+ // 更新样式
51932
+ updateStyles() {
51933
+ this.$nextTick(() => {
51934
+ // 触发样式更新
51935
+ this.$forceUpdate();
51936
+ });
51937
+ },
51938
+ // 折叠/展开文本
51939
+ foldMessText() {
51940
+ this.messFold = !this.messFold;
51941
+ }
51942
+ }
51943
+ });
51944
+ ;// ./package/cms-video-group/View.vue?vue&type=script&lang=js
51945
+ /* harmony default export */ var cms_video_group_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
51946
+ ;// ./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-video-group/View.vue?vue&type=style&index=0&id=13b5a669&prod&lang=scss&scoped=true
51947
+ // extracted by mini-css-extract-plugin
51948
+
51949
+ ;// ./package/cms-video-group/View.vue?vue&type=style&index=0&id=13b5a669&prod&lang=scss&scoped=true
51950
+
51951
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
51952
+ var componentNormalizer = __webpack_require__(1656);
51953
+ ;// ./package/cms-video-group/View.vue
51954
+
51955
+
51956
+
51957
+ ;
51958
+
51959
+
51960
+ /* normalize component */
51961
+
51962
+ var component = (0,componentNormalizer/* default */.A)(
51963
+ cms_video_group_Viewvue_type_script_lang_js,
51964
+ render,
51965
+ staticRenderFns,
51966
+ false,
51967
+ null,
51968
+ "13b5a669",
51969
+ null
51970
+
51971
+ )
51972
+
51973
+ /* harmony default export */ var View = (component.exports);
51974
+
51975
+ /***/ }),
51976
+
51235
51977
  /***/ 8227:
51236
51978
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51237
51979
 
@@ -51321,7 +52063,7 @@ var render = function render() {
51321
52063
  var staticRenderFns = [];
51322
52064
 
51323
52065
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
51324
- var baseComp = __webpack_require__(537);
52066
+ var baseComp = __webpack_require__(5298);
51325
52067
  ;// ./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-iconFour/View.vue?vue&type=script&lang=js
51326
52068
 
51327
52069
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -51526,7 +52268,7 @@ var swiper = __webpack_require__(2791);
51526
52268
  // EXTERNAL MODULE: ./node_modules/swiper/dist/js/swiper.esm.bundle.js + 3 modules
51527
52269
  var swiper_esm_bundle = __webpack_require__(4418);
51528
52270
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
51529
- var baseComp = __webpack_require__(537);
52271
+ var baseComp = __webpack_require__(5298);
51530
52272
  ;// ./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-imgFour/View.vue?vue&type=script&lang=js
51531
52273
 
51532
52274
 
@@ -51720,7 +52462,7 @@ var staticRenderFns = [];
51720
52462
  ;// ./package/cms-activityTime/View.vue?vue&type=template&id=0e496ed4&scoped=true
51721
52463
 
51722
52464
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
51723
- var baseComp = __webpack_require__(537);
52465
+ var baseComp = __webpack_require__(5298);
51724
52466
  ;// ./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-activityTime/View.vue?vue&type=script&lang=js
51725
52467
 
51726
52468
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -52624,7 +53366,7 @@ var render = function render() {
52624
53366
  var staticRenderFns = [];
52625
53367
 
52626
53368
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
52627
- var baseComp = __webpack_require__(537);
53369
+ var baseComp = __webpack_require__(5298);
52628
53370
  // EXTERNAL MODULE: ./src/utils/request.js + 2 modules
52629
53371
  var utils_request = __webpack_require__(1564);
52630
53372
  ;// ./src/api/servePlan.js
@@ -52803,9 +53545,10 @@ var component = (0,componentNormalizer/* default */.A)(
52803
53545
  __webpack_require__.r(__webpack_exports__);
52804
53546
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
52805
53547
 
52806
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 4986));
53548
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 5314));
52807
53549
  const langData = {
52808
53550
  // 图片设置
53551
+ remark: "",
52809
53552
  imageUrl: "",
52810
53553
  altText: "图片",
52811
53554
  title: "",
@@ -52828,6 +53571,11 @@ const langData = {
52828
53571
  lazyLoad: false
52829
53572
  };
52830
53573
  const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataType)(langData, {
53574
+ remark: {
53575
+ label: "图片备注",
53576
+ widgetType: "el-input",
53577
+ placeholder: "请输入图片备注"
53578
+ },
52831
53579
  // 图片设置配置
52832
53580
  imageUrl: {
52833
53581
  label: "图片地址",
@@ -52835,15 +53583,16 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
52835
53583
  placeholder: "请选择或输入图片地址"
52836
53584
  },
52837
53585
  altText: {
52838
- label: "替代文本",
52839
- widgetType: "el-input",
52840
- placeholder: "请输入图片的替代文本"
52841
- },
52842
- title: {
52843
- label: "图片标题",
53586
+ label: "alt属性",
52844
53587
  widgetType: "el-input",
52845
- placeholder: "请输入图片标题(鼠标悬停时显示)"
53588
+ placeholder: "请输入图片的alt属性"
52846
53589
  },
53590
+ // title: {
53591
+ // label: "图片标题",
53592
+ // widgetType: "el-input",
53593
+ // placeholder: "请输入图片标题(鼠标悬停时显示)"
53594
+ // },
53595
+
52847
53596
  // 尺寸控制配置
52848
53597
  widthType: {
52849
53598
  label: "宽度类型",
@@ -53177,7 +53926,7 @@ var render = function render() {
53177
53926
  var staticRenderFns = [];
53178
53927
 
53179
53928
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
53180
- var baseComp = __webpack_require__(537);
53929
+ var baseComp = __webpack_require__(5298);
53181
53930
  // EXTERNAL MODULE: ./src/utils/jumpUrl.js
53182
53931
  var jumpUrl = __webpack_require__(813);
53183
53932
  ;// ./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-titleLeft/View.vue?vue&type=script&setup=true&lang=js
@@ -53577,6 +54326,181 @@ module.exports = TypeError;
53577
54326
 
53578
54327
  /***/ }),
53579
54328
 
54329
+ /***/ 9345:
54330
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
54331
+
54332
+ "use strict";
54333
+ // ESM COMPAT FLAG
54334
+ __webpack_require__.r(__webpack_exports__);
54335
+
54336
+ // EXPORTS
54337
+ __webpack_require__.d(__webpack_exports__, {
54338
+ "default": function() { return /* binding */ View; }
54339
+ });
54340
+
54341
+ ;// ./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-image-group/View.vue?vue&type=template&id=7cb50abc&scoped=true
54342
+ var render = function render() {
54343
+ var _vm = this,
54344
+ _c = _vm._self._c;
54345
+ return _c('BaseComp', _vm._b({
54346
+ attrs: {
54347
+ "data": _vm.data,
54348
+ "nowCompId": _vm.nowCompId,
54349
+ "isOpcacity": _vm.isOpcacity,
54350
+ "isMask": false,
54351
+ "lang": _vm.lang
54352
+ },
54353
+ on: {
54354
+ "getConfigData": _vm.getConfigData
54355
+ }
54356
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
54357
+ staticClass: "cmhk-home_main"
54358
+ }, [_c('div', {
54359
+ staticClass: "wrap",
54360
+ style: {
54361
+ 'grid-template-columns': `repeat(${_vm.configData.colNums}, 1fr)`,
54362
+ 'grid-gap': `${_vm.configData.gap}px`
54363
+ }
54364
+ }, _vm._l(_vm.showVideoList, function (item) {
54365
+ return _c('cms-image', {
54366
+ key: item.componentId,
54367
+ staticStyle: {
54368
+ "overflow": "hidden"
54369
+ },
54370
+ attrs: {
54371
+ "data": item,
54372
+ "nowCompId": _vm.nowCompId,
54373
+ "isOpcacity": _vm.isOpcacity,
54374
+ "isMask": false,
54375
+ "lang": _vm.lang
54376
+ }
54377
+ });
54378
+ }), 1), _vm.isShowPannel ? [_c('div', {
54379
+ staticClass: "view-more-container"
54380
+ }, [_c('div', {
54381
+ staticClass: "view-more-btn",
54382
+ on: {
54383
+ "click": _vm.foldMessText
54384
+ }
54385
+ }, [_c('span', {
54386
+ staticClass: "view-more-text"
54387
+ }, [_vm._v(" " + _vm._s(_vm.messFold ? _vm.$t("roamIndex.Collpase") : _vm.$t("roamIndex.More")) + " ")]), _c('i', {
54388
+ class: ['view-more-icon', _vm.messFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down']
54389
+ })])])] : _vm._e()], 2)]);
54390
+ };
54391
+ var staticRenderFns = [];
54392
+
54393
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
54394
+ var baseComp = __webpack_require__(5298);
54395
+ ;// ./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-image-group/View.vue?vue&type=script&lang=js
54396
+
54397
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
54398
+ name: "cms-image-group",
54399
+ components: {
54400
+ BaseComp: baseComp["default"]
54401
+ },
54402
+ props: {
54403
+ data: {
54404
+ type: Object,
54405
+ default: () => {
54406
+ return {};
54407
+ }
54408
+ },
54409
+ nowCompId: {
54410
+ type: [String, Number],
54411
+ default: ""
54412
+ },
54413
+ isOpcacity: {
54414
+ type: Boolean,
54415
+ default: true
54416
+ },
54417
+ lang: {
54418
+ type: String,
54419
+ default: "zh-HK"
54420
+ }
54421
+ },
54422
+ data() {
54423
+ return {
54424
+ configData: {},
54425
+ messFold: false,
54426
+ // 默认配置数据
54427
+ isShowPannel: false
54428
+ };
54429
+ },
54430
+ mounted() {},
54431
+ watch: {
54432
+ configData: {
54433
+ handler() {
54434
+ this.updateStyles();
54435
+ },
54436
+ deep: true
54437
+ }
54438
+ },
54439
+ computed: {
54440
+ showVideoList() {
54441
+ if (this.isShowPannel && !this.messFold) return this.data.childList.slice(0, this.configData.colNums * this.configData.defaultCol);
54442
+ return this.data.childList;
54443
+ },
54444
+ isConfigPage() {
54445
+ return this.$EventBus && this.isOpcacity;
54446
+ }
54447
+ },
54448
+ methods: {
54449
+ // 获取配置数据
54450
+ getConfigData(configData) {
54451
+ this.configData = {
54452
+ ...this.defaultConfig,
54453
+ ...configData
54454
+ };
54455
+ this.updateStyles();
54456
+ this.isShowPannel = this.configData.colNums * this.configData.defaultCol < this.data.childList.length;
54457
+ },
54458
+ // 更新样式
54459
+ updateStyles() {
54460
+ this.$nextTick(() => {
54461
+ // 触发样式更新
54462
+ this.$forceUpdate();
54463
+ });
54464
+ },
54465
+ // 折叠/展开文本
54466
+ foldMessText() {
54467
+ this.messFold = !this.messFold;
54468
+ }
54469
+ }
54470
+ });
54471
+ ;// ./package/cms-image-group/View.vue?vue&type=script&lang=js
54472
+ /* harmony default export */ var cms_image_group_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
54473
+ ;// ./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-image-group/View.vue?vue&type=style&index=0&id=7cb50abc&prod&lang=scss&scoped=true
54474
+ // extracted by mini-css-extract-plugin
54475
+
54476
+ ;// ./package/cms-image-group/View.vue?vue&type=style&index=0&id=7cb50abc&prod&lang=scss&scoped=true
54477
+
54478
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
54479
+ var componentNormalizer = __webpack_require__(1656);
54480
+ ;// ./package/cms-image-group/View.vue
54481
+
54482
+
54483
+
54484
+ ;
54485
+
54486
+
54487
+ /* normalize component */
54488
+
54489
+ var component = (0,componentNormalizer/* default */.A)(
54490
+ cms_image_group_Viewvue_type_script_lang_js,
54491
+ render,
54492
+ staticRenderFns,
54493
+ false,
54494
+ null,
54495
+ "7cb50abc",
54496
+ null
54497
+
54498
+ )
54499
+
54500
+ /* harmony default export */ var View = (component.exports);
54501
+
54502
+ /***/ }),
54503
+
53580
54504
  /***/ 9387:
53581
54505
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
53582
54506
 
@@ -53850,7 +54774,7 @@ var render = function render() {
53850
54774
  var staticRenderFns = [];
53851
54775
 
53852
54776
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
53853
- var baseComp = __webpack_require__(537);
54777
+ var baseComp = __webpack_require__(5298);
53854
54778
  ;// ./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-servePlan-text/View.vue?vue&type=script&lang=js
53855
54779
 
53856
54780
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -54755,7 +55679,7 @@ var render = function render() {
54755
55679
  var staticRenderFns = [];
54756
55680
 
54757
55681
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
54758
- var baseComp = __webpack_require__(537);
55682
+ var baseComp = __webpack_require__(5298);
54759
55683
  ;// ./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-lineFour/View.vue?vue&type=script&lang=js
54760
55684
 
54761
55685
  /* harmony default export */ var Viewvue_type_script_lang_js = ({
@@ -54985,7 +55909,7 @@ var es_iterator_for_each = __webpack_require__(7588);
54985
55909
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
54986
55910
  var es_iterator_map = __webpack_require__(1701);
54987
55911
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
54988
- var baseComp = __webpack_require__(537);
55912
+ var baseComp = __webpack_require__(5298);
54989
55913
  ;// ./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-question/View.vue?vue&type=script&lang=js
54990
55914
 
54991
55915
 
@@ -55224,276 +56148,6 @@ __webpack_require__(6368);
55224
56148
  __webpack_require__(9309);
55225
56149
 
55226
56150
 
55227
- /***/ }),
55228
-
55229
- /***/ 9886:
55230
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
55231
-
55232
- "use strict";
55233
- // ESM COMPAT FLAG
55234
- __webpack_require__.r(__webpack_exports__);
55235
-
55236
- // EXPORTS
55237
- __webpack_require__.d(__webpack_exports__, {
55238
- "default": function() { return /* binding */ View; }
55239
- });
55240
-
55241
- ;// ./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/View.vue?vue&type=template&id=67ae24ec&scoped=true
55242
- var render = function render() {
55243
- var _vm = this,
55244
- _c = _vm._self._c;
55245
- return _c('BaseComp', _vm._b({
55246
- attrs: {
55247
- "data": _vm.data,
55248
- "nowCompId": _vm.nowCompId,
55249
- "isOpcacity": _vm.isOpcacity,
55250
- "isMask": false,
55251
- "lang": _vm.lang
55252
- },
55253
- on: {
55254
- "getConfigData": _vm.getConfigData
55255
- },
55256
- scopedSlots: _vm._u([{
55257
- key: "default",
55258
- fn: function (slotProps) {
55259
- return [_c('section', {
55260
- class: _vm.configData.widthType === 'full' ? 'width-full' : 'cmhk-home_main',
55261
- style: _vm.containerStyle
55262
- }, [_c('div', {
55263
- staticClass: "column-setting",
55264
- class: [`layout-${_vm.configData.layoutType || 'default'}`, `${slotProps.isMobile && _vm.configData.mobileLayout === 'vertical' ? 'mobile-vertical' : 'mobile-horizontal'}`],
55265
- style: _vm.columnStyle
55266
- }, _vm._l(_vm.data.childList, function (item, index) {
55267
- return _c('cms-column-card', {
55268
- key: item.componentId,
55269
- class: _vm.getColumnItemClass(index),
55270
- style: _vm.getColumnItemStyle(index),
55271
- attrs: {
55272
- "data": item,
55273
- "nowCompId": _vm.nowCompId,
55274
- "isOpcacity": _vm.isOpcacity,
55275
- "isMask": false,
55276
- "lang": _vm.lang
55277
- }
55278
- });
55279
- }), 1)])];
55280
- }
55281
- }])
55282
- }, 'BaseComp', _vm.$attrs, false));
55283
- };
55284
- var staticRenderFns = [];
55285
-
55286
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
55287
- var baseComp = __webpack_require__(537);
55288
- ;// ./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/View.vue?vue&type=script&lang=js
55289
-
55290
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
55291
- name: "cms-column",
55292
- components: {
55293
- BaseComp: baseComp["default"]
55294
- },
55295
- props: {
55296
- data: {
55297
- type: Object,
55298
- default: () => {
55299
- return {};
55300
- }
55301
- },
55302
- nowCompId: {
55303
- type: [String, Number],
55304
- default: ""
55305
- },
55306
- isOpcacity: {
55307
- type: Boolean,
55308
- default: true
55309
- },
55310
- lang: {
55311
- type: String,
55312
- default: "zh-HK"
55313
- }
55314
- },
55315
- data() {
55316
- return {
55317
- configData: {},
55318
- messFold: true,
55319
- // 默认配置数据
55320
- defaultConfig: {
55321
- layoutType: "100",
55322
- heightType: "auto",
55323
- widthType: "auto",
55324
- mobileLayout: "vertical",
55325
- fixedHeight: 300,
55326
- borderWidth: 0,
55327
- borderStyle: "solid",
55328
- borderColor: "#409eff",
55329
- backgroundColor: "#FFF",
55330
- backgroundImage: "",
55331
- boxShadow: "",
55332
- borderRadius: 0,
55333
- columnGap: 0,
55334
- rowGap: 0,
55335
- title: "",
55336
- description: "",
55337
- input1: "",
55338
- showTitle: true,
55339
- showDescription: true,
55340
- animationDuration: 300,
55341
- responsiveBreakpoint: 768
55342
- }
55343
- };
55344
- },
55345
- mounted() {
55346
- this.initConfigData();
55347
- // 添加窗口大小变化监听
55348
- },
55349
- watch: {
55350
- configData: {
55351
- handler() {
55352
- this.updateStyles();
55353
- },
55354
- deep: true
55355
- }
55356
- },
55357
- computed: {
55358
- // 容器样式
55359
- containerStyle() {
55360
- return {
55361
- backgroundColor: this.configData.backgroundColor || this.defaultConfig.backgroundColor,
55362
- backgroundImage: this.configData.backgroundImage ? `url(${this.configData.backgroundImage})` : "",
55363
- backgroundSize: "cover",
55364
- backgroundRepeat: "no-repeat",
55365
- backgroundPosition: "center center",
55366
- boxShadow: this.configData.boxShadow || this.defaultConfig.boxShadow,
55367
- borderRadius: `${this.configData.borderRadius || this.defaultConfig.borderRadius}px`,
55368
- minHeight: this.configData.heightType === "fixed" ? `${this.configData.fixedHeight}px` : "auto"
55369
- };
55370
- },
55371
- // 分栏容器样式
55372
- columnStyle() {
55373
- // const gap = this.configData.rowGap || this.defaultConfig.rowGap;
55374
- return {
55375
- // gap: `${gap}px`,
55376
- border: this.configData.borderWidth ? `${this.configData.borderWidth}px ${this.configData.borderStyle} ${this.configData.borderColor}` : "none"
55377
- };
55378
- }
55379
- },
55380
- methods: {
55381
- // 初始化配置数据
55382
- initConfigData() {
55383
- // 合并默认配置和传入配置
55384
- this.configData = {
55385
- ...this.defaultConfig,
55386
- ...this.configData
55387
- };
55388
- },
55389
- // 获取配置数据
55390
- getConfigData(configData) {
55391
- this.configData = {
55392
- ...this.defaultConfig,
55393
- ...configData
55394
- };
55395
- this.updateStyles();
55396
- },
55397
- // 更新样式
55398
- updateStyles() {
55399
- this.$nextTick(() => {
55400
- // 触发样式更新
55401
- this.$forceUpdate();
55402
- });
55403
- },
55404
- // 获取分栏项的类名
55405
- getColumnItemClass(index) {
55406
- const layoutType = this.configData.layoutType || this.defaultConfig.layoutType;
55407
- return ["column-item", `column-item-${index}`, `layout-${layoutType}`, {
55408
- "min-h": this.$EventBus && this.isOpcacity,
55409
- "first-item": index === 0,
55410
- "last-item": index === this.data.childList.length - 1
55411
- }];
55412
- },
55413
- // 获取分栏项的样式
55414
- getColumnItemStyle(index) {
55415
- const layoutType = this.configData.layoutType || this.defaultConfig.layoutType;
55416
- const gap = this.configData.rowGap || this.defaultConfig.rowGap;
55417
- let flexBasis = "100%";
55418
- let marginRight = "0";
55419
-
55420
- // 根据布局类型设置宽度
55421
- switch (layoutType) {
55422
- case "50-50":
55423
- flexBasis = `calc(50% - ${gap / 2}px)`;
55424
- marginRight = index % 2 === 0 ? `${gap}px` : "0";
55425
- break;
55426
- case "33-66":
55427
- flexBasis = index === 0 ? `calc(33.33% - ${gap / 2}px)` : `calc(66.67% - ${gap / 2}px)`;
55428
- marginRight = index === 0 ? `${gap}px` : "0";
55429
- break;
55430
- case "66-33":
55431
- flexBasis = index === 0 ? `calc(66.67% - ${gap / 2}px)` : `calc(33.33% - ${gap / 2}px)`;
55432
- marginRight = index === 0 ? `${gap}px` : "0";
55433
- break;
55434
- case "33-33-33":
55435
- flexBasis = `calc(33.33% - ${gap * 2 / 3}px)`;
55436
- marginRight = index < 2 ? `${gap}px` : "0";
55437
- break;
55438
- case "25-50-25":
55439
- if (index === 0 || index === 2) {
55440
- flexBasis = `calc(25% - ${gap * 2 / 3}px)`;
55441
- } else {
55442
- flexBasis = `calc(50% - ${gap * 2 / 3}px)`;
55443
- }
55444
- marginRight = index < 2 ? `${gap}px` : "0";
55445
- break;
55446
- default:
55447
- flexBasis = "100%";
55448
- }
55449
- return {
55450
- flexBasis,
55451
- marginRight,
55452
- marginBottom: `${this.configData.columnGap || this.defaultConfig.columnGap}px`
55453
- };
55454
- },
55455
- // 折叠/展开文本
55456
- foldMessText() {
55457
- this.messFold = !this.messFold;
55458
- },
55459
- // 处理跳转链接
55460
- decodeJumpUrl(url) {
55461
- if (!url) return;
55462
- top.location.href = url;
55463
- }
55464
- }
55465
- });
55466
- ;// ./package/cms-column/View.vue?vue&type=script&lang=js
55467
- /* harmony default export */ var cms_column_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
55468
- ;// ./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/View.vue?vue&type=style&index=0&id=67ae24ec&prod&lang=scss&scoped=true
55469
- // extracted by mini-css-extract-plugin
55470
-
55471
- ;// ./package/cms-column/View.vue?vue&type=style&index=0&id=67ae24ec&prod&lang=scss&scoped=true
55472
-
55473
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
55474
- var componentNormalizer = __webpack_require__(1656);
55475
- ;// ./package/cms-column/View.vue
55476
-
55477
-
55478
-
55479
- ;
55480
-
55481
-
55482
- /* normalize component */
55483
-
55484
- var component = (0,componentNormalizer/* default */.A)(
55485
- cms_column_Viewvue_type_script_lang_js,
55486
- render,
55487
- staticRenderFns,
55488
- false,
55489
- null,
55490
- "67ae24ec",
55491
- null
55492
-
55493
- )
55494
-
55495
- /* harmony default export */ var View = (component.exports);
55496
-
55497
56151
  /***/ }),
55498
56152
 
55499
56153
  /***/ 9928: