|
|
|
@ -0,0 +1,338 @@
|
|
|
|
|
<template>
|
|
|
|
|
<el-dialog
|
|
|
|
|
title="点九图"
|
|
|
|
|
:visible.sync="dialogVisible"
|
|
|
|
|
:modal="true"
|
|
|
|
|
width="75%"
|
|
|
|
|
:modal-append-to-body="false"
|
|
|
|
|
:appen-to-body="false"
|
|
|
|
|
class="bs-dialog-wrap bs-el-dialog"
|
|
|
|
|
@closed="close"
|
|
|
|
|
@opened='getDom'
|
|
|
|
|
>
|
|
|
|
|
<div class="content">
|
|
|
|
|
<div>
|
|
|
|
|
<table border="1" cellspacing="0">
|
|
|
|
|
<tr>
|
|
|
|
|
<th>方向</th>
|
|
|
|
|
<th>描述</th>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>左上角</td>
|
|
|
|
|
<td>不能拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>右上角</td>
|
|
|
|
|
<td>不能拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>左下角</td>
|
|
|
|
|
<td>不能拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>右下角</td>
|
|
|
|
|
<td>不能拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>左侧</td>
|
|
|
|
|
<td>宽度不变,高度自动拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>右侧</td>
|
|
|
|
|
<td>宽度不变,高度自动拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>顶部</td>
|
|
|
|
|
<td>高度不变,宽度自动拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>底部</td>
|
|
|
|
|
<td>高度不变,宽度自动拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>中部</td>
|
|
|
|
|
<td>宽度,高度自动拉伸</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="img">
|
|
|
|
|
<span class="toptitle">
|
|
|
|
|
<!-- <InputCom @changeStyle='changeTop' :Fx="['上','下']" :number="top" /> -->
|
|
|
|
|
<el-input-number
|
|
|
|
|
@change='changeTop'
|
|
|
|
|
v-model="top"
|
|
|
|
|
class="bs-el-input-number"
|
|
|
|
|
:step=" 1"
|
|
|
|
|
:min="0"
|
|
|
|
|
:max="100000"
|
|
|
|
|
/>
|
|
|
|
|
</span>
|
|
|
|
|
<span class="righttitle">
|
|
|
|
|
<el-input-number
|
|
|
|
|
@change='changeRight'
|
|
|
|
|
v-model="right"
|
|
|
|
|
class="bs-el-input-number"
|
|
|
|
|
:step=" 1"
|
|
|
|
|
:min="0"
|
|
|
|
|
:max="100000"
|
|
|
|
|
/>
|
|
|
|
|
</span>
|
|
|
|
|
<span class="bottomtitle">
|
|
|
|
|
<el-input-number
|
|
|
|
|
@change='changeBottom'
|
|
|
|
|
v-model="bottom"
|
|
|
|
|
class="bs-el-input-number"
|
|
|
|
|
:step=" 1"
|
|
|
|
|
:min="0"
|
|
|
|
|
:max="100000"
|
|
|
|
|
/>
|
|
|
|
|
</span>
|
|
|
|
|
<span class="lefttitle">
|
|
|
|
|
<el-input-number
|
|
|
|
|
@change='changeLeft'
|
|
|
|
|
v-model="left"
|
|
|
|
|
class="bs-el-input-number"
|
|
|
|
|
:step=" 1"
|
|
|
|
|
:min="0"
|
|
|
|
|
:max="100000"
|
|
|
|
|
/>
|
|
|
|
|
</span>
|
|
|
|
|
<el-image
|
|
|
|
|
style="max-width:550px"
|
|
|
|
|
:src="this.imgUrl||url"
|
|
|
|
|
fit="fill"></el-image>
|
|
|
|
|
<div
|
|
|
|
|
@mousedown="onMouseDown"
|
|
|
|
|
@mouseup="onMouseUp"
|
|
|
|
|
@mousemove="onMousemove"
|
|
|
|
|
@click="changeSymbol('top')"
|
|
|
|
|
id="top"
|
|
|
|
|
class="top">
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div @click="changeSymbol('right')" id="right" class="right">
|
|
|
|
|
</div>
|
|
|
|
|
<div @click="changeSymbol('bottom')" id="bottom" class="bottom">
|
|
|
|
|
</div>
|
|
|
|
|
<div @click="changeSymbol('left')" id="left" class="left">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
slot="footer"
|
|
|
|
|
class="dialog-footer"
|
|
|
|
|
>
|
|
|
|
|
<el-button
|
|
|
|
|
class="bs-el-button-default"
|
|
|
|
|
@click="dialogVisible = false"
|
|
|
|
|
>
|
|
|
|
|
取消
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
type="primary"
|
|
|
|
|
@click="confirm"
|
|
|
|
|
>
|
|
|
|
|
确定
|
|
|
|
|
</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
import { getFileUrl } from 'data-room-ui/js/utils/file'
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: 'SourceDialog',
|
|
|
|
|
data () {
|
|
|
|
|
return {
|
|
|
|
|
dialogVisible: false,
|
|
|
|
|
imgUrl:'',
|
|
|
|
|
top:0,
|
|
|
|
|
right:0,
|
|
|
|
|
bottom:0,
|
|
|
|
|
left:0,
|
|
|
|
|
symbol:'',
|
|
|
|
|
isDown:false,
|
|
|
|
|
x:0,
|
|
|
|
|
y:0,
|
|
|
|
|
l:0,
|
|
|
|
|
t:0
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
url(){
|
|
|
|
|
return require('data-room-ui/BorderComponents/GcBorder16/component.png')
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted () {
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
confirm(){
|
|
|
|
|
this.$emit('getArray',[this.top,this.right,this.bottom,this.left])
|
|
|
|
|
this.dialogVisible = false
|
|
|
|
|
},
|
|
|
|
|
getDom(){
|
|
|
|
|
// const a=document.getElementById('top')
|
|
|
|
|
// const b=document.getElementById('right')
|
|
|
|
|
// const c=document.getElementById('bottom')
|
|
|
|
|
// const d=document.getElementById('left')
|
|
|
|
|
// this.top=getComputedStyle(a).top.slice(0,-2)
|
|
|
|
|
// this.right=getComputedStyle(b).right.slice(0,-2)
|
|
|
|
|
// this.bottom=getComputedStyle(c).bottom.slice(0,-2)
|
|
|
|
|
// this.left=getComputedStyle(d).left.slice(0,-2)
|
|
|
|
|
},
|
|
|
|
|
onMouseUp(){
|
|
|
|
|
// this.isDown=false;
|
|
|
|
|
},
|
|
|
|
|
onMousemove(e){
|
|
|
|
|
// const a=document.getElementById('top')
|
|
|
|
|
// if(this.isDown==false){
|
|
|
|
|
// return
|
|
|
|
|
// }
|
|
|
|
|
// console.log(e)
|
|
|
|
|
// let ny=e.clientY-194;
|
|
|
|
|
// let nt=ny-(this.y-this.t);
|
|
|
|
|
// a.style.top=nt+"px"
|
|
|
|
|
// this.top=a.style.top
|
|
|
|
|
},
|
|
|
|
|
onMouseDown(e){
|
|
|
|
|
// this.y=e.layerY
|
|
|
|
|
// this.t=this.top;
|
|
|
|
|
// this.isDown=true
|
|
|
|
|
// console.log(this.x,this.l)
|
|
|
|
|
},
|
|
|
|
|
changeSymbol(val){
|
|
|
|
|
this.symbol=val
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
close(){
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
changeTop(val){
|
|
|
|
|
const a=document.getElementById('top')
|
|
|
|
|
a.style.top=val+"px"
|
|
|
|
|
},
|
|
|
|
|
changeRight(val){
|
|
|
|
|
const a=document.getElementById('right')
|
|
|
|
|
a.style.right=val+"px"
|
|
|
|
|
},
|
|
|
|
|
changeBottom(val){
|
|
|
|
|
const a=document.getElementById('bottom')
|
|
|
|
|
a.style.bottom=val+"px"
|
|
|
|
|
},
|
|
|
|
|
changeLeft(val){
|
|
|
|
|
const a=document.getElementById('left')
|
|
|
|
|
a.style.left=val+"px"
|
|
|
|
|
},
|
|
|
|
|
init (val,array) {
|
|
|
|
|
if(!val.startsWith('http')){
|
|
|
|
|
this.imgUrl=getFileUrl(val)
|
|
|
|
|
}else{
|
|
|
|
|
this.imgUrl=val
|
|
|
|
|
}
|
|
|
|
|
if(array){
|
|
|
|
|
[this.top,this.right,this.bottom,this.left]=array
|
|
|
|
|
this.$nextTick(()=>{
|
|
|
|
|
this.changeTop(this.top)
|
|
|
|
|
this.changeRight(this.right)
|
|
|
|
|
this.changeBottom(this.bottom)
|
|
|
|
|
this.changeLeft(this.left)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
this.dialogVisible = true
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
// @import '../../assets/style/bsTheme.scss';
|
|
|
|
|
::v-deep .el-dialog__body{
|
|
|
|
|
background-color: #232832;
|
|
|
|
|
position: relative;
|
|
|
|
|
min-height: 450px;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
display: flex;
|
|
|
|
|
padding: 16px 16px 16px 16px !important;
|
|
|
|
|
}
|
|
|
|
|
.content{
|
|
|
|
|
margin: 20px 0;
|
|
|
|
|
width: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
.img{
|
|
|
|
|
position: relative;
|
|
|
|
|
.toptitle{
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: -30px;
|
|
|
|
|
left: 34%;
|
|
|
|
|
}
|
|
|
|
|
.righttitle{
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 50%;
|
|
|
|
|
right: -110px;
|
|
|
|
|
}
|
|
|
|
|
.bottomtitle{
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: -30px;
|
|
|
|
|
left: 34%;
|
|
|
|
|
}
|
|
|
|
|
.lefttitle{
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 50%;
|
|
|
|
|
left: -110px;
|
|
|
|
|
}
|
|
|
|
|
// height: 100%;
|
|
|
|
|
.top{
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
height: 1px;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
.right{
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 0;
|
|
|
|
|
top: 0;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
width: 1px;
|
|
|
|
|
}
|
|
|
|
|
.bottom{
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
height: 1px;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
.left{
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 0;
|
|
|
|
|
top: 0;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
width: 1px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-input-number--mini{
|
|
|
|
|
width: 100px;
|
|
|
|
|
.el-input__inner{
|
|
|
|
|
padding-right: 30px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
table{
|
|
|
|
|
margin-right: 200px;
|
|
|
|
|
color: #fff;
|
|
|
|
|
border: 1px solid #fff;
|
|
|
|
|
}
|
|
|
|
|
th{
|
|
|
|
|
padding: 4px;
|
|
|
|
|
}
|
|
|
|
|
td{
|
|
|
|
|
padding: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|