| | |
| | | <el-form ref="form" :model="form" :rules="rules" inline label-position="top" style="margin-top: 18px"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item prop="reportContent" label="报告内容"> |
| | | <el-select v-model="form.reportContent" style="width: 100%;" placeholder="请选择报告内容"> |
| | | <el-form-item prop="reportContent" label="报告内容" > |
| | | <el-select v-model="form.reportContent" style="width: 100%;" placeholder="请选择报告内容" :disabled="this.$route.query.type === 'detail'"> |
| | | <el-option label="国家标准" :value="1" /> |
| | | <el-option label="分析方法开发" :value="2" /> |
| | | <el-option label="方法验证报告" :value="3" /> |
| | |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item prop="developPersonName" label="制定人"> |
| | | <el-input v-model="form.developPersonName" style="width: 100%;" placeholder="请输入制定人" disabled /> |
| | | <el-input v-model="form.developPersonName" style="width: 100%;" placeholder="请输入制定人" |
| | | disabled /> |
| | | </el-form-item> |
| | | <el-form-item prop="developDate" label="制定日期" style="margin-left: 100px;"> |
| | | <el-date-picker :prefix-icon="null" v-model="form.developDate" type="date" disabled |
| | |
| | | </div> |
| | | </div> |
| | | <el-form-item prop="reportText" style="margin-top: 18px"> |
| | | <ai-editor ref="materialEditor" :value="form.reportText" style="width: 100%;" |
| | | <ai-editor ref="materialEditor" :value="form.reportText" style="width: 100%;" :readOnly="this.$route.query.type === 'detail'" |
| | | placeholder="请输入报告正文" /> |
| | | </el-form-item> |
| | | <div class="header-title" style="width: 100%;"> |
| | |
| | | </div> |
| | | </div> |
| | | <el-form-item prop="name" style="margin-top: 18px"> |
| | | <el-upload |
| | | action="#" |
| | | :file-list="fileList" |
| | | :http-request="handleUpload" |
| | | :before-upload="beforeUpload" |
| | | :on-remove="handleRemove"> |
| | | <el-upload action="#" |
| | | :file-list="fileList" |
| | | :http-request="handleUpload" |
| | | :disabled="this.$route.query.type === 'detail'" |
| | | :before-upload="beforeUpload" :on-remove="handleRemove"> |
| | | <el-button size="small" type="primary">点击上传</el-button> |
| | | <div slot="tip" class="el-upload__tip">支持任意格式文件上传</div> |
| | | </el-upload> |
| | |
| | | import { Card } from 'element-ui'; |
| | | import AiEditor from '@/components/AiEditor' |
| | | import chooseProject from '@/components/chooseProject' |
| | | import { addDetail, getDetailInfo,updateDetail,getDetail } from './service' |
| | | |
| | | import { addDetail, getDetailInfo, updateDetail, getDetail } from './service' |
| | | import { customUploadRequest, getFullUrl } from '@/utils/utils' |
| | | import { mapState } from "vuex"; |
| | | export default { |
| | | components: { |
| | | AiEditor, |
| | |
| | | this.form.commitPersonId = JSON.parse(sessionStorage.getItem('userInfo')).userId |
| | | this.form.developDate = new Date().toISOString().split('T')[0]; |
| | | |
| | | this.form.itemId=this.$route.query.itemId |
| | | if(this.form.itemId){ |
| | | getDetail(this.form.itemId).then(res=>{ |
| | | if(res){ |
| | | let item={ |
| | | teamName:res.projectTeamVO.teamName, |
| | | teamId:res.teamId, |
| | | remark:res.remark, |
| | | // this.form.itemId = this.$route.query.itemId |
| | | if (this.$route.query.itemId) { |
| | | getDetail(this.$route.query.itemId).then(res => { |
| | | if (res) { |
| | | let item = { |
| | | teamName: res.projectTeamVO.teamName, |
| | | teamId: res.teamId, |
| | | remark: res.remark, |
| | | |
| | | itemName:res.itemName, |
| | | itemCode:res.itemCode, |
| | | createBy:res.createBy, |
| | | createTime:res.createTime |
| | | itemName: res.itemName, |
| | | itemCode: res.itemCode, |
| | | createBy: res.createBy, |
| | | createTime: res.createTime |
| | | } |
| | | this.tableData = [{ ...item }] |
| | | this.form.itemId = this.$route.query.itemId |
| | | this.form.teamId = this.$route.query.teamId |
| | | |
| | | this.tableData = [{ ...item }] |
| | | } |
| | | }) |
| | | } |
| | | console.log('this.$route.query.itemId',this.$route.query) |
| | | |
| | | if (this.$route.query.id) { |
| | | this.getDetail() |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState(["tagList", "isFold"]), |
| | | }, |
| | | |
| | | methods: { |
| | | getDetail() { |
| | | getDetailInfo({id:this.$route.query.id}).then(res => { |
| | | getDetailInfo({ id: this.$route.query.id }).then(res => { |
| | | if (res) { |
| | | this.form = { |
| | | ...res, |
| | | reportContent: Number(res.reportContent) |
| | | } |
| | | // this.tableData = [{ ...res.data.projectTeam, staffName: res.data.staffNames }] |
| | | this.fileList = res.qaReportFiles || [] |
| | | // this.fileList = res.qaReportFileList || [] |
| | | if (res.qaReportFileList && res.qaReportFileList.length > 0) { |
| | | this.fileList = res.qaReportFileList.map(file => ({ |
| | | name: file.fileName, |
| | | url: getFullUrl(file.fileUrl), |
| | | uid: file.id |
| | | })) |
| | | this.form.qaReportFiles = res.qaReportFileList |
| | | } else { |
| | | this.fileList = [] |
| | | this.form.qaReportFiles = [] |
| | | } |
| | | } else { |
| | | this.$message.error(res.message || '获取详情失败') |
| | | // this.$message.error(res.message || '获取详情失败') |
| | | } |
| | | }) |
| | | }, |
| | |
| | | submit() { |
| | | this.$refs.form.validate((valid) => { |
| | | if (!valid) return |
| | | |
| | | |
| | | if (this.$refs.materialEditor.getContent() == '<p></p>') { |
| | | this.$message.error('请输入报告正文') |
| | | return |
| | | } |
| | | |
| | | |
| | | let data = { |
| | | ...this.form, |
| | | reportText: this.$refs.materialEditor.getContent(), |
| | |
| | | |
| | | this.loading = true |
| | | if (this.$route.query.id) { |
| | | console.log('data updateDetail',data) |
| | | updateDetail({ ...data, id: this.$route.query.id }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('修改成功') |
| | | this.$router.back() |
| | | this.back() |
| | | } else { |
| | | this.$message.error(res.message || '修改失败') |
| | | } |
| | |
| | | this.loading = false |
| | | }) |
| | | } else { |
| | | console.log('data addDetail',data) |
| | | addDetail(data).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('发布成功') |
| | | this.$router.back() |
| | | this.back() |
| | | } else { |
| | | this.$message.error(res.message || '发布失败') |
| | | } |
| | |
| | | save() { |
| | | this.$refs.form.validate((valid) => { |
| | | if (!valid) return |
| | | |
| | | |
| | | let data = { |
| | | ...this.form, |
| | | reportText: this.$refs.materialEditor.getContent(), |
| | |
| | | updateDetail({ ...data, id: this.$route.query.id }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('草稿保存成功') |
| | | this.$router.back() |
| | | this.back() |
| | | } else { |
| | | this.$message.error(res.message || '保存失败') |
| | | } |
| | |
| | | addDetail(data).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('草稿保存成功') |
| | | this.$router.back() |
| | | this.back() |
| | | } else { |
| | | this.$message.error(res.message || '保存失败') |
| | | } |
| | |
| | | } |
| | | }) |
| | | }, |
| | | beforeUpload(file) { |
| | | back() { |
| | | this.$router.back(); |
| | | this.$store.commit( |
| | | "SET_TAGLIST", |
| | | this.tagList.filter((item) => item.path !== this.$route.path) |
| | | ); |
| | | }, |
| | | // 上传前校验 |
| | | beforeUpload(file) { |
| | | return true; |
| | | }, |
| | | // 自定义上传处理 |
| | | handleUpload(options) { |
| | | const file = options.file; |
| | | const fileObj = { |
| | | fileName: file.name, |
| | | fileSize: file.size, |
| | | createTime: new Date().toISOString(), |
| | | createBy: JSON.parse(sessionStorage.getItem('userInfo')).userId, |
| | | reportType: 1, |
| | | status: 1, |
| | | id: Date.now().toString(), |
| | | fileUrl: 'https://example.com/default-file-url' |
| | | }; |
| | | |
| | | this.fileList.push({ |
| | | name: file.name, |
| | | url: fileObj.fileUrl |
| | | const { file, onSuccess, onError } = options; |
| | | |
| | | // 使用封装的customUploadRequest方法 |
| | | customUploadRequest({ |
| | | file, |
| | | onSuccess: (res) => { |
| | | if (res.code === 200) { |
| | | const fileObj = { |
| | | id: new Date().getTime(), |
| | | reportId: this.$route.query.id ? this.$route.query.id : '', |
| | | fileUrl: res.msg || res.data || '', |
| | | fileName: file.name, |
| | | fileSize: file.size, |
| | | }; |
| | | |
| | | // 添加到文件列表显示 |
| | | this.fileList.push({ |
| | | name: file.name, |
| | | url: getFullUrl(fileObj.fileUrl), |
| | | uid: fileObj.id |
| | | }); |
| | | |
| | | // 添加到表单数据 |
| | | this.form.qaReportFiles.push(fileObj); |
| | | |
| | | this.$message.success('文件上传成功'); |
| | | onSuccess(res); |
| | | } else { |
| | | this.$message.error(res.message || '文件上传失败'); |
| | | onError(); |
| | | } |
| | | }, |
| | | onError: (err) => { |
| | | this.$message.error('文件上传失败'); |
| | | onError(err); |
| | | } |
| | | }); |
| | | |
| | | this.form.qaReportFiles.push(fileObj); |
| | | |
| | | this.$message.success('文件上传成功'); |
| | | }, |
| | | handleRemove(file) { |
| | | const index = this.fileList.findIndex(item => item.name === file.name); |