From 70bebe9dae89ebddd7e77543aac618e78d730fc9 Mon Sep 17 00:00:00 2001
From: gjj <Ganjj@probim.com.cn>
Date: Wed, 26 Feb 2025 16:39:32 +0800
Subject: [PATCH] 样式调整

---
 src/views/ProjectView.vue |  456 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 270 insertions(+), 186 deletions(-)

diff --git a/src/views/ProjectView.vue b/src/views/ProjectView.vue
index f0d31c4..586d7b3 100644
--- a/src/views/ProjectView.vue
+++ b/src/views/ProjectView.vue
@@ -14,7 +14,7 @@
     
     <!-- 下部分 - 内容区域 -->
     <div 
-      class="content flex-1 px-[16px] py-[14px] overflow-y-auto" 
+      class="content flex-1 px-[16px] py-[14px] overflow-y-hidden" 
       :style="{
         backgroundImage: `url(${backgroundImage})`,
         backgroundRepeat: 'no-repeat',
@@ -22,217 +22,294 @@
         backgroundSize: 'cover'
       }"
     >
-      <!-- 建筑面积 -->
-      <div 
-        class="w-full h-[50px] mb-[10px] flex items-center justify-evenly" 
-        :style="{
-          backgroundImage: `url(${contentImage})`,
-          backgroundRepeat: 'no-repeat',
-          backgroundPosition: 'center center',
-          backgroundSize: '100% 100%'
-        }"
-      >
+      <div class="h-[120px] w-full">
+        <!-- 建筑面积 -->
+        <div 
+          class="w-full h-[50px] mb-[10px] flex items-center justify-evenly" 
+          :style="{
+            backgroundImage: `url(${contentImage})`,
+            backgroundRepeat: 'no-repeat',
+            backgroundPosition: 'center center',
+            backgroundSize: '100% 100%'
+          }"
+        >
+          <img 
+            src="../assets/images/backgrounds/jianzhumianji.png" 
+            alt="" 
+            class="h-[30px] w-[40px]"
+          >
+          <div class="text-white text-[14px]">一期总建筑面积</div>
+          <div class="flex items-center justify-center">
+            <div class="text-[24px] text-[#FFD500] font-bold mr-[8px]">103.18</div>
+            <div class="text-[14px] text-white">万㎡</div>
+          </div>
+        </div>
+
+        <!-- 目标日期 -->
+        <div 
+          class="w-full h-[50px] flex items-center justify-evenly" 
+          :style="{
+            backgroundImage: `url(${contentImage})`,
+            backgroundRepeat: 'no-repeat',
+            backgroundPosition: 'center center',
+            backgroundSize: '100% 100%'
+          }"
+        >
+          <img 
+            src="../assets/images/backgrounds/mubiaowancheng.png" 
+            alt="" 
+            class="h-[30px] w-[40px]"
+          >
+          <div class="text-white text-[14px]">目标完成日期</div>
+          <div class="flex items-center justify-center">
+            <div class="text-[24px] text-[#00FFFF] font-bold">{{projectInfo.endDate? projectInfo.endDate : '2028-12-01'}}</div>
+          </div>
+        </div>
+      </div>
+      <div class="w-[100%] h-[38%]">
+        <!-- 项目名称 -->
+        <div 
+          class="w-full h-[30px] mt-[20px] mb-[10px]" 
+          :style="{
+            backgroundImage: `url(${bgImage})`,
+            backgroundRepeat: 'no-repeat',
+            backgroundPosition: 'center center',
+            backgroundSize: '100% 100%'
+          }"
+        >
+          <div class="text-white text-[14px] ml-[40px] leading-[35px]">项目名称:{{projectInfo.ProjectName}}</div>
+        </div>
+
+        <div class="text-white text-[14px] tracking-[1px] leading-[24px]">
+          {{ projectInfo.Description }}
+        </div>
+
         <img 
-          src="../assets/images/backgrounds/jianzhumianji.png" 
+          :src="projectInfo.Thumbnail? projectInfo.Thumbnail : '../assets/images/backgrounds/cover_bg.png'" 
           alt="" 
-          class="h-[30px] w-[40px]"
+          class="w-full mt-[20px]"
+          style="height: calc(100% - 150px);"
         >
-        <div class="text-white text-[14px]">一期总建筑面积</div>
-        <div class="flex items-center justify-center">
-          <div class="text-[24px] text-[#FFD500] font-bold mr-[8px]">103.18</div>
-          <div class="text-[14px] text-white">万㎡</div>
-        </div>
       </div>
-
-      <!-- 目标日期 -->
-      <div 
-        class="w-full h-[50px] flex items-center justify-evenly" 
-        :style="{
-          backgroundImage: `url(${contentImage})`,
-          backgroundRepeat: 'no-repeat',
-          backgroundPosition: 'center center',
-          backgroundSize: '100% 100%'
-        }"
-      >
-        <img 
-          src="../assets/images/backgrounds/mubiaowancheng.png" 
-          alt="" 
-          class="h-[30px] w-[40px]"
+      <div class="w-[100%] h-[18%]">
+        <!-- 参建单位 -->
+        <div 
+          class="w-full h-[30px] mt-[20px] mb-[10px]" 
+          :style="{
+            backgroundImage: `url(${bgImage})`,
+            backgroundRepeat: 'no-repeat',
+            backgroundPosition: 'center center',
+            backgroundSize: '100% 100%'
+          }"
         >
-        <div class="text-white text-[14px]">目标完成日期</div>
-        <div class="flex items-center justify-center">
-          <div class="text-[24px] text-[#00FFFF] font-bold">2028-12-01</div>
+          <div class="text-white text-[14px] ml-[40px] leading-[35px]">参建单位</div>
         </div>
-      </div>
 
-      <!-- 项目名称 -->
-      <div 
-        class="w-full h-[30px] mt-[20px] mb-[10px]" 
-        :style="{
-          backgroundImage: `url(${bgImage})`,
-          backgroundRepeat: 'no-repeat',
-          backgroundPosition: 'center center',
-          backgroundSize: '100% 100%'
-        }"
-      >
-        <div class="text-white text-[14px] ml-[40px] leading-[35px]">项目名称:北京交通大学雄安校区</div>
-      </div>
-
-      <div class="text-white text-[14px] tracking-[1px] leading-[24px]">
-        北京交通大学雄安校区选址位于河北雄安新区第五组团及启动区。东至规划绿地、城市道路NB6,南至城市道路ED34、城市道路EA2,西至城市道路ND32、城市道路NA11,北至城市道路EA1。
-      </div>
-
-      <img 
-        src="../assets/images/backgrounds/map.png" 
-        alt="" 
-        class="w-full h-[196px] mt-[20px]"
-      >
-
-      <!-- 参建单位 -->
-      <div 
-        class="w-full h-[30px] mt-[20px] mb-[10px]" 
-        :style="{
-          backgroundImage: `url(${bgImage})`,
-          backgroundRepeat: 'no-repeat',
-          backgroundPosition: 'center center',
-          backgroundSize: '100% 100%'
-        }"
-      >
-        <div class="text-white text-[14px] ml-[40px] leading-[35px]">参建单位</div>
-      </div>
-
-      <!-- 参建单位统计 -->
-      <div class="flex justify-between mb-[10px]">
-        <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
-          <div class="text-white text-[14px] flex flex-col items-center justify-center">
-            <div class="text-[16px] text-[#00FFFF]">3</div>
-            <div class="text-[12px] text-[#ddd]">建设单位</div>
-          </div>
-          <img 
-            src="../assets/images/backgrounds/jianshedanwei.png" 
-            alt="" 
-            class="h-[40px] w-[60px]"
-          >
-        </div>
-        <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
-          <div class="text-white text-[14px] flex flex-col items-center justify-center">
-            <div class="text-[16px] text-[#00FFFF]">5</div>
-            <div class="text-[12px] text-[#ddd]">施工单位</div>
-          </div>
-          <img 
-            src="../assets/images/backgrounds/shigongdanwei.png" 
-            alt="" 
-            class="h-[40px] w-[60px]"
-          >
-        </div>
-      </div>
-
-      <div class="flex justify-between">
-        <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
-          <div class="text-white text-[14px] flex flex-col items-center justify-center">
-            <div class="text-[16px] text-[#00FFFF]">1</div>
-            <div class="text-[12px] text-[#ddd]">监理单位</div>
-          </div>
-          <img 
-            src="../assets/images/backgrounds/jianlidanwei.png" 
-            alt="" 
-            class="h-[40px] w-[60px]"
-          >
-        </div>
-        <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
-          <div class="text-white text-[14px] flex flex-col items-center justify-center">
-            <div class="text-[16px] text-[#00FFFF]">1</div>
-            <div class="text-[12px] text-[#ddd]">设计单位</div>
-          </div>
-          <img 
-            src="../assets/images/backgrounds/shejidanwei.png" 
-            alt="" 
-            class="h-[40px] w-[60px]"
-          >
-        </div>
-      </div>
-
-      <!-- 表格搜索 -->
-      <div class="w-full flex items-center justify-between mb-[10px] mt-[20px]">
-        <el-input
-          v-model="searchText"
-          placeholder="搜索"
-          class="search-item w-full rounded-[2px]"
-          prefix-icon="el-icon-search"
-        >
-        </el-input>
-      </div>
-
-      <!-- 表格 -->
-      <div 
-        class="w-full min-h-[20vh] px-[8px] py-[10px]" 
-        :style="{
-          backgroundImage: `url(${tableImage})`,
-          backgroundRepeat: 'no-repeat',
-          backgroundPosition: 'center center',
-          backgroundSize: '100% 100%'
-        }"
-      >
-        <table class="w-full text-white text-[14px] overflow-y-auto">
-          <thead>
-            <tr class="table-header">
-              <th class="py-[8px] text-left pl-[12px]">类型</th>
-              <th class="py-[8px] text-left">阶段</th>
-              <th class="py-[8px] text-left">名称</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr 
-              v-for="item in tableData" 
-              :key="item.id"
-              class="border-b border-[rgba(255,255,255,0.1)]"
+        <!-- 参建单位统计 -->
+        <div class="flex justify-between mb-[10px]">
+          <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
+            <div class="text-white text-[14px] flex flex-col items-center justify-center">
+              <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.buildingUnit}}</div>
+              <div class="text-[12px] text-[#ddd]">建设单位</div>
+            </div>
+            <img 
+              src="../assets/images/backgrounds/jianshedanwei.png" 
+              alt="" 
+              class="h-[40px] w-[60px]"
             >
-              <td class="py-[8px] pl-[12px]">{{ item.type }}</td>
-              <td class="py-[8px]">{{ item.stage }}</td>
-              <td class="py-[8px]">{{ item.name }}</td>
-            </tr>
-          </tbody>
-        </table>
+          </div>
+          <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
+            <div class="text-white text-[14px] flex flex-col items-center justify-center">
+              <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.constructionUnit}}</div>
+              <div class="text-[12px] text-[#ddd]">施工单位</div>
+            </div>
+            <img 
+              src="../assets/images/backgrounds/shigongdanwei.png" 
+              alt="" 
+              class="h-[40px] w-[60px]"
+            >
+          </div>
+        </div>
+
+        <div class="flex justify-between">
+          <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
+            <div class="text-white text-[14px] flex flex-col items-center justify-center">
+              <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.supervisionUnit}}</div>
+              <div class="text-[12px] text-[#ddd]">监理单位</div>
+            </div>
+            <img 
+              src="../assets/images/backgrounds/jianlidanwei.png" 
+              alt="" 
+              class="h-[40px] w-[60px]"
+            >
+          </div>
+          <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
+            <div class="text-white text-[14px] flex flex-col items-center justify-center">
+              <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.designUnit}}</div>
+              <div class="text-[12px] text-[#ddd]">设计单位</div>
+            </div>
+            <img 
+              src="../assets/images/backgrounds/shejidanwei.png" 
+              alt="" 
+              class="h-[40px] w-[60px]"
+            >
+          </div>
+        </div>
+      </div>
+      <div class="chart-container">
+        <!-- 表格搜索 -->
+        <div class="w-full flex items-center justify-between mb-[10px] mt-[20px]">
+          <el-input
+            v-model="searchText"
+            placeholder="搜索"
+            class="search-item w-full rounded-[2px]"
+            prefix-icon="el-icon-search"
+            clearable
+            @keyup.enter.native="searchList"
+          >
+          </el-input>
+        </div>
+
+        <!-- 表格 -->
+        <div 
+          class="chartTable w-full h-[300px] px-[8px] py-[10px] overflow-y-auto" 
+          :style="{
+            backgroundImage: `url(${tableImage})`,
+            backgroundRepeat: 'no-repeat',
+            backgroundPosition: 'center center',
+            backgroundSize: '100% 100%'
+          }"
+        >
+          <table class="w-full text-white text-[14px] overflow-y-auto">
+            <thead>
+              <tr class="table-header">
+                <th class="py-[8px] text-left pl-[12px]">类型</th>
+                <th class="py-[8px] text-left">阶段</th>
+                <th class="py-[8px] text-left">名称</th>
+              </tr>
+            </thead>
+            <tbody>
+              <tr 
+                v-for="item in tableData" 
+                :key="item.id"
+                class="border-b border-[rgba(255,255,255,0.1)]"
+              >
+                <td class="py-[8px] pl-[12px]">{{ item.UnitTypeText }}</td>
+                <td class="py-[8px]">{{ item.stage ? item.stage : '--' }}</td>
+                <td class="py-[8px]">{{ item.UnitName }}</td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
       </div>
     </div>
   </div>
 </template>
 
 <script>
+import { getProjectId } from "../utils/getToken.js";
+import { HomeAPI } from "../api/home";
 export default {
   name: 'ProjectView',
   data() {
     return {
+      projectId: '',
       searchText: '',
       backgroundImage: new URL('@/assets/images/backgrounds/cover_bg.png', import.meta.url).href,
       titleImage: new URL('@/assets/images/titles/xiangmu.png', import.meta.url).href,
       contentImage: new URL('@/assets/images/titles/xiangmu_bg.png', import.meta.url).href,
       bgImage: new URL('@/assets/images/titles/title_second.png', import.meta.url).href,
       tableImage: new URL('@/assets/images/backgrounds/table_bg.png', import.meta.url).href,
-      tableData: [
-        {
-          name: '建设单位名称单位',
-          stage: '一标',
-          type: '建设单位'
-        },
-        {
-          name: '建设单位名称单位',
-          stage: '一标',
-          type: '建设单位'
-        },
-        {
-          name: '建设单位名称单位',
-          stage: '一标',
-          type: '建设单位'
-        },
-        {
-          name: '建设单位名称单位',
-          stage: '一标',
-          type: '建设单位'
-        },
-      ]
+      projectInfo: {
+        ProjectName: '',
+        Description: '',
+        Thumbnail: '',
+        endDate: ''
+      },
+      projectParticipatingNumber: {
+        buildingUnit: 0,
+        constructionUnit: 0,
+        supervisionUnit: 0,
+        designUnit: 0
+      },
+      tableData: [],
     };
   },
+  mounted() {
+    this.getProject();
+    this.getParticipatingList();
+    this.getParticipatingNumber();
+  },
+  methods: {
+    getProject() {
+      this.projectId = getProjectId();
+      const data = {
+        "projectId": this.projectId
+      }
+      HomeAPI.GetProject(data).then(res => {
+        console.log(res);
+        if(res.Ret === 1) {
+          const result = res.Data
+          console.log(result);
+          if(result.SafeProductionEndDate && result.SafeProductionEndDate !== 'null') {
+            this.projectInfo.endDate = result.SafeProductionEndDate.substring(0, 10)
+            this.$store.commit('common/setProjectEndDate', this.projectInfo.endDate)
+            this.projectInfo.ProjectName = result.ProjectName
+            this.projectInfo.Description = result.Description
+            this.projectInfo.Thumbnail = result.Thumbnail
+          } 
+        }
+        
+      });
+    },
+    getParticipatingList(val) {
+      const data = {
+        "organizeId": this.projectId,
+        name: val ? val : ''
+      }
+      HomeAPI.GetParticipatingList(data).then(res => {
+        console.log(res);
+        if(res.Ret === 1) {
+          const result = res.Data
+          console.log(result);
+          if(result.length > 0) {
+            this.tableData = result
+          } else {
+            this.tableData = []
+          }
+
+        }
+      });
+    },
+    getParticipatingNumber() {
+      const data = {
+        "organizeId": this.projectId
+      }
+      HomeAPI.GetParticipatingNumber(data).then(res => {
+        console.log(res);
+        if(res.Ret === 1) {
+          const result = res.Data
+          console.log(result);
+          if(result.length > 0) {
+            result.forEach(item => {
+              if(item.UnitTypeText === '建设单位') {
+                this.projectParticipatingNumber.buildingUnit = item.Number
+              } else if(item.UnitTypeText === '施工单位') {
+                this.projectParticipatingNumber.constructionUnit = item.Number
+              } else if(item.UnitTypeText === '监理单位') {
+                this.projectParticipatingNumber.supervisionUnit = item.Number
+              } else if(item.UnitTypeText === '设计单位') {
+                this.projectParticipatingNumber.designUnit = item.Number
+              }
+            })
+          }
+        }
+      });
+    },
+    searchList() {
+      this.getParticipatingList(this.searchText)
+    }
+  }
 }
 </script>
 
@@ -302,4 +379,11 @@
   background: linear-gradient(180deg, #3068A5 0%, #1E4066 100%);
   box-shadow: inset 0px 1px 0px 0px rgba(255,255,255,0.2);
 }
+.chart-container{
+  width: 100%;
+  height: calc(40% - 170px);
+  .chartTable{
+    height: calc(100% - 10px);
+  }
+}
 </style>

--
Gitblit v1.9.3