Ver Fonte

feature: 合同和e签宝

sgc há 2 meses atrás
pai
commit
9df7bae42b

+ 3 - 14
src/api/modules/contractManagement.ts

@@ -13,10 +13,11 @@ import router from "@/routers";
 const CONTRACT_BASE_URL = "http://120.26.186.130:33333";
 const CONTRACT_BASE_URL = "http://120.26.186.130:33333";
 
 
 // 创建专门用于合同接口的 axios 实例
 // 创建专门用于合同接口的 axios 实例
+// 注意:不使用 withCredentials,因为认证通过 Authorization header 传递,且服务器 CORS 配置为通配符
 const contractAxios = axios.create({
 const contractAxios = axios.create({
   baseURL: CONTRACT_BASE_URL,
   baseURL: CONTRACT_BASE_URL,
   timeout: ResultEnum.TIMEOUT as number,
   timeout: ResultEnum.TIMEOUT as number,
-  withCredentials: true
+  withCredentials: false
 });
 });
 
 
 // 请求拦截:补充 token
 // 请求拦截:补充 token
@@ -31,22 +32,10 @@ contractAxios.interceptors.request.use(
   error => Promise.reject(error)
   error => Promise.reject(error)
 );
 );
 
 
-// 响应拦截:与平台 http 保持一致的基础处理
+// 响应拦截:直接返回响应数据
 contractAxios.interceptors.response.use(
 contractAxios.interceptors.response.use(
   response => {
   response => {
     const data = response.data;
     const data = response.data;
-    console.log(3333, data);
-    const userStore = useUserStore();
-    if (data.code == 200) {
-      userStore.setToken("");
-      router.replace(LOGIN_URL);
-      ElMessage.error(data.msg);
-      return Promise.reject(data);
-    }
-    if (data.code && data.code !== ResultEnum.SUCCESS) {
-      ElMessage.error(data.msg);
-      return Promise.reject(data);
-    }
     return data;
     return data;
   },
   },
   error => {
   error => {

+ 0 - 1
src/hooks/useTable.ts

@@ -60,7 +60,6 @@ export const useTable = (
       // 先把初始化参数和分页参数放到总参数里面
       // 先把初始化参数和分页参数放到总参数里面
       Object.assign(state.totalParam, initParam, isPageable ? pageParam.value : {});
       Object.assign(state.totalParam, initParam, isPageable ? pageParam.value : {});
       let { data } = await api({ ...state.searchInitParam, ...state.totalParam });
       let { data } = await api({ ...state.searchInitParam, ...state.totalParam });
-      console.log("data11", data);
       dataCallBack && (data = dataCallBack(data));
       dataCallBack && (data = dataCallBack(data));
       state.tableData = isPageable ? data.list : data;
       state.tableData = isPageable ? data.list : data;
       // 解构后台返回的分页数据 (如果有分页更新分页信息)
       // 解构后台返回的分页数据 (如果有分页更新分页信息)

+ 1 - 1
src/views/contractManagement/detail.vue

@@ -59,7 +59,7 @@ const loadContractDetail = async () => {
       contact_phone: contactPhone || ""
       contact_phone: contactPhone || ""
     });
     });
 
 
-    if (res && res.code === 200 && res.data) {
+    if (res) {
       // 如果返回的是URL字符串,直接使用
       // 如果返回的是URL字符串,直接使用
       if (typeof res.data === "string") {
       if (typeof res.data === "string") {
         contractUrl.value = res.data;
         contractUrl.value = res.data;

+ 37 - 8
src/views/contractManagement/index.vue

@@ -72,15 +72,12 @@ const columns = reactive<ColumnProps<any>[]>([
     }
     }
   },
   },
   {
   {
-    prop: "counterparty",
+    prop: "store_name",
     label: "对方单位",
     label: "对方单位",
-    minWidth: 250,
-    render: (scope: any) => {
-      return scope.row.counterparty || "—";
-    }
+    minWidth: 250
   },
   },
   {
   {
-    prop: "validity_period",
+    prop: "effective_time",
     label: "有效期",
     label: "有效期",
     width: 300,
     width: 300,
     render: (scope: any) => {
     render: (scope: any) => {
@@ -107,7 +104,6 @@ const formatDate = (dateStr: string) => {
 
 
 // 数据回调处理
 // 数据回调处理
 const dataCallback = (data: any) => {
 const dataCallback = (data: any) => {
-  console.log(4444, data);
   // 根据实际接口返回格式处理
   // 根据实际接口返回格式处理
   if (data) {
   if (data) {
     return {
     return {
@@ -115,6 +111,7 @@ const dataCallback = (data: any) => {
       total: data.total || 0
       total: data.total || 0
     };
     };
   }
   }
+
   return {
   return {
     list: [],
     list: [],
     total: 0
     total: 0
@@ -140,7 +137,8 @@ const getTableList = async (params: any) => {
   }
   }
 
 
   const res = await getContractList(storeId, requestParams);
   const res = await getContractList(storeId, requestParams);
-  return res;
+  // 包装返回格式以匹配 useTable 的期望格式 { data: ... }
+  return { data: res };
 };
 };
 
 
 // 切换tab
 // 切换tab
@@ -252,7 +250,38 @@ const handleDownload = async (row: any) => {
     }
     }
   }
   }
   .table-container {
   .table-container {
+    min-height: 400px;
     :deep(.el-table) {
     :deep(.el-table) {
+      min-height: 300px;
+
+      // 确保表格体有最小高度
+      .el-table__body-wrapper {
+        min-height: 300px;
+      }
+
+      // 确保空状态时表格有高度
+      .el-table__empty-block {
+        position: relative !important;
+        display: flex !important;
+        align-items: center;
+        justify-content: center;
+        min-height: 300px;
+
+        // 确保空状态内容正常显示
+        .table-empty {
+          display: flex;
+          flex-direction: column;
+          gap: 12px;
+          align-items: center;
+          justify-content: center;
+          line-height: normal;
+          img {
+            display: inline-flex !important;
+            width: 180px;
+            height: 180px;
+          }
+        }
+      }
       .contract-row {
       .contract-row {
         position: relative;
         position: relative;
         display: flex;
         display: flex;