fix some bug
This commit is contained in:
@@ -36,26 +36,12 @@
|
||||
<body-area-selector v-model="selectedAreas" />
|
||||
</div>
|
||||
</t-cell-group>
|
||||
<t-cell-group v-if="inviter" :title="`被 ${inviter.name} 邀请`" class="invite" theme="card">
|
||||
<t-cell
|
||||
:title="inviter.name"
|
||||
arrow
|
||||
<t-cell-group v-if="inviter" :title="`由 ${inviter.name} 邀请`" class="invite" theme="card">
|
||||
<customer-profile-card
|
||||
class="profile-card"
|
||||
:customer="inviter"
|
||||
@click="goCustomerDetail(inviter)"
|
||||
>
|
||||
<template #description>
|
||||
<telephone-link :value="inviter.telephone" placeholder="未填写电话" />
|
||||
</template>
|
||||
<template #leftIcon>
|
||||
<t-image
|
||||
v-if="getCustomerPhotoURL(inviter)"
|
||||
class="avatar"
|
||||
:src="getCustomerPhotoURL(inviter)"
|
||||
:alt="inviter.name"
|
||||
fit="cover"
|
||||
/>
|
||||
<div v-else class="avatar fallback" v-text="(inviter.name || '客').slice(0, 1)" />
|
||||
</template>
|
||||
</t-cell>
|
||||
/>
|
||||
</t-cell-group>
|
||||
<div class="invite">
|
||||
<div class="header">
|
||||
@@ -77,8 +63,8 @@
|
||||
<t-cell-group theme="card">
|
||||
<t-swipe-cell
|
||||
class="item"
|
||||
v-for="item in invitees"
|
||||
:key="item.id || item.code"
|
||||
v-for="(item, index) in invitees"
|
||||
:key="item.id || item.code || index"
|
||||
>
|
||||
<t-cell
|
||||
arrow
|
||||
@@ -465,6 +451,21 @@ watch(() => route.params.id, async () => {
|
||||
margin: 0 1rem;
|
||||
}
|
||||
|
||||
:deep(.t-cell__title) {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
:deep(.t-cell__title-text) {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
:deep(.t-cell__note) {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
white-space: normal;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
.conditioning-part {
|
||||
gap: .5rem;
|
||||
padding: 1rem;
|
||||
@@ -474,6 +475,19 @@ watch(() => route.params.id, async () => {
|
||||
|
||||
.invite {
|
||||
|
||||
.inviter-profile {
|
||||
gap: .5rem;
|
||||
display: flex;
|
||||
cursor: pointer;
|
||||
padding: .75rem;
|
||||
align-items: center;
|
||||
|
||||
.profile-card {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
|
||||
.title {
|
||||
|
||||
@@ -415,7 +415,7 @@ async function saveCustomer(): Promise<void> {
|
||||
const customerCode = formModel.code.trim();
|
||||
const payload: Customer = {
|
||||
...(currentCustomer.value || {}),
|
||||
code: customerCode || undefined,
|
||||
code: customerCode || null,
|
||||
name: formModel.name,
|
||||
gender: formModel.gender || undefined,
|
||||
age: Number(formModel.age) || undefined,
|
||||
@@ -426,7 +426,7 @@ async function saveCustomer(): Promise<void> {
|
||||
remark: formModel.note,
|
||||
disease: formModel.disease,
|
||||
conditioningPart: selectedAreas.value,
|
||||
introducerCustomerId: formModel.inviterCustomerId || undefined,
|
||||
introducerCustomerId: formModel.inviterCustomerId || null,
|
||||
attachmentIdList: photoTempFileId.value ? [photoTempFileId.value] : undefined
|
||||
};
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
<section class="items">
|
||||
<div
|
||||
class="item"
|
||||
v-for="item in customerList"
|
||||
:key="item.id || item.code"
|
||||
v-for="(item, index) in customerList"
|
||||
:key="item.id || item.code || index"
|
||||
@click="goDetail(item)"
|
||||
>
|
||||
<t-image v-if="getCustomerPhotoURL(item)" :src="getCustomerPhotoURL(item)" :alt="item.name" fit="cover" class="avatar" />
|
||||
@@ -28,7 +28,7 @@
|
||||
<h4 class="value" v-text="item.name" />
|
||||
<gender-icon :value="item.gender" size="1.125rem" />
|
||||
</div>
|
||||
<span class="meta gray" v-text="item.code" />
|
||||
<span class="meta gray" v-text="item.code || ''" />
|
||||
</div>
|
||||
<div class="line">
|
||||
<div class="gray">
|
||||
|
||||
@@ -45,13 +45,23 @@
|
||||
required-mark
|
||||
/>
|
||||
<t-form-item label="登记时间" content-align="right">
|
||||
<t-button
|
||||
theme="primary"
|
||||
variant="outline"
|
||||
size="extra-small"
|
||||
:content="registeredAtText || '此刻'"
|
||||
@click="openRegisteredAtPicker"
|
||||
/>
|
||||
<div class="time-actions">
|
||||
<t-button
|
||||
theme="primary"
|
||||
variant="outline"
|
||||
size="extra-small"
|
||||
:content="registeredAtText || '此刻'"
|
||||
@click="openRegisteredAtPicker"
|
||||
/>
|
||||
<t-button
|
||||
v-if="registeredAtText"
|
||||
theme="primary"
|
||||
variant="text"
|
||||
size="extra-small"
|
||||
content="此刻"
|
||||
@click="resetRegisteredAt"
|
||||
/>
|
||||
</div>
|
||||
</t-form-item>
|
||||
<t-form-item label="登记备注">
|
||||
<t-textarea
|
||||
@@ -123,8 +133,9 @@
|
||||
</div>
|
||||
<t-popup v-model="registeredAtPickerVisible" placement="bottom">
|
||||
<t-date-time-picker
|
||||
v-if="registeredAtPickerVisible"
|
||||
v-model="registeredAtDraftText"
|
||||
:default-value="registeredAtDraftText"
|
||||
:start="minimumDateTimeText"
|
||||
:mode="['date', 'minute']"
|
||||
format="YYYY-MM-DD HH:mm"
|
||||
title="登记时间"
|
||||
@@ -169,6 +180,7 @@ const selectedCustomerList = ref<Customer[]>([]);
|
||||
const registrationEventList = ref<RegistrationEvent[]>([]);
|
||||
const selectedRegistrationEventIdList = ref<string[]>([]);
|
||||
const recentRecordList = ref<RegistrationEventRecord[]>([]);
|
||||
const minimumDateTimeText = "1970-01-01 00:00";
|
||||
const registeredAtText = ref("");
|
||||
const registeredAtDraftText = ref("");
|
||||
const registeredAtPickerVisible = ref(false);
|
||||
@@ -436,6 +448,11 @@ function confirmRegisteredAt(): void {
|
||||
registeredAtPickerVisible.value = false;
|
||||
}
|
||||
|
||||
function resetRegisteredAt(): void {
|
||||
registeredAtText.value = "";
|
||||
registeredAtDraftText.value = "";
|
||||
}
|
||||
|
||||
async function submitRecord(): Promise<void> {
|
||||
if (!validateForm()) {
|
||||
return;
|
||||
@@ -611,6 +628,13 @@ watch(customerCode, async (value) => {
|
||||
padding: 0 1rem;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.time-actions {
|
||||
gap: .5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
|
||||
.record-photo {
|
||||
|
||||
@@ -560,6 +560,22 @@ onUnmounted(() => {
|
||||
.cell {
|
||||
padding: .5rem;
|
||||
|
||||
:deep(.t-cell__title) {
|
||||
flex: 1 1 0;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
:deep(.t-cell__title-text) {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
:deep(.t-cell__note) {
|
||||
flex: 0 0 auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.photo {
|
||||
width: 3.5rem;
|
||||
height: 3.5rem;
|
||||
|
||||
Reference in New Issue
Block a user