|   | 
| <template> | 
|   <a-button :type="edit=='edit' ? 'text' : 'primary'" @click="handleClick"> | 
|     <template #icon v-if="edit=='add'"> | 
|       <icon-plus /> | 
|     </template> | 
|     {{edit=='edit' ? '编辑' : '新建账号'}} | 
|   </a-button> | 
|   <a-modal v-model:visible="visible" :title="edit=='edit' ? '编辑' : '新建账号'" @before-open="handleOpened" @cancel="handleCancel" @before-ok="handleBeforeOk"> | 
|     <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" > | 
|       <a-form-item field="name" label="用户名"> | 
|         <a-input v-model="form.name" /> | 
|       </a-form-item> | 
|       <a-form-item field="nameJoin" label="昵称"> | 
|         <a-input v-model="form.nameJoin" /> | 
|       </a-form-item> | 
| <!--      <a-form-item field="post" label="Post">--> | 
| <!--        <a-select v-model="form.post">--> | 
| <!--          <a-option value="post1">Post1</a-option>--> | 
| <!--          <a-option value="post2">Post2</a-option>--> | 
| <!--          <a-option value="post3">Post3</a-option>--> | 
| <!--          <a-option value="post4">Post4</a-option>--> | 
| <!--        </a-select>--> | 
| <!--      </a-form-item>--> | 
|       <a-form-item label="备注"> | 
|         <a-textarea  v-model="form.txt" placeholder="请输入" allow-clear/> | 
|       </a-form-item> | 
| <!--      <a-form-item>--> | 
| <!--        <div style="width: 100%;text-align: right">--> | 
| <!--          <a-button @click="visible = false">取消</a-button>--> | 
| <!--          <a-button style="margin-left: 10px" type="primary" html-type="submit">确定</a-button>--> | 
| <!--        </div>--> | 
| <!--      </a-form-item>--> | 
|     </a-form> | 
|   </a-modal> | 
| </template> | 
|   | 
| <script lang="ts" setup> | 
| import { onMounted ,onBeforeMount, reactive, ref } from "vue"; | 
|   | 
| const props = defineProps({ | 
|   edit: { | 
|     type: String, | 
|     default: 'add' | 
|   }, | 
|   record: { | 
|     type: Object, | 
|     default: () => { | 
|       return {} | 
|     } | 
|   } | 
| }) | 
| const visible = ref(false); | 
| const loading = ref(false); | 
| const form = reactive({ | 
|   name: '',// 用户名 | 
|   nameJoin: '',// 昵称 | 
|   post: '',// 岗位 | 
|   txt: '',// 备注 | 
| }); | 
| const formRef = ref(null); | 
|   | 
| const rules = { | 
|   name: [ | 
|     { | 
|       required: true, | 
|       message:'用户名不允许为空', | 
|     }, | 
|   ], | 
|   nameJoin: [ | 
|     { | 
|       required: true, | 
|       message:'昵称不允许为空', | 
|     }, | 
|   ], | 
|   password: [ | 
|     { | 
|       required: true, | 
|       message:'password is required', | 
|     }, | 
|   ], | 
|   password2: [ | 
|     { | 
|       required: true, | 
|       message:'password is required', | 
|     }, | 
|     { | 
|       validator: (value, cb) => { | 
|         if (value !== form.password) { | 
|           cb('two passwords do not match') | 
|         } else { | 
|           cb() | 
|         } | 
|       } | 
|     } | 
|   ], | 
|   email: [ | 
|     { | 
|       type: 'email', | 
|       required: true, | 
|     } | 
|   ], | 
|   ip: [ | 
|     { | 
|       type: 'ip', | 
|       required: true, | 
|     } | 
|   ], | 
|   url: [ | 
|     { | 
|       type: 'url', | 
|       required: true, | 
|     } | 
|   ], | 
|   match: [ | 
|     { | 
|       required: true, | 
|       validator: (value, cb) => { | 
|         return new Promise((resolve) => { | 
|           if (!value) { | 
|             cb('Please enter match') | 
|           } | 
|           if (value !== 'match') { | 
|             cb('match must be match!') | 
|           } | 
|           resolve() | 
|         }) | 
|       } | 
|     } | 
|   ], | 
| } | 
|   | 
|   | 
| const handleSubmit = ({values, errors}) => { | 
|   console.log('values:', values, '\nerrors:', errors) | 
| } | 
|   | 
| const handleClick = () => { | 
|   visible.value = true; | 
| }; | 
| const handleBeforeOk = (done) => { | 
|     formRef.value.validate().then(res => { | 
|       console.log('form:', form) | 
|       if (!form.name) { | 
|         done(false) | 
|       }else { | 
|         console.log('请求数据'); | 
|   | 
|       } | 
|     }) | 
| }; | 
| const handleCancel = () => { | 
|   visible.value = false; | 
| } | 
|   | 
| const handleOpened =(el) => { | 
|   Object.assign(form,{ | 
|     name: '',// 用户名 | 
|     nameJoin: '',// 昵称 | 
|     post: '',// 岗位 | 
|     txt: '',// 备注 | 
|   }); | 
|   formRef.value.resetFields(); | 
|   console.log(props.edit, 'edit'); | 
|   console.log(props.record, 'record'); | 
|   if(props.edit == 'edit'){ | 
|     Object.assign(form,props.record); | 
|   } | 
| } | 
|   | 
| onBeforeMount(()=>{ | 
|   | 
| }) | 
| onMounted(()=>{ | 
|   | 
|   | 
| }) | 
| </script> | 
|   | 
| <script lang="ts"> | 
| import { deleteAccount } from "@/api/account"; | 
| export default { | 
|   name: 'add', | 
|   methods: { | 
|   | 
|   } | 
| }; | 
| </script> |