Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	data-room-ui/packages/BasicComponents/Texts/settingConfig.js
liu.shiyi 1 rok pred
rodič
commit
97a3a69401
100 zmenil súbory, kde vykonal 1308 pridanie a 515 odobranie
  1. 14 0
      DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/bean/Chart.java
  2. 1 3
      DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/file/service/impl/DataRoomLocalFileServiceImpl.java
  3. 0 6
      DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/dao/DataRoomMapDao.java
  4. 1 46
      DataRoom/dataroom-core/src/main/resources/mapper/DataRoomMapDao.xml
  5. 4 0
      data-room-ui/.env.history
  6. 14 0
      data-room-ui/.env.pro.history
  7. 10 0
      data-room-ui/.env.pro.production
  8. 3 0
      data-room-ui/.env.production
  9. 3 0
      data-room-ui/.gitignore
  10. 2 0
      data-room-ui/.npmignore
  11. 3 1
      data-room-ui/example/main.js
  12. 58 43
      data-room-ui/package-lock.json
  13. 5 1
      data-room-ui/package.json
  14. 10 1
      data-room-ui/packages/BasicComponents/Button/setting.vue
  15. 9 1
      data-room-ui/packages/BasicComponents/Button/settingConfig.js
  16. 9 1
      data-room-ui/packages/BasicComponents/ChartTab/setting.vue
  17. 9 1
      data-room-ui/packages/BasicComponents/ChartTab/settingConfig.js
  18. 18 10
      data-room-ui/packages/BasicComponents/CurrentTime/setting.vue
  19. 9 1
      data-room-ui/packages/BasicComponents/CurrentTime/settingConfig.js
  20. 185 103
      data-room-ui/packages/BasicComponents/DateTimePicker/index.vue
  21. 97 55
      data-room-ui/packages/BasicComponents/DateTimePicker/setting.vue
  22. 9 1
      data-room-ui/packages/BasicComponents/DateTimePicker/settingConfig.js
  23. 9 1
      data-room-ui/packages/BasicComponents/DigitalFlop/setting.vue
  24. 8 1
      data-room-ui/packages/BasicComponents/DigitalFlop/settingConfig.js
  25. 1 1
      data-room-ui/packages/BasicComponents/FlyMap/index.vue
  26. 18 10
      data-room-ui/packages/BasicComponents/FlyMap/setting.vue
  27. 8 1
      data-room-ui/packages/BasicComponents/FlyMap/settingConfig.js
  28. 11 2
      data-room-ui/packages/BasicComponents/HorizontalLine/setting.vue
  29. 9 1
      data-room-ui/packages/BasicComponents/HorizontalLine/settingConfig.js
  30. 10 1
      data-room-ui/packages/BasicComponents/IframeChart/setting.vue
  31. 9 1
      data-room-ui/packages/BasicComponents/IframeChart/settingConfig.js
  32. 9 1
      data-room-ui/packages/BasicComponents/IndexCard/setting.vue
  33. 9 1
      data-room-ui/packages/BasicComponents/IndexCard/settingConfig.js
  34. 18 10
      data-room-ui/packages/BasicComponents/IndexCard2/setting.vue
  35. 9 1
      data-room-ui/packages/BasicComponents/IndexCard2/settingConfig.js
  36. 9 1
      data-room-ui/packages/BasicComponents/IndicatorCard/setting.vue
  37. 9 1
      data-room-ui/packages/BasicComponents/IndicatorCard/settingConfig.js
  38. 9 1
      data-room-ui/packages/BasicComponents/IndicatorCard2/setting.vue
  39. 9 1
      data-room-ui/packages/BasicComponents/IndicatorCard2/settingConfig.js
  40. 10 2
      data-room-ui/packages/BasicComponents/Input/setting.vue
  41. 9 1
      data-room-ui/packages/BasicComponents/Input/settingConfig.js
  42. 9 1
      data-room-ui/packages/BasicComponents/LinkChart/setting.vue
  43. 9 1
      data-room-ui/packages/BasicComponents/LinkChart/settingConfig.js
  44. 1 1
      data-room-ui/packages/BasicComponents/Map/index.vue
  45. 10 2
      data-room-ui/packages/BasicComponents/Map/setting.vue
  46. 9 1
      data-room-ui/packages/BasicComponents/Map/settingConfig.js
  47. 8 0
      data-room-ui/packages/BasicComponents/Marquee/setting.vue
  48. 9 1
      data-room-ui/packages/BasicComponents/Marquee/settingConfig.js
  49. 10 2
      data-room-ui/packages/BasicComponents/Picture/index.vue
  50. 46 29
      data-room-ui/packages/BasicComponents/Picture/setting.vue
  51. 9 1
      data-room-ui/packages/BasicComponents/Picture/settingConfig.js
  52. 6 0
      data-room-ui/packages/BasicComponents/ScreenScrollBoard/setting.vue
  53. 9 1
      data-room-ui/packages/BasicComponents/ScreenScrollBoard/settingConfig.js
  54. 18 10
      data-room-ui/packages/BasicComponents/ScreenScrollRanking/setting.vue
  55. 8 1
      data-room-ui/packages/BasicComponents/ScreenScrollRanking/settingConfig.js
  56. 8 0
      data-room-ui/packages/BasicComponents/Select/setting.vue
  57. 8 1
      data-room-ui/packages/BasicComponents/Select/settingConfig.js
  58. 18 10
      data-room-ui/packages/BasicComponents/Tables/setting.vue
  59. 9 1
      data-room-ui/packages/BasicComponents/Tables/settingConfig.js
  60. 9 1
      data-room-ui/packages/BasicComponents/Texts/setting.vue
  61. 6 1
      data-room-ui/packages/BasicComponents/Texts/settingConfig.js
  62. 18 10
      data-room-ui/packages/BasicComponents/ThemeSelect/setting.vue
  63. 9 1
      data-room-ui/packages/BasicComponents/ThemeSelect/settingConfig.js
  64. 18 10
      data-room-ui/packages/BasicComponents/ThemeSwitcher/setting.vue
  65. 9 1
      data-room-ui/packages/BasicComponents/ThemeSwitcher/settingConfig.js
  66. 18 10
      data-room-ui/packages/BasicComponents/TimeCountDown/setting.vue
  67. 9 1
      data-room-ui/packages/BasicComponents/TimeCountDown/settingConfig.js
  68. 16 7
      data-room-ui/packages/BasicComponents/TimePicker/index.vue
  69. 67 68
      data-room-ui/packages/BasicComponents/TimePicker/setting.vue
  70. 9 1
      data-room-ui/packages/BasicComponents/TimePicker/settingConfig.js
  71. 9 1
      data-room-ui/packages/BasicComponents/VerticalLine/setting.vue
  72. 9 1
      data-room-ui/packages/BasicComponents/VerticalLine/settingConfig.js
  73. 9 1
      data-room-ui/packages/BasicComponents/Video/setting.vue
  74. 9 1
      data-room-ui/packages/BasicComponents/Video/settingConfig.js
  75. 9 1
      data-room-ui/packages/BigScreenDesign/BorderSetting.vue
  76. 1 0
      data-room-ui/packages/BigScreenDesign/RightSetting/EchartsCustomSetting.vue
  77. 10 2
      data-room-ui/packages/BigScreenDesign/RightSetting/G2CustomSetting.vue
  78. 11 3
      data-room-ui/packages/BigScreenList/index.vue
  79. 3 0
      data-room-ui/packages/Borders/Border1/setting.vue
  80. 9 1
      data-room-ui/packages/Borders/Border1/settingConfig.js
  81. 9 1
      data-room-ui/packages/Borders/Border10/settingConfig.js
  82. 9 1
      data-room-ui/packages/Borders/Border11/settingConfig.js
  83. 9 1
      data-room-ui/packages/Borders/Border12/settingConfig.js
  84. 9 1
      data-room-ui/packages/Borders/Border13/settingConfig.js
  85. 10 0
      data-room-ui/packages/Borders/Border14/settingConfig.js
  86. 10 0
      data-room-ui/packages/Borders/Border15/settingConfig.js
  87. 9 1
      data-room-ui/packages/Borders/Border2/settingConfig.js
  88. 9 1
      data-room-ui/packages/Borders/Border3/settingConfig.js
  89. 9 1
      data-room-ui/packages/Borders/Border4/settingConfig.js
  90. 9 1
      data-room-ui/packages/Borders/Border5/settingConfig.js
  91. 9 1
      data-room-ui/packages/Borders/Border6/settingConfig.js
  92. 9 1
      data-room-ui/packages/Borders/Border7/settingConfig.js
  93. 9 1
      data-room-ui/packages/Borders/Border8/settingConfig.js
  94. 9 1
      data-room-ui/packages/Borders/Border9/settingConfig.js
  95. 11 3
      data-room-ui/packages/ComponentList/index.vue
  96. 8 0
      data-room-ui/packages/Decorations/Decoration1/setting.vue
  97. 9 1
      data-room-ui/packages/Decorations/Decoration1/settingConfig.js
  98. 8 0
      data-room-ui/packages/Decorations/Decoration10/setting.vue
  99. 9 1
      data-room-ui/packages/Decorations/Decoration10/settingConfig.js
  100. 8 0
      data-room-ui/packages/Decorations/Decoration11/setting.vue

+ 14 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/bean/Chart.java

@@ -97,4 +97,18 @@ public class Chart {
     @ApiModelProperty(notes = "表达式关联的组件的code集合")
     private List<String> expressionCodes;
 
+    @ApiModelProperty(notes = "旋转x")
+    private Integer rotateX;
+
+    @ApiModelProperty(notes = "旋转y")
+    private Integer rotateY;
+
+    @ApiModelProperty(notes = "旋转z")
+    private Integer rotateZ;
+
+    @ApiModelProperty(notes = "透视")
+    private Integer perspective;
+
+
+
 }

+ 1 - 3
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/file/service/impl/DataRoomLocalFileServiceImpl.java

@@ -65,12 +65,10 @@ public class DataRoomLocalFileServiceImpl implements IDataRoomOssService {
         }
         fileEntity.setOriginalName(originalFilename);
         fileEntity.setNewName(newFileName);
-        // 如果想存储到其他目录下、可以重写
         fileEntity.setPath(basePath);
         fileEntity.setSize(size);
         fileEntity.setExtension(extension);
-        String urlPrefix = bigScreenConfig.getFile().getUrlPrefix();
-        fileEntity.setUrl(urlPrefix + "/" + newFileName);
+        fileEntity.setUrl("/" + newFileName);
         return fileEntity;
     }
 

+ 0 - 6
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/map/dao/DataRoomMapDao.java

@@ -17,12 +17,6 @@ import java.util.List;
 @Mapper
 public interface DataRoomMapDao extends BaseMapper<DataRoomMapEntity> {
 
-    /**
-     * 获取地图列表
-     * @return
-     */
-    List<DataRoomMapVO> getList(@Param("searchDTO") MapSearchDTO searchDTO);
-
     /**
      * 根据层级获取地图列表
      * 列表包括所有目标层级的地图,以及目标层级的父地图...

+ 1 - 46
DataRoom/dataroom-core/src/main/resources/mapper/DataRoomMapDao.xml

@@ -3,50 +3,6 @@
 
 <mapper namespace="com.gccloud.dataroom.core.module.map.dao.DataRoomMapDao">
 
-    <!--  查询地图数据  -->
-    <select id="getList" resultType="com.gccloud.dataroom.core.module.map.vo.DataRoomMapVO">
-        SELECT id,
-               parent_id,
-               map_code,
-               name,
-               level,
-               geo_json,
-               uploaded_geo_json,
-               create_date,
-               update_date,
-               create_by,
-               update_by,
-               del_flag,
-               id as curentMapId,
-               CASE WHEN EXISTS(SELECT 1
-                                FROM big_screen_map
-                                WHERE parent_id = curentMapId
-                                  AND del_flag = 0)
-                   THEN 1
-               ELSE 0 END AS has_children
-        FROM big_screen_map
-        WHERE del_flag = 0
-        <if test="searchDTO != null">
-            <if test="searchDTO.parentId != null and searchDTO.parentId != ''">
-                AND parent_id = #{searchDTO.parentId}
-            </if>
-            <if test="searchDTO.searchKey != null and searchDTO.searchKey != ''">
-                AND (
-                    name like concat('%', #{searchDTO.searchKey}, '%')
-                    OR map_code like concat('%', #{searchDTO.searchKey}, '%')
-                    )
-            </if>
-            <if test="searchDTO.level != null">
-                AND level = #{searchDTO.level}
-            </if>
-            <if test="searchDTO.uploadedGeoJson != null">
-                AND uploaded_geo_json = #{searchDTO.uploadedGeoJson}
-            </if>
-
-        </if>
-
-    </select>
-
     <select id="getMapByLevel" resultType="com.gccloud.dataroom.core.module.map.entity.DataRoomMapEntity">
         select id, level, parent_id, map_code
         from big_screen_map
@@ -58,5 +14,4 @@
     </select>
 
 
-
-</mapper>
+</mapper>

+ 4 - 0
data-room-ui/.env.history

@@ -5,7 +5,11 @@ ENV = 'history'
 
 # VUE_APP_BASE为项目访问路径的前缀
 VUE_APP_BASE = '/bigScreen'
+
 # VUE_APP_HISTORY为是否开启history模式
 VUE_APP_HISTORY = 'y'
 
+# 打包后的文件夹名称
+VUE_APP_OUTPUT_DIR = 'dataRoomUi'
+
 VUE_APP_BUILD_TYPE = 'example'

+ 14 - 0
data-room-ui/.env.pro.history

@@ -0,0 +1,14 @@
+NODE_ENV = production
+
+# just a flag
+ENV = 'history'
+
+# VUE_APP_BASE为项目访问路径的前缀
+VUE_APP_BASE = '/dataRoomPro'
+# VUE_APP_HISTORY为是否开启history模式
+VUE_APP_HISTORY = 'y'
+
+# 打包后的文件夹名称
+VUE_APP_OUTPUT_DIR = 'dataRoomPro'
+
+VUE_APP_BUILD_TYPE = 'example'

+ 10 - 0
data-room-ui/.env.pro.production

@@ -0,0 +1,10 @@
+# just a flag
+ENV = 'production'
+
+# base api
+VUE_APP_BASE_API = '/dataRoomPro'
+
+# 打包后的文件夹名称
+VUE_APP_OUTPUT_DIR = 'dataRoomPro'
+
+VUE_APP_BUILD_TYPE = 'example'

+ 3 - 0
data-room-ui/.env.production

@@ -4,4 +4,7 @@ ENV = 'production'
 # base api
 VUE_APP_BASE_API = '/bigScreen'
 
+# 打包后的文件夹名称
+VUE_APP_OUTPUT_DIR = 'dataRoomUi'
+
 VUE_APP_BUILD_TYPE = 'example'

+ 3 - 0
data-room-ui/.gitignore

@@ -369,5 +369,8 @@ GitHub.sublime-settings
 lib
 data-room-ui
 dataRoomUi
+dataRoomUi.zip
+dataRoomPro
+dataRoomPro.zip
 bigScreen
 bigScreen.zip

+ 2 - 0
data-room-ui/.npmignore

@@ -4,6 +4,8 @@ example/
 dist/
 lib/
 hooks/
+dataRoomUi/
+dataRoomPro/
 
 # 只包含packages和public文件
 !packages/

+ 3 - 1
data-room-ui/example/main.js

@@ -40,7 +40,9 @@ registerConfig(
       componentUrl: '/big-screen-components'
     },
     httpConfigs: {
-      baseURL: window.CONFIG?.baseUrl
+      baseURL: window.CONFIG?.baseUrl,
+      // 现在文件路径保存的是相对路径,所以需要加上前缀,这个值一般和后端的gc.starter.file.urlPrefix一致
+      fileUrlPrefix: window.CONFIG.fileUrlPrefix ? window.CONFIG.fileUrlPrefix : window.CONFIG?.baseUrl + '/static',
     },
     customTheme: {
       '--bs-background-1': '#151a26', // 整体背景色

+ 58 - 43
data-room-ui/package-lock.json

@@ -1,6 +1,6 @@
 {
   "name": "@gcpaas/data-room-ui",
-  "version": "1.0.1-2023092702-Alpha",
+  "version": "1.0.1-2023101101-Alpha",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -1659,6 +1659,21 @@
       "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
       "dev": true
     },
+    "@gcpaas/vue-draggable-resizable-gorkys": {
+      "version": "1.0.1-2023101102-Alpha",
+      "resolved": "https://registry.npmmirror.com/@gcpaas/vue-draggable-resizable-gorkys/-/vue-draggable-resizable-gorkys-1.0.1-2023101102-Alpha.tgz",
+      "integrity": "sha512-w0CB2SMh74s3/UtkWYbFV+ukT1grh28pnROJe3ZC1cn7DrOYwjsdAltflO6m1yyky06+5SXRTFnhsI2QGsfr7w==",
+      "requires": {
+        "core-js": "^2.6.11"
+      },
+      "dependencies": {
+        "core-js": {
+          "version": "2.6.12",
+          "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz",
+          "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
+        }
+      }
+    },
     "@hapi/hoek": {
       "version": "9.3.0",
       "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
@@ -3377,6 +3392,27 @@
         "whatwg-fetch": "^3.6.2"
       },
       "dependencies": {
+        "@vue/vue-loader-v15": {
+          "version": "npm:vue-loader@15.10.2",
+          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.2.tgz",
+          "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
+          "dev": true,
+          "requires": {
+            "@vue/component-compiler-utils": "^3.1.0",
+            "hash-sum": "^1.0.2",
+            "loader-utils": "^1.1.0",
+            "vue-hot-reload-api": "^2.3.0",
+            "vue-style-loader": "^4.1.0"
+          },
+          "dependencies": {
+            "hash-sum": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+              "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+              "dev": true
+            }
+          }
+        },
         "acorn-walk": {
           "version": "8.2.0",
           "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
@@ -3448,6 +3484,26 @@
             "tapable": "^2.0.0"
           }
         },
+        "json5": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.2",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        },
         "ms": {
           "version": "2.1.2",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -3682,47 +3738,6 @@
         "lodash": "^4.17.4"
       }
     },
-    "@vue/vue-loader-v15": {
-      "version": "npm:vue-loader@15.10.2",
-      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.2.tgz",
-      "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
-      "dev": true,
-      "requires": {
-        "@vue/component-compiler-utils": "^3.1.0",
-        "hash-sum": "^1.0.2",
-        "loader-utils": "^1.1.0",
-        "vue-hot-reload-api": "^2.3.0",
-        "vue-style-loader": "^4.1.0"
-      },
-      "dependencies": {
-        "hash-sum": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
-          "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
-          "dev": true
-        },
-        "json5": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
-          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.2",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
-          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
-        }
-      }
-    },
     "@vue/vue2-jest": {
       "version": "27.0.0",
       "resolved": "https://registry.npmjs.org/@vue/vue2-jest/-/vue2-jest-27.0.0.tgz",
@@ -20132,7 +20147,7 @@
     },
     "vue-hot-reload-api": {
       "version": "2.3.4",
-      "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+      "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },

+ 5 - 1
data-room-ui/package.json

@@ -22,10 +22,14 @@
   "scripts": {
     "serve": "vue-cli-service serve --open",
     "serve:max": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --open",
-    "build:hash": "vue-cli-service build",
+
     "build": "vue-cli-service build",
     "build:stage": "vue-cli-service build --mode staging",
+    "build:hash": "vue-cli-service build",
     "build:history": "vue-cli-service build --mode history",
+    "build:hash:pro": "vue-cli-service build --name dataRoomPro",
+    "build:history:pro": "vue-cli-service build --mode=pro.history",
+
     "preview": "node build/index.js --preview",
     "lint": "eslint --ext .js,.vue packages",
     "lint:fix": "eslint --ext .js,.vue packages --fix",

+ 10 - 1
data-room-ui/packages/BasicComponents/Button/setting.vue

@@ -28,6 +28,12 @@
               :bigTitle='config.title'
             />
           </div>
+          <SettingTitle>旋转</SettingTitle>
+          <div class="lc-field-body">
+            <RotateSetting
+              :config="config"
+            />
+          </div>
           <SettingTitle>基础</SettingTitle>
           <div class="lc-field-body">
             <el-form-item label="按钮名称">
@@ -128,6 +134,8 @@ import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetti
 import IconPicker from 'data-room-ui/IconPicker/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
+
 export default {
   name: 'Border14Setting',
   components: {
@@ -135,7 +143,8 @@ export default {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   props: {
     config: {

+ 9 - 1
data-room-ui/packages/BasicComponents/Button/settingConfig.js

@@ -37,7 +37,15 @@ const customConfig = {
   // 名称
   title: '查询',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   // 自定义属性
   customize: {

+ 9 - 1
data-room-ui/packages/BasicComponents/ChartTab/setting.vue

@@ -35,6 +35,12 @@
           label-width="120px"
         />
       </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -185,12 +191,14 @@ import CloneDeep from 'lodash-es/cloneDeep'
 import plotList from 'data-room-ui/G2Plots/plotList'
 import { randomString } from 'data-room-ui/js/utils'
 import { settingToTheme } from 'data-room-ui/js/utils/themeFormatting'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   components: {
     PosWhSetting,
     SettingTitle,
     draggable,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   mixins: [chartSettingMixins],
   data () {

+ 9 - 1
data-room-ui/packages/BasicComponents/ChartTab/settingConfig.js

@@ -15,7 +15,15 @@ const customConfig = {
 
   type: 'chartTab',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     tabList: [],

+ 18 - 10
data-room-ui/packages/BasicComponents/CurrentTime/setting.vue

@@ -28,15 +28,21 @@
       <div class="setting-wrap">
         <PosWhSetting :config="config" />
       </div>
-       <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="100px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div>
+      <SettingTitle v-if="config.border">边框</SettingTitle>
+      <div class="lc-field-body">
+        <BorderSetting
+          v-if="config.border"
+          label-width="100px"
+          :config="config.border"
+          :bigTitle='config.title'
+        />
+      </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="setting-wrap">
         <el-form-item
@@ -95,12 +101,14 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'CurrentTimeSetting',
   components: {
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/CurrentTime/settingConfig.js

@@ -16,7 +16,15 @@ const customConfig = {
   type: 'currentTime',
   root: {
     version: '2023071001',
-    dateFormat: 'YYYY-MM-DD HH:mm:ss'
+    dateFormat: 'YYYY-MM-DD HH:mm:ss',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     fontSize: 28,

+ 185 - 103
data-room-ui/packages/BasicComponents/DateTimePicker/index.vue

@@ -7,7 +7,7 @@
     clearable
     :class="['basic-component-date-picker', `date-picker-${config.code}`]"
     :popper-class="'basic-component-date-picker date-picker-popper-' + config.code"
-    :value-format="config.customize.valueFormat"
+    :value-format="config.customize.format"
     :format="config.customize.format"
     :default-value="value"
     size="large"
@@ -53,12 +53,26 @@ export default {
   watch: {
     'config.customize.formatType': {
       handler (val) {
+        const newFomat = this.config.customize.format.replace(/y/g, 'Y').replace(/d/g, 'D')
         if (val === 'timestamp') {
-          this.value = 0
-          this.valueFormat = 'timestamp'
+          // this.value = 0
+          if (['year', 'month', 'date', 'week', 'datetime'].includes(this.config.customize.type)) {
+            this.value = moment(new Date()).format(newFomat)
+          } else {
+            this.value = [
+              moment(new Date()).subtract(7, 'days').valueOf(),
+              moment(new Date()).valueOf()
+            ]
+          }
         } else if (val === 'custom') {
-          this.value = ''
-          this.valueFormat = 'YYYY-MM-DD HH:mm:ss'
+          if (['year', 'month', 'date', 'week', 'datetime'].includes(this.config.customize.type)) {
+            this.value = moment(new Date()).format(newFomat)
+          } else {
+            this.value = [
+              moment(new Date()).subtract(7, 'days').format(newFomat),
+              moment(new Date()).format(newFomat)
+            ]
+          }
         }
       },
       immediate: true
@@ -70,16 +84,58 @@ export default {
             document.querySelector(`.date-picker-${this.config.code}`).style.pointerEvents = 'none'
           }
         })
+        const newFomat = this.config.customize.format.replace(/y/g, 'Y').replace(/d/g, 'D')
         if (['year', 'month', 'date', 'week', 'datetime'].includes(val)) {
-          this.value = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
+          if (this.config.customize.formatType === 'timestamp') {
+            this.value = moment(new Date()).valueOf()
+          } else {
+            this.value = moment(new Date()).format(newFomat)
+          }
         } else {
-          this.value = [
-            moment(new Date()).subtract(7, 'days').format('YYYY-MM-DD HH:mm:ss'),
-            moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
-          ]
+          if (this.config.customize.formatType === 'timestamp') {
+            this.value = [
+              moment(new Date()).subtract(7, 'days').valueOf(),
+              moment(new Date()).valueOf()
+            ]
+          } else {
+            this.value = [
+              moment(new Date()).subtract(7, 'days').format(newFomat),
+              moment(new Date()).format(newFomat)
+            ]
+          }
         }
       },
       immediate: true
+    },
+    'config.customize.format': {
+      handler (val) {
+        this.$nextTick(() => {
+          if (!this.isPreview) {
+            document.querySelector(`.date-picker-${this.config.code}`).style.pointerEvents = 'none'
+          }
+        })
+        const newFomat = val?.replace(/y/g, 'Y')?.replace(/d/g, 'D')
+        if (['year', 'month', 'date', 'week', 'datetime'].includes(this.config.customize.type)) {
+          this.value = moment(new Date()).format(newFomat)
+          if (this.config.customize.formatType === 'timestamp') {
+            this.value = moment(new Date()).valueOf()
+          } else {
+            this.value = moment(new Date()).format(newFomat)
+          }
+        } else {
+          if (this.config.customize.formatType === 'timestamp') {
+            this.value = [
+              moment(new Date()).subtract(7, 'days').valueOf(),
+              moment(new Date()).valueOf()
+            ]
+          } else {
+            this.value = [
+              moment(new Date()).subtract(7, 'days').format(newFomat),
+              moment(new Date()).format(newFomat)
+            ]
+          }
+        }
+      }
     }
   },
   created () { },
@@ -89,9 +145,10 @@ export default {
     }
     this.changeStyle(this.config)
     if (this.value === '') {
+      const newFomat = this.config.customize.format.replace(/y/g, 'Y').replace(/d/g, 'D')
       this.value = [
-        moment(new Date()).subtract(7, 'days').format('YYYY-MM-DD HH:mm:ss'),
-        moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
+        moment(new Date()).subtract(7, 'days').format(newFomat),
+        moment(new Date()).format(newFomat)
       ]
     }
   },
@@ -116,7 +173,7 @@ export default {
         // 时间选择器输入框元素
         const timePickerInput = timePickerEl.querySelector('.el-input__inner')
         if (timePickerInput) {
-        // 时间选择器输入框背景颜色
+          // 时间选择器输入框背景颜色
           timePickerInput.style.backgroundColor = bgColor
           // 时间选择器输入框字体颜色
           timePickerInput.style.color = fontColor
@@ -126,7 +183,7 @@ export default {
         // 时间范围选择器输入框元素
         const timePickerRangeInput = timePickerEl.querySelectorAll('.el-range-input')
         if (timePickerRangeInput.length > 0) {
-        // 连接符
+          // 连接符
           const timePickerRangeSeparator = timePickerEl.querySelector('.el-range-separator')
           if (timePickerRangeSeparator) {
             // 宽度和字体大小保持一致
@@ -135,7 +192,7 @@ export default {
             timePickerRangeSeparator.style.fontSize = fontSize + 'px'
           }
           timePickerRangeInput.forEach((el) => {
-          // 时间范围选择器输入框背景颜色
+            // 时间范围选择器输入框背景颜色
             el.style.backgroundColor = bgColor
             // 时间范围选择器输入框字体颜色
             el.style.color = fontColor
@@ -218,106 +275,121 @@ export default {
 <style lang="scss">
 .basic-component-date-picker {
   color: '';
+
   // 清空图标
   .el-icon-circle-close {
-    display: flex ;
-    align-items: center ;
+    display: flex;
+    align-items: center;
   }
 
   // 时间选择器
   .el-icon-time {
-    display: flex ;
-    align-items: center ;
+    display: flex;
+    align-items: center;
   }
 
   .el-time-panel {
-    border: none ;
-    background-color: var(--bgColor) ;
+    border: none;
+    background-color: var(--bgColor);
   }
 
   // 选择日期 时间区域
   .el-date-picker__time-header {
-    border-bottom: var(--bgColor) ;
+    border-bottom: var(--bgColor);
 
     .el-input__inner {
-      border: none ;
+      border: none;
       // 添加一点阴影
-      box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1) ;
-      color: var(--fontColor) ;
-      background-color: var(--inputBgColor) ;
+      box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
+      color: var(--fontColor);
+      background-color: var(--inputBgColor);
     }
 
   }
 
   // 头部,修改文字颜色和图标颜色
   .el-date-picker__header {
-    color: var(--fontColor) ;
+    color: var(--fontColor);
 
     .el-date-picker__header-label {
-      color: var(--fontColor) ;
+      color: var(--fontColor);
     }
 
     // 左右箭头图标颜色
     .el-picker-panel__icon-btn {
-      color: var(--fontColor) ;
+      color: var(--fontColor);
     }
   }
+
   // datetimerange
   .el-date-range-picker__time-header {
     border-color: var(--fontColor);
 
     // 中间箭头图标颜色
     .el-icon-arrow-right {
-      color: var(--fontColor) ;
+      color: var(--fontColor);
     }
+
     // 时间选择器输入框
-    .el-input__inner{
+    .el-input__inner {
       border: none;
       color: var(--fontColor);
       // 添加一点阴影
-      background-color: var(--inputBgColor) ;
-      box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1) ;
+      background-color: var(--inputBgColor);
+      box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
     }
   }
+
   // datetimerange
-  .el-picker-panel__content{
-    .el-icon-d-arrow-left{
-      color: var(--fontColor) ;
-      &:after{
-        color: var(--fontColor) ;
+  .el-picker-panel__content {
+    .el-icon-d-arrow-left {
+      color: var(--fontColor);
+
+      &:after {
+        color: var(--fontColor);
       }
     }
-    .el-icon-arrow-left{
-      color: var(--fontColor) ;
-      &:after{
-        color: var(--fontColor) ;
+
+    .el-icon-arrow-left {
+      color: var(--fontColor);
+
+      &:after {
+        color: var(--fontColor);
       }
     }
-    .el-icon-d-arrow-right{
-      color: var(--fontColor) ;
-      &:after{
-        color: var(--fontColor) ;
+
+    .el-icon-d-arrow-right {
+      color: var(--fontColor);
+
+      &:after {
+        color: var(--fontColor);
       }
     }
-    .el-icon-arrow-right{
-      color: var(--fontColor) ;
-      &:after{
-        color: var(--fontColor) ;
+
+    .el-icon-arrow-right {
+      color: var(--fontColor);
+
+      &:after {
+        color: var(--fontColor);
       }
     }
   }
-  .el-date-range-picker__content.is-left{
-    border-color: var(--fontColor) ;
+
+  .el-date-range-picker__content.is-left {
+    border-color: var(--fontColor);
   }
-  .el-date-table{
-    th{
-      border-color: var(--fontColor) ;
-    }
-    td{
-      div{
-        color: var(--fontColor) ;
-        &:hover{
-          color: var(--hoverFontColor) ;
+
+  .el-date-table {
+    th {
+      border-color: var(--fontColor);
+    }
+
+    td {
+      div {
+        color: var(--fontColor);
+
+        &:hover {
+          color: var(--hoverFontColor);
         }
       }
     }
@@ -352,66 +424,67 @@ export default {
     border-top: 1px solid var(--fontColor);
     border-bottom: 1px solid var(--fontColor);
   }
+
   // 脚部
   .el-picker-panel__footer {
     border-color: var(--fontColor);
-    background-color: var(--bgColor) ;
+    background-color: var(--bgColor);
 
     // 清空按钮
     .el-picker-panel__link-btn {
       span {
-        color: var(--fontColor) ;
+        color: var(--fontColor);
       }
     }
 
     // 确定按钮
     .el-button--default {
-      border: none ;
-      color: var(--fontColor) ;
-      background-color: var(--bgColor) ;
+      border: none;
+      color: var(--fontColor);
+      background-color: var(--bgColor);
     }
 
     .is-disabled {
       span {
-        color: #999 ;
+        color: #999;
       }
     }
   }
 
   .el-time-spinner {
-    margin-bottom: 0px ;
+    margin-bottom: 0px;
 
     .el-time-spinner__item {
       &:hover {
-        color: var(--hoverFontColor) ;
-        background-color: var(--hoverBgColor) ;
+        color: var(--hoverFontColor);
+        background-color: var(--hoverBgColor);
       }
     }
 
     .active {
-      color: var(--selectedFontColor) ;
+      color: var(--selectedFontColor);
 
       &:hover {
-        color: var(--selectedFontColor) ;
-        background-color: transparent ;
+        color: var(--selectedFontColor);
+        background-color: transparent;
       }
     }
   }
 
   .popper__arrow {
-    bottom: -6px ;
+    bottom: -6px;
     border-bottom-color: var(--bgColor) !important;
     border-top-color: var(--bgColor) !important;
 
     &::after {
-      bottom: 0px ;
+      bottom: 0px;
       border-bottom-color: var(--bgColor) !important;
       border-top-color: var(--bgColor) !important;
     }
   }
 
   .cancel {
-    color: var(--fontColor) ;
+    color: var(--fontColor);
   }
 
   .confirm {
@@ -419,53 +492,62 @@ export default {
   }
 
   .el-time-panel__footer {
-    border-top: 1px solid var(--fontColor) ;
+    border-top: 1px solid var(--fontColor);
+
     .cancel {
       span {
-        color: var(--fontColor) ;
+        color: var(--fontColor);
       }
     }
 
     // 确定按钮
     .confirm {
-      border: none ;
-      color: var(--fontColor) ;
-      background-color: var(--bgColor) ;
+      border: none;
+      color: var(--fontColor);
+      background-color: var(--bgColor);
     }
   }
+
   // 年选择器
   .el-year-table {
-    a{
-      color: var(--fontColor) ;
-      &:hover{
-        color: var(--hoverFontColor) ;
+    a {
+      color: var(--fontColor);
+
+      &:hover {
+        color: var(--hoverFontColor);
       }
     }
   }
+
   // 月选择器
   .el-month-table {
-    a{
-      color: var(--fontColor) ;
-      &:hover{
-        color: var(--hoverFontColor) ;
+    a {
+      color: var(--fontColor);
+
+      &:hover {
+        color: var(--hoverFontColor);
       }
     }
   }
+
   // 上月 下月 字体颜色置灰
-  .prev-month{
-  span{
-    color: #999 !important;
-    &:hover{
-      color: var(--hoverFontColor) !important;
+  .prev-month {
+    span {
+      color: #999 !important;
+
+      &:hover {
+        color: var(--hoverFontColor) !important;
+      }
     }
   }
-  }
-  .next-month{
-    span{
+
+  .next-month {
+    span {
       color: #999 !important;
-      &:hover{
-      color: var(--hoverFontColor) !important;
-    }
+
+      &:hover {
+        color: var(--hoverFontColor) !important;
+      }
     }
   }
 }
@@ -497,7 +579,7 @@ export default {
   height: 100% !important;
   line-height: 100% !important;
 }
-::v-deep .el-range-input{
+
+::v-deep .el-range-input {
   width: 45% !important;
-}
-</style>
+}</style>

+ 97 - 55
data-room-ui/packages/BasicComponents/DateTimePicker/setting.vue

@@ -19,6 +19,12 @@
           <div class="lc-field-body">
             <PosWhSetting :config="config" />
           </div>
+          <SettingTitle>旋转</SettingTitle>
+          <div class="lc-field-body">
+            <RotateSetting
+              :config="config"
+            />
+          </div>
           <SettingTitle>基础</SettingTitle>
           <div class="lc-field-body">
             <el-form-item label="组件类型">
@@ -26,6 +32,7 @@
                 v-model="config.customize.type"
                 class="bs-el-select"
                 popper-class="bs-el-select"
+                @change="changeType"
               >
                 <el-option
                   v-for="(type) in displayTypeOptions"
@@ -97,7 +104,7 @@
             </el-form-item>
             <!-- 选中范围背景颜色 -->
             <el-form-item
-              v-if="['daterange','datetimerange'].includes(config.customize.type)"
+              v-if="['daterange', 'datetimerange'].includes(config.customize.type)"
               label="范围背景颜色"
             >
               <ColorPicker
@@ -108,45 +115,14 @@
           </div>
           <SettingTitle>日期时间格式</SettingTitle>
           <div class="lc-field-body">
-            <el-form-item label="时间数据类型">
-              <div class="description">
-                <el-select
-                  v-model="config.customize.formatType"
-                  class="bs-el-select"
-                  popper-class="bs-el-select"
-                  clearable
-                >
-                  <el-option
-                    v-for="(type) in formatTypeOptions"
-                    :key="type.value"
-                    :label="type.label"
-                    :value="type.value"
-                  />
-                </el-select>
-                <el-tooltip
-                  placement="top"
-                >
-                  <span
-                    class="el-icon-question"
-                    style="color:#9e9e9e"
-                  />
-                  <div slot="content">
-                    时间戳:从1970年1月1日开始计算的秒数,数据类型为数值型,例如:1483326245000。<br>
-                    自定义:通过输入特定的格式字符串来指定时间的数据格式,例如:yyyy-MM-dd HH:mm:ss对应数据为 2023-10-08 09:30:00。<br>
-                  </div>
-                </el-tooltip>
-              </div>
-            </el-form-item>
-            <el-form-item label="时间显示格式化">
+            <!-- <el-form-item label="时间显示格式化">
               <div class="description">
                 <el-input
                   v-model="config.customize.format"
                   placeholder="例如:yyyy-MM-dd HH:mm:ss"
                   clearable
                 />
-                <el-tooltip
-                  placement="top"
-                >
+                <el-tooltip placement="top">
                   <span
                     class="el-icon-question"
                     style="color:#9e9e9e"
@@ -173,22 +149,48 @@
                   </div>
                 </el-tooltip>
               </div>
+            </el-form-item> -->
+            <el-form-item label="时间类型">
+              <div class="description">
+                <el-select
+                  v-model="config.customize.formatType"
+                  class="bs-el-select"
+                  popper-class="bs-el-select"
+                  clearable
+                  @change="changeFormatType"
+                >
+                  <el-option
+                    v-for="(type) in formatTypeOptions"
+                    :key="type.value"
+                    :label="type.label"
+                    :value="type.value"
+                  />
+                </el-select>
+                <el-tooltip placement="top">
+                  <span
+                    class="el-icon-question"
+                    style="color:#9e9e9e"
+                  />
+                  <div slot="content">
+                    时间戳:从1970年1月1日开始计算的秒数,数据类型为数值型,例如:1483326245000。<br>
+                    自定义:通过输入特定的格式字符串来指定时间的数据格式,例如:yyyy-MM-dd HH:mm:ss对应数据为 2023-10-08 09:30:00。<br>
+                  </div>
+                </el-tooltip>
+              </div>
             </el-form-item>
             <el-form-item
               v-if="config.customize.formatType === 'custom'"
-              label="时间数据格式化"
+              label="时间格式"
             >
               <!-- year/month/date/week/ datetime/datetimerange/daterange -->
               <div class="description">
                 <el-input
-                  v-model="config.customize.valueFormat"
+                  v-model="config.customize.format"
                   placeholder="例如:yyyy-MM-dd HH:mm:ss"
                   clearable
                 />
                 <!-- HH表示小时(24小时制),mm表示分钟,ss表示秒 -->
-                <el-tooltip
-                  placement="top"
-                >
+                <el-tooltip placement="top">
                   <span
                     class="el-icon-question"
                     style="color:#9e9e9e"
@@ -228,12 +230,14 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'Border14Setting',
   components: {
     ColorPicker,
     PosWhSetting,
-    SettingTitle
+    SettingTitle,
+    RotateSetting
   },
   props: {
     config: {
@@ -257,6 +261,7 @@ export default {
       }
     }
   },
+
   data () {
     return {
       hour: 'HH',
@@ -265,7 +270,7 @@ export default {
       // 时间格式化类型选项
       formatTypeOptions: [
         { label: '时间戳', value: 'timestamp' },
-        { label: '自定义', value: 'custom' }
+        { label: '自定义格式', value: 'custom' }
       ],
       // 时间显示类型选项 :year/month/date/week/ datetime/datetimerange/daterange
       displayTypeOptions: [
@@ -279,21 +284,58 @@ export default {
     }
   },
   watch: {},
-  mounted () {},
-  methods: { }
+  mounted () { },
+  methods: {
+    changeType (val) {
+      if (val === 'year') {
+        if (this.config.customize.formatType === 'custom') {
+          this.config.customize.format = 'yyyy'
+        }
+      } else if (val === 'month') {
+        if (this.config.customize.formatType === 'custom') {
+          this.config.customize.format = 'yyyy-MM'
+        }
+      } else if (val === 'date') {
+        if (this.config.customize.formatType === 'custom') {
+          this.config.customize.format = 'yyyy-MM-dd'
+        }
+      } else if (val === 'datetime') {
+        if (this.config.customize.formatType === 'custom') {
+          this.config.customize.format = 'yyyy-MM-dd HH:mm:ss'
+        }
+      } else if (val === 'datetimerange') {
+        if (this.config.customize.formatType === 'custom') {
+          this.config.customize.format = 'yyyy-MM-dd HH:mm:ss'
+        }
+      } else if (val === 'daterange') {
+        if (this.config.customize.formatType === 'custom') {
+          this.config.customize.format = 'yyyy-MM-dd'
+        }
+      }
+    },
+    changeFormatType (val) {
+      if (val === 'timestamp') {
+        this.config.customize.format = 'timestamp'
+      } else if (val === 'custom') {
+        this.config.customize.format = 'yyyy-MM-dd HH:mm:ss'
+      }
+    }
+  }
 }
 </script>
 
-  <style lang="scss" scoped>
-  .lc-field-body {
-    width: 97%;
-    padding: 16px;
-  }
-  .description{
-    display: flex;
-    align-items: center;
-    .el-tooltip{
-      margin-left: 5px;
-    }
+<style lang="scss" scoped>
+.lc-field-body {
+  width: 97%;
+  padding: 16px;
+}
+
+.description {
+  display: flex;
+  align-items: center;
+
+  .el-tooltip {
+    margin-left: 5px;
   }
-  </style>
+}
+</style>

+ 9 - 1
data-room-ui/packages/BasicComponents/DateTimePicker/settingConfig.js

@@ -18,7 +18,15 @@ const customConfig = {
   // 名称
   title: '日期时间选择器',
   root: {
-    version: '2023092101'
+    version: '2023092101',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   // 自定义属性
   customize: {

+ 9 - 1
data-room-ui/packages/BasicComponents/DigitalFlop/setting.vue

@@ -36,6 +36,12 @@
               :bigTitle='config.title'
             />
           </div>
+          <SettingTitle>旋转</SettingTitle>
+          <div class="lc-field-body">
+            <RotateSetting
+              :config="config"
+            />
+          </div>
           <SettingTitle>基础</SettingTitle>
           <div class="lc-field-body">
             <el-form-item label="字体大小">
@@ -158,13 +164,15 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'BarSetting',
   components: {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 8 - 1
data-room-ui/packages/BasicComponents/DigitalFlop/settingConfig.js

@@ -32,7 +32,14 @@ const customConfig = {
   type: 'digitalFlop',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     color: '#fff',

+ 1 - 1
data-room-ui/packages/BasicComponents/FlyMap/index.vue

@@ -117,7 +117,7 @@ export default {
       let mapInfoUrl = `${window.BS_CONFIG?.httpConfigs?.baseURL}/bigScreen/map/info/${config.customize.mapId}`
       // 如果设置了地图id,就用地图id获取地图数据,否则用默认的世界地图
       if (!hasMapId) {
-        mapInfoUrl = `${window.BS_CONFIG?.httpConfigs?.baseURL}/static/worldMap/world.json`
+        mapInfoUrl = `${window.BS_CONFIG?.httpConfigs?.fileUrlPrefix}/worldMap/world.json`
       }
       this.$dataRoomAxios.get(mapInfoUrl, {}, true).then(res => {
         if (this.config.option.data) {

+ 18 - 10
data-room-ui/packages/BasicComponents/FlyMap/setting.vue

@@ -25,14 +25,20 @@
         <PosWhSetting :config="config" />
       </div>
        <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="100px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div>
+      <div class="lc-field-body">
+        <BorderSetting
+          v-if="config.border"
+          label-width="100px"
+          :config="config.border"
+          :bigTitle='config.title'
+        />
+      </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -342,9 +348,10 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import { chartSettingMixins } from 'data-room-ui/js/mixins/chartSettingMixins'
 import ColorSelect from 'data-room-ui/ColorMultipleSelect/index.vue'
- import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'BarSetting',
   components: {
@@ -352,7 +359,8 @@ export default {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   mixins: [chartSettingMixins],
   props: {},

+ 8 - 1
data-room-ui/packages/BasicComponents/FlyMap/settingConfig.js

@@ -38,7 +38,14 @@ const customConfig = {
   type: 'flyMap',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 地图id

+ 11 - 2
data-room-ui/packages/BasicComponents/HorizontalLine/setting.vue

@@ -28,7 +28,13 @@
           <div class="lc-field-body">
             <PosWhSetting :config="config" />
           </div>
-           <SettingTitle v-if="config.border">边框</SettingTitle>
+          <SettingTitle>旋转</SettingTitle>
+          <div class="lc-field-body">
+            <RotateSetting
+              :config="config"
+            />
+          </div>
+          <SettingTitle v-if="config.border">边框</SettingTitle>
           <div class="lc-field-body">
             <BorderSetting
               v-if="config.border"
@@ -87,13 +93,16 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
+
 export default {
   name: 'Border14Setting',
   components: {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   props: {
     config: {

+ 9 - 1
data-room-ui/packages/BasicComponents/HorizontalLine/settingConfig.js

@@ -12,7 +12,15 @@ export const settingConfig = {
 const customConfig = {
   type: 'horizontalLine',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框线颜色

+ 10 - 1
data-room-ui/packages/BasicComponents/IframeChart/setting.vue

@@ -28,6 +28,12 @@
       <SettingTitle>位置</SettingTitle>
       <div class="setting-wrap">
         <PosWhSetting :config="config" />
+      </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
       </div>
        <SettingTitle v-if="config.border">边框</SettingTitle>
           <div class="lc-field-body">
@@ -59,12 +65,15 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
+
 export default {
   name: 'IframeChartSetting',
   components: {
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/IframeChart/settingConfig.js

@@ -19,7 +19,15 @@ const customConfig = {
   type: 'iframeChart',
   root: {
     version: '2023071001',
-    url: 'https://www.runoob.com/'
+    url: 'https://www.runoob.com/',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     fontSize: 20,

+ 9 - 1
data-room-ui/packages/BasicComponents/IndexCard/setting.vue

@@ -26,6 +26,12 @@
         <SettingTitle>位置</SettingTitle>
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
+        </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
         </div>
          <!-- <SettingTitle v-if="config.border">边框</SettingTitle>
           <div class="lc-field-body">
@@ -189,6 +195,7 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
 export default {
   name: 'BarSetting',
@@ -196,7 +203,8 @@ export default {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/IndexCard/settingConfig.js

@@ -36,7 +36,15 @@ const customConfig = {
   root: {
     version: '2023071001',
     contribution: false,
-    loading: false
+    loading: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     src: '',

+ 18 - 10
data-room-ui/packages/BasicComponents/IndexCard2/setting.vue

@@ -27,15 +27,21 @@
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
         </div>
-         <!-- <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="100px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div> -->
+        <!-- <SettingTitle v-if="config.border">边框</SettingTitle>
+        <div class="lc-field-body">
+          <BorderSetting
+            v-if="config.border"
+            label-width="100px"
+            :config="config.border"
+            :bigTitle='config.title'
+          />
+        </div> -->
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <el-form-item label-width="100px" label="背景色">
@@ -190,13 +196,15 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'BarSetting',
   components: {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/IndexCard2/settingConfig.js

@@ -36,7 +36,15 @@ const customConfig = {
   root: {
     version: '2023071001',
     contribution: false,
-    loading: false
+    loading: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     src: '',

+ 9 - 1
data-room-ui/packages/BasicComponents/IndicatorCard/setting.vue

@@ -26,6 +26,12 @@
         <SettingTitle>位置</SettingTitle>
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
+        </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
         </div>
          <!-- <SettingTitle v-if="config.border">边框</SettingTitle>
           <div class="lc-field-body">
@@ -163,13 +169,15 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'BarSetting',
   components: {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/IndicatorCard/settingConfig.js

@@ -36,7 +36,15 @@ const customConfig = {
   root: {
     version: '2023071001',
     contribution: false,
-    loading: false
+    loading: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     borderRadius: 0,

+ 9 - 1
data-room-ui/packages/BasicComponents/IndicatorCard2/setting.vue

@@ -26,6 +26,12 @@
         <SettingTitle>位置</SettingTitle>
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
+        </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
         </div>
          <!-- <SettingTitle v-if="config.border">边框</SettingTitle>
           <div class="lc-field-body">
@@ -163,13 +169,15 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'BarSetting',
   components: {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/IndicatorCard2/settingConfig.js

@@ -36,7 +36,15 @@ const customConfig = {
   root: {
     version: '2023071001',
     contribution: false,
-    loading: false
+    loading: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     borderRadius: 0,

+ 10 - 2
data-room-ui/packages/BasicComponents/Input/setting.vue

@@ -1,4 +1,4 @@
-<template>
+1<template>
   <div class="bs-setting-wrap">
     <el-form
       ref="form"
@@ -81,6 +81,12 @@
               :bigTitle='config.title'
             />
           </div>
+          <SettingTitle>旋转</SettingTitle>
+          <div class="lc-field-body">
+            <RotateSetting
+              :config="config"
+            />
+          </div>
           <SettingTitle>基础</SettingTitle>
           <div class="lc-field-body">
             <el-form-item label="输入值字体大小">
@@ -194,6 +200,7 @@ import IconPicker from 'data-room-ui/IconPicker/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'InputSetting',
   components: {
@@ -201,7 +208,8 @@ export default {
     IconPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   props: {
     config: {

+ 9 - 1
data-room-ui/packages/BasicComponents/Input/settingConfig.js

@@ -13,7 +13,15 @@ export const settingConfig = {
 const customConfig = {
   type: 'input',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   // 自定义属性
   customize: {

+ 9 - 1
data-room-ui/packages/BasicComponents/LinkChart/setting.vue

@@ -40,6 +40,12 @@
               :bigTitle='config.title'
             />
           </div>
+          <SettingTitle>旋转</SettingTitle>
+          <div class="lc-field-body">
+            <RotateSetting
+              :config="config"
+            />
+          </div>
       <SettingTitle>基础</SettingTitle>
       <div class="bs-setting-wrap">
         <el-form-item
@@ -128,13 +134,15 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import TextGradient from 'data-room-ui/BigScreenDesign/RightSetting/TextGradient/index'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'LinkChartSetting',
   components: {
     TextGradient,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/LinkChart/settingConfig.js

@@ -30,7 +30,15 @@ const customConfig = {
   type: 'linkChart',
   root: {
     version: '2023071001',
-    url: 'https://www.runoob.com/'
+    url: 'https://www.runoob.com/',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     title: '超链接占位符',

+ 1 - 1
data-room-ui/packages/BasicComponents/Map/index.vue

@@ -289,7 +289,7 @@ export default {
       let mapInfoUrl = `${window.BS_CONFIG?.httpConfigs?.baseURL}/bigScreen/map/info/${config.customize.mapId}`
       // 如果设置了地图id,就用地图id获取地图数据,否则用默认的世界地图
       if (!hasMapId) {
-        mapInfoUrl = `${window.BS_CONFIG?.httpConfigs?.baseURL}/static/chinaMap/country/中华人民共和国.json`
+        mapInfoUrl = `${window.BS_CONFIG?.httpConfigs?.fileUrlPrefix}/chinaMap/country/中华人民共和国.json`
       }
       const mapResp = await this.$dataRoomAxios.get(decodeURI(mapInfoUrl), {}, true)
       const map = hasMapId ? JSON.parse(mapResp.data.geoJson) : mapResp

+ 10 - 2
data-room-ui/packages/BasicComponents/Map/setting.vue

@@ -33,6 +33,12 @@
               :bigTitle='config.title'
             />
           </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -321,6 +327,7 @@ import ColorSelect from 'data-room-ui/ColorMultipleSelect/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'BarSetting',
   components: {
@@ -328,7 +335,8 @@ export default {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   mixins: [chartSettingMixins],
   props: {},
@@ -437,7 +445,7 @@ export default {
 .lc-field-body {
   padding: 12px 16px;
 }
-/deep/.bs-el-slider-dark {
+::v-deep.bs-el-slider-dark {
 
   .el-slider__runway {
     background-color: var(--bs-el-background-1) !important;

+ 9 - 1
data-room-ui/packages/BasicComponents/Map/settingConfig.js

@@ -38,7 +38,15 @@ const customConfig = {
   type: 'map',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     mapId: '',

+ 8 - 0
data-room-ui/packages/BasicComponents/Marquee/setting.vue

@@ -40,6 +40,12 @@
               :bigTitle='config.title'
             />
           </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -322,6 +328,7 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 import IconSvg from 'data-room-ui/SvgIcon'
 export default {
   name: 'TextSetting',
@@ -329,6 +336,7 @@ export default {
     PosWhSetting,
     ColorPicker,
     SettingTitle,
+    RotateSetting,
     IconSvg,
     BorderSetting
   },

+ 9 - 1
data-room-ui/packages/BasicComponents/Marquee/settingConfig.js

@@ -30,7 +30,15 @@ const dataHandler = ''
 const customConfig = {
   type: 'marquee',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     title: '跑马灯占位符',

+ 10 - 2
data-room-ui/packages/BasicComponents/Picture/index.vue

@@ -2,7 +2,7 @@
   <div class="bs-design-wrap bs-picture">
     <div class="content-box">
       <el-image
-        :src="config.customize.url || noImageUrl"
+        :src="getCoverPicture(config.customize.url) || noImageUrl"
         fit="fill"
         :style="{
           width: '100%',
@@ -23,6 +23,7 @@
   </div>
 </template>
 <script>
+import { getFileUrl } from 'data-room-ui/js/utils/file'
 import { refreshComponentMixin } from 'data-room-ui/js/mixins/refreshComponent'
 
 export default {
@@ -44,7 +45,14 @@ export default {
   watch: {},
   mounted () {},
   methods: {
-
+    /**
+     * 获取图片访问地址,如果是相对路径则拼接上文件访问前缀地址
+     * @param url
+     * @returns {*}
+     */
+    getCoverPicture (url) {
+      return getFileUrl(url)
+    },
   }
 }
 </script>

+ 46 - 29
data-room-ui/packages/BasicComponents/Picture/setting.vue

@@ -31,15 +31,21 @@
       <div class="lc-field-body">
         <PosWhSetting :config="config" />
       </div>
-       <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="100px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div>
+      <SettingTitle v-if="config.border">边框</SettingTitle>
+      <div class="lc-field-body">
+        <BorderSetting
+          v-if="config.border"
+          label-width="100px"
+          :config="config.border"
+          :bigTitle='config.title'
+        />
+      </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -73,7 +79,7 @@
             >
               <img
                 class="el-upload-list__item-thumbnail"
-                :src="file.url"
+                :src="getCoverPicture(file.url)"
                 alt=""
               >
               <span class="el-upload-list__item-actions">
@@ -114,14 +120,17 @@
 </template>
 <script>
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
- import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import { getFileUrl } from 'data-room-ui/js/utils/file'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'PicSetting',
   components: {
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {
@@ -138,22 +147,22 @@ export default {
       hideUpload: false,
       rules: {
         'customize.url': [
-          // 地址校验
-          {
-            validator: (rule, value, callback) => {
-              if (value) {
-                const reg = /^(http|https):\/\/([\w.]+\/?)\S*/
-                if (!reg.test(value)) {
-                  callback(new Error('请输入正确的URL地址'))
-                } else {
-                  callback()
-                }
-              } else {
-                callback()
-              }
-            },
-            trigger: 'blur'
-          }
+          // 地址校验 NOTE 暂时移除校验,因为通过系统上传的图片,url是相对路径,无法通过校验
+          // {
+          //   validator: (rule, value, callback) => {
+          //     if (value) {
+          //       const reg = /^(http|https):\/\/([\w.]+\/?)\S*/
+          //       if (!reg.test(value)) {
+          //         callback(new Error('请输入正确的URL地址'))
+          //       } else {
+          //         callback()
+          //       }
+          //     } else {
+          //       callback()
+          //     }
+          //   },
+          //   trigger: 'blur'
+          // }
         ]
       }
     }
@@ -222,7 +231,15 @@ export default {
         this.$message.error('上传图片大小不能超过 2MB!')
       }
       return isLt2M
-    }
+    },
+    /**
+     * 获取图片访问地址,如果是相对路径则拼接上文件访问前缀地址
+     * @param url
+     * @returns {*}
+     */
+    getCoverPicture (url) {
+      return getFileUrl(url)
+    },
   }
 }
 </script>

+ 9 - 1
data-room-ui/packages/BasicComponents/Picture/settingConfig.js

@@ -17,7 +17,15 @@ export const settingConfig = {
 const customConfig = {
   type: 'picture',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     url: '',

+ 6 - 0
data-room-ui/packages/BasicComponents/ScreenScrollBoard/setting.vue

@@ -36,6 +36,12 @@
               :bigTitle='config.title'
             />
           </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <el-form-item label="表头背景色">

+ 9 - 1
data-room-ui/packages/BasicComponents/ScreenScrollBoard/settingConfig.js

@@ -33,7 +33,15 @@ const customConfig = {
   root: {
     version: '2023071001',
     contribution: false,
-    loading: false
+    loading: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     rowNum: 5,

+ 18 - 10
data-room-ui/packages/BasicComponents/ScreenScrollRanking/setting.vue

@@ -26,15 +26,21 @@
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
         </div>
-         <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="100px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div>
+        <SettingTitle v-if="config.border">边框</SettingTitle>
+        <div class="lc-field-body">
+          <BorderSetting
+            v-if="config.border"
+            label-width="100px"
+            :config="config.border"
+            :bigTitle='config.title'
+          />
+        </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <el-form-item
@@ -81,12 +87,14 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'BarSetting',
   components: {
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 8 - 1
data-room-ui/packages/BasicComponents/ScreenScrollRanking/settingConfig.js

@@ -27,7 +27,14 @@ const customConfig = {
   root: {
     version: '2023071001',
     contribution: false,
-    loading: false
+    loading: false,
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     rowNum: 5,

+ 8 - 0
data-room-ui/packages/BasicComponents/Select/setting.vue

@@ -30,6 +30,12 @@
               :bigTitle='config.title'
             />
           </div>
+          <SettingTitle>旋转</SettingTitle>
+          <div class="lc-field-body">
+            <RotateSetting
+              :config="config"
+            />
+          </div>
           <SettingTitle>基础</SettingTitle>
           <div class="lc-field-body">
             <!-- 选择器背景颜色 -->
@@ -97,12 +103,14 @@ import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetti
 // import IconPicker from 'data-room-ui/IconPicker/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'Border14Setting',
   components: {
     // IconPicker,
     ColorPicker,
     PosWhSetting,
+    RotateSetting,
     SettingTitle,
     BorderSetting
   },

+ 8 - 1
data-room-ui/packages/BasicComponents/Select/settingConfig.js

@@ -26,7 +26,14 @@ const customConfig = {
   type: 'select',
   // 名称
   root: {
-    version: '2023091402'
+    version: '2023091402',
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   // 自定义属性
   customize: {

+ 18 - 10
data-room-ui/packages/BasicComponents/Tables/setting.vue

@@ -19,15 +19,15 @@
           />
         </el-form-item>
       </div>
-       <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="120px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div>
+      <SettingTitle v-if="config.border">边框</SettingTitle>
+      <div class="lc-field-body">
+        <BorderSetting
+          v-if="config.border"
+          label-width="120px"
+          :config="config.border"
+          :bigTitle='config.title'
+        />
+      </div>
       <SettingTitle>位置</SettingTitle>
       <div class="lc-field-body">
         <PosWhSetting
@@ -35,6 +35,12 @@
           label-width="120px"
         />
       </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item label="表头颜色">
@@ -108,12 +114,14 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import { chartSettingMixins } from 'data-room-ui/js/mixins/chartSettingMixins'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   components: {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   mixins: [chartSettingMixins],
   data () {

+ 9 - 1
data-room-ui/packages/BasicComponents/Tables/settingConfig.js

@@ -35,7 +35,15 @@ const customConfig = {
   root: {
     version: '2023071001',
     contribution: false,
-    loading: false
+    loading: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
 
   customize: {

+ 9 - 1
data-room-ui/packages/BasicComponents/Texts/setting.vue

@@ -42,6 +42,12 @@
           :big-title="config.title"
         />
       </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -95,13 +101,15 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import TextGradient from 'data-room-ui/BigScreenDesign/RightSetting/TextGradient/index'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'TextSetting',
   components: {
     TextGradient,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 6 - 1
data-room-ui/packages/BasicComponents/Texts/settingConfig.js

@@ -41,9 +41,14 @@ const customConfig = {
     url: 'https://www.runoob.com/',
     expression: 'return ',
     expressionCodes: [],
+    // 绕x轴旋转角度
     rotateX: 0,
+    // 绕y轴旋转角度
     rotateY: 0,
-    rotateZ: 0
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     title: '文本标签占位符',

+ 18 - 10
data-room-ui/packages/BasicComponents/ThemeSelect/setting.vue

@@ -27,15 +27,21 @@
       <div class="lc-field-body">
         <PosWhSetting :config="config" />
       </div>
-       <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="100px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div>
+      <SettingTitle v-if="config.border">边框</SettingTitle>
+      <div class="lc-field-body">
+        <BorderSetting
+          v-if="config.border"
+          label-width="100px"
+          :config="config.border"
+          :bigTitle='config.title'
+        />
+      </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -72,13 +78,15 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import TextGradient from 'data-room-ui/BigScreenDesign/RightSetting/TextGradient/index'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'TextSetting',
   components: {
     TextGradient,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/ThemeSelect/settingConfig.js

@@ -18,7 +18,15 @@ export const settingConfig = {
 const customConfig = {
   type: 'themeSelect',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     title: '文本标签占位符',

+ 18 - 10
data-room-ui/packages/BasicComponents/ThemeSwitcher/setting.vue

@@ -17,15 +17,21 @@
       <div class="lc-field-body">
         <PosWhSetting :config="config" />
       </div>
-       <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="100px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div>
+      <SettingTitle v-if="config.border">边框</SettingTitle>
+      <div class="lc-field-body">
+        <BorderSetting
+          v-if="config.border"
+          label-width="100px"
+          :config="config.border"
+          :bigTitle='config.title'
+        />
+      </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -56,12 +62,14 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'ThemeSwitcherSetting',
   components: {
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/ThemeSwitcher/settingConfig.js

@@ -18,7 +18,15 @@ export const settingConfig = {
 const customConfig = {
   type: 'themeSwitcher',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     activeColor: '#007aff', // 单选框字体激活状态

+ 18 - 10
data-room-ui/packages/BasicComponents/TimeCountDown/setting.vue

@@ -27,15 +27,21 @@
       <div class="lc-field-body">
         <PosWhSetting :config="config" />
       </div>
-       <SettingTitle v-if="config.border">边框</SettingTitle>
-          <div class="lc-field-body">
-            <BorderSetting
-              v-if="config.border"
-              label-width="100px"
-              :config="config.border"
-              :bigTitle='config.title'
-            />
-          </div>
+      <SettingTitle v-if="config.border">边框</SettingTitle>
+      <div class="lc-field-body">
+        <BorderSetting
+          v-if="config.border"
+          label-width="100px"
+          :config="config.border"
+          :bigTitle='config.title'
+        />
+      </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <SettingTitle>基础</SettingTitle>
       <div class="lc-field-body">
         <el-form-item
@@ -94,12 +100,14 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'TimeCountDownSetting',
   components: {
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   data () {
     return {

+ 9 - 1
data-room-ui/packages/BasicComponents/TimeCountDown/settingConfig.js

@@ -15,7 +15,15 @@ const customConfig = {
   type: 'timeCountDown',
   root: {
     version: '2023071001',
-    endTime: ''
+    endTime: '',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     fontSize: 28,

+ 16 - 7
data-room-ui/packages/BasicComponents/TimePicker/index.vue

@@ -7,7 +7,7 @@
     :class="['basic-component-time-picker', `time-picker-${config.code}`]"
     :popper-class="'basic-component-time-picker time-picker-popper-' + config.code"
     :format="config.customize.format"
-    :value-format="config.customize.valueFormat"
+    :value-format="config.customize.format"
     :default-value="value"
     @focus="focusEvent"
     @change="changeValue"
@@ -54,16 +54,24 @@ export default {
       handler (val) {
         if (val === 'timestamp') {
           this.value = new Date().getTime()
-          // this.config.customize.format = 'timestamp'
-          // this.config.customize.valueFormat = 'timestamp'
         } else if (val === 'custom') {
-          // this.config.customize.valueFormat = 'HH:mm:ss'
-          this.value = moment(new Date()).format('HH:mm:ss')
+          const newFomat = this.config.customize.format.replace(/y/g, 'Y').replace(/d/g, 'D')
+          this.value = moment(new Date()).format(newFomat)
+        }
+      },
+      immediate: true
+    },
+    'config.customize.format': {
+      handler (val) {
+        if (this.config.customize.formatType === 'timestamp') {
+          this.value = new Date().getTime()
+        } else if (this.config.customize.formatType === 'custom') {
+          const newFomat = val.replace(/y/g, 'Y').replace(/d/g, 'D')
+          this.value = moment(new Date()).format(newFomat)
         }
       },
       immediate: true
     }
-
   },
   created () { },
   mounted () {
@@ -71,7 +79,8 @@ export default {
       document.querySelector(`.time-picker-${this.config.code}`).style.pointerEvents = 'none'
     }
     if (this.value === '') {
-      this.value = moment(new Date()).format(this.config.customize.valueFormat)
+      const newFomat = this.config.customize.format.replace(/y/g, 'Y').replace(/d/g, 'D')
+      this.value = moment(new Date()).format(newFomat)
     }
     this.changeStyle(this.config)
   },

+ 67 - 68
data-room-ui/packages/BasicComponents/TimePicker/setting.vue

@@ -19,6 +19,12 @@
           <div class="lc-field-body">
             <PosWhSetting :config="config" />
           </div>
+          <SettingTitle>旋转</SettingTitle>
+          <div class="lc-field-body">
+            <RotateSetting
+              :config="config"
+            />
+          </div>
           <SettingTitle>基础</SettingTitle>
           <div class="lc-field-body">
             <!-- 选择器背景颜色 -->
@@ -84,44 +90,14 @@
           </div>
           <SettingTitle>时间格式</SettingTitle>
           <div class="lc-field-body">
-            <el-form-item label="时间数据类型">
-              <div class="description">
-                <el-select
-                  v-model="config.customize.formatType"
-                  class="bs-el-select"
-                  popper-class="bs-el-select"
-                >
-                  <el-option
-                    v-for="(type) in formatTypeOptions"
-                    :key="type.value"
-                    :label="type.label"
-                    :value="type.value"
-                  />
-                </el-select>
-                <el-tooltip
-                  placement="top"
-                >
-                  <span
-                    class="el-icon-question"
-                    style="color:#9e9e9e"
-                  />
-                  <div slot="content">
-                    时间戳:从1970年1月1日开始计算的秒数,数据类型为数值型,例如:1483326245000。<br>
-                    自定义:通过输入特定的格式字符串来指定时间的数据格式,例如:HH:mm:ss对应数据为 09:30:00。<br>
-                  </div>
-                </el-tooltip>
-              </div>
-            </el-form-item>
-            <el-form-item label="时间显示格式化">
+            <!-- <el-form-item label="时间显示格式化">
               <div class="description">
                 <el-input
                   v-model="config.customize.format"
                   placeholder="例如:HH:mm:ss"
                   clearable
                 />
-                <el-tooltip
-                  placement="top"
-                >
+                <el-tooltip placement="top">
                   <span
                     class="el-icon-question"
                     style="color:#9e9e9e"
@@ -141,21 +117,45 @@
                   </div>
                 </el-tooltip>
               </div>
+            </el-form-item> -->
+            <el-form-item label="时间类型">
+              <div class="description">
+                <el-select
+                  v-model="config.customize.formatType"
+                  class="bs-el-select"
+                  popper-class="bs-el-select"
+                  @change="changeFormatType"
+                >
+                  <el-option
+                    v-for="(type) in formatTypeOptions"
+                    :key="type.value"
+                    :label="type.label"
+                    :value="type.value"
+                  />
+                </el-select>
+                <el-tooltip placement="top">
+                  <span
+                    class="el-icon-question"
+                    style="color:#9e9e9e"
+                  />
+                  <div slot="content">
+                    时间戳:从1970年1月1日开始计算的秒数,数据类型为数值型,例如:1483326245000。<br>
+                    自定义:通过输入特定的格式字符串来指定时间的数据格式,例如:HH:mm:ss对应数据为 09:30:00。<br>
+                  </div>
+                </el-tooltip>
+              </div>
             </el-form-item>
-
             <el-form-item
               v-if="config.customize.formatType === 'custom'"
-              label="时间数据格式化"
+              label="时间格式"
             >
               <div class="description">
                 <el-input
-                  v-model="config.customize.valueFormat"
+                  v-model="config.customize.format"
                   placeholder="例如:HH:mm:ss"
                   clearable
                 />
-                <el-tooltip
-                  placement="top"
-                >
+                <el-tooltip placement="top">
                   <span
                     class="el-icon-question"
                     style="color:#9e9e9e"
@@ -186,12 +186,14 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'Border14Setting',
   components: {
     ColorPicker,
     PosWhSetting,
-    SettingTitle
+    SettingTitle,
+    RotateSetting
   },
   props: {
     config: {
@@ -215,44 +217,41 @@ export default {
       }
     }
   },
-  watch: {
-    'config.customize.formatType': {
-      handler (val) {
-        if (val === 'timestamp') {
-          this.config.customize.format = 'timestamp'
-          this.config.customize.valueFormat = 'timestamp'
-        } else if (val === 'custom') {
-          this.config.customize.format = 'HH:mm:ss'
-          this.config.customize.valueFormat = 'HH:mm:ss'
-        }
-      },
-      immediate: true
-    }
-  },
+  watch: {},
   data () {
     return {
       // 时间格式化类型选项
       formatTypeOptions: [
         { label: '时间戳', value: 'timestamp' },
-        { label: '自定义', value: 'custom' }
+        { label: '自定义格式', value: 'custom' }
       ]
     }
   },
-  mounted () {},
-  methods: { }
+  mounted () { },
+  methods: {
+    changeFormatType (val) {
+      if (val === 'timestamp') {
+        this.config.customize.format = 'timestamp'
+      } else if (val === 'custom') {
+        this.config.customize.format = 'HH:mm:ss'
+      }
+    }
+  }
 }
 </script>
 
-  <style lang="scss" scoped>
-  .lc-field-body {
-    width: 97%;
-    padding: 16px;
-  }
-  .description{
-    display: flex;
-    align-items: center;
-    .el-tooltip{
-      margin-left: 5px;
-    }
+<style lang="scss" scoped>
+.lc-field-body {
+  width: 97%;
+  padding: 16px;
+}
+
+.description {
+  display: flex;
+  align-items: center;
+
+  .el-tooltip {
+    margin-left: 5px;
   }
-  </style>
+}
+</style>

+ 9 - 1
data-room-ui/packages/BasicComponents/TimePicker/settingConfig.js

@@ -18,7 +18,15 @@ const customConfig = {
   // 名称
   title: '时间选择器',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   // 自定义属性
   customize: {

+ 9 - 1
data-room-ui/packages/BasicComponents/VerticalLine/setting.vue

@@ -37,6 +37,12 @@
               :bigTitle='config.title'
             />
           </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <el-form-item label="背景色一">
@@ -86,13 +92,15 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'Border14Setting',
   components: {
     ColorPicker,
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   props: {
     config: {

+ 9 - 1
data-room-ui/packages/BasicComponents/VerticalLine/settingConfig.js

@@ -12,7 +12,15 @@ export const settingConfig = {
 const customConfig = {
   type: 'verticalLine',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框线颜色

+ 9 - 1
data-room-ui/packages/BasicComponents/Video/setting.vue

@@ -37,6 +37,12 @@
               :bigTitle='config.title'
             />
           </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <el-form-item label="视频链接">
@@ -74,12 +80,14 @@
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetting.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'Border14Setting',
   components: {
     PosWhSetting,
     SettingTitle,
-    BorderSetting
+    BorderSetting,
+    RotateSetting
   },
   props: {
     config: {

+ 9 - 1
data-room-ui/packages/BasicComponents/Video/settingConfig.js

@@ -12,7 +12,15 @@ export const settingConfig = {
 const customConfig = {
   type: 'video',
   root: {
-    version: '2023071001'
+    version: '2023071001',
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     videoType: 'application/x-mpegURL',

+ 9 - 1
data-room-ui/packages/BigScreenDesign/BorderSetting.vue

@@ -27,6 +27,12 @@
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
         </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <slot name="top" />
@@ -127,12 +133,14 @@ import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'BorderSetting',
   components: {
     ColorPicker,
     PosWhSetting,
-    SettingTitle
+    SettingTitle,
+    RotateSetting
   },
   props: {
     config: {

+ 1 - 0
data-room-ui/packages/BigScreenDesign/RightSetting/EchartsCustomSetting.vue

@@ -111,6 +111,7 @@
                     />
                   </div>
                 </template>
+
                 <el-color-picker
                   v-else-if="setting.type === 'colorPicker'"
                   v-model="setting.value"

+ 10 - 2
data-room-ui/packages/BigScreenDesign/RightSetting/G2CustomSetting.vue

@@ -23,7 +23,7 @@
       </div>
       <SettingTitle>边框</SettingTitle>
       <div class="lc-field-body">
-         <BorderSetting
+        <BorderSetting
           v-if="config.border"
           label-width="120px"
           :config="config.border"
@@ -37,6 +37,12 @@
           :config="config"
         />
       </div>
+      <SettingTitle>旋转</SettingTitle>
+      <div class="lc-field-body">
+        <RotateSetting
+          :config="config"
+        />
+      </div>
       <template v-for="group in groupList">
         <div :key="group.groupName">
           <SettingTitle>   {{ group.groupName | filterGroupName }}</SettingTitle>
@@ -175,6 +181,7 @@ import ColorSelect from 'data-room-ui/ColorMultipleSelect/index.vue'
 import PaddingSetting from 'data-room-ui/BigScreenDesign/RightSetting/PaddingSetting/index.vue'
 import GradualSetting from 'data-room-ui/BigScreenDesign/RightSetting/GradualSetting/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 export default {
   name: 'CustomComponentSetting',
   components: {
@@ -184,7 +191,8 @@ export default {
     GradualSetting,
     PosWhSetting,
     BorderSetting,
-    SettingTitle
+    SettingTitle,
+    RotateSetting
   },
   mixins: [chartSettingMixins],
   data () {

+ 11 - 3
data-room-ui/packages/BigScreenList/index.vue

@@ -93,7 +93,7 @@
             </div>
             <div class="big-screen-card-img">
               <el-image
-                :src="screen.coverPicture"
+                :src="getCoverPicture(screen.coverPicture)"
                 fit="fill"
                 style="width: 100%; height: 100%"
               >
@@ -156,6 +156,7 @@
 </template>
 <script>
 import { pageMixins } from 'data-room-ui/js/mixins/page'
+import { getFileUrl } from 'data-room-ui/js/utils/file'
 import EditForm from './EditForm.vue'
 export default {
   name: 'BigScreenList',
@@ -176,7 +177,6 @@ export default {
       templateLoading: false,
       searchKey: '',
       list: [],
-      defaultImg: require('./images/defaultImg.png'),
       loading: false
     }
   },
@@ -301,7 +301,15 @@ export default {
         .catch((e) => {
           console.error(e)
         })
-    }
+    },
+    /**
+     * 获取封面图片,如果是相对路径则拼接上文件访问前缀地址
+     * @param url
+     * @returns {*}
+     */
+    getCoverPicture (url) {
+      return getFileUrl(url)
+    },
   }
 }
 </script>

+ 3 - 0
data-room-ui/packages/Borders/Border1/setting.vue

@@ -5,6 +5,9 @@
       :config="config"
       :predefine-theme-colors="predefineThemeColors"
     />
+    <RotateSetting
+      :config="config"
+    />
   </div>
 </template>
 <script>

+ 9 - 1
data-room-ui/packages/Borders/Border1/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border1',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     borderMainColor: '#83bff6',

+ 9 - 1
data-room-ui/packages/Borders/Border10/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border10',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 9 - 1
data-room-ui/packages/Borders/Border11/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border11',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 9 - 1
data-room-ui/packages/Borders/Border12/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border12',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 9 - 1
data-room-ui/packages/Borders/Border13/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border13',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 10 - 0
data-room-ui/packages/Borders/Border14/settingConfig.js

@@ -11,6 +11,16 @@ export const settingConfig = {
 }
 const customConfig = {
   type: 'border14',
+  root: {
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
+  },
   customize: {
     // 边框线颜色
     borderColor: '#87888e',

+ 10 - 0
data-room-ui/packages/Borders/Border15/settingConfig.js

@@ -11,6 +11,16 @@ export const settingConfig = {
 }
 const customConfig = {
   type: 'border15',
+  root: {
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
+  },
   customize: {
     // 边框线颜色
     borderColor: '#87888e',

+ 9 - 1
data-room-ui/packages/Borders/Border2/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border2',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     borderMainColor: '#83bff6',

+ 9 - 1
data-room-ui/packages/Borders/Border3/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border3',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     borderMainColor: '#83bff6',

+ 9 - 1
data-room-ui/packages/Borders/Border4/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border4',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 9 - 1
data-room-ui/packages/Borders/Border5/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border5',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 9 - 1
data-room-ui/packages/Borders/Border6/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border6',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 9 - 1
data-room-ui/packages/Borders/Border7/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border7',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 9 - 1
data-room-ui/packages/Borders/Border8/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border8',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 9 - 1
data-room-ui/packages/Borders/Border9/settingConfig.js

@@ -21,7 +21,15 @@ const customConfig = {
   type: 'border9',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     // 边框主要颜色

+ 11 - 3
data-room-ui/packages/ComponentList/index.vue

@@ -122,7 +122,7 @@
             </div>
             <div class="big-screen-card-img">
               <el-image
-                :src="catalogInfo !== 'system' ? screen.coverPicture : screen.img"
+                :src="catalogInfo !== 'system' ? getCoverPicture(screen.coverPicture) : screen.img"
                 fit="fill"
                 style="width: 100%; height: 100%"
               >
@@ -196,6 +196,7 @@
 </template>
 <script>
 import { pageMixins } from 'data-room-ui/js/mixins/page'
+import { getFileUrl } from 'data-room-ui/js/utils/file'
 import EditForm from './EditForm.vue'
 import CatalogEditForm from './CatalogEditForm'
 import innerRemoteComponents, { getRemoteComponents } from 'data-room-ui/RemoteComponents/remoteComponentsList'
@@ -216,7 +217,6 @@ export default {
       templateLoading: false,
       searchKey: '',
       list: [],
-      defaultImg: require('./images/defaultImg.png'),
       loading: false,
       catalogList: [], // 分组列表
       catalogCode: ''
@@ -418,7 +418,15 @@ export default {
         .catch((e) => {
           console.error(e)
         })
-    }
+    },
+    /**
+     * 获取封面图片,如果是相对路径则拼接上文件访问前缀地址
+     * @param url
+     * @returns {*}
+     */
+    getCoverPicture (url) {
+      return getFileUrl(url)
+    },
   }
 }
 </script>

+ 8 - 0
data-room-ui/packages/Decorations/Decoration1/setting.vue

@@ -27,6 +27,12 @@
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
         </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <el-form-item label="装饰主颜色">
@@ -49,12 +55,14 @@
 <script>
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 export default {
   name: 'BarSetting',
   components: {
     ColorPicker,
     PosWhSetting,
+    RotateSetting,
     SettingTitle
   },
   data () {

+ 9 - 1
data-room-ui/packages/Decorations/Decoration1/settingConfig.js

@@ -17,7 +17,15 @@ const customConfig = {
   type: 'decoration1',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     decorationColor1: '#fff',

+ 8 - 0
data-room-ui/packages/Decorations/Decoration10/setting.vue

@@ -27,6 +27,12 @@
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
         </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <el-form-item label="装饰主颜色">
@@ -49,12 +55,14 @@
 <script>
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 export default {
   name: 'BarSetting',
   components: {
     ColorPicker,
     PosWhSetting,
+    RotateSetting,
     SettingTitle
   },
   data () {

+ 9 - 1
data-room-ui/packages/Decorations/Decoration10/settingConfig.js

@@ -17,7 +17,15 @@ const customConfig = {
   type: 'decoration10',
   root: {
     version: '2023071001',
-    contribution: false
+    contribution: false,
+    // 绕x轴旋转角度
+    rotateX: 0,
+    // 绕y轴旋转角度
+    rotateY: 0,
+    // 绕z轴旋转角度
+    rotateZ: 0,
+    // 透视距离
+    perspective: 500
   },
   customize: {
     decorationColor1: '#00c2ff',

+ 8 - 0
data-room-ui/packages/Decorations/Decoration11/setting.vue

@@ -27,6 +27,12 @@
         <div class="lc-field-body">
           <PosWhSetting :config="config" />
         </div>
+        <SettingTitle>旋转</SettingTitle>
+        <div class="lc-field-body">
+          <RotateSetting
+            :config="config"
+          />
+        </div>
         <SettingTitle>基础</SettingTitle>
         <div class="lc-field-body">
           <el-form-item label="装饰主颜色">
@@ -49,12 +55,14 @@
 <script>
 import ColorPicker from 'data-room-ui/ColorPicker/index.vue'
 import PosWhSetting from 'data-room-ui/BigScreenDesign/RightSetting/PosWhSetting.vue'
+import RotateSetting from 'data-room-ui/BigScreenDesign/RightSetting/RotateSetting.vue'
 import SettingTitle from 'data-room-ui/SettingTitle/index.vue'
 export default {
   name: 'BarSetting',
   components: {
     ColorPicker,
     PosWhSetting,
+    RotateSetting,
     SettingTitle
   },
   data () {

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov