Merge branch 'master' of github.com:gcpaas/DataRoom

main
liu.tao3 1 year ago
commit 853607a689

@ -192,6 +192,11 @@ public interface PageDesignConstant {
*/
String NUMBER = "number";
/**
* html
*/
String CUSTOM_HTML = "customHtml";
}
}

@ -109,6 +109,11 @@ public class Chart {
@ApiModelProperty(notes = "透视")
private Integer perspective;
@ApiModelProperty(notes = "倾斜x")
private Integer skewX;
@ApiModelProperty(notes = "倾斜y")
private Integer skewY;
}

@ -33,5 +33,8 @@ public class ScreenCurrentTimeChart extends Chart {
@ApiModelProperty(notes = "字体颜色")
private String color;
@ApiModelProperty(notes = "字体")
private String fontFamily;
}
}

@ -0,0 +1,30 @@
package com.gccloud.dataroom.core.module.chart.components;
import com.gccloud.dataroom.core.constant.PageDesignConstant;
import com.gccloud.dataroom.core.module.chart.bean.Chart;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* html
* @author hongyang
* @version 1.0
* @date 2023/3/16 16:44
*/
@Data
public class ScreenCustomHtmlChart extends Chart {
@ApiModelProperty(notes = "类型")
private String type = PageDesignConstant.BigScreen.Type.CUSTOM_HTML;
@ApiModelProperty(notes = "个性化")
private Customize customize = new Customize();
@Data
public static class Customize {
@ApiModelProperty(notes = "自定义html")
private String htmlStr;
}
}

@ -46,6 +46,9 @@ public class ScreenTimeCountDownChart extends Chart {
@ApiModelProperty(notes = "字体颜色")
private String color;
@ApiModelProperty(notes = "字体")
private String fontFamily;
}

@ -3,6 +3,8 @@ package com.gccloud.dataroom.core.module.file.dto;
import com.gccloud.common.dto.SearchDTO;
import lombok.Data;
import java.util.List;
@Data
public class FileSearchDTO extends SearchDTO {
@ -17,4 +19,10 @@ public class FileSearchDTO extends SearchDTO {
private String extension;
/**
*
*/
private List<String> extensionList;
}

@ -31,6 +31,9 @@ public class DataRoomFileServiceImpl extends ServiceImpl<DataRoomFileDao, DataRo
LambdaQueryWrapper<DataRoomFileEntity> queryWrapper = QueryWrapperUtils.wrapperLike(new LambdaQueryWrapper(), searchDTO.getSearchKey(), DataRoomFileEntity::getOriginalName);
queryWrapper.eq(StringUtils.isNotBlank(searchDTO.getModule()), DataRoomFileEntity::getModule, searchDTO.getModule());
queryWrapper.eq(StringUtils.isNotBlank(searchDTO.getExtension()), DataRoomFileEntity::getExtension, searchDTO.getExtension());
if (searchDTO.getExtensionList() != null && searchDTO.getExtensionList().size() > 0) {
queryWrapper.in(DataRoomFileEntity::getExtension, searchDTO.getExtensionList());
}
queryWrapper.orderByDesc(DataRoomFileEntity::getCreateDate);
return page(searchDTO, queryWrapper);
}

@ -44,7 +44,7 @@
<swagger-models.version>1.5.21</swagger-models.version>
<jackson.version.core>2.13.3</jackson.version.core>
<json.version>20220320</json.version>
<dataset.core.version>1.0.1.2023101201.Alpha</dataset.core.version>
<dataset.core.version>1.0.1.2023101301.Alpha</dataset.core.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
</properties>

@ -1,6 +1,6 @@
{
"name": "@gcpaas/data-room-ui",
"version": "1.0.1-2023101101-Alpha",
"version": "1.0.1-2023101301-Alpha",
"description": "自定义大屏",
"author": "gcpaas",
"license": "MIT",

@ -45,7 +45,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
// 自定义属性
customize: {

@ -23,7 +23,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
tabList: [],

@ -19,7 +19,9 @@
'px;color:' +
config.customize.color +
';font-weight:' +
config.customize.fontWeight
config.customize.fontWeight+
';font-family:' +
config.customize.fontFamily
"
>
{{ nowTime }}
@ -101,6 +103,7 @@ export default {
<style lang="scss" scoped>
@import "../../BasicComponents/fonts/index.css";
@import "../../assets/fonts/numberFont/stylesheet.css";
.bs-design-wrap{
width: 100%;
}

@ -66,6 +66,23 @@
placeholder="请输入字体权重"
/>
</el-form-item>
<el-form-item
label="字体类型"
label-width="100px"
>
<el-select
v-model="config.customize.fontFamily"
popper-class="bs-el-select"
class="bs-el-select"
>
<el-option
v-for="item in fontFamilyList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label="字体颜色"
label-width="100px"
@ -102,6 +119,7 @@ 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'
import fontList from 'data-room-ui/js/utils/fontList'
export default {
name: 'CurrentTimeSetting',
components: {
@ -112,6 +130,7 @@ export default {
},
data () {
return {
fontFamilyList: fontList,
activeName: 'data',
dateFormatList: [
{ label: '年-月-日 时:分:秒', value: 'YYYY-MM-DD HH:mm:ss' },

@ -24,11 +24,14 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
fontSize: 28,
fontWeight: 700,
fontFamily: '', // 字体类型
color: 'rgb(155 159 172)'
}

@ -0,0 +1,56 @@
<template>
<div
class="bs-design-wrap"
:class="`bs-current-time-${customTheme}`"
>
<div
ref="customHtml"
v-html="config.customize.htmlStr"
/>
</div>
</template>
<script>
import paramsMixins from 'data-room-ui/js/mixins/paramsMixins'
import { mapMutations, mapState } from 'vuex'
export default {
name: 'CustomHtml',
mixins: [paramsMixins],
props: {
config: {
type: Object,
default: () => ({})
}
},
computed: {
...mapState({
})
},
data () {
return {
}
},
mounted () {
},
//
destroyed () {
},
methods: {
...mapMutations({
changeChartConfig: 'bigScreen/changeChartConfig',
changeActiveItemConfig: 'bigScreen/changeActiveItemConfig'
}),
changeStyle (config) {
}
}
}
</script>
<style lang="scss" scoped>
@import "../../BasicComponents/fonts/index.css";
@import "../../assets/fonts/numberFont/stylesheet.css";
.bs-design-wrap{
width: 100%;
padding: 10px;
}
</style>

@ -0,0 +1,104 @@
<!--
* @description: 指标组件案例设计面板
* @Date: 2022-08-17 16:53:28
* @Author: xingheng
-->
<template>
<div>
<el-form
ref="form"
label-width="100px"
label-position="left"
:model="config"
class="bs-el-form"
>
<SettingTitle>标题</SettingTitle>
<div class="setting-wrap">
<el-form-item
label="标题"
label-width="100px"
>
<el-input
v-model="config.title"
placeholder="请输入标题"
/>
</el-form-item>
</div>
<SettingTitle>位置</SettingTitle>
<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>旋转</SettingTitle>
<div class="lc-field-body">
<RotateSetting
:config="config"
/>
</div>
<SettingTitle>基础</SettingTitle>
<div class="setting-wrap">
<el-form-item
label="html内容"
label-width="100px"
>
<el-input
v-model="config.customize.htmlStr"
type="textarea"
:rows="5"
/>
</el-form-item>
</div>
</el-form>
</div>
</template>
<script>
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,
RotateSetting
},
data () {
return {
activeName: 'data'
}
},
computed: {
config: {
get () {
return this.$store.state.bigScreen.activeItemConfig
},
set (val) {
this.$store.state.bigScreen.activeItemConfig = val
}
}
},
watch: {
},
mounted () {},
methods: {
}
}
</script>
<style lang="scss" scoped>
@import "../../assets/style/settingWrap.scss";
@import "../../assets/style/bsTheme.scss";
.setting-wrap{
padding: 12px 16px;
}
</style>

@ -0,0 +1,37 @@
import { commonConfig } from '../../js/config'
export const settingConfig = {
time: '',
theme: 'dark',
// 设置面板属性的显隐
displayOption: {
dataAllocation: {
// 是否存在数据配置
enable: false
}
}
}
const customConfig = {
type: 'customHtml',
root: {
version: '2023071001',
// 绕x轴旋转角度
rotateX: 0,
// 绕y轴旋转角度
rotateY: 0,
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
htmlStr: '<h1 style="color:#ffffff;font-size: 30px">我是自定义html内容</h1>' // html的内容
}
}
export const dataConfig = {
...commonConfig(customConfig)
}

@ -26,7 +26,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
// 自定义属性
customize: {

@ -39,7 +39,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
color: '#fff',

@ -45,7 +45,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 地图id

@ -20,7 +20,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框线颜色

@ -27,7 +27,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
fontSize: 20,

@ -44,7 +44,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
src: '',

@ -44,7 +44,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
src: '',

@ -44,7 +44,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
borderRadius: 0,

@ -44,7 +44,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
borderRadius: 0,

@ -71,15 +71,6 @@
<SettingTitle>位置</SettingTitle>
<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>旋转</SettingTitle>
<div class="lc-field-body">

@ -21,7 +21,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
// 自定义属性
customize: {

@ -38,7 +38,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
title: '超链接占位符',

@ -46,7 +46,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
mapId: '',

@ -38,7 +38,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
title: '跑马灯占位符',

@ -51,12 +51,12 @@
<SettingTitle>基础</SettingTitle>
<div class="lc-field-body">
<el-form-item
label="标题字体大小"
label="数字大小"
label-width="100px"
>
<el-input
v-model="config.customize.fontSize"
placeholder="请输入标题字体大小"
placeholder="请输入数字大小"
clearable
>
<template slot="append">
@ -65,17 +65,17 @@
</el-input>
</el-form-item>
<el-form-item
label="标题字体权重"
label="数字权重"
label-width="100px"
>
<el-input-number
v-model="config.customize.fontWeight"
class="bs-el-input-number"
placeholder="请输入标题字体权重"
placeholder="请输入数字权重"
/>
</el-form-item>
<el-form-item
label="标题字体类型"
label="数字类型"
label-width="100px"
>
<el-select
@ -91,7 +91,10 @@
/>
</el-select>
</el-form-item>
<TextGradient v-model="config.customize.color" />
<TextGradient
v-model="config.customize.color"
label="数字"
/>
</div>
</el-form>
</div>
@ -102,6 +105,7 @@ import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetti
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'
import fontList from 'data-room-ui/js/utils/fontList'
export default {
name: 'TextSetting',
components: {
@ -113,27 +117,7 @@ export default {
},
data () {
return {
fontFamilyList: [
{
label: '默认',
value: ''
},
{
label: '时钟加粗倾斜',
value: 'ds-digitalbold_italic'
},
{
label: '时钟加粗正常',
value: 'ds-digitalbold'
},
{
label: '时钟倾斜',
value: 'ds-digitalitalic'
},
{
label: '时钟正常',
value: 'ds-digitalnormal'
}],
fontFamilyList: fontList,
rules: {
title: [
{ required: true, message: '请输入标题', trigger: 'blur' }

@ -48,10 +48,12 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
title: '数字标签占位符',
title: '1234',
fontSize: 20,
fontWeight: 700,
fontFamily: '', // 字体类型

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
url: '',

@ -128,13 +128,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 {

@ -41,7 +41,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
rowNum: 5,

@ -34,7 +34,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
rowNum: 5,

@ -33,7 +33,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
// 自定义属性
customize: {

@ -43,7 +43,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {

@ -51,12 +51,12 @@
<SettingTitle>基础</SettingTitle>
<div class="lc-field-body">
<el-form-item
label="标题字体大小"
label="文字大小"
label-width="100px"
>
<el-input
v-model="config.customize.fontSize"
placeholder="请输入标题字体大小"
placeholder="请输入文字大小"
clearable
>
<template slot="append">
@ -65,17 +65,17 @@
</el-input>
</el-form-item>
<el-form-item
label="标题字体权重"
label="文字权重"
label-width="100px"
>
<el-input-number
v-model="config.customize.fontWeight"
class="bs-el-input-number"
placeholder="请输入标题字体权重"
placeholder="请输入文字权重"
/>
</el-form-item>
<el-form-item
label="标题字体类型"
label="文字类型"
label-width="100px"
>
<el-select
@ -102,6 +102,7 @@ import BorderSetting from 'data-room-ui/BigScreenDesign/RightSetting/BorderSetti
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'
import fontList from 'data-room-ui/js/utils/fontList'
export default {
name: 'TextSetting',
components: {
@ -113,27 +114,7 @@ export default {
},
data () {
return {
fontFamilyList: [
{
label: '默认',
value: ''
},
{
label: '时钟加粗倾斜',
value: 'ds-digitalbold_italic'
},
{
label: '时钟加粗正常',
value: 'ds-digitalbold'
},
{
label: '时钟倾斜',
value: 'ds-digitalitalic'
},
{
label: '时钟正常',
value: 'ds-digitalnormal'
}],
fontFamilyList: fontList,
rules: {
title: [
{ required: true, message: '请输入标题', trigger: 'blur' }

@ -48,7 +48,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
title: '文本标签占位符',

@ -26,7 +26,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
title: '文本标签占位符',

@ -26,7 +26,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
activeColor: '#007aff', // 单选框字体激活状态

@ -23,7 +23,9 @@
'px;color:' +
config.customize.color +
';font-weight:' +
config.customize.fontWeight
config.customize.fontWeight +
';font-family:' +
config.customize.fontFamily
"
>
{{ dateDiff }}
@ -34,8 +36,8 @@
<script>
import paramsMixins from 'data-room-ui/js/mixins/paramsMixins'
import { settingToTheme } from 'data-room-ui/js/utils/themeFormatting'
import cloneDeep from "lodash/cloneDeep";
import {mapMutations, mapState} from "vuex";
import cloneDeep from 'lodash/cloneDeep'
import { mapMutations, mapState } from 'vuex'
export default {
name: 'TimeCountDown',
mixins: [paramsMixins],
@ -161,6 +163,7 @@ export default {
<style lang="scss" scoped>
@import "../../BasicComponents/fonts/index.css";
@import "../../assets/fonts/numberFont/stylesheet.css";
.bs-design-wrap{
width: 100%;
}

@ -65,6 +65,23 @@
placeholder="请输入字体权重"
/>
</el-form-item>
<el-form-item
label="字体类型"
label-width="100px"
>
<el-select
v-model="config.customize.fontFamily"
popper-class="bs-el-select"
class="bs-el-select"
>
<el-option
v-for="item in fontFamilyList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label="字体颜色"
label-width="100px"
@ -101,6 +118,7 @@ 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'
import fontList from 'data-room-ui/js/utils/fontList'
export default {
name: 'TimeCountDownSetting',
components: {
@ -111,6 +129,7 @@ export default {
},
data () {
return {
fontFamilyList: fontList,
pickerOptions: {
disabledDate (time) {
return time.getTime() < Date.now() - 8.64e7

@ -23,11 +23,14 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
fontSize: 28,
fontWeight: 700,
fontFamily: '', // 字体类型
color: 'rgb(155 159 172)'
}

@ -26,7 +26,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
// 自定义属性
customize: {

@ -20,7 +20,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框线颜色

@ -20,7 +20,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
videoType: 'application/x-mpegURL',

@ -116,7 +116,7 @@ export default {
})
}
})
layouts = layouts?.filter(item => item.code !== code && !['Tabs', 'titles', 'currentTime', 'timeCountDown', 'iframeChart', 'linkChart', 'carousel', 'themeSwitcher', 'themeSelect'].includes(item.type))
layouts = layouts?.filter(item => item.code !== code && !['Tabs', 'titles', 'currentTime', 'timeCountDown', 'iframeChart', 'linkChart', 'carousel', 'themeSwitcher', 'themeSelect', 'customHtml'].includes(item.type))
layouts = [...layouts, ...tabComponents]?.map(item => ({
name: item.code,
comment: item.title

@ -13,13 +13,33 @@
ref="tree"
:data="treeData"
:indent="0"
:props="{ label: 'label', children: 'children' }"
:props="defaultProps"
:default-expand-all="true"
:highlight-current="true"
:expand-on-click-node="false"
class="bs-el-tree tree-box"
@node-click="handleNodeClick"
/>
>
<template #default="{ node, data }">
<!-- Check if the node is a top-level node -->
<span
v-if="node.level === 1"
:class="{ 'disabled': node.disabled}"
>
<i
class="el-icon-folder"
/>
{{ data.label }}
</span>
<span
v-else
:class="{ 'disabled': node.disabled}"
style="padding-left: 20px"
>
{{ data.label }}
</span>
</template>
</el-tree>
</div>
<div class="right-box">
<div class="codemirror-wrap">
@ -96,7 +116,8 @@ export default {
hintOptions: {
completeSingle: true
}
}
},
defaultProps: { label: 'label', children: 'children' }
}
},
computed: {
@ -113,13 +134,15 @@ export default {
return {
label: field,
code: item,
value: `dataset.${item}[0].${field}`
value: `dataset.${item}[0].${field}`,
disabled: item.includes(this.config.code)
}
})
list.push({
label: item,
code: item,
value: `dataset.${item}`,
disabled: item.includes(this.config.code),
children
})
}
@ -127,7 +150,8 @@ export default {
list.push({
label: item,
code: item,
value: `computedDatas.${item}`
value: `computedDatas.${item}`,
disabled: item.includes(this.config.code)
})
}
return list
@ -154,9 +178,9 @@ export default {
},
//
handleNodeClick (node, data, nodeObj) {
console.log(node, data, nodeObj)
const str = node.value
const code = node.code
if (node.disabled) return
this.$refs.codemirrorRef.codemirror.setValue(this.currentConfig.expression + ' + ' + str)
// expressionCodes
if (this.currentConfig.expressionCodes && Array.isArray(this.currentConfig.expressionCodes)) {
@ -217,5 +241,8 @@ export default {
}
}
}
.disabled{
cursor: not-allowed;
color: #666666;
}
</style>

@ -22,8 +22,8 @@
<el-input-number
v-model="config.rotateX"
class="bs-el-input-number"
:min="0"
:max="360"
:min="-180"
:max="180"
:step="1"
/>
</el-form-item>
@ -34,8 +34,8 @@
<el-input-number
v-model="config.rotateY"
class="bs-el-input-number"
:min="0"
:max="360"
:min="-180"
:max="180"
:step="1"
/>
</el-form-item>
@ -46,8 +46,32 @@
<el-input-number
v-model="config.rotateZ"
class="bs-el-input-number"
:min="0"
:max="360"
:min="-180"
:max="180"
:step="1"
/>
</el-form-item>
<el-form-item
:label-width="labelWidth"
label="沿x轴扭曲角度"
>
<el-input-number
v-model="config.skewX"
class="bs-el-input-number"
:min="-180"
:max="180"
:step="1"
/>
</el-form-item>
<el-form-item
:label-width="labelWidth"
label="绕y轴扭曲角度"
>
<el-input-number
v-model="config.skewY"
class="bs-el-input-number"
:min="-180"
:max="180"
:step="1"
/>
</el-form-item>
@ -63,7 +87,9 @@ export default {
rotateX: 0,
rotateY: 0,
rotateZ: 0,
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
})
},
labelWidth: {

@ -2,7 +2,7 @@
<template>
<div class="bs-gradual-wrap">
<el-form-item
label="文字渐变方向"
:label="`${customLabel}渐变方向`"
label-width="100px"
>
<el-radio-group
@ -18,7 +18,7 @@
</el-radio-group>
</el-form-item>
<el-form-item
label="文字渐变颜色"
:label="`${customLabel}渐变颜色`"
label-width="100px"
>
<div class="color-picker-box">
@ -51,6 +51,10 @@ export default {
colors: {
type: String,
default: ''
},
label: {
type: String,
default: ''
}
},
data () {
@ -65,6 +69,9 @@ export default {
computed: {
newColors () {
return cloneDeep(this.colors)
},
customLabel () {
return this.label || '文字'
}
},
watch: {

@ -119,6 +119,8 @@ export default {
rotateY: this.config?.rotateY,
rotateZ: this.config?.rotateZ,
perspective: this.config?.perspective,
skewX: this.config?.skewX,
skewY: this.config?.skewY,
setting: cloneDeep(this.config?.setting),
customize: cloneDeep(this.config?.customize),
url: this.config?.url,

@ -25,7 +25,7 @@
v-model="code"
class="bs-el-select"
popper-class="bs-el-select"
placeholder="请选择类型"
placeholder="请选择分组"
clearable
@change="reSearch"
>
@ -71,7 +71,7 @@
>
<div class="big-screen-card-img">
<el-image
:src="screen.url"
:src="getCoverPicture(screen.url)"
fit="contain"
style="width: 100%; height: 100%"
>
@ -147,8 +147,9 @@
</template>
<script>
import { pageMixins } from 'data-room-ui/js/mixins/page'
// import _ from 'lodash'
import cloneDeep from 'lodash/cloneDeep'
import { getFileUrl } from 'data-room-ui/js/utils/file'
export default {
name: 'SourceDialog',
mixins: [pageMixins],
@ -161,7 +162,8 @@ export default {
code: '',
focus: -1,
list: [],
searchKey: ''
searchKey: '',
imgExtends: ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'svg', 'webp', 'ico']
}
},
computed: {
@ -200,7 +202,8 @@ export default {
module: this.code,
current: this.current,
size: this.size,
extension: '',
//
extensionList: this.imgExtends,
searchKey: this.searchKey
})
.then((data) => {
@ -218,7 +221,15 @@ export default {
this.options = data
})
.catch(() => { })
}
},
/**
* 获取文件访问地址,如果是相对路径则拼接上文件访问前缀地址
* @param url
* @returns {*}
*/
getCoverPicture (url) {
return getFileUrl(url)
},
}
}
</script>

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
borderMainColor: '#83bff6',

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -19,7 +19,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框线颜色

@ -19,7 +19,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框线颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
borderMainColor: '#83bff6',

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
borderMainColor: '#83bff6',

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -29,7 +29,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
// 边框主要颜色

@ -1157,7 +1157,7 @@ export default {
const script = JSON.stringify(this.dataForm.config)
const executeParams = {
script,
params: this.dataForm.config.paramsList,
params: this.newParamsList,
dataSetType: 'http'
}
datasetExecuteTest(executeParams).then(res => {

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: '#fff',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: '#00c2ff',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: '#1a98fc',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: null,

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: '#3faacb',

@ -25,7 +25,7 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0
},
customize: {
decorationColor1: '#3faacb',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: '#7acaec',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: 'rgba(255, 255, 255, 0.3)',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: 'rgba(255, 255, 255, 0.3)',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: '#3f96a5',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1:'#7acaec',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: '#3f96a5',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: '#3f96a5',

@ -25,7 +25,9 @@ const customConfig = {
// 绕z轴旋转角度
rotateZ: 0,
// 透视距离
perspective: 500
perspective: 0,
skewX: 0,
skewY: 0
},
customize: {
decorationColor1: 'rgba(3, 166, 224, 0.8)',

@ -218,7 +218,7 @@ const setting = [
groupName: 'xAxis'
},
{
label: '名称',
label: '标题',
type: 'input',
field: 'xAxis_name',
optionField: 'xAxis.name',
@ -227,7 +227,7 @@ const setting = [
groupName: 'xAxis'
},
{
label: '名称位置',
label: '标题位置',
type: 'select',
field: 'xAxis_nameLocation',
optionField: 'xAxis.nameLocation',
@ -249,7 +249,16 @@ const setting = [
groupName: 'xAxis'
},
{
label: '名称字体大小',
label: '标题到轴线距离',
type: 'inputNumber',
field: 'xAxis_nameGap',
optionField: 'xAxis.nameGap',
value: 10,
tabName: 'custom',
groupName: 'xAxis'
},
{
label: '标题字体大小',
type: 'inputNumber',
field: 'xAxis_nameTextStyle_fontSize',
optionField: 'xAxis.nameTextStyle.fontSize',
@ -258,7 +267,7 @@ const setting = [
groupName: 'xAxis'
},
{
label: '名称颜色',
label: '标题颜色',
type: 'colorPicker',
field: 'xAxis_nameTextStyle_color',
optionField: 'xAxis.nameTextStyle.color',
@ -352,7 +361,7 @@ const setting = [
groupName: 'yAxis'
},
{
label: '名称',
label: '标题',
type: 'input',
field: 'yAxis_name',
optionField: 'yAxis.name',
@ -361,7 +370,7 @@ const setting = [
groupName: 'yAxis'
},
{
label: '名称位置',
label: '标题位置',
type: 'select',
field: 'yAxis_nameLocation',
optionField: 'yAxis.nameLocation',
@ -383,7 +392,16 @@ const setting = [
groupName: 'yAxis'
},
{
label: '名称字体大小',
label: '标题到轴线距离',
type: 'inputNumber',
field: 'yAxis_nameGap',
optionField: 'yAxis.nameGap',
value: 10,
tabName: 'custom',
groupName: 'yAxis'
},
{
label: '标题字体大小',
type: 'inputNumber',
field: 'yAxis_nameTextStyle_fontSize',
optionField: 'yAxis.nameTextStyle.fontSize',
@ -392,7 +410,7 @@ const setting = [
groupName: 'yAxis'
},
{
label: '名称颜色',
label: '标题颜色',
type: 'colorPicker',
field: 'yAxis_nameTextStyle_color',
optionField: 'yAxis.nameTextStyle.color',
@ -526,17 +544,17 @@ const option = {
show: true
},
grid: {
left: '15%',
right: '5%',
bottom: '15%',
left: '12%',
right: '8%',
bottom: '20%',
z: 100,
containLabel: false,
show: false
},
graphic: {
type: 'group',
bottom: '5%',
left: '10%',
bottom: '10%',
left: '7%',
z: 100,
children: [
{
@ -569,6 +587,7 @@ const option = {
{
show: true,
name: '',
nameGap: 10,
type: 'category',
data: xData,
nameTextStyle: {
@ -621,6 +640,7 @@ const option = {
],
yAxis: {
name: '',
nameGap: 10,
nameTextStyle: {
color: '',
fontSize: 12

@ -193,7 +193,7 @@ const setting = [
groupName: 'xAxis'
},
{
label: '名称',
label: '标题',
type: 'input',
field: 'xAxis_name',
optionField: 'xAxis.name',
@ -202,7 +202,7 @@ const setting = [
groupName: 'xAxis'
},
{
label: '名称位置',
label: '标题位置',
type: 'select',
field: 'xAxis_nameLocation',
optionField: 'xAxis.nameLocation',
@ -224,7 +224,16 @@ const setting = [
groupName: 'xAxis'
},
{
label: '名称字体大小',
label: '标题到轴线距离',
type: 'inputNumber',
field: 'xAxis_nameGap',
optionField: 'xAxis.nameGap',
value: 10,
tabName: 'custom',
groupName: 'xAxis'
},
{
label: '标题字体大小',
type: 'inputNumber',
field: 'xAxis_nameTextStyle_fontSize',
optionField: 'xAxis.nameTextStyle.fontSize',
@ -233,7 +242,7 @@ const setting = [
groupName: 'xAxis'
},
{
label: '名称颜色',
label: '标题颜色',
type: 'colorPicker',
field: 'xAxis_nameTextStyle_color',
optionField: 'xAxis.nameTextStyle.color',
@ -327,7 +336,7 @@ const setting = [
groupName: 'yAxis'
},
{
label: '名称',
label: '标题',
type: 'input',
field: 'yAxis_name',
optionField: 'yAxis.name',
@ -336,7 +345,7 @@ const setting = [
groupName: 'yAxis'
},
{
label: '名称位置',
label: '标题位置',
type: 'select',
field: 'yAxis_nameLocation',
optionField: 'yAxis.nameLocation',
@ -358,7 +367,16 @@ const setting = [
groupName: 'yAxis'
},
{
label: '名称字体大小',
label: '标题到轴线距离',
type: 'inputNumber',
field: 'yAxis_nameGap',
optionField: 'yAxis.nameGap',
value: 10,
tabName: 'custom',
groupName: 'yAxis'
},
{
label: '标题字体大小',
type: 'inputNumber',
field: 'yAxis_nameTextStyle_fontSize',
optionField: 'yAxis.nameTextStyle.fontSize',
@ -367,7 +385,7 @@ const setting = [
groupName: 'yAxis'
},
{
label: '名称颜色',
label: '标题颜色',
type: 'colorPicker',
field: 'yAxis_nameTextStyle_color',
optionField: 'yAxis.nameTextStyle.color',
@ -471,7 +489,7 @@ const setting = [
groupName: 'yAxis'
},
{
label: '刻度度',
label: '刻度度',
type: 'inputNumber',
field: 'yAxis_axisTick_length',
optionField: 'yAxis.axisTick.length',
@ -499,17 +517,17 @@ const option = {
show: true
},
grid: {
left: '15%',
right: '5%',
bottom: '15%',
left: '12%',
right: '8%',
bottom: '20%',
z: 100,
containLabel: false,
show: false
},
graphic: {
type: 'group',
bottom: '5%',
left: '10%',
bottom: '10%',
left: '7%',
z: 100,
children: [
{
@ -542,6 +560,7 @@ const option = {
{
show: false,
name: '',
nameGap: 30,
type: 'category',
data: xData,
nameTextStyle: {
@ -599,6 +618,7 @@ const option = {
],
yAxis: {
name: '',
nameGap: 10,
nameTextStyle: {
color: '',
fontSize: 12

@ -34,7 +34,9 @@ function getEchartsList (files) {
rotateX: config.rotateX || 0,
rotateY: config.rotateY || 0,
rotateZ: config.rotateZ || 0,
perspective: config.perspective || 500,
perspective: config.perspective || 0,
skewX: config.skewX || 0,
skewY: config.skewY || 0,
type: 'echartsComponent',
loading: false,
// 把默认右侧配置与自定义右侧配置集合

@ -71,50 +71,6 @@ export default {
this.changeStyle(this.config, true)
}
}
},
'config.rotateX': {
deep: true,
handler (val) {
const dom = document.querySelector('#' + this.config.code)
const rotate = `rotateX(${this.config.rotateX}deg) rotateY(${this.config.rotateY}deg) rotateZ(${this.config.rotateZ}deg)`
const regex = /rotateX\(\d+deg\) rotateY\(\d+deg\) rotateZ\(\d+deg\)/g
// transform
const result = dom.style.transform.replace(regex, '')
dom.style.transform = result + ' ' + rotate
}
},
'config.rotateY': {
deep: true,
handler (val) {
const dom = document.querySelector('#' + this.config.code)
const rotate = `rotateX(${this.config.rotateX}deg) rotateY(${this.config.rotateY}deg) rotateZ(${this.config.rotateZ}deg)`
const regex = /rotateX\(\d+deg\) rotateY\(\d+deg\) rotateZ\(\d+deg\)/g;
const result = dom.style.transform.replace(regex, '')
dom.style.transform = result + ' ' + rotate
}
},
'config.rotateZ': {
deep: true,
handler (val) {
const dom = document.querySelector('#' + this.config.code)
const rotate = `rotateX(${this.config.rotateX}deg) rotateY(${this.config.rotateY}deg) rotateZ(${this.config.rotateZ}deg)`
const regex = /rotateX\(\d+deg\) rotateY\(\d+deg\) rotateZ\(\d+deg\)/g
const result = dom.style.transform.replace(regex, '')
dom.style.transform = result + ' ' + rotate
}
},
'config.perspective': {
deep: true,
handler (val) {
const dom = document.querySelector('#' + this.config.code)
// translate
const translateReg = /translate\((.*?)\)/
const translateResult = dom.style.transform.match(translateReg)
const rotateReg = /rotateX\(\d+deg\) rotateY\(\d+deg\) rotateZ\(\d+deg\)/g
const rotateResult = dom.style.transform.match(rotateReg)
const transform = translateResult[0] + ' ' + 'perspective(' + this.config.perspective + 'px)' + ' ' + rotateResult[0]
dom.style.transform = transform
}
}
},
mounted () {
@ -346,6 +302,13 @@ export default {
const seriesFieldList = [...new Set(data.map(item => item[seriesField]))]
option.series = []
const barWidth = option.seriesCustom.barWidth
//
let labelShow = 0
config.setting.forEach(set => {
if (set.field === 'series_barColor_label_show') {
labelShow = set.value
}
})
//
const offsetArr = []
let index = 0
@ -391,8 +354,7 @@ export default {
barWidth: barWidth,
color: '#115ba6',
label: {
show: false
show: labelShow
},
zlevel: 2,
z: 12,

@ -44,7 +44,9 @@ function getPlotList (files) {
rotateX: config.rotateX || 0,
rotateY: config.rotateY || 0,
rotateZ: config.rotateZ || 0,
perspective: config.perspective || 500,
perspective: config.perspective || 0,
skewX: config.skewX || 0,
skewY: config.skewY || 0,
type: 'customComponent',
chartType: config.chartType,
loading: false,

@ -1,4 +1,4 @@
import fontList from 'data-room-ui/js/utils/fontList'
// 配置版本号
const version = '2023092201'
// 分类
@ -87,6 +87,21 @@ const setting = [
tabName: 'custom',
groupName: 'graph'
},
{
label: '指标字体类型',
// 设置组件类型
type: 'select',
// 字段
field: 'statistic_title_style_fontFamily',
// 对应options中的字段
optionField: 'statistic.title.style.fontFamily',
// 是否多选
multiple: false,
value: '',
tabName: 'custom',
options: fontList,
groupName: 'graph'
},
{
label: '标签内容',
// 设置组件类型
@ -174,6 +189,7 @@ const option = {
style: {
fontSize: 20,
lineHeight: 2,
fontFamily: '',
color: '#d0d0d0'
},
formatter: ({ percent }) => `${(percent * 100).toFixed(0)}%`

@ -1,4 +1,4 @@
import fontList from 'data-room-ui/js/utils/fontList'
// 配置版本号
const version = '2023092201'
// 分类
@ -92,6 +92,21 @@ const setting = [
tabName: 'custom',
groupName: 'graph'
},
{
label: '字体类型',
// 设置组件类型
type: 'select',
// 字段
field: 'statistic_content_style_fontFamily',
// 对应options中的字段
optionField: 'statistic.content.style.fontFamily',
// 是否多选
multiple: false,
value: '',
tabName: 'custom',
options: fontList,
groupName: 'graph'
},
{
label: '边框宽度',
// 设置组件类型
@ -136,7 +151,7 @@ const setting = [
value: '#598BF2',
tabName: 'custom',
groupName: 'graph'
},
}
]
const data = [
@ -187,7 +202,8 @@ const option = {
style: {
fontSize: 20,
lineHeight: 1,
fill: '#d0d0d0'
fill: '#d0d0d0',
fontFamily: ''
}
}
}

@ -1,4 +1,4 @@
import fontList from 'data-room-ui/js/utils/fontList'
// 配置版本号
const version = '2023092201'
// 分类
@ -92,6 +92,21 @@ const setting = [
tabName: 'custom',
groupName: 'graph'
},
{
label: '字体类型',
// 设置组件类型
type: 'select',
// 字段
field: 'statistic_content_style_fontFamily',
// 对应options中的字段
optionField: 'statistic.content.style.fontFamily',
// 是否多选
multiple: false,
value: '',
tabName: 'custom',
options: fontList,
groupName: 'graph'
},
{
label: '边框宽度',
// 设置组件类型
@ -173,6 +188,7 @@ const option = {
style: {
fontSize: 20,
lineHeight: 1,
fontFamily: '',
fill: '#d0d0d0'
}
}

@ -1,4 +1,4 @@
import fontList from 'data-room-ui/js/utils/fontList'
// 配置版本号
const version = '2023092201'
// 分类
@ -63,6 +63,21 @@ const setting = [
tabName: 'custom',
groupName: 'graph'
},
{
label: '指标字体类型',
// 设置组件类型
type: 'select',
// 字段
field: 'statistic_title_style_fontFamily',
// 对应options中的字段
optionField: 'statistic.title.style.fontFamily',
// 是否多选
multiple: false,
value: '',
tabName: 'custom',
options: fontList,
groupName: 'graph'
},
{
label: '指标位置',
// 设置组件类型
@ -140,6 +155,7 @@ const option = {
style: {
fontSize: 20,
lineHeight: 2,
fontFamily: '',
color: '#d0d0d0'
},
formatter: ({ percent }) => `${(percent * 100).toFixed(0)}%`

@ -1,3 +1,4 @@
import fontList from 'data-room-ui/js/utils/fontList'
// 配置版本号
const version = '2023092201'
// 分类
@ -123,6 +124,21 @@ const setting = [
tabName: 'custom',
groupName: 'graph'
},
{
label: '指标字体类型',
// 设置组件类型
type: 'select',
// 字段
field: 'statistic_content_style_fontFamily',
// 对应options中的字段
optionField: 'statistic.content.style.fontFamily',
// 是否多选
multiple: false,
value: '',
tabName: 'custom',
options: fontList,
groupName: 'graph'
},
{
label: '指标位置',
// 设置组件类型
@ -169,7 +185,7 @@ const option = {
// offsetY: 0
// },
content: {
style: { fill: '#fafafa', fontSize: 28, lineHeight: 2 },
style: { fill: '#fafafa', fontSize: 28, fontFamily: '', lineHeight: 2 },
offsetY: 0
}
}

@ -1,3 +1,4 @@
import fontList from 'data-room-ui/js/utils/fontList'
// 配置版本号
const version = '2023092201'
// 分类
@ -123,6 +124,21 @@ const setting = [
tabName: 'custom',
groupName: 'graph'
},
{
label: '指标字体类型',
// 设置组件类型
type: 'select',
// 字段
field: 'statistic_content_style_fontFamily',
// 对应options中的字段
optionField: 'statistic.content.style.fontFamily',
// 是否多选
multiple: false,
value: '',
tabName: 'custom',
options: fontList,
groupName: 'graph'
},
{
label: '指标位置',
// 设置组件类型
@ -169,7 +185,7 @@ const option = {
offsetY: 0
},
content: {
style: { fill: '#fafafa', fontSize: 28, lineHeight: 2 },
style: { fill: '#fafafa', fontSize: 28, fontFamily: '', lineHeight: 2 },
offsetY: 0
}
}

@ -1,4 +1,4 @@
import fontList from 'data-room-ui/js/utils/fontList'
// 配置版本号
const version = '2023092201'
// 分类
@ -92,6 +92,21 @@ const setting = [
tabName: 'custom',
groupName: 'graph'
},
{
label: '字体类型',
// 设置组件类型
type: 'select',
// 字段
field: 'statistic_content_style_fontFamily',
// 对应options中的字段
optionField: 'statistic.content.style.fontFamily',
// 是否多选
multiple: false,
value: '',
tabName: 'custom',
options: fontList,
groupName: 'graph'
},
{
label: '边框宽度',
// 设置组件类型
@ -171,6 +186,7 @@ const option = {
style: {
fontSize: 20,
lineHeight: 1,
fontFamily: '',
fill: '#d0d0d0'
}
}

@ -1,4 +1,4 @@
import fontList from 'data-room-ui/js/utils/fontList'
// 配置版本号
const version = '2023092501'
// 分类
@ -200,6 +200,21 @@ const setting = [
tabName: 'custom',
groupName: 'graph'
},
{
label: '副标题字体类型',
// 设置组件类型
type: 'select',
// 字段
field: 'statistic_content_style_fontFamily',
// 对应options中的字段
optionField: 'statistic.content.style.fontFamily',
// 是否多选
multiple: false,
value: '',
tabName: 'custom',
options: fontList,
groupName: 'graph'
},
{
label: '外环半径',
// 设置组件类型
@ -367,6 +382,7 @@ const option = {
lineHeight: 2,
overflow: 'hidden',
textOverflow: 'ellipsis',
fontFamily: '',
color: '#d0d0d0',
fontSize: 30
}

@ -43,6 +43,8 @@ export function getRemoteComponents (comList) {
rotateY: config.rotateY || 0,
rotateZ: config.rotateZ || 0,
perspective: config.perspective || 500,
skewX: config.skewX || 0,
skewY: config.skewY || 0,
type: 'remoteComponent',
option: {
...cloneDeep(settingConfig),
@ -78,7 +80,9 @@ export function getRemoteComponentConfig (code, name) {
rotateX: 0,
rotateY: 0,
rotateZ: 0,
perspective: 500,
perspective: 0,
skewX: 0,
skewY: 0,
type: 'remoteComponent',
option: {
...cloneDeep(settingConfig)

@ -38,7 +38,7 @@
:style="{
zIndex: chart.z || 0,
}"
:transform="`perspective(${chart.perspective == undefined ? 500 : chart.perspective}px) rotateX(${chart.rotateX == undefined ? 0 : chart.rotateX}deg) rotateY(${chart.rotateY == undefined ? 0 : chart.rotateY}deg) rotateZ(${chart.rotateZ == undefined ? 0 : chart.rotateZ}deg)`"
:transform="`perspective(${chart.perspective > 0? (chart.perspective + 'px') : 'none' }) rotateX(${chart.rotateX == undefined ? 0 : chart.rotateX}deg) rotateY(${chart.rotateY == undefined ? 0 : chart.rotateY}deg) rotateZ(${chart.rotateZ == undefined ? 0 : chart.rotateZ}deg) skew(${chart.skewX == undefined ? 0 : chart.skewX}deg, ${chart.skewY == undefined? 0 : chart.skewY}deg)`"
:grid="[1,1]"
:handles="handlesList"
class-name-handle="bs-handle-class"

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save