cms-chenhj-ui 2.0.30 → 2.0.31

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.
@@ -457,7 +457,7 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
457
457
  },
458
458
  textType: {
459
459
  label: "文字类型",
460
- widgetType: "el-radio-group",
460
+ widgetType: "el-select",
461
461
  options: [{
462
462
  label: "H1",
463
463
  value: "h1"
@@ -1886,6 +1886,133 @@ module.exports = reflectGetProto ? function getProto(O) {
1886
1886
 
1887
1887
  /***/ }),
1888
1888
 
1889
+ /***/ 845:
1890
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1891
+
1892
+ "use strict";
1893
+ // ESM COMPAT FLAG
1894
+ __webpack_require__.r(__webpack_exports__);
1895
+
1896
+ // EXPORTS
1897
+ __webpack_require__.d(__webpack_exports__, {
1898
+ "default": function() { return /* binding */ View; }
1899
+ });
1900
+
1901
+ ;// ./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-richText/View.vue?vue&type=template&id=9286cb2e&scoped=true
1902
+ var render = function render() {
1903
+ var _vm = this,
1904
+ _c = _vm._self._c;
1905
+ return _c('BaseComp', _vm._b({
1906
+ attrs: {
1907
+ "data": _vm.data,
1908
+ "nowCompId": _vm.nowCompId,
1909
+ "isOpcacity": _vm.isOpcacity,
1910
+ "lang": _vm.lang
1911
+ },
1912
+ on: {
1913
+ "getConfigData": _vm.getConfigData
1914
+ }
1915
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
1916
+ staticClass: "cmhk-home_main"
1917
+ }, [_c('div', [_c('div', {
1918
+ staticClass: "inner"
1919
+ }, [_c('p', {
1920
+ domProps: {
1921
+ "innerHTML": _vm._s(_vm.configData.input1)
1922
+ }
1923
+ })])])])]);
1924
+ };
1925
+ var staticRenderFns = [];
1926
+
1927
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
1928
+ var baseComp = __webpack_require__(4272);
1929
+ ;// ./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
1930
+
1931
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
1932
+ name: "cms-richText",
1933
+ components: {
1934
+ BaseComp: baseComp["default"]
1935
+ },
1936
+ props: {
1937
+ data: {
1938
+ type: Object,
1939
+ default: () => {
1940
+ return {};
1941
+ }
1942
+ },
1943
+ nowCompId: {
1944
+ type: [String, Number],
1945
+ default: ""
1946
+ },
1947
+ isOpcacity: {
1948
+ type: Boolean,
1949
+ default: true
1950
+ },
1951
+ lang: {
1952
+ type: String,
1953
+ default: "zh-HK"
1954
+ }
1955
+ },
1956
+ data() {
1957
+ return {
1958
+ configData: {},
1959
+ messFold: false
1960
+ };
1961
+ },
1962
+ mounted() {},
1963
+ watch: {},
1964
+ methods: {
1965
+ getConfigData(configData) {
1966
+ this.configData = configData;
1967
+ },
1968
+ foldMessText() {
1969
+ this.messFold = !this.messFold;
1970
+ },
1971
+ decodeJumpUrl(url) {
1972
+ if (!url) return;
1973
+ top.location.href = url;
1974
+ }
1975
+ }
1976
+ });
1977
+ ;// ./package/cms-richText/View.vue?vue&type=script&lang=js
1978
+ /* harmony default export */ var cms_richText_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
1979
+ ;// ./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-richText/View.vue?vue&type=style&index=0&id=9286cb2e&prod&lang=scss&scoped=true
1980
+ // extracted by mini-css-extract-plugin
1981
+
1982
+ ;// ./package/cms-richText/View.vue?vue&type=style&index=0&id=9286cb2e&prod&lang=scss&scoped=true
1983
+
1984
+ ;// ./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-richText/View.vue?vue&type=style&index=1&id=9286cb2e&prod&lang=scss
1985
+ // extracted by mini-css-extract-plugin
1986
+
1987
+ ;// ./package/cms-richText/View.vue?vue&type=style&index=1&id=9286cb2e&prod&lang=scss
1988
+
1989
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
1990
+ var componentNormalizer = __webpack_require__(1656);
1991
+ ;// ./package/cms-richText/View.vue
1992
+
1993
+
1994
+
1995
+ ;
1996
+
1997
+
1998
+
1999
+ /* normalize component */
2000
+
2001
+ var component = (0,componentNormalizer/* default */.A)(
2002
+ cms_richText_Viewvue_type_script_lang_js,
2003
+ render,
2004
+ staticRenderFns,
2005
+ false,
2006
+ null,
2007
+ "9286cb2e",
2008
+ null
2009
+
2010
+ )
2011
+
2012
+ /* harmony default export */ var View = (component.exports);
2013
+
2014
+ /***/ }),
2015
+
1889
2016
  /***/ 851:
1890
2017
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1891
2018
 
@@ -10095,8 +10222,8 @@ var map = {
10095
10222
  "./cms-banner/index.js": 1739,
10096
10223
  "./cms-button": 2209,
10097
10224
  "./cms-button/": 2209,
10098
- "./cms-button/View": 6677,
10099
- "./cms-button/View.vue": 6677,
10225
+ "./cms-button/View": 8169,
10226
+ "./cms-button/View.vue": 8169,
10100
10227
  "./cms-button/index": 2209,
10101
10228
  "./cms-button/index.js": 2209,
10102
10229
  "./cms-cells": 1630,
@@ -10203,8 +10330,8 @@ var map = {
10203
10330
  "./cms-question/index.js": 2269,
10204
10331
  "./cms-richText": 7616,
10205
10332
  "./cms-richText/": 7616,
10206
- "./cms-richText/View": 7082,
10207
- "./cms-richText/View.vue": 7082,
10333
+ "./cms-richText/View": 845,
10334
+ "./cms-richText/View.vue": 845,
10208
10335
  "./cms-richText/index": 7616,
10209
10336
  "./cms-richText/index.js": 7616,
10210
10337
  "./cms-servePlan-tab": 1373,
@@ -10274,8 +10401,8 @@ var map = {
10274
10401
  "./cms-video-group/index": 622,
10275
10402
  "./cms-video-group/index.js": 622,
10276
10403
  "./cms-video/": 2404,
10277
- "./cms-video/View": 6083,
10278
- "./cms-video/View.vue": 6083,
10404
+ "./cms-video/View": 4588,
10405
+ "./cms-video/View.vue": 4588,
10279
10406
  "./cms-video/index": 2404,
10280
10407
  "./cms-video/index.js": 2404,
10281
10408
  "./cms-view": 2392,
@@ -11766,10 +11893,12 @@ module.exports = function (it) {
11766
11893
  __webpack_require__.r(__webpack_exports__);
11767
11894
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
11768
11895
 
11769
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 6677));
11896
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 8169));
11770
11897
  const langData = {
11771
11898
  // 文字设置
11772
11899
  buttonText: "按钮文字",
11900
+ buttonType: "bg-blue",
11901
+ wrapperBackgroundColor: "#ffffff",
11773
11902
  textAlign: "center",
11774
11903
  fontSize: 16,
11775
11904
  fontColor: "#ffffff",
@@ -11810,6 +11939,44 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
11810
11939
  widgetType: "el-input",
11811
11940
  placeholder: "请输入按钮文字"
11812
11941
  },
11942
+ buttonType: {
11943
+ label: "按钮类型",
11944
+ widgetType: "el-select",
11945
+ options: [{
11946
+ label: "蓝底",
11947
+ value: "bg-blue"
11948
+ }, {
11949
+ label: "白底",
11950
+ value: "bg-white"
11951
+ }, {
11952
+ label: "灰底",
11953
+ value: "bg-gray"
11954
+ }],
11955
+ on: {
11956
+ change: (data, value) => {
11957
+ if (value == "bg-blue") {
11958
+ data.backgroundColor = "#409eff";
11959
+ data.fontColor = "#fff";
11960
+ data.borderWidth = 0;
11961
+ data.wrapperBackgroundColor = "#fff";
11962
+ } else if (value == "bg-white") {
11963
+ data.backgroundColor = "#fff";
11964
+ data.fontColor = "#409eff";
11965
+ data.borderWidth = 1;
11966
+ data.borderStyle = "solid";
11967
+ data.borderColor = "#409eff";
11968
+ data.wrapperBackgroundColor = "#fff";
11969
+ } else if (value == "bg-gray") {
11970
+ data.backgroundColor = "#888888";
11971
+ data.fontColor = "#fff";
11972
+ data.borderWidth = 1;
11973
+ data.borderStyle = "solid";
11974
+ data.borderColor = "#fff";
11975
+ data.wrapperBackgroundColor = "#979797";
11976
+ }
11977
+ }
11978
+ }
11979
+ },
11813
11980
  textAlign: {
11814
11981
  label: "对齐方式",
11815
11982
  widgetType: "el-radio-group",
@@ -11880,8 +12047,15 @@ const configDataType = (0,_baseConfig__WEBPACK_IMPORTED_MODULE_0__.getLangDataTy
11880
12047
  }]
11881
12048
  },
11882
12049
  // 样式控制配置
12050
+ wrapperBackgroundColor: {
12051
+ label: "区块背景颜色",
12052
+ widgetType: "el-color-picker",
12053
+ showAlpha: true,
12054
+ predefine: ["#262729", "rgb(36,38,40,0.8)", "rgb(36,38,40,0.5)", "#2F85FF", "#D6197F", "#52C41A", "#f48427", "#FFFFFF"]
12055
+ },
12056
+ // 样式控制配置
11883
12057
  backgroundColor: {
11884
- label: "背景颜色",
12058
+ label: "按钮背景颜色",
11885
12059
  widgetType: "el-color-picker",
11886
12060
  showAlpha: true,
11887
12061
  predefine: ["#262729", "rgb(36,38,40,0.8)", "rgb(36,38,40,0.5)", "#2F85FF", "#D6197F", "#52C41A", "#f48427", "#FFFFFF"]
@@ -12493,7 +12667,7 @@ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind
12493
12667
  __webpack_require__.r(__webpack_exports__);
12494
12668
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
12495
12669
 
12496
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 6083));
12670
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 4588));
12497
12671
  const langData = {
12498
12672
  // 视频源设置
12499
12673
  title: '',
@@ -37340,7 +37514,7 @@ module.exports =
37340
37514
 
37341
37515
  /***/ }),
37342
37516
 
37343
- /***/ 4602:
37517
+ /***/ 4588:
37344
37518
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
37345
37519
 
37346
37520
  "use strict";
@@ -37352,12 +37526,11 @@ __webpack_require__.d(__webpack_exports__, {
37352
37526
  "default": function() { return /* binding */ View; }
37353
37527
  });
37354
37528
 
37355
- ;// ./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-lineThree/View.vue?vue&type=template&id=241e1e5b&scoped=true
37529
+ ;// ./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=6b24141a&scoped=true
37356
37530
  var render = function render() {
37357
37531
  var _vm = this,
37358
- _c = _vm._self._c,
37359
- _setup = _vm._self._setupProxy;
37360
- return _c(_setup.BaseComp, _vm._b({
37532
+ _c = _vm._self._c;
37533
+ return _c('BaseComp', _vm._b({
37361
37534
  attrs: {
37362
37535
  "data": _vm.data,
37363
37536
  "nowCompId": _vm.nowCompId,
@@ -37367,117 +37540,498 @@ var render = function render() {
37367
37540
  on: {
37368
37541
  "getConfigData": _vm.getConfigData
37369
37542
  }
37370
- }, 'BaseComp', _vm.$attrs, false), [_c('div', {
37371
- staticClass: "cmhk-home_main"
37372
- }, [_c('div', {
37373
- staticClass: "corp-static_wrapper"
37543
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
37544
+ staticClass: "cms-video-container",
37545
+ class: [_vm.configData.customClass || ''],
37546
+ style: _vm.containerStyle
37374
37547
  }, [_c('div', {
37375
- staticClass: "corp-static_scene_container"
37376
- }, [_c('ul', {
37377
- staticClass: "clearfix"
37378
- }, _vm._l(_vm.configList, function (item, index) {
37379
- return _c('li', {
37380
- key: `${index}${item === null || item === void 0 ? void 0 : item.id}`,
37381
- on: {
37382
- "click": function ($event) {
37383
- return _setup.decodeJumpUrl(item === null || item === void 0 ? void 0 : item.jumpUrl, _vm.$router);
37384
- }
37385
- }
37386
- }, [_c('div', {
37387
- staticClass: "card-shadow"
37388
- }, [_c('div', {
37389
- staticClass: "image-desbox_wapper"
37390
- }, [_c('img', {
37391
- staticClass: "scene-image",
37392
- attrs: {
37393
- "src": _setup.isMobileHook ? item === null || item === void 0 ? void 0 : item.uploadImageH5 : item === null || item === void 0 ? void 0 : item.uploadImagePC,
37394
- "alt": item === null || item === void 0 ? void 0 : item.imagePcATL
37395
- }
37396
- })]), _c('div', {
37397
- staticClass: "corp-static_scene_content"
37398
- }, [_c('p', {
37399
- staticClass: "title"
37400
- }, [_vm._v(_vm._s(item.input1))]), _c('p', {
37401
- staticClass: "des",
37402
- class: _vm.panelFold ? 'des-more' : ''
37403
- }, [_vm._v(" " + _vm._s(item === null || item === void 0 ? void 0 : item.input2) + " ")]), _vm.$i18n.locale == 'zh-CN' && (item === null || item === void 0 ? void 0 : item.input2.length) > 66 ? _c('div', {
37404
- staticClass: "crad-more",
37405
- on: {
37406
- "click": function ($event) {
37407
- $event.stopPropagation();
37408
- _vm.panelFold = !_vm.panelFold;
37409
- }
37410
- }
37411
- }, [_c('span', {
37412
- directives: [{
37413
- name: "show",
37414
- rawName: "v-show",
37415
- value: _vm.$i18n.locale == 'zh-CN',
37416
- expression: "$i18n.locale == 'zh-CN'"
37417
- }]
37418
- }, [_vm._v(_vm._s(_vm.panelFold ? "收起" : "展开")), _c('i', {
37419
- class: _vm.panelFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down'
37420
- })])]) : _vm._e(), _vm.$i18n.locale == 'zh-HK' && (item === null || item === void 0 ? void 0 : item.input2.length) > 66 ? _c('div', {
37421
- staticClass: "crad-more",
37422
- on: {
37423
- "click": function ($event) {
37424
- $event.stopPropagation();
37425
- _vm.panelFold = !_vm.panelFold;
37426
- }
37427
- }
37428
- }, [_c('span', [_vm._v(_vm._s(_vm.panelFold ? "收起" : "展開")), _c('i', {
37429
- class: _vm.panelFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down'
37430
- })])]) : _vm._e(), _vm.$i18n.locale == 'en-US' && (item === null || item === void 0 ? void 0 : item.input2.length) > 132 ? _c('div', {
37431
- staticClass: "crad-more",
37432
- on: {
37433
- "click": function ($event) {
37434
- $event.stopPropagation();
37435
- _vm.panelFold = !_vm.panelFold;
37436
- }
37437
- }
37438
- }, [_c('span', [_vm._v(_vm._s(_vm.panelFold ? "Collpase" : "Expand")), _c('i', {
37439
- class: _vm.panelFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down'
37440
- })])]) : _vm._e()])])]);
37441
- }), 0)])])])]);
37548
+ staticClass: "video-wrapper",
37549
+ style: _vm.wrapperStyle
37550
+ }, [_vm.videoType === 'direct' && _vm.configData.videoUrl ? _c('video', {
37551
+ staticClass: "cms-video direct-video",
37552
+ style: _vm.videoStyle,
37553
+ attrs: {
37554
+ "src": _vm.configData.videoUrl,
37555
+ "controls": _vm.configData.showControls,
37556
+ "autoplay": _vm.configData.autoplay,
37557
+ "loop": _vm.configData.loop,
37558
+ "poster": _vm.configData.posterUrl
37559
+ },
37560
+ domProps: {
37561
+ "muted": _vm.configData.muted
37562
+ },
37563
+ on: {
37564
+ "loadstart": _vm.onVideoLoadStart,
37565
+ "loadeddata": _vm.onVideoLoaded,
37566
+ "error": _vm.onVideoError
37567
+ }
37568
+ }) : _vm.configData.embedCode ? _c('div', {
37569
+ staticClass: "cms-video embed-video",
37570
+ style: _vm.videoStyle,
37571
+ domProps: {
37572
+ "innerHTML": _vm._s(_vm.configData.embedCode)
37573
+ }
37574
+ }) : _c('div', {
37575
+ staticClass: "video-placeholder",
37576
+ style: _vm.placeholderStyle
37577
+ }, [_c('img', {
37578
+ staticStyle: {
37579
+ "width": "97.82px",
37580
+ "height": "97.82px"
37581
+ },
37582
+ attrs: {
37583
+ "src": __webpack_require__(6148),
37584
+ "alt": "Video Camera"
37585
+ }
37586
+ })])]), _vm.configData.title ? _c('div', {
37587
+ staticClass: "f-c-c"
37588
+ }, [_vm._v(_vm._s(_vm.configData.title))]) : _vm._e()])]);
37442
37589
  };
37443
37590
  var staticRenderFns = [];
37444
37591
 
37592
+ ;// ./package/cms-video/View.vue?vue&type=template&id=6b24141a&scoped=true
37593
+
37594
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
37595
+ var es_iterator_constructor = __webpack_require__(8111);
37596
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
37597
+ var es_iterator_for_each = __webpack_require__(7588);
37445
37598
  // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
37446
37599
  var baseComp = __webpack_require__(4272);
37447
- // EXTERNAL MODULE: ./src/utils/jumpUrl.js
37448
- var jumpUrl = __webpack_require__(813);
37449
- // EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm.js
37450
- var vue_runtime_esm = __webpack_require__(6848);
37451
- ;// ./src/utils/useMobileEffect.js
37600
+ ;// ./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
37452
37601
 
37453
- const isMobileHook = (0,vue_runtime_esm.ref)(false);
37454
- const resize = () => {
37455
- let bodyW = 0;
37456
- if (document.body) {
37457
- bodyW = document.body.scrollWidth || document.body.clientWidth;
37458
- }
37459
- if (bodyW < 800) {
37460
- isMobileHook.value = true;
37461
- } else {
37462
- isMobileHook.value = false;
37463
- }
37464
- };
37465
- /* harmony default export */ function useMobileEffect() {
37466
- (0,vue_runtime_esm.onMounted)(() => {
37467
- resize();
37468
- window.addEventListener('resize', resize);
37469
- });
37470
- (0,vue_runtime_esm.onUnmounted)(() => {
37471
- window.removeEventListener('resize', resize);
37472
- });
37473
- return {
37474
- isMobileHook
37475
- };
37476
- }
37477
- ;// ./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-lineThree/View.vue?vue&type=script&setup=true&lang=js
37478
37602
 
37479
- const __default__ = {
37480
- name: "cms-lineThree",
37603
+
37604
+
37605
+
37606
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
37607
+ name: "cms-video",
37608
+ components: {
37609
+ BaseComp: baseComp["default"]
37610
+ },
37611
+ props: {
37612
+ data: {
37613
+ type: Object,
37614
+ default: () => {
37615
+ return {};
37616
+ }
37617
+ },
37618
+ nowCompId: {
37619
+ type: [String, Number],
37620
+ default: ""
37621
+ },
37622
+ isOpcacity: {
37623
+ type: Boolean,
37624
+ default: true
37625
+ },
37626
+ lang: {
37627
+ type: String,
37628
+ default: "zh-HK"
37629
+ }
37630
+ },
37631
+ data() {
37632
+ return {
37633
+ configData: {},
37634
+ videoLoaded: false,
37635
+ videoError: false,
37636
+ // 默认配置数据
37637
+ defaultConfig: {
37638
+ // 视频源设置
37639
+ videoType: "direct",
37640
+ videoUrl: "",
37641
+ embedCode: "",
37642
+ posterUrl: "",
37643
+ // 播放控制
37644
+ showControls: true,
37645
+ autoplay: false,
37646
+ loop: false,
37647
+ muted: false,
37648
+ // 尺寸控制
37649
+ widthType: "auto",
37650
+ widthValue: 100,
37651
+ heightType: "auto",
37652
+ heightValue: 100,
37653
+ aspectRatio: "16:9",
37654
+ customAspectRatio: "16:9",
37655
+ maxWidth: 0,
37656
+ maxHeight: 0,
37657
+ // 样式设置
37658
+ borderRadius: 0,
37659
+ // 高级配置
37660
+ customClass: "",
37661
+ customStyle: ""
37662
+ }
37663
+ };
37664
+ },
37665
+ mounted() {
37666
+ this.initConfigData();
37667
+ },
37668
+ watch: {
37669
+ configData: {
37670
+ handler() {
37671
+ this.updateStyles();
37672
+ },
37673
+ deep: true
37674
+ }
37675
+ },
37676
+ computed: {
37677
+ showEmbedCode() {
37678
+ return this.configData.embedCode.replace(/<iframe(.*?)width="(\d+)"(.*?)height="(\d+)"(.*?)>/gi, '<iframe$1width="100%"$3height="auto"$5 aspect-ratio="$2/$4">');
37679
+ },
37680
+ // 视频类型
37681
+ videoType() {
37682
+ return this.configData.videoType || this.defaultConfig.videoType;
37683
+ },
37684
+ // 实际使用的宽高比
37685
+ actualAspectRatio() {
37686
+ const config = {
37687
+ ...this.defaultConfig,
37688
+ ...this.configData
37689
+ };
37690
+ if (config.aspectRatio === "custom") {
37691
+ return config.customAspectRatio || "16:9";
37692
+ }
37693
+ return config.aspectRatio;
37694
+ },
37695
+ // 容器样式
37696
+ containerStyle() {
37697
+ const config = {
37698
+ ...this.defaultConfig,
37699
+ ...this.configData
37700
+ };
37701
+ return {
37702
+ ...this.parseCustomStyle(config.customStyle)
37703
+ };
37704
+ },
37705
+ // 包装器样式
37706
+ wrapperStyle() {
37707
+ const config = {
37708
+ ...this.defaultConfig,
37709
+ ...this.configData
37710
+ };
37711
+ let width = "auto";
37712
+ let height = "auto";
37713
+
37714
+ // 宽度设置
37715
+ if (config.widthType === "fixed") {
37716
+ width = `${config.widthValue}px`;
37717
+ } else if (config.widthType === "percent") {
37718
+ width = `${config.widthValue}%`;
37719
+ }
37720
+
37721
+ // 高度设置
37722
+ if (config.heightType === "fixed") {
37723
+ height = `${config.heightValue}px`;
37724
+ } else if (config.heightType === "percent") {
37725
+ height = `${config.heightValue}%`;
37726
+ } else if (config.heightType === "aspect") {
37727
+ // 根据宽高比计算高度
37728
+ height = "auto";
37729
+ }
37730
+ return {
37731
+ width,
37732
+ height,
37733
+ maxWidth: config.maxWidth > 0 ? `${config.maxWidth}px` : "none",
37734
+ maxHeight: config.maxHeight > 0 ? `${config.maxHeight}px` : "none",
37735
+ borderRadius: `${config.borderRadius}px`,
37736
+ overflow: "hidden",
37737
+ display: "block",
37738
+ position: "relative"
37739
+ };
37740
+ },
37741
+ // 视频样式
37742
+ videoStyle() {
37743
+ const config = {
37744
+ ...this.defaultConfig,
37745
+ ...this.configData
37746
+ };
37747
+ let style = {
37748
+ width: "100%",
37749
+ height: "100%",
37750
+ display: "block",
37751
+ border: "none",
37752
+ outline: "none"
37753
+ };
37754
+
37755
+ // 如果是宽高比模式,设置aspect-ratio
37756
+ if (config.heightType === "aspect") {
37757
+ style.aspectRatio = this.actualAspectRatio.replace(":", "/");
37758
+ }
37759
+ return style;
37760
+ },
37761
+ // 占位符样式
37762
+ placeholderStyle() {
37763
+ const config = {
37764
+ ...this.defaultConfig,
37765
+ ...this.configData
37766
+ };
37767
+ let width = "100%";
37768
+ let height = "auto";
37769
+
37770
+ // 如果设置了固定尺寸,使用设置的尺寸
37771
+ if (config.widthType === "fixed") {
37772
+ width = `${config.widthValue}px`;
37773
+ } else if (config.widthType === "percent") {
37774
+ width = `${config.widthValue}%`;
37775
+ }
37776
+ if (config.heightType === "fixed") {
37777
+ height = `${config.heightValue}px`;
37778
+ } else if (config.heightType === "aspect") {
37779
+ // 使用aspect-ratio保持16:9比例
37780
+ height = "auto";
37781
+ } else {
37782
+ // 默认使用16:9比例
37783
+ height = "auto";
37784
+ }
37785
+ const style = {
37786
+ width,
37787
+ height,
37788
+ backgroundColor: "#f5f7fa",
37789
+ border: "1px dashed #dcdfe6",
37790
+ borderRadius: `${config.borderRadius}px`,
37791
+ display: "flex",
37792
+ flexDirection: "column",
37793
+ alignItems: "center",
37794
+ justifyContent: "center",
37795
+ color: "#909399",
37796
+ fontSize: "14px"
37797
+ };
37798
+
37799
+ // 如果不是固定高度,使用aspect-ratio保持16:9比例
37800
+ if (config.heightType !== "fixed") {
37801
+ style.aspectRatio = this.actualAspectRatio.replace(":", "/");
37802
+ }
37803
+ return style;
37804
+ }
37805
+ },
37806
+ methods: {
37807
+ // 初始化配置数据
37808
+ initConfigData() {
37809
+ this.configData = {
37810
+ ...this.defaultConfig,
37811
+ ...this.configData
37812
+ };
37813
+ },
37814
+ // 获取配置数据
37815
+ getConfigData(configData) {
37816
+ this.configData = {
37817
+ ...this.defaultConfig,
37818
+ ...configData
37819
+ };
37820
+ this.updateStyles();
37821
+ },
37822
+ // 更新样式
37823
+ updateStyles() {
37824
+ this.$nextTick(() => {
37825
+ this.$forceUpdate();
37826
+ });
37827
+ },
37828
+ // 视频开始加载
37829
+ onVideoLoadStart() {
37830
+ this.videoLoaded = false;
37831
+ this.videoError = false;
37832
+ },
37833
+ // 视频加载完成
37834
+ onVideoLoaded() {
37835
+ this.videoLoaded = true;
37836
+ this.videoError = false;
37837
+ },
37838
+ // 视频加载失败
37839
+ onVideoError() {
37840
+ this.videoLoaded = false;
37841
+ this.videoError = true;
37842
+ },
37843
+ // 解析自定义样式
37844
+ parseCustomStyle(customStyle) {
37845
+ if (!customStyle) return {};
37846
+ try {
37847
+ const styles = {};
37848
+ const declarations = customStyle.split(";");
37849
+ declarations.forEach(declaration => {
37850
+ const [property, value] = declaration.split(":");
37851
+ if (property && value) {
37852
+ const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
37853
+ styles[camelCaseProperty] = value.trim();
37854
+ }
37855
+ });
37856
+ return styles;
37857
+ } catch (error) {
37858
+ console.warn("解析自定义样式失败:", error);
37859
+ return {};
37860
+ }
37861
+ }
37862
+ }
37863
+ });
37864
+ ;// ./package/cms-video/View.vue?vue&type=script&lang=js
37865
+ /* harmony default export */ var cms_video_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
37866
+ ;// ./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=6b24141a&prod&lang=scss&scoped=true
37867
+ // extracted by mini-css-extract-plugin
37868
+
37869
+ ;// ./package/cms-video/View.vue?vue&type=style&index=0&id=6b24141a&prod&lang=scss&scoped=true
37870
+
37871
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
37872
+ var componentNormalizer = __webpack_require__(1656);
37873
+ ;// ./package/cms-video/View.vue
37874
+
37875
+
37876
+
37877
+ ;
37878
+
37879
+
37880
+ /* normalize component */
37881
+
37882
+ var component = (0,componentNormalizer/* default */.A)(
37883
+ cms_video_Viewvue_type_script_lang_js,
37884
+ render,
37885
+ staticRenderFns,
37886
+ false,
37887
+ null,
37888
+ "6b24141a",
37889
+ null
37890
+
37891
+ )
37892
+
37893
+ /* harmony default export */ var View = (component.exports);
37894
+
37895
+ /***/ }),
37896
+
37897
+ /***/ 4602:
37898
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
37899
+
37900
+ "use strict";
37901
+ // ESM COMPAT FLAG
37902
+ __webpack_require__.r(__webpack_exports__);
37903
+
37904
+ // EXPORTS
37905
+ __webpack_require__.d(__webpack_exports__, {
37906
+ "default": function() { return /* binding */ View; }
37907
+ });
37908
+
37909
+ ;// ./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-lineThree/View.vue?vue&type=template&id=241e1e5b&scoped=true
37910
+ var render = function render() {
37911
+ var _vm = this,
37912
+ _c = _vm._self._c,
37913
+ _setup = _vm._self._setupProxy;
37914
+ return _c(_setup.BaseComp, _vm._b({
37915
+ attrs: {
37916
+ "data": _vm.data,
37917
+ "nowCompId": _vm.nowCompId,
37918
+ "isOpcacity": _vm.isOpcacity,
37919
+ "lang": _vm.lang
37920
+ },
37921
+ on: {
37922
+ "getConfigData": _vm.getConfigData
37923
+ }
37924
+ }, 'BaseComp', _vm.$attrs, false), [_c('div', {
37925
+ staticClass: "cmhk-home_main"
37926
+ }, [_c('div', {
37927
+ staticClass: "corp-static_wrapper"
37928
+ }, [_c('div', {
37929
+ staticClass: "corp-static_scene_container"
37930
+ }, [_c('ul', {
37931
+ staticClass: "clearfix"
37932
+ }, _vm._l(_vm.configList, function (item, index) {
37933
+ return _c('li', {
37934
+ key: `${index}${item === null || item === void 0 ? void 0 : item.id}`,
37935
+ on: {
37936
+ "click": function ($event) {
37937
+ return _setup.decodeJumpUrl(item === null || item === void 0 ? void 0 : item.jumpUrl, _vm.$router);
37938
+ }
37939
+ }
37940
+ }, [_c('div', {
37941
+ staticClass: "card-shadow"
37942
+ }, [_c('div', {
37943
+ staticClass: "image-desbox_wapper"
37944
+ }, [_c('img', {
37945
+ staticClass: "scene-image",
37946
+ attrs: {
37947
+ "src": _setup.isMobileHook ? item === null || item === void 0 ? void 0 : item.uploadImageH5 : item === null || item === void 0 ? void 0 : item.uploadImagePC,
37948
+ "alt": item === null || item === void 0 ? void 0 : item.imagePcATL
37949
+ }
37950
+ })]), _c('div', {
37951
+ staticClass: "corp-static_scene_content"
37952
+ }, [_c('p', {
37953
+ staticClass: "title"
37954
+ }, [_vm._v(_vm._s(item.input1))]), _c('p', {
37955
+ staticClass: "des",
37956
+ class: _vm.panelFold ? 'des-more' : ''
37957
+ }, [_vm._v(" " + _vm._s(item === null || item === void 0 ? void 0 : item.input2) + " ")]), _vm.$i18n.locale == 'zh-CN' && (item === null || item === void 0 ? void 0 : item.input2.length) > 66 ? _c('div', {
37958
+ staticClass: "crad-more",
37959
+ on: {
37960
+ "click": function ($event) {
37961
+ $event.stopPropagation();
37962
+ _vm.panelFold = !_vm.panelFold;
37963
+ }
37964
+ }
37965
+ }, [_c('span', {
37966
+ directives: [{
37967
+ name: "show",
37968
+ rawName: "v-show",
37969
+ value: _vm.$i18n.locale == 'zh-CN',
37970
+ expression: "$i18n.locale == 'zh-CN'"
37971
+ }]
37972
+ }, [_vm._v(_vm._s(_vm.panelFold ? "收起" : "展开")), _c('i', {
37973
+ class: _vm.panelFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down'
37974
+ })])]) : _vm._e(), _vm.$i18n.locale == 'zh-HK' && (item === null || item === void 0 ? void 0 : item.input2.length) > 66 ? _c('div', {
37975
+ staticClass: "crad-more",
37976
+ on: {
37977
+ "click": function ($event) {
37978
+ $event.stopPropagation();
37979
+ _vm.panelFold = !_vm.panelFold;
37980
+ }
37981
+ }
37982
+ }, [_c('span', [_vm._v(_vm._s(_vm.panelFold ? "收起" : "展開")), _c('i', {
37983
+ class: _vm.panelFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down'
37984
+ })])]) : _vm._e(), _vm.$i18n.locale == 'en-US' && (item === null || item === void 0 ? void 0 : item.input2.length) > 132 ? _c('div', {
37985
+ staticClass: "crad-more",
37986
+ on: {
37987
+ "click": function ($event) {
37988
+ $event.stopPropagation();
37989
+ _vm.panelFold = !_vm.panelFold;
37990
+ }
37991
+ }
37992
+ }, [_c('span', [_vm._v(_vm._s(_vm.panelFold ? "Collpase" : "Expand")), _c('i', {
37993
+ class: _vm.panelFold ? 'el-icon-arrow-up' : 'el-icon-arrow-down'
37994
+ })])]) : _vm._e()])])]);
37995
+ }), 0)])])])]);
37996
+ };
37997
+ var staticRenderFns = [];
37998
+
37999
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
38000
+ var baseComp = __webpack_require__(4272);
38001
+ // EXTERNAL MODULE: ./src/utils/jumpUrl.js
38002
+ var jumpUrl = __webpack_require__(813);
38003
+ // EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm.js
38004
+ var vue_runtime_esm = __webpack_require__(6848);
38005
+ ;// ./src/utils/useMobileEffect.js
38006
+
38007
+ const isMobileHook = (0,vue_runtime_esm.ref)(false);
38008
+ const resize = () => {
38009
+ let bodyW = 0;
38010
+ if (document.body) {
38011
+ bodyW = document.body.scrollWidth || document.body.clientWidth;
38012
+ }
38013
+ if (bodyW < 800) {
38014
+ isMobileHook.value = true;
38015
+ } else {
38016
+ isMobileHook.value = false;
38017
+ }
38018
+ };
38019
+ /* harmony default export */ function useMobileEffect() {
38020
+ (0,vue_runtime_esm.onMounted)(() => {
38021
+ resize();
38022
+ window.addEventListener('resize', resize);
38023
+ });
38024
+ (0,vue_runtime_esm.onUnmounted)(() => {
38025
+ window.removeEventListener('resize', resize);
38026
+ });
38027
+ return {
38028
+ isMobileHook
38029
+ };
38030
+ }
38031
+ ;// ./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-lineThree/View.vue?vue&type=script&setup=true&lang=js
38032
+
38033
+ const __default__ = {
38034
+ name: "cms-lineThree",
37481
38035
  components: {
37482
38036
  BaseComp: baseComp["default"]
37483
38037
  },
@@ -39695,7 +40249,7 @@ var map = {
39695
40249
  "./cms-activityCountdown/View.vue": 8437,
39696
40250
  "./cms-activityTime/View.vue": 8322,
39697
40251
  "./cms-banner/View.vue": 6815,
39698
- "./cms-button/View.vue": 6677,
40252
+ "./cms-button/View.vue": 8169,
39699
40253
  "./cms-cells/View.vue": 5700,
39700
40254
  "./cms-column-card/View.vue": 7058,
39701
40255
  "./cms-column/View.vue": 7855,
@@ -39713,7 +40267,7 @@ var map = {
39713
40267
  "./cms-prodCustomization/View.vue": 6786,
39714
40268
  "./cms-productDetails/View.vue": 7984,
39715
40269
  "./cms-question/View.vue": 9764,
39716
- "./cms-richText/View.vue": 7082,
40270
+ "./cms-richText/View.vue": 845,
39717
40271
  "./cms-servePlan-tab/View.vue": 8757,
39718
40272
  "./cms-servePlan-text/View.vue": 9487,
39719
40273
  "./cms-tab/View.vue": 2596,
@@ -39724,7 +40278,7 @@ var map = {
39724
40278
  "./cms-titleLeft/View.vue": 428,
39725
40279
  "./cms-via-storedValueCard/View.vue": 8498,
39726
40280
  "./cms-video-group/View.vue": 9418,
39727
- "./cms-video/View.vue": 6083,
40281
+ "./cms-video/View.vue": 4588,
39728
40282
  "./cms-view/View.vue": 1380
39729
40283
  };
39730
40284
 
@@ -41291,383 +41845,6 @@ module.exports = function (fn, that) {
41291
41845
  };
41292
41846
 
41293
41847
 
41294
- /***/ }),
41295
-
41296
- /***/ 6083:
41297
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
41298
-
41299
- "use strict";
41300
- // ESM COMPAT FLAG
41301
- __webpack_require__.r(__webpack_exports__);
41302
-
41303
- // EXPORTS
41304
- __webpack_require__.d(__webpack_exports__, {
41305
- "default": function() { return /* binding */ View; }
41306
- });
41307
-
41308
- ;// ./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=08ec3683&scoped=true
41309
- var render = function render() {
41310
- var _vm = this,
41311
- _c = _vm._self._c;
41312
- return _c('BaseComp', _vm._b({
41313
- attrs: {
41314
- "data": _vm.data,
41315
- "nowCompId": _vm.nowCompId,
41316
- "isOpcacity": _vm.isOpcacity,
41317
- "lang": _vm.lang
41318
- },
41319
- on: {
41320
- "getConfigData": _vm.getConfigData
41321
- }
41322
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
41323
- staticClass: "cms-video-container",
41324
- class: [_vm.configData.customClass || ''],
41325
- style: _vm.containerStyle
41326
- }, [_c('div', {
41327
- staticClass: "video-wrapper",
41328
- style: _vm.wrapperStyle
41329
- }, [_vm.videoType === 'direct' && _vm.configData.videoUrl ? _c('video', {
41330
- staticClass: "cms-video direct-video",
41331
- style: _vm.videoStyle,
41332
- attrs: {
41333
- "src": _vm.configData.videoUrl,
41334
- "controls": _vm.configData.showControls,
41335
- "autoplay": _vm.configData.autoplay,
41336
- "loop": _vm.configData.loop,
41337
- "poster": _vm.configData.posterUrl
41338
- },
41339
- domProps: {
41340
- "muted": _vm.configData.muted
41341
- },
41342
- on: {
41343
- "loadstart": _vm.onVideoLoadStart,
41344
- "loadeddata": _vm.onVideoLoaded,
41345
- "error": _vm.onVideoError
41346
- }
41347
- }) : _vm.configData.embedCode ? _c('div', {
41348
- staticClass: "cms-video embed-video",
41349
- style: _vm.videoStyle,
41350
- domProps: {
41351
- "innerHTML": _vm._s(_vm.configData.embedCode)
41352
- }
41353
- }) : _c('div', {
41354
- staticClass: "video-placeholder",
41355
- style: _vm.placeholderStyle
41356
- }, [_c('img', {
41357
- staticStyle: {
41358
- "width": "97.82px",
41359
- "height": "97.82px"
41360
- },
41361
- attrs: {
41362
- "src": __webpack_require__(6148),
41363
- "alt": "Video Camera"
41364
- }
41365
- })])]), _vm.configData.title ? _c('div', {
41366
- staticClass: "f-c-c"
41367
- }, [_vm._v(_vm._s(_vm.configData.title))]) : _vm._e()])]);
41368
- };
41369
- var staticRenderFns = [];
41370
-
41371
- ;// ./package/cms-video/View.vue?vue&type=template&id=08ec3683&scoped=true
41372
-
41373
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
41374
- var es_iterator_constructor = __webpack_require__(8111);
41375
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
41376
- var es_iterator_for_each = __webpack_require__(7588);
41377
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
41378
- var baseComp = __webpack_require__(4272);
41379
- ;// ./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
41380
-
41381
-
41382
-
41383
-
41384
-
41385
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
41386
- name: "cms-video",
41387
- components: {
41388
- BaseComp: baseComp["default"]
41389
- },
41390
- props: {
41391
- data: {
41392
- type: Object,
41393
- default: () => {
41394
- return {};
41395
- }
41396
- },
41397
- nowCompId: {
41398
- type: [String, Number],
41399
- default: ""
41400
- },
41401
- isOpcacity: {
41402
- type: Boolean,
41403
- default: true
41404
- },
41405
- lang: {
41406
- type: String,
41407
- default: "zh-HK"
41408
- }
41409
- },
41410
- data() {
41411
- return {
41412
- configData: {},
41413
- videoLoaded: false,
41414
- videoError: false,
41415
- // 默认配置数据
41416
- defaultConfig: {
41417
- // 视频源设置
41418
- videoType: "direct",
41419
- videoUrl: "",
41420
- embedCode: "",
41421
- posterUrl: "",
41422
- // 播放控制
41423
- showControls: true,
41424
- autoplay: false,
41425
- loop: false,
41426
- muted: false,
41427
- // 尺寸控制
41428
- widthType: "auto",
41429
- widthValue: 100,
41430
- heightType: "auto",
41431
- heightValue: 100,
41432
- aspectRatio: "16:9",
41433
- customAspectRatio: "16:9",
41434
- maxWidth: 0,
41435
- maxHeight: 0,
41436
- // 样式设置
41437
- borderRadius: 0,
41438
- // 高级配置
41439
- customClass: "",
41440
- customStyle: ""
41441
- }
41442
- };
41443
- },
41444
- mounted() {
41445
- this.initConfigData();
41446
- },
41447
- watch: {
41448
- configData: {
41449
- handler() {
41450
- this.updateStyles();
41451
- },
41452
- deep: true
41453
- }
41454
- },
41455
- computed: {
41456
- // 视频类型
41457
- videoType() {
41458
- return this.configData.videoType || this.defaultConfig.videoType;
41459
- },
41460
- // 实际使用的宽高比
41461
- actualAspectRatio() {
41462
- const config = {
41463
- ...this.defaultConfig,
41464
- ...this.configData
41465
- };
41466
- if (config.aspectRatio === "custom") {
41467
- return config.customAspectRatio || "16:9";
41468
- }
41469
- return config.aspectRatio;
41470
- },
41471
- // 容器样式
41472
- containerStyle() {
41473
- const config = {
41474
- ...this.defaultConfig,
41475
- ...this.configData
41476
- };
41477
- return {
41478
- ...this.parseCustomStyle(config.customStyle)
41479
- };
41480
- },
41481
- // 包装器样式
41482
- wrapperStyle() {
41483
- const config = {
41484
- ...this.defaultConfig,
41485
- ...this.configData
41486
- };
41487
- let width = "auto";
41488
- let height = "auto";
41489
-
41490
- // 宽度设置
41491
- if (config.widthType === "fixed") {
41492
- width = `${config.widthValue}px`;
41493
- } else if (config.widthType === "percent") {
41494
- width = `${config.widthValue}%`;
41495
- }
41496
-
41497
- // 高度设置
41498
- if (config.heightType === "fixed") {
41499
- height = `${config.heightValue}px`;
41500
- } else if (config.heightType === "percent") {
41501
- height = `${config.heightValue}%`;
41502
- } else if (config.heightType === "aspect") {
41503
- // 根据宽高比计算高度
41504
- height = "auto";
41505
- }
41506
- return {
41507
- width,
41508
- height,
41509
- maxWidth: config.maxWidth > 0 ? `${config.maxWidth}px` : "none",
41510
- maxHeight: config.maxHeight > 0 ? `${config.maxHeight}px` : "none",
41511
- borderRadius: `${config.borderRadius}px`,
41512
- overflow: "hidden",
41513
- display: "block",
41514
- position: "relative"
41515
- };
41516
- },
41517
- // 视频样式
41518
- videoStyle() {
41519
- const config = {
41520
- ...this.defaultConfig,
41521
- ...this.configData
41522
- };
41523
- let style = {
41524
- width: "100%",
41525
- height: "100%",
41526
- display: "block",
41527
- border: "none",
41528
- outline: "none"
41529
- };
41530
-
41531
- // 如果是宽高比模式,设置aspect-ratio
41532
- if (config.heightType === "aspect") {
41533
- style.aspectRatio = this.actualAspectRatio.replace(":", "/");
41534
- }
41535
- return style;
41536
- },
41537
- // 占位符样式
41538
- placeholderStyle() {
41539
- const config = {
41540
- ...this.defaultConfig,
41541
- ...this.configData
41542
- };
41543
- let width = "100%";
41544
- let height = "auto";
41545
-
41546
- // 如果设置了固定尺寸,使用设置的尺寸
41547
- if (config.widthType === "fixed") {
41548
- width = `${config.widthValue}px`;
41549
- } else if (config.widthType === "percent") {
41550
- width = `${config.widthValue}%`;
41551
- }
41552
- if (config.heightType === "fixed") {
41553
- height = `${config.heightValue}px`;
41554
- } else if (config.heightType === "aspect") {
41555
- // 使用aspect-ratio保持16:9比例
41556
- height = "auto";
41557
- } else {
41558
- // 默认使用16:9比例
41559
- height = "auto";
41560
- }
41561
- const style = {
41562
- width,
41563
- height,
41564
- backgroundColor: "#f5f7fa",
41565
- border: "1px dashed #dcdfe6",
41566
- borderRadius: `${config.borderRadius}px`,
41567
- display: "flex",
41568
- flexDirection: "column",
41569
- alignItems: "center",
41570
- justifyContent: "center",
41571
- color: "#909399",
41572
- fontSize: "14px"
41573
- };
41574
-
41575
- // 如果不是固定高度,使用aspect-ratio保持16:9比例
41576
- if (config.heightType !== "fixed") {
41577
- style.aspectRatio = this.actualAspectRatio.replace(":", "/");
41578
- }
41579
- return style;
41580
- }
41581
- },
41582
- methods: {
41583
- // 初始化配置数据
41584
- initConfigData() {
41585
- this.configData = {
41586
- ...this.defaultConfig,
41587
- ...this.configData
41588
- };
41589
- },
41590
- // 获取配置数据
41591
- getConfigData(configData) {
41592
- this.configData = {
41593
- ...this.defaultConfig,
41594
- ...configData
41595
- };
41596
- this.updateStyles();
41597
- },
41598
- // 更新样式
41599
- updateStyles() {
41600
- this.$nextTick(() => {
41601
- this.$forceUpdate();
41602
- });
41603
- },
41604
- // 视频开始加载
41605
- onVideoLoadStart() {
41606
- this.videoLoaded = false;
41607
- this.videoError = false;
41608
- },
41609
- // 视频加载完成
41610
- onVideoLoaded() {
41611
- this.videoLoaded = true;
41612
- this.videoError = false;
41613
- },
41614
- // 视频加载失败
41615
- onVideoError() {
41616
- this.videoLoaded = false;
41617
- this.videoError = true;
41618
- },
41619
- // 解析自定义样式
41620
- parseCustomStyle(customStyle) {
41621
- if (!customStyle) return {};
41622
- try {
41623
- const styles = {};
41624
- const declarations = customStyle.split(";");
41625
- declarations.forEach(declaration => {
41626
- const [property, value] = declaration.split(":");
41627
- if (property && value) {
41628
- const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
41629
- styles[camelCaseProperty] = value.trim();
41630
- }
41631
- });
41632
- return styles;
41633
- } catch (error) {
41634
- console.warn("解析自定义样式失败:", error);
41635
- return {};
41636
- }
41637
- }
41638
- }
41639
- });
41640
- ;// ./package/cms-video/View.vue?vue&type=script&lang=js
41641
- /* harmony default export */ var cms_video_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
41642
- ;// ./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=08ec3683&prod&lang=scss&scoped=true
41643
- // extracted by mini-css-extract-plugin
41644
-
41645
- ;// ./package/cms-video/View.vue?vue&type=style&index=0&id=08ec3683&prod&lang=scss&scoped=true
41646
-
41647
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
41648
- var componentNormalizer = __webpack_require__(1656);
41649
- ;// ./package/cms-video/View.vue
41650
-
41651
-
41652
-
41653
- ;
41654
-
41655
-
41656
- /* normalize component */
41657
-
41658
- var component = (0,componentNormalizer/* default */.A)(
41659
- cms_video_Viewvue_type_script_lang_js,
41660
- render,
41661
- staticRenderFns,
41662
- false,
41663
- null,
41664
- "08ec3683",
41665
- null
41666
-
41667
- )
41668
-
41669
- /* harmony default export */ var View = (component.exports);
41670
-
41671
41848
  /***/ }),
41672
41849
 
41673
41850
  /***/ 6098:
@@ -42427,285 +42604,6 @@ var component = (0,componentNormalizer/* default */.A)(
42427
42604
 
42428
42605
  /***/ }),
42429
42606
 
42430
- /***/ 6677:
42431
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
42432
-
42433
- "use strict";
42434
- // ESM COMPAT FLAG
42435
- __webpack_require__.r(__webpack_exports__);
42436
-
42437
- // EXPORTS
42438
- __webpack_require__.d(__webpack_exports__, {
42439
- "default": function() { return /* binding */ View; }
42440
- });
42441
-
42442
- ;// ./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-button/View.vue?vue&type=template&id=8a9aa4b4&scoped=true
42443
- var render = function render() {
42444
- var _vm = this,
42445
- _c = _vm._self._c;
42446
- return _c('BaseComp', _vm._b({
42447
- attrs: {
42448
- "data": _vm.data,
42449
- "nowCompId": _vm.nowCompId,
42450
- "isOpcacity": _vm.isOpcacity,
42451
- "lang": _vm.lang
42452
- },
42453
- on: {
42454
- "getConfigData": _vm.getConfigData
42455
- }
42456
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
42457
- staticClass: "cms-button-container",
42458
- class: [`align-${_vm.configData.textAlign || 'center'}`, _vm.configData.customClass || ''],
42459
- style: _vm.containerStyle
42460
- }, [_c('button', {
42461
- staticClass: "cms-button",
42462
- class: ['cms-button-element', {
42463
- 'has-link': _vm.configData.linkUrl,
42464
- 'hover-effect': _vm.configData.hoverEffect
42465
- }],
42466
- style: _vm.buttonStyle,
42467
- attrs: {
42468
- "disabled": _vm.configData.disabled
42469
- },
42470
- on: {
42471
- "click": _vm.handleClick
42472
- }
42473
- }, [_vm._v(" " + _vm._s(_vm.configData.buttonText) + " "), _c('i', {
42474
- staticClass: "el-icon-arrow-right el-icon--right"
42475
- })])])]);
42476
- };
42477
- var staticRenderFns = [];
42478
-
42479
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
42480
- var es_iterator_constructor = __webpack_require__(8111);
42481
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
42482
- var es_iterator_for_each = __webpack_require__(7588);
42483
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
42484
- var baseComp = __webpack_require__(4272);
42485
- ;// ./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
42486
-
42487
-
42488
-
42489
-
42490
-
42491
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
42492
- name: "cms-button",
42493
- components: {
42494
- BaseComp: baseComp["default"]
42495
- },
42496
- props: {
42497
- data: {
42498
- type: Object,
42499
- default: () => {
42500
- return {};
42501
- }
42502
- },
42503
- nowCompId: {
42504
- type: [String, Number],
42505
- default: ""
42506
- },
42507
- isOpcacity: {
42508
- type: Boolean,
42509
- default: true
42510
- },
42511
- lang: {
42512
- type: String,
42513
- default: "zh-HK"
42514
- }
42515
- },
42516
- data() {
42517
- return {
42518
- configData: {},
42519
- // 默认配置数据
42520
- defaultConfig: {
42521
- // 文字设置
42522
- buttonText: "按钮文字",
42523
- textAlign: "center",
42524
- fontSize: 16,
42525
- fontColor: "#ffffff",
42526
- fontWeight: "normal",
42527
- // 样式控制
42528
- backgroundColor: "#409eff",
42529
- borderRadius: 30,
42530
- borderWidth: 1,
42531
- borderStyle: "solid",
42532
- borderColor: "#409eff",
42533
- // 空间布局
42534
- paddingTop: 12,
42535
- paddingBottom: 12,
42536
- paddingLeft: 20,
42537
- paddingRight: 20,
42538
- marginTop: 0,
42539
- marginBottom: 0,
42540
- marginLeft: 0,
42541
- marginRight: 0,
42542
- // 交互功能
42543
- linkUrl: "",
42544
- linkTarget: "_self",
42545
- disabled: false,
42546
- // 高级配置
42547
- customClass: "",
42548
- customStyle: "",
42549
- hoverEffect: false,
42550
- // 尺寸设置
42551
- buttonWidth: "300",
42552
- buttonHeight: "48",
42553
- minWidth: 80,
42554
- minHeight: 36
42555
- }
42556
- };
42557
- },
42558
- mounted() {
42559
- this.initConfigData();
42560
- },
42561
- watch: {
42562
- configData: {
42563
- handler() {
42564
- this.updateStyles();
42565
- },
42566
- deep: true
42567
- }
42568
- },
42569
- computed: {
42570
- // 容器样式
42571
- containerStyle() {
42572
- const config = {
42573
- ...this.defaultConfig,
42574
- ...this.configData
42575
- };
42576
- return {
42577
- textAlign: config.textAlign,
42578
- margin: `${config.marginTop}px ${config.marginRight}px ${config.marginBottom}px ${config.marginLeft}px`,
42579
- ...this.parseCustomStyle(config.customStyle)
42580
- };
42581
- },
42582
- // 按钮样式
42583
- buttonStyle() {
42584
- const config = {
42585
- ...this.defaultConfig,
42586
- ...this.configData
42587
- };
42588
- return {
42589
- // 文字样式
42590
- fontSize: `${config.fontSize}px`,
42591
- color: config.fontColor,
42592
- fontWeight: config.fontWeight,
42593
- // 背景和边框
42594
- backgroundColor: config.backgroundColor ? config.backgroundColor : "transparent",
42595
- borderRadius: `${config.borderRadius}px`,
42596
- border: config.borderWidth ? `${config.borderWidth}px ${config.borderStyle} ${config.borderColor}` : "none",
42597
- // 内边距
42598
- padding: `${config.paddingTop}px ${config.paddingRight}px ${config.paddingBottom}px ${config.paddingLeft}px`,
42599
- // 尺寸
42600
- width: config.buttonWidth === "auto" ? "auto" : `${config.buttonWidth}px`,
42601
- height: config.buttonHeight === "auto" ? "auto" : `${config.buttonHeight}px`,
42602
- minWidth: `${config.minWidth}px`,
42603
- minHeight: `${config.minHeight}px`,
42604
- // 交互效果
42605
- cursor: config.linkUrl ? "pointer" : "default",
42606
- opacity: config.disabled ? 0.6 : 1,
42607
- transition: config.hoverEffect ? "all 0.3s ease" : "none",
42608
- // 基础样式
42609
- outline: "none",
42610
- textDecoration: "none",
42611
- display: "inline-block",
42612
- textAlign: "center",
42613
- verticalAlign: "middle",
42614
- userSelect: "none",
42615
- whiteSpace: "nowrap"
42616
- };
42617
- }
42618
- },
42619
- methods: {
42620
- // 初始化配置数据
42621
- initConfigData() {
42622
- this.configData = {
42623
- ...this.defaultConfig,
42624
- ...this.configData
42625
- };
42626
- },
42627
- // 获取配置数据
42628
- getConfigData(configData) {
42629
- this.configData = {
42630
- ...this.defaultConfig,
42631
- ...configData
42632
- };
42633
- this.updateStyles();
42634
- },
42635
- // 更新样式
42636
- updateStyles() {
42637
- this.$nextTick(() => {
42638
- this.$forceUpdate();
42639
- });
42640
- },
42641
- // 处理点击事件
42642
- handleClick() {
42643
- if (this.configData.disabled) {
42644
- return;
42645
- }
42646
- if (this.configData.linkUrl) {
42647
- const target = this.configData.linkTarget || "_self";
42648
- if (target === "_blank") {
42649
- window.open(this.configData.linkUrl, "_blank");
42650
- } else {
42651
- window.location.href = this.configData.linkUrl;
42652
- }
42653
- }
42654
- },
42655
- // 解析自定义样式
42656
- parseCustomStyle(customStyle) {
42657
- if (!customStyle) return {};
42658
- try {
42659
- const styles = {};
42660
- const declarations = customStyle.split(";");
42661
- declarations.forEach(declaration => {
42662
- const [property, value] = declaration.split(":");
42663
- if (property && value) {
42664
- const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
42665
- styles[camelCaseProperty] = value.trim();
42666
- }
42667
- });
42668
- return styles;
42669
- } catch (error) {
42670
- console.warn("解析自定义样式失败:", error);
42671
- return {};
42672
- }
42673
- }
42674
- }
42675
- });
42676
- ;// ./package/cms-button/View.vue?vue&type=script&lang=js
42677
- /* harmony default export */ var cms_button_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
42678
- ;// ./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-button/View.vue?vue&type=style&index=0&id=8a9aa4b4&prod&lang=scss&scoped=true
42679
- // extracted by mini-css-extract-plugin
42680
-
42681
- ;// ./package/cms-button/View.vue?vue&type=style&index=0&id=8a9aa4b4&prod&lang=scss&scoped=true
42682
-
42683
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
42684
- var componentNormalizer = __webpack_require__(1656);
42685
- ;// ./package/cms-button/View.vue
42686
-
42687
-
42688
-
42689
- ;
42690
-
42691
-
42692
- /* normalize component */
42693
-
42694
- var component = (0,componentNormalizer/* default */.A)(
42695
- cms_button_Viewvue_type_script_lang_js,
42696
- render,
42697
- staticRenderFns,
42698
- false,
42699
- null,
42700
- "8a9aa4b4",
42701
- null
42702
-
42703
- )
42704
-
42705
- /* harmony default export */ var View = (component.exports);
42706
-
42707
- /***/ }),
42708
-
42709
42607
  /***/ 6699:
42710
42608
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
42711
42609
 
@@ -52831,127 +52729,6 @@ module.exports = function (it) {
52831
52729
  };
52832
52730
 
52833
52731
 
52834
- /***/ }),
52835
-
52836
- /***/ 7082:
52837
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
52838
-
52839
- "use strict";
52840
- // ESM COMPAT FLAG
52841
- __webpack_require__.r(__webpack_exports__);
52842
-
52843
- // EXPORTS
52844
- __webpack_require__.d(__webpack_exports__, {
52845
- "default": function() { return /* binding */ View; }
52846
- });
52847
-
52848
- ;// ./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-richText/View.vue?vue&type=template&id=6e48aa1e&scoped=true
52849
- var render = function render() {
52850
- var _vm = this,
52851
- _c = _vm._self._c;
52852
- return _c('BaseComp', _vm._b({
52853
- attrs: {
52854
- "data": _vm.data,
52855
- "nowCompId": _vm.nowCompId,
52856
- "isOpcacity": _vm.isOpcacity,
52857
- "lang": _vm.lang
52858
- },
52859
- on: {
52860
- "getConfigData": _vm.getConfigData
52861
- }
52862
- }, 'BaseComp', _vm.$attrs, false), [_c('section', {
52863
- staticClass: "cmhk-home_main"
52864
- }, [_c('div', [_c('div', {
52865
- staticClass: "inner"
52866
- }, [_c('p', {
52867
- domProps: {
52868
- "innerHTML": _vm._s(_vm.configData.input1)
52869
- }
52870
- })])])])]);
52871
- };
52872
- var staticRenderFns = [];
52873
-
52874
- // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
52875
- var baseComp = __webpack_require__(4272);
52876
- ;// ./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
52877
-
52878
- /* harmony default export */ var Viewvue_type_script_lang_js = ({
52879
- name: "cms-richText",
52880
- components: {
52881
- BaseComp: baseComp["default"]
52882
- },
52883
- props: {
52884
- data: {
52885
- type: Object,
52886
- default: () => {
52887
- return {};
52888
- }
52889
- },
52890
- nowCompId: {
52891
- type: [String, Number],
52892
- default: ""
52893
- },
52894
- isOpcacity: {
52895
- type: Boolean,
52896
- default: true
52897
- },
52898
- lang: {
52899
- type: String,
52900
- default: "zh-HK"
52901
- }
52902
- },
52903
- data() {
52904
- return {
52905
- configData: {},
52906
- messFold: false
52907
- };
52908
- },
52909
- mounted() {},
52910
- watch: {},
52911
- methods: {
52912
- getConfigData(configData) {
52913
- this.configData = configData;
52914
- },
52915
- foldMessText() {
52916
- this.messFold = !this.messFold;
52917
- },
52918
- decodeJumpUrl(url) {
52919
- if (!url) return;
52920
- top.location.href = url;
52921
- }
52922
- }
52923
- });
52924
- ;// ./package/cms-richText/View.vue?vue&type=script&lang=js
52925
- /* harmony default export */ var cms_richText_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
52926
- ;// ./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-richText/View.vue?vue&type=style&index=0&id=6e48aa1e&prod&lang=scss&scoped=true
52927
- // extracted by mini-css-extract-plugin
52928
-
52929
- ;// ./package/cms-richText/View.vue?vue&type=style&index=0&id=6e48aa1e&prod&lang=scss&scoped=true
52930
-
52931
- // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
52932
- var componentNormalizer = __webpack_require__(1656);
52933
- ;// ./package/cms-richText/View.vue
52934
-
52935
-
52936
-
52937
- ;
52938
-
52939
-
52940
- /* normalize component */
52941
-
52942
- var component = (0,componentNormalizer/* default */.A)(
52943
- cms_richText_Viewvue_type_script_lang_js,
52944
- render,
52945
- staticRenderFns,
52946
- false,
52947
- null,
52948
- "6e48aa1e",
52949
- null
52950
-
52951
- )
52952
-
52953
- /* harmony default export */ var View = (component.exports);
52954
-
52955
52732
  /***/ }),
52956
52733
 
52957
52734
  /***/ 7197:
@@ -53350,7 +53127,7 @@ $({ target: 'Iterator', proto: true, real: true }, {
53350
53127
  __webpack_require__.r(__webpack_exports__);
53351
53128
  /* harmony import */ var _baseConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(649);
53352
53129
 
53353
- const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 7082));
53130
+ const View = () => Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 845));
53354
53131
  const langData = {
53355
53132
  input1: "请输入富文本内容"
53356
53133
  };
@@ -54786,6 +54563,286 @@ const getWujieCompInfo = (compList, componentId, isTemplate) => {
54786
54563
 
54787
54564
  /***/ }),
54788
54565
 
54566
+ /***/ 8169:
54567
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
54568
+
54569
+ "use strict";
54570
+ // ESM COMPAT FLAG
54571
+ __webpack_require__.r(__webpack_exports__);
54572
+
54573
+ // EXPORTS
54574
+ __webpack_require__.d(__webpack_exports__, {
54575
+ "default": function() { return /* binding */ View; }
54576
+ });
54577
+
54578
+ ;// ./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-button/View.vue?vue&type=template&id=d7712dd2&scoped=true
54579
+ var render = function render() {
54580
+ var _vm = this,
54581
+ _c = _vm._self._c;
54582
+ return _c('BaseComp', _vm._b({
54583
+ attrs: {
54584
+ "data": _vm.data,
54585
+ "nowCompId": _vm.nowCompId,
54586
+ "isOpcacity": _vm.isOpcacity,
54587
+ "lang": _vm.lang
54588
+ },
54589
+ on: {
54590
+ "getConfigData": _vm.getConfigData
54591
+ }
54592
+ }, 'BaseComp', _vm.$attrs, false), [_c('section', {
54593
+ staticClass: "cms-button-container",
54594
+ class: [`align-${_vm.configData.textAlign || 'center'}`, _vm.configData.customClass || ''],
54595
+ style: _vm.containerStyle
54596
+ }, [_c('button', {
54597
+ staticClass: "cms-button",
54598
+ class: ['cms-button-element', {
54599
+ 'has-link': _vm.configData.linkUrl,
54600
+ 'hover-effect': _vm.configData.hoverEffect
54601
+ }],
54602
+ style: _vm.buttonStyle,
54603
+ attrs: {
54604
+ "disabled": _vm.configData.disabled
54605
+ },
54606
+ on: {
54607
+ "click": _vm.handleClick
54608
+ }
54609
+ }, [_vm._v(" " + _vm._s(_vm.configData.buttonText) + " "), _c('i', {
54610
+ staticClass: "el-icon-arrow-right el-icon--right"
54611
+ })])])]);
54612
+ };
54613
+ var staticRenderFns = [];
54614
+
54615
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
54616
+ var es_iterator_constructor = __webpack_require__(8111);
54617
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
54618
+ var es_iterator_for_each = __webpack_require__(7588);
54619
+ // EXTERNAL MODULE: ./package/baseComp.vue + 5 modules
54620
+ var baseComp = __webpack_require__(4272);
54621
+ ;// ./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
54622
+
54623
+
54624
+
54625
+
54626
+
54627
+ /* harmony default export */ var Viewvue_type_script_lang_js = ({
54628
+ name: "cms-button",
54629
+ components: {
54630
+ BaseComp: baseComp["default"]
54631
+ },
54632
+ props: {
54633
+ data: {
54634
+ type: Object,
54635
+ default: () => {
54636
+ return {};
54637
+ }
54638
+ },
54639
+ nowCompId: {
54640
+ type: [String, Number],
54641
+ default: ""
54642
+ },
54643
+ isOpcacity: {
54644
+ type: Boolean,
54645
+ default: true
54646
+ },
54647
+ lang: {
54648
+ type: String,
54649
+ default: "zh-HK"
54650
+ }
54651
+ },
54652
+ data() {
54653
+ return {
54654
+ configData: {},
54655
+ // 默认配置数据
54656
+ defaultConfig: {
54657
+ // 文字设置
54658
+ buttonText: "按钮文字",
54659
+ textAlign: "center",
54660
+ fontSize: 16,
54661
+ fontColor: "#ffffff",
54662
+ fontWeight: "normal",
54663
+ // 样式控制
54664
+ backgroundColor: "#409eff",
54665
+ borderRadius: 30,
54666
+ borderWidth: 1,
54667
+ borderStyle: "solid",
54668
+ borderColor: "#409eff",
54669
+ // 空间布局
54670
+ paddingTop: 12,
54671
+ paddingBottom: 12,
54672
+ paddingLeft: 20,
54673
+ paddingRight: 20,
54674
+ marginTop: 0,
54675
+ marginBottom: 0,
54676
+ marginLeft: 0,
54677
+ marginRight: 0,
54678
+ // 交互功能
54679
+ linkUrl: "",
54680
+ linkTarget: "_self",
54681
+ disabled: false,
54682
+ // 高级配置
54683
+ customClass: "",
54684
+ customStyle: "",
54685
+ hoverEffect: false,
54686
+ // 尺寸设置
54687
+ buttonWidth: "300",
54688
+ buttonHeight: "48",
54689
+ minWidth: 80,
54690
+ minHeight: 36
54691
+ }
54692
+ };
54693
+ },
54694
+ mounted() {
54695
+ this.initConfigData();
54696
+ },
54697
+ watch: {
54698
+ configData: {
54699
+ handler() {
54700
+ this.updateStyles();
54701
+ },
54702
+ deep: true
54703
+ }
54704
+ },
54705
+ computed: {
54706
+ // 容器样式
54707
+ containerStyle() {
54708
+ const config = {
54709
+ ...this.defaultConfig,
54710
+ ...this.configData
54711
+ };
54712
+ return {
54713
+ backgroundColor: config.wrapperBackgroundColor,
54714
+ textAlign: config.textAlign,
54715
+ margin: `${config.marginTop}px ${config.marginRight}px ${config.marginBottom}px ${config.marginLeft}px`,
54716
+ ...this.parseCustomStyle(config.customStyle)
54717
+ };
54718
+ },
54719
+ // 按钮样式
54720
+ buttonStyle() {
54721
+ const config = {
54722
+ ...this.defaultConfig,
54723
+ ...this.configData
54724
+ };
54725
+ return {
54726
+ // 文字样式
54727
+ fontSize: `${config.fontSize}px`,
54728
+ color: config.fontColor,
54729
+ fontWeight: config.fontWeight,
54730
+ // 背景和边框
54731
+ backgroundColor: config.backgroundColor ? config.backgroundColor : "transparent",
54732
+ borderRadius: `${config.borderRadius}px`,
54733
+ border: config.borderWidth ? `${config.borderWidth}px ${config.borderStyle} ${config.borderColor}` : "none",
54734
+ // 内边距
54735
+ padding: `${config.paddingTop}px ${config.paddingRight}px ${config.paddingBottom}px ${config.paddingLeft}px`,
54736
+ // 尺寸
54737
+ width: config.buttonWidth === "auto" ? "auto" : `${config.buttonWidth}px`,
54738
+ height: config.buttonHeight === "auto" ? "auto" : `${config.buttonHeight}px`,
54739
+ minWidth: `${config.minWidth}px`,
54740
+ minHeight: `${config.minHeight}px`,
54741
+ // 交互效果
54742
+ cursor: config.linkUrl ? "pointer" : "default",
54743
+ opacity: config.disabled ? 0.6 : 1,
54744
+ transition: config.hoverEffect ? "all 0.3s ease" : "none",
54745
+ // 基础样式
54746
+ outline: "none",
54747
+ textDecoration: "none",
54748
+ display: "inline-block",
54749
+ textAlign: "center",
54750
+ verticalAlign: "middle",
54751
+ userSelect: "none",
54752
+ whiteSpace: "nowrap"
54753
+ };
54754
+ }
54755
+ },
54756
+ methods: {
54757
+ // 初始化配置数据
54758
+ initConfigData() {
54759
+ this.configData = {
54760
+ ...this.defaultConfig,
54761
+ ...this.configData
54762
+ };
54763
+ },
54764
+ // 获取配置数据
54765
+ getConfigData(configData) {
54766
+ this.configData = {
54767
+ ...this.defaultConfig,
54768
+ ...configData
54769
+ };
54770
+ this.updateStyles();
54771
+ },
54772
+ // 更新样式
54773
+ updateStyles() {
54774
+ this.$nextTick(() => {
54775
+ this.$forceUpdate();
54776
+ });
54777
+ },
54778
+ // 处理点击事件
54779
+ handleClick() {
54780
+ if (this.configData.disabled) {
54781
+ return;
54782
+ }
54783
+ if (this.configData.linkUrl) {
54784
+ const target = this.configData.linkTarget || "_self";
54785
+ if (target === "_blank") {
54786
+ window.open(this.configData.linkUrl, "_blank");
54787
+ } else {
54788
+ window.location.href = this.configData.linkUrl;
54789
+ }
54790
+ }
54791
+ },
54792
+ // 解析自定义样式
54793
+ parseCustomStyle(customStyle) {
54794
+ if (!customStyle) return {};
54795
+ try {
54796
+ const styles = {};
54797
+ const declarations = customStyle.split(";");
54798
+ declarations.forEach(declaration => {
54799
+ const [property, value] = declaration.split(":");
54800
+ if (property && value) {
54801
+ const camelCaseProperty = property.trim().replace(/-([a-z])/g, g => g[1].toUpperCase());
54802
+ styles[camelCaseProperty] = value.trim();
54803
+ }
54804
+ });
54805
+ return styles;
54806
+ } catch (error) {
54807
+ console.warn("解析自定义样式失败:", error);
54808
+ return {};
54809
+ }
54810
+ }
54811
+ }
54812
+ });
54813
+ ;// ./package/cms-button/View.vue?vue&type=script&lang=js
54814
+ /* harmony default export */ var cms_button_Viewvue_type_script_lang_js = (Viewvue_type_script_lang_js);
54815
+ ;// ./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-button/View.vue?vue&type=style&index=0&id=d7712dd2&prod&lang=scss&scoped=true
54816
+ // extracted by mini-css-extract-plugin
54817
+
54818
+ ;// ./package/cms-button/View.vue?vue&type=style&index=0&id=d7712dd2&prod&lang=scss&scoped=true
54819
+
54820
+ // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
54821
+ var componentNormalizer = __webpack_require__(1656);
54822
+ ;// ./package/cms-button/View.vue
54823
+
54824
+
54825
+
54826
+ ;
54827
+
54828
+
54829
+ /* normalize component */
54830
+
54831
+ var component = (0,componentNormalizer/* default */.A)(
54832
+ cms_button_Viewvue_type_script_lang_js,
54833
+ render,
54834
+ staticRenderFns,
54835
+ false,
54836
+ null,
54837
+ "d7712dd2",
54838
+ null
54839
+
54840
+ )
54841
+
54842
+ /* harmony default export */ var View = (component.exports);
54843
+
54844
+ /***/ }),
54845
+
54789
54846
  /***/ 8227:
54790
54847
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
54791
54848