vben:对话框组件(不从父组件传递数据)

本文将介绍如何在vben admin vue 框架中,创建对话框组件,并成功应用的代码。代码即插即用。

结果如下图所示,

在这里插入图片描述

一、创建对话框组件

创建 myModal/index.vue

<template>
  <div>
    <BasicModal
      @register="registerModal"
      v-bind="$attrs"
      title="示例对话框"
      @ok="handleSubmit"
      width="58%"
    >
      <p>这是示例内容</p>
    </BasicModal>
  </div>
</template>
<script lang="ts" setup>
  import { BasicModal, useModalInner } from '/@/components/Modal';
  const [registerModal, { closeModal, setModalProps }] = useModalInner(async (data: any) => {
    setModalProps({ confirmLoading: false });
    console.log(data);
  });
  const handleSubmit = () => {
    closeModal();
  };
</script>

二、应用对话框组件

<template>
  <div class="more"  @click="showModal">
    <span class="more-span">点击显示对话框</span>
    <i class="arrow"></i>
  </div>
  <myModal width="50%" @register="modalOpen" @success="handleSuccess" ></myModal>
</template>

<script lang="ts" setup>
  import { ref } from 'vue';
  import myModal from './myModal/index.vue';
  import { useModal } from '/@/components/Modal';
  const [modalOpen, { openModal }] = useModal();

  // true时显示。
  const showModal = (record: any) => {
    openModal(true, { isUpdate: true, record });
  };
</script>
要实现vben上传组件的数据回显,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了vben组件库。你可以通过以下命令来安装vben-upload组件: ``` npm install @vbenjs/vben-upload ``` 2. 在你的组件中引入vben-upload组件: ```vue <template> <vben-upload v-model="fileList" action="/upload" /> </template> <script> import { ref } from 'vue'; import { VbenUpload } from '@vbenjs/vben-upload'; export default { components: { VbenUpload, }, setup() { const fileList = ref([]); return { fileList, }; }, }; </script> ``` 3. 在上面的代码中,我们使用了`v-model`指令将`fileList`变量与上传组件进行绑定。`action`属性指定了上传文件的URL。 4. 接下来,你需要实现文件数据的回显。可以在组件的`setup`函数中通过异步请求获取已上传的文件数据,并将其赋值给`fileList`变量。 ```vue <script> import { ref, onMounted } from 'vue'; import { VbenUpload } from '@vbenjs/vben-upload'; export default { components: { VbenUpload, }, setup() { const fileList = ref([]); // 异步请求获取已上传的文件数据 const fetchUploadedFiles = async () => { try { const response = await fetch('/api/getUploadedFiles'); const data = await response.json(); fileList.value = data; // 将获取到的文件数据赋值给fileList } catch (error) { console.error(error); } }; onMounted(() => { fetchUploadedFiles(); // 组件挂载后调用fetchUploadedFiles函数获取已上传的文件数据 }); return { fileList, }; }, }; </script> ``` 在上面的代码中,我们在组件挂载后使用`onMounted`钩子函数调用`fetchUploadedFiles`函数来获取已上传的文件数据,并将其赋值给`fileList`变量。 这样,当你的页面加载时,vben-upload组件将会显示已上传的文件数据。 请注意,上述代码中的`/upload`和`/api/getUploadedFiles`只是示例URL,你需要根据你的实际情况进行相应的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值