BasicInfo.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <script setup name="BasicInfo">
  2. import { ref } from 'vue'
  3. const props = defineProps({
  4. label: {
  5. type: String
  6. },
  7. name: {
  8. type: String
  9. }
  10. })
  11. const formRef = ref()
  12. const form = ref({
  13. 图标: '',
  14. 名称: 'test@example.com',
  15. 分组: 'Lolowan',
  16. 谁可以发起该流程: '100',
  17. 管理员: ''
  18. })
  19. const rules = {
  20. 图标: [
  21. {
  22. required: true,
  23. message: '请选择图标'
  24. }
  25. ],
  26. 名称: [
  27. {
  28. required: true,
  29. message: '请输入名称'
  30. }
  31. ],
  32. 分组: [
  33. {
  34. required: true,
  35. message: '请选择分组'
  36. }
  37. ],
  38. 管理员: [
  39. {
  40. required: true,
  41. message: '请选择管理员'
  42. }
  43. ]
  44. }
  45. // const submitHandler = (cb: ((value: any) => any)) => {
  46. const validate = () => {
  47. return new Promise((resolve, reject) => {
  48. formRef.value.validate((valid, errObj) => {
  49. if (valid) {
  50. console.error('valid 成功')
  51. // cb?.(form.value)
  52. resolve(form.value)
  53. // return form.value
  54. return
  55. }
  56. return reject([props.name, errObj])
  57. })
  58. })
  59. }
  60. defineExpose({
  61. formRef,
  62. validate
  63. })
  64. </script>
  65. <template>
  66. <el-tab-pane class="basic-info-wrap" :label="label" :name="name">
  67. <!-- <template #label>
  68. <span class="flow-name">{{ 'flowName' }}</span>
  69. 基础信息
  70. </template>-->
  71. <el-form ref="formRef" :model="form" :rules="rules" label-position="top">
  72. <el-form-item label="图标" prop="图标">
  73. <!-- todo...-->
  74. <!-- <scUpload v-model="form.图标" title="图标" />-->
  75. </el-form-item>
  76. <el-form-item label="名称" prop="名称">
  77. <el-input v-model="form.名称" clearable></el-input>
  78. </el-form-item>
  79. <el-form-item label="分组" prop="分组">
  80. <el-input v-model="form.分组" clearable></el-input>
  81. </el-form-item>
  82. <el-form-item label="谁可以发起该流程(默认全员)" prop="谁可以发起该流程">
  83. <el-input v-model="form.谁可以发起该流程"></el-input>
  84. </el-form-item>
  85. <el-form-item label="管理员" prop="管理员">
  86. <el-input v-model="form.管理员"></el-input>
  87. </el-form-item>
  88. </el-form>
  89. </el-tab-pane>
  90. </template>
  91. <style scoped>
  92. .basic-info-wrap {
  93. //background: var(--el-color-danger);
  94. }
  95. .flow-name {
  96. padding-right: 4px;
  97. color: var(--el-color-danger);
  98. }
  99. </style>