From c09e46ade0e6dc4851c286962a60e20259ccbdad Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 28 十一月 2024 21:04:23 +0800 Subject: [PATCH] 文件上传 --- src/views/projectManage/progress/progressRecord.vue | 91 ++++++++++++++++++++++++++++----------------- 1 files changed, 56 insertions(+), 35 deletions(-) diff --git a/src/views/projectManage/progress/progressRecord.vue b/src/views/projectManage/progress/progressRecord.vue index 3c2eafe..bd35447 100644 --- a/src/views/projectManage/progress/progressRecord.vue +++ b/src/views/projectManage/progress/progressRecord.vue @@ -97,35 +97,26 @@ </el-col> <div style="margin-bottom: 10px"> <h1 style="font-size: 20px; font-weight: bold;">绔e伐鎶ュ憡</h1> - <div style="display: flex; justify-content: center; align-items: center;"> - <el-upload - class="upload-demo" - drag - action="https://jsonplaceholder.typicode.com/posts/" - multiple> - <i class="el-icon-upload"></i> - <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> - <div class="el-upload__tip" slot="tip">鍙兘涓婁紶jpg/png鏂囦欢锛屼笖涓嶈秴杩�500kb</div> - </el-upload> + <div style="display: flex;margin-left: 20px;"> + <file-upload v-model="projectProgressForm.completedReportFileList" + :fileType="projectProgressForm.accept" + :isShowTip="false"/> </div> </div> <div style="margin-bottom: 10px"> <h1 style="font-size: 20px; font-weight: bold;">鎯呭喌璇存槑</h1> - <div style="display: flex; justify-content: center; align-items: center;"> - <el-upload - class="upload-demo" - drag - action="https://jsonplaceholder.typicode.com/posts/" - multiple> - <i class="el-icon-upload"></i> - <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> - <div class="el-upload__tip" slot="tip">鍙兘涓婁紶jpg/png鏂囦欢锛屼笖涓嶈秴杩�500kb</div> - </el-upload> + <div style="display: flex;margin-left: 20px;"> + <file-upload v-model="projectProgressForm.situationDescriptionFileList" + :fileType="projectProgressForm.accept" + :isShowTip="false"/> </div> + </div> + <div style="display: flex; justify-content: center; align-items: center; margin-top: 20px;"> + <el-button type="primary" @click="handleSave">淇� 瀛�</el-button> </div> </el-row> - <el-dialog :title=" checkFlag ? '杩涘害鏌ョ湅' : '杩涘害涓婃姤' " :visible.sync="dialogFormVisible" custom-class="custom-dialog"> + <el-dialog :title=" checkFlag ? '杩涘害鏌ョ湅' : '杩涘害涓婃姤' " :visible.sync="dialogFormVisible" custom-class="custom-dialog" :close-on-click-modal="false" @close="handleCancel"> <el-form :model="progressReportData"> <el-form-item label="鎶ュ憡鏈燂細" :label-width="formLabelWidth"> <el-input :value="progressReportData.planTime + (progressReportData.planTimeFlag === 0 ? '鏈堝害' : progressReportData.planTimeFlag === 1 ? '瀛e害' : '骞村害')" readonly /> @@ -146,17 +137,10 @@ <el-form-item label="杩涘害鎯呭喌锛�" :label-width="formLabelWidth"> <el-input type="textarea" v-model="progressReportData.progressStatus" placeholder="璇疯緭鍏�" rows="3" :readonly="checkFlag" /> </el-form-item> - <el-form-item label="宸ョ▼杩涘害闄勪欢锛�" :label-width="formLabelWidth"> - <el-upload - class="upload-demo" - drag - action="https://jsonplaceholder.typicode.com/posts/" - multiple - :disabled="checkFlag" > - <i class="el-icon-upload"></i> - <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> - <div class="el-upload__tip" slot="tip">鍙兘涓婁紶jpg/png鏂囦欢锛屼笖涓嶈秴杩�500kb</div> - </el-upload> + <el-form-item prop="fileList" label="宸ョ▼杩涘害闄勪欢锛�" :label-width="formLabelWidth"> + <file-upload v-model="progressReportData.fileList" + :fileType="accept" + :isShowTip="false"/> </el-form-item> <el-form-item label="鎴鏈姤鍛婂畬鎴愭姇璧勶細" :label-width="formLabelWidth"> <el-input v-model="progressReportData.actualInvest" type="number" :readonly="checkFlag" /> @@ -182,7 +166,7 @@ </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="handleRecordSubmit" v-if="!checkFlag">涓� 鎶�</el-button> - <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button> + <el-button @click="handleCancel">鍙� 娑�</el-button> </div> </el-dialog> </el-card> @@ -192,10 +176,16 @@ </template> <script> -import { getProgressInfoList, getProgressReport, recordSubmit } from "@/api/projectManage/progress/index"; +import { getProgressInfoList, getProgressReport, recordSubmit, saveProjectProgressFileLists, getProjectProgressForm } from "@/api/projectManage/progress/index"; +import progressRecord from "./progressRecord.vue"; export default { name: "progressRecord", + computed: { + progressRecord() { + return progressRecord + } + }, data() { return { // 鎺ユ敹浼犻�掕繃鏉ョ殑椤圭洰璁″垝鏁版嵁 @@ -209,12 +199,24 @@ // 鏌ョ湅鏄剧ず checkFlag: false, progressReportData: {}, - formLabelWidth: '150px' + formLabelWidth: '150px', + + // 绔e伐鎶ュ憡銆佹儏鍐佃鏄庨檮浠� + projectProgressForm: { + completedReportFileList: [], + situationDescriptionFileList: [], + projectReportId: null, + accept: ['pdf'], + }, + + // 杩涘害涓婃姤闄勪欢绫诲瀷 + accept: ['pdf','jpg','mp4'], } }, methods: { search() { this.getPlanRecordData() + this.getProjectProgressForm(this.planRecordData.id); }, // 鑾峰彇浼犻�掕繃鏉ョ殑椤圭洰璁″垝璇︽儏 getPlanRecordData() { @@ -223,6 +225,11 @@ this.planRecordData = JSON.parse(this.$route.query.data); this.getProgressInfoList(this.planRecordData.id); } + }, + getProjectProgressForm(id) { + getProjectProgressForm(id).then(res => { + this.projectProgressForm = res.data; + }) }, // 鑾峰彇椤圭洰杩涘害璁″垝椤� getProgressInfoList(id) { @@ -254,6 +261,20 @@ getProgressReport(row.id).then(res => { this.progressReportData = res.data; }) + }, + // 鍏抽棴寮圭獥 + handleCancel() { + this.dialogFormVisible = false; + this.checkFlag = false; + }, + // 淇濆瓨 + handleSave() { + this.projectProgressForm.projectReportId = this.planRecordData.id; + // 鍒ゆ柇鏂囦欢涓嶄负绌� + saveProjectProgressFileLists(this.projectProgressForm).then(res => { + this.$message.success('淇濆瓨鎴愬姛'); + this.search(); + }) } }, created() { -- Gitblit v1.8.0