From a60dc30be50598fe2d1acb42f8171ec69e37b436 Mon Sep 17 00:00:00 2001 From: 13404089107 <puwei@sinata.cn> Date: 星期三, 28 五月 2025 17:29:05 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- laboratory/src/views/reportLibrary/feasibilityStudy/add.vue | 189 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 148 insertions(+), 41 deletions(-) diff --git a/laboratory/src/views/reportLibrary/feasibilityStudy/add.vue b/laboratory/src/views/reportLibrary/feasibilityStudy/add.vue index b33a9ad..f812376 100644 --- a/laboratory/src/views/reportLibrary/feasibilityStudy/add.vue +++ b/laboratory/src/views/reportLibrary/feasibilityStudy/add.vue @@ -1,6 +1,6 @@ <template> - <div> - <Card> + <div class="add-container" :loading="loading"> + <Card v-loading="loading"> <div class="header-title" style="width: 100%;"> <div class="header-title-left"> <img src="@/assets/public/headercard.png" /> @@ -12,12 +12,12 @@ </div> </div> - <Table :height="null" :queryForm="queryForm" :total="0"> + <Table :height="null" :data="tableData" :queryForm="queryForm" :total="0"> <template> - <el-table-column prop="name" label="项目组名称" /> - <el-table-column prop="age" label="项目负责人" /> - <el-table-column prop="age" label="项目组成员" /> - <el-table-column prop="age" label="创建时间" /> + <el-table-column prop="teamName" label="项目组名称" /> + <el-table-column prop="personCharge" label="项目负责人" /> + <el-table-column prop="staffName" label="项目组成员" /> + <el-table-column prop="createTime" label="创建时间" /> </template> </Table> <el-form ref="form" :model="form" :rules="rules" inline label-position="top" style="margin-top: 38px"> @@ -27,9 +27,9 @@ <div>报告编号</div> </div> </div> - <form-item prop="name" style="margin-top: 38px"> - <el-input v-model="form.name" style="width: 100%;" placeholder="请输入报告编号" /> - </form-item> + <el-form-item prop="reportCode" style="margin-top: 38px"> + <el-input v-model="form.reportCode" style="width: 100%;" placeholder="请输入报告编号" /> + </el-form-item> <div class="header-title" style="width: 100%;"> <div class="header-title-left"> @@ -37,9 +37,9 @@ <div>报告名称</div> </div> </div> - <form-item prop="name" style="margin-top: 38px"> - <el-input v-model="form.name" style="width: 100%;" placeholder="请输入报告编号" /> - </form-item> + <el-form-item prop="reportName" style="margin-top: 38px"> + <el-input v-model="form.reportName" style="width: 100%;" placeholder="请输入报告名称" /> + </el-form-item> <div class="header-title" style="width: 100%;"> <div class="header-title-left"> @@ -47,59 +47,159 @@ <div>报告正文</div> </div> </div> - <form-item prop="name" style="margin-top: 38px"> - <ai-editor v-model="form.name" style="width: 100%;" placeholder="请输入报告编号" /> - </form-item> + <el-form-item prop="reportText" style="margin-top: 38px"> + <ai-editor ref="materialEditor" :value="form.reportText" style="width: 100%;" + placeholder="请输入报告正文" /> + </el-form-item> <div class="header-title" style="width: 100%;"> <div class="header-title-left"> <img src="@/assets/public/headercard.png" /> - <div>附件</div> + <div class="noRequire">附件</div> </div> </div> - <form-item prop="name" style="margin-top: 38px"> + <el-form-item prop="name" style="margin-top: 38px"> <el-upload action="https://jsonplaceholder.typicode.com/posts/" :file-list="fileList"> <el-button size="small" type="primary">点击上传</el-button> </el-upload> - </form-item> + </el-form-item> <div class="end-btn" style="margin-top: 38px"> - <el-button type="primary">发送</el-button> - <el-button type="default">存草稿</el-button> + <el-button type="primary" @click="submit" :loading="loading">发送</el-button> + <el-button type="default" @click="save" :loading="loading">存草稿</el-button> </div> </el-form> </Card> + <chooseProject @submit="getProjectData" :show="showChoose" @close="showChoose = false"></chooseProject> </div> </template> <script> import { Card } from 'element-ui'; import AiEditor from '@/components/AiEditor' +import chooseProject from '@/components/chooseProject' +import { addData, getDetail, editData } from './service' export default { - components: { AiEditor }, + components: { + AiEditor, + chooseProject + }, data() { return { + loading: false, form: { - planName: "", - planCode: "", - stage: "", - creator: "", - createTime: "", - approvalComment: "", - status: "pending", - approver: "", - approveTime: "" + reportCode: "", + reportName: "", + reportText: "" }, + tableData: [], fileList: [], // 附件列表 showChoose: false, - radio1: 1, - rules: {}, - status: "1", - remark: "", - queryForm: { - - } + rules: { + reportCode: [ + { required: true, message: '请输入报告编号', trigger: 'blur' } + ], + reportName: [ + { required: true, message: '请输入报告名称', trigger: 'blur' } + ], + }, + queryForm: {} } - } + }, + + mounted() { + if (this.$route.query.id) { + this.getDetail() + } + }, + + methods: { + getDetail() { + getDetail(this.$route.query.id).then(res => { + this.form = res + this.tableData = [{ ...res.projectTeam, staffName: res.staffNames }] + this.fileList = res.fileList + }) + }, + //获取选择项目组数据 + getProjectData(data) { + this.tableData = [data] + this.$forceUpdate() + this.showChoose = false + }, + submit() { + console.log(this.$refs.materialEditor.getContent()); + if (this.tableData.length == 0) { + this.$message.error('请选择项目组') + return + } + + this.$refs.form.validate((valid) => { + if (this.$refs.materialEditor.getContent() == '<p></p>') { + this.$message.error('请输入报告正文') + return + } + let data = { + ...this.form, + reportType: 1, + status: 1, + reportText: this.$refs.materialEditor.getContent(), + teamId: this.tableData[0].id + } + if (valid) { + this.loading = true + if (this.$route.query.id) { + editData({ ...data, id: this.$route.query.id }).then(res => { + if (res.code === 200) { + this.$message.success('修改成功') + this.$router.back() + } else { + this.$message.error(res.message) + } + }) + } else { + addData({ ...data }).then(res => { + if (res.code === 200) { + this.$message.success('发布成功') + this.$router.back() + } else { + this.$message.error(res.message) + } + }).finally(() => { + this.loading = false + }) + } + + } + }) + }, + save() { + this.$refs.form.validate((valid) => { + let data = { + ...this.form, + reportType: 1, + status: -1, + reportText: this.$refs.materialEditor.getContent(), + teamId: this.tableData[0].id + } + + delete data.id + + if (valid) { + this.loading = true + addData({ ...data }).then(res => { + if (res.code === 200) { + this.$message.success('提交成功') + this.$router.back() + } else { + this.$message.error(res.message) + } + }).finally(() => { + this.loading = false + }) + } + }) + }, + }, } </script> @@ -138,6 +238,13 @@ } } + .noRequire:before { + content: unset; + // color: #f56c6c; + // margin-right: 4px; + + } + span { flex-shrink: 0; font-weight: bold; @@ -159,12 +266,12 @@ } } -.end-btn{ +.end-btn { display: flex; align-items: center; gap: 10px; - button{ + button { width: 180px; height: 36px; // background: #409EFF; -- Gitblit v1.7.1