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>