后端

paper-add-or-update.vue 5.5KB

    <template> <el-dialog :title="!dataForm.id ? '新增' : '修改'" :close-on-click-modal="false" :visible.sync="visible" > <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="100px" > <el-form-item label="投稿人姓名" prop="attendersId"> <!-- <el-input v-model="dataForm.attendersId" placeholder="参会人员id"></el-input> --> <el-select v-model="dataForm.attendersId" filterable placeholder="请选择"> <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> <el-form-item label="论文题目" prop="title"> <el-input v-model="dataForm.title" placeholder="论文题目"></el-input> </el-form-item> <el-form-item label="摘要" prop="summary"> <el-input v-model="dataForm.summary" placeholder="摘要" type="textarea"></el-input> </el-form-item> <el-form-item label="上传投稿"> <el-upload class="upload-demo" ref="upload" :action="upload_url" :on-success="successHandle" :file-list="fileList" :limit="1" :on-exceed="handleExceed" :auto-upload="false" name="upload_file" > <el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload" >上传到服务器</el-button> <div slot="tip" class="el-upload__tip" style="color:red">只能上传 pdf doc docx 文件</div> </el-upload> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="visible = false">取消</el-button> <el-button type="primary" @click="dataFormSubmit()">确定</el-button> </span> </el-dialog> </template> <script> export default { data() { return { visible: false, dataForm: { id: 0, meetingId: "", attendersId: "", title: "", summary: "", paperurl: "" }, dataRule: { attendersId: [ { required: true, message: "参会人员id不能为空", trigger: "blur" } ], summary: [{ required: true, message: "摘要不能为空", trigger: "blur" }] }, options: [], upload_url: "", successNum: 0, fileList: [] }; }, created() { this.getPerson(); }, methods: { init(id) { this.dataForm.id = id || 0; this.visible = true; this.$nextTick(() => { this.$refs["dataForm"].resetFields(); if (this.dataForm.id) { this.$http({ url: this.$http.adornUrl(`/admin/paper/info/${this.dataForm.id}`), method: "get", params: this.$http.adornParams() }).then(({ data }) => { if (data && data.code === 0) { this.dataForm.meetingId = this.$route.params.id; this.dataForm.attendersId = data.paper.attendersId; this.dataForm.title = data.paper.title; this.dataForm.summary = data.paper.summary; this.dataForm.paperurl = data.paper.paperurl; } }); } }); this.upload_url = this.$http.adornUrl( `/sys/filemanager/uploadfile?token=${this.$cookie.get("token")}` ); }, // 表单提交 dataFormSubmit() { this.$refs["dataForm"].validate(valid => { if (valid) { this.$http({ url: this.$http.adornUrl( `/admin/paper/${!this.dataForm.id ? "save" : "update"}` ), method: "post", data: this.$http.adornData({ id: this.dataForm.id || undefined, meetingId: this.$route.params.id, attendersId: this.dataForm.attendersId, title: this.dataForm.title, summary: this.dataForm.summary, paperurl: this.dataForm.paperurl }) }).then(({ data }) => { if (data && data.code === 0) { this.$message({ message: "操作成功", type: "success", duration: 1500, onClose: () => { this.visible = false; this.$emit("refreshDataList"); } }); this.fileList = []; } else { this.$message.error(data.msg); this.fileList = []; } }); } }); }, getPerson() { this.$http({ url: this.$http.adornUrl("/admin/attenders/selectbyname"), methods: "get", params: { name: "", meetingId: this.$route.params.id } }).then(({ data }) => { if (data && data.code === 0) { this.options = data.list; } }); }, submitUpload() { this.$refs.upload.submit(); }, successHandle(response) { if (response && response.code === 0) { this.dataForm.paperurl = response.filename; this.$message({ message: "上传成功", type: "success" }); } else { this.$message.error(response.msg); } }, handleExceed(files, fileList) { //上传限制 this.$message.warning(`只能上传 1 个文件`); } } }; </script>