chore: 兼容数据库

This commit is contained in:
xiaojunnuo
2024-12-25 00:52:39 +08:00
parent 2d580a26af
commit c937f5afc7
9 changed files with 326 additions and 4 deletions
@@ -35,7 +35,9 @@ export type SysPublicSetting = {
managerOtherUserPipeline?: boolean;
icpNo?: string;
};
export type SuiteSetting = {
enabled?: boolean;
};
export type SysPrivateSetting = {
httpProxy?: string;
httpsProxy?: string;
@@ -67,6 +69,7 @@ export type AllSettings = {
siteInfo: SiteInfo;
siteEnv: SiteEnv;
headerMenus: HeaderMenus;
suiteSetting: SuiteSetting;
};
export async function loadAllSettings(): Promise<AllSettings> {
@@ -138,7 +138,7 @@ export const certdResources = [
meta: {
show: () => {
const settingStore = useSettingStore();
return settingStore.isComm;
return settingStore.isComm && settingStore.isSuiteEnabled;
},
icon: "ion:cart-outline",
auth: true
@@ -5,7 +5,7 @@ import * as _ from "lodash-es";
import { LocalStorage } from "/src/utils/util.storage";
import * as basicApi from "/@/api/modules/api.basic";
import { HeaderMenus, PlusInfo, SiteEnv, SiteInfo, SysInstallInfo, SysPublicSetting } from "/@/api/modules/api.basic";
import { HeaderMenus, PlusInfo, SiteEnv, SiteInfo, SuiteSetting, SysInstallInfo, SysPublicSetting } from "/@/api/modules/api.basic";
import { useUserStore } from "/@/store/modules/user";
import { mitter } from "/@/utils/util.mitt";
import { env } from "/@/utils/util.env";
@@ -37,6 +37,7 @@ export interface SettingState {
siteEnv?: SiteEnv;
headerMenus?: HeaderMenus;
inited?: boolean;
suiteSetting?: SuiteSetting;
}
const defaultThemeConfig = {
@@ -88,6 +89,7 @@ export const useSettingStore = defineStore({
headerMenus: {
menus: []
},
suiteSetting: { enabled: false },
inited: false
}),
getters: {
@@ -124,6 +126,10 @@ export const useSettingStore = defineStore({
getHeaderMenus() {
// @ts-ignore
return this.headerMenus?.menus || { menus: [] };
},
isSuiteEnabled() {
// @ts-ignore
return this.suiteSetting?.enabled === true;
}
},
actions: {
@@ -142,6 +148,7 @@ export const useSettingStore = defineStore({
_.merge(this.siteEnv, allSettings.siteEnv || {});
_.merge(this.plusInfo, allSettings.plusInfo || {});
_.merge(this.headerMenus, allSettings.headerMenus || {});
_.merge(this.suiteSetting, allSettings.suiteSetting || {});
//@ts-ignore
this.initSiteInfo(allSettings.siteInfo || {});
},
@@ -22,6 +22,8 @@
<product-info :product="item" @order="doOrder" />
</a-col>
</a-row>
<a-empty v-if="suites.length == 0 && addons.length == 0" class="w-100 mt-10" description="暂无套餐可购买" />
</div>
<order-modal ref="orderModalRef" />
@@ -36,6 +36,9 @@
</span>
<span>(<expires-time-text :value="item.expiresTime" />)</span>
</a-tag>
<div class="flex-o ml-5">
暂无套餐 <a-button v-if="detail.suites?.length === 0" class="ml-5" type="primary" size="small" @click="goBuy">去购买</a-button>
</div>
</div>
</a-popover>
</div>
@@ -48,6 +51,7 @@ import { ref } from "vue";
import ExpiresTimeText from "/@/components/expires-time-text.vue";
import api, { SuiteDetail } from "/@/views/certd/suite/mine/api";
import { FsIcon } from "@fast-crud/fast-crud";
import { useRouter } from "vue-router";
defineOptions({
name: "SuiteCard"
@@ -60,4 +64,11 @@ async function loadSuiteDetail() {
}
loadSuiteDetail();
const router = useRouter();
function goBuy() {
router.push({
path: "/certd/suite/buy"
});
}
</script>
@@ -45,6 +45,7 @@ import { notification } from "ant-design-vue";
import { request } from "/@/api/service";
import SuiteDurationSelector from "/@/views/sys/suite/setting/suite-duration-selector.vue";
import ProductManager from "/@/views/sys/suite/product/index.vue";
import { useSettingStore } from "/@/store/modules/settings";
defineOptions({
name: "SettingsSuite"
@@ -83,11 +84,13 @@ async function loadSettings() {
merge(formState, data);
}
const settingsStore = useSettingStore();
loadSettings();
const onClick = async () => {
const form = await formRef.value.validateFields();
await api.SuiteSettingSave(form);
await loadSettings();
await settingsStore.loadSysSettings();
notification.success({
message: "保存成功"
});