agency center

This commit is contained in:
zhx 2026-06-05 15:09:35 +08:00
parent 527484d3d8
commit da6d029a27
4 changed files with 758 additions and 364 deletions

View File

@ -331,6 +331,11 @@ var default_api = 'https://api.global-interaction.com/';
method: 'GET',
});
},
platformPolicy: function () {
return request('/api/v1/agency-center/platform-policy', {
method: 'GET',
});
},
hosts: function () {
return request('/api/v1/agency-center/hosts', {
method: 'GET',

View File

@ -9,7 +9,10 @@
<title>Agency Center</title>
<link rel="stylesheet" href="../../common/theme.css" />
<link rel="stylesheet" href="../common/center.css" />
<link rel="stylesheet" href="./style.css" />
<link
rel="stylesheet"
href="./style.css?v=20260605-agency-real-policy"
/>
</head>
<body>
@ -64,8 +67,8 @@
</div>
</div>
<div class="profile-copy">
<div class="name" id="agencyName">Yumi Star Agency</div>
<div class="meta" id="agencyShortId">ID: 163003</div>
<div class="name" id="agencyName">-</div>
<div class="meta" id="agencyShortId">ID: -</div>
<div class="bd-row" id="bdRow" hidden>
<span
class="bd-label"
@ -86,9 +89,7 @@
>B</span
>
</span>
<span class="bd-short-id" id="bdShortId"
>880001</span
>
<span class="bd-short-id" id="bdShortId"></span>
</div>
</div>
<button
@ -169,24 +170,6 @@
<span class="menu-count" id="hostCount">0</span>
<span class="chevron" aria-hidden="true">&rsaquo;</span>
</button>
<button
class="menu-row"
type="button"
data-action="team-bill"
>
<span class="menu-icon" aria-hidden="true">
<svg viewBox="0 0 24 24">
<path d="M6 3h12v18H6Z" />
<path d="M9 8h6M9 12h5M9 16h6" />
</svg>
</span>
<span
class="menu-label"
data-i18n="agency_center.salary_bills"
>Salary Bills</span
>
<span class="chevron" aria-hidden="true">&rsaquo;</span>
</button>
<button class="menu-row" type="button" data-action="policy">
<span class="menu-icon" aria-hidden="true">
<svg viewBox="0 0 24 24">
@ -316,38 +299,57 @@
</section>
</div>
<div class="sheet-modal" id="billSheet" hidden aria-hidden="true">
<div
class="sheet-modal"
id="policyModal"
hidden
aria-hidden="true"
>
<button
class="modal-backdrop"
type="button"
data-close-sheet="billSheet"
data-close-policy
aria-label="Close"
data-i18n-aria="agency_center.close"
></button>
<section
class="bottom-sheet"
class="bottom-sheet policy-sheet"
role="dialog"
aria-modal="true"
aria-labelledby="billTitle"
aria-labelledby="policyTitle"
>
<div class="sheet-head">
<h2
id="billTitle"
data-i18n="agency_center.salary_bills"
id="policyTitle"
data-i18n="agency_center.agency_policy"
>
Salary Bills
Agency Policy
</h2>
<button
class="sheet-close"
type="button"
data-close-sheet="billSheet"
data-close-policy
aria-label="Close"
data-i18n-aria="agency_center.close"
>
&times;
</button>
</div>
<div class="bill-list" id="billList"></div>
<div class="policy-sheet-body">
<div class="policy-summary">
<strong id="policyName">Current policy</strong>
<span id="policyMeta"></span>
</div>
<div
class="policy-empty"
id="policyEmpty"
hidden
></div>
<div
class="policy-level-list"
id="policyLevelList"
></div>
</div>
</section>
</div>
@ -454,10 +456,10 @@
</div>
<script src="../../common/toast.js"></script>
<script src="../../common/api.js?v=20260603-agency-center"></script>
<script src="../../common/api.js?v=20260605-agency-real-policy"></script>
<script src="../../common/params.js?v=20260603-agency-center"></script>
<script src="../../common/jsbridge.js"></script>
<script src="../../common/i18n.js"></script>
<script src="./script.js"></script>
<script src="./script.js?v=20260605-agency-real-policy"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -434,6 +434,12 @@ input:focus-visible {
line-height: 1;
}
.salary-value #currentSalary.skeleton-line {
width: 160px;
height: 40px;
border-radius: 10px;
}
.chevron {
display: inline-flex;
align-items: center;
@ -506,6 +512,12 @@ input:focus-visible {
white-space: nowrap;
}
.menu-count.skeleton-line {
width: 28px;
height: 16px;
border-radius: 7px;
}
.sheet-modal,
.message-modal,
.confirm-modal {
@ -661,7 +673,6 @@ input:focus-visible {
}
.host-list,
.bill-list,
.message-list,
.invite-steps {
display: grid;
@ -673,7 +684,6 @@ input:focus-visible {
}
.host-row,
.bill-row,
.message-card,
.invite-step {
border: 1px solid var(--line);
@ -681,46 +691,6 @@ input:focus-visible {
background: #fbfcfc;
}
.bill-row {
display: grid;
gap: 10px;
padding: 12px;
}
.bill-month {
color: var(--text);
font-size: 15px;
font-weight: 950;
line-height: 1.2;
}
.bill-values {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.bill-cell span {
display: block;
overflow: hidden;
color: var(--muted);
font-size: 12px;
font-weight: 800;
line-height: 1.2;
text-overflow: ellipsis;
white-space: nowrap;
}
.bill-cell strong {
display: block;
margin-top: 4px;
overflow-wrap: anywhere;
color: #292d33;
font-size: 16px;
font-weight: 950;
line-height: 1.2;
}
.host-search {
display: grid;
grid-template-columns: minmax(0, 1fr) 82px;
@ -776,6 +746,32 @@ input:focus-visible {
padding: 12px;
}
.host-row.is-skeleton {
pointer-events: none;
}
.host-row.is-skeleton .small-avatar {
background: transparent;
}
.host-row.is-skeleton .host-name.skeleton-line {
width: min(148px, 100%);
height: 18px;
border-radius: 7px;
}
.host-row.is-skeleton .host-meta.skeleton-line {
width: min(190px, 100%);
height: 14px;
border-radius: 7px;
}
.host-side-skeleton.skeleton-line {
width: 58px;
height: 32px;
border-radius: 8px;
}
.host-user,
.message-user {
display: flex;
@ -908,6 +904,111 @@ input:focus-visible {
text-align: center;
}
.policy-sheet-body {
min-height: 180px;
overflow-y: auto;
padding: 16px;
-webkit-overflow-scrolling: touch;
}
.policy-summary {
display: flex;
flex-direction: column;
gap: 6px;
padding: 14px;
border-radius: 8px;
background: var(--primary-soft);
}
.policy-summary strong {
overflow-wrap: anywhere;
color: var(--text);
font-size: 17px;
font-weight: 950;
line-height: 1.25;
}
.policy-summary span {
color: var(--muted);
font-size: 12px;
font-weight: 800;
line-height: 1.45;
}
.policy-empty {
padding: 22px 10px;
color: var(--muted);
text-align: center;
font-size: 14px;
font-weight: 850;
line-height: 1.45;
}
.policy-level-list {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 12px;
}
.policy-level-row {
padding: 14px;
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
}
.policy-row-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.policy-level {
color: var(--text);
font-size: 16px;
font-weight: 950;
line-height: 1.25;
}
.policy-effective {
color: var(--muted);
text-align: right;
font-size: 12px;
font-weight: 800;
line-height: 1.25;
}
.policy-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
margin-top: 12px;
}
.policy-cell {
min-width: 0;
}
.policy-cell-label {
display: block;
color: var(--muted);
font-size: 11px;
font-weight: 800;
line-height: 1.2;
}
.policy-cell-value {
display: block;
margin-top: 4px;
overflow-wrap: anywhere;
color: #292d33;
font-size: 14px;
font-weight: 950;
line-height: 1.25;
}
.modal-open {
overflow: hidden;
}
@ -976,7 +1077,7 @@ input:focus-visible {
margin-left: 14px;
}
.bill-values {
.policy-grid {
grid-template-columns: 1fr;
}