This commit is contained in:
全栈小学生 2023-06-01 19:31:28 +08:00
parent 2cf40a97f8
commit ee1a7c20d6
21 changed files with 344 additions and 311 deletions

View File

@ -1,5 +1,6 @@
// Generated by 'unplugin-auto-import' // Generated by 'unplugin-auto-import'
export {} export {}
declare global { declare global {
const ElMessage: typeof import('element-plus/es')['ElMessage']
const ElNotification: typeof import('element-plus/es')['ElNotification'] const ElNotification: typeof import('element-plus/es')['ElNotification']
} }

14
admin/components.d.ts vendored
View File

@ -10,6 +10,7 @@ declare module '@vue/runtime-core' {
Attachment: typeof import('./src/components/upload-attachment/attachment.vue')['default'] Attachment: typeof import('./src/components/upload-attachment/attachment.vue')['default']
DiyLink: typeof import('./src/components/diy-link/index.vue')['default'] DiyLink: typeof import('./src/components/diy-link/index.vue')['default']
Editor: typeof import('./src/components/editor/index.vue')['default'] Editor: typeof import('./src/components/editor/index.vue')['default']
ElAlert: typeof import('element-plus/es')['ElAlert']
ElAside: typeof import('element-plus/es')['ElAside'] ElAside: typeof import('element-plus/es')['ElAside']
ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElAvatar: typeof import('element-plus/es')['ElAvatar']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb'] ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
@ -17,13 +18,18 @@ declare module '@vue/runtime-core' {
ElButton: typeof import('element-plus/es')['ElButton'] ElButton: typeof import('element-plus/es')['ElButton']
ElCard: typeof import('element-plus/es')['ElCard'] ElCard: typeof import('element-plus/es')['ElCard']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol'] ElCol: typeof import('element-plus/es')['ElCol']
ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElCollapse: typeof import('element-plus/es')['ElCollapse']
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
ElColorPicker: typeof import('element-plus/es')['ElColorPicker'] ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer'] ElContainer: typeof import('element-plus/es')['ElContainer']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
ElDialog: typeof import('element-plus/es')['ElDialog'] ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
ElDrawer: typeof import('element-plus/es')['ElDrawer'] ElDrawer: typeof import('element-plus/es')['ElDrawer']
ElDropdown: typeof import('element-plus/es')['ElDropdown'] ElDropdown: typeof import('element-plus/es')['ElDropdown']
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
@ -37,26 +43,34 @@ declare module '@vue/runtime-core' {
ElImage: typeof import('element-plus/es')['ElImage'] ElImage: typeof import('element-plus/es')['ElImage']
ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElLink: typeof import('element-plus/es')['ElLink']
ElMain: typeof import('element-plus/es')['ElMain'] ElMain: typeof import('element-plus/es')['ElMain']
ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption'] ElOption: typeof import('element-plus/es')['ElOption']
ElOptionGroup: typeof import('element-plus/es')['ElOptionGroup']
ElPagination: typeof import('element-plus/es')['ElPagination'] ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover'] ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElResult: typeof import('element-plus/es')['ElResult']
ElRow: typeof import('element-plus/es')['ElRow'] ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect'] ElSelect: typeof import('element-plus/es')['ElSelect']
ElSlider: typeof import('element-plus/es')['ElSlider'] ElSlider: typeof import('element-plus/es')['ElSlider']
ElStatistic: typeof import('element-plus/es')['ElStatistic'] ElStatistic: typeof import('element-plus/es')['ElStatistic']
ElStep: typeof import('element-plus/es')['ElStep']
ElSteps: typeof import('element-plus/es')['ElSteps']
ElSubMenu: typeof import('element-plus/es')['ElSubMenu'] ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTable: typeof import('element-plus/es')['ElTable'] ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs'] ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTree: typeof import('element-plus/es')['ElTree']
ElUpload: typeof import('element-plus/es')['ElUpload'] ElUpload: typeof import('element-plus/es')['ElUpload']
Icon: typeof import('./src/components/icon/index.vue')['default'] Icon: typeof import('./src/components/icon/index.vue')['default']
PopoverInput: typeof import('./src/components/popover-input/index.vue')['default'] PopoverInput: typeof import('./src/components/popover-input/index.vue')['default']

View File

@ -22,7 +22,7 @@ export function getAddonDetial(id: number) {
* @returns * @returns
*/ */
export function installAddon(params: Record<string, any>) { export function installAddon(params: Record<string, any>) {
return request.post(`addon/install/${params.addon}`, params, { showErrorMessage: true }) return request.post(`addon/install/${params.addon}`, params)
} }
/** /**
@ -59,5 +59,5 @@ export function getAddonInstallTaskState(addon: string, key: string) {
* @returns * @returns
*/ */
export function executeInstall(addon: string) { export function executeInstall(addon: string) {
return request.post(`addon/install/execute/${addon}`, {}, { showErrorMessage: true }) return request.post(`addon/install/execute/${addon}`, {})
} }

View File

@ -21,8 +21,8 @@
"sexPlaceholder": "请选择性别", "sexPlaceholder": "请选择性别",
"headimg": "会员头像", "headimg": "会员头像",
"wxUnionid": "微信unionid", "wxUnionid": "微信unionid",
"weappOpenid": "微信用户openid", "weappOpenid": "微信公众号openid",
"wxOpenid": "微信小程openid", "wxOpenid": "微信小程openid",
"memberLabel": "会员标签", "memberLabel": "会员标签",
"memberLabelPlaceholder": "请选择会员标签", "memberLabelPlaceholder": "请选择会员标签",
"nickNamePlaceholder": "请输入会员名称", "nickNamePlaceholder": "请输入会员名称",

View File

@ -23,6 +23,7 @@
"contactAddress": "联系地址", "contactAddress": "联系地址",
"address": "详细地址", "address": "详细地址",
"contactAddressPlaceholder":"联系地址", "contactAddressPlaceholder":"联系地址",
"keywords":"关键字",
"keywordsPlaceholder": "网站关键字", "keywordsPlaceholder": "网站关键字",
"logoPlaceholder": "网站Logo", "logoPlaceholder": "网站Logo",
"descPlaceholder": "网站简介", "descPlaceholder": "网站简介",

View File

@ -164,3 +164,31 @@ select:-webkit-autofill {
} }
} }
} }
// 温馨提示样式
.warm-prompt {
background-color: var(--el-color-primary-light-9) !important;
.el-icon, p {
color: var(--el-color-primary-light-3);
}
.el-alert__content{
padding: 0;
}
}
html.dark {
.warm-prompt {
background-color: var(--el-color-primary-light-5) !important;
.el-icon, p {
color: var(--el-color-primary-dark-2);
}
}
}
.app-item {
background: #f7f7f7;
}
html.dark {
.app-item {
background: #191a23;
}
}

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="main-container bg-[#fff] min-w-[1000px] min-h-[650px]" v-loading="loading"> <div class="main main-container min-w-[1000px] min-h-[650px]" v-loading="loading">
<div class="pt-[1px]" v-for="(listItems, listIndex) in appManageList" :key="listIndex" v-if="appManageList.length > 0" > <div class="pt-[1px]" v-for="(listItems, listIndex) in appManageList" :key="listIndex" v-if="appManageList.length > 0" >
<p class="ml-4 mt-[20px] border-l-[2px] border-[#273de3] pl-3 leading-[1] font-bold">{{ listItems.name }}</p> <p class="ml-4 mt-[20px] border-l-[2px] border-[#273de3] pl-3 leading-[1] font-bold">{{ listItems.name }}</p>
<div class="flex flex-wrap"> <div class="flex flex-wrap">
@ -9,7 +9,7 @@
<img v-else class="w-[240px] h-[120px]" src="@/assets/images/app_default.png"/> <img v-else class="w-[240px] h-[120px]" src="@/assets/images/app_default.png"/>
</div> </div>
<div class="text-left mt-2 w-[240px]"> <div class="text-left mt-2 w-[240px]">
<p class="app-text text-[14px] text-[#222] pl-2">{{ appItems.title }}</p> <p class="app-text text-[14px] pl-2">{{ appItems.title }}</p>
<p class="app-text text-[12px] text-[#999] pl-2">{{ appItems.desc }}</p> <p class="app-text text-[12px] text-[#999] pl-2">{{ appItems.desc }}</p>
</div> </div>
</div> </div>
@ -60,6 +60,9 @@ const toLink = (link) => {
text-overflow: ellipsis; text-overflow: ellipsis;
-o-text-overflow:ellipsis; -o-text-overflow:ellipsis;
} }
.main {
background-color: var(--el-bg-color-overlay);
}
.app-item { .app-item {
// box-shadow: 0px 6px 18px 0px rgba(82,129,187,0.1); // box-shadow: 0px 6px 18px 0px rgba(82,129,187,0.1);
} }

View File

@ -167,7 +167,7 @@
v-if="!installCheckResult.job_normal" /> v-if="!installCheckResult.job_normal" />
<p class="pt-[20px] pl-[20px] ">{{ t('dirPermission') }}</p> <p class="pt-[20px] pl-[20px] ">{{ t('dirPermission') }}</p>
<div class="px-[20px] text-[14px]"> <div class="px-[20px] text-[14px]">
<el-row class="py-[10px] items"> <el-row class="py-[10px] items table-head-bg pl-[15px] mb-[10px]">
<el-col :span="12"> <el-col :span="12">
<span>{{ t('path') }}</span> <span>{{ t('path') }}</span>
</el-col> </el-col>
@ -178,7 +178,7 @@
<span>{{ t('status') }}</span> <span>{{ t('status') }}</span>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="pb-[10px] items" v-for="item in installCheckResult.dir.is_readable"> <el-row class="pb-[10px] items pl-[15px]" v-for="item in installCheckResult.dir.is_readable">
<el-col :span="12"> <el-col :span="12">
<span>{{ item.dir }}</span> <span>{{ item.dir }}</span>
</el-col> </el-col>
@ -192,7 +192,7 @@
</el-icon></span> </el-icon></span>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="pb-[10px] items" v-for="item in installCheckResult.dir.is_write"> <el-row class="pb-[10px] items pl-[15px]" v-for="item in installCheckResult.dir.is_write">
<el-col :span="12"> <el-col :span="12">
<span>{{ item.dir }}</span> <span>{{ item.dir }}</span>
</el-col> </el-col>
@ -211,7 +211,7 @@
<div class="bg-[#fff] my-3" v-if="installCheckResult.dir"> <div class="bg-[#fff] my-3" v-if="installCheckResult.dir">
<p class="pl-[20px] ">{{ t('packageManageTool') }}</p> <p class="pl-[20px] ">{{ t('packageManageTool') }}</p>
<div class="px-[20px] text-[14px]"> <div class="px-[20px] text-[14px]">
<el-row class="py-[10px] items"> <el-row class="py-[10px] items table-head-bg pl-[15px] mb-[10px]">
<el-col :span="12"> <el-col :span="12">
<span>{{ t('name') }}</span> <span>{{ t('name') }}</span>
</el-col> </el-col>
@ -222,7 +222,7 @@
<span>{{ t('status') }}</span> <span>{{ t('status') }}</span>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="pb-[10px] items" v-for="item in installCheckResult.runtime"> <el-row class="pb-[10px] items pl-[15px]" v-for="item in installCheckResult.runtime">
<el-col :span="12"> <el-col :span="12">
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</el-col> </el-col>
@ -241,7 +241,7 @@
<div class="bg-[#fff] my-3" <div class="bg-[#fff] my-3"
v-if="installCheckResult.conflict_files && installCheckResult.conflict_files.length"> v-if="installCheckResult.conflict_files && installCheckResult.conflict_files.length">
<p class="pl-[20px] ">{{ t('conflictFiles') }}</p> <p class="pl-[20px] ">{{ t('conflictFiles') }}</p>
<div class="px-[20px] text-[14px] pt-[10px]"> <div class="px-[20px] text-[14px] pt-[10px] pl-[15px]">
<el-row class="pb-[10px] items" v-for="item in installCheckResult.conflict_files"> <el-row class="pb-[10px] items" v-for="item in installCheckResult.conflict_files">
<el-col :span="24"> <el-col :span="24">
<span>{{ item }}</span> <span>{{ item }}</span>
@ -252,7 +252,7 @@
<div class="bg-[#fff] my-3"> <div class="bg-[#fff] my-3">
<p class="pl-[20px] ">{{ t('process') }}</p> <p class="pl-[20px] ">{{ t('process') }}</p>
<div class="px-[20px] text-[14px]"> <div class="px-[20px] text-[14px]">
<el-row class="py-[10px] items"> <el-row class="py-[10px] items table-head-bg pl-[15px] mb-[10px]">
<el-col :span="12"> <el-col :span="12">
<span>{{ t('name') }}</span> <span>{{ t('name') }}</span>
</el-col> </el-col>
@ -263,7 +263,7 @@
<span>{{ t('status') }}</span> <span>{{ t('status') }}</span>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="pb-[10px] items"> <el-row class="pb-[10px] items pl-[15px]">
<el-col :span="12"> <el-col :span="12">
<span>php think queue:listen</span> <span>php think queue:listen</span>
</el-col> </el-col>
@ -545,4 +545,12 @@ const getAddonDetialFn = (data: AnyObject) => {
text-overflow: ellipsis; text-overflow: ellipsis;
-o-text-overflow: ellipsis; -o-text-overflow: ellipsis;
} }
// --
.table-head-bg{
background: #f5f7f9;
}
html.dark .table-head-bg{
background: #141414;
}
</style> </style>

View File

@ -2,10 +2,10 @@
<div class="main-container"> <div class="main-container">
<el-card class="box-card !border-none" shadow="never"> <el-card class="box-card !border-none" shadow="never">
<div class="flex justify-between items-center"> <div class="flex justify-between items-center">
<span class="text-[24px]">{{pageName}}</span> <span class="text-[24px]">{{ pageName }}</span>
<el-button type="primary" class="w-[100px]" @click="addEvent"> <!-- <el-button type="primary" class="w-[100px]" @click="addEvent">
{{ t('addMenu') }} {{ t('addMenu') }}
</el-button> </el-button> -->
</div> </div>
<div class="mt-[20px]"> <div class="mt-[20px]">
@ -40,8 +40,8 @@
<el-table-column prop="create_time" :label="t('createTime')" width="180" /> <el-table-column prop="create_time" :label="t('createTime')" width="180" />
<el-table-column :label="t('operation')" fixed="right" width="130"> <el-table-column :label="t('operation')" fixed="right" width="130">
<template #default="{ row }"> <template #default="{ row }">
<el-button type="primary" link @click="editEvent(row)">{{ t('edit') }}</el-button> <!-- <el-button type="primary" link @click="editEvent(row)">{{ t('edit') }}</el-button>
<el-button type="danger" link @click="deleteEvent(row.menu_key)">{{ t('delete') }}</el-button> <el-button type="danger" link @click="deleteEvent(row.menu_key)">{{ t('delete') }}</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -60,7 +60,7 @@ import { ElMessageBox } from 'element-plus'
import EditMenu from '@/views/auth/components/edit-menu.vue' import EditMenu from '@/views/auth/components/edit-menu.vue'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
const route = useRoute() const route = useRoute()
const pageName = route.meta.title; const pageName = route.meta.title
const menusTableData = reactive({ const menusTableData = reactive({
loading: true, loading: true,
@ -87,7 +87,7 @@ getMenuList()
const editMenuDialog: Record<string, any> | null = ref(null) const editMenuDialog: Record<string, any> | null = ref(null)
const addEvent = () => { const addEvent = () => {
editMenuDialog.value.setFormData({app_type:'admin'}) editMenuDialog.value.setFormData({ app_type: 'admin' })
editMenuDialog.value.showDialog = true editMenuDialog.value.showDialog = true
} }

View File

@ -3,10 +3,10 @@
<el-card class="box-card !border-none" shadow="never"> <el-card class="box-card !border-none" shadow="never">
<div class="flex justify-between items-center"> <div class="flex justify-between items-center">
<span class="text-[24px]">{{pageName}}</span> <span class="text-[24px]">{{ pageName }}</span>
<el-button type="primary" class="w-[100px]" @click="addEvent"> <!-- <el-button type="primary" class="w-[100px]" @click="addEvent">
{{ t('addMenu') }} {{ t('addMenu') }}
</el-button> </el-button> -->
</div> </div>
<div class="mt-[20px]"> <div class="mt-[20px]">
@ -41,8 +41,8 @@
<el-table-column prop="create_time" :label="t('createTime')" width="180" /> <el-table-column prop="create_time" :label="t('createTime')" width="180" />
<el-table-column :label="t('operation')" fixed="right" width="130"> <el-table-column :label="t('operation')" fixed="right" width="130">
<template #default="{ row }"> <template #default="{ row }">
<el-button type="primary" link @click="editEvent(row)">{{ t('edit') }}</el-button> <!-- <el-button type="primary" link @click="editEvent(row)">{{ t('edit') }}</el-button>
<el-button type="danger" link @click="deleteEvent(row.menu_key)">{{ t('delete') }}</el-button> <el-button type="danger" link @click="deleteEvent(row.menu_key)">{{ t('delete') }}</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -61,7 +61,7 @@ import { ElMessageBox } from 'element-plus'
import EditMenu from '@/views/auth/components/edit-menu.vue' import EditMenu from '@/views/auth/components/edit-menu.vue'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
const route = useRoute() const route = useRoute()
const pageName = route.meta.title; const pageName = route.meta.title
const menusTableData = reactive({ const menusTableData = reactive({
loading: true, loading: true,
@ -88,7 +88,7 @@ getMenuList()
const editMenuDialog: Record<string, any> | null = ref(null) const editMenuDialog: Record<string, any> | null = ref(null)
const addEvent = () => { const addEvent = () => {
editMenuDialog.value.setFormData({app_type:'site'}) editMenuDialog.value.setFormData({ app_type: 'site' })
editMenuDialog.value.showDialog = true editMenuDialog.value.showDialog = true
} }

View File

@ -126,14 +126,4 @@ const infoSwitch = (res) => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
:deep(.warm-prompt) {
background-color: var(--el-color-primary-light-9) !important;
.el-icon, p {
color: var(--el-color-primary-light-3);
}
.el-alert__content{
padding: 0;
}
}
</style>

View File

@ -132,14 +132,4 @@ const infoSwitch = (res: AnyObject) => {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
:deep(.warm-prompt) {
background-color: var(--el-color-primary-light-9) !important;
.el-icon, p {
color: var(--el-color-primary-light-3);
}
.el-alert__content{
padding: 0;
}
}
</style>

View File

@ -275,7 +275,7 @@ initPage({
} }
} }
wapDomain.value = `${data.domain_url.wap_url}/${data.page}?mode=decorate`; // decorate 访 wapDomain.value = `${data.domain_url.wap_url}/${data.page}?mode=decorate&site_id=${data.site_id}`; // decorate 访
}) })
onMounted(() => { onMounted(() => {

View File

@ -67,7 +67,7 @@
</div> </div>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<div class="w-[120px] 2xl:w-[200px] py-[15px] rounded-[10px] flex justify-center items-center cursor-pointer border-[1px] border-[#E5E8EE]" @click="toLink('/tools/app_store')"> <div class="w-[120px] 2xl:w-[200px] py-[15px] rounded-[10px] flex justify-center items-center cursor-pointer border-[1px] border-[#E5E8EE]" @click="toLink('/app_store')">
<img class="w-[33px]" src="@/assets/images/index/app.png"/> <img class="w-[33px]" src="@/assets/images/index/app.png"/>
<span class="ml-[10px] text-[16px] text-[#666]">{{t('appMarketplace')}}</span> <span class="ml-[10px] text-[16px] text-[#666]">{{t('appMarketplace')}}</span>
</div> </div>

View File

@ -1,239 +1,245 @@
<template> <template>
<div class="main-container" v-loading="loading"> <div class="main-container" v-loading="loading">
<el-card class="box-card !border-none mt-[16px]" shadow="never"> <el-card class="box-card !border-none mt-[16px]" shadow="never">
<div class="card-header mb-5 pb-[10px] border-b-[1px] border-[#EDEDED]"> <div class="card-header mb-5 pb-[10px] border-b-[1px] border-[#EDEDED]">
<span class="font-bold text-[18px] text-[#333333]">{{t('essentialInfo')}}</span> <span class="font-bold text-[18px] text-[#333333]">{{ t('essentialInfo') }}</span>
</div> </div>
<div class="bg-[#FAFAFD] py-[20px] pr-[80px] pl-[280px] relative"> <div class="bg-[#FAFAFD] py-[20px] pr-[80px] pl-[280px] relative">
<div class="member-info absolute w-[250px]"> <div class="member-info absolute w-[250px]">
<div class="flex items-center"> <div class="flex items-center">
<span class="text-[14px] min-w-[110px] text-right mr-[20px]">{{ t('headimg') }}</span> <span class="text-[14px] min-w-[110px] text-right mr-[20px]">{{ t('headimg') }}</span>
<span class="flex items-end text-[14px]"> <span class="flex items-end text-[14px]">
<img class="w-[50px] h-[50px] inline-block" v-if="formData.headimg" :src="img(formData.headimg)" alt=""> <img class="w-[50px] h-[50px] inline-block" v-if="formData.headimg" :src="img(formData.headimg)"
<img class="w-[50px] h-[50px] inline-block" v-else src="@/assets/images/default_headimg.png" alt=""> alt="">
<el-icon @click="editMemberInfo('headimg')" class="-bottom-[2px] -right-[4px] cursor-pointer"><EditPen color="#273CE2"/></el-icon> <img class="w-[50px] h-[50px] inline-block" v-else src="@/assets/images/default_headimg.png"
alt="">
<el-icon @click="editMemberInfo('headimg')" class="-bottom-[2px] -right-[4px] cursor-pointer">
<EditPen color="#273CE2" />
</el-icon>
</span> </span>
</div> </div>
<div class="flex items-center mt-[20px]"> <div class="flex items-center mt-[20px]">
<span class="text-[14px] min-w-[110px] text-right mr-[20px]">UID</span> <span class="text-[14px] min-w-[110px] text-right mr-[20px]">UID</span>
<span class="member-info-item text-[14px] text-[#666666] font-bold w-[150px]"> <span class="member-info-item text-[14px] text-[#666666] font-bold w-[150px]">
{{formData.member_no || t('notAvailable')}} {{ formData.member_no || t('notAvailable') }}
</span> </span>
</div> </div>
</div> </div>
<div> <div>
<el-row justify="space-evenly" class="flex"> <el-row justify="space-evenly" class="flex">
<el-col :span="5"> <el-col :span="5">
<div class="statistic-card"> <div class="statistic-card">
<el-statistic :value="formData.point"> <el-statistic :value="formData.point">
<template #title> <template #title>
<div style="display: inline-flex; align-items: center"> <div style="display: inline-flex; align-items: center">
<span class="text-[14px]"> <span class="text-[14px]">
{{t('point')}} {{ t('point') }}
</span> </span>
<el-tooltip <el-tooltip effect="dark" :content="t('adjust')" placement="top">
effect="dark" <el-icon @click="adjustPoint(formData)" class="ml-2 cursor-pointer"
:content="t('adjust')" :size="12">
placement="top" <EditPen color="#273CE2" />
</el-icon>
> </el-tooltip>
<el-icon @click="adjustPoint(formData)" class="ml-2 cursor-pointer" :size="12"><EditPen color="#273CE2"/></el-icon> <el-tooltip effect="dark" :content="t('detail')" placement="top">
</el-tooltip> <el-icon @click="infoPoint(formData)" class="ml-2 cursor-pointer"
<el-tooltip :size="12">
effect="dark" <View />
:content="t('detail')" </el-icon>
placement="top" </el-tooltip>
> </div>
<el-icon @click="infoPoint(formData)" class="ml-2 cursor-pointer" :size="12"><View /></el-icon> </template>
</el-tooltip> </el-statistic>
</div> <div class="statistic-footer">
</template> <div class="footer-item text-[14px] text-[#333333]">
</el-statistic> <span>{{ t('accumulative') }}</span>
<div class="statistic-footer"> <span class="green ml-1">
<div class="footer-item text-[14px] text-[#333333]"> {{ formData.point_get }}
<span>{{t('accumulative')}}</span> </span>
<span class="green ml-1"> </div>
{{formData.point_get}} </div>
</span> </div>
</div> </el-col>
</div> <el-col :span="5">
</div> <div class="statistic-card">
</el-col> <el-statistic :value="formData.balance">
<el-col :span="5"> <template #title>
<div class="statistic-card"> <div style="display: inline-flex; align-items: center">
<el-statistic :value="formData.balance">
<template #title>
<div style="display: inline-flex; align-items: center">
<span class="text-[14px]"> <span class="text-[14px]">
{{t('balance')}} {{ t('balance') }}
</span> </span>
<el-tooltip <el-tooltip effect="dark" :content="t('adjust')" placement="top">
effect="dark" <el-icon @click="adjustBalance(formData)" class="ml-2 cursor-pointer"
:content="t('adjust')" :size="12">
placement="top" <EditPen color="#273CE2" />
> </el-icon>
<el-icon @click="adjustBalance(formData)" class="ml-2 cursor-pointer" :size="12"><EditPen color="#273CE2"/></el-icon> </el-tooltip>
</el-tooltip> <el-tooltip effect="dark" :content="t('detail')" placement="top">
<el-tooltip <el-icon @click="infoBalance(formData)" class="ml-2 cursor-pointer"
effect="dark" :size="12">
:content="t('detail')" <View />
placement="top" </el-icon>
> </el-tooltip>
<el-icon @click="infoBalance(formData)" class="ml-2 cursor-pointer" :size="12"><View /></el-icon> </div>
</el-tooltip> </template>
</div> </el-statistic>
</template> <div class="statistic-footer">
</el-statistic> <div class="footer-item text-[14px] text-[#333333]">
<div class="statistic-footer"> <span>{{ t('accumulative') }}</span>
<div class="footer-item text-[14px] text-[#333333]"> <span class="red ml-1">
<span>{{t('accumulative')}}</span> {{ formData.balance_get }}
<span class="red ml-1">
{{formData.balance_get}}
</span>
</div>
</div>
</div>
</el-col>
<el-col :span="5">
<div class="statistic-card">
<el-statistic :value="formData.money" title="New transactions today ">
<template #title>
<div style="display: inline-flex; align-items: center">
<span class="text-[14px]">
{{t("money")}}
</span> </span>
<el-tooltip </div>
effect="dark" </div>
:content="t('detail')" </div>
placement="top" </el-col>
> <el-col :span="5">
<el-icon @click="infoBalance(formData)" class="ml-2 cursor-pointer" :size="12"><View/></el-icon> <div class="statistic-card">
</el-tooltip> <el-statistic :value="formData.money" title="New transactions today ">
</div> <template #title>
</template> <div style="display: inline-flex; align-items: center">
</el-statistic> <span class="text-[14px]">
<div class="statistic-footer"> {{ t("money") }}
<div class="footer-item text-[14px] text-[#333333]"> </span>
<span>{{t('accumulative')}}</span> <el-tooltip effect="dark" :content="t('detail')" placement="top">
<span class="green ml-1"> <el-icon @click="infoBalance(formData)" class="ml-2 cursor-pointer"
{{formData.money_get}} :size="12">
</span> <View />
</div> </el-icon>
</div> </el-tooltip>
</div> </div>
</el-col> </template>
<el-col :span="5"> </el-statistic>
<div class="statistic-card"> <div class="statistic-footer">
<el-statistic :value="formData.commission" title="New transactions today"> <div class="footer-item text-[14px] text-[#333333]">
<template #title> <span>{{ t('accumulative') }}</span>
<div style="display: inline-flex; align-items: center "> <span class="green ml-1">
<span class="text-[14px]"> {{ formData.money_get }}
{{t("commission")}}
</span> </span>
<el-tooltip </div>
effect="dark" </div>
:content="t('detail')" </div>
placement="top" </el-col>
> <el-col :span="5">
<el-icon @click="infoCommission(formData)" class="ml-2 cursor-pointer" :size="12"><View/></el-icon> <div class="statistic-card">
</el-tooltip> <el-statistic :value="formData.commission" title="New transactions today">
</div> <template #title>
</template> <div style="display: inline-flex; align-items: center ">
</el-statistic> <span class="text-[14px]">
<div class="statistic-footer"> {{ t("commission") }}
<div class="footer-item text-[14px] text-[#333333]"> </span>
<span>{{t('accumulative')}}</span> <el-tooltip effect="dark" :content="t('detail')" placement="top">
<span class="green ml-1"> <el-icon @click="infoCommission(formData)" class="ml-2 cursor-pointer"
{{formData.commission_get}} :size="12">
</span> <View />
</div> </el-icon>
</div> </el-tooltip>
</div> </div>
</el-col> </template>
</el-statistic>
<div class="statistic-footer">
<div class="footer-item text-[14px] text-[#333333]">
<span>{{ t('accumulative') }}</span>
<span class="green ml-1">
{{ formData.commission_get }}
</span>
</div>
</div>
</div>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
</el-card> </el-card>
<el-card class="box-card !border-none" shadow="never"> <el-card class="box-card !border-none" shadow="never">
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('urserName') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('urserName') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.username || t('notAvailable')}} {{ formData.username || t('notAvailable') }}
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('nickname') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('nickname') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.nickname || t('notAvailable')}} {{ formData.nickname || t('notAvailable') }}
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('mobile') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('mobile') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.mobile || t('notAvailable')}} {{ formData.mobile || t('notAvailable') }}
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('memberLabel') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('memberLabel') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.member_label_name.toString() || t('notAvailable')}}<el-icon @click="editMemberInfo('member_label')" class="-bottom-[2px] -right-[4px] cursor-pointer"><EditPen color="#273CE2"/></el-icon> {{ formData.member_label_name.toString() || t('notAvailable') }}<el-icon
@click="editMemberInfo('member_label')" class="-bottom-[2px] -right-[4px] cursor-pointer">
<EditPen color="#273CE2" />
</el-icon>
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('birthday') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('birthday') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.birthday || t('notAvailable')}}<el-icon @click="editMemberInfo('birthday')" class="-bottom-[2px] -right-[4px] cursor-pointer"><EditPen color="#273CE2"/></el-icon> {{ formData.birthday || t('notAvailable') }}<el-icon @click="editMemberInfo('birthday')"
class="-bottom-[2px] -right-[4px] cursor-pointer">
<EditPen color="#273CE2" />
</el-icon>
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('sex') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('sex') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.sex == 1 && t('manSex') || formData.sex == 2 && t('girlSex') || t('secrecySex')}}<el-icon @click="editMemberInfo('sex')" class="-bottom-[2px] -right-[4px] cursor-pointer"><EditPen color="#273CE2"/></el-icon> {{ formData.sex == 1 && t('manSex') || formData.sex == 2 && t('girlSex') || t('secrecySex') }}<el-icon
@click="editMemberInfo('sex')" class="-bottom-[2px] -right-[4px] cursor-pointer">
<EditPen color="#273CE2" />
</el-icon>
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('wxUnionid') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('wxUnionid') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.wx_unionid || t('notAvailable')}} {{ formData.wx_unionid || t('notAvailable') }}
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('weappOpenid') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('weappOpenid') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.weapp_openid || t('notAvailable')}} {{ formData.weapp_openid || t('notAvailable') }}
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('wxOpenid') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('wxOpenid') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.wx_openid || t('notAvailable')}} {{ formData.wx_openid || t('notAvailable') }}
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('registeredSource') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('registeredSource') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.register_channel_name || t('notAvailable')}} {{ formData.register_channel_name || t('notAvailable') }}
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('createTime') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('createTime') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.create_time || t('notAvailable')}} {{ formData.create_time || t('notAvailable') }}
</span> </span>
</div> </div>
<div class="flex items-center mt-[15px]"> <div class="flex items-center mt-[15px]">
<span class="text-[14px] w-[110px] text-right mr-[20px]">{{ t('lastVisitTime') }}</span> <span class="text-[14px] w-[130px] text-right mr-[20px]">{{ t('lastVisitTime') }}</span>
<span class="text-[14px] text-[#666666]"> <span class="text-[14px] text-[#666666]">
{{formData.last_visit_time || t('notAvailable')}} {{ formData.last_visit_time || t('notAvailable') }}
</span> </span>
</div> </div>
</el-card> </el-card>
<point-edit ref="pointDialog" @complete="getMemberInfoFn" /> <point-edit ref="pointDialog" @complete="getMemberInfoFn" />
<balance-edit ref="balanceDialog" @complete="getMemberInfoFn" /> <balance-edit ref="balanceDialog" @complete="getMemberInfoFn" />
<edit-member ref="editMemberDialog" @complete="getMemberInfoFn()" /> <edit-member ref="editMemberDialog" @complete="getMemberInfoFn()" />
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -241,7 +247,7 @@ import { reactive, ref, watch } from 'vue'
import { t } from '@/lang' import { t } from '@/lang'
import { getMemberInfo } from '@/api/member' import { getMemberInfo } from '@/api/member'
import { ElMessageBox, FormInstance, ElMessage } from 'element-plus' import { ElMessageBox, FormInstance, ElMessage } from 'element-plus'
import { useRouter,useRoute } from 'vue-router' import { useRouter, useRoute } from 'vue-router'
import { img } from '@/utils/common' import { img } from '@/utils/common'
import PointEdit from '@/views/member/components/member-point-edit.vue' import PointEdit from '@/views/member/components/member-point-edit.vue'
import BalanceEdit from '@/views/member/components/member-balance-edit.vue' import BalanceEdit from '@/views/member/components/member-balance-edit.vue'
@ -253,82 +259,80 @@ const route = useRoute()
const appStore = useAppStore() const appStore = useAppStore()
// //
appStore.pageReturn = true; appStore.pageReturn = true
watch(route, (newX,oldX) => { watch(route, (newX, oldX) => {
appStore.pageReturn = false; appStore.pageReturn = false
}); })
let loading = ref(true) const loading = ref(true)
// //
const id: number = parseInt(route.query.id || 0) const id: number = parseInt(route.query.id || 0)
const formData: any = reactive({member_label_name: ''}); const formData: any = reactive({ member_label_name: '' })
const getMemberInfoFn = async () => { const getMemberInfoFn = async () => {
loading.value = true; loading.value = true
if(id) { if (id) {
let data = await (await getMemberInfo(id)).data; const data = await (await getMemberInfo(id)).data
if(!data || Object.keys(data).length == 0){ if (!data || Object.keys(data).length == 0) {
ElMessage.error(t('memberNull')) ElMessage.error(t('memberNull'))
setTimeout(()=>{ setTimeout(() => {
router.go(-1); router.go(-1)
},2000) }, 2000)
return false; return false
} }
Object.keys(data).forEach((item)=>{ Object.keys(data).forEach((item) => {
formData[item] = data[item]; formData[item] = data[item]
}) })
if(formData?.member_label_array && Object.keys(formData.member_label_array)?.length ){ if (formData?.member_label_array && Object.keys(formData.member_label_array)?.length) {
formData.member_label = Object.values(formData.member_label_array).map((item:any,index)=>{ formData.member_label = Object.values(formData.member_label_array).map((item: any, index) => {
return item.label_id return item.label_id
}); })
formData.member_label_name = Object.values(formData.member_label_array).map((item:any,index)=>{ formData.member_label_name = Object.values(formData.member_label_array).map((item: any, index) => {
return item.label_name return item.label_name
}); })
} }
loading.value = false; loading.value = false
}else{ } else {
loading.value = false; loading.value = false
} }
} }
getMemberInfoFn(); getMemberInfoFn()
const pointDialog: Record<string, any> | null = ref(null) const pointDialog: Record<string, any> | null = ref(null)
const balanceDialog: Record<string, any> | null = ref(null) const balanceDialog: Record<string, any> | null = ref(null)
const editMemberDialog: Record<string, any> | null = ref(null) const editMemberDialog: Record<string, any> | null = ref(null)
/** /**
* 修改会员信息 * 修改会员信息
*/ */
const editMemberInfo = (type: any) => { const editMemberInfo = (type: any) => {
let data = ref({ const data = ref({
type, type,
id, id,
data: formData data: formData
}); })
editMemberDialog.value.setDialogType(data.value) editMemberDialog.value.setDialogType(data.value)
editMemberDialog.value.showDialog = true editMemberDialog.value.showDialog = true
} }
/** /**
* 调整积分 * 调整积分
*/ */
const adjustPoint = (data: any) => { const adjustPoint = (data: any) => {
pointDialog.value.setFormData(data) pointDialog.value.setFormData(data)
pointDialog.value.showDialog = true pointDialog.value.showDialog = true
} }
/** /**
* 调整余额 * 调整余额
*/ */
const adjustBalance = (data: any) => { const adjustBalance = (data: any) => {
balanceDialog.value.setFormData(data) balanceDialog.value.setFormData(data)
balanceDialog.value.showDialog = true balanceDialog.value.showDialog = true
} }
const router = useRouter() const router = useRouter()
@ -337,37 +341,38 @@ const router = useRouter()
* 积分详情 * 积分详情
*/ */
const infoPoint = () => { const infoPoint = () => {
router.push(`/member/point?id=${id}`) router.push(`/member/point?id=${id}`)
} }
/** /**
* 余额详情 * 余额详情
*/ */
const infoBalance = () => { const infoBalance = () => {
router.push(`/member/balance?id=${id}`) router.push(`/member/balance?id=${id}`)
} }
/** /**
* 佣金详情 * 佣金详情
*/ */
const infoCommission = () => { const infoCommission = () => {
router.push(`/member/commission?id=${id}`) router.push(`/member/commission?id=${id}`)
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.el-col { .el-col {
background-color: #FAFAFD; background-color: #FAFAFD;
} }
.member-info {
left:0px .member-info {
} left: 0px
.member-info-item { }
overflow:hidden;
white-space: nowrap; .member-info-item {
text-overflow: ellipsis; overflow: hidden;
-o-text-overflow:ellipsis; white-space: nowrap;
} text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
</style> </style>

View File

@ -12,7 +12,7 @@
<span class="text-base">{{payItems.name }}</span> <span class="text-base">{{payItems.name }}</span>
</div> </div>
<div class="pay-table"> <div class="pay-table">
<div class="flex items-center pay-table-head bg-[#fbfbfb] table-item-pd table-item-border justify-between"> <div class="flex items-center pay-table-head table-bg table-item-pd table-item-border justify-between table-bg">
<span class="text-base text-[#999] w-[150px]">{{t('payType')}}</span> <span class="text-base text-[#999] w-[150px]">{{t('payType')}}</span>
<!-- <span class="text-base font-bold text-[#999] w-[110px]">{{t('settingDefaultPay')}}</span> --> <!-- <span class="text-base font-bold text-[#999] w-[110px]">{{t('settingDefaultPay')}}</span> -->
<span class="text-base text-[#999] w-[110px] text-center">{{t('onState')}}</span> <span class="text-base text-[#999] w-[110px] text-center">{{t('onState')}}</span>
@ -220,4 +220,10 @@ const cancelFn = ()=>{
:deep(.box-pay-card) .el-card__body{ :deep(.box-pay-card) .el-card__body{
padding: 0; padding: 0;
} }
.table-bg{
background: #f5f7f9;
}
html.dark .table-bg{
background: #141414;
}
</style> </style>

View File

@ -28,7 +28,7 @@
</el-table> </el-table>
</div> </div>
<ali ref="aliDialog" @complete="loadSmsList()" /> <ali ref="aliyunDialog" @complete="loadSmsList()" />
<tencent ref="tencentDialog" @complete="loadSmsList()" /> <tencent ref="tencentDialog" @complete="loadSmsList()" />
</el-card> </el-card>
</div> </div>
@ -44,7 +44,7 @@ import { useRoute } from 'vue-router'
const route = useRoute() const route = useRoute()
const pageName = route.meta.title; const pageName = route.meta.title;
const aliDialog: Record<string, any> | null = ref(null) const aliyunDialog: Record<string, any> | null = ref(null)
const tencentDialog: Record<string, any> | null = ref(null) const tencentDialog: Record<string, any> | null = ref(null)
let smsTableData = reactive({ let smsTableData = reactive({

View File

@ -33,7 +33,7 @@
<storage-local ref="localDialog" @complete="loadStorageList()" /> <storage-local ref="localDialog" @complete="loadStorageList()" />
<storage-qiniu ref="qiniuDialog" @complete="loadStorageList()" /> <storage-qiniu ref="qiniuDialog" @complete="loadStorageList()" />
<storage-ali ref="aliDialog" @complete="loadStorageList()" /> <storage-ali ref="aliyunDialog" @complete="loadStorageList()" />
<storage-tencent ref="tencentDialog" @complete="loadStorageList()" /> <storage-tencent ref="tencentDialog" @complete="loadStorageList()" />
</el-card> </el-card>
</div> </div>
@ -53,7 +53,7 @@ const pageName = route.meta.title;
const localDialog: Record<string, any> | null = ref(null) const localDialog: Record<string, any> | null = ref(null)
const qiniuDialog: Record<string, any> | null = ref(null) const qiniuDialog: Record<string, any> | null = ref(null)
const aliDialog: Record<string, any> | null = ref(null) const aliyunDialog: Record<string, any> | null = ref(null)
const tencentDialog: Record<string, any> | null = ref(null) const tencentDialog: Record<string, any> | null = ref(null)
let storageTableData = reactive({ let storageTableData = reactive({

View File

@ -183,15 +183,8 @@ const save = async (formEl: FormInstance | undefined) => {
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.warm-prompt) { :deep(.warm-prompt) {
background-color: var(--el-color-primary-light-9) !important; .el-alert__description{
.el-icon, p { margin: 0;
color: var(--el-color-primary-light-3);
}
.el-alert__content{
padding: 0;
.el-alert__description{
margin: 0;
}
} }
} }
</style> </style>

View File

@ -10,6 +10,7 @@
<el-form-item :label="t('siteLogo')"> <el-form-item :label="t('siteLogo')">
<el-image v-if="formData.logo" class="w-20 h-20" :src="img(formData.logo)" fit="contain"></el-image> <el-image v-if="formData.logo" class="w-20 h-20" :src="img(formData.logo)" fit="contain"></el-image>
<img class="w-20 h-20" v-else src="@/assets/images/site_logo.png" alt="" >
</el-form-item> </el-form-item>
<el-form-item :label="t('groupName')"> <el-form-item :label="t('groupName')">

View File

@ -258,15 +258,8 @@ const openClose = (i, site_id) => {
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.warm-prompt) { :deep(.warm-prompt) {
background-color: var(--el-color-primary-light-9) !important; .el-alert__description{
.el-icon, p { margin: 0;
color: var(--el-color-primary-light-3);
}
.el-alert__content{
padding: 0;
.el-alert__description{
margin: 0;
}
} }
} }
</style> </style>