From 4131b82cf3b4e543a44d365e044694de6cfa2fdc Mon Sep 17 00:00:00 2001 From: yanfeiyong <2060201549@qq.com> Date: Thu, 6 Mar 2025 16:53:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E5=88=9D=E6=AD=A5=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ManageApi/index.js | 25 ++ src/views/components/ProjectDetails/Basic.vue | 304 ++++++++++-------- .../components/ProjectDetails/Models.vue | 61 ++-- .../components/ProjectDetails/Programme.vue | 2 +- src/views/manage/details/index.vue | 48 ++- 5 files changed, 269 insertions(+), 171 deletions(-) create mode 100644 src/api/ManageApi/index.js diff --git a/src/api/ManageApi/index.js b/src/api/ManageApi/index.js new file mode 100644 index 0000000..f2eb4b0 --- /dev/null +++ b/src/api/ManageApi/index.js @@ -0,0 +1,25 @@ +import request from '@/utils/request'; + +// 企业--基本信息==展示 +export function getBasicInformationById(id) { + return request({ + url: `/gysl/basicInformation/${id}`, + method: 'get' + }); +} + +// 企业--基本信息==修改 +export function updateBasicInformation(data) { + return request({ + url: `/gysl/basicInformation/edit`, + method: 'post', + }) +} + +// 通过主键查询单条基本信息(企业规划信息) +export function getProgrammeInformationById(id) { + return request({ + url: `/gysl/planInformation/{id}`, + method: 'get' + }); +} \ No newline at end of file diff --git a/src/views/components/ProjectDetails/Basic.vue b/src/views/components/ProjectDetails/Basic.vue index f6314e1..66a5bb8 100644 --- a/src/views/components/ProjectDetails/Basic.vue +++ b/src/views/components/ProjectDetails/Basic.vue @@ -7,11 +7,11 @@ <span>基本信息</span> </div> <div class="topright"> - <el-button type="primary" size="mini" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;"> + <el-button type="primary" size="mini" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="edit"> <img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;"> 编辑 </el-button> - <el-button type="primary" size="mini" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;"> + <el-button type="primary" size="mini" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="exportData"> <img src="../../../assets/images/detailsicon/icon-dc@2x.png" alt="编辑" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;"> 导出 </el-button> @@ -22,145 +22,187 @@ <div class="picturediv"></div> <div class="descriptionsdiv"> <el-descriptions class="margin-top" :column="3" border> - <el-descriptions-item> - <template slot="label"> - 项目名称 - </template> - THi SIP高端装备工业港 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 项目法人单位 - </template> - 泰凌医药(中国)有限公司 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 项目法人单位性质 - </template> - 项目法人单位性质 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 施工单位 - </template> - kooriookami - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 设计单位 - </template> - 18100000000 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 总投资额(万元) - </template> - 苏州市 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 所属功能区 - </template> - kooriookami - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 建设起止时间 - </template> - 18100000000 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 现状分类 - </template> - 苏州市 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 建设地点 - </template> - kooriookami - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 重点发展产业 - </template> - 18100000000 - </el-descriptions-item> - <el-descriptions-item> + <el-descriptions-item + v-for="(item, index) in descriptions" + :key="index" + :span="item.label === '项目法人单位简介' ? 3 : 1"> <template slot="label"> - - 建设模式 + {{ item.label }} </template> - 苏州市 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 项目标签 - </template> - kooriookami - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 项目负责人 - </template> - 18100000000 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 联系方式 - </template> - 苏州市 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 施工许可证发放时间 - </template> - kooriookami - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 竣工验收时间 - </template> - 18100000000 - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - </template> - </el-descriptions-item> - <!-- 最后一行 --> - <el-descriptions-item class="two-row-item" :span="3"> - <template slot="label"> - 项目法人单位简介 - </template> - 江苏省苏州市吴中区吴中大道 1188 号江苏省苏州市吴中区吴中大道 1188 号 - 江苏省苏州市吴中区吴中大道 1188 号江苏省苏州市吴中区吴中大道 1188 号 - 江苏省苏州市吴中区吴中大道 1188 号江苏省苏州市吴中区吴中大道 1188 号 - </el-descriptions-item> - <el-descriptions-item class="two-row-item" :span="3"> - <template slot="label"> - 项目简介 - </template> - 江苏省苏州市吴中区吴中大道 1188 号江苏省苏州市吴中区吴中大道 1188 号 - 江苏省苏州市吴中区吴中大道 1188 号江苏省苏州市吴中区吴中大道 1188 号 - 江苏省苏州市吴中区吴中大道 1188 号江苏省苏州市吴中区吴中大道 1188 号 + {{ item.value }} </el-descriptions-item> </el-descriptions> </div> </div> + <!-- 添加或编辑项目对话框 --> + <el-dialog :title="title" :visible.sync="dialogVisible" width="500px" append-to-body> + <el-form :model="form" label-width="120px"> + <el-form-item label="项目名称"> + <el-input v-model="form.name"></el-input> + </el-form-item> + <el-form-item label="项目法人单位"> + <el-input v-model="form.xmfrdwxz"></el-input> + </el-form-item> + <el-form-item label="项目法人单位性质"> + <el-input v-model="form.nature"></el-input> + </el-form-item> + <el-form-item label="施工单位"> + <el-input v-model="form.sgdw"></el-input> + </el-form-item> + <el-form-item label="设计单位"> + <el-input v-model="form.sjdw"></el-input> + </el-form-item> + <el-form-item label="总投资额(万元)"> + <el-input v-model="form.ztze"></el-input> + </el-form-item> + <el-form-item label="所属功能区"> + <el-input v-model="form.ssgnq"></el-input> + </el-form-item> + <el-form-item label="建设起止时间"> + <el-input v-model="form.begainTime"></el-input> + </el-form-item> + <el-form-item label="现状分类"> + <el-input v-model="form.xzfl"></el-input> + </el-form-item> + <el-form-item label="建设地点"> + <el-input v-model="form.jsdd"></el-input> + </el-form-item> + <el-form-item label="重点发展产业"> + <el-input v-model="form.prioritize"></el-input> + </el-form-item> + <el-form-item label="建设模式"> + <el-input v-model="form.jsms"></el-input> + </el-form-item> + <el-form-item label="项目标签"> + <el-input v-model="form.label"></el-input> + </el-form-item> + <el-form-item label="项目负责人"> + <el-input v-model="form.projectLeader"></el-input> + </el-form-item> + <el-form-item label="联系方式"> + <el-input v-model="form.phone"></el-input> + </el-form-item> + <el-form-item label="施工许可证发放时间"> + <el-input v-model="form.issuingTime"></el-input> + </el-form-item> + <el-form-item label="竣工验收时间"> + <el-input v-model="form.acceptanceTime"></el-input> + </el-form-item> + <el-form-item label="项目法人单位简介"> + <el-input v-model="form.unitIntroduction" type="textarea"></el-input> + </el-form-item> + <el-form-item label="项目简介"> + <el-input v-model="form.introduction" type="textarea"></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">取 消</el-button> + <el-button type="primary" @click="saveForm">确 定</el-button> + </span> + </el-dialog> </div> </template> <script> - export default { - props: { +import { getBasicInformationById, updateBasicInformation } from '@/api/ManageApi/index'; + +export default { + props: { size: { type: String, default: 'mini' + }, + id: { + type: Number, + required: true } + }, + data() { + return { + descriptions: [], + dialogVisible: false, + title: '编辑项目', + form: { + name: '', + xmfrdwxz: '', + nature: '', + sgdw: '', + sjdw: '', + ztze: '', + ssgnq: '', + begainTime: '', + xzfl: '', + jsdd: '', + prioritize: '', + jsms: '', + label: '', + projectLeader: '', + phone: '', + issuingTime: '', + acceptanceTime: '', + unitIntroduction: '', + introduction: '' + } + }; + }, + created() { + this.fetchData(); + }, + methods: { + fetchData() { + getBasicInformationById(this.id) + .then(response => { + const data = response.data; + this.descriptions = [ + { label: '项目名称', value: data.name }, + { label: '项目法人单位', value: data.xmfrdwxz }, + { label: '项目法人单位性质', value: data.nature }, + { label: '施工单位', value: data.sgdw }, + { label: '设计单位', value: data.sjdw }, + { label: '总投资额(万元)', value: data.ztze }, + { label: '所属功能区', value: data.ssgnq }, + { label: '建设起止时间', value: data.begainTime }, + { label: '现状分类', value: data.xzfl }, + { label: '建设地点', value: data.jsdd }, + { label: '重点发展产业', value: data.prioritize }, + { label: '建设模式', value: data.jsms }, + { label: '项目标签', value: data.label }, + { label: '项目负责人', value: data.projectLeader }, + { label: '联系方式', value: data.phone }, + { label: '施工许可证发放时间', value: data.issuingTime }, + { label: '竣工验收时间', value: data.acceptanceTime }, + { label: '项目法人单位简介', value: data.unitIntroduction }, + { label: '项目简介', value: data.introduction } + ]; + // 初始化表单数据 + this.form = { ...data }; + }) + .catch(error => { + console.error('There was an error fetching the data!', error); + }); }, + edit() { + this.dialogVisible = true; + }, + exportData() { + // 导出逻辑 + }, + saveForm() { + updateBasicInformation(this.form) + .then(response => { + console.log('Data saved successfully:', response.data); + this.$message.success('数据保存成功!'); + this.dialogVisible = false; + // 刷新数据 + this.fetchData(); + }) + .catch(error => { + console.error('There was an error saving the data!', error); + this.$message.error('数据保存失败,请重试!'); + }); + } } +}; </script> <style scoped> @@ -217,12 +259,14 @@ height: 25rem; background-color: lightblue; } -.descriptionsdiv{ + +.descriptionsdiv { width: 79rem; margin-left: 1rem; - height: 25.31rem; + height: auto; } -.two-row-item{ - height: 20rem; + +.two-row-item { + height: auto; } -</style> +</style> \ No newline at end of file diff --git a/src/views/components/ProjectDetails/Models.vue b/src/views/components/ProjectDetails/Models.vue index 08b1e92..a100f97 100644 --- a/src/views/components/ProjectDetails/Models.vue +++ b/src/views/components/ProjectDetails/Models.vue @@ -22,9 +22,9 @@ <table class="custom-table"> <tr v-for="(row, index) in tableData" :key="index"> <td class="left-column">{{ row.left }}</td> - <td class="right-columns">{{ row.right1 }}</td> - <td class="right-columns">{{ row.right2 }}</td> - <td class="right-columns">{{ row.right3 }}</td> + <td class="right-columns"><span class="label-color">{{ row.label1 }}</span> {{ row.right1 }}</td> + <td class="right-columns"><span class="label-color">{{ row.label2 }}</span> {{ row.right2 }}</td> + <td class="right-columns"><span class="label-color">{{ row.label3 }}</span> {{ row.right3 }}</td> </tr> </table> </div> @@ -35,25 +35,25 @@ <script> export default { - name: "CustomTable", - data() { - return { - tableData: [ - { left: "环保安全", right1: "危化品等级:7.65", right2: "生产火灾危险等级:丙类", right3: "环境保护:无" }, - { left: "设备载重", right1: "设备载重:无", right2: "", right3: "" }, - { left: "垂直交通", right1: "货梯要求:原材料质量是否<3吨", right2: "货梯要求:1人/15m³", right3: "" }, - { left: "减震措施", right1: "加工精度:纳米级", right2: "减震措施:无", right3: "" }, - { left: "工艺需求", right1: "生产类型:无", right2: "层高要求:无", right3: "" }, - ], - props: { - size: { - type: String, - default: 'mini' - } + name: "CustomTable", + data() { + return { + tableData: [ + { left: "环保安全", label1: "危险等级:", right1: "7.65", label2: "生产火灾危险等级:", right2: "丙类", label3: "环境保护: ", right3: "无" }, + { left: "设备载重", label1: "设备载重:", right1: "无", label2: "", right2: "", label3: "", right3: "" }, + { left: "垂直交通", label1: "货梯要求:", right1: "原材料质量是否<3吨", label2: "货梯要求:", right2: "1人/15m³", label3: "", right3: "" }, + { left: "减震措施", label1: "加工精度:", right1: "纳米级", label2: "减震措施:", right2: "无", label3: "", right3: "" }, + { left: "工艺需求", label1: "生产类型:", right1: "无", label2: "层高要求:", right2: "无", label3: "", right3: "" }, + ], + props: { + size: { + type: String, + default: 'mini' + } + }, + }; + }, - }; - - }, }; </script> @@ -122,25 +122,30 @@ export default { .two-row-item { height: 20rem; } + .custom-table { - width: 100%; - border-collapse: collapse; - border: 1px solid #ccc; + width: 100%; + border-collapse: collapse; + border: 1px solid #E6EAF2; } .custom-table th, .custom-table td { padding: 8px; text-align: left; - border-top: 1px solid #ccc; - border-bottom: 1px solid #ccc; + border-top: 1px solid #E6EAF2; + border-bottom: 1px solid #E6EAF2; } .left-column { - border-right: 1px solid #ccc; + border-right: 1px solid #E6EAF2; + background-color: #F4F7FE; } .right-columns { - border-right: none; + border-right: none; +} +.label-color{ + color: #808080; } </style> diff --git a/src/views/components/ProjectDetails/Programme.vue b/src/views/components/ProjectDetails/Programme.vue index 64b6872..b7222fe 100644 --- a/src/views/components/ProjectDetails/Programme.vue +++ b/src/views/components/ProjectDetails/Programme.vue @@ -31,7 +31,7 @@ <template slot="label"> 容积率 </template> - 泰凌医药(中国)有限公司 + 泰凌医药(中国)有限公司 </el-descriptions-item> <el-descriptions-item> <template slot="label"> diff --git a/src/views/manage/details/index.vue b/src/views/manage/details/index.vue index 05bfc4f..5e6b6f3 100644 --- a/src/views/manage/details/index.vue +++ b/src/views/manage/details/index.vue @@ -9,29 +9,53 @@ </el-menu> </div> <!-- 基本信息 --> - <Basic id="basic"></Basic> + <div id="basic"> + <Basic :id="1"></Basic> + </div> <!-- 规划信息 --> - <Programme id="programme"></Programme> + <div id="programme"> + <Programme :id="1"></Programme> + </div> <!-- 建筑信息 --> - <Buildings id="buildings"></Buildings> + <div id="buildings"> + <Buildings></Buildings> + </div> <!-- 要素模型信息 --> - <Models id="models"></Models> + <div id="models"> + <Models></Models> + </div> <!-- 月度进展信息 --> - <Months id="months"></Months> + <div id="months"> + <Months></Months> + </div> <!-- 企业入驻信息 --> - <Companyenter id="companyenter"></Companyenter> + <div id="companyenter"> + <Companyenter></Companyenter> + </div> <!-- 项目画像 --> - <Projectpicture id="projectpicture"></Projectpicture> + <div id="projectpicture"> + <Projectpicture></Projectpicture> + </div> <!-- 项目图例 --> - <Projectpicturetwo id="projectpicturetwo"></Projectpicturetwo> + <div id="projectpicturetwo"> + <Projectpicturetwo></Projectpicturetwo> + </div> <!-- 项目巡礼 --> - <Projectgift id="projectgift"></Projectgift> + <div id="projectgift"> + <Projectgift></Projectgift> + </div> <!-- 现场实况 --> - <Liver id="liver"></Liver> + <div id="liver"> + <Liver></Liver> + </div> <!-- 项目备忘录 --> - <Memo id="memo"></Memo> + <div id="memo"> + <Memo></Memo> + </div> <!-- 其他信息 --> - <Memo id="others"></Memo> + <div id="others"> + <Memo></Memo> + </div> <!-- 返回顶部 --> <!-- <el-backtop target=".backtop"></el-backtop> --> </div>