수정
This commit is contained in:
@@ -72,6 +72,10 @@ class SecurityConfig {
|
||||
patterns.add("http://127.0.0.1:*");
|
||||
patterns.add("http://192.168.*.*:*");
|
||||
patterns.add("http://10.*.*.*:*");
|
||||
patterns.add("tauri://localhost");
|
||||
patterns.add("tauri://*");
|
||||
patterns.add("https://tauri.localhost");
|
||||
patterns.add("http://tauri.localhost");
|
||||
c.setAllowedOriginPatterns(patterns);
|
||||
}
|
||||
c.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"));
|
||||
|
||||
@@ -26,5 +26,5 @@ app:
|
||||
secret: ${APP_JWT_SECRET:billcare-bizcare-homes-secret-key-must-be-long-enough-256bits}
|
||||
expiration-ms: ${APP_JWT_EXPIRATION_MS:86400000}
|
||||
cors:
|
||||
origins: ${APP_CORS_ORIGINS:http://localhost:5174,http://localhost:82,http://127.0.0.1:82}
|
||||
origins: ${APP_CORS_ORIGINS:http://localhost:5174,http://localhost:82,http://127.0.0.1:82,http://localhost:1420,https://billcare.exdev.co.kr,tauri://localhost,https://tauri.localhost,http://tauri.localhost}
|
||||
upload-dir: ${APP_UPLOAD_DIR:./storage/uploads}
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ services:
|
||||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/billcare?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&characterEncoding=UTF-8
|
||||
SPRING_DATASOURCE_USERNAME: billcare
|
||||
SPRING_DATASOURCE_PASSWORD: billcare
|
||||
APP_CORS_ORIGINS: ${APP_CORS_ORIGINS:-http://localhost:82,http://127.0.0.1:82,http://localhost:5174,https://billcare.exdev.co.kr}
|
||||
APP_CORS_ORIGINS: ${APP_CORS_ORIGINS:-http://localhost:82,http://127.0.0.1:82,http://localhost:5174,http://localhost:1420,https://billcare.exdev.co.kr,tauri://localhost,https://tauri.localhost,http://tauri.localhost}
|
||||
APP_UPLOAD_DIR: /app/storage/uploads
|
||||
volumes:
|
||||
- billcare_uploads:/app/storage/uploads
|
||||
|
||||
@@ -83,8 +83,9 @@ export default function AgentShell({ shop = false }: Props) {
|
||||
setOpenCards((prev) => {
|
||||
const next = { ...prev }
|
||||
sections.forEach((sec) => {
|
||||
// 기본은 접힘. 현재 경로가 속한 섹션만 펼침
|
||||
if (next[sec.id] === undefined) {
|
||||
next[sec.id] = sectionContainsPath(sec, location.pathname) || sec.items.length <= 1
|
||||
next[sec.id] = sectionContainsPath(sec, location.pathname)
|
||||
}
|
||||
if (sectionContainsPath(sec, location.pathname)) next[sec.id] = true
|
||||
})
|
||||
@@ -201,7 +202,7 @@ export default function AgentShell({ shop = false }: Props) {
|
||||
{!collapsed && (
|
||||
<aside className="leftpanel" style={{ width: panelWidth }}>
|
||||
{sections.map((sec) => {
|
||||
const open = openCards[sec.id] !== false
|
||||
const open = openCards[sec.id] === true
|
||||
const activeSec = sectionContainsPath(sec, location.pathname)
|
||||
return (
|
||||
<div className={`lp-card${activeSec ? ' is-active' : ''}`} key={sec.id}>
|
||||
|
||||
@@ -19,6 +19,29 @@ import { DownOutlined } from '@ant-design/icons'
|
||||
import client, { apiPrefix, unwrap, type ApiResponse } from '../../api/client'
|
||||
import { options } from './homesShared'
|
||||
|
||||
/** 진행현황 배지 색상 클래스 */
|
||||
function progressBadgeClass(status?: string) {
|
||||
const s = (status || '').trim()
|
||||
if (s.startsWith('1.') || s.includes('접수완료')) return 'badge badge-ps-1'
|
||||
if (s.startsWith('2.') || s.includes('고객통화')) return 'badge badge-ps-2'
|
||||
if (s.startsWith('3.') || s.includes('서류검토')) return 'badge badge-ps-3'
|
||||
if (s.startsWith('4.') || s.includes('개통완료')) return 'badge badge-ps-4'
|
||||
if (s.startsWith('5.') || s.includes('사은품지급')) return 'badge badge-ps-5'
|
||||
if (s.startsWith('6.') || s.includes('정산완료')) return 'badge badge-ps-6'
|
||||
if (s.startsWith('9.') || s.includes('취소')) return 'badge badge-ps-9'
|
||||
return 'badge'
|
||||
}
|
||||
|
||||
/** 사은품현황 배지 색상 클래스 */
|
||||
function giftBadgeClass(status?: string) {
|
||||
const s = (status || '').trim()
|
||||
if (s === '미지급') return 'badge badge-gs-none'
|
||||
if (s === '지급대기') return 'badge badge-gs-wait'
|
||||
if (s === '지급완료') return 'badge badge-gs-done'
|
||||
if (s === '반송') return 'badge badge-gs-return'
|
||||
return 'badge'
|
||||
}
|
||||
|
||||
type ReceptionRow = {
|
||||
id: number
|
||||
orderDate?: string
|
||||
@@ -678,7 +701,7 @@ export default function ReceptionListPage() {
|
||||
</td>
|
||||
<td className="col-status floating-cell">
|
||||
<p className="c-green">{o.employeeName || o.counselor || ''}</p>
|
||||
<p><span className="badge">{o.status || o.progressStatus || ''}</span></p>
|
||||
<p><span className={progressBadgeClass(o.status || o.progressStatus)}>{o.status || o.progressStatus || ''}</span></p>
|
||||
<div className="floating-layer">
|
||||
<p>개통일: {o.opened || o.openDate || '-'}</p>
|
||||
<p>해지일: {o.canceled || '-'}</p>
|
||||
@@ -694,7 +717,7 @@ export default function ReceptionListPage() {
|
||||
<p className="fs11">{o.giftSended || o.giftDate || ''}</p>
|
||||
</td>
|
||||
<td className="col-gift">
|
||||
<p><span className="badge">{o.giftStatus || ''}</span></p>
|
||||
<p><span className={giftBadgeClass(o.giftStatus)}>{o.giftStatus || ''}</span></p>
|
||||
<p>{num(giftAmt)}</p>
|
||||
</td>
|
||||
<td className="col-cstatus floating-cell">
|
||||
|
||||
@@ -4357,7 +4357,22 @@ table.order-list .badge {
|
||||
font-size: 11px;
|
||||
background: var(--badge-bg);
|
||||
color: var(--badge-text);
|
||||
white-space: nowrap;
|
||||
}
|
||||
/* 진행현황 */
|
||||
table.order-list .badge-ps-1 { background: #1677ff; color: #fff; } /* 1.접수완료 */
|
||||
table.order-list .badge-ps-2 { background: #13c2c2; color: #fff; } /* 2.고객통화 */
|
||||
table.order-list .badge-ps-3 { background: #722ed1; color: #fff; } /* 3.서류검토 */
|
||||
table.order-list .badge-ps-4 { background: #52c41a; color: #fff; } /* 4.개통완료 */
|
||||
table.order-list .badge-ps-5 { background: #fa8c16; color: #fff; } /* 5.사은품지급 */
|
||||
table.order-list .badge-ps-6 { background: #2f54eb; color: #fff; } /* 6.정산완료 */
|
||||
table.order-list .badge-ps-9 { background: #f5222d; color: #fff; } /* 9.취소 */
|
||||
/* 사은품현황 */
|
||||
table.order-list .badge-gs-none { background: #8c8c8c; color: #fff; } /* 미지급 */
|
||||
table.order-list .badge-gs-wait { background: #faad14; color: #1f1f1f; } /* 지급대기 */
|
||||
table.order-list .badge-gs-done { background: #52c41a; color: #fff; } /* 지급완료 */
|
||||
table.order-list .badge-gs-return { background: #f5222d; color: #fff; } /* 반송 */
|
||||
html.theme-light table.order-list .badge-gs-wait { color: #fff; }
|
||||
table.order-list .floating-cell { position: relative; }
|
||||
table.order-list .floating-layer {
|
||||
display: none;
|
||||
|
||||
Reference in New Issue
Block a user