mirror of
https://gitee.com/niucloud-team/niucloud.git
synced 2025-12-12 09:57:20 +00:00
admin
This commit is contained in:
parent
2cf40a97f8
commit
ee1a7c20d6
1
admin/auto-imports.d.ts
vendored
1
admin/auto-imports.d.ts
vendored
@ -1,5 +1,6 @@
|
||||
// Generated by 'unplugin-auto-import'
|
||||
export {}
|
||||
declare global {
|
||||
const ElMessage: typeof import('element-plus/es')['ElMessage']
|
||||
const ElNotification: typeof import('element-plus/es')['ElNotification']
|
||||
}
|
||||
|
||||
14
admin/components.d.ts
vendored
14
admin/components.d.ts
vendored
@ -10,6 +10,7 @@ declare module '@vue/runtime-core' {
|
||||
Attachment: typeof import('./src/components/upload-attachment/attachment.vue')['default']
|
||||
DiyLink: typeof import('./src/components/diy-link/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']
|
||||
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
||||
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
|
||||
@ -17,13 +18,18 @@ declare module '@vue/runtime-core' {
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCard: typeof import('element-plus/es')['ElCard']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElCollapse: typeof import('element-plus/es')['ElCollapse']
|
||||
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
|
||||
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
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']
|
||||
ElDivider: typeof import('element-plus/es')['ElDivider']
|
||||
ElDrawer: typeof import('element-plus/es')['ElDrawer']
|
||||
ElDropdown: typeof import('element-plus/es')['ElDropdown']
|
||||
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
|
||||
@ -37,26 +43,34 @@ declare module '@vue/runtime-core' {
|
||||
ElImage: typeof import('element-plus/es')['ElImage']
|
||||
ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
|
||||
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']
|
||||
ElMenu: typeof import('element-plus/es')['ElMenu']
|
||||
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElOptionGroup: typeof import('element-plus/es')['ElOptionGroup']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElResult: typeof import('element-plus/es')['ElResult']
|
||||
ElRow: typeof import('element-plus/es')['ElRow']
|
||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||
ElSlider: typeof import('element-plus/es')['ElSlider']
|
||||
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']
|
||||
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
||||
ElTable: typeof import('element-plus/es')['ElTable']
|
||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||
ElTree: typeof import('element-plus/es')['ElTree']
|
||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||
Icon: typeof import('./src/components/icon/index.vue')['default']
|
||||
PopoverInput: typeof import('./src/components/popover-input/index.vue')['default']
|
||||
|
||||
@ -22,7 +22,7 @@ export function getAddonDetial(id: number) {
|
||||
* @returns
|
||||
*/
|
||||
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
|
||||
*/
|
||||
export function executeInstall(addon: string) {
|
||||
return request.post(`addon/install/execute/${addon}`, {}, { showErrorMessage: true })
|
||||
return request.post(`addon/install/execute/${addon}`, {})
|
||||
}
|
||||
@ -21,8 +21,8 @@
|
||||
"sexPlaceholder": "请选择性别",
|
||||
"headimg": "会员头像",
|
||||
"wxUnionid": "微信unionid",
|
||||
"weappOpenid": "微信用户openid",
|
||||
"wxOpenid": "微信小程openid",
|
||||
"weappOpenid": "微信公众号openid",
|
||||
"wxOpenid": "微信小程序openid",
|
||||
"memberLabel": "会员标签",
|
||||
"memberLabelPlaceholder": "请选择会员标签",
|
||||
"nickNamePlaceholder": "请输入会员名称",
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
"contactAddress": "联系地址",
|
||||
"address": "详细地址",
|
||||
"contactAddressPlaceholder":"联系地址",
|
||||
"keywords":"关键字",
|
||||
"keywordsPlaceholder": "网站关键字",
|
||||
"logoPlaceholder": "网站Logo",
|
||||
"descPlaceholder": "网站简介",
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<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" >
|
||||
<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">
|
||||
@ -9,7 +9,7 @@
|
||||
<img v-else class="w-[240px] h-[120px]" src="@/assets/images/app_default.png"/>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
@ -60,6 +60,9 @@ const toLink = (link) => {
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow:ellipsis;
|
||||
}
|
||||
.main {
|
||||
background-color: var(--el-bg-color-overlay);
|
||||
}
|
||||
.app-item {
|
||||
// box-shadow: 0px 6px 18px 0px rgba(82,129,187,0.1);
|
||||
}
|
||||
|
||||
@ -167,7 +167,7 @@
|
||||
v-if="!installCheckResult.job_normal" />
|
||||
<p class="pt-[20px] pl-[20px] ">{{ t('dirPermission') }}</p>
|
||||
<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">
|
||||
<span>{{ t('path') }}</span>
|
||||
</el-col>
|
||||
@ -178,7 +178,7 @@
|
||||
<span>{{ t('status') }}</span>
|
||||
</el-col>
|
||||
</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">
|
||||
<span>{{ item.dir }}</span>
|
||||
</el-col>
|
||||
@ -192,7 +192,7 @@
|
||||
</el-icon></span>
|
||||
</el-col>
|
||||
</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">
|
||||
<span>{{ item.dir }}</span>
|
||||
</el-col>
|
||||
@ -211,7 +211,7 @@
|
||||
<div class="bg-[#fff] my-3" v-if="installCheckResult.dir">
|
||||
<p class="pl-[20px] ">{{ t('packageManageTool') }}</p>
|
||||
<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">
|
||||
<span>{{ t('name') }}</span>
|
||||
</el-col>
|
||||
@ -222,7 +222,7 @@
|
||||
<span>{{ t('status') }}</span>
|
||||
</el-col>
|
||||
</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">
|
||||
<span>{{ item.name }}</span>
|
||||
</el-col>
|
||||
@ -241,7 +241,7 @@
|
||||
<div class="bg-[#fff] my-3"
|
||||
v-if="installCheckResult.conflict_files && installCheckResult.conflict_files.length">
|
||||
<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-col :span="24">
|
||||
<span>{{ item }}</span>
|
||||
@ -252,7 +252,7 @@
|
||||
<div class="bg-[#fff] my-3">
|
||||
<p class="pl-[20px] ">{{ t('process') }}</p>
|
||||
<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">
|
||||
<span>{{ t('name') }}</span>
|
||||
</el-col>
|
||||
@ -263,7 +263,7 @@
|
||||
<span>{{ t('status') }}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="pb-[10px] items">
|
||||
<el-row class="pb-[10px] items pl-[15px]">
|
||||
<el-col :span="12">
|
||||
<span>php think queue:listen</span>
|
||||
</el-col>
|
||||
@ -545,4 +545,12 @@ const getAddonDetialFn = (data: AnyObject) => {
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
// 插件安装-弹窗-表格样式
|
||||
.table-head-bg{
|
||||
background: #f5f7f9;
|
||||
}
|
||||
html.dark .table-head-bg{
|
||||
background: #141414;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -2,10 +2,10 @@
|
||||
<div class="main-container">
|
||||
<el-card class="box-card !border-none" shadow="never">
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-[24px]">{{pageName}}</span>
|
||||
<el-button type="primary" class="w-[100px]" @click="addEvent">
|
||||
<span class="text-[24px]">{{ pageName }}</span>
|
||||
<!-- <el-button type="primary" class="w-[100px]" @click="addEvent">
|
||||
{{ t('addMenu') }}
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
</div>
|
||||
|
||||
<div class="mt-[20px]">
|
||||
@ -40,8 +40,8 @@
|
||||
<el-table-column prop="create_time" :label="t('createTime')" width="180" />
|
||||
<el-table-column :label="t('operation')" fixed="right" width="130">
|
||||
<template #default="{ row }">
|
||||
<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="primary" link @click="editEvent(row)">{{ t('edit') }}</el-button>
|
||||
<el-button type="danger" link @click="deleteEvent(row.menu_key)">{{ t('delete') }}</el-button> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -60,7 +60,7 @@ import { ElMessageBox } from 'element-plus'
|
||||
import EditMenu from '@/views/auth/components/edit-menu.vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
const route = useRoute()
|
||||
const pageName = route.meta.title;
|
||||
const pageName = route.meta.title
|
||||
|
||||
const menusTableData = reactive({
|
||||
loading: true,
|
||||
@ -87,7 +87,7 @@ getMenuList()
|
||||
const editMenuDialog: Record<string, any> | null = ref(null)
|
||||
|
||||
const addEvent = () => {
|
||||
editMenuDialog.value.setFormData({app_type:'admin'})
|
||||
editMenuDialog.value.setFormData({ app_type: 'admin' })
|
||||
editMenuDialog.value.showDialog = true
|
||||
}
|
||||
|
||||
|
||||
@ -3,10 +3,10 @@
|
||||
<el-card class="box-card !border-none" shadow="never">
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-[24px]">{{pageName}}</span>
|
||||
<el-button type="primary" class="w-[100px]" @click="addEvent">
|
||||
<span class="text-[24px]">{{ pageName }}</span>
|
||||
<!-- <el-button type="primary" class="w-[100px]" @click="addEvent">
|
||||
{{ t('addMenu') }}
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
</div>
|
||||
|
||||
<div class="mt-[20px]">
|
||||
@ -41,8 +41,8 @@
|
||||
<el-table-column prop="create_time" :label="t('createTime')" width="180" />
|
||||
<el-table-column :label="t('operation')" fixed="right" width="130">
|
||||
<template #default="{ row }">
|
||||
<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="primary" link @click="editEvent(row)">{{ t('edit') }}</el-button>
|
||||
<el-button type="danger" link @click="deleteEvent(row.menu_key)">{{ t('delete') }}</el-button> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -61,7 +61,7 @@ import { ElMessageBox } from 'element-plus'
|
||||
import EditMenu from '@/views/auth/components/edit-menu.vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
const route = useRoute()
|
||||
const pageName = route.meta.title;
|
||||
const pageName = route.meta.title
|
||||
|
||||
const menusTableData = reactive({
|
||||
loading: true,
|
||||
@ -88,7 +88,7 @@ getMenuList()
|
||||
const editMenuDialog: Record<string, any> | null = ref(null)
|
||||
|
||||
const addEvent = () => {
|
||||
editMenuDialog.value.setFormData({app_type:'site'})
|
||||
editMenuDialog.value.setFormData({ app_type: 'site' })
|
||||
editMenuDialog.value.showDialog = true
|
||||
}
|
||||
|
||||
|
||||
@ -126,14 +126,4 @@ const infoSwitch = (res) => {
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
: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>
|
||||
<style lang="scss" scoped></style>
|
||||
|
||||
@ -132,14 +132,4 @@ const infoSwitch = (res: AnyObject) => {
|
||||
}
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
: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>
|
||||
<style lang="scss" scoped></style>
|
||||
|
||||
@ -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(() => {
|
||||
|
||||
@ -67,7 +67,7 @@
|
||||
</div>
|
||||
</el-col>
|
||||
<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"/>
|
||||
<span class="ml-[10px] text-[16px] text-[#666]">{{t('appMarketplace')}}</span>
|
||||
</div>
|
||||
|
||||
@ -1,239 +1,245 @@
|
||||
<template>
|
||||
<div class="main-container" v-loading="loading">
|
||||
<el-card class="box-card !border-none mt-[16px]" shadow="never">
|
||||
<div class="card-header mb-5 pb-[10px] border-b-[1px] border-[#EDEDED]">
|
||||
<span class="font-bold text-[18px] text-[#333333]">{{t('essentialInfo')}}</span>
|
||||
</div>
|
||||
<div class="main-container" v-loading="loading">
|
||||
<el-card class="box-card !border-none mt-[16px]" shadow="never">
|
||||
<div class="card-header mb-5 pb-[10px] border-b-[1px] border-[#EDEDED]">
|
||||
<span class="font-bold text-[18px] text-[#333333]">{{ t('essentialInfo') }}</span>
|
||||
</div>
|
||||
<div class="bg-[#FAFAFD] py-[20px] pr-[80px] pl-[280px] relative">
|
||||
<div class="member-info absolute w-[250px]">
|
||||
<div class="flex items-center">
|
||||
<span class="text-[14px] min-w-[110px] text-right mr-[20px]">{{ t('headimg') }}</span>
|
||||
<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-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>
|
||||
<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-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>
|
||||
</div>
|
||||
<div class="flex items-center mt-[20px]">
|
||||
<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]">
|
||||
{{formData.member_no || t('notAvailable')}}
|
||||
{{ formData.member_no || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<el-row justify="space-evenly" class="flex">
|
||||
<el-col :span="5">
|
||||
<div class="statistic-card">
|
||||
<el-statistic :value="formData.point">
|
||||
<template #title>
|
||||
<div style="display: inline-flex; align-items: center">
|
||||
<el-col :span="5">
|
||||
<div class="statistic-card">
|
||||
<el-statistic :value="formData.point">
|
||||
<template #title>
|
||||
<div style="display: inline-flex; align-items: center">
|
||||
<span class="text-[14px]">
|
||||
{{t('point')}}
|
||||
{{ t('point') }}
|
||||
</span>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="t('adjust')"
|
||||
placement="top"
|
||||
|
||||
>
|
||||
<el-icon @click="adjustPoint(formData)" class="ml-2 cursor-pointer" :size="12"><EditPen color="#273CE2"/></el-icon>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="t('detail')"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon @click="infoPoint(formData)" class="ml-2 cursor-pointer" :size="12"><View /></el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</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.point_get}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<div class="statistic-card">
|
||||
<el-statistic :value="formData.balance">
|
||||
<template #title>
|
||||
<div style="display: inline-flex; align-items: center">
|
||||
<el-tooltip effect="dark" :content="t('adjust')" placement="top">
|
||||
<el-icon @click="adjustPoint(formData)" class="ml-2 cursor-pointer"
|
||||
:size="12">
|
||||
<EditPen color="#273CE2" />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
<el-tooltip effect="dark" :content="t('detail')" placement="top">
|
||||
<el-icon @click="infoPoint(formData)" class="ml-2 cursor-pointer"
|
||||
:size="12">
|
||||
<View />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</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.point_get }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<div class="statistic-card">
|
||||
<el-statistic :value="formData.balance">
|
||||
<template #title>
|
||||
<div style="display: inline-flex; align-items: center">
|
||||
<span class="text-[14px]">
|
||||
{{t('balance')}}
|
||||
{{ t('balance') }}
|
||||
</span>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="t('adjust')"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon @click="adjustBalance(formData)" class="ml-2 cursor-pointer" :size="12"><EditPen color="#273CE2"/></el-icon>
|
||||
</el-tooltip>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="t('detail')"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon @click="infoBalance(formData)" class="ml-2 cursor-pointer" :size="12"><View /></el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</template>
|
||||
</el-statistic>
|
||||
<div class="statistic-footer">
|
||||
<div class="footer-item text-[14px] text-[#333333]">
|
||||
<span>{{t('accumulative')}}</span>
|
||||
<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")}}
|
||||
<el-tooltip effect="dark" :content="t('adjust')" placement="top">
|
||||
<el-icon @click="adjustBalance(formData)" class="ml-2 cursor-pointer"
|
||||
:size="12">
|
||||
<EditPen color="#273CE2" />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
<el-tooltip effect="dark" :content="t('detail')" placement="top">
|
||||
<el-icon @click="infoBalance(formData)" class="ml-2 cursor-pointer"
|
||||
:size="12">
|
||||
<View />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</template>
|
||||
</el-statistic>
|
||||
<div class="statistic-footer">
|
||||
<div class="footer-item text-[14px] text-[#333333]">
|
||||
<span>{{ t('accumulative') }}</span>
|
||||
<span class="red ml-1">
|
||||
{{ formData.balance_get }}
|
||||
</span>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="t('detail')"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon @click="infoBalance(formData)" class="ml-2 cursor-pointer" :size="12"><View/></el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</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.money_get}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<div class="statistic-card">
|
||||
<el-statistic :value="formData.commission" title="New transactions today">
|
||||
<template #title>
|
||||
<div style="display: inline-flex; align-items: center ">
|
||||
<span class="text-[14px]">
|
||||
{{t("commission")}}
|
||||
</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>
|
||||
<el-tooltip effect="dark" :content="t('detail')" placement="top">
|
||||
<el-icon @click="infoBalance(formData)" class="ml-2 cursor-pointer"
|
||||
:size="12">
|
||||
<View />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</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.money_get }}
|
||||
</span>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="t('detail')"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon @click="infoCommission(formData)" class="ml-2 cursor-pointer" :size="12"><View/></el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<div class="statistic-card">
|
||||
<el-statistic :value="formData.commission" title="New transactions today">
|
||||
<template #title>
|
||||
<div style="display: inline-flex; align-items: center ">
|
||||
<span class="text-[14px]">
|
||||
{{ t("commission") }}
|
||||
</span>
|
||||
<el-tooltip effect="dark" :content="t('detail')" placement="top">
|
||||
<el-icon @click="infoCommission(formData)" class="ml-2 cursor-pointer"
|
||||
:size="12">
|
||||
<View />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</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>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-card>
|
||||
<el-card class="box-card !border-none" shadow="never">
|
||||
<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]">
|
||||
{{formData.username || t('notAvailable')}}
|
||||
{{ formData.username || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
<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]">
|
||||
{{formData.nickname || t('notAvailable')}}
|
||||
{{ formData.nickname || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<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]">
|
||||
{{formData.mobile || t('notAvailable')}}
|
||||
{{ formData.mobile || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
<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]">
|
||||
{{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>
|
||||
</div>
|
||||
<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]">
|
||||
{{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>
|
||||
</div>
|
||||
<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]">
|
||||
{{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>
|
||||
</div>
|
||||
<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]">
|
||||
{{formData.wx_unionid || t('notAvailable')}}
|
||||
{{ formData.wx_unionid || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
<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]">
|
||||
{{formData.weapp_openid || t('notAvailable')}}
|
||||
{{ formData.weapp_openid || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
<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]">
|
||||
{{formData.wx_openid || t('notAvailable')}}
|
||||
{{ formData.wx_openid || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
<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]">
|
||||
{{formData.register_channel_name || t('notAvailable')}}
|
||||
{{ formData.register_channel_name || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
<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]">
|
||||
{{formData.create_time || t('notAvailable')}}
|
||||
{{ formData.create_time || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
<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]">
|
||||
{{formData.last_visit_time || t('notAvailable')}}
|
||||
{{ formData.last_visit_time || t('notAvailable') }}
|
||||
</span>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<point-edit ref="pointDialog" @complete="getMemberInfoFn" />
|
||||
<balance-edit ref="balanceDialog" @complete="getMemberInfoFn" />
|
||||
<edit-member ref="editMemberDialog" @complete="getMemberInfoFn()" />
|
||||
</div>
|
||||
<point-edit ref="pointDialog" @complete="getMemberInfoFn" />
|
||||
<balance-edit ref="balanceDialog" @complete="getMemberInfoFn" />
|
||||
<edit-member ref="editMemberDialog" @complete="getMemberInfoFn()" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
@ -241,7 +247,7 @@ import { reactive, ref, watch } from 'vue'
|
||||
import { t } from '@/lang'
|
||||
import { getMemberInfo } from '@/api/member'
|
||||
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 PointEdit from '@/views/member/components/member-point-edit.vue'
|
||||
import BalanceEdit from '@/views/member/components/member-balance-edit.vue'
|
||||
@ -253,82 +259,80 @@ const route = useRoute()
|
||||
const appStore = useAppStore()
|
||||
|
||||
// 页面返回按钮
|
||||
appStore.pageReturn = true;
|
||||
watch(route, (newX,oldX) => {
|
||||
appStore.pageReturn = false;
|
||||
});
|
||||
appStore.pageReturn = true
|
||||
watch(route, (newX, oldX) => {
|
||||
appStore.pageReturn = false
|
||||
})
|
||||
|
||||
let loading = ref(true)
|
||||
const loading = ref(true)
|
||||
|
||||
// 获取会员信息
|
||||
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 () => {
|
||||
loading.value = true;
|
||||
if(id) {
|
||||
let data = await (await getMemberInfo(id)).data;
|
||||
if(!data || Object.keys(data).length == 0){
|
||||
ElMessage.error(t('memberNull'))
|
||||
setTimeout(()=>{
|
||||
router.go(-1);
|
||||
},2000)
|
||||
return false;
|
||||
}
|
||||
loading.value = true
|
||||
if (id) {
|
||||
const data = await (await getMemberInfo(id)).data
|
||||
if (!data || Object.keys(data).length == 0) {
|
||||
ElMessage.error(t('memberNull'))
|
||||
setTimeout(() => {
|
||||
router.go(-1)
|
||||
}, 2000)
|
||||
return false
|
||||
}
|
||||
|
||||
Object.keys(data).forEach((item)=>{
|
||||
formData[item] = data[item];
|
||||
})
|
||||
Object.keys(data).forEach((item) => {
|
||||
formData[item] = data[item]
|
||||
})
|
||||
|
||||
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)=>{
|
||||
return item.label_id
|
||||
});
|
||||
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) => {
|
||||
return item.label_id
|
||||
})
|
||||
|
||||
formData.member_label_name = Object.values(formData.member_label_array).map((item:any,index)=>{
|
||||
return item.label_name
|
||||
});
|
||||
}
|
||||
loading.value = false;
|
||||
}else{
|
||||
loading.value = false;
|
||||
}
|
||||
formData.member_label_name = Object.values(formData.member_label_array).map((item: any, index) => {
|
||||
return item.label_name
|
||||
})
|
||||
}
|
||||
loading.value = false
|
||||
} else {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
getMemberInfoFn();
|
||||
|
||||
getMemberInfoFn()
|
||||
|
||||
const pointDialog: Record<string, any> | null = ref(null)
|
||||
const balanceDialog: Record<string, any> | null = ref(null)
|
||||
const editMemberDialog: Record<string, any> | null = ref(null)
|
||||
|
||||
|
||||
/**
|
||||
* 修改会员信息
|
||||
*/
|
||||
const editMemberInfo = (type: any) => {
|
||||
let data = ref({
|
||||
type,
|
||||
id,
|
||||
data: formData
|
||||
});
|
||||
editMemberDialog.value.setDialogType(data.value)
|
||||
editMemberDialog.value.showDialog = true
|
||||
const editMemberInfo = (type: any) => {
|
||||
const data = ref({
|
||||
type,
|
||||
id,
|
||||
data: formData
|
||||
})
|
||||
editMemberDialog.value.setDialogType(data.value)
|
||||
editMemberDialog.value.showDialog = true
|
||||
}
|
||||
|
||||
/**
|
||||
* 调整积分
|
||||
*/
|
||||
const adjustPoint = (data: any) => {
|
||||
pointDialog.value.setFormData(data)
|
||||
pointDialog.value.showDialog = true
|
||||
const adjustPoint = (data: any) => {
|
||||
pointDialog.value.setFormData(data)
|
||||
pointDialog.value.showDialog = true
|
||||
}
|
||||
|
||||
/**
|
||||
* 调整余额
|
||||
*/
|
||||
const adjustBalance = (data: any) => {
|
||||
balanceDialog.value.setFormData(data)
|
||||
balanceDialog.value.showDialog = true
|
||||
const adjustBalance = (data: any) => {
|
||||
balanceDialog.value.setFormData(data)
|
||||
balanceDialog.value.showDialog = true
|
||||
}
|
||||
|
||||
const router = useRouter()
|
||||
@ -337,37 +341,38 @@ const router = useRouter()
|
||||
* 积分详情
|
||||
*/
|
||||
const infoPoint = () => {
|
||||
router.push(`/member/point?id=${id}`)
|
||||
router.push(`/member/point?id=${id}`)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 余额详情
|
||||
*/
|
||||
const infoBalance = () => {
|
||||
router.push(`/member/balance?id=${id}`)
|
||||
const infoBalance = () => {
|
||||
router.push(`/member/balance?id=${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 佣金详情
|
||||
*/
|
||||
const infoCommission = () => {
|
||||
router.push(`/member/commission?id=${id}`)
|
||||
const infoCommission = () => {
|
||||
router.push(`/member/commission?id=${id}`)
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-col {
|
||||
background-color: #FAFAFD;
|
||||
}
|
||||
.member-info {
|
||||
left:0px
|
||||
}
|
||||
.member-info-item {
|
||||
overflow:hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow:ellipsis;
|
||||
}
|
||||
.el-col {
|
||||
background-color: #FAFAFD;
|
||||
}
|
||||
|
||||
.member-info {
|
||||
left: 0px
|
||||
}
|
||||
|
||||
.member-info-item {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<span class="text-base">{{payItems.name }}</span>
|
||||
</div>
|
||||
<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 font-bold text-[#999] w-[110px]">{{t('settingDefaultPay')}}</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{
|
||||
padding: 0;
|
||||
}
|
||||
.table-bg{
|
||||
background: #f5f7f9;
|
||||
}
|
||||
html.dark .table-bg{
|
||||
background: #141414;
|
||||
}
|
||||
</style>
|
||||
@ -28,7 +28,7 @@
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<ali ref="aliDialog" @complete="loadSmsList()" />
|
||||
<ali ref="aliyunDialog" @complete="loadSmsList()" />
|
||||
<tencent ref="tencentDialog" @complete="loadSmsList()" />
|
||||
</el-card>
|
||||
</div>
|
||||
@ -44,7 +44,7 @@ import { useRoute } from 'vue-router'
|
||||
const route = useRoute()
|
||||
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)
|
||||
|
||||
let smsTableData = reactive({
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
|
||||
<storage-local ref="localDialog" @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()" />
|
||||
</el-card>
|
||||
</div>
|
||||
@ -53,7 +53,7 @@ const pageName = route.meta.title;
|
||||
|
||||
const localDialog: 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)
|
||||
|
||||
let storageTableData = reactive({
|
||||
|
||||
@ -183,15 +183,8 @@ const save = async (formEl: FormInstance | undefined) => {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
: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;
|
||||
.el-alert__description{
|
||||
margin: 0;
|
||||
}
|
||||
.el-alert__description{
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
|
||||
<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>
|
||||
<img class="w-20 h-20" v-else src="@/assets/images/site_logo.png" alt="" >
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="t('groupName')">
|
||||
|
||||
@ -258,15 +258,8 @@ const openClose = (i, site_id) => {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
: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;
|
||||
.el-alert__description{
|
||||
margin: 0;
|
||||
}
|
||||
.el-alert__description{
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user