不会爬树的猴 2 жил өмнө
parent
commit
c94f7598fb

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 69 - 0
src/components/CrMap/SketchViewModel_back.js


+ 157 - 0
src/components/jt-dialog/dialog.vue

@@ -0,0 +1,157 @@
+<script setup>
+/**
+ * element-plus组件
+ */
+import { ElDialog } from 'element-plus';
+
+/**
+ * element-plus字体
+ */
+import { CircleCloseFilled, Warning } from '@element-plus/icons-vue';
+</script>
+
+<template>
+	<div class="jt-dialog">
+		<!-- 
+			modal:是否需要遮罩层
+			close-on-click-modal:是否可以通过点击 modal 关闭 Dialog
+		 -->
+		<el-dialog
+			:class="[animationClass]"
+			draggable
+			:modal="false"
+			:destroy-on-close="false"
+			v-model="dialogVisible"
+			:title="title"
+			:style="{ right: right, background: background, height: height, width: width, top: top }"
+			@close="handleClose"
+		>
+			<template #header>
+				<div slot="title" class="header-title">
+					<span style="line-height:24px;font-size:18px;color:#fff;font-family: 'Alimama_ShuHeiTi_Bold'">{{ title }}</span>
+				</div>
+			</template>
+
+			<template #default>
+				<div class="odin-dialog__content"><slot></slot></div>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+export default {
+	name: '',
+	props: {
+		showDialog: {
+			//接受父级组件的显示标记,用于被watch
+			type: Boolean,
+			default: false
+		},
+		title: {
+			//Dialog 的标题
+			type: String,
+			default: 'jt-dialog'
+		},
+		width: {
+			//Dialog 的宽度
+			type: String,
+			default: '300px'
+		},
+		top: {
+			type: String,
+			default: '0px'
+		},
+		right: {
+			type: String,
+			default: '10px'
+		},
+		direction: {
+			type: String, //弹出方向
+			default: 'rtl' //rtl 从右到左 / ltr 从左到右 / ttb 从上到下/ btt 从下到上
+		},
+
+		height: {
+			//Dialog 的高度
+			type: String,
+			default: '100%'
+		},
+		background: {
+			type: String,
+			default: 'rgb(0 44 126 / 68%)'
+		}
+	},
+
+	/**
+	 * computed的响应式依赖(缓存)
+	 **/
+	computed: {
+		//渐入动画
+		animationClass() {
+			if (this.direction === 'rtl') {
+				return 'fadein-right';
+			} else if (this.direction === 'ltr') {
+				return 'fadein-left';
+			} else if (this.direction === 'ttb') {
+				return 'fadein-top';
+			} else if (this.direction === 'btt') {
+				return 'fadein-bottom';
+			} else {
+				return 'fadein-center';
+			}
+		}
+	},
+
+	/* 数据 */
+	data() {
+		return {
+			dialogVisible: this.showDialog // 子组件自己的显示标记,用于真正切换dialog的显示/隐藏
+		};
+	},
+	watch: {
+		//观察父级组件的showDialog,并将showDialog的最新值设置给dialogVisible
+		showDialog: function(newVal, oldVal) {
+			this.dialogVisible = newVal;
+		}
+	},
+
+	/* 方法 */
+	methods: {
+		/**
+		 * 关闭弹出框事件,触发父级组件的closeJTDialog方法
+		 */
+		handleClose() {
+			this.$emit('closeJTDialog');
+		}
+	},
+
+	mounted() {}
+};
+</script>
+
+<style lang="scss">
+// el-dialog 加上scoped不起效果
+.jt-dialog {
+	pointer-events: none; // ***覆盖层元素增加可穿透点击事件***
+
+	.el-dialog {
+		pointer-events: auto; // ***弹窗层元素不可穿透点击事件(不影响弹窗层元素的点击事件)***
+		position: absolute !important; //将通知框的position改成absolute,可以在某个div进行显示
+
+		background: rgb(5 45 155 / 70%);
+		min-width: 300px;
+		overflow: hidden;
+
+		.el-dialog__header {
+			background: url('../../assets/image/backheader.png') no-repeat;
+			margin-right: 0px;
+			padding: 14px;
+		}
+
+		.el-dialog__body {
+			padding: 10px;
+			color: #fff;
+		}
+	}
+}
+</style>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно