12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <script lang="ts" setup>
- import { reactive, ref } from "vue";
- import { formUpload } from "@/api/mock";
- import { message } from "@/utils/message";
- import { createFormData } from "@pureadmin/utils";
- import UploadIcon from "@iconify-icons/ri/upload-2-line";
- const formRef = ref();
- const uploadRef = ref();
- const validateForm = reactive({
- fileList: [],
- date: ""
- });
- const submitForm = formEl => {
- if (!formEl) return;
- formEl.validate(valid => {
- if (valid) {
- // 多个 file 在一个接口同时上传
- const formData = createFormData({
- files: validateForm.fileList.map(file => ({ raw: file.raw })), // file 文件
- date: validateForm.date // 别的字段
- });
- formUpload(formData)
- .then(({ success }) => {
- if (success) {
- message("提交成功", { type: "success" });
- } else {
- message("提交失败");
- }
- })
- .catch(error => {
- message(`提交异常 ${error}`, { type: "error" });
- });
- } else {
- return false;
- }
- });
- };
- const resetForm = formEl => {
- if (!formEl) return;
- formEl.resetFields();
- };
- </script>
- <template>
- <el-form ref="formRef" :model="validateForm" label-width="82px">
- <el-form-item
- label="附件"
- prop="fileList"
- :rules="[{ required: true, message: '附件不能为空' }]"
- >
- <el-upload
- ref="uploadRef"
- v-model:file-list="validateForm.fileList"
- drag
- multiple
- action="#"
- class="!w-[200px]"
- :auto-upload="false"
- >
- <div class="el-upload__text">
- <IconifyIconOffline
- :icon="UploadIcon"
- width="26"
- class="m-auto mb-2"
- />
- 可点击或拖拽上传
- </div>
- </el-upload>
- </el-form-item>
- <el-form-item
- label="日期"
- prop="date"
- :rules="[{ required: true, message: '日期不能为空' }]"
- >
- <el-date-picker
- v-model="validateForm.date"
- type="datetime"
- class="!w-[200px]"
- placeholder="请选择日期时间"
- value-format="YYYY-MM-DD HH:mm:ss"
- />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" text bg @click="submitForm(formRef)">
- 提交
- </el-button>
- <el-button text bg @click="resetForm(formRef)">重置</el-button>
- </el-form-item>
- </el-form>
- </template>
|