Browse Source

style: rebuild frontend — card layout fix with two-column body, consistent action buttons

wangkangyjy 2 months ago
parent
commit
23c690b72e
56 changed files with 16 additions and 13 deletions
  1. 1 0
      backend/src/main/resources/static/assets/AlignmentView-eyTzzMKi.css
  2. 0 0
      backend/src/main/resources/static/assets/AlignmentView-wdXlHhID.js
  3. 0 0
      backend/src/main/resources/static/assets/DimensionConfigView-G9u4xSY7.js
  4. 0 0
      backend/src/main/resources/static/assets/FeedbackView-BH49wCNE.js
  5. 0 0
      backend/src/main/resources/static/assets/HistoryView-BCy-W9gH.js
  6. 0 0
      backend/src/main/resources/static/assets/HistoryView-BpbQpYdS.css
  7. 0 0
      backend/src/main/resources/static/assets/HistoryView-C6KZou_b.css
  8. 0 0
      backend/src/main/resources/static/assets/KpiTemplateView-s2SLnRJq.js
  9. 0 0
      backend/src/main/resources/static/assets/LogView-BdXAwaoL.js
  10. 0 0
      backend/src/main/resources/static/assets/LoginView-CZqv_CpN.css
  11. 0 0
      backend/src/main/resources/static/assets/LoginView-Cb9bs5NO.js
  12. 0 0
      backend/src/main/resources/static/assets/LoginView-xWcl7R9Y.css
  13. 0 1
      backend/src/main/resources/static/assets/MainLayout-BjZWU17s.css
  14. 1 0
      backend/src/main/resources/static/assets/MainLayout-C5pcS7Wk.js
  15. 0 0
      backend/src/main/resources/static/assets/MainLayout-bYW7zEFB.js
  16. 0 0
      backend/src/main/resources/static/assets/MainLayout-e4wjaGbu.css
  17. 0 0
      backend/src/main/resources/static/assets/MyOkrView-BvUAhmDr.js
  18. 0 0
      backend/src/main/resources/static/assets/MyOkrView-CZyefxiL.css
  19. 0 0
      backend/src/main/resources/static/assets/MyOkrView-CpLdCoJN.js
  20. 0 0
      backend/src/main/resources/static/assets/MyOkrView-DLn_xYu_.css
  21. 0 0
      backend/src/main/resources/static/assets/MyResultView-BFWnW9nV.js
  22. 0 0
      backend/src/main/resources/static/assets/MyResultView-BQAZFFfs.css
  23. 0 0
      backend/src/main/resources/static/assets/MyResultView-C-T3JL4X.css
  24. 0 0
      backend/src/main/resources/static/assets/MyResultView-GfRLfvyy.js
  25. 1 0
      backend/src/main/resources/static/assets/NotificationView-CYuTpY7b.js
  26. 1 0
      backend/src/main/resources/static/assets/NotificationView-Da3YNNjt.css
  27. 0 0
      backend/src/main/resources/static/assets/OrgView-B75CWJTa.js
  28. 0 1
      backend/src/main/resources/static/assets/OrgView-CrTkk41w.css
  29. 1 0
      backend/src/main/resources/static/assets/OrgView-D6id1kOl.css
  30. 0 0
      backend/src/main/resources/static/assets/OrgView-cgCR46bA.js
  31. 0 0
      backend/src/main/resources/static/assets/PeriodBanner-BQnO7s3g.js
  32. 0 0
      backend/src/main/resources/static/assets/PeriodBanner-Bq0-4QKL.js
  33. 1 0
      backend/src/main/resources/static/assets/PeriodBanner-DHo6KqN8.css
  34. 0 1
      backend/src/main/resources/static/assets/PeriodBanner-DPsLrDiQ.css
  35. 0 0
      backend/src/main/resources/static/assets/PeriodListView-CI4nnOu9.js
  36. 0 0
      backend/src/main/resources/static/assets/PeriodListView-Cj7wjMiE.css
  37. 0 0
      backend/src/main/resources/static/assets/PeriodListView-DGgqB_Bu.js
  38. 0 0
      backend/src/main/resources/static/assets/PeriodListView-DvdpLF-c.css
  39. 0 0
      backend/src/main/resources/static/assets/ScoringEditView-BhjMDuSe.css
  40. 0 0
      backend/src/main/resources/static/assets/ScoringEditView-D0SwZp8R.js
  41. 0 0
      backend/src/main/resources/static/assets/ScoringEditView-DTtgtzBi.js
  42. 0 0
      backend/src/main/resources/static/assets/ScoringEditView-gYnQh6mo.css
  43. 1 0
      backend/src/main/resources/static/assets/ScoringListView-BT6AHD7N.css
  44. 0 0
      backend/src/main/resources/static/assets/ScoringListView-C5xC8RjV.js
  45. 0 0
      backend/src/main/resources/static/assets/ScoringListView-CBtjVW6h.js
  46. 0 1
      backend/src/main/resources/static/assets/ScoringListView-C_yDoAka.css
  47. 0 0
      backend/src/main/resources/static/assets/TeamOkrView-B5b3Rg9N.css
  48. 0 0
      backend/src/main/resources/static/assets/TeamOkrView-BHD_hoMi.css
  49. 0 1
      backend/src/main/resources/static/assets/TeamOkrView-C2Sn14Z7.js
  50. 0 1
      backend/src/main/resources/static/assets/auth-Cxf8BIzw.js
  51. 1 0
      backend/src/main/resources/static/assets/auth-DWcI-k9D.js
  52. 0 0
      backend/src/main/resources/static/assets/index-DPlaWbzU.css
  53. 0 0
      backend/src/main/resources/static/assets/index-Tp0ZZGLd.js
  54. 1 1
      backend/src/main/resources/static/assets/index-iBAYXZct.js
  55. 2 2
      backend/src/main/resources/static/index.html
  56. 5 4
      frontend/src/views/period/PeriodListView.vue

+ 1 - 0
backend/src/main/resources/static/assets/AlignmentView-eyTzzMKi.css

@@ -0,0 +1 @@
+.alignment-page[data-v-ed761121]{max-width:1200px;margin:0 auto}.alignment-header[data-v-ed761121]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.tree-card[data-v-ed761121]{max-height:calc(100vh - 200px);overflow-y:auto}.tree-node[data-v-ed761121]{display:flex;align-items:center;gap:8px;font-size:13px}.tree-title[data-v-ed761121]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.orphan-item[data-v-ed761121]{padding:4px 0;font-size:12px;color:#999}.detail-meta[data-v-ed761121]{display:flex;gap:12px;align-items:center;font-size:13px;color:#666}

File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/AlignmentView-wdXlHhID.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/DimensionConfigView-G9u4xSY7.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/FeedbackView-BH49wCNE.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/HistoryView-BCy-W9gH.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/HistoryView-BpbQpYdS.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/HistoryView-C6KZou_b.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/KpiTemplateView-s2SLnRJq.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/LogView-BdXAwaoL.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/LoginView-CZqv_CpN.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/LoginView-Cb9bs5NO.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/LoginView-xWcl7R9Y.css


+ 0 - 1
backend/src/main/resources/static/assets/MainLayout-BjZWU17s.css

@@ -1 +0,0 @@
-.layout[data-v-588d1e6f]{height:100vh}.sidebar[data-v-588d1e6f]{background:linear-gradient(180deg,#1a1560,#2b1f99 60%,#1e1780)!important;overflow-y:auto;transition:width .3s}.logo-area[data-v-588d1e6f]{padding:20px 16px 16px;border-bottom:1px solid rgba(255,255,255,.08);text-align:center}.logo-area.collapsed[data-v-588d1e6f]{padding:12px 8px}.logo-img[data-v-588d1e6f]{width:120px;height:60px;object-fit:contain;display:block;margin:0 auto 4px}.logo-img-mini[data-v-588d1e6f]{width:40px;height:22px;object-fit:contain}.logo-text[data-v-588d1e6f]{font-size:16px;font-weight:700;color:#3ad4d8;letter-spacing:3px;display:block;text-align:center}.logo-sub[data-v-588d1e6f]{font-size:11px;color:#fff6;text-align:center;display:block;margin-top:2px}.menu-group-title[data-v-588d1e6f]{padding:16px 20px 6px;font-size:11px;color:#ffffff4d;text-transform:uppercase;letter-spacing:1px}.el-menu[data-v-588d1e6f]{border-right:none!important}.el-menu-item[data-v-588d1e6f]{margin:2px 8px;border-radius:6px}.el-menu-item.is-active[data-v-588d1e6f]{background:#3ad4d81f!important;border-left:3px solid #3ad4d8}.topbar[data-v-588d1e6f]{height:48px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e8eaed;padding:0 20px}.topbar-left[data-v-588d1e6f]{display:flex;align-items:center;gap:8px}.topbar-right[data-v-588d1e6f]{display:flex;align-items:center;gap:12px}.user-info[data-v-588d1e6f]{font-size:13px;color:#666}.main-content[data-v-588d1e6f]{background:#f5f7fa;padding:20px 24px;min-height:calc(100vh - 48px)}

File diff suppressed because it is too large
+ 1 - 0
backend/src/main/resources/static/assets/MainLayout-C5pcS7Wk.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MainLayout-bYW7zEFB.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MainLayout-e4wjaGbu.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MyOkrView-BvUAhmDr.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MyOkrView-CZyefxiL.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MyOkrView-CpLdCoJN.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MyOkrView-DLn_xYu_.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MyResultView-BFWnW9nV.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MyResultView-BQAZFFfs.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MyResultView-C-T3JL4X.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/MyResultView-GfRLfvyy.js


+ 1 - 0
backend/src/main/resources/static/assets/NotificationView-CYuTpY7b.js

@@ -0,0 +1 @@
+import{notificationApi as m}from"./index-Tp0ZZGLd.js";import{_ as h,k as x,o as g,c as I,d as t,w as a,r as l,f as s,C as O,n as k,g as A,i as p,t as v,a as _}from"./index-iBAYXZct.js";const V={class:"notification-page"},B={class:"card-header"},F={style:{"margin-top":"16px","text-align":"center"}},K={__name:"NotificationView",setup(z){const u=s([]),r=s(!1),c=s(1),f=s(0);function R(o){return{OKR_REVIEW:"OKR审核",OKR_REVIEWED:"审核结果",SCORE_CONFIRM:"评分确认",SCORE_CONFIRMED:"确认通知",PERIOD_DEADLINE:"截止提醒",KR_LAGGING:"进度滞后",FEEDBACK_NOTIFY:"面谈通知"}[o]||o}async function d(){r.value=!0;try{const o=await m.getPage({page:c.value,size:20});u.value=o.records,f.value=o.total}finally{r.value=!1}}async function w(){await m.markAllRead(),await d()}return x(d),(o,e)=>{const E=l("el-button"),y=l("el-tag"),i=l("el-table-column"),b=l("el-table"),C=l("el-pagination"),D=l("el-card"),N=O("loading");return g(),I("div",V,[t(D,null,{header:a(()=>[_("div",B,[e[2]||(e[2]=_("span",null,"消息通知",-1)),t(E,{text:"",type:"primary",onClick:w},{default:a(()=>[...e[1]||(e[1]=[p("全部已读",-1)])]),_:1})])]),default:a(()=>[k((g(),A(b,{data:u.value,stripe:""},{default:a(()=>[t(i,{label:"状态",width:"70"},{default:a(({row:n})=>[t(y,{size:"small",type:n.isRead===0?"danger":"info"},{default:a(()=>[p(v(n.isRead===0?"未读":"已读"),1)]),_:2},1032,["type"])]),_:1}),t(i,{prop:"title",label:"标题","min-width":"180"}),t(i,{prop:"content",label:"内容","min-width":"240","show-overflow-tooltip":""}),t(i,{label:"类型",width:"120"},{default:a(({row:n})=>[p(v(R(n.type)),1)]),_:1}),t(i,{prop:"createdAtFriendly",label:"时间",width:"100"})]),_:1},8,["data"])),[[N,r.value]]),_("div",F,[t(C,{"current-page":c.value,"onUpdate:currentPage":e[0]||(e[0]=n=>c.value=n),total:f.value,"page-size":20,layout:"prev, pager, next",onCurrentChange:d},null,8,["current-page","total"])])]),_:1})])}}},M=h(K,[["__scopeId","data-v-162a2170"]]);export{M as default};

+ 1 - 0
backend/src/main/resources/static/assets/NotificationView-Da3YNNjt.css

@@ -0,0 +1 @@
+.notification-page[data-v-162a2170]{max-width:960px;margin:0 auto}.card-header[data-v-162a2170]{display:flex;justify-content:space-between;align-items:center}

File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/OrgView-B75CWJTa.js


+ 0 - 1
backend/src/main/resources/static/assets/OrgView-CrTkk41w.css

@@ -1 +0,0 @@
-.page[data-v-f6f30c78]{width:100%}.page-hero[data-v-f6f30c78]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.hero-info h2[data-v-f6f30c78]{font-size:28px;font-weight:700;color:#1a1a2e;margin:0}.hero-info p[data-v-f6f30c78]{font-size:14px;color:#888;margin:4px 0 0}.hero-actions[data-v-f6f30c78]{display:flex;gap:8px}.two-col[data-v-f6f30c78]{display:flex;gap:20px}.col[data-v-f6f30c78]{background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 1px 4px #0000000a;border:1px solid #f0f0f0}.dept-col[data-v-f6f30c78]{width:320px;flex-shrink:0}.user-col[data-v-f6f30c78]{flex:1;min-width:0}.col-head[data-v-f6f30c78]{font-size:15px;font-weight:700;color:#1a1a2e;margin-bottom:16px}.count[data-v-f6f30c78]{font-size:12px;color:#aaa;font-weight:400;margin-left:8px}.tree-node[data-v-f6f30c78]{display:flex;align-items:center;gap:8px;font-size:14px;flex:1}.tree-name[data-v-f6f30c78]{font-weight:500}.tree-actions[data-v-f6f30c78]{margin-left:auto;opacity:0;gap:4px;display:flex}.tree-node:hover .tree-actions[data-v-f6f30c78]{opacity:1}

+ 1 - 0
backend/src/main/resources/static/assets/OrgView-D6id1kOl.css

@@ -0,0 +1 @@
+.page[data-v-58b26ae2]{width:100%}.page-hero[data-v-58b26ae2]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.hero-info h2[data-v-58b26ae2]{font-size:28px;font-weight:700;color:#1a1a2e;margin:0}.hero-info p[data-v-58b26ae2]{font-size:14px;color:#888;margin:4px 0 0}.hero-actions[data-v-58b26ae2]{display:flex;gap:8px}.two-col[data-v-58b26ae2]{display:flex;gap:20px}.col[data-v-58b26ae2]{background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 1px 4px #0000000a;border:1px solid #f0f0f0}.dept-col[data-v-58b26ae2]{width:320px;flex-shrink:0}.user-col[data-v-58b26ae2]{flex:1;min-width:0}.col-head[data-v-58b26ae2]{font-size:15px;font-weight:700;color:#1a1a2e;margin-bottom:16px}.count[data-v-58b26ae2]{font-size:12px;color:#aaa;font-weight:400;margin-left:8px}.tree-node[data-v-58b26ae2]{display:flex;align-items:center;gap:8px;font-size:14px;flex:1}.tree-name[data-v-58b26ae2]{font-weight:500}.tree-actions[data-v-58b26ae2]{margin-left:auto;opacity:0;gap:4px;display:flex}.tree-node:hover .tree-actions[data-v-58b26ae2]{opacity:1}

File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/OrgView-cgCR46bA.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/PeriodBanner-BQnO7s3g.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/PeriodBanner-Bq0-4QKL.js


+ 1 - 0
backend/src/main/resources/static/assets/PeriodBanner-DHo6KqN8.css

@@ -0,0 +1 @@
+.period-banner[data-v-8de05fe2]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-radius:10px;margin-bottom:20px;box-shadow:0 1px 4px #0000000a}.banner-DRAFT[data-v-8de05fe2]{background:#f5f5f5;border:1px solid #e0e0e0}.banner-OKR_ALIGN[data-v-8de05fe2]{background:#e0f7fa;border:1px solid #b2ebf2}.banner-EXECUTING[data-v-8de05fe2]{background:#e8f5e9;border:1px solid #c8e6c9}.banner-ASSESSING[data-v-8de05fe2]{background:#fce4ec;border:1px solid #f8bbd0}.pb-left[data-v-8de05fe2]{display:flex;align-items:center;gap:12px}.pb-icon[data-v-8de05fe2]{font-size:24px}.pb-name[data-v-8de05fe2]{font-size:16px;font-weight:700;color:#1a1a2e}.pb-date[data-v-8de05fe2]{font-size:12px;color:#888;margin-top:2px}.pb-switch-btn[data-v-8de05fe2]{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;background:#fffc;border-radius:8px;cursor:pointer;font-size:13px;color:#555;font-weight:500;border:1px solid #ddd;transition:all .15s}.pb-switch-btn[data-v-8de05fe2]:hover{border-color:#2b1f99;color:#2b1f99}.pbd-name[data-v-8de05fe2]{margin-right:8px;font-size:13px}.is-active .pbd-name[data-v-8de05fe2]{color:#2b1f99;font-weight:600}

+ 0 - 1
backend/src/main/resources/static/assets/PeriodBanner-DPsLrDiQ.css

@@ -1 +0,0 @@
-.period-banner[data-v-616405ee]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-radius:10px;margin-bottom:20px;box-shadow:0 1px 4px #0000000a}.banner-DRAFT[data-v-616405ee]{background:#f5f5f5;border:1px solid #e0e0e0}.banner-OKR_ALIGN[data-v-616405ee]{background:#e0f7fa;border:1px solid #b2ebf2}.banner-EXECUTING[data-v-616405ee]{background:#e8f5e9;border:1px solid #c8e6c9}.banner-ASSESSING[data-v-616405ee]{background:#fce4ec;border:1px solid #f8bbd0}.pb-left[data-v-616405ee]{display:flex;align-items:center;gap:12px}.pb-icon[data-v-616405ee]{font-size:24px}.pb-name[data-v-616405ee]{font-size:16px;font-weight:700;color:#1a1a2e}.pb-date[data-v-616405ee]{font-size:12px;color:#888;margin-top:2px}.pb-switch-btn[data-v-616405ee]{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;background:#fffc;border-radius:8px;cursor:pointer;font-size:13px;color:#555;font-weight:500;border:1px solid #ddd;transition:all .15s}.pb-switch-btn[data-v-616405ee]:hover{border-color:#2b1f99;color:#2b1f99}.pbd-name[data-v-616405ee]{margin-right:8px;font-size:13px}.is-active .pbd-name[data-v-616405ee]{color:#2b1f99;font-weight:600}

File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/PeriodListView-CI4nnOu9.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/PeriodListView-Cj7wjMiE.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/PeriodListView-DGgqB_Bu.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/PeriodListView-DvdpLF-c.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/ScoringEditView-BhjMDuSe.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/ScoringEditView-D0SwZp8R.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/ScoringEditView-DTtgtzBi.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/ScoringEditView-gYnQh6mo.css


+ 1 - 0
backend/src/main/resources/static/assets/ScoringListView-BT6AHD7N.css

@@ -0,0 +1 @@
+.page[data-v-b50367e6]{width:100%}.page-hero[data-v-b50367e6]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.hero-info h2[data-v-b50367e6]{font-size:28px;font-weight:700;color:#1a1a2e;margin:0}.hero-info p[data-v-b50367e6]{font-size:14px;color:#888;margin:4px 0 0}.empty-state[data-v-b50367e6]{display:flex;align-items:center;justify-content:center;height:300px;color:#bbb;font-size:15px;background:#fff;border-radius:12px}.text-muted[data-v-b50367e6]{color:#ccc;font-size:13px}.data-table[data-v-b50367e6]{border-radius:12px;overflow:hidden}.data-table[data-v-b50367e6] th{white-space:nowrap;font-weight:600;color:#555;background:#fafbfc}.data-table[data-v-b50367e6] td{cursor:pointer}.final-grade[data-v-b50367e6]{display:inline-block;width:28px;height:28px;line-height:28px;border-radius:8px;font-weight:700;font-size:14px;color:#fff;margin-right:6px;text-align:center}.grade-S[data-v-b50367e6]{background:#f1c40f;color:#7d6608}.grade-A[data-v-b50367e6]{background:#27ae60}.grade-B[data-v-b50367e6]{background:#3498db}.grade-C[data-v-b50367e6]{background:#e74c3c}.final-score[data-v-b50367e6]{font-weight:600;color:#333}.breakdown[data-v-b50367e6]{font-family:SF Mono,Fira Code,monospace;font-size:12px;color:#888}

File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/ScoringListView-C5xC8RjV.js


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/ScoringListView-CBtjVW6h.js


+ 0 - 1
backend/src/main/resources/static/assets/ScoringListView-C_yDoAka.css

@@ -1 +0,0 @@
-.page[data-v-1f6e78fb]{width:100%}.page-hero[data-v-1f6e78fb]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.hero-info h2[data-v-1f6e78fb]{font-size:28px;font-weight:700;color:#1a1a2e;margin:0}.hero-info p[data-v-1f6e78fb]{font-size:14px;color:#888;margin:4px 0 0}.empty-state[data-v-1f6e78fb]{display:flex;align-items:center;justify-content:center;height:300px;color:#bbb;font-size:15px;background:#fff;border-radius:12px}.text-muted[data-v-1f6e78fb]{color:#ccc;font-size:13px}.data-table[data-v-1f6e78fb]{border-radius:12px;overflow:hidden}.data-table[data-v-1f6e78fb] th{white-space:nowrap;font-weight:600;color:#555;background:#fafbfc}.data-table[data-v-1f6e78fb] td{cursor:pointer}.final-grade[data-v-1f6e78fb]{display:inline-block;width:28px;height:28px;line-height:28px;border-radius:8px;font-weight:700;font-size:14px;color:#fff;margin-right:6px;text-align:center}.grade-S[data-v-1f6e78fb]{background:#f1c40f;color:#7d6608}.grade-A[data-v-1f6e78fb]{background:#27ae60}.grade-B[data-v-1f6e78fb]{background:#3498db}.grade-C[data-v-1f6e78fb]{background:#e74c3c}.final-score[data-v-1f6e78fb]{font-weight:600;color:#333}.breakdown[data-v-1f6e78fb]{font-family:SF Mono,Fira Code,monospace;font-size:12px;color:#888}

File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/TeamOkrView-B5b3Rg9N.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/TeamOkrView-BHD_hoMi.css


File diff suppressed because it is too large
+ 0 - 1
backend/src/main/resources/static/assets/TeamOkrView-C2Sn14Z7.js


+ 0 - 1
backend/src/main/resources/static/assets/auth-Cxf8BIzw.js

@@ -1 +0,0 @@
-import{y as r}from"./index-CGc3QkPL.js";import{authApi as o}from"./index-BoTt95-1.js";const n=r("auth",{state:()=>({user:null,accessToken:localStorage.getItem("accessToken")||"",refreshToken:localStorage.getItem("refreshToken")||""}),getters:{isLoggedIn:s=>!!s.accessToken,isAdmin:s=>{var e;return((e=s.user)==null?void 0:e.role)==="SUPER_ADMIN"},hasSubordinates:s=>!0},actions:{async login(s,e){const t=await o.login({username:s,password:e});this.accessToken=t.accessToken,this.refreshToken=t.refreshToken,this.user=t.user,localStorage.setItem("accessToken",t.accessToken),localStorage.setItem("refreshToken",t.refreshToken)},async register(s){const e=await o.register(s);this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.user=e.user,localStorage.setItem("accessToken",e.accessToken),localStorage.setItem("refreshToken",e.refreshToken)},async fetchUser(){try{this.user=await o.me()}catch{this.logout()}},logout(){this.user=null,this.accessToken="",this.refreshToken="",localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken")}}});export{n as u};

+ 1 - 0
backend/src/main/resources/static/assets/auth-DWcI-k9D.js

@@ -0,0 +1 @@
+import{A as t}from"./index-iBAYXZct.js";import{authApi as o}from"./index-Tp0ZZGLd.js";const n=t("auth",{state:()=>({user:null,accessToken:localStorage.getItem("accessToken")||"",refreshToken:localStorage.getItem("refreshToken")||""}),getters:{isLoggedIn:s=>!!s.accessToken,isAdmin:s=>{var e;return((e=s.user)==null?void 0:e.role)==="SUPER_ADMIN"},isHrAdminOrAbove:s=>{var e;return["SUPER_ADMIN","HR_ADMIN"].includes((e=s.user)==null?void 0:e.role)},isDeptLeaderOrAbove:s=>{var e;return["SUPER_ADMIN","HR_ADMIN","DEPT_LEADER"].includes((e=s.user)==null?void 0:e.role)},roleLabel:s=>{var r;return{EMPLOYEE:"员工",TEAM_LEADER:"团队主管",DEPT_LEADER:"部门负责人",HR_ADMIN:"HR管理员",SUPER_ADMIN:"管理员"}[(r=s.user)==null?void 0:r.role]||"员工"},roleColor:s=>{var r;return{SUPER_ADMIN:"#f56c6c",HR_ADMIN:"#e6a23c",DEPT_LEADER:"#8b5cf6",TEAM_LEADER:"#3ad4d8",EMPLOYEE:"#409eff"}[(r=s.user)==null?void 0:r.role]||"#409eff"}},actions:{async login(s,e){const r=await o.login({username:s,password:e});this.accessToken=r.accessToken,this.refreshToken=r.refreshToken,this.user=r.user,localStorage.setItem("accessToken",r.accessToken),localStorage.setItem("refreshToken",r.refreshToken)},async register(s){const e=await o.register(s);this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.user=e.user,localStorage.setItem("accessToken",e.accessToken),localStorage.setItem("refreshToken",e.refreshToken)},async fetchUser(){try{this.user=await o.me()}catch{this.logout()}},logout(){this.user=null,this.accessToken="",this.refreshToken="",localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken")}}});export{n as u};

File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/index-DPlaWbzU.css


File diff suppressed because it is too large
+ 0 - 0
backend/src/main/resources/static/assets/index-Tp0ZZGLd.js


File diff suppressed because it is too large
+ 1 - 1
backend/src/main/resources/static/assets/index-iBAYXZct.js


+ 2 - 2
backend/src/main/resources/static/index.html

@@ -5,8 +5,8 @@
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>医梦AI · OKR绩效</title>
   <link rel="icon" type="image/png" href="/logo-small.png" />
-  <script type="module" crossorigin src="/assets/index-CGc3QkPL.js"></script>
-  <link rel="stylesheet" crossorigin href="/assets/index-DS4Q9tlD.css">
+  <script type="module" crossorigin src="/assets/index-iBAYXZct.js"></script>
+  <link rel="stylesheet" crossorigin href="/assets/index-DPlaWbzU.css">
 </head>
 <body>
   <div id="app"></div>

+ 5 - 4
frontend/src/views/period/PeriodListView.vue

@@ -361,12 +361,13 @@ function statusGuide(p) {
 .period-card.status-DRAFT { border-left-color: #ddd; }
 .period-card.status-ARCHIVED { border-left-color: #bbb; opacity: 0.7; }
 
-.card-body { padding: 14px 20px; }
-.card-main { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
-.card-info { display: flex; align-items: center; gap: 8px; }
+.card-body { padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
+.card-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
+.card-info { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
 .card-name { font-size: 15px; font-weight: 700; color: #1a1a2e; }
 .card-date { font-size: 12px; color: #aaa; }
-.card-actions { display: flex; gap: 8px; flex-wrap: wrap; }
+.card-actions { display: flex; gap: 6px; flex-shrink: 0; align-items: center; }
+.card-actions .el-button { white-space: nowrap; }
 .card-guide { font-size: 12px; color: #888; padding: 8px 20px 10px; background: #fafbfc; border-top: 1px solid #f0f0f0; }
 
 /* Dialog */

Some files were not shown because too many files changed in this diff