update permission and product
This commit is contained in:
@@ -35,13 +35,6 @@
|
||||
<t-switch v-model="formData.autoClosedDay" />
|
||||
</template>
|
||||
</t-cell>
|
||||
<t-cell
|
||||
title="直接产品消费事件"
|
||||
:note="directProductSaleEventName"
|
||||
description="直接产品订单使用该事件记录消费金额并触发积分"
|
||||
arrow
|
||||
@click="openDirectProductSaleEventPicker"
|
||||
/>
|
||||
</t-cell-group>
|
||||
<div v-if="!isCreateMode && !isStoreManagerScope" class="actions" v-entrance-transition="140">
|
||||
<t-button
|
||||
@@ -59,21 +52,11 @@
|
||||
@confirm="removeConfirmedStore"
|
||||
/>
|
||||
</div>
|
||||
<t-popup v-model="directProductSaleEventPickerVisible" placement="bottom">
|
||||
<t-picker
|
||||
v-model="directProductSaleEventPickerDraft"
|
||||
:columns="directProductSaleEventPickerColumns"
|
||||
title="选择直接产品消费事件"
|
||||
@cancel="directProductSaleEventPickerVisible = false"
|
||||
@confirm="confirmDirectProductSaleEvent"
|
||||
/>
|
||||
</t-popup>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useUserStore } from "timi-web-api";
|
||||
import StoreAPI from "@/api/StoreAPI";
|
||||
import type { EventItem } from "@/types/EventItem";
|
||||
import StoreRemoveDialog from "@/components/StoreRemoveDialog.vue";
|
||||
import { useCurrentStoreStore } from "@/store/currentStoreStore";
|
||||
import { useNavBarStore } from "@/store/navBarStore";
|
||||
@@ -85,8 +68,6 @@ defineOptions({
|
||||
name: "StoreEdit"
|
||||
});
|
||||
|
||||
type PickerValue = string | number;
|
||||
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const navBarStore = useNavBarStore();
|
||||
@@ -114,75 +95,9 @@ const formData = reactive({
|
||||
telephone: "",
|
||||
address: "",
|
||||
remark: "",
|
||||
autoClosedDay: true,
|
||||
directProductSaleEventId: ""
|
||||
autoClosedDay: true
|
||||
});
|
||||
|
||||
// ---------- 直接产品消费事件 ----------
|
||||
|
||||
const directProductSaleEventList = ref<EventItem[]>([]);
|
||||
const directProductSaleEventLoaded = ref(false);
|
||||
const directProductSaleEventPickerVisible = ref(false);
|
||||
const directProductSaleEventPickerDraft = ref<PickerValue[]>([]);
|
||||
const directProductSaleEventPickerColumns = computed(() => [
|
||||
directProductSaleEventList.value
|
||||
.map(item => ({
|
||||
label: `${item.name || "未命名事件"}${item.requirePhoto ? "(需照片)" : ""}`,
|
||||
value: item.id || ""
|
||||
}))
|
||||
.filter(item => item.value)
|
||||
]);
|
||||
const selectedDirectProductSaleEvent = computed(() => directProductSaleEventList.value.find(item => item.id === formData.directProductSaleEventId));
|
||||
const directProductSaleEventName = computed(() => {
|
||||
if (selectedDirectProductSaleEvent.value) {
|
||||
return selectedDirectProductSaleEvent.value.name || "未命名事件";
|
||||
}
|
||||
if (formData.directProductSaleEventId && !directProductSaleEventLoaded.value) {
|
||||
return "已配置,点击查看";
|
||||
}
|
||||
return formData.directProductSaleEventId ? "当前配置事件不可用" : "未配置,直接产品订单不可提交";
|
||||
});
|
||||
|
||||
async function loadDirectProductSaleEvents(): Promise<boolean> {
|
||||
if (!formData.id) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
directProductSaleEventList.value = await StoreAPI.directProductSaleEventList(formData.id);
|
||||
directProductSaleEventLoaded.value = true;
|
||||
return true;
|
||||
} catch {
|
||||
directProductSaleEventList.value = [];
|
||||
directProductSaleEventLoaded.value = false;
|
||||
Message.error("直接产品消费事件加载失败");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function openDirectProductSaleEventPicker(): Promise<void> {
|
||||
if (!formData.id) {
|
||||
Message.warning("请先保存门店,再配置直接产品消费事件");
|
||||
return;
|
||||
}
|
||||
if (!await loadDirectProductSaleEvents()) {
|
||||
return;
|
||||
}
|
||||
if (!directProductSaleEventPickerColumns.value[0]?.length) {
|
||||
Message.warning("暂无可选事件,请先创建并启用 GENERAL / NUMBER / CENT 消费事件");
|
||||
return;
|
||||
}
|
||||
directProductSaleEventPickerDraft.value = [formData.directProductSaleEventId];
|
||||
directProductSaleEventPickerVisible.value = true;
|
||||
}
|
||||
|
||||
function confirmDirectProductSaleEvent(value: Array<string | number>): void {
|
||||
const eventId = String(value[0] || "");
|
||||
if (eventId) {
|
||||
formData.directProductSaleEventId = eventId;
|
||||
}
|
||||
directProductSaleEventPickerVisible.value = false;
|
||||
}
|
||||
|
||||
async function doSave(): Promise<void> {
|
||||
if (!validateForm()) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user