完善页面细节

This commit is contained in:
2026-02-25 11:39:54 +08:00
parent 92d6e8144d
commit 8ec05b331b
131 changed files with 5273 additions and 585 deletions

View File

@@ -17,7 +17,7 @@ import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
</script>
<style scoped>
.page { padding: 16px; }
.page { padding: 0; }
.title { font-size: 18px; font-weight: 600; }
.tip { color: #999; margin-top: 8px; display: block; }
</style>

View File

@@ -14,7 +14,7 @@
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
</script>
<style scoped>
.page { padding: 16px; }
.page { padding: 0; }
.title { font-size: 18px; font-weight: 600; }
.tip { color: #999; margin-top: 8px; display: block; }
</style>

View File

@@ -14,7 +14,7 @@
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
</script>
<style scoped>
.page { padding: 16px; }
.page { padding: 0; }
.title { font-size: 18px; font-weight: 600; }
.tip { color: #999; margin-top: 8px; display: block; }
</style>

View File

@@ -1,25 +1,26 @@
<template>
<view class="admin-page">
<view class="admin-sections">
<!-- 搜索栏 -->
<view class="admin-card filter-card">
<view class="filter-row">
<view class="filter-item">
<text class="label">数据搜索:</text>
<input class="filter-input input-large" placeholder="请输入ID,KEY,数据组名称,简介" />
<AdminLayout current-page="maintain_dev_data">
<view class="admin-page">
<view class="admin-sections">
<!-- 搜索栏 -->
<view class="admin-card filter-card">
<view class="filter-row">
<view class="filter-item">
<text class="label">数据搜索:</text>
<input class="filter-input input-large" placeholder="请输入ID,KEY,数据组名称,简介" />
</view>
<button class="btn primary" @click="onSearch">查询</button>
</view>
<button class="btn primary" @click="onSearch">查询</button>
</view>
</view>
<!-- 内容区 -->
<view class="admin-card content-card">
<!-- 操作按钮行 -->
<view class="action-bar">
<button class="btn primary small" @click="onAdd">添加数据组</button>
</view>
<!-- 表格 -->
<!-- 内容区 -->
<view class="admin-card content-card">
<!-- 操作按钮行 -->
<view class="action-bar">
<button class="btn primary small" @click="onAdd">添加数据组</button>
</view>
<!-- 表格 -->
<view class="table-container">
<view class="table-header">
<view class="col col-id"><text>ID</text></view>
@@ -48,10 +49,12 @@
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import { ref } from 'vue'
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
const dataList = ref([
{ id: 49, key: 'routine_seckill_time', name: '秒杀时间段', desc: '秒杀时间段' },
@@ -101,7 +104,9 @@ function onDelete(item: any) {
<style scoped lang="scss">
.admin-page {
/* 使用 Layout 的背景和内边距 */
min-height: 100vh;
padding: 0;
background-color: transparent;
min-height: auto;
}
.admin-card {

View File

@@ -1,23 +1,24 @@
<template>
<view class="admin-page">
<view class="admin-sections">
<!-- 顶部通知 -->
<view class="admin-card alert-card">
<view class="alert-content">
<text class="alert-title">启动定时任务两种方式:</text>
<text class="alert-desc">1、使用命令行启动php think timer start --d; 如果更改了执行周期、编辑是否开启、删除定时任务需要重新启动定时任务确保生效;</text>
<text class="alert-desc">2、使用接口触发定时任务,建议每分钟调用一次,接口地址 https://v5.crmeb.net/api/crontab/run</text>
</view>
</view>
<!-- 操作卡片 -->
<view class="admin-card content-card">
<view class="tabs-row">
<view class="tab-item active"><text>系统任务</text></view>
<view class="tab-item"><text>自定义任务</text></view>
<AdminLayout current-page="maintain_dev_task">
<view class="admin-page">
<view class="admin-sections">
<!-- 顶部通知 -->
<view class="admin-card alert-card">
<view class="alert-content">
<text class="alert-title">启动定时任务两种方式:</text>
<text class="alert-desc">1、使用命令行启动php think timer start --d; 如果更改了执行周期、编辑是否开启、删除定时任务需要重新启动下定时任务确保生效;</text>
<text class="alert-desc">2、使用接口触发定时任务建议每分钟调用一次接口地址 https://v5.crmeb.net/api/crontab/run</text>
</view>
</view>
<!-- 表格 -->
<!-- 操作卡片 -->
<view class="admin-card content-card">
<view class="tabs-row">
<view class="tab-item active"><text>系统任务</text></view>
<view class="tab-item"><text>自定义任务</text></view>
</view>
<!-- 表格 -->
<view class="table-container list-table mt-16">
<view class="table-header">
<view class="col col-title"><text>标题</text></view>
@@ -49,10 +50,12 @@
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import { ref } from 'vue'
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
const dataList = ref([
{ id: 1, title: '自动开具/冲红电子发票', desc: '每隔10分钟执行自动开具/冲红电子发票', cycle: '每隔10分钟执行一次', status: true },
@@ -75,7 +78,9 @@ function onEdit(item: any) {
<style scoped lang="scss">
.admin-page {
/* 使用 Layout 的背景和内边距 */
min-height: 100vh;
padding: 0;
background-color: transparent;
min-height: auto;
}
.admin-card {

View File

@@ -1,23 +1,24 @@
<template>
<view class="admin-page">
<view class="admin-sections">
<!-- 提示语 -->
<view class="admin-card alert-card">
<text class="alert-title">自定义事件说明:</text>
<text class="alert-desc">1、新增的事件会在对应的事件类型相关的流程中触发选择用户登录则在用户登录时执行代码。</text>
<text class="alert-desc">2、可以使用对应事件类型中的参数,例:$data['nickname'], $data['phone']等。</text>
<text class="alert-desc">3、调用类的时请写入完整路径\think\facade\Db、\app\services\other\CacheServices::class等。</text>
</view>
<!-- 内容区 -->
<view class="admin-card content-card">
<!-- 操作按钮行 -->
<view class="action-bar">
<button class="btn primary small" @click="onAdd">新增系统事件</button>
<AdminLayout current-page="maintain_dev_event">
<view class="admin-page">
<view class="admin-sections">
<!-- 提示语 -->
<view class="admin-card alert-card">
<text class="alert-title">自定义事件说明:</text>
<text class="alert-desc">1、新增的事件会在对应事件类型相关的流程中触发,例:选择用户登录,则在用户登录时执行代码。</text>
<text class="alert-desc">2、可以使用对应事件类型中的参数$data['nickname'], $data['phone']等。</text>
<text class="alert-desc">3、调用类的时请写入完整路径\think\facade\Db、\app\services\other\CacheServices::class等。</text>
</view>
<!-- 表格(暂无数据) -->
<view class="table-container list-table">
<!-- 内容区 -->
<view class="admin-card content-card">
<!-- 操作按钮行 -->
<view class="action-bar">
<button class="btn primary small" @click="onAdd">新增系统事件</button>
</view>
<!-- 表格(暂无数据) -->
<view class="table-container list-table">
<view class="table-header">
<view class="col col-id"><text>编号</text></view>
<view class="col col-name"><text>事件名</text></view>
@@ -36,9 +37,12 @@
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
function onAdd() {
uni.showToast({ title: '新增系统事件', icon: 'none' })
}
@@ -47,7 +51,9 @@ function onAdd() {
<style scoped lang="scss">
.admin-page {
/* 使用 Layout 的背景和内边距 */
min-height: 100vh;
padding: 0;
background-color: transparent;
min-height: auto;
}
.admin-card {

View File

@@ -1,23 +1,24 @@
<template>
<view class="admin-page">
<view class="admin-sections">
<view class="admin-card content-card">
<view class="form-container">
<view class="form-item">
<view class="form-label">模块配置:</view>
<view class="form-content">
<label class="checkbox-item">
<checkbox color="#1890ff" checked />
<text class="checkbox-label">秒杀</text>
</label>
<label class="checkbox-item">
<checkbox color="#1890ff" checked />
<text class="checkbox-label">砍价</text>
</label>
<label class="checkbox-item">
<checkbox color="#1890ff" checked />
<text class="checkbox-label">拼团</text>
</label>
<AdminLayout current-page="maintain_dev_module">
<view class="admin-page">
<view class="admin-sections">
<view class="admin-card content-card">
<view class="form-container">
<view class="form-item">
<view class="form-label">模块配置:</view>
<view class="form-content">
<label class="checkbox-item">
<checkbox color="#1890ff" checked />
<text class="checkbox-label">秒杀</text>
</label>
<label class="checkbox-item">
<checkbox color="#1890ff" checked />
<text class="checkbox-label">砍价</text>
</label>
<label class="checkbox-item">
<checkbox color="#1890ff" checked />
<text class="checkbox-label">拼团</text>
</label>
</view>
</view>
<view class="form-tip">
@@ -30,9 +31,11 @@
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
function onSubmit() {
uni.showToast({ title: '已提交', icon: 'none' })
}
@@ -41,7 +44,9 @@ function onSubmit() {
<style scoped lang="scss">
.admin-page {
/* 使用 Layout 的背景和内边距 */
min-height: 100vh;
padding: 0;
background-color: transparent;
min-height: auto;
}
.admin-card {

View File

@@ -1,23 +1,24 @@
<template>
<view class="admin-page">
<view class="admin-sections">
<!-- 搜索栏 -->
<view class="admin-card filter-card">
<view class="filter-row">
<view class="filter-item">
<text class="label">规则状态:</text>
<view class="filter-select">
<text class="select-placeholder">请选择</text>
<text class="arrow">▼</text>
<AdminLayout current-page="maintain_dev_auth">
<view class="admin-page">
<view class="admin-sections">
<!-- 搜索栏 -->
<view class="admin-card filter-card">
<view class="filter-row">
<view class="filter-item">
<text class="label">规则状态:</text>
<view class="filter-select">
<text class="select-placeholder">请选择</text>
<text class="arrow">▼</text>
</view>
</view>
<view class="filter-item">
<text class="label">按钮名称:</text>
<input class="filter-input" placeholder="请输入按钮名称" />
</view>
<button class="btn primary" @click="onSearch">查询</button>
</view>
<view class="filter-item">
<text class="label">按钮名称:</text>
<input class="filter-input" placeholder="请输入按钮名称" />
</view>
<button class="btn primary" @click="onSearch">查询</button>
</view>
</view>
<!-- 内容区 -->
<view class="admin-card content-card">
@@ -64,10 +65,12 @@
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import { ref } from 'vue'
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
const dataList = ref([
{ id: 1, name: '主页', auth: 'admin-home', route: '菜单: /admin/index', status: true, memo: '主页' },
@@ -121,7 +124,9 @@ function onDelete(item: any) {
<style scoped lang="scss">
.admin-page {
/* 使用 Layout 的背景和内边距 */
min-height: 100vh;
padding: 0;
background-color: transparent;
min-height: auto;
}
.admin-card {

View File

@@ -1,9 +1,10 @@
<template>
<view class="admin-maintain-config">
<view class="page-header border-shadow">
<text class="page-title">开发配置 - 配置分类</text>
<view class="btn-primary"><text class="btn-txt">+ 添加配置</text></view>
</view>
<AdminLayout currentPage="maintain-dev-config">
<view class="admin-maintain-config">
<view class="page-header border-shadow">
<text class="page-title">开发配置 - 配置分类</text>
<view class="btn-primary"><text class="btn-txt">+ 添加配置</text></view>
</view>
<view class="table-container border-shadow">
<view class="table-header">
@@ -28,11 +29,15 @@
</view>
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
</script>
<style scoped lang="scss">
.admin-maintain-config { padding: 20px; }
.admin-maintain-config { padding: 0; }
.border-shadow { background-color: #fff; border-radius: 4px; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05); }
.page-header { padding: 20px 24px; margin-bottom: 20px; display: flex; flex-direction: row; justify-content: space-between; align-items: center; }
.page-title { font-size: 16px; font-weight: 600; color: #303133; }

View File

@@ -1,22 +1,23 @@
<template>
<view class="admin-page">
<view class="admin-sections">
<!-- 提示栏 -->
<view class="alert-info">
<text class="alert-text">温馨提示:检查更新需要授权码,请先授权后再检查更新!</text>
</view>
<!-- 选项卡 -->
<view class="admin-tabs">
<view
v-for="tab in tabs"
:key="tab.value"
:class="['tab-item', activeTab === tab.value ? 'active' : '']"
@click="activeTab = tab.value"
>
<text class="tab-label">{{ tab.label }}</text>
<AdminLayout current-page="maintain_security_upgrade">
<view class="admin-page">
<view class="admin-sections">
<!-- 提示栏 -->
<view class="alert-info">
<text class="alert-text">温馨提示:检查更新需要授权码,请先授权后再检查更新!</text>
</view>
<!-- 选项卡 -->
<view class="admin-tabs">
<view
v-for="tab in tabs"
:key="tab.value"
:class="['tab-item', activeTab === tab.value ? 'active' : '']"
@click="activeTab = tab.value"
>
<text class="tab-label">{{ tab.label }}</text>
</view>
</view>
</view>
<!-- 升级内容 -->
<view v-if="activeTab === 'upgrade'" class="admin-card">
@@ -55,13 +56,14 @@
</view>
</view>
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import { ref } from 'vue'
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
const activeTab = ref('upgrade')
const tabs = [
@@ -87,7 +89,9 @@ function checkUpdates() {
<style scoped lang="scss">
.admin-page {
/* 使用 Layout 的背景和内边距 */
min-height: 100vh;
padding: 0;
background-color: transparent;
min-height: auto;
}
.alert-info {

View File

@@ -1,15 +1,16 @@
<template>
<view class="admin-page">
<view class="admin-sections">
<view class="admin-grid-2">
<!-- 清除缓存 -->
<view class="admin-card cache-card">
<view class="cache-header">
<text class="cache-title">清除缓存</text>
<text class="cache-desc">清除系统的所有缓存</text>
<AdminLayout currentPage="maintain-security-refresh-cache">
<view class="admin-page">
<view class="admin-sections">
<view class="admin-grid-2">
<!-- 清除缓存 -->
<view class="admin-card cache-card">
<view class="cache-header">
<text class="cache-title">清除缓存</text>
<text class="cache-desc">清除系统的所有缓存</text>
</view>
<button class="btn primary full" @click="onClearCache">立即清除</button>
</view>
<button class="btn primary full" @click="onClearCache">立即清除</button>
</view>
<!-- 清除日志 -->
<view class="admin-card cache-card">
@@ -22,9 +23,12 @@
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
function onClearCache() {
uni.showModal({
title: '提示',
@@ -53,7 +57,7 @@ function onClearLog() {
<style scoped lang="scss">
.admin-page {
/* 使用 Layout 的背景和内边距 */
min-height: 100vh;
min-height: auto;
}
.admin-grid-2 {

View File

@@ -1,11 +1,12 @@
<template>
<view class="admin-page">
<view class="admin-sections">
<!-- 商业授权 -->
<view class="admin-card info-section">
<view class="section-header">
<text class="section-title">商业授权</text>
</view>
<AdminLayout currentPage="maintain-sys-info">
<view class="admin-page">
<view class="admin-sections">
<!-- 商业授权 -->
<view class="admin-card info-section">
<view class="section-header">
<text class="section-title">商业授权</text>
</view>
<view class="table-container header-table">
<view class="table-header">
<view class="col col-title"><text>产品证书编号</text></view>
@@ -98,9 +99,11 @@
</view>
</view>
</view>
</AdminLayout>
</template>
<script setup lang="uts">
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
function gotoOfficial() {
uni.showToast({ title: '正在打开官网...', icon: 'none' })
}
@@ -113,7 +116,7 @@ function editCopyright() {
<style scoped lang="scss">
.admin-page {
/* 使用 Layout 的背景和内边距 */
min-height: 100vh;
min-height: auto;
}
.admin-card {

View File

@@ -13,5 +13,5 @@
<script setup lang="uts">
import AdminLayout from '@/layouts/admin/AdminLayout.uvue'
</script> <style scoped> .page { padding: 16px; } .title { font-size: 18px; font-weight: 600; } .tip { color: #999; margin-top: 8px; display: block; } </style>
</script> <style scoped> .page { padding: 0; } .title { font-size: 18px; font-weight: 600; } .tip { color: #999; margin-top: 8px; display: block; } </style>