|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
- <uni-popup background-color="#fff" ref="fillRef">
|
|
|
+ <uni-popup type="top" background-color="#fff" ref="fillRef">
|
|
|
<view class="popup-content">
|
|
|
- <input v-model.trim="result" :focus="true" placeholder="请输入答案" style="width: 100%" @blur="onBlur" type="text" class="input-box" />
|
|
|
+ <input v-model.trim="result" :focus="true" placeholder="请输入答案" @blur="onBlur" @confirm="handleConfirm" class="my-textarea" type="text" />
|
|
|
</view>
|
|
|
</uni-popup>
|
|
|
</template>
|
|
@@ -10,6 +10,7 @@
|
|
|
import {ref, watch} from "vue";
|
|
|
const fillRef = ref(null);
|
|
|
const result = ref('');
|
|
|
+ const focus = ref(false);
|
|
|
const emits = defineEmits(['blur']);
|
|
|
const props = defineProps({
|
|
|
value: {
|
|
@@ -26,12 +27,23 @@
|
|
|
})
|
|
|
|
|
|
function showPopup() {
|
|
|
- fillRef.value.open('top');
|
|
|
+ fillRef.value.open();
|
|
|
}
|
|
|
+
|
|
|
+ function handleConfirm() {
|
|
|
+ fillRef.value.close();
|
|
|
+ }
|
|
|
+
|
|
|
function onBlur() {
|
|
|
emits("blur", {result: result.value,index: props.index});
|
|
|
+ focus.value = false;
|
|
|
}
|
|
|
|
|
|
+ uni.$on("swiper-change", () => {
|
|
|
+ emits("blur", {result: result.value,index: props.index});
|
|
|
+ fillRef.value.close()
|
|
|
+ })
|
|
|
+
|
|
|
defineExpose({
|
|
|
showPopup
|
|
|
})
|
|
@@ -41,4 +53,7 @@
|
|
|
.popup-content {
|
|
|
padding: 20px;
|
|
|
}
|
|
|
+.my-textarea {
|
|
|
+ height: 36px;
|
|
|
+}
|
|
|
</style>
|