From bb3bd278c3494a3242629464b8b83ee2e96c203c Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 17 九月 2025 16:01:28 +0800
Subject: [PATCH] 部署修改

---
 src/views/procurementManagement/procurementReport/index.vue |   31 ++++--
 src/views/procurementManagement/index.vue                   |   42 ++++++++
 src/router/index.js                                         |  198 ++++++++++++++++++---------------------
 3 files changed, 154 insertions(+), 117 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 437e523..9c5a968 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,6 +1,6 @@
-import { createWebHistory, createRouter } from 'vue-router'
+import { createWebHistory, createRouter } from "vue-router";
 /* Layout */
-import Layout from '@/layout'
+import Layout from "@/layout";
 
 /**
  * Note: 璺敱閰嶇疆椤�
@@ -16,85 +16,80 @@
  * roles: ['admin', 'common']       // 璁块棶璺敱鐨勮鑹叉潈闄�
  * permissions: ['a:a:a', 'b:b:b']  // 璁块棶璺敱鐨勮彍鍗曟潈闄�
  * meta : {
-    noCache: true                   // 濡傛灉璁剧疆涓簍rue锛屽垯涓嶄細琚� <keep-alive> 缂撳瓨(榛樿 false)
-    title: 'title'                  // 璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛�
-    icon: 'svg-name'                // 璁剧疆璇ヨ矾鐢辩殑鍥炬爣锛屽搴旇矾寰剆rc/assets/icons/svg
-    breadcrumb: false               // 濡傛灉璁剧疆涓篺alse锛屽垯涓嶄細鍦╞readcrumb闈㈠寘灞戜腑鏄剧ず
-    activeMenu: '/system/user'      // 褰撹矾鐢辫缃簡璇ュ睘鎬э紝鍒欎細楂樹寒鐩稿搴旂殑渚ц竟鏍忋��
-  }
+ noCache: true                   // 濡傛灉璁剧疆涓簍rue锛屽垯涓嶄細琚� <keep-alive> 缂撳瓨(榛樿 false)
+ title: 'title'                  // 璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛�
+ icon: 'svg-name'                // 璁剧疆璇ヨ矾鐢辩殑鍥炬爣锛屽搴旇矾寰剆rc/assets/icons/svg
+ breadcrumb: false               // 濡傛灉璁剧疆涓篺alse锛屽垯涓嶄細鍦╞readcrumb闈㈠寘灞戜腑鏄剧ず
+ activeMenu: '/system/user'      // 褰撹矾鐢辫缃簡璇ュ睘鎬э紝鍒欎細楂樹寒鐩稿搴旂殑渚ц竟鏍忋��
+ }
  */
 
 // 鍏叡璺敱
 export const constantRoutes = [
   {
-    path: '/redirect',
+    path: "/redirect",
     component: Layout,
     hidden: true,
     children: [
       {
-        path: '/redirect/:path(.*)',
-        component: () => import('@/views/redirect/index.vue')
-      }
-    ]
+        path: "/redirect/:path(.*)",
+        component: () => import("@/views/redirect/index.vue"),
+      },
+    ],
   },
   {
-    path: '/login',
-    component: () => import('@/views/login'),
-    hidden: true
-  },
-  {
-    path: "/callbacklccpn",
-    component: () => import("@/views/tideLogin.vue"),
+    path: "/login",
+    component: () => import("@/views/login"),
     hidden: true,
   },
   {
-    path: '/register',
-    component: () => import('@/views/register'),
-    hidden: true
+    path: "/register",
+    component: () => import("@/views/register"),
+    hidden: true,
   },
   {
     path: "/:pathMatch(.*)*",
-    component: () => import('@/views/error/404'),
-    hidden: true
+    component: () => import("@/views/error/404"),
+    hidden: true,
   },
   {
-    path: '/401',
-    component: () => import('@/views/error/401'),
-    hidden: true
+    path: "/401",
+    component: () => import("@/views/error/401"),
+    hidden: true,
   },
 
   {
-    path: '',
+    path: "",
     component: Layout,
-    redirect: '/index',
+    redirect: "/index",
     children: [
       {
-        path: '/index',
-        component: () => import('@/views/index'),
-        name: 'Index',
-        meta: { title: '棣栭〉', icon: 'dashboard', affix: true }
-      }
-    ]
+        path: "/index",
+        component: () => import("@/views/index"),
+        name: "Index",
+        meta: { title: "棣栭〉", icon: "dashboard", affix: true },
+      },
+    ],
   },
-  // {
-  //   path: '/main/MobileChat',
-  //   component: Layout,
-  //   redirect: '',
-  //   hidden: true,
-  //   children: [
-  //     {
-  //       path: '',
-  //       component: () => import('@/views/chatHome/chatHomeIndex/MobileChat'),
-  //       name: 'MobileChat',
-  //       meta: { title: 'AI瀵硅瘽', icon: 'dashboard', affix: true}
-  //     }
-  //   ]
-  // },
   {
-    path: '/user',
+    path: "/main/MobileChat",
+    component: Layout,
+    redirect: "",
+    hidden: true,
+    children: [
+      {
+        path: "",
+        component: () => import("@/views/chatHome/chatHomeIndex/MobileChat"),
+        name: "MobileChat",
+        meta: { title: "AI瀵硅瘽", icon: "dashboard", affix: true },
+      },
+    ],
+  },
+  {
+    path: "/user",
     component: Layout,
     hidden: true,
-    redirect: 'noredirect',
+    redirect: "noredirect",
     children: [
       {
         path: "profile",
@@ -111,98 +106,91 @@
     name: "DeviceInfo",
     meta: { title: "璁惧淇℃伅", icon: "monitor" },
   },
-  {
-    path: "/data-dashboard",
-    component: () => import("@/views/reportAnalysis/dataDashboard/index.vue"),
-    hidden: true,
-    name: "DataDashboard",
-    meta: { title: "鏁版嵁澶у睆", icon: "dashboard" },
-  },
 ];
 
 // 鍔ㄦ�佽矾鐢憋紝鍩轰簬鐢ㄦ埛鏉冮檺鍔ㄦ�佸幓鍔犺浇
 export const dynamicRoutes = [
   {
-    path: '/system/user-auth',
+    path: "/system/user-auth",
     component: Layout,
     hidden: true,
-    permissions: ['system:user:edit'],
+    permissions: ["system:user:edit"],
     children: [
       {
-        path: 'role/:userId(\\d+)',
-        component: () => import('@/views/system/user/authRole'),
-        name: 'AuthRole',
-        meta: { title: '鍒嗛厤瑙掕壊', activeMenu: '/system/user' }
-      }
-    ]
+        path: "role/:userId(\\d+)",
+        component: () => import("@/views/system/user/authRole"),
+        name: "AuthRole",
+        meta: { title: "鍒嗛厤瑙掕壊", activeMenu: "/system/user" },
+      },
+    ],
   },
   {
-    path: '/system/role-auth',
+    path: "/system/role-auth",
     component: Layout,
     hidden: true,
-    permissions: ['system:role:edit'],
+    permissions: ["system:role:edit"],
     children: [
       {
-        path: 'user/:roleId(\\d+)',
-        component: () => import('@/views/system/role/authUser'),
-        name: 'AuthUser',
-        meta: { title: '鍒嗛厤鐢ㄦ埛', activeMenu: '/system/role' }
-      }
-    ]
+        path: "user/:roleId(\\d+)",
+        component: () => import("@/views/system/role/authUser"),
+        name: "AuthUser",
+        meta: { title: "鍒嗛厤鐢ㄦ埛", activeMenu: "/system/role" },
+      },
+    ],
   },
   {
-    path: '/system/dict-data',
+    path: "/system/dict-data",
     component: Layout,
     hidden: true,
-    permissions: ['system:dict:list'],
+    permissions: ["system:dict:list"],
     children: [
       {
-        path: 'index/:dictId(\\d+)',
-        component: () => import('@/views/system/dict/data'),
-        name: 'Data',
-        meta: { title: '瀛楀吀鏁版嵁', activeMenu: '/system/dict' }
-      }
-    ]
+        path: "index/:dictId(\\d+)",
+        component: () => import("@/views/system/dict/data"),
+        name: "Data",
+        meta: { title: "瀛楀吀鏁版嵁", activeMenu: "/system/dict" },
+      },
+    ],
   },
   {
-    path: '/monitor/job-log',
+    path: "/monitor/job-log",
     component: Layout,
     hidden: true,
-    permissions: ['monitor:job:list'],
+    permissions: ["monitor:job:list"],
     children: [
       {
-        path: 'index/:jobId(\\d+)',
-        component: () => import('@/views/monitor/job/log'),
-        name: 'JobLog',
-        meta: { title: '璋冨害鏃ュ織', activeMenu: '/monitor/job' }
-      }
-    ]
+        path: "index/:jobId(\\d+)",
+        component: () => import("@/views/monitor/job/log"),
+        name: "JobLog",
+        meta: { title: "璋冨害鏃ュ織", activeMenu: "/monitor/job" },
+      },
+    ],
   },
   {
-    path: '/tool/gen-edit',
+    path: "/tool/gen-edit",
     component: Layout,
     hidden: true,
-    permissions: ['tool:gen:edit'],
+    permissions: ["tool:gen:edit"],
     children: [
       {
-        path: 'index/:tableId(\\d+)',
-        component: () => import('@/views/tool/gen/editTable'),
-        name: 'GenEdit',
-        meta: { title: '淇敼鐢熸垚閰嶇疆', activeMenu: '/tool/gen' }
-      }
-    ]
-  }
-]
+        path: "index/:tableId(\\d+)",
+        component: () => import("@/views/tool/gen/editTable"),
+        name: "GenEdit",
+        meta: { title: "淇敼鐢熸垚閰嶇疆", activeMenu: "/tool/gen" },
+      },
+    ],
+  },
+];
 
 const router = createRouter({
   history: createWebHistory(),
   routes: constantRoutes,
   scrollBehavior(to, from, savedPosition) {
     if (savedPosition) {
-      return savedPosition
+      return savedPosition;
     }
-    return { top: 0 }
+    return { top: 0 };
   },
-})
+});
 
-export default router
+export default router;
diff --git a/src/views/procurementManagement/index.vue b/src/views/procurementManagement/index.vue
index dd7c3c4..bf54384 100644
--- a/src/views/procurementManagement/index.vue
+++ b/src/views/procurementManagement/index.vue
@@ -101,6 +101,26 @@
       </el-col>
 
       <el-col :span="8">
+        <el-card class="module-card" shadow="hover" @click="navigateTo('/procurementManagement/procurementPlan')">
+          <div class="card-content">
+            <div class="card-icon">
+              <el-icon size="48" color="#9C27B0"><Calendar /></el-icon>
+            </div>
+            <div class="card-info">
+              <h3>閲囪喘璁″垝</h3>
+              <p>鏅鸿兘閲囪喘璁″垝閰嶇疆锛岃嚜鍔ㄨ绠楅噰璐渶姹傦紝鑰冭檻搴撳瓨鍜屽畨鍏ㄥ簱瀛�</p>
+              <div class="card-stats">
+                <span>娲昏穬璁″垝: {{ stats.activePlans }}</span>
+                <span>寰呰绠�: {{ stats.pendingCalculations }}</span>
+              </div>
+            </div>
+          </div>
+        </el-card>
+      </el-col>
+    </el-row>
+
+    <el-row :gutter="20" class="module-cards">
+      <el-col :span="8">
         <el-card class="module-card" shadow="hover" @click="navigateTo('/procurementManagement/procurementLedger')">
           <div class="card-content">
             <div class="card-icon">
@@ -112,6 +132,24 @@
               <div class="card-stats">
                 <span>鎬昏鍗�: {{ stats.totalOrders }}</span>
                 <span>鎬婚噾棰�: 楼{{ stats.totalAmount.toFixed(2) }}</span>
+              </div>
+            </div>
+          </div>
+        </el-card>
+      </el-col>
+
+      <el-col :span="8">
+        <el-card class="module-card" shadow="hover" @click="navigateTo('/procurementManagement/procurementReport')">
+          <div class="card-content">
+            <div class="card-icon">
+              <el-icon size="48" color="#FF6B6B"><TrendCharts /></el-icon>
+            </div>
+            <div class="card-info">
+              <h3>閲囪喘鎶ヨ〃</h3>
+              <p>閲囪喘璁㈠崟鎵ц姹囨�汇�佹槑缁嗗垎鏋愩�佷笟鍔$粺璁°�佷緵搴斿晢渚涜揣姹囨��</p>
+              <div class="card-stats">
+                <span>鎶ヨ〃绫诲瀷: 4绉�</span>
+                <span>鏁版嵁鏇存柊: 瀹炴椂</span>
               </div>
             </div>
           </div>
@@ -179,7 +217,7 @@
 <script setup>
 import { ref, onMounted } from 'vue'
 import { useRouter } from 'vue-router'
-import { Document, Box, Search, RefreshLeft, Money, List } from '@element-plus/icons-vue'
+import { Document, Box, Search, RefreshLeft, Money, List, Calendar, TrendCharts } from '@element-plus/icons-vue'
 
 const router = useRouter()
 
@@ -195,6 +233,8 @@
   approvedReturns: 3,
   activePrices: 45,
   pendingPrices: 2,
+  activePlans: 8,
+  pendingCalculations: 3,
   totalOrders: 30,
   totalAmount: 125.8,
   avgDeliveryTime: 7,
diff --git a/src/views/procurementManagement/procurementReport/index.vue b/src/views/procurementManagement/procurementReport/index.vue
index a12b4ba..33a0e91 100644
--- a/src/views/procurementManagement/procurementReport/index.vue
+++ b/src/views/procurementManagement/procurementReport/index.vue
@@ -112,9 +112,9 @@
           </div>
         </div>
         
-        <el-table :data="orderSummaryData" border v-loading="loading" stripe>
+        <el-table :data="orderSummaryData" border v-loading="loading" stripe style="width: 100%">
           <el-table-column label="璁㈠崟缂栧彿" prop="orderNo" width="180" fixed="left" />
-          <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="150" />
+          <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" min-width="150" />
           <el-table-column label="璁㈠崟鏃ユ湡" prop="orderDate" width="120" />
           <el-table-column label="璁″垝浜ゆ湡" prop="plannedDelivery" width="120" />
           <el-table-column label="瀹為檯浜ゆ湡" prop="actualDelivery" width="120" />
@@ -160,11 +160,11 @@
           </div>
         </div>
         
-        <el-table :data="orderDetailData" border v-loading="loading" stripe>
+        <el-table :data="orderDetailData" border v-loading="loading" stripe style="width: 100%">
           <el-table-column label="璁㈠崟缂栧彿" prop="orderNo" width="150" fixed="left" />
           <el-table-column label="鍟嗗搧缂栫爜" prop="productCode" width="120" />
-          <el-table-column label="鍟嗗搧鍚嶇О" prop="productName" width="200" />
-          <el-table-column label="瑙勬牸鍨嬪彿" prop="specification" width="150" />
+          <el-table-column label="鍟嗗搧鍚嶇О" prop="productName" min-width="200" />
+          <el-table-column label="瑙勬牸鍨嬪彿" prop="specification" min-width="150" />
           <el-table-column label="鍗曚綅" prop="unit" width="80" />
           <el-table-column label="璁″垝鏁伴噺" prop="plannedQuantity" width="100" />
           <el-table-column label="宸叉敹璐ф暟閲�" prop="receivedQuantity" width="120" />
@@ -204,11 +204,11 @@
           </div>
         </div>
         
-        <el-table :data="businessSummaryData" border v-loading="loading" stripe>
+        <el-table :data="businessSummaryData" border v-loading="loading" stripe style="width: 100%">
           <el-table-column label="鍟嗗搧绫诲埆" prop="category" width="150" fixed="left" />
           <el-table-column label="鍟嗗搧缂栫爜" prop="productCode" width="120" />
-          <el-table-column label="鍟嗗搧鍚嶇О" prop="productName" width="200" />
-          <el-table-column label="瑙勬牸鍨嬪彿" prop="specification" width="150" />
+          <el-table-column label="鍟嗗搧鍚嶇О" prop="productName" min-width="200" />
+          <el-table-column label="瑙勬牸鍨嬪彿" prop="specification" min-width="150" />
           <el-table-column label="閲囪喘鏁伴噺" prop="purchaseQuantity" width="120" />
           <el-table-column label="閲囪喘閲戦" prop="purchaseAmount" width="120">
             <template #default="{ row }">楼{{ row.purchaseAmount.toLocaleString() }}</template>
@@ -217,7 +217,7 @@
             <template #default="{ row }">楼{{ row.avgPrice.toFixed(2) }}</template>
           </el-table-column>
           <el-table-column label="閲囪喘娆℃暟" prop="purchaseCount" width="100" />
-          <el-table-column label="涓昏渚涘簲鍟�" prop="mainSupplier" width="150" />
+          <el-table-column label="涓昏渚涘簲鍟�" prop="mainSupplier" min-width="150" />
           <el-table-column label="鏈�鍚庨噰璐棩鏈�" prop="lastPurchaseDate" width="120" />
         </el-table>
       </div>
@@ -242,9 +242,9 @@
           </div>
         </div>
         
-        <el-table :data="supplierSummaryData" border v-loading="loading" stripe>
+        <el-table :data="supplierSummaryData" border v-loading="loading" stripe style="width: 100%">
           <el-table-column label="渚涘簲鍟嗙紪鐮�" prop="supplierCode" width="120" fixed="left" />
-          <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="200" />
+          <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" min-width="200" />
           <el-table-column label="鑱旂郴浜�" prop="contactPerson" width="120" />
           <el-table-column label="鑱旂郴鐢佃瘽" prop="phone" width="130" />
           <el-table-column label="渚涜揣璁㈠崟鏁�" prop="orderCount" width="120" />
@@ -805,6 +805,15 @@
 :deep(.el-table) {
   border-radius: 8px;
   overflow: hidden;
+  width: 100% !important;
+}
+
+:deep(.el-table__body-wrapper) {
+  width: 100% !important;
+}
+
+:deep(.el-table__header-wrapper) {
+  width: 100% !important;
 }
 
 :deep(.el-table th) {

--
Gitblit v1.9.3