|
@@ -15,8 +15,8 @@
|
|
|
<div class="jAgYAh" @click="reversal('top')"></div>
|
|
|
</el-tooltip>
|
|
|
<div class="cPsGLK" v-else>
|
|
|
- <input class="bcwrvZ_input" ref="inputRef" v-model="topNumber" type="number" @blur="handleBlur"
|
|
|
- v-if="topInput">
|
|
|
+ <input class="bcwrvZ_input" ref="inputRef" v-model="topNumber" type="number" @input="handleInput"
|
|
|
+ @blur="handleBlur" v-if="topInput">
|
|
|
<p class="bcwrvZ" @dblclick="handleDoubleClick('top')" v-else>{{ topNumber }}</p>
|
|
|
</div>
|
|
|
<!-- 右 -->
|
|
@@ -24,8 +24,8 @@
|
|
|
<div class="bTzFoR" @click="reversal('right')"></div>
|
|
|
</el-tooltip>
|
|
|
<div class="gjYPCM" v-else>
|
|
|
- <input class="cMizyy_input" ref="inputRef1" v-model="rightNumber" type="number" @blur="handleBlur"
|
|
|
- v-if="rightInput">
|
|
|
+ <input class="cMizyy_input" ref="inputRef1" v-model="rightNumber" type="number" @input="handleInput1"
|
|
|
+ @blur="handleBlur" v-if="rightInput">
|
|
|
<p class="cMizyy" @dblclick="handleDoubleClick('right')" v-else>{{ rightNumber }}</p>
|
|
|
</div>
|
|
|
<!-- 下 -->
|
|
@@ -33,8 +33,8 @@
|
|
|
<div class="eIwCFM" @click="reversal('bottom')"></div>
|
|
|
</el-tooltip>
|
|
|
<div class="YoRMb" v-else>
|
|
|
- <input class="gboeoP_input" ref="inputRef2" v-model="bottomNumber" type="number" @blur="handleBlur"
|
|
|
- v-if="bottomInput">
|
|
|
+ <input class="gboeoP_input" ref="inputRef2" v-model="bottomNumber" type="number" @input="handleInput2"
|
|
|
+ @blur="handleBlur" v-if="bottomInput">
|
|
|
<p class="gboeoP" @dblclick="handleDoubleClick('bottom')" v-else>{{ bottomNumber }}</p>
|
|
|
</div>
|
|
|
<!-- 左 -->
|
|
@@ -42,8 +42,8 @@
|
|
|
<div class="fVBVzi" @click="reversal('left')"></div>
|
|
|
</el-tooltip>
|
|
|
<div class="ljHwKA" v-else>
|
|
|
- <input class="eEegxJ_input" ref="inputRef3" v-model="leftNumber" type="number" @blur="handleBlur"
|
|
|
- v-if="leftInput">
|
|
|
+ <input class="eEegxJ_input" ref="inputRef3" v-model="leftNumber" type="number" @input="handleInput3"
|
|
|
+ @blur="handleBlur" v-if="leftInput">
|
|
|
<p class="eEegxJ" @dblclick="handleDoubleClick('left')" v-else>{{ leftNumber }}</p>
|
|
|
</div>
|
|
|
<!-- 视图盒子 -->
|
|
@@ -54,10 +54,12 @@
|
|
|
<div class="center_in_column" style="margin-left: 11px;">
|
|
|
<div class="kdbebz">
|
|
|
<el-tooltip content="固定宽度" placement="top">
|
|
|
- <div :class="fixedWidth ? 'kEmrUa' : 'hIrtuZ'" @click="getFixedWidth"></div>
|
|
|
+ <div :style="{ pointerEvents: !configList.resizable ? 'none' : 'auto' }"
|
|
|
+ :class="fixedWidth ? 'kEmrUa' : 'hIrtuZ'" @click="getFixedWidth"></div>
|
|
|
</el-tooltip>
|
|
|
<el-tooltip content="固定高度" placement="top">
|
|
|
- <div :class="fixedHeight ? 'hXQonZ' : 'tOPsm'" @click="getFixedHeight"></div>
|
|
|
+ <div :style="{ pointerEvents: !configList.resizable ? 'none' : 'auto' }"
|
|
|
+ :class="fixedHeight ? 'hXQonZ' : 'tOPsm'" @click="getFixedHeight"></div>
|
|
|
</el-tooltip>
|
|
|
</div>
|
|
|
<div class="iUnNSJ">固定尺寸</div>
|
|
@@ -67,8 +69,19 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { ref } from "vue";
|
|
|
-
|
|
|
+import { ref, watch } from "vue";
|
|
|
+const props = defineProps({
|
|
|
+ configData: {
|
|
|
+ type: Object,
|
|
|
+ required: true
|
|
|
+ },
|
|
|
+ cssData: {
|
|
|
+ type: Object,
|
|
|
+ required: true
|
|
|
+ },
|
|
|
+})
|
|
|
+const configList: any = ref({})
|
|
|
+const cssList: any = ref({})
|
|
|
// 固定宽度
|
|
|
const fixedWidth = ref(true)
|
|
|
// 固定高度
|
|
@@ -76,24 +89,35 @@ const fixedHeight = ref(true)
|
|
|
// 固定顶部
|
|
|
const topFlag = ref(false)
|
|
|
const topInput = ref(false)
|
|
|
-const topNumber: any = ref(22)
|
|
|
+const topNumber: any = ref()
|
|
|
// 固定右侧
|
|
|
const rightFlag = ref(true)
|
|
|
const rightInput = ref(false)
|
|
|
-const rightNumber: any = ref(22)
|
|
|
+const rightNumber: any = ref()
|
|
|
// 固定底部
|
|
|
const bottomFlag = ref(true)
|
|
|
const bottomInput = ref(false)
|
|
|
-const bottomNumber: any = ref(22)
|
|
|
+const bottomNumber: any = ref()
|
|
|
// 固定左侧
|
|
|
const leftFlag = ref(false)
|
|
|
const leftInput = ref(false)
|
|
|
-const leftNumber: any = ref(22)
|
|
|
-
|
|
|
+const leftNumber: any = ref()
|
|
|
+// 控制上下左右输入框自动聚焦
|
|
|
const inputRef = ref<HTMLInputElement | null>(null);
|
|
|
const inputRef1 = ref<HTMLInputElement | null>(null);
|
|
|
const inputRef2 = ref<HTMLInputElement | null>(null);
|
|
|
const inputRef3 = ref<HTMLInputElement | null>(null);
|
|
|
+
|
|
|
+watch(() => [props.configData, props.cssData], (newValue) => {
|
|
|
+ if (newValue) {
|
|
|
+ configList.value = newValue[0]
|
|
|
+ cssList.value = newValue[1]
|
|
|
+ topNumber.value = cssList.value.top
|
|
|
+ leftNumber.value = cssList.value.left
|
|
|
+ fixedWidth.value = configList.value.fixedWidth
|
|
|
+ fixedHeight.value = configList.value.fixedHeight
|
|
|
+ }
|
|
|
+}, { immediate: true, deep: true })
|
|
|
// 双击输入框获取焦点
|
|
|
function handleDoubleClick(params: any) {
|
|
|
if (params == 'top') {
|
|
@@ -126,6 +150,7 @@ function handleDoubleClick(params: any) {
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
+const emit = defineEmits(['update:configData', 'update:cssData',]);
|
|
|
// 失去焦点
|
|
|
function handleBlur() {
|
|
|
topInput.value = false
|
|
@@ -133,9 +158,28 @@ function handleBlur() {
|
|
|
bottomInput.value = false
|
|
|
leftInput.value = false
|
|
|
}
|
|
|
+function handleInput(event: any) {
|
|
|
+ const input = event.target as HTMLInputElement;
|
|
|
+ console.log('Input value changed to:', input.value);
|
|
|
+}
|
|
|
+function handleInput1(event: any) {
|
|
|
+ console.log(event, 6767);
|
|
|
+
|
|
|
+}
|
|
|
+function handleInput2(event: any) {
|
|
|
+ console.log(event, 6767);
|
|
|
+
|
|
|
+}
|
|
|
+function handleInput3(event: any) {
|
|
|
+ console.log(event, 6767);
|
|
|
+
|
|
|
+}
|
|
|
// 固定宽度
|
|
|
function getFixedWidth() {
|
|
|
if (fixedWidth.value) {
|
|
|
+ let num = 375 - cssList.value.left - cssList.value.width
|
|
|
+ console.log(num, cssList.value.left, cssList.value.width);
|
|
|
+ rightNumber.value = num
|
|
|
fixedWidth.value = false
|
|
|
rightFlag.value = false
|
|
|
leftFlag.value = false
|
|
@@ -144,6 +188,8 @@ function getFixedWidth() {
|
|
|
rightFlag.value = true
|
|
|
leftFlag.value = false
|
|
|
}
|
|
|
+ configList.value.fixedWidth = fixedWidth.value
|
|
|
+ emit('update:configData', configList);
|
|
|
}
|
|
|
// 固定高度
|
|
|
function getFixedHeight() {
|
|
@@ -156,6 +202,8 @@ function getFixedHeight() {
|
|
|
topFlag.value = false
|
|
|
bottomFlag.value = true
|
|
|
}
|
|
|
+ configList.value.fixedHeight = fixedHeight.value
|
|
|
+ emit('update:configData', configList);
|
|
|
}
|
|
|
//反转/切换
|
|
|
function reversal(params: any) {
|
|
@@ -616,4 +664,5 @@ input[type="number"]:focus {
|
|
|
margin-top: 8px;
|
|
|
text-align: center;
|
|
|
transform: scale(0.85);
|
|
|
-}</style>
|
|
|
+}
|
|
|
+</style>
|