vue3+elementplus+ts dialogform 表单添加,编辑回显

废话不多说上代码

/* eslint-disable prefer-const */
<template>
  <el-dialog
    v-model="dialogVisible"
    :close-on-click-modal="false"
    :close-on-press-escape="false"
    :title="formObj.userId ? '编辑': '新增'"
    width="1000px"
  >
    <el-form :model="formObj"  :rules="rules" ref="userform" label-width="100px">
      <el-form-item label="登录名:">
        <el-input v-model="formObj.userCode" placeholder="请输入登录名"/>
      </el-form-item>
      <el-form-item label="手机号码:">
        <el-input v-model="formObj.mobile"  maxlength="20" placeholder="请输入手机号码"/>
      </el-form-item>
      <el-form-item label="密码:">
        <el-input v-model="formObj.password" maxlength="32" placeholder="请输入密码"/>
      </el-form-item>
      <el-form-item label="用户姓名:">
        <el-input v-model="formObj.userName" placeholder="请输入用户姓名"/>
      </el-form-item>
      <el-form-item label="关联角色:"  prop="description">
        <el-input v-model="formObj.roleIdStr" placeholder="请选择关联角色"/>
      </el-form-item>
      <el-form-item label="关联仓库:"  prop="description">
        <!-- <el-input v-model="formObj.roleIdStr" placeholder="请选择关联角色"/> -->
        <!-- 单组件 -->
        <!-- <template :v-slot="`default`">
        </template> -->
      </el-form-item>
    </el-form>
    <template #footer>
      <el-button key="submit" type="primary" :loading="loading" @click="save">保存</el-button>
      <el-button key="back" @click="cancle">取消</el-button>
    </template>
  </el-dialog>
</template>
<script lang="ts">
import { defineComponent, onMounted, PropType, reactive, ref, toRaw} from 'vue'
import { ElForm } from 'element-plus'
const dialogVisible = ref<boolean>(false)
const loading = ref<boolean>(false)
const rules = reactive({})
// const formObj = reactive({
//   userCode: '',
//   mobile: '',
//   password: '',
//   userName: '',
//   roleIdStr: ''
// })
const formObj = reactive({})
export default defineComponent({
  props: {
    obj: Object
  },
  setup(props, context) {
    // form
    const userform = ref<typeof ElForm>()
    // 重置
    // 新增弹框 - 提交
    const onSubmitAdd: any = async (values: any, reset: () => void) => {
      //  onSubmitLoading.value = true
    }
    const save = () => {
      try {
        const valid: boolean | undefined = userform.value?.validate()
        if (valid === true) {
           onSubmitAdd(formObj)
        }
      } catch(error) {
        // ElMessage.warning('验证不通过,请检查输入')
      }
    }
    const cancle = () => {
      dialogVisible.value = false
    }
    const reset = () => {
      dialogVisible.value = true
    }
    const open = () => {
      const userId: string | null = props.obj?.userId
      Object.assign(formObj, userId ? props.obj : {})
      dialogVisible.value = true
    }
    
    onMounted(() => {
      // console.log(111)
    })
    return {
      formObj,
      userform,
      reset,
      rules,
      open,
      save,
      cancle,
      dialogVisible,
      loading
    }
  }
})
</script>

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue3 是一种现代化的 JavaScript 框架,它提供了响应式的数据绑定和组件化的开发模式。ElementPlus 是一个基于 Vue3 的 UI 组件库,它提供了一系列美观易用的组件,帮助开发者快速构建漂亮的后台管理系统。Vite 是一个新一代的前端构建工具,它利用了 ES 模块化的特性,实现了快速的冷启动和热模块替换,在开发过程中具有很高的效率。TS 是 TypeScript 的简称,它是一种多功能的 JavaScript 的超集,提供了静态类型检查和面向对象编程的特性。 通过结合这些技术,我们可以开发出一个高效、可维护和可扩展的后台管理系统。在使用 Vue3 开发时,我们可以充分利用其提供的 Composition API,编写可复用的逻辑代码,并利用响应式的数据绑定实现页面的数据驱动。ElementPlus 提供了丰富的组件库,可以用于构建菜单、表格、表单、图表等常见的后台管理系统所需的功能。Vite 的快速启动和热模块替换功能,可以大大提升开发效率,使开发者能够更快地看到修改后的效果。而在使用 TypeScript 进行开发时,静态类型检查可以帮助我们在编码过程中发现潜在的问题,并提供更好的代码提示,提高开发效率和代码可读性。 综上所述,Vue3、ElementPlus、Vite和TS 的组合,给后台管理系统的开发带来了很多便利和优势,它们的使用可以提高开发效率,减少开发错误,并且使得系统更加稳定和易于维护。对于开发者来说,掌握这些技术将对提升自身的开发能力和竞争力非常有益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值