Compare commits
No commits in common. "3a4bc50d2bb83010e27a85520c041249ce0e1960" and "046e045178d1df15a75b753d0038952df826191a" have entirely different histories.
3a4bc50d2b
...
046e045178
@ -94,7 +94,7 @@ const { wsCache } = useCache('localStorage')
|
|||||||
const userStore = useUserStoreWithOut()
|
const userStore = useUserStoreWithOut()
|
||||||
const isIframe = computed(() => appStore.getIsIframe)
|
const isIframe = computed(() => appStore.getIsIframe)
|
||||||
const desktop = wsCache.get('app.desktop')
|
const desktop = wsCache.get('app.desktop')
|
||||||
const emits = defineEmits(['recoverToPublished','saveAsTemplate'])
|
const emits = defineEmits(['recoverToPublished'])
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
createType: {
|
createType: {
|
||||||
@ -262,7 +262,7 @@ const saveResource = (checkParams?) => {
|
|||||||
canvasSaveWithParams(checkParams, () => {
|
canvasSaveWithParams(checkParams, () => {
|
||||||
snapshotStore.resetStyleChangeTimes()
|
snapshotStore.resetStyleChangeTimes()
|
||||||
let url = window.location.href
|
let url = window.location.href
|
||||||
url = url.replace(/(#\/[^?]*)(?:\?[^#]*)?/, `$1?resourceId=${dvInfo.value.id}&appId=${route.query.appId}`)
|
url = url.replace(/(#\/[^?]*)(?:\?[^#]*)?/, `$1?resourceId=${dvInfo.value.id}`)
|
||||||
if (!embeddedStore.baseUrl) {
|
if (!embeddedStore.baseUrl) {
|
||||||
window.history.replaceState(
|
window.history.replaceState(
|
||||||
{
|
{
|
||||||
@ -524,7 +524,7 @@ const initOpenHandler = newWindow => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function saveas(){
|
function saveas(){
|
||||||
emits('saveAsTemplate')
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -661,7 +661,7 @@ function saveas(){
|
|||||||
type="primary">
|
type="primary">
|
||||||
{{ t('data_set.edit') }}
|
{{ t('data_set.edit') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- <el-button class="savebtn" type="primary" @click="saveas">另存为</el-button> -->
|
<el-button class="savebtn" type="primary" @click="saveas">另存为</el-button>
|
||||||
<el-button v-if="editMode === 'edit' || editMode === 'preview'" :disabled="styleChangeTimes < 1"
|
<el-button v-if="editMode === 'edit' || editMode === 'preview'" :disabled="styleChangeTimes < 1"
|
||||||
@click="saveCanvasWithCheck()" style="float: right; margin-right: 12px" type="primary" class="savebtn">
|
@click="saveCanvasWithCheck()" style="float: right; margin-right: 12px" type="primary" class="savebtn">
|
||||||
{{ t('data_set.save') }}
|
{{ t('data_set.save') }}
|
||||||
|
@ -105,7 +105,7 @@ const onImgChange = imgUrl => {
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
.m-label {
|
.m-label {
|
||||||
color: #ffffff;
|
color: #1f2329;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
@ -185,9 +185,7 @@ onUnmounted(() => {
|
|||||||
:deep(.ed-input-number--dark:not(.is-disabled) .ed-input-number__increase:not(.is-disabled)) {
|
:deep(.ed-input-number--dark:not(.is-disabled) .ed-input-number__increase:not(.is-disabled)) {
|
||||||
background-color: #1a1a1a;
|
background-color: #1a1a1a;
|
||||||
}
|
}
|
||||||
:deep(.ed-input-number__increase){
|
|
||||||
background-color: #1a1a1a !important;
|
|
||||||
}
|
|
||||||
.custom-divider_scale {
|
.custom-divider_scale {
|
||||||
height: 18px;
|
height: 18px;
|
||||||
border-color: #ffffff26;
|
border-color: #ffffff26;
|
||||||
@ -206,7 +204,7 @@ onUnmounted(() => {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
content: '%';
|
content: '%';
|
||||||
right: 35px;
|
right: 35px;
|
||||||
top: -1px;
|
top: 1px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
}
|
}
|
||||||
|
@ -184,7 +184,7 @@ const saveResource = (checkParams?) => {
|
|||||||
snapshotStore.resetStyleChangeTimes()
|
snapshotStore.resetStyleChangeTimes()
|
||||||
wsCache.delete('DE-DV-CATCH-' + dvInfo.value.id)
|
wsCache.delete('DE-DV-CATCH-' + dvInfo.value.id)
|
||||||
let url = window.location.href
|
let url = window.location.href
|
||||||
url = url.replace(/(#\/[^?]*)(?:\?[^#]*)?/,`$1?dvId=${dvInfo.value.id}&appId=${route.query.appId}`)
|
url = url.replace(/(#\/[^?]*)(?:\?[^#]*)?/, `$1?dvId=${dvInfo.value.id}`)
|
||||||
if (!embeddedStore.baseUrl) {
|
if (!embeddedStore.baseUrl) {
|
||||||
window.history.replaceState(
|
window.history.replaceState(
|
||||||
{
|
{
|
||||||
|
@ -115,7 +115,7 @@ defineExpose({
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
.m-label {
|
.m-label {
|
||||||
color: #ffffff;
|
color: #1f2329;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
@ -125,22 +125,39 @@ const onComponentNameChange = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div @keyup.stop @keydown.stop class="dv-aside"
|
<div
|
||||||
:class="['aside-' + asidePosition + '-' + themeInfo, 'aside-area-' + themeInfo]" :style="slideStyle">
|
@keyup.stop
|
||||||
|
@keydown.stop
|
||||||
|
class="dv-aside"
|
||||||
|
:class="['aside-' + asidePosition + '-' + themeInfo, 'aside-area-' + themeInfo]"
|
||||||
|
:style="slideStyle"
|
||||||
|
>
|
||||||
<el-row align="middle" :class="'title-' + themeInfo" justify="space-between">
|
<el-row align="middle" :class="'title-' + themeInfo" justify="space-between">
|
||||||
<div :id="'attr-slide-component-name' + slideIndex" v-if="!canvasCollapse[sideName]" class="name-area-attr"
|
<div
|
||||||
|
:id="'attr-slide-component-name' + slideIndex"
|
||||||
|
v-if="!canvasCollapse[sideName]"
|
||||||
|
class="name-area-attr"
|
||||||
style="max-width: 180px; text-overflow: ellipsis; white-space: nowrap"
|
style="max-width: 180px; text-overflow: ellipsis; white-space: nowrap"
|
||||||
:style="{ width: componentNameEdit ? '300px' : 'auto' }"
|
:style="{ width: componentNameEdit ? '300px' : 'auto' }"
|
||||||
:class="{ 'component-name-dark': themeInfo === 'dark' }" @dblclick="editComponentName">
|
:class="{ 'component-name-dark': themeInfo === 'dark' }"
|
||||||
|
@dblclick="editComponentName"
|
||||||
|
>
|
||||||
{{ isViewTitle ? view.title : title }}
|
{{ isViewTitle ? view.title : title }}
|
||||||
<el-popover show-arrow :offset="8" :effect="themes" placement="bottom" width="200" trigger="click">
|
<el-popover
|
||||||
|
show-arrow
|
||||||
|
:offset="8"
|
||||||
|
:effect="themes"
|
||||||
|
placement="bottom"
|
||||||
|
width="200"
|
||||||
|
trigger="click"
|
||||||
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<span>
|
<span>
|
||||||
<el-icon v-show="element && element['id']" style="margin: 2px 0 0 4px; cursor: pointer">
|
<el-icon
|
||||||
<Icon>
|
v-show="element && element['id']"
|
||||||
<dvInfoSvg class="svg-icon" />
|
style="margin: 2px 0 0 4px; cursor: pointer"
|
||||||
</Icon>
|
><Icon><dvInfoSvg class="svg-icon" /></Icon
|
||||||
</el-icon>
|
></el-icon>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
<div style="margin-bottom: 4px; font-size: 14px">
|
<div style="margin-bottom: 4px; font-size: 14px">
|
||||||
@ -151,12 +168,18 @@ const onComponentNameChange = () => {
|
|||||||
</div>
|
</div>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
<el-icon :title="title" :class="['custom-icon-' + themeInfo, 'collapse-icon-' + themeInfo]" size="20px"
|
<el-icon
|
||||||
@click="collapseChange">
|
:title="title"
|
||||||
<Expand v-if="
|
:class="['custom-icon-' + themeInfo, 'collapse-icon-' + themeInfo]"
|
||||||
|
size="20px"
|
||||||
|
@click="collapseChange"
|
||||||
|
>
|
||||||
|
<Expand
|
||||||
|
v-if="
|
||||||
(canvasCollapse[sideName] && asidePosition === 'left') ||
|
(canvasCollapse[sideName] && asidePosition === 'left') ||
|
||||||
(!canvasCollapse[sideName] && asidePosition === 'right')
|
(!canvasCollapse[sideName] && asidePosition === 'right')
|
||||||
" />
|
"
|
||||||
|
/>
|
||||||
<Fold v-else />
|
<Fold v-else />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -169,8 +192,14 @@ const onComponentNameChange = () => {
|
|||||||
<span>{{ title }}</span>
|
<span>{{ title }}</span>
|
||||||
</div>
|
</div>
|
||||||
<Teleport v-if="componentNameEdit" :to="'#attr-slide-component-name' + slideIndex">
|
<Teleport v-if="componentNameEdit" :to="'#attr-slide-component-name' + slideIndex">
|
||||||
<input ref="componentNameInputAttr" v-model="inputComponentName.name" width="100%" :effect="themeInfo"
|
<input
|
||||||
@change="onComponentNameChange" @blur="closeEditComponentName" />
|
ref="componentNameInputAttr"
|
||||||
|
v-model="inputComponentName.name"
|
||||||
|
width="100%"
|
||||||
|
:effect="themeInfo"
|
||||||
|
@change="onComponentNameChange"
|
||||||
|
@blur="closeEditComponentName"
|
||||||
|
/>
|
||||||
</Teleport>
|
</Teleport>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -183,17 +212,14 @@ const onComponentNameChange = () => {
|
|||||||
|
|
||||||
.aside-area-light {
|
.aside-area-light {
|
||||||
color: #ebebeb;
|
color: #ebebeb;
|
||||||
background-color: #1a1a1a !important;
|
background-color: #1a1a1a;
|
||||||
|
|
||||||
:deep(.title) {
|
:deep(.title) {
|
||||||
border-bottom: rgba(255, 255, 255, 0.15) 1px solid !important;
|
border-bottom: rgba(255, 255, 255, 0.15) 1px solid !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dv-aside {
|
.dv-aside {
|
||||||
position: relative;
|
position: relative;
|
||||||
transition: 0.5s;
|
transition: 0.5s;
|
||||||
|
|
||||||
.title-dark {
|
.title-dark {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@ -204,7 +230,6 @@ const onComponentNameChange = () => {
|
|||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
padding: 8px 10px 8px 8px;
|
padding: 8px 10px 8px 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-light {
|
.title-light {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@ -215,7 +240,6 @@ const onComponentNameChange = () => {
|
|||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
padding: 8px 10px 8px 8px;
|
padding: 8px 10px 8px 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.collapse-title {
|
.collapse-title {
|
||||||
width: 35px;
|
width: 35px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@ -223,18 +247,15 @@ const onComponentNameChange = () => {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
writing-mode: vertical-rl;
|
writing-mode: vertical-rl;
|
||||||
text-orientation: mixed;
|
text-orientation: mixed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
height: calc(100% - 45px);
|
height: calc(100% - 45px);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-icon {
|
.custom-icon {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 5px;
|
right: 5px;
|
||||||
@ -250,11 +271,9 @@ const onComponentNameChange = () => {
|
|||||||
width: var(--de-scroll-width);
|
width: var(--de-scroll-width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.aside-left-dark {
|
.aside-left-dark {
|
||||||
border-right: @side-outline-border-color 1px solid;
|
border-right: @side-outline-border-color 1px solid;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aside-right-dark {
|
.aside-right-dark {
|
||||||
border-left: @side-outline-border-color 1px solid;
|
border-left: @side-outline-border-color 1px solid;
|
||||||
}
|
}
|
||||||
@ -262,23 +281,18 @@ const onComponentNameChange = () => {
|
|||||||
.aside-left-light {
|
.aside-left-light {
|
||||||
border-right: @side-outline-border-color-light 1px solid;
|
border-right: @side-outline-border-color-light 1px solid;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aside-right-light {
|
.aside-right-light {
|
||||||
border-left: @side-outline-border-color-light 1px solid;
|
border-left: @side-outline-border-color-light 1px solid;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse {
|
.ed-collapse {
|
||||||
border-top: 0;
|
border-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.ed-collapse) {
|
:deep(.ed-collapse) {
|
||||||
border-top: unset;
|
border-top: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.ed-collapse-item__header.is-active) {
|
:deep(.ed-collapse-item__header.is-active) {
|
||||||
border-bottom-color: rgba(31, 35, 41, 0.15);
|
border-bottom-color: rgba(31, 35, 41, 0.15);
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.ed-collapse-item.ed-collapse--dark .ed-collapse-item__header) {
|
:deep(.ed-collapse-item.ed-collapse--dark .ed-collapse-item__header) {
|
||||||
border-color: rgba(255, 255, 255, 0.15);
|
border-color: rgba(255, 255, 255, 0.15);
|
||||||
border-top: unset;
|
border-top: unset;
|
||||||
@ -307,7 +321,6 @@ const onComponentNameChange = () => {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
input {
|
input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
@ -333,8 +346,9 @@ const onComponentNameChange = () => {
|
|||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
.ed-icon{
|
||||||
|
|
||||||
.ed-icon {}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style>
|
<style>
|
||||||
@ -343,377 +357,198 @@ const onComponentNameChange = () => {
|
|||||||
background: rgba(41, 41, 41, 1) !important;
|
background: rgba(41, 41, 41, 1) !important;
|
||||||
color: #ffffff ;
|
color: #ffffff ;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-popper[data-popper-placement^=bottom] .ed-popper__arrow::before {
|
.ed-popper[data-popper-placement^=bottom] .ed-popper__arrow::before {
|
||||||
background: rgba(41, 41, 41, 1) !important;
|
background: rgba(41, 41, 41, 1) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-popover.ed-popper{
|
.ed-popover.ed-popper{
|
||||||
background: rgba(41, 41, 41, 1) !important;
|
background: rgba(41, 41, 41, 1) !important;
|
||||||
border: 1px solid #434343 !important;
|
border: 1px solid #434343 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item.ed-collapse--light .ed-collapse-item__header{
|
.ed-collapse-item.ed-collapse--light .ed-collapse-item__header{
|
||||||
background-color: #1a1a1a;
|
background-color: #1a1a1a;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__header{
|
.ed-collapse-item__header{
|
||||||
color: #EBEBEB !important;
|
|
||||||
background-color: #1a1a1a !important;
|
|
||||||
border-bottom: 1px solid rgba(255,255,255,0.15) !important;
|
border-bottom: 1px solid rgba(255,255,255,0.15) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item--light .ed-collapse-item__wrap {
|
|
||||||
border-bottom: none;
|
|
||||||
background: #292929;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-collapse-item__wrap{
|
.ed-collapse-item__wrap{
|
||||||
background-color: #292929;
|
background-color: #292929;
|
||||||
border-bottom: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-form--default.ed-form--label-top .ed-form-item .ed-form-item__label{
|
.ed-collapse-item__wrap .ed-form--default.ed-form--label-top .ed-form-item .ed-form-item__label{
|
||||||
color: #a6a6a6;
|
color: #a6a6a6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-radio .ed-radio__label{
|
.ed-collapse-item__wrap .ed-radio .ed-radio__label{
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-radio .ed-radio__input.is-checked + .ed-radio__label{
|
.ed-collapse-item__wrap .ed-radio .ed-radio__input.is-checked + .ed-radio__label{
|
||||||
color: #0089ff !important;
|
color: #0089ff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-input.is-disabled .ed-input__wrapper{
|
.ed-collapse-item__wrap .ed-input.is-disabled .ed-input__wrapper{
|
||||||
background-color: #373737;
|
background-color: #373737;
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-input--light .ed-input-group__append .ed-select.ed-select--disabled .ed-input__wrapper {
|
.ed-collapse-item__wrap .ed-input--light .ed-input-group__append .ed-select.ed-select--disabled .ed-input__wrapper {
|
||||||
background: #373737 !important;
|
background: #373737 !important;
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
border-color:#636363 !important;
|
border-color:#636363 !important;
|
||||||
border-left: none !important;
|
border-left: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-input--dark .ed-input-group__append .ed-select .ed-input__wrapper {
|
.ed-collapse-item__wrap .ed-input--dark .ed-input-group__append .ed-select .ed-input__wrapper {
|
||||||
background: #373737 !important;
|
background: #373737 !important;
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
border-color:#636363 !important;
|
border-color:#636363 !important;
|
||||||
border-left: none !important;
|
border-left: none !important;
|
||||||
}
|
}
|
||||||
|
.ed-collapse-item__wrap .ed-input-group__append, .ed-input-group__prepend{
|
||||||
.ed-collapse-item__wrap .ed-input-group__append,
|
|
||||||
.ed-input-group__prepend {
|
|
||||||
background: #373737 !important;
|
background: #373737 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-input-group--append .ed-input-group__append .ed-select:not(.ed-select--disabled) .ed-input .ed-input__wrapper{
|
.ed-collapse-item__wrap .ed-input-group--append .ed-input-group__append .ed-select:not(.ed-select--disabled) .ed-input .ed-input__wrapper{
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
border:1px solid #636363 !important;
|
border:1px solid #636363 !important;
|
||||||
border-left: none !important;
|
border-left: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .image-hint{
|
.ed-collapse-item__wrap .image-hint{
|
||||||
color:#757575 !important;
|
color:#757575 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .avatar-uploader .ed-upload--picture-card {
|
.ed-collapse-item__wrap .avatar-uploader .ed-upload--picture-card {
|
||||||
background: #373737 !important;
|
background: #373737 !important;
|
||||||
border: 1px dashed #373737 !important;
|
border: 1px dashed #373737 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .indented-container .indented-item.disabled .img-area_light .ed-upload--picture-card .ed-icon {
|
.ed-collapse-item__wrap .indented-container .indented-item.disabled .img-area_light .ed-upload--picture-card .ed-icon {
|
||||||
color: #5f5f5f !important;
|
color: #5f5f5f !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .avatar-uploader .ed-upload--picture-card .ed-icon{
|
.ed-collapse-item__wrap .avatar-uploader .ed-upload--picture-card .ed-icon{
|
||||||
color: #ebebeb !important;
|
color: #ebebeb !important;
|
||||||
}
|
}
|
||||||
|
.ed-collapse-item__wrap .ed-input-number__decrease, .ed-input-number__increase{
|
||||||
.ed-collapse-item__wrap .ed-input-number__decrease,
|
|
||||||
.ed-input-number__increase {
|
|
||||||
background-color: #434343 !important;
|
background-color: #434343 !important;
|
||||||
color:#ffffff !important;
|
color:#ffffff !important;
|
||||||
}
|
}
|
||||||
|
.ed-input-number__decrease, .ed-input-number__increase{
|
||||||
.ed-input-number__decrease,
|
|
||||||
.ed-input-number__increase {
|
|
||||||
color:#ffffff !important;
|
color:#ffffff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-input-number.is-controls-right .ed-input-number__increase{
|
.ed-collapse-item__wrap .ed-input-number.is-controls-right .ed-input-number__increase{
|
||||||
border-bottom: 1px solid #434343 !important;
|
border-bottom: 1px solid #434343 !important;
|
||||||
border-left: 1px solid #5f5f5f !important;
|
border-left: 1px solid #5f5f5f !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-input-number.is-controls-right .ed-input-number__decrease{
|
.ed-collapse-item__wrap .ed-input-number.is-controls-right .ed-input-number__decrease{
|
||||||
border-left: 1px solid #5f5f5f !important;
|
border-left: 1px solid #5f5f5f !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-input.is-disabled .ed-select__prefix--light{
|
.ed-collapse-item__wrap .ed-input.is-disabled .ed-select__prefix--light{
|
||||||
border-color: #5f5f5f;
|
border-color: #5f5f5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-color-picker.is-custom.is-disabled .ed-color-picker__trigger{
|
.ed-collapse-item__wrap .ed-color-picker.is-custom.is-disabled .ed-color-picker__trigger{
|
||||||
border-color: #5f5f5f;
|
border-color: #5f5f5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-select .ed-input.is-disabled:not(.ed-input--dark) .ed-input__wrapper:hover{
|
.ed-collapse-item__wrap .ed-select .ed-input.is-disabled:not(.ed-input--dark) .ed-input__wrapper:hover{
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .custom-color-setting-btn{
|
.ed-collapse-item__wrap .custom-color-setting-btn{
|
||||||
border: 1px solid #5f5f5f !important;
|
border: 1px solid #5f5f5f !important;
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-form-item__label{
|
.ed-collapse-item__wrap .ed-form-item__label{
|
||||||
color: #A6A6A6 !important;
|
color: #A6A6A6 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .custom-color-extend-setting{
|
.ed-collapse-item__wrap .custom-color-extend-setting{
|
||||||
color: #A6A6A6 !important;
|
color: #A6A6A6 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item.ed-collapse--light .ed-collapse-item__content{
|
.ed-collapse-item.ed-collapse--light .ed-collapse-item__content{
|
||||||
color: #A6A6A6 ;
|
color: #A6A6A6 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__content {
|
|
||||||
background-color: #292929 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-collapse-item__wrap .m-divider{
|
.ed-collapse-item__wrap .m-divider{
|
||||||
border-color: rgba(233, 236, 241, 0.15) !important;
|
border-color: rgba(233, 236, 241, 0.15) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .icon-btn{
|
.ed-collapse-item__wrap .icon-btn{
|
||||||
color: #ffffff !important;
|
color: #ffffff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .icon-btn.active{
|
.ed-collapse-item__wrap .icon-btn.active{
|
||||||
color: #0089ff !important;
|
color: #0089ff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .color-button-outer{
|
.ed-collapse-item__wrap .color-button-outer{
|
||||||
border-color: rgba(233, 236, 241, 0.15) !important;
|
border-color: rgba(233, 236, 241, 0.15) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .text-area{
|
.ed-collapse-item__wrap .text-area{
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-radio__input.is-disabled.is-checked .ed-radio__inner {
|
.ed-collapse-item__wrap .ed-radio__input.is-disabled.is-checked .ed-radio__inner {
|
||||||
background-color: #5f5f5f;
|
background-color: #5f5f5f;
|
||||||
border: 1px solid #5f5f5f;
|
border: 1px solid #5f5f5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-radio__input.is-disabled.is-checked .ed-radio__inner::after {
|
.ed-collapse-item__wrap .ed-radio__input.is-disabled.is-checked .ed-radio__inner::after {
|
||||||
background-color: #212121;
|
background-color: #212121;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-collapse-item__wrap .ed-radio .ed-radio__input.is-disabled.is-checked + .ed-radio__label {
|
.ed-collapse-item__wrap .ed-radio .ed-radio__input.is-disabled.is-checked + .ed-radio__label {
|
||||||
color: #bbbfc4 !important;
|
color: #bbbfc4 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-light .editor-title{
|
.editor-light .editor-title{
|
||||||
color: #ebebeb;
|
color: #ebebeb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-dark {
|
.editor-dark {
|
||||||
border-left: solid 1px rgba(235, 235, 235, 0.15) !important;
|
border-left: solid 1px rgba(235, 235, 235, 0.15) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-area {
|
.content-area {
|
||||||
border-left: solid 1px rgba(235, 235, 235, 0.15) !important;
|
border-left: solid 1px rgba(235, 235, 235, 0.15) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-light .dataset-main {
|
.editor-light .dataset-main {
|
||||||
border-left: 1px solid rgba(235, 235, 235, 0.15) !important;
|
border-left: 1px solid rgba(235, 235, 235, 0.15) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.collapse-title{
|
.collapse-title{
|
||||||
color: #ebebeb !important;
|
color: #ebebeb !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-light .ed-tabs__header {
|
.editor-light .ed-tabs__header {
|
||||||
border-top: 1px solid #363636 !important;
|
border-top: 1px solid #363636 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.de-chart-editor .tab-header .ed-tabs__nav-wrap::after{
|
.de-chart-editor .tab-header .ed-tabs__nav-wrap::after{
|
||||||
background-color: rgba(235, 235, 235, 0.15) !important;
|
background-color: rgba(235, 235, 235, 0.15) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.de-chart-editor .tab-header .ed-tabs__item{
|
.de-chart-editor .tab-header .ed-tabs__item{
|
||||||
color: #A6A6A6 !important;
|
color: #A6A6A6 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.de-chart-editor .drag-block-style{
|
.de-chart-editor .drag-block-style{
|
||||||
border: 1px dashed #5f5f5f !important;
|
border: 1px dashed #5f5f5f !important;
|
||||||
background-color: rgba(235, 235, 235, 0.05) !important;
|
background-color: rgba(235, 235, 235, 0.05) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-light .item-span-style{
|
.editor-light .item-span-style{
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-input--dark .ed-input__wrapper {
|
.ed-input--dark .ed-input__wrapper {
|
||||||
background-color: #292929;
|
background-color: #292929;
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-loading-mask{
|
.el-loading-mask{
|
||||||
background-color: rgba(33,33,33, 0.9) !important;
|
background-color: rgba(33,33,33, 0.9) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-input--dark .ed-input__wrapper:hover{
|
.ed-input--dark .ed-input__wrapper:hover{
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
.ed-input-number--dark:not(.is-disabled) .ed-input-number__decrease:not(.is-disabled):hover~.ed-input:not(.is-disabled) .ed-input__wrapper, .ed-input-number--dark:not(.is-disabled) .ed-input-number__increase:not(.is-disabled):hover~.ed-input:not(.is-disabled) .ed-input__wrapper{
|
||||||
.ed-input-number--dark:not(.is-disabled) .ed-input-number__decrease:not(.is-disabled):hover~.ed-input:not(.is-disabled) .ed-input__wrapper,
|
|
||||||
.ed-input-number--dark:not(.is-disabled) .ed-input-number__increase:not(.is-disabled):hover~.ed-input:not(.is-disabled) .ed-input__wrapper {
|
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
border: 1px solid #0089ff !important;
|
border: 1px solid #0089ff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-input__wrapper.is-focus {
|
.ed-input__wrapper.is-focus {
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-input__wrapper:hover {
|
.ed-input__wrapper:hover {
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-input__wrapper{
|
.ed-input__wrapper{
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
.ed-input-number--light:not(.is-disabled).is-controls-right .ed-input-number__decrease:not(.is-disabled):hover~.ed-input:not(.is-disabled) .ed-input__wrapper, .ed-input-number--light:not(.is-disabled).is-controls-right .ed-input-number__increase:not(.is-disabled):hover~.ed-input:not(.is-disabled) .ed-input__wrapper{
|
||||||
.ed-input-number--light:not(.is-disabled).is-controls-right .ed-input-number__decrease:not(.is-disabled):hover~.ed-input:not(.is-disabled) .ed-input__wrapper,
|
|
||||||
.ed-input-number--light:not(.is-disabled).is-controls-right .ed-input-number__increase:not(.is-disabled):hover~.ed-input:not(.is-disabled) .ed-input__wrapper {
|
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
border: 1px solid #0089ff !important;
|
border: 1px solid #0089ff !important;
|
||||||
}
|
}
|
||||||
|
.ed-input-number--light .ed-input-number__decrease.is-disabled .ed-icon, .ed-input-number--light .ed-input-number__increase.is-disabled .ed-icon {
|
||||||
.ed-input-number--light .ed-input-number__decrease.is-disabled .ed-icon,
|
|
||||||
.ed-input-number--light .ed-input-number__increase.is-disabled .ed-icon {
|
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
.ed-input-number__decrease:hover, .ed-input-number__increase:hover {
|
||||||
.ed-input-number__decrease:hover,
|
|
||||||
.ed-input-number__increase:hover {
|
|
||||||
color: #0089ff !important;
|
color: #0089ff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-select .ed-input.is-disabled:not(.ed-input--dark) .ed-input__wrapper:hover{
|
.ed-select .ed-input.is-disabled:not(.ed-input--dark) .ed-input__wrapper:hover{
|
||||||
box-shadow: none !important;
|
box-shadow: none!important;;
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-checkbox:before{
|
.icon-checkbox:before{
|
||||||
content:''
|
content:''
|
||||||
}
|
}
|
||||||
|
|
||||||
.ed-select__wrapper {
|
|
||||||
background-color: transparent;
|
|
||||||
border: 1px solid #434343;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-select__placeholder {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-select__wrapper.is-focused,
|
|
||||||
.ed-select__wrapper.is-hovering:not(.is-focused):not(.is-disabled) {
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-select__popper.ed-popper {
|
|
||||||
background: rgb(41, 41, 41) !important;
|
|
||||||
color: #fff;
|
|
||||||
border: 1px solid #434343;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-select-dropdown__item.is-hovering {
|
|
||||||
background: #434343 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-select-dropdown__item {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-select-dropdown__footer {
|
|
||||||
padding: 5px 0px;
|
|
||||||
border-top: 1px solid #434343;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-input-group__append {
|
|
||||||
border-left: 0;
|
|
||||||
box-shadow: 0 1px 0 0 #636363 inset,
|
|
||||||
0 -1px 0 0 #636363 inset,
|
|
||||||
-1px 0 0 0 #636363 inset;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ed-input-group--append .ed-input-group__append .ed-select .ed-select__wrapper {
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
.ed-input.is-disabled .ed-input__wrapper{
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
.ed-color-picker.is-custom{
|
|
||||||
border:1px solid #636363 !important;
|
|
||||||
}
|
|
||||||
.ed-select__wrapper.is-disabled{
|
|
||||||
background-color:#434343;
|
|
||||||
box-shadow:0 0 0 1px #787878 inset;
|
|
||||||
}
|
|
||||||
.ed-checkbox__input .ed-checkbox__inner:after{
|
|
||||||
background: transparent!important;
|
|
||||||
}
|
|
||||||
.ed-checkbox__input.is-checked .ed-checkbox__inner:after{
|
|
||||||
background: #fff !important;
|
|
||||||
}
|
|
||||||
.ed-select--light .ed-select__prefix:after {
|
|
||||||
background-color: #434343;
|
|
||||||
}
|
|
||||||
.ed-select__wrapper.is-disabled .ed-select--light .ed-select__prefix:after {
|
|
||||||
background-color: #292929;
|
|
||||||
}
|
|
||||||
.ed-input-number.is-controls-right .ed-input-number__decrease [class*=ed-icon], .ed-input-number.is-controls-right .ed-input-number__increase [class*=ed-icon]{
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
.ed-input-number--light.is-disabled .ed-input-number__decrease.ed-input-number__decrease.ed-input-number__decrease, .ed-input-number--light.is-disabled .ed-input-number__increase.ed-input-number__increase.ed-input-number__increase{
|
|
||||||
border-color:#636363 !important;
|
|
||||||
}
|
|
||||||
.ed-checkbox__input.is-disabled .ed-checkbox__inner{
|
|
||||||
background-color:#434343;
|
|
||||||
border: 1px solid #787878;
|
|
||||||
}
|
|
||||||
.is-disabled .icon-btn.active{
|
|
||||||
background-color:#434343 !important;
|
|
||||||
}
|
|
||||||
.menu-item-padding span{
|
|
||||||
color: #fff !important;
|
|
||||||
}
|
|
||||||
.menu-item-padding .ed-icon{
|
|
||||||
color: #fff !important;
|
|
||||||
}
|
|
||||||
.ed-message-box{
|
|
||||||
background: #212121;
|
|
||||||
}
|
|
||||||
.ed-message-box__content{
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
.ed-message-box__btns .ed-button--primary{
|
|
||||||
background: #0089ff;
|
|
||||||
border-color: #0089ff;
|
|
||||||
}
|
|
||||||
.ed-message-box__btns .ed-button.is-secondary{
|
|
||||||
color: #F2F4F5 !important;
|
|
||||||
background-color: #212121 !important;
|
|
||||||
border: 1px solid #434343 !important;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -673,7 +673,7 @@ defineExpose({
|
|||||||
|
|
||||||
.preview {
|
.preview {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
border: 1px solid #434343;
|
border: 1px solid #e6e6e6;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
height: 470px !important;
|
height: 470px !important;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@ -681,7 +681,7 @@ defineExpose({
|
|||||||
}
|
}
|
||||||
|
|
||||||
.preview-show {
|
.preview-show {
|
||||||
border-left: 1px solid #434343;
|
border-left: 1px solid #e6e6e6;
|
||||||
height: 470px;
|
height: 470px;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
}
|
}
|
||||||
|
@ -785,7 +785,7 @@ defineExpose({
|
|||||||
|
|
||||||
.preview {
|
.preview {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
border: 1px solid #434343;
|
border: 1px solid #e6e6e6;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
height: 470px !important;
|
height: 470px !important;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@ -1100,7 +1100,6 @@ defineExpose({
|
|||||||
|
|
||||||
.ed-select-dropdown__header {
|
.ed-select-dropdown__header {
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
border-bottom: 1px solid #434343 !important;
|
|
||||||
.params-select--header {
|
.params-select--header {
|
||||||
--ed-tabs-header-height: 32px;
|
--ed-tabs-header-height: 32px;
|
||||||
.ed-tabs__item {
|
.ed-tabs__item {
|
||||||
@ -1115,7 +1114,7 @@ defineExpose({
|
|||||||
}
|
}
|
||||||
|
|
||||||
.params-attach-setting {
|
.params-attach-setting {
|
||||||
border-left: 1px solid #434343;
|
border-left: 1px solid #e6e6e6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.params-attach-content {
|
.params-attach-content {
|
||||||
@ -1136,7 +1135,7 @@ defineExpose({
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #646a73;
|
color: #646a73;
|
||||||
margin: 3px 0 0 4px;
|
margin: 10px 0 0 4px;
|
||||||
}
|
}
|
||||||
:deep(.ed-tree--highlight-current .ed-tree-node.is-current > .ed-tree-node__content){
|
:deep(.ed-tree--highlight-current .ed-tree-node.is-current > .ed-tree-node__content){
|
||||||
background: rgb(47,47,47) !important;
|
background: rgb(47,47,47) !important;
|
||||||
@ -1160,14 +1159,3 @@ box-shadow: 0 0 0 1px #434343 inset;
|
|||||||
color: #3370ff;
|
color: #3370ff;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style>
|
|
||||||
.root-class .ed-button{
|
|
||||||
color: #F2F4F5;
|
|
||||||
background-color: #212121 !important;
|
|
||||||
border: 1px solid #363636 !important;
|
|
||||||
}
|
|
||||||
.root-class .ed-button--primary{
|
|
||||||
background-color: #0089ff !important;
|
|
||||||
border: 1px solid #0089ff !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
@ -440,7 +440,7 @@ init()
|
|||||||
</el-button>
|
</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :style="{ marginTop: '16px', borderTop: '1px solid #656565' }">
|
<el-row :style="{ marginTop: '16px', borderTop: '1px solid #d5d6d8' }">
|
||||||
<el-row
|
<el-row
|
||||||
v-for="(item, index) in fieldItem.conditions"
|
v-for="(item, index) in fieldItem.conditions"
|
||||||
:key="index"
|
:key="index"
|
||||||
@ -914,9 +914,9 @@ span {
|
|||||||
padding: 0 11px;
|
padding: 0 11px;
|
||||||
}
|
}
|
||||||
:deep(.ed-input__wrapper){
|
:deep(.ed-input__wrapper){
|
||||||
background-color: #252424 !important;
|
background-color: #252424 ;
|
||||||
box-shadow: none !important;
|
box-shadow: none;
|
||||||
border: 1px solid #636363 !important;
|
border: 1px solid #636363;
|
||||||
}
|
}
|
||||||
:deep(.ed-input__inner){
|
:deep(.ed-input__inner){
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
@ -3521,7 +3521,7 @@ const deleteChartFieldItem = id => {
|
|||||||
<div
|
<div
|
||||||
ref="elDrag"
|
ref="elDrag"
|
||||||
v-loading="fieldLoading && !fullscreenFlag"
|
v-loading="fieldLoading && !fullscreenFlag"
|
||||||
style="height: calc(100% - 137px); min-height: 120px;margin-top: 10px;"
|
style="height: calc(100% - 137px); min-height: 120px"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="padding-lr field-height first right-dimension"
|
class="padding-lr field-height first right-dimension"
|
||||||
@ -4810,7 +4810,7 @@ span {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
color: #fff;
|
color: #1f2329;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
|
||||||
&.dark {
|
&.dark {
|
||||||
@ -5347,7 +5347,6 @@ span {
|
|||||||
color: #A6A6A6 !important;
|
color: #A6A6A6 !important;
|
||||||
}
|
}
|
||||||
.de-chart-editor .dataset-search-input .ed-input__wrapper{
|
.de-chart-editor .dataset-search-input .ed-input__wrapper{
|
||||||
border:none !important;
|
|
||||||
border-bottom: 1px solid hsla(0, 0%, 100%, 0.15) !important;
|
border-bottom: 1px solid hsla(0, 0%, 100%, 0.15) !important;
|
||||||
background-color: #1a1a1a !important;
|
background-color: #1a1a1a !important;
|
||||||
}
|
}
|
||||||
|
@ -823,6 +823,7 @@ const loadModelInternal = (loader, filePath) => {
|
|||||||
};
|
};
|
||||||
// 新增方法 - 根据经纬度放置模型
|
// 新增方法 - 根据经纬度放置模型
|
||||||
const placeModelByLngLat = (lng: number, lat: number) => {
|
const placeModelByLngLat = (lng: number, lat: number) => {
|
||||||
|
debugger
|
||||||
if (!model || !myChart?.getScene()) {
|
if (!model || !myChart?.getScene()) {
|
||||||
console.warn('模型或地图场景未初始化');
|
console.warn('模型或地图场景未初始化');
|
||||||
return;
|
return;
|
||||||
|
@ -246,14 +246,14 @@ defineExpose({
|
|||||||
|
|
||||||
.preview {
|
.preview {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
border: 1px solid #434343;
|
border: 1px solid #e6e6e6;
|
||||||
height: 310px !important;
|
height: 310px !important;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.preview-show {
|
.preview-show {
|
||||||
border-left: 1px solid #434343;
|
border-left: 1px solid #e6e6e6;
|
||||||
height: 310px;
|
height: 310px;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,6 @@ import eventBus from '@/utils/eventBus'
|
|||||||
import { useI18n } from '@/hooks/web/useI18n'
|
import { useI18n } from '@/hooks/web/useI18n'
|
||||||
import DashboardHiddenComponent from '@/components/dashboard/DashboardHiddenComponent.vue'
|
import DashboardHiddenComponent from '@/components/dashboard/DashboardHiddenComponent.vue'
|
||||||
import { recoverToPublished } from '@/api/visualization/dataVisualization'
|
import { recoverToPublished } from '@/api/visualization/dataVisualization'
|
||||||
import { download2AppTemplate } from '@/utils/imgUtils'
|
|
||||||
const embeddedStore = useEmbedded()
|
const embeddedStore = useEmbedded()
|
||||||
const { wsCache } = useCache()
|
const { wsCache } = useCache()
|
||||||
const canvasCacheOutRef = ref(null)
|
const canvasCacheOutRef = ref(null)
|
||||||
@ -227,18 +226,6 @@ onMounted(async () => {
|
|||||||
// do init
|
// do init
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (createType === 'template') {
|
|
||||||
let deTemplateData
|
|
||||||
let preName
|
|
||||||
const templateParamsApply = JSON.parse(Base64.decode(decodeURIComponent(templateParams + '')))
|
|
||||||
await decompressionPre(templateParamsApply, result => {
|
|
||||||
deTemplateData = result
|
|
||||||
preName = deTemplateData.baseInfo?.preName
|
|
||||||
dvMainStore.setComponentData(deTemplateData['componentData'])
|
|
||||||
dvMainStore.setCanvasStyle(deTemplateData['canvasStyleData'])
|
|
||||||
dvMainStore.setCanvasViewInfo(deTemplateData['canvasViewInfo'])
|
|
||||||
})
|
|
||||||
}
|
|
||||||
} else if (opt && opt === 'create') {
|
} else if (opt && opt === 'create') {
|
||||||
dataInitState.value = false
|
dataInitState.value = false
|
||||||
let watermarkBaseInfo
|
let watermarkBaseInfo
|
||||||
@ -338,12 +325,6 @@ onUnmounted(() => {
|
|||||||
window.removeEventListener('storage', eventCheck)
|
window.removeEventListener('storage', eventCheck)
|
||||||
window.removeEventListener('message', winMsgHandle)
|
window.removeEventListener('message', winMsgHandle)
|
||||||
})
|
})
|
||||||
// 另存为
|
|
||||||
function saveAsTemplate(){
|
|
||||||
const vueDom = document.querySelector('.template-canvas-main');
|
|
||||||
download2AppTemplate('template', vueDom, dvInfo.value.name, null, () => {
|
|
||||||
})
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -353,7 +334,7 @@ function saveAsTemplate(){
|
|||||||
v-loading="requestStore.loadingMap[permissionStore.currentPath]"
|
v-loading="requestStore.loadingMap[permissionStore.currentPath]"
|
||||||
v-if="loadFinish && !mobileConfig"
|
v-if="loadFinish && !mobileConfig"
|
||||||
>
|
>
|
||||||
<DbToolbar @recoverToPublished="doRecoverToPublished" @saveAsTemplate="saveAsTemplate" />
|
<DbToolbar @recoverToPublished="doRecoverToPublished" />
|
||||||
<el-container
|
<el-container
|
||||||
class="dv-layout-container"
|
class="dv-layout-container"
|
||||||
:class="{ 'preview-content': editMode === 'preview' }"
|
:class="{ 'preview-content': editMode === 'preview' }"
|
||||||
@ -365,7 +346,6 @@ function saveAsTemplate(){
|
|||||||
style="overflow-x: hidden"
|
style="overflow-x: hidden"
|
||||||
v-if="dataInitState"
|
v-if="dataInitState"
|
||||||
ref="deCanvasRef"
|
ref="deCanvasRef"
|
||||||
class="template-canvas-main"
|
|
||||||
:canvas-id="state.canvasId"
|
:canvas-id="state.canvasId"
|
||||||
:component-data="dashboardComponentData"
|
:component-data="dashboardComponentData"
|
||||||
:canvas-style-data="canvasStyleData"
|
:canvas-style-data="canvasStyleData"
|
||||||
|
@ -322,14 +322,14 @@ if (props.templateId) {
|
|||||||
}
|
}
|
||||||
.preview {
|
.preview {
|
||||||
margin-top: -8px;
|
margin-top: -8px;
|
||||||
border: 1px solid #434343;
|
border: 1px solid #e6e6e6;
|
||||||
height: 300px !important;
|
height: 300px !important;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
.preview-show {
|
.preview-show {
|
||||||
border-left: 1px solid #434343;
|
border-left: 1px solid #e6e6e6;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ function cancel() {
|
|||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.preview {
|
.preview {
|
||||||
margin-top: -8px;
|
margin-top: -8px;
|
||||||
border: 1px solid #434343;
|
border: 1px solid #e6e6e6;
|
||||||
height: 300px !important;
|
height: 300px !important;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
|
@ -17,11 +17,7 @@ const props = defineProps({
|
|||||||
required: true,
|
required: true,
|
||||||
default: 'insert'
|
default: 'insert'
|
||||||
},
|
},
|
||||||
templateId: {
|
|
||||||
type: String,
|
|
||||||
required: true,
|
|
||||||
default: ''
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
const emits = defineEmits(['closeTemplateDialog', 'init'])
|
const emits = defineEmits(['closeTemplateDialog', 'init'])
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
@ -116,12 +112,6 @@ const classBackground = computed(() => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.templateId && props.templateId !== '') {
|
|
||||||
findOne(props.templateId).then(rsp => {
|
|
||||||
state.templateInfo = rsp.data
|
|
||||||
console.log(rsp)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
queryclass()
|
queryclass()
|
||||||
})
|
})
|
||||||
function queryclass() {
|
function queryclass() {
|
||||||
@ -233,7 +223,7 @@ function classrefresh(){
|
|||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="template-import">
|
<div class="template-import">
|
||||||
<el-form ref="ruleFormRef" :model="state.templateInfo" label-width="80px" style="margin-top: 15px;">
|
<el-form ref="ruleFormRef" :model="state.templateInfo" label-width="80px">
|
||||||
<el-form-item label="模板名称" prop="name">
|
<el-form-item label="模板名称" prop="name">
|
||||||
<div class="flex-template">
|
<div class="flex-template">
|
||||||
<el-input v-model="state.templateInfo.name" />
|
<el-input v-model="state.templateInfo.name" />
|
||||||
@ -268,7 +258,7 @@ function classrefresh(){
|
|||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.preview {
|
.preview {
|
||||||
margin-top: -8px;
|
margin-top: -8px;
|
||||||
border: 1px solid #434343;
|
border: 1px solid #e6e6e6;
|
||||||
height: 300px !important;
|
height: 300px !important;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
|
@ -4,7 +4,7 @@ import { useRouter } from 'vue-router'
|
|||||||
import { searchMarketPreview } from '@/api/templateMarket'
|
import { searchMarketPreview } from '@/api/templateMarket'
|
||||||
import { useI18n } from '@/hooks/web/useI18n'
|
import { useI18n } from '@/hooks/web/useI18n'
|
||||||
import { useCache } from '@/hooks/web/useCache'
|
import { useCache } from '@/hooks/web/useCache'
|
||||||
import { ElMessage,ElMessageBox } from 'element-plus-secondary'
|
import { ElMessage } from 'element-plus-secondary'
|
||||||
import { Base64 } from 'js-base64'
|
import { Base64 } from 'js-base64'
|
||||||
import { useEmbedded } from '@/store/modules/embedded'
|
import { useEmbedded } from '@/store/modules/embedded'
|
||||||
import { useAppStoreWithOut } from '@/store/modules/app'
|
import { useAppStoreWithOut } from '@/store/modules/app'
|
||||||
@ -12,7 +12,7 @@ import { useEmitt } from '@/hooks/web/useEmitt'
|
|||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import AddTemplate from '@/viewsnew/TemplateResource/addtemplate.vue'
|
import AddTemplate from '@/viewsnew/TemplateResource/addtemplate.vue'
|
||||||
import AddTemplateClass from '@/viewsnew/TemplateResource/addclass.vue'
|
import AddTemplateClass from '@/viewsnew/TemplateResource/addclass.vue'
|
||||||
import { templateDelete } from '@/api/template'
|
import { update } from 'lodash'
|
||||||
const basePath = import.meta.env.VITE_API_BASEPATH
|
const basePath = import.meta.env.VITE_API_BASEPATH
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
@ -22,6 +22,8 @@ const dataList: any = ref([])
|
|||||||
const classList: any = ref([])
|
const classList: any = ref([])
|
||||||
const mask = ref(-1) // 遮罩层
|
const mask = ref(-1) // 遮罩层
|
||||||
const activeIndex: any = ref(null)
|
const activeIndex: any = ref(null)
|
||||||
|
const detailsList: any = ref([])
|
||||||
|
const loading: any = ref(false)
|
||||||
const embeddedStore = useEmbedded()
|
const embeddedStore = useEmbedded()
|
||||||
const appStore = useAppStoreWithOut()
|
const appStore = useAppStoreWithOut()
|
||||||
const isEmbedded = computed(() => appStore.getIsDataEaseBi || appStore.getIsIframe)
|
const isEmbedded = computed(() => appStore.getIsDataEaseBi || appStore.getIsIframe)
|
||||||
@ -128,6 +130,7 @@ const state = reactive({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
const templateApply = (template: any) => {
|
const templateApply = (template: any) => {
|
||||||
|
|
||||||
state.curApplyTemplate = template
|
state.curApplyTemplate = template
|
||||||
state.dvCreateForm.name = template.title
|
state.dvCreateForm.name = template.title
|
||||||
state.dvCreateForm.nodeType = template.templateType
|
state.dvCreateForm.nodeType = template.templateType
|
||||||
@ -266,42 +269,11 @@ function closeTemplateDialog() {
|
|||||||
function classrefresh() {
|
function classrefresh() {
|
||||||
init()
|
init()
|
||||||
}
|
}
|
||||||
const templateId = ref('')
|
|
||||||
function editTemplate(item) {
|
function editTemplate(item) {
|
||||||
optType.value = 'update'
|
optType.value = 'template'
|
||||||
dialogVisibles.value = true
|
console.log(item)
|
||||||
templateId.value = item.id
|
|
||||||
}
|
}
|
||||||
function refresh(){
|
|
||||||
searchMarketPreview().then(res => {
|
|
||||||
classList.value = res.data.contents
|
|
||||||
if (activeIndex.value) {
|
|
||||||
dataList.value = classList.value[activeIndex.value].contents
|
|
||||||
}else{
|
|
||||||
activeIndex.value = 0
|
|
||||||
dataList.value = classList.value[activeIndex.value].contents
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
function delTemplate(item){
|
|
||||||
console.log(classList.value[activeIndex.value].category.value)
|
|
||||||
ElMessageBox.confirm('提示,确定删除吗?', {
|
|
||||||
confirmButtonType: 'primary',
|
|
||||||
type: 'warning',
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
}).then(() => {
|
|
||||||
templateDelete(item.id, classList.value[activeIndex.value].category.value).then(() => {
|
|
||||||
ElMessage({
|
|
||||||
message: '删除成功',
|
|
||||||
type: 'success',
|
|
||||||
showClose: true
|
|
||||||
})
|
|
||||||
refresh()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const isclassmask = ref(false)
|
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="common-layout">
|
<div class="common-layout">
|
||||||
@ -316,14 +288,9 @@ const isclassmask = ref(false)
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="class_list_box">
|
<div class="class_list_box">
|
||||||
<div v-for="(item, classindex) in classList" :key="classindex"
|
<div v-for="(item, index) in classList" :key="index"
|
||||||
:class="activeIndex === classindex ? 'class_list_active' : 'class_list'" @click="classclick(classindex)"
|
:class="activeIndex === index ? 'class_list_active' : 'class_list'" @click="classclick(index)">
|
||||||
@mouseover="mouseover(classindex)" @mouseleave="mouseleave">
|
|
||||||
<div class="class_list_text">{{ item.category.label }} ({{ item.contents.length }}) </div>
|
<div class="class_list_text">{{ item.category.label }} ({{ item.contents.length }}) </div>
|
||||||
<div v-if="mask == classindex" style="position: absolute;right: -10px;top: -20px;">
|
|
||||||
<img src="@/assets/newimg/icon/editpro.png" style="width: 14px;height: 14px;cursor: pointer;" @click="editTemplate(item)" title="编辑模板">
|
|
||||||
<img src="@/assets/newimg/icon/del.png" alt="" @click="delTemplate(item)" style="width: 14px;height: 14px;margin-left: 5px;cursor: pointer;" title="删除">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="application_list_box">
|
<div class="application_list_box">
|
||||||
@ -338,11 +305,11 @@ const isclassmask = ref(false)
|
|||||||
<div class="mask_box" v-if="mask == index">
|
<div class="mask_box" v-if="mask == index">
|
||||||
<div>
|
<div>
|
||||||
<img src="@/assets/newimg/icon/editpro.png" @click="editTemplate(item)" style="cursor: pointer;" title="编辑模板">
|
<img src="@/assets/newimg/icon/editpro.png" @click="editTemplate(item)" style="cursor: pointer;" title="编辑模板">
|
||||||
<img src="@/assets/newimg/icon/del.png" alt="" @click="delTemplate(item)" style="margin-left: 10px;cursor: pointer;" title="删除">
|
<img src="@/assets/newimg/icon/del.png" alt="" style="margin-left: 10px;cursor: pointer;" title="删除">
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex;justify-content: center;margin-top: 20px;">
|
<div style="display: flex;justify-content: center;margin-top: 20px;">
|
||||||
<div class="yulan" @click="preview(item, index)">预览</div>
|
<div class="yulan" @click="preview(item, index)">预览</div>
|
||||||
<!-- <div class="mokuaipeizhi" @click="design(item, index)">设计</div> -->
|
<div class="mokuaipeizhi" @click="design(item, index)">设计</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -352,7 +319,7 @@ const isclassmask = ref(false)
|
|||||||
<AddTemplateClass v-if="dialogVisible" @closeClassDialog="closeClassDialog" :classrefresh="classrefresh" />
|
<AddTemplateClass v-if="dialogVisible" @closeClassDialog="closeClassDialog" :classrefresh="classrefresh" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog v-model="dialogVisibles" title="导入模板" width="30%" :before-close="closeTemplateDialog">
|
<el-dialog v-model="dialogVisibles" title="导入模板" width="30%" :before-close="closeTemplateDialog">
|
||||||
<AddTemplate v-if="dialogVisibles" :optType="optType" :classList="classList" :templateId="templateId" @init="init"
|
<AddTemplate v-if="dialogVisibles" :optType="optType" :classList="classList" @init="init"
|
||||||
@closeTemplateDialog="closeTemplateDialog" />
|
@closeTemplateDialog="closeTemplateDialog" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
@ -551,7 +518,6 @@ const isclassmask = ref(false)
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #C9C9C9;
|
color: #C9C9C9;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.class_list_active {
|
.class_list_active {
|
||||||
@ -559,7 +525,7 @@ const isclassmask = ref(false)
|
|||||||
height: 40px;
|
height: 40px;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: #0089ff;
|
background-color: rgba(54, 55, 56, 1);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #F2F4F5;
|
color: #F2F4F5;
|
||||||
@ -694,8 +660,4 @@ const isclassmask = ref(false)
|
|||||||
background: #434343;
|
background: #434343;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
.ed-dialog__header{
|
|
||||||
padding: 0px;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
@ -1,551 +0,0 @@
|
|||||||
<script lang="ts" setup>
|
|
||||||
import { ref, onMounted, reactive, computed, } from 'vue'
|
|
||||||
import { save, nameCheck, findOne, categoryTemplateNameCheck } from '@/api/template'
|
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus-secondary'
|
|
||||||
import { useI18n } from '@/hooks/web/useI18n'
|
|
||||||
import { findCategories } from '@/api/template'
|
|
||||||
import AddTemplateClass from '@/viewsnew/TemplateResource/addclass.vue'
|
|
||||||
import { ElTree } from 'element-plus'
|
|
||||||
import { searchMarketPreview } from '@/api/templateMarket'
|
|
||||||
import { useEmbedded } from '@/store/modules/embedded'
|
|
||||||
import { useAppStoreWithOut } from '@/store/modules/app'
|
|
||||||
import { useEmitt } from '@/hooks/web/useEmitt'
|
|
||||||
import { Base64 } from 'js-base64'
|
|
||||||
import { useCache } from '@/hooks/web/useCache'
|
|
||||||
import { moduleAdd } from '@/api/application/module'
|
|
||||||
const props = defineProps({
|
|
||||||
templateinfo: {
|
|
||||||
type: Object,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
const { wsCache } = useCache()
|
|
||||||
const embeddedStore = useEmbedded()
|
|
||||||
const appStore = useAppStoreWithOut()
|
|
||||||
const isEmbedded = computed(() => appStore.getIsDataEaseBi || appStore.getIsIframe)
|
|
||||||
const { t } = useI18n()
|
|
||||||
const basePath = import.meta.env.VITE_API_BASEPATH
|
|
||||||
const classname = ref('')
|
|
||||||
const templatename = ref('')
|
|
||||||
const classList = ref([])
|
|
||||||
const defaultProps = {
|
|
||||||
children: 'children',
|
|
||||||
label: 'label',
|
|
||||||
}
|
|
||||||
const treeRef = ref<InstanceType<typeof ElTree>>()
|
|
||||||
const treedata = ref([])
|
|
||||||
const activeIndex = ref(null)
|
|
||||||
const templateList = ref([])
|
|
||||||
const handleNodeClick = (data: any) => {
|
|
||||||
console.log(data)
|
|
||||||
templateList.value = data.contents
|
|
||||||
}
|
|
||||||
const mask = ref(-1) // 遮罩层
|
|
||||||
const state = reactive({
|
|
||||||
initReady: true,
|
|
||||||
curPosition: 'branch',
|
|
||||||
pid: null,
|
|
||||||
treeProps: {
|
|
||||||
value: 'label',
|
|
||||||
label: 'label'
|
|
||||||
},
|
|
||||||
templateType: 'all', // 模板类型 仪表板 数据大屏
|
|
||||||
templateSourceType: 'all', // 模板来源 模板市场 模板管理
|
|
||||||
templateClassifyType: 'all', // 模板分类 样式模板 应用模板
|
|
||||||
treeShow: true,
|
|
||||||
templateClassifyOptions: [
|
|
||||||
{
|
|
||||||
value: 'all',
|
|
||||||
label: t('visualization.all_type')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'app',
|
|
||||||
label: t('visualization.apply_template')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'template',
|
|
||||||
label: t('visualization.style_template')
|
|
||||||
}
|
|
||||||
],
|
|
||||||
templateSourceOptions: [
|
|
||||||
{
|
|
||||||
value: 'all',
|
|
||||||
label: t('work_branch.all_source')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'market',
|
|
||||||
label: t('visualization.template_market')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'manage',
|
|
||||||
label: t('template_manage.name')
|
|
||||||
}
|
|
||||||
],
|
|
||||||
templateTypeOptions: [
|
|
||||||
{
|
|
||||||
value: 'all',
|
|
||||||
label: t('work_branch.all_types')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'PANEL',
|
|
||||||
label: t('work_branch.dashboard')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'SCREEN',
|
|
||||||
label: t('work_branch.big_data_screen')
|
|
||||||
}
|
|
||||||
],
|
|
||||||
loading: false,
|
|
||||||
hasResult: true,
|
|
||||||
templateMiniWidth: 250,
|
|
||||||
templateCurWidth: 310,
|
|
||||||
templateSpan: '25%',
|
|
||||||
previewVisible: false,
|
|
||||||
templatePreviewId: '',
|
|
||||||
marketTabs: [],
|
|
||||||
marketActiveTab: null,
|
|
||||||
searchText: null,
|
|
||||||
dvCreateForm: {
|
|
||||||
resourceName: null,
|
|
||||||
name: null,
|
|
||||||
pid: null,
|
|
||||||
nodeType: 'panel',
|
|
||||||
templateUrl: null,
|
|
||||||
newFrom: 'new_market_template',
|
|
||||||
templateId: null,
|
|
||||||
panelType: 'self',
|
|
||||||
panelStyle: {},
|
|
||||||
panelData: '[]'
|
|
||||||
},
|
|
||||||
panelGroupList: [],
|
|
||||||
curApplyTemplate: null,
|
|
||||||
folderSelectShow: false,
|
|
||||||
baseUrl: 'https://dataease.io/templates',
|
|
||||||
currentMarketTemplateShowList: [],
|
|
||||||
curTemplateShowFilter: [],
|
|
||||||
curTemplateIndex: 0,
|
|
||||||
curTemplate: null,
|
|
||||||
networkStatus: true,
|
|
||||||
rule: {
|
|
||||||
name: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: t('visualization.template_name_tips'),
|
|
||||||
trigger: 'blur'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
pid: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '',
|
|
||||||
trigger: 'blur'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
const isDialog = ref(false)
|
|
||||||
const dataInfo: any = ref({
|
|
||||||
pid: '',
|
|
||||||
level: '',
|
|
||||||
type: '',
|
|
||||||
nodeType: '',
|
|
||||||
name: '',
|
|
||||||
appId: ''
|
|
||||||
})
|
|
||||||
const typeList: any = ref([{
|
|
||||||
code: '01',
|
|
||||||
name: '登录页面'
|
|
||||||
}, {
|
|
||||||
code: '02',
|
|
||||||
name: '主框架页面'
|
|
||||||
}, {
|
|
||||||
code: '03',
|
|
||||||
name: 'GIS大屏页面'
|
|
||||||
}, {
|
|
||||||
code: '0301',
|
|
||||||
name: '数据看板页面'
|
|
||||||
}, {
|
|
||||||
code: '04',
|
|
||||||
name: '二级弹窗页面'
|
|
||||||
}, {
|
|
||||||
code: '05',
|
|
||||||
name: '数据填报页面'
|
|
||||||
}, {
|
|
||||||
code: '06',
|
|
||||||
name: '文档资源页面'
|
|
||||||
}, {
|
|
||||||
code: '09',
|
|
||||||
name: '自定义页面'
|
|
||||||
}])
|
|
||||||
onMounted(() => {
|
|
||||||
console.log(props.templateinfo, 66)
|
|
||||||
init()
|
|
||||||
})
|
|
||||||
function paramsCloseForm() {
|
|
||||||
isDialog.value = false
|
|
||||||
}
|
|
||||||
function init() {
|
|
||||||
treedata.value = []
|
|
||||||
templateList.value = []
|
|
||||||
searchMarketPreview().then(res => {
|
|
||||||
// templateList.value = res.data.contents
|
|
||||||
res.data.contents.forEach((e, index) => {
|
|
||||||
treedata.value.push({
|
|
||||||
label: e.category.label,
|
|
||||||
slug: e.category.slug,
|
|
||||||
source: e.category.source,
|
|
||||||
value: e.category.value,
|
|
||||||
contents: e.contents
|
|
||||||
})
|
|
||||||
classList.value.push({
|
|
||||||
label: e.category.label,
|
|
||||||
slug: e.category.slug,
|
|
||||||
source: e.category.source,
|
|
||||||
value: e.category.value,
|
|
||||||
contents: e.contents
|
|
||||||
})
|
|
||||||
});
|
|
||||||
})
|
|
||||||
}
|
|
||||||
function preview(item) {
|
|
||||||
|
|
||||||
}
|
|
||||||
const createTemplateInfo = ref({})
|
|
||||||
function design(item) {
|
|
||||||
createTemplateInfo.value = item
|
|
||||||
dataInfo.value = {
|
|
||||||
appId: props.templateinfo.appId,
|
|
||||||
pid: props.templateinfo.pid,
|
|
||||||
level: 2,
|
|
||||||
nodeType: '02',
|
|
||||||
name: item.name,
|
|
||||||
type: props.templateinfo.type,
|
|
||||||
}
|
|
||||||
isDialog.value = true
|
|
||||||
|
|
||||||
}
|
|
||||||
const isSwitch = ref(false)
|
|
||||||
const projectId = ref('')
|
|
||||||
function saveData() {
|
|
||||||
if (isSwitch.value == true) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
isSwitch.value = true
|
|
||||||
moduleAdd(dataInfo.value).then((res) => {
|
|
||||||
console.log(res)
|
|
||||||
projectId.value = res.data.data
|
|
||||||
ElMessage.success('添加成功')
|
|
||||||
isDialog.value = false
|
|
||||||
state.pid = props.templateinfo.pid
|
|
||||||
templateApply(createTemplateInfo.value)
|
|
||||||
}).catch(() => {
|
|
||||||
isSwitch.value = false
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const templateApply = (template: any) => {
|
|
||||||
state.curApplyTemplate = template
|
|
||||||
state.dvCreateForm.name = template.title
|
|
||||||
state.dvCreateForm.nodeType = template.templateType
|
|
||||||
if (template.source === 'market') {
|
|
||||||
state.dvCreateForm.newFrom = 'new_market_template'
|
|
||||||
state.dvCreateForm.templateUrl = template.metas.theme_repo
|
|
||||||
state.dvCreateForm.resourceName = template.id
|
|
||||||
} else {
|
|
||||||
state.dvCreateForm.newFrom = 'new_inner_template'
|
|
||||||
state.dvCreateForm.templateId = template.id
|
|
||||||
}
|
|
||||||
apply()
|
|
||||||
}
|
|
||||||
const apply = () => {
|
|
||||||
if (state.dvCreateForm.newFrom === 'new_market_template' && !state.dvCreateForm.templateUrl) {
|
|
||||||
ElMessage.warning(t('template_manage.get_download_link_hint'))
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
const templateTemplate = {
|
|
||||||
newFrom: state.dvCreateForm.newFrom,
|
|
||||||
templateUrl: state.dvCreateForm.templateUrl,
|
|
||||||
resourceName: state.dvCreateForm.resourceName,
|
|
||||||
templateId: state.dvCreateForm.templateId
|
|
||||||
}
|
|
||||||
state.curApplyTemplate.recentUseTime = Date.now()
|
|
||||||
state.curApplyTemplate.categoryNames.push(t('work_branch.recent'))
|
|
||||||
const baseUrl =
|
|
||||||
(['dataV', 'SCREEN'].includes(state.dvCreateForm.nodeType)
|
|
||||||
? '#/dvsCanvas?opt=create&createType=template&dvId=' + projectId.value
|
|
||||||
: '#/dashboard?opt=create&createType=template&resourceId=' + projectId.value) +
|
|
||||||
'&pid=' + props.templateinfo.pid + '&appId='+ props.templateinfo.appId+ '&templateParams=' +
|
|
||||||
encodeURIComponent(Base64.encode(JSON.stringify(templateTemplate)))
|
|
||||||
let newWindow = null
|
|
||||||
if (isEmbedded.value) {
|
|
||||||
embeddedStore.clearState()
|
|
||||||
embeddedStore.setCreateType('template')
|
|
||||||
embeddedStore.setTemplateParams(
|
|
||||||
encodeURIComponent(Base64.encode(JSON.stringify(templateTemplate)))
|
|
||||||
)
|
|
||||||
embeddedStore.setOpt('create')
|
|
||||||
|
|
||||||
if (state.pid) {
|
|
||||||
embeddedStore.setPid(state.pid)
|
|
||||||
}
|
|
||||||
useEmitt().emitter.emit(
|
|
||||||
'changeCurrentComponent',
|
|
||||||
['dataV', 'SCREEN'].includes(state.dvCreateForm.nodeType)
|
|
||||||
? 'VisualizationEditor'
|
|
||||||
: 'DashboardEditor'
|
|
||||||
)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
const openType = wsCache.get('open-backend') === '1' ? '_self' : '_blank'
|
|
||||||
if (state.pid) {
|
|
||||||
newWindow = window.open(baseUrl + `&pid=${state.pid}`, openType)
|
|
||||||
} else {
|
|
||||||
newWindow = window.open(baseUrl, openType)
|
|
||||||
}
|
|
||||||
initOpenHandler(newWindow)
|
|
||||||
}
|
|
||||||
const openHandler = ref(null)
|
|
||||||
const initOpenHandler = newWindow => {
|
|
||||||
if (openHandler?.value) {
|
|
||||||
const pm = {
|
|
||||||
methodName: 'initOpenHandler',
|
|
||||||
args: newWindow
|
|
||||||
}
|
|
||||||
openHandler.value.invokeMethod(pm)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function mouseover(index) { // 鼠标移入遮罩层
|
|
||||||
mask.value = index
|
|
||||||
}
|
|
||||||
function mouseleave() { // 鼠标移出遮罩层
|
|
||||||
mask.value = -1
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<template>
|
|
||||||
<div class="template-container" style="margin-top: 15px;">
|
|
||||||
<div class="template-header">
|
|
||||||
<div>使用模板创建</div>
|
|
||||||
<div>
|
|
||||||
<el-input v-model="templatename" placeholder="模板名称" style="width: 200px;margin-right: 10px;" />
|
|
||||||
<el-select v-model="classname" placeholder="分类" style="width: 240px">
|
|
||||||
<el-option v-for="item in classList" :key="item.value" :label="item.label" :value="item.value" />
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="template-main">
|
|
||||||
<div class="template-main-left">
|
|
||||||
<el-tree :data="treedata" ref="treeRef" highlight-current node-key="value" :props="defaultProps"
|
|
||||||
@node-click="handleNodeClick" />
|
|
||||||
</div>
|
|
||||||
<div class="template-main-right">
|
|
||||||
<div class="template-list-box">
|
|
||||||
<div v-for="(item, index) in templateList" :key="index" class="template_list"
|
|
||||||
@mouseover="mouseover(index)" @mouseleave="mouseleave">
|
|
||||||
<img v-if="item.thumbnail != null && item.thumbnail != ''" :src="basePath + item.thumbnail"
|
|
||||||
alt="" style="width: 267px;height: 155px;">
|
|
||||||
<img v-else src="@/assets/newimg/u110.png" alt="" style="width: 267px;height: 155px;">
|
|
||||||
<div style="display: flex;justify-content: space-between;">
|
|
||||||
<div class="template_list_text">{{ item.title }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="mask_box" v-if="mask == index">
|
|
||||||
<div style="display: flex;justify-content: center;margin-top: 20px;">
|
|
||||||
<div class="yulan" @click="preview(item)">预览</div>
|
|
||||||
<div class="mokuaipeizhi" @click="design(item)">创建</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<el-dialog title="新建模块" v-model="isDialog" width="570px" class="create-project-dialog"
|
|
||||||
:before-close="paramsCloseForm">
|
|
||||||
<el-form ref="paramsObjRef" :model="dataInfo" label-width="100px" style="margin-top: 15px;">
|
|
||||||
<el-form-item label="模块名称:" prop="name">
|
|
||||||
<el-input :placeholder="'请输入'" v-model="dataInfo.name" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="模块类型" prop="type">
|
|
||||||
<el-select v-model="dataInfo.type" placeholder="" style="width: 100%"
|
|
||||||
:disabled="dataInfo.nodeType == '02'">
|
|
||||||
<el-option v-for="item in typeList" :key="item.code" :label="item.name" :value="item.code" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<el-button class="root-class" @click="paramsCloseForm">{{ t('dataset.cancel') }} </el-button>
|
|
||||||
<el-button class="root-class" type="primary" @click="saveData">{{ t('dataset.confirm') }} </el-button>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style lang="less" scoped>
|
|
||||||
.template-container {
|
|
||||||
height: calc(100vh - 200px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.template-header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
width: 100%;
|
|
||||||
border-bottom: 1px solid #434343;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.template-main {
|
|
||||||
display: flex;
|
|
||||||
width: 100%;
|
|
||||||
|
|
||||||
.template-main-left {
|
|
||||||
width: 260px;
|
|
||||||
height: calc(100vh - 221px);
|
|
||||||
border-right: 1px solid #434343;
|
|
||||||
|
|
||||||
:deep(.el-tree-node__content>.el-tree-node__expand-icon) {
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-tree) {
|
|
||||||
background: #212121;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-tree-node__content) {
|
|
||||||
height: 40px;
|
|
||||||
background: #212121;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-tree-node__content:hover) {
|
|
||||||
background: #3b3c3c;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content) {
|
|
||||||
background: #3b3c3c;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-tree-node:focus>.el-tree-node__content) {
|
|
||||||
background: #3b3c3c;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-tree-node__label) {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.template-main-right {
|
|
||||||
width: calc(100% - 260px);
|
|
||||||
background: #151515;
|
|
||||||
padding: 0px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.template-list-box {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
height: calc(100vh - 235px);
|
|
||||||
overflow: auto;
|
|
||||||
align-content: flex-start;
|
|
||||||
|
|
||||||
.template_list {
|
|
||||||
position: relative;
|
|
||||||
margin-top: 10px;
|
|
||||||
width: 290px;
|
|
||||||
height: 210px;
|
|
||||||
background: inherit;
|
|
||||||
background-color: rgba(37, 38, 38, 1);
|
|
||||||
box-sizing: border-box;
|
|
||||||
padding: 10px;
|
|
||||||
border-width: 1px;
|
|
||||||
border-style: solid;
|
|
||||||
border-color: rgba(51, 51, 51, 1);
|
|
||||||
border-radius: 10px;
|
|
||||||
margin-right: 10px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.template_list_text {
|
|
||||||
font-family: 'Arial Normal', 'Arial';
|
|
||||||
font-weight: 400;
|
|
||||||
font-style: normal;
|
|
||||||
font-size: 12px;
|
|
||||||
color: #F2F4F5;
|
|
||||||
padding-top: 13px;
|
|
||||||
position: relative;
|
|
||||||
z-index: 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mask_box {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
z-index: 10;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: rgba(0, 0, 0, 0.8);
|
|
||||||
border-radius: 10px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
padding-top: 60px;
|
|
||||||
border: 1px solid #0089ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mask_box_img {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
|
|
||||||
img {
|
|
||||||
margin: 0 8px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.yulan {
|
|
||||||
width: 50px;
|
|
||||||
height: 28px;
|
|
||||||
line-height: 28px;
|
|
||||||
text-align: center;
|
|
||||||
background-color: rgba(255, 255, 255, 0.3);
|
|
||||||
border: none;
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: none;
|
|
||||||
font-size: 14px;
|
|
||||||
font-family: 'Arial Normal', 'Arial';
|
|
||||||
font-weight: 400;
|
|
||||||
font-style: normal;
|
|
||||||
color: rgb(255, 255, 255);
|
|
||||||
margin-right: 10px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mokuaipeizhi {
|
|
||||||
width: 50px;
|
|
||||||
height: 28px;
|
|
||||||
line-height: 28px;
|
|
||||||
text-align: center;
|
|
||||||
background-color: rgba(0, 137, 255, 1);
|
|
||||||
border: none;
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: none;
|
|
||||||
font-size: 14px;
|
|
||||||
font-family: 'Arial Normal', 'Arial';
|
|
||||||
font-weight: 400;
|
|
||||||
font-style: normal;
|
|
||||||
color: rgb(255, 255, 255);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<style>
|
|
||||||
.ed-select__wrapper {
|
|
||||||
background-color: #252626 !important;
|
|
||||||
border: 1px solid #434343 !important;
|
|
||||||
box-shadow: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
|
||||||
width: 0px !important;
|
|
||||||
height: 0px !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -5,7 +5,6 @@ import { ElMessage,ElMessageBox } from 'element-plus-secondary'
|
|||||||
import { useI18n } from '@/hooks/web/useI18n'
|
import { useI18n } from '@/hooks/web/useI18n'
|
||||||
import { publicTree } from '@/utils/validate';
|
import { publicTree } from '@/utils/validate';
|
||||||
import { moduleList,moduleAdd,moduleUpdate,moduleDel,moduleCopy } from '@/api/application/module'
|
import { moduleList,moduleAdd,moduleUpdate,moduleDel,moduleCopy } from '@/api/application/module'
|
||||||
import TemplateCreate from '@/viewsnew/TemplateResource/templateinfo.vue'
|
|
||||||
const emit = defineEmits(['handleNodeClick'])
|
const emit = defineEmits(['handleNodeClick'])
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
@ -58,8 +57,7 @@ const dataInfo:any =ref({
|
|||||||
})
|
})
|
||||||
const treeData:any=ref([])// 树数据
|
const treeData:any=ref([])// 树数据
|
||||||
const defaultProps = { label: "name" }
|
const defaultProps = { label: "name" }
|
||||||
const templatedialog = ref(false)
|
|
||||||
const templateinfo = ref({})
|
|
||||||
watch(() => props.projectInfo, val => { // 初始化数据
|
watch(() => props.projectInfo, val => { // 初始化数据
|
||||||
projectInfo.value = val
|
projectInfo.value = val
|
||||||
getInit()
|
getInit()
|
||||||
@ -93,6 +91,8 @@ function addClic(name:any,level:any,pid:any){ // 新建目录、模块
|
|||||||
dataInfo.value.nodeType = '02'
|
dataInfo.value.nodeType = '02'
|
||||||
}
|
}
|
||||||
title.value = '新建' + name
|
title.value = '新建' + name
|
||||||
|
|
||||||
|
|
||||||
isSwitch.value = false
|
isSwitch.value = false
|
||||||
isDialog.value=true
|
isDialog.value=true
|
||||||
|
|
||||||
@ -260,13 +260,6 @@ function delTreeClic(){ // 删除
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function templateAdd(){
|
|
||||||
templateinfo.value = dataInfo.value
|
|
||||||
templatedialog.value = true
|
|
||||||
}
|
|
||||||
function templatedialogClose(){
|
|
||||||
templatedialog.value = false
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="project-left-box">
|
<div class="project-left-box">
|
||||||
@ -286,10 +279,10 @@ function templatedialogClose(){
|
|||||||
<img src="@/assets/newimg/u62.png" alt="">
|
<img src="@/assets/newimg/u62.png" alt="">
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
<!-- <el-scrollbar style="margin-top: 10px;"> -->
|
<el-scrollbar style="height: calc(100vh - 260px);margin-top: 10px;">
|
||||||
<el-tree v-loading="treeloading" id="treeRefClickId" ref="treeRef" node-key="id" :data="treeData" default-expand-all
|
<el-tree v-loading="treeloading" id="treeRefClickId" ref="treeRef" node-key="id" :data="treeData" default-expand-all
|
||||||
:highlight-current="true" :props="defaultProps" :expand-on-click-node="false"
|
:highlight-current="true" :props="defaultProps" :expand-on-click-node="false"
|
||||||
@node-click="handleNodeClick" style="height: calc(100vh - 170px);overflow: auto;">
|
@node-click="handleNodeClick">
|
||||||
<template #default="{ data }">
|
<template #default="{ data }">
|
||||||
<!-- @mouseleave="isTreeDrag = false" -->
|
<!-- @mouseleave="isTreeDrag = false" -->
|
||||||
<div class="el-tree-node__content" >
|
<div class="el-tree-node__content" >
|
||||||
@ -312,7 +305,7 @@ function templatedialogClose(){
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-tree>
|
</el-tree>
|
||||||
<!-- </el-scrollbar> -->
|
</el-scrollbar>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:title="title"
|
:title="title"
|
||||||
v-model="isDialog"
|
v-model="isDialog"
|
||||||
@ -361,7 +354,6 @@ function templatedialogClose(){
|
|||||||
>
|
>
|
||||||
<div class="drag-main-text" v-if="popupType == 1" @click="addTreeClic('目录')">新建目录</div>
|
<div class="drag-main-text" v-if="popupType == 1" @click="addTreeClic('目录')">新建目录</div>
|
||||||
<div class="drag-main-text" v-if="popupType == 1" @click="addTreeClic('模块')">新建模块</div>
|
<div class="drag-main-text" v-if="popupType == 1" @click="addTreeClic('模块')">新建模块</div>
|
||||||
<div class="drag-main-text" v-if="popupType == 1" @click="templateAdd">使用模板创建模块</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="drag-main-text" v-if="popupType == 2" @click="copyClick">复制</div>
|
<div class="drag-main-text" v-if="popupType == 2" @click="copyClick">复制</div>
|
||||||
@ -371,9 +363,6 @@ function templatedialogClose(){
|
|||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<el-dialog v-model="templatedialog" top="5vh" title="使用模板创建" width="80%" :before-close="templatedialogClose">
|
|
||||||
<TemplateCreate v-if="templatedialog" :templateinfo="templateinfo" />
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -430,7 +419,6 @@ function templatedialogClose(){
|
|||||||
}
|
}
|
||||||
:deep(.ed-tree-node__content){
|
:deep(.ed-tree-node__content){
|
||||||
height: 40px;
|
height: 40px;
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
.operation-button-box{
|
.operation-button-box{
|
||||||
display: none;
|
display: none;
|
||||||
@ -438,7 +426,6 @@ function templatedialogClose(){
|
|||||||
right: 20px;
|
right: 20px;
|
||||||
// display: flex;
|
// display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
top: 13px;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
:deep(.ed-tree-node__content:hover){
|
:deep(.ed-tree-node__content:hover){
|
||||||
@ -571,14 +558,14 @@ function templatedialogClose(){
|
|||||||
}
|
}
|
||||||
.ed-select__popper.ed-popper{
|
.ed-select__popper.ed-popper{
|
||||||
background: rgb(41,41,41) !important;
|
background: rgb(41,41,41) !important;
|
||||||
color: #fff !important;
|
color: #fff;
|
||||||
border:1px solid #434343 !important;
|
border:1px solid #434343;
|
||||||
}
|
}
|
||||||
.ed-select-dropdown__item{
|
.ed-select-dropdown__item{
|
||||||
color: #F2F4F5 !important;
|
color: #F2F4F5;
|
||||||
}
|
}
|
||||||
.ed-select-dropdown__item.hover, .ed-select-dropdown__item:hover{
|
.ed-select-dropdown__item.hover, .ed-select-dropdown__item:hover{
|
||||||
background-color: rgba(255, 255, 255, .1) !important;
|
background-color: rgba(255, 255, 255, .1)
|
||||||
}
|
}
|
||||||
.ed-select .ed-input__wrapper:hover {
|
.ed-select .ed-input__wrapper:hover {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
|
@ -246,14 +246,14 @@ defineExpose({
|
|||||||
|
|
||||||
.preview {
|
.preview {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
border: 1px solid #434343;
|
border: 1px solid #e6e6e6;
|
||||||
height: 310px !important;
|
height: 310px !important;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.preview-show {
|
.preview-show {
|
||||||
border-left: 1px solid #434343;
|
border-left: 1px solid #e6e6e6;
|
||||||
height: 310px;
|
height: 310px;
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
}
|
}
|
||||||
|
@ -413,18 +413,6 @@ onMounted(async () => {
|
|||||||
// do init
|
// do init
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (createType === 'template') {
|
|
||||||
let deTemplateData
|
|
||||||
let preName
|
|
||||||
const templateParamsApply = JSON.parse(Base64.decode(decodeURIComponent(templateParams + '')))
|
|
||||||
await decompressionPre(templateParamsApply, result => {
|
|
||||||
deTemplateData = result
|
|
||||||
preName = deTemplateData.baseInfo?.preName
|
|
||||||
dvMainStore.setComponentData(deTemplateData['componentData'])
|
|
||||||
dvMainStore.setCanvasStyle(deTemplateData['canvasStyleData'])
|
|
||||||
dvMainStore.setCanvasViewInfo(deTemplateData['canvasViewInfo'])
|
|
||||||
})
|
|
||||||
}
|
|
||||||
} else if (opt && opt === 'create') {
|
} else if (opt && opt === 'create') {
|
||||||
state.canvasInitStatus = false
|
state.canvasInitStatus = false
|
||||||
let watermarkBaseInfo
|
let watermarkBaseInfo
|
||||||
|
Loading…
Reference in New Issue
Block a user