|
@@ -0,0 +1,674 @@
|
|
|
+<template>
|
|
|
+ <div class="jt-wall-dialog">
|
|
|
+ <el-dialog draggable :modal="false" :destroy-on-close="false" v-model="dialogVisible" :title="title"
|
|
|
+ :style="{ left: '0px', background: 'rgb(0 44 126 / 68%)', height: 'calc(100% - 50px)', width: '180px', top: '0px' }"
|
|
|
+ @close="closeDialog" @open="openDialog">
|
|
|
+ <template #header>
|
|
|
+ <div slot="title" class="header-title">
|
|
|
+ <span
|
|
|
+ style="line-height:24px;font-size:16px;color:#fff;font-family: 'Alimama_ShuHeiTi_Bold'">{{ title }}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template #default>
|
|
|
+ <div class="odin-dialog__content">
|
|
|
+ <div class="jt-wall-row" v-show="isShowHeight">
|
|
|
+ <div class="col-left">高度</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="wallHeight" placeholder="输入高度值" clearable />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowArcHeight">
|
|
|
+ <div class="col-left">弯曲度</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="arcHeight" placeholder="输入弯曲度0~9000" clearable />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowLineWidth">
|
|
|
+ <div class="col-left">线宽</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="lineWidth" placeholder="输入宽度值" clearable />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowGlowpower">
|
|
|
+ <div class="col-left">发光强度</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="glowPower" placeholder="输入发光强度0~1" clearable />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowColor">
|
|
|
+ <div class="col-left">颜色</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-config-provider :locale="locale">
|
|
|
+ <el-color-picker v-model="color" show-alpha :predefine="predefineColors" label="12" />
|
|
|
+ </el-config-provider>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowDirection">
|
|
|
+ <div class="col-left">流动方向</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-radio-group v-model="radioDirection">
|
|
|
+ <el-radio-button v-for="(item, index) in directions" :label="item.key" v-model="item.value"
|
|
|
+ @change="directionChange" />
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowOrder">
|
|
|
+ <div class="col-left">流动顺序</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-radio-group v-model="radioOrder">
|
|
|
+ <el-radio-button v-for="(item, index) in orders" :label="item.key" v-model="item.value" />
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowSpeed">
|
|
|
+ <div class="col-left">流动速度</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="speed" placeholder="输入流动速度0~10" clearable />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowCount">
|
|
|
+ <div class="col-left">重复数量</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="yCount" placeholder="输入1~100" clearable />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowText" style="height: 60px;">
|
|
|
+ <div class="col-left">文字内容</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="txtContent" placeholder="输入显示的文字内容" clearable type="textarea" :rows="2" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowOutlineWidth">
|
|
|
+ <div class="col-left">描边宽度</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="outlineWidth" placeholder="输入宽度值" clearable />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowOutlineColor">
|
|
|
+ <div class="col-left">描边颜色</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-config-provider :locale="locale">
|
|
|
+ <el-color-picker v-model="outlineColor" show-alpha :predefine="predefineColors" label="12" />
|
|
|
+ </el-config-provider>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowVideoUrl" style="height: 100px;">
|
|
|
+ <div class="col-left">视频地址</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input v-model="txtVideoUrl" placeholder="输入播放视频的地址" clearable type="textarea" :rows="4" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowAxis">
|
|
|
+ <div class="col-left">X轴平移</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input-number v-model="axisX" :precision="2" :step="0.1" :max="10"></el-input-number>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowAxis">
|
|
|
+ <div class="col-left">Y轴平移</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input-number v-model="axisY" :precision="2" :step="0.1" :max="10"></el-input-number>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="jt-wall-row" v-show="isShowAxis">
|
|
|
+ <div class="col-left">Z轴平移</div>
|
|
|
+ <div class="col-main">
|
|
|
+ <el-input-number v-model="axisZ" :precision="2" :step="0.1" :max="10"></el-input-number>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="el-body-foot">
|
|
|
+ <el-button-group class="ml-4">
|
|
|
+ <el-button type="primary" :icon="Edit" @click="submit()">修改</el-button>
|
|
|
+ <el-button type="danger" :icon="Delete" @click="remove()">删除</el-button>
|
|
|
+ </el-button-group>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script setup>
|
|
|
+ /* 引入ref和reactive 其中ref用于简单类型 reactive用于复杂类型 */
|
|
|
+ import {
|
|
|
+ computed,
|
|
|
+ ref,
|
|
|
+ reactive,
|
|
|
+ toRefs,
|
|
|
+ watch,
|
|
|
+ getCurrentInstance
|
|
|
+ } from 'vue';
|
|
|
+ import {
|
|
|
+ ElDialog,
|
|
|
+ ElInput,
|
|
|
+ ElButtonGroup,
|
|
|
+ ElConfigProvider,
|
|
|
+ ElColorPicker,
|
|
|
+ ElRadioButton,
|
|
|
+ ElButton,
|
|
|
+ ElRadioGroup,
|
|
|
+ ElInputNumber
|
|
|
+ } from 'element-plus';
|
|
|
+ import zhCn from 'element-plus/dist/locale/zh-cn.mjs';
|
|
|
+ import en from 'element-plus/dist/locale/en.mjs';
|
|
|
+ import {
|
|
|
+ ArrowLeft,
|
|
|
+ ArrowRight,
|
|
|
+ Delete,
|
|
|
+ Edit,
|
|
|
+ Share
|
|
|
+ } from '@element-plus/icons-vue';
|
|
|
+ import {
|
|
|
+ param,
|
|
|
+ type
|
|
|
+ } from 'jquery';
|
|
|
+ import {
|
|
|
+ DrawTools
|
|
|
+ } from './DrawTools.js';
|
|
|
+ const language = ref('zh-cn');
|
|
|
+ const locale = computed(() => (language.value === 'zh-cn' ? zhCn : en));
|
|
|
+ const {
|
|
|
+ proxy
|
|
|
+ } = getCurrentInstance();
|
|
|
+ const props = defineProps({
|
|
|
+ params: {
|
|
|
+ id: {
|
|
|
+ type: String,
|
|
|
+ default: () => undefined
|
|
|
+ },
|
|
|
+ height: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 13
|
|
|
+ },
|
|
|
+ bottomHeight: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 0
|
|
|
+ },
|
|
|
+ color: {
|
|
|
+ type: String,
|
|
|
+ default: () => '255,255,0,0.9'
|
|
|
+ },
|
|
|
+ direction: {
|
|
|
+ type: String,
|
|
|
+ default: () => 'horizontal'
|
|
|
+ },
|
|
|
+ order: {
|
|
|
+ type: String,
|
|
|
+ default: () => '+'
|
|
|
+ },
|
|
|
+ count: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 2
|
|
|
+ },
|
|
|
+ text: {
|
|
|
+ type: String,
|
|
|
+ default: () => ''
|
|
|
+ },
|
|
|
+ lineWidth: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 2
|
|
|
+ },
|
|
|
+ glowPower: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 0.25
|
|
|
+ },
|
|
|
+ outlineWidth: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 0
|
|
|
+ },
|
|
|
+ outlineColor: {
|
|
|
+ type: String,
|
|
|
+ default: () => '255,255,0,0.9'
|
|
|
+ },
|
|
|
+ speed: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 1.5
|
|
|
+ },
|
|
|
+ videoUrl: {
|
|
|
+ type: String,
|
|
|
+ default: () => ''
|
|
|
+ },
|
|
|
+ arcHeight: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 1000
|
|
|
+ },
|
|
|
+ axisX: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 0
|
|
|
+ },
|
|
|
+ axisY: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 0
|
|
|
+ },
|
|
|
+ axisZ: {
|
|
|
+ type: Number,
|
|
|
+ default: () => 0
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showDialog: {
|
|
|
+ type: Boolean,
|
|
|
+ default: () => false
|
|
|
+ }
|
|
|
+ });
|
|
|
+ const emit = defineEmits(['submit', 'update:showDialog', 'update:params', 'remove']);
|
|
|
+ /* 默认颜色 */
|
|
|
+ const predefineColors = ref([
|
|
|
+ '#ff4500',
|
|
|
+ '#ff8c00',
|
|
|
+ '#ffd700',
|
|
|
+ '#90ee90',
|
|
|
+ '#00ced1',
|
|
|
+ '#1e90ff',
|
|
|
+ '#c71585',
|
|
|
+ 'rgba(255, 69, 0, 0.68)',
|
|
|
+ 'rgb(255, 120, 0)',
|
|
|
+ 'hsv(51, 100, 98)',
|
|
|
+ 'hsva(120, 40, 94, 0.5)',
|
|
|
+ 'hsl(181, 100%, 37%)',
|
|
|
+ 'hsla(209, 100%, 56%, 0.73)',
|
|
|
+ '#c7158577'
|
|
|
+ ]);
|
|
|
+ /* 初始赋值 */
|
|
|
+ const isShowColor = ref(false);
|
|
|
+ const isShowText = ref(false);
|
|
|
+ const isShowHeight = ref(false);
|
|
|
+ const isShowDirection = ref(false);
|
|
|
+ const isShowOrder = ref(false);
|
|
|
+ const isShowCount = ref(false);
|
|
|
+ const isLineWidth = ref(false);
|
|
|
+ const isShowLineWidth = ref(false);
|
|
|
+ const isShowGlowpower = ref(false);
|
|
|
+ const isShowOutlineWidth = ref(false);
|
|
|
+ const isShowOutlineColor = ref(false);
|
|
|
+ const isShowSpeed = ref(false);
|
|
|
+ const isShowVideoUrl = ref(false);
|
|
|
+ const isShowArcHeight = ref(false);
|
|
|
+ const isShowAxis = ref(false);
|
|
|
+ const color = ref(props.params.color);
|
|
|
+ const title = ref('属性编辑');
|
|
|
+ const dialogVisible = ref(props.showDialog);
|
|
|
+ const directions = reactive([{
|
|
|
+ key: '左右',
|
|
|
+ value: 'horizontal'
|
|
|
+ }, {
|
|
|
+ key: '上下',
|
|
|
+ value: 'vertical'
|
|
|
+ }]);
|
|
|
+ const orders = reactive([]);
|
|
|
+ const radioDirection = ref('');
|
|
|
+ const radioOrder = ref('');
|
|
|
+ const wallHeight = ref(0);
|
|
|
+ const yCount = ref(0);
|
|
|
+ const txtContent = ref('');
|
|
|
+ const lineWidth = ref(0);
|
|
|
+ const glowPower = ref(0.25);
|
|
|
+ const outlineWidth = ref(0);
|
|
|
+ const outlineColor = ref(props.params.outlineColor);
|
|
|
+ const speed = ref(1.5);
|
|
|
+ const txtVideoUrl = ref('');
|
|
|
+ const arcHeight = ref(1000);
|
|
|
+ const axisX = ref(0);
|
|
|
+ const axisY = ref(0);
|
|
|
+ const axisZ = ref(0);
|
|
|
+ /* 根据传递的属性更新 */
|
|
|
+ updateParams(props.params);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据参数更新内容
|
|
|
+ * @param {JSON} params 参数
|
|
|
+ */
|
|
|
+ function updateParams(params) {
|
|
|
+ /* 保存到本地 */
|
|
|
+ proxy._params = params;
|
|
|
+ _setShowControls(false);
|
|
|
+ /* 根据参数的显示不同的内容 */
|
|
|
+ if (params.id === DrawTools.DrawType.TextWall) {
|
|
|
+ title.value = '广告牌编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowText.value = true;
|
|
|
+ isShowHeight.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.DynamicWall) {
|
|
|
+ title.value = '动态围栏编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowDirection.value = true;
|
|
|
+ isShowOrder.value = true;
|
|
|
+ isShowCount.value = true;
|
|
|
+ isShowHeight.value = true;
|
|
|
+ isShowSpeed.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.NormalWall) {
|
|
|
+ title.value = '普通围栏编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowHeight.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.Circle) {
|
|
|
+ title.value = '贴地圆编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowOutlineColor.value = true;
|
|
|
+ isShowOutlineWidth.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.DynamicCircle) {
|
|
|
+ title.value = '扩散圆编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowCount.value = true;
|
|
|
+ isShowSpeed.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.House) {
|
|
|
+ title.value = '房屋编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowHeight.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.VideoWall) {
|
|
|
+ title.value = '视频墙编辑';
|
|
|
+ isShowHeight.value = true;
|
|
|
+ isShowVideoUrl.value = true;
|
|
|
+ isShowAxis.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.Polyline) {
|
|
|
+ title.value = '贴地线编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowLineWidth.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.ArrowPolyline) {
|
|
|
+ title.value = '箭头线编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowLineWidth.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.DynamicPolyline) {
|
|
|
+ title.value = '动态线编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowOrder.value = true;
|
|
|
+ isShowCount.value = true;
|
|
|
+ isShowLineWidth.value = true;
|
|
|
+ isShowSpeed.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.GrowPolyline) {
|
|
|
+ title.value = '发光线编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowLineWidth.value = true;
|
|
|
+ isShowGlowpower.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.OutlinePolyline) {
|
|
|
+ title.value = '描边线编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowLineWidth.value = true;
|
|
|
+ isShowOutlineColor.value = true;
|
|
|
+ isShowOutlineWidth.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.Polygon) {
|
|
|
+ title.value = '贴地面编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowOutlineColor.value = true;
|
|
|
+ isShowOutlineWidth.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.Rectangle) {
|
|
|
+ title.value = '矩形编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowOutlineColor.value = true;
|
|
|
+ isShowOutlineWidth.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.SpatialLine) {
|
|
|
+ title.value = '空间线编辑';
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowLineWidth.value = true;
|
|
|
+ } else if (params.id === DrawTools.DrawType.OdLine) {
|
|
|
+ title.value = 'OD线编辑';
|
|
|
+ isShowSpeed.value = true;
|
|
|
+ isShowColor.value = true;
|
|
|
+ isShowLineWidth.value = true;
|
|
|
+ isShowOrder.value = true;
|
|
|
+ isShowArcHeight.value = true;
|
|
|
+ } else {
|
|
|
+ _setShowControls(false);
|
|
|
+ }
|
|
|
+ color.value = params.color;
|
|
|
+ /* 判断方向及顺序 */
|
|
|
+ if (params.direction === 'horizontal') {
|
|
|
+ radioDirection.value = directions[0].key;
|
|
|
+ Object.assign(orders, [{
|
|
|
+ key: '自左至右',
|
|
|
+ value: '-'
|
|
|
+ }, {
|
|
|
+ key: '自右至左',
|
|
|
+ value: '+'
|
|
|
+ }]);
|
|
|
+ if (params.order === '-') {
|
|
|
+ radioOrder.value = orders[0].key;
|
|
|
+ } else {
|
|
|
+ radioOrder.value = orders[1].key;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ radioDirection.value = directions[1].key;
|
|
|
+ Object.assign(orders, [{
|
|
|
+ key: '自上至下',
|
|
|
+ value: '+'
|
|
|
+ }, {
|
|
|
+ key: '自下至上',
|
|
|
+ value: '-'
|
|
|
+ }]);
|
|
|
+ if (params.order === '+') {
|
|
|
+ radioOrder.value = orders[0].key;
|
|
|
+ } else {
|
|
|
+ radioOrder.value = orders[1].key;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /* 单独更改 */
|
|
|
+ if (params.id === DrawTools.DrawType.OdLine) {
|
|
|
+ Object.assign(orders, [{
|
|
|
+ key: '汇聚',
|
|
|
+ value: '+'
|
|
|
+ }, {
|
|
|
+ key: '扩散',
|
|
|
+ value: '-'
|
|
|
+ }]);
|
|
|
+ if (params.order === '+') {
|
|
|
+ radioOrder.value = orders[0].key;
|
|
|
+ } else {
|
|
|
+ radioOrder.value = orders[1].key;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wallHeight.value = parseFloat(params.height).toFixed(2);
|
|
|
+ yCount.value = params.count;
|
|
|
+ txtContent.value = params.text;
|
|
|
+ lineWidth.value = params.lineWidth;
|
|
|
+ glowPower.value = params.power;
|
|
|
+ outlineColor.value = params.outlineColor;
|
|
|
+ outlineWidth.value = params.outlineWidth;
|
|
|
+ speed.value = (parseFloat(params.duration) / 1000).toFixed(2);
|
|
|
+ txtVideoUrl.value = params.videoUrl;
|
|
|
+ arcHeight.value = params.odlineHeight;
|
|
|
+ axisX.value = params.axisX;
|
|
|
+ axisY.value = params.axisY;
|
|
|
+ axisZ.value = params.axisZ;
|
|
|
+ // console.log('===设置参数显示>>>', params.lineWidth);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 显示控件设置
|
|
|
+ * @param {Boolean} isShow 是否显示
|
|
|
+ */
|
|
|
+ function _setShowControls(isShow) {
|
|
|
+ isShowColor.value = isShow;
|
|
|
+ isShowText.value = isShow;
|
|
|
+ isShowDirection.value = isShow;
|
|
|
+ isShowOrder.value = isShow;
|
|
|
+ isShowCount.value = isShow;
|
|
|
+ isShowHeight.value = isShow;
|
|
|
+ isShowLineWidth.value = isShow;
|
|
|
+ isShowGlowpower.value = isShow;
|
|
|
+ isShowOutlineColor.value = isShow;
|
|
|
+ isShowOutlineWidth.value = isShow;
|
|
|
+ isShowSpeed.value = isShow;
|
|
|
+ isShowVideoUrl.value = isShow;
|
|
|
+ isShowArcHeight.value = isShow;
|
|
|
+ isShowAxis.value = isShow;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 对外部公开的函数
|
|
|
+ */
|
|
|
+ defineExpose({
|
|
|
+ // updateParams
|
|
|
+ });
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 提交更改
|
|
|
+ */
|
|
|
+ function submit() {
|
|
|
+ let outParam = proxy._params;
|
|
|
+ outParam.height = wallHeight.value;
|
|
|
+ outParam.color = color.value;
|
|
|
+ outParam.direction = directions.filter(item => {
|
|
|
+ return item.key === radioDirection.value;
|
|
|
+ })[0].value;
|
|
|
+ outParam.order = orders.filter(item => {
|
|
|
+ return item.key === radioOrder.value;
|
|
|
+ })[0].value;
|
|
|
+ outParam.count = yCount.value;
|
|
|
+ outParam.text = txtContent.value;
|
|
|
+ outParam.lineWidth = lineWidth.value;
|
|
|
+ outParam.power = glowPower.value;
|
|
|
+ outParam.outlineColor = outlineColor.value;
|
|
|
+ outParam.outlineWidth = outlineWidth.value;
|
|
|
+ outParam.duration = speed.value * 1000;
|
|
|
+ outParam.videoUrl = txtVideoUrl.value;
|
|
|
+ outParam.odlineHeight = arcHeight.value;
|
|
|
+ outParam.bottomHeight = props.params.bottomHeight;
|
|
|
+ outParam.axisX = axisX.value;
|
|
|
+ outParam.axisY = axisY.value;
|
|
|
+ outParam.axisZ = axisZ.value;
|
|
|
+ emit('submit', outParam);
|
|
|
+ dialogVisible.value = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 提交删除
|
|
|
+ */
|
|
|
+ function remove() {
|
|
|
+ emit('remove', {});
|
|
|
+ dialogVisible.value = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 材质方向选择事件
|
|
|
+ * @param {Object} e
|
|
|
+ */
|
|
|
+ function directionChange(e) {
|
|
|
+ if (e.target.value === directions[0].key) {
|
|
|
+ Object.assign(orders, [{
|
|
|
+ key: '自左至右',
|
|
|
+ value: '-'
|
|
|
+ }, {
|
|
|
+ key: '自右至左',
|
|
|
+ value: '+'
|
|
|
+ }]);
|
|
|
+ radioOrder.value = orders[0].key;
|
|
|
+ } else if (e.target.value === directions[1].key) {
|
|
|
+ Object.assign(orders, [{
|
|
|
+ key: '自上至下',
|
|
|
+ value: '-'
|
|
|
+ }, {
|
|
|
+ key: '自下至上',
|
|
|
+ value: '+'
|
|
|
+ }]);
|
|
|
+ radioOrder.value = orders[0].key;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 窗口关闭,修改双向绑定值
|
|
|
+ */
|
|
|
+ function closeDialog() {
|
|
|
+ emit('update:showDialog', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 窗口打开
|
|
|
+ */
|
|
|
+ function openDialog() {
|
|
|
+ updateParams(props.params);
|
|
|
+ }
|
|
|
+</script>
|
|
|
+<style lang="scss">
|
|
|
+ /* 引入element-plus的内部样式 必须在此处引入 否则无效 */
|
|
|
+ /* 为了保证引入的样式文件起作用 必须保证文件名称以.ce.vue结束 */
|
|
|
+ @import 'element-plus/theme-chalk/index.css';
|
|
|
+
|
|
|
+ /* 墙对话框内容行样式 */
|
|
|
+ .jt-wall-row {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ height: 40px;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ /* 行左侧标题样式 */
|
|
|
+ .col-left {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: right;
|
|
|
+ width: 60px;
|
|
|
+ font-family: 'Alimama_ShuHeiTi_Bold';
|
|
|
+ font-weight: bold;
|
|
|
+ margin-right: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 主要内容样式 */
|
|
|
+ .col-main {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+
|
|
|
+ .el-input--suffix {
|
|
|
+ background-color: rgba(255, 255, 255, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-input--suffix * {
|
|
|
+ background-color: rgba(255, 255, 255, 0);
|
|
|
+ color: rgba(255, 255, 255, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 数字组件按钮背景色 */
|
|
|
+ .el-input-number__decrease,
|
|
|
+ .el-input-number__increase {
|
|
|
+ background-color: rgb(52, 137, 255);
|
|
|
+ color: rgb(255, 255, 255);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 墙对话框整体样式 */
|
|
|
+ .jt-wall-dialog {
|
|
|
+ pointer-events: none; // ***覆盖层元素增加可穿透点击事件***
|
|
|
+
|
|
|
+ .el-dialog {
|
|
|
+ pointer-events: auto; // ***弹窗层元素不可穿透点击事件(不影响弹窗层元素的点击事件)***
|
|
|
+ position: absolute !important; //将通知框的position改成absolute,可以在某个div进行显示
|
|
|
+
|
|
|
+ background: rgb(5 45 155 / 70%);
|
|
|
+ min-width: 280px;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ margin-top: 0px;
|
|
|
+
|
|
|
+ /* 对话框标题头样式 */
|
|
|
+ .el-dialog__header {
|
|
|
+ background: url('./image/backheader.png') no-repeat;
|
|
|
+ margin-right: 0px;
|
|
|
+ padding: 6px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 对话框关闭按钮的样式 */
|
|
|
+ .el-dialog__headerbtn {
|
|
|
+ height: 34px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 对话框主体的样式 */
|
|
|
+ .el-dialog__body {
|
|
|
+ padding: 10px;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 颜色选择器的宽度 */
|
|
|
+ .el-color-picker__trigger {
|
|
|
+ width: 120px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-body-foot {
|
|
|
+ position: absolute;
|
|
|
+ bottom: 8px;
|
|
|
+ right: 8px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|