|
@@ -7,6 +7,7 @@
|
|
import { ElMessage, FormInstance, FormRules } from 'element-plus';
|
|
import { ElMessage, FormInstance, FormRules } from 'element-plus';
|
|
import { useResponse } from '/@/utils/useResponse';
|
|
import { useResponse } from '/@/utils/useResponse';
|
|
import * as api from '../api';
|
|
import * as api from '../api';
|
|
|
|
+import { ref } from 'vue';
|
|
|
|
|
|
const showDialog = defineModel({ default: false });
|
|
const showDialog = defineModel({ default: false });
|
|
const emit = defineEmits([ 'refresh' ]);
|
|
const emit = defineEmits([ 'refresh' ]);
|
|
@@ -53,6 +54,14 @@ const rules = reactive<FormRules<RuleForm>>({
|
|
ipaddress: [{ required: true, message: '请输入IP地址', trigger: 'blur' }],
|
|
ipaddress: [{ required: true, message: '请输入IP地址', trigger: 'blur' }],
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+const previewVisible = ref(false); // 控制预览对话框的显示
|
|
|
|
+const previewImage = ref('');
|
|
|
|
+
|
|
|
|
+const handlePreview = (file) => {
|
|
|
|
+ previewImage.value = file.url || URL.createObjectURL(file.raw); // 获取图片 URL
|
|
|
|
+ previewVisible.value = true; // 显示对话框
|
|
|
|
+};
|
|
|
|
+
|
|
// 超过图片限制时触发的回调
|
|
// 超过图片限制时触发的回调
|
|
const handleExceed: UploadProps['onExceed'] = (files) => {
|
|
const handleExceed: UploadProps['onExceed'] = (files) => {
|
|
upload.value!.clearFiles();
|
|
upload.value!.clearFiles();
|
|
@@ -99,6 +108,7 @@ async function handleSave() {
|
|
const resetForm = (formEl: FormInstance | undefined) => {
|
|
const resetForm = (formEl: FormInstance | undefined) => {
|
|
if (!formEl) return;
|
|
if (!formEl) return;
|
|
formEl.resetFields();
|
|
formEl.resetFields();
|
|
|
|
+ formData.images = [];
|
|
showDialog.value = false;
|
|
showDialog.value = false;
|
|
};
|
|
};
|
|
|
|
|
|
@@ -144,6 +154,7 @@ onMounted(() => {});
|
|
action="#"
|
|
action="#"
|
|
list-type="picture-card"
|
|
list-type="picture-card"
|
|
accept="image/*"
|
|
accept="image/*"
|
|
|
|
+ :on-preview="handlePreview"
|
|
>
|
|
>
|
|
<el-icon>
|
|
<el-icon>
|
|
<Plus />
|
|
<Plus />
|
|
@@ -158,6 +169,10 @@ onMounted(() => {});
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <!-- 预览对话框 -->
|
|
|
|
+ <el-dialog v-model="previewVisible" width="30%" height="30%">
|
|
|
|
+ <img :src="previewImage" alt="预览图" style="width: 100%; height: auto;" />
|
|
|
|
+ </el-dialog>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|