feat(wbs): consolidate 3 master specifications into WBS-MASTER-2026 and implement TPL-CREATE-01, TPL-DETAIL-01, TPL-CANCEL-01 templates
Validators (Pushes and Pull Requests) / UI & Storage Validation (push) Failing after 11s
Validators (Pushes and Pull Requests) / Database & Schema Validation (push) Successful in 11s
Validators (Pushes and Pull Requests) / Core Validators & Database Setup (push) Failing after 21s
Validators (Pushes and Pull Requests) / .NET Contracts (push) Has been skipped
Validators (Pushes and Pull Requests) / WBS & Audit Validations (push) Has been skipped
Validators (Pushes and Pull Requests) / Calibration & Performance (push) Has been skipped
Validators (Pushes and Pull Requests) / Operational Report & Decision Packet (push) Has been skipped
Validators (Pushes and Pull Requests) / CI Workflow Lint (push) Failing after 10s
Validators (Pushes and Pull Requests) / Security & Secrets (push) Successful in 11s
Validators (Pushes and Pull Requests) / Notify PR Results (push) Has been skipped
Validators (Pushes and Pull Requests) / UI & Storage Validation (push) Failing after 11s
Validators (Pushes and Pull Requests) / Database & Schema Validation (push) Successful in 11s
Validators (Pushes and Pull Requests) / Core Validators & Database Setup (push) Failing after 21s
Validators (Pushes and Pull Requests) / .NET Contracts (push) Has been skipped
Validators (Pushes and Pull Requests) / WBS & Audit Validations (push) Has been skipped
Validators (Pushes and Pull Requests) / Calibration & Performance (push) Has been skipped
Validators (Pushes and Pull Requests) / Operational Report & Decision Packet (push) Has been skipped
Validators (Pushes and Pull Requests) / CI Workflow Lint (push) Failing after 10s
Validators (Pushes and Pull Requests) / Security & Secrets (push) Successful in 11s
Validators (Pushes and Pull Requests) / Notify PR Results (push) Has been skipped
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<!-- Enterprise Template Implementation: TPL-CANCEL-01 (취소·역처리 템플릿) -->
|
||||
<template>
|
||||
<div class="tpl-cancel-01-container flex flex-col h-full w-full bg-slate-100 p-4 gap-3 overflow-y-auto">
|
||||
<!-- Page Header -->
|
||||
<div class="page-header flex justify-between items-center bg-white p-3.5 rounded-md border border-slate-200 shadow-sm">
|
||||
<div class="flex items-center gap-2">
|
||||
<h2 class="text-base font-bold text-rose-700">주문 취소 및 역처리 (`TPL-CANCEL-01`)</h2>
|
||||
<span class="px-2 py-0.5 rounded bg-rose-100 text-rose-800 text-xs font-bold">역트랜잭션 생성</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Preview & Cancellation Impact -->
|
||||
<div class="bg-white p-4 rounded-md border border-slate-200 shadow-sm flex flex-col gap-3">
|
||||
<div class="p-3 bg-rose-50 border border-rose-200 rounded text-xs text-rose-800">
|
||||
⚠️ <strong>주의:</strong> 본 작업은 완료된 시점 거래 데이터를 직접 덮어쓰거나 물리 삭제하지 않으며, <strong>반제 및 역트랜잭션(Audit Cancellation Token)</strong>을 생성합니다.
|
||||
</div>
|
||||
<div class="text-xs text-slate-700 flex flex-col gap-1">
|
||||
<div>취소 대상: <strong>SO-2026-000128 (대한유통)</strong></div>
|
||||
<div>예상 영향: <span class="text-emerald-700 font-bold">재고예약 24EA 해제</span>, <span class="text-blue-700 font-bold">결제 취소 요청 생성</span></div>
|
||||
</div>
|
||||
<StringField label="취소 사유" v-model="cancelReason" placeholder="고객 요청에 따른 출고 전 취소" required />
|
||||
</div>
|
||||
|
||||
<!-- Actions Bar -->
|
||||
<div class="bg-white p-3 rounded-md border border-slate-200 shadow-md flex justify-between items-center">
|
||||
<span class="text-xs text-slate-500">Preview Token: <code class="font-mono text-slate-700">CANCEL-PREVIEW-18277</code></span>
|
||||
<div class="flex gap-2">
|
||||
<button class="px-4 py-1.5 bg-rose-600 hover:bg-rose-700 text-white text-xs font-bold rounded transition shadow-sm">
|
||||
취소 역트랜잭션 실행
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import StringField from '../../components/fields/StringField.vue';
|
||||
|
||||
const cancelReason = ref('고객 요청에 따른 출고 전 취소 요청');
|
||||
</script>
|
||||
@@ -0,0 +1,57 @@
|
||||
<!-- Enterprise Template Implementation: TPL-CREATE-01 (단일 등록 템플릿) -->
|
||||
<template>
|
||||
<div class="tpl-create-01-container flex flex-col h-full w-full bg-slate-100 p-4 gap-3 overflow-y-auto">
|
||||
<!-- Page Header -->
|
||||
<div class="page-header flex justify-between items-center bg-white p-3.5 rounded-md border border-slate-200 shadow-sm">
|
||||
<div class="flex items-center gap-2">
|
||||
<h2 class="text-base font-bold text-slate-800">거래처 마스터 등록 (`TPL-CREATE-01`)</h2>
|
||||
<span class="px-2 py-0.5 rounded bg-blue-100 text-blue-800 text-xs font-bold">단일 마스터</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Form Body -->
|
||||
<div class="bg-white p-4 rounded-md border border-slate-200 shadow-sm flex flex-col gap-4">
|
||||
<h3 class="font-bold text-sm text-slate-800 border-b pb-2">기본 정보</h3>
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
<StringField label="거래처 코드" v-model="customerCode" placeholder="CUST-001" required />
|
||||
<StringField label="거래처명" v-model="customerName" placeholder="(주) 대한유통" required />
|
||||
</div>
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
<NumberField label="여신 한도액 (KRW)" v-model="creditLimit" placeholder="100,000,000" />
|
||||
<DateField label="계약 개시일" v-model="contractDate" showTodayBtn />
|
||||
</div>
|
||||
<AddressEditor
|
||||
v-model:address2="address2"
|
||||
postalCode="05500"
|
||||
address1="서울특별시 송파구 올림픽로 300"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Sticky Action Bar -->
|
||||
<div class="sticky bottom-0 bg-white p-3 rounded-md border border-slate-200 shadow-md flex justify-between items-center">
|
||||
<span class="text-xs text-slate-500">Idempotency Key: <code class="font-mono text-slate-700">3e0143da-71f1-4b73</code></span>
|
||||
<div class="flex gap-2">
|
||||
<button class="px-3.5 py-1.5 bg-slate-100 hover:bg-slate-200 text-slate-700 text-xs font-bold rounded transition">
|
||||
저장 후 계속 등록
|
||||
</button>
|
||||
<button class="px-4 py-1.5 bg-blue-600 hover:bg-blue-700 text-white text-xs font-bold rounded transition shadow-sm">
|
||||
저장
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue';
|
||||
import StringField from '../../components/fields/StringField.vue';
|
||||
import NumberField from '../../components/fields/NumberField.vue';
|
||||
import DateField from '../../components/fields/DateField.vue';
|
||||
import AddressEditor from '../../components/business-composites/AddressEditor.vue';
|
||||
|
||||
const customerCode = ref('CUST-00128');
|
||||
const customerName = ref('(주) 대한유통');
|
||||
const creditLimit = ref('50000000');
|
||||
const contractDate = ref('2026-07-26');
|
||||
const address2 = ref('101호');
|
||||
</script>
|
||||
@@ -0,0 +1,63 @@
|
||||
<!-- Enterprise Template Implementation: TPL-DETAIL-01 (상세 조회 템플릿) -->
|
||||
<template>
|
||||
<div class="tpl-detail-01-container flex flex-col h-full w-full bg-slate-100 p-4 gap-3 overflow-y-auto">
|
||||
<!-- Page Header -->
|
||||
<div class="page-header flex justify-between items-center bg-white p-3.5 rounded-md border border-slate-200 shadow-sm">
|
||||
<div class="flex items-center gap-3">
|
||||
<h2 class="text-base font-bold text-slate-800">주문 상세 `SO-2026-000128`</h2>
|
||||
<span class="px-2.5 py-0.5 rounded bg-amber-100 text-amber-800 text-xs font-bold">출고대기</span>
|
||||
<span class="px-2 py-0.5 rounded bg-blue-50 text-blue-700 text-xs font-mono">결제완료</span>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<button class="px-3.5 py-1.5 bg-emerald-600 hover:bg-emerald-700 text-white text-xs font-bold rounded transition shadow-sm">
|
||||
출고 지시
|
||||
</button>
|
||||
<button class="px-3 py-1.5 bg-slate-100 hover:bg-slate-200 text-slate-700 text-xs font-bold rounded transition">
|
||||
수정 (`TPL-EDIT-01`)
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Status Timeline -->
|
||||
<div class="status-timeline bg-white p-4 rounded-md border border-slate-200 shadow-sm flex justify-between items-center text-xs">
|
||||
<div class="step flex flex-col items-center gap-1 text-emerald-600 font-bold">
|
||||
<span class="w-6 h-6 rounded-full bg-emerald-100 flex items-center justify-center">✓</span>
|
||||
<span>주문접수</span>
|
||||
</div>
|
||||
<div class="line flex-1 h-0.5 bg-emerald-500 mx-2"></div>
|
||||
<div class="step flex flex-col items-center gap-1 text-emerald-600 font-bold">
|
||||
<span class="w-6 h-6 rounded-full bg-emerald-100 flex items-center justify-center">✓</span>
|
||||
<span>결제완료</span>
|
||||
</div>
|
||||
<div class="line flex-1 h-0.5 bg-emerald-500 mx-2"></div>
|
||||
<div class="step flex flex-col items-center gap-1 text-amber-600 font-bold">
|
||||
<span class="w-6 h-6 rounded-full bg-amber-100 border-2 border-amber-500 flex items-center justify-center">●</span>
|
||||
<span>출고대기</span>
|
||||
</div>
|
||||
<div class="line flex-1 h-0.5 bg-slate-200 mx-2"></div>
|
||||
<div class="step flex flex-col items-center gap-1 text-slate-400">
|
||||
<span class="w-6 h-6 rounded-full bg-slate-100 flex items-center justify-center">○</span>
|
||||
<span>출고완료</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Detail Info Cards -->
|
||||
<div class="grid grid-cols-3 gap-3">
|
||||
<div class="bg-white p-3.5 rounded-md border border-slate-200 shadow-sm">
|
||||
<span class="text-xs text-slate-500 block mb-1">거래처</span>
|
||||
<strong class="text-sm text-slate-800 font-semibold">(주) 대한유통 (CUST-00128)</strong>
|
||||
</div>
|
||||
<div class="bg-white p-3.5 rounded-md border border-slate-200 shadow-sm">
|
||||
<span class="text-xs text-slate-500 block mb-1">주문총액</span>
|
||||
<strong class="text-sm text-blue-700 font-mono font-bold">1,250,000 KRW</strong>
|
||||
</div>
|
||||
<div class="bg-white p-3.5 rounded-md border border-slate-200 shadow-sm">
|
||||
<span class="text-xs text-slate-500 block mb-1">배송지</span>
|
||||
<span class="text-xs text-slate-700 font-medium">서울특별시 송파구 올림픽로 300</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
Reference in New Issue
Block a user