|
@@ -9,6 +9,19 @@ function getDisplayValue(value?: string) {
|
|
|
return value?.trim() ? value : '—'
|
|
return value?.trim() ? value : '—'
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+function InfoList({ labels, values }: { labels: string[]; values: string[] }) {
|
|
|
|
|
+ return (
|
|
|
|
|
+ <div className="customer-info-list">
|
|
|
|
|
+ {labels.map((label, index) => (
|
|
|
|
|
+ <div key={label}>
|
|
|
|
|
+ <span>{label}</span>
|
|
|
|
|
+ <strong>{values[index]}</strong>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ ))}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ )
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
export function CustomerDetailPage() {
|
|
export function CustomerDetailPage() {
|
|
|
const { locale, path, copy } = usePageContext()
|
|
const { locale, path, copy } = usePageContext()
|
|
|
const { customerId } = useParams()
|
|
const { customerId } = useParams()
|
|
@@ -64,6 +77,88 @@ export function CustomerDetailPage() {
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</section>
|
|
</section>
|
|
|
|
|
+
|
|
|
|
|
+ <section className="pt-0">
|
|
|
|
|
+ <div className="container">
|
|
|
|
|
+ <div className="row g-4">
|
|
|
|
|
+ <div className="col-xl-4 col-lg-5">
|
|
|
|
|
+ <div className="workbench-panel bg-white border-radius-8px box-shadow-extra-large p-30px h-100">
|
|
|
|
|
+ <span className="fs-14 fw-700 text-base-color text-uppercase">{pageCopy.basic.badge}</span>
|
|
|
|
|
+ <h2 className="fw-700 text-dark-gray fs-26 mb-25px">{pageCopy.basic.title}</h2>
|
|
|
|
|
+ <InfoList
|
|
|
|
|
+ labels={pageCopy.basic.labels}
|
|
|
|
|
+ values={[
|
|
|
|
|
+ getDisplayValue(customer.phone),
|
|
|
|
|
+ getDisplayValue(customer.email),
|
|
|
|
|
+ getDisplayValue(customer.birthday),
|
|
|
|
|
+ getDisplayValue(customer.expectContact),
|
|
|
|
|
+ getDisplayValue(customer.visitFrequencyLabel),
|
|
|
|
|
+ ]}
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div className="col-xl-8 col-lg-7">
|
|
|
|
|
+ <div className="workbench-panel bg-white border-radius-8px box-shadow-extra-large p-30px h-100">
|
|
|
|
|
+ <span className="fs-14 fw-700 text-base-color text-uppercase">{pageCopy.consultation.badge}</span>
|
|
|
|
|
+ <h2 className="fw-700 text-dark-gray fs-26 mb-25px">{pageCopy.consultation.title}</h2>
|
|
|
|
|
+ <InfoList
|
|
|
|
|
+ labels={pageCopy.consultation.labels}
|
|
|
|
|
+ values={[
|
|
|
|
|
+ getDisplayValue(customer.planDate),
|
|
|
|
|
+ getDisplayValue(customer.visitPurpose),
|
|
|
|
|
+ getDisplayValue(customer.trouble),
|
|
|
|
|
+ getDisplayValue(customer.consultContent),
|
|
|
|
|
+ getDisplayValue(customer.expectLook),
|
|
|
|
|
+ ]}
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div className="workbench-panel bg-white border-radius-8px box-shadow-extra-large p-30px mt-4">
|
|
|
|
|
+ <span className="fs-14 fw-700 text-base-color text-uppercase">{pageCopy.hair.badge}</span>
|
|
|
|
|
+ <h2 className="fw-700 text-dark-gray fs-26 mb-25px">{pageCopy.hair.title}</h2>
|
|
|
|
|
+ <InfoList
|
|
|
|
|
+ labels={pageCopy.hair.labels}
|
|
|
|
|
+ values={[
|
|
|
|
|
+ getDisplayValue(customer.hairLength),
|
|
|
|
|
+ getDisplayValue(customer.hairTexture),
|
|
|
|
|
+ getDisplayValue(customer.notice),
|
|
|
|
|
+ getDisplayValue(customer.allergy),
|
|
|
|
|
+ getDisplayValue(customer.innerRemark),
|
|
|
|
|
+ ]}
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div className="row g-4 mt-1">
|
|
|
|
|
+ <div className="col-lg-4">
|
|
|
|
|
+ <div className="workbench-panel bg-white border-radius-8px box-shadow-extra-large p-30px h-100">
|
|
|
|
|
+ <span className="fs-14 fw-700 text-base-color text-uppercase">{pageCopy.history.badge}</span>
|
|
|
|
|
+ <h2 className="fw-700 text-dark-gray fs-26 mb-25px">{pageCopy.history.title}</h2>
|
|
|
|
|
+ <p className="fs-15 text-medium-gray mb-0">{pageCopy.states.undeveloped}</p>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div className="col-lg-4">
|
|
|
|
|
+ <div className="workbench-panel bg-white border-radius-8px box-shadow-extra-large p-30px h-100">
|
|
|
|
|
+ <span className="fs-14 fw-700 text-base-color text-uppercase">{pageCopy.photos.badge}</span>
|
|
|
|
|
+ <h2 className="fw-700 text-dark-gray fs-26 mb-25px">{pageCopy.photos.title}</h2>
|
|
|
|
|
+ <p className="fs-15 text-medium-gray mb-0">{pageCopy.states.undeveloped}</p>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div className="col-lg-4">
|
|
|
|
|
+ <div className="workbench-panel bg-white border-radius-8px box-shadow-extra-large p-30px h-100">
|
|
|
|
|
+ <span className="fs-14 fw-700 text-base-color text-uppercase">{pageCopy.simulation.badge}</span>
|
|
|
|
|
+ <h2 className="fw-700 text-dark-gray fs-26 mb-25px">{pageCopy.simulation.title}</h2>
|
|
|
|
|
+ <button type="button" disabled className="btn btn-small btn-rounded btn-transparent-light-gray border border-1 border-color-dark-gray fw-700">
|
|
|
|
|
+ {pageCopy.simulation.action}
|
|
|
|
|
+ </button>
|
|
|
|
|
+ <p className="fs-15 text-medium-gray mt-15px mb-0">{pageCopy.states.undeveloped}</p>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </section>
|
|
|
</DashboardLayout>
|
|
</DashboardLayout>
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|