This commit is contained in:
全栈小学生 2023-06-02 19:11:21 +08:00
parent 8cd76874c5
commit c59d011d1e
2 changed files with 50 additions and 47 deletions

View File

@ -46,7 +46,7 @@ router.beforeEach(async (to, from, next) => {
if (matched && matched.length && matched[0].path != '/:pathMatch(.*)*') { if (matched && matched.length && matched[0].path != '/:pathMatch(.*)*') {
matched = matched[0].path; matched = matched[0].path;
} else { } else {
matched = 'site'; matched = getAppType();
} }
const loginPath = to.path == '/' ? '/admin/login' : `${matched}/login` const loginPath = to.path == '/' ? '/admin/login' : `${matched}/login`

View File

@ -3,7 +3,7 @@
<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('addSite') }} {{ t('addSite') }}
</el-button> </el-button>
@ -53,8 +53,11 @@
<el-alert class="warm-prompt" type="info"> <el-alert class="warm-prompt" type="info">
<template #default> <template #default>
<div class="flex items-center"> <div class="flex items-center">
<el-icon class="mr-2" size="18"><Warning /></el-icon> <el-icon class="mr-2" size="18">
<p class="text-base">{{ t('operationTip') }} <span class="cursor-pointer" @click="toSiteLink">{{siteLink }}</span> </p> <Warning />
</el-icon>
<p class="text-base">{{ t('operationTip') }} <span class="cursor-pointer" @click="toSiteLink">{{
siteLink }}</span> </p>
</div> </div>
</template> </template>
</el-alert> </el-alert>
@ -65,32 +68,30 @@
<template #empty> <template #empty>
<span>{{ !siteTableData.loading ? t('emptyData') : '' }}</span> <span>{{ !siteTableData.loading ? t('emptyData') : '' }}</span>
</template> </template>
<el-table-column prop="site_id" :label="t('siteId')" min-width="80" <el-table-column prop="site_id" :label="t('siteId')" min-width="80" :show-overflow-tooltip="true" />
:show-overflow-tooltip="true" />
<el-table-column :label="t('siteInfo')" min-width="180" align="left"> <el-table-column :label="t('siteInfo')" min-width="180" align="left">
<template #default="{ row }"> <template #default="{ row }">
<div class="flex items-center"> <div class="flex items-center">
<img class="w-[50px] h-[50px] mr-[10px]" v-if="row.logo" :src="img(row.logo)" alt="" > <img class="w-[50px] h-[50px] mr-[10px]" v-if="row.logo" :src="img(row.logo)" alt="">
<img class="w-[50px] h-[50px] mr-[10px]" v-else src="@/assets/images/site_logo.png" alt="" > <img class="w-[50px] h-[50px] mr-[10px]" v-else src="@/assets/images/site_logo.png" alt="">
<div class="flex flex flex-col"> <div class="flex flex flex-col">
<span>{{ row.site_name || '' }}</span> <span>{{ row.site_name || '' }}</span>
</div> </div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="group_name" :label="t('groupId')" min-width="80" <el-table-column prop="group_name" :label="t('groupId')" min-width="80" :show-overflow-tooltip="true" />
:show-overflow-tooltip="true" />
<el-table-column :label="t('status')" min-width="80" align="center"> <el-table-column :label="t('status')" min-width="80" align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-tag class="ml-2" type="success" v-if="row.status == 1">{{ row.status_name }}</el-tag> <el-tag class="ml-2" type="success" v-if="row.status == 1">{{ row.status_name }}</el-tag>
<el-tag class="ml-2" type="error" v-else-if="row.status == 3"> <el-tag class="ml-2" type="error" v-else-if="row.status == 3">
{{ row.status_name }} {{ row.status_name }}
</el-tag> </el-tag>
<el-tag class="ml-2" type="error" v-else> <el-tag class="ml-2" type="error" v-else>
{{ row.status_name }} {{ row.status_name }}
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="create_time" :label="t('createTime')" min-width="140" <el-table-column prop="create_time" :label="t('createTime')" min-width="140"
@ -107,10 +108,12 @@
<template #default="{ row }"> <template #default="{ row }">
<el-button type="primary" link @click="urlEvent(row)">{{ t('url') }}</el-button> <el-button type="primary" link @click="urlEvent(row)">{{ t('url') }}</el-button>
<el-button type="primary" link @click="infoEvent(row)">{{ t('info') }}</el-button> <el-button type="primary" link @click="infoEvent(row)">{{ t('info') }}</el-button>
<el-button type="primary" link @click="openClose(row.status, row.site_id)" v-if="row.status == 1 || row.status == 3">{{ row.status == 1 ? t('closeTxt') : t('openTxt') }}</el-button> <el-button type="primary" link @click="openClose(row.status, row.site_id)"
v-if="row.status == 1 || row.status == 3">{{ row.status == 1 ? t('closeTxt') : t('openTxt')
}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="mt-[16px] flex justify-end"> <div class="mt-[16px] flex justify-end">
<el-pagination v-model:current-page="siteTableData.page" v-model:page-size="siteTableData.limit" <el-pagination v-model:current-page="siteTableData.page" v-model:page-size="siteTableData.limit"
@ -126,13 +129,14 @@
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, ref } from 'vue' import { reactive, ref } from 'vue'
import { img } from '@/utils/common'
import { t } from '@/lang' import { t } from '@/lang'
import { getSiteList, getSiteGroupAll, getStatusList, closeSite, openSite } from '@/api/site' import { getSiteList, getSiteGroupAll, getStatusList, closeSite, openSite } from '@/api/site'
import { FormInstance } from 'element-plus' import { FormInstance } from 'element-plus'
import { useRouter, useRoute } from 'vue-router' import { useRouter, useRoute } from 'vue-router'
import EditSite from '@/views/site/components/edit-site.vue' import EditSite from '@/views/site/components/edit-site.vue'
const route = useRoute() const route = useRoute()
const pageName = route.meta.title; const pageName = route.meta.title
const siteLink = location.origin + '/site/login' const siteLink = location.origin + '/site/login'
@ -169,11 +173,11 @@ setStatusList()
const searchFormRef = ref<FormInstance>() const searchFormRef = ref<FormInstance>()
const resetForm = (formEl: FormInstance | undefined)=>{ const resetForm = (formEl: FormInstance | undefined) => {
if (!formEl) return if (!formEl) return
formEl.resetFields(); formEl.resetFields()
loadSiteList(); loadSiteList()
} }
/** /**
@ -216,17 +220,16 @@ const infoEvent = (data: any) => {
router.push('/admin/site/info?id=' + data.site_id) router.push('/admin/site/info?id=' + data.site_id)
} }
/** /**
* 站点域名 * 站点域名
* @param data * @param data
*/ */
const urlEvent = (data: any) => { const urlEvent = (data: any) => {
ElMessage({ ElMessage({
message: t('siteUrlDevelopMessage') , message: t('siteUrlDevelopMessage'),
grouping: true, grouping: true,
type: 'success', type: 'success'
}) })
} }
const toLink = (link) => { const toLink = (link) => {
@ -242,23 +245,23 @@ const toSiteLink = () => {
} }
const openClose = (i, site_id) => { const openClose = (i, site_id) => {
if(i == 1) { if (i == 1) {
closeSite({site_id}).then(res=>{ closeSite({ site_id }).then(res => {
loadSiteList() loadSiteList()
}) })
} }
if(i == 3) { if (i == 3) {
openSite({site_id}).then(res=>{ openSite({ site_id }).then(res => {
loadSiteList() loadSiteList()
}) })
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.warm-prompt) { :deep(.warm-prompt) {
.el-alert__description{ .el-alert__description {
margin: 0; margin: 0;
} }
} }