diff --git a/components.d.ts b/components.d.ts
index 59ed0a0..2b980a0 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -38,6 +38,7 @@ declare module 'vue' {
WdFab: typeof import('@wot-ui/ui/components/wd-fab/wd-fab.vue')['default']
WdForm: typeof import('@wot-ui/ui/components/wd-form/wd-form.vue')['default']
WdFormItem: typeof import('@wot-ui/ui/components/wd-form-item/wd-form-item.vue')['default']
+ WdGap: typeof import('@wot-ui/ui/components/wd-gap/wd-gap.vue')['default']
WdGrid: typeof import('@wot-ui/ui/components/wd-grid/wd-grid.vue')['default']
WdGridItem: typeof import('@wot-ui/ui/components/wd-grid-item/wd-grid-item.vue')['default']
WdIcon: typeof import('@wot-ui/ui/components/wd-icon/wd-icon.vue')['default']
diff --git a/src/App.vue b/src/App.vue
index d18088c..afc612e 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -9,3 +9,7 @@ onLaunch(() => {
onShow(() => {});
+
+
diff --git a/src/pages.json b/src/pages.json
index 01690ee..61e64e8 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -7,7 +7,10 @@
"backgroundTextStyle": "@bgTxtStyle",
"backgroundColorTop": "@bgColorTop",
"backgroundColorBottom": "@bgColorBottom",
- "enablePullDownRefresh": false
+ "enablePullDownRefresh": false,
+ "onReachBottomDistance": 50,
+ "animationType": "pop-in",
+ "animationDuration": 300
},
"pages": [
// GENERATED BY UNI-PAGES, PLATFORM: H5 || MP-WEIXIN
@@ -212,6 +215,8 @@
"subPackages": [],
"tabBar": {
"custom": true,
+ "customize": true,
+ "overlay": true,
"height": "0",
"color": "@tabColor",
"selectedColor": "@tabSelectedColor",
diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue
index 1ecde95..30ff52c 100644
--- a/src/pages/login/index.vue
+++ b/src/pages/login/index.vue
@@ -720,18 +720,18 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
display: flex;
flex-direction: column;
align-items: center;
- margin-top: 16rpx;
- margin-bottom: 72rpx;
+ margin-top: 8rpx;
+ margin-bottom: 40rpx;
}
.login__logo {
- width: 160rpx;
- height: 160rpx;
- margin-bottom: 32rpx;
+ width: 120rpx;
+ height: 120rpx;
+ margin-bottom: 20rpx;
}
.login__brand-name {
- font-size: 40rpx;
+ font-size: 36rpx;
font-weight: 600;
letter-spacing: 0.05em;
color: var(--color-text);
@@ -739,8 +739,9 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
.login__card {
width: 100%;
- padding: 64rpx;
+ padding: 44rpx;
background-color: var(--color-bg);
+ border: 2rpx solid var(--color-border-light);
border-radius: 48rpx;
box-shadow: 0 20rpx 50rpx -10rpx rgba(0, 0, 0, 0.1);
@@ -753,25 +754,25 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
// 卡片头部
.login__card-head {
- margin-bottom: 64rpx;
+ margin-bottom: 36rpx;
text-align: center;
}
.login__card-title {
- font-size: 48rpx;
+ font-size: 40rpx;
font-weight: 700;
color: var(--color-text);
}
.login__card-subtitle {
display: block;
- margin-top: 16rpx;
- font-size: 28rpx;
+ margin-top: 8rpx;
+ font-size: 26rpx;
color: var(--color-text-secondary);
}
.login__form-item {
- margin-top: 32rpx;
+ margin-top: 28rpx;
&:first-child {
margin-top: 0;
@@ -781,7 +782,7 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
// 覆盖 wd-form-item 默认样式,仅用于校验和错误提示
:deep(.wd-form-item) {
padding: 0 !important;
- margin-top: 32rpx;
+ margin-top: 28rpx;
background: transparent;
&:first-child {
@@ -816,7 +817,7 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
.login__field {
display: flex;
align-items: center;
- height: 96rpx;
+ height: 88rpx;
padding: 0 32rpx;
background-color: var(--color-bg-secondary);
border-radius: 24rpx;
@@ -842,7 +843,7 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
align-items: center;
justify-content: center;
width: 100%;
- height: 96rpx;
+ height: 88rpx;
font-size: 32rpx;
font-weight: 600;
color: var(--color-text-inverse);
@@ -884,7 +885,7 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
.login__mode-switch {
display: flex;
justify-content: center;
- padding-top: 32rpx;
+ padding-top: 24rpx;
}
.login__mode-switch-text {
@@ -903,7 +904,7 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
.login__divider {
display: flex;
align-items: center;
- margin: 48rpx 0;
+ margin: 32rpx 0;
}
.login__divider-line {
@@ -925,8 +926,8 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
}
.login__wx-icon {
- width: 80rpx;
- height: 80rpx;
+ width: 72rpx;
+ height: 72rpx;
&:active {
transform: scale(0.95);
@@ -937,8 +938,8 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
display: flex;
align-items: flex-start;
justify-content: center;
- padding-top: 32rpx;
- margin-top: 48rpx;
+ padding-top: 24rpx;
+ margin-top: 32rpx;
border-top: 2rpx solid var(--color-border-light);
}
@@ -979,3 +980,28 @@ onShow(() => uni.setNavigationBarTitle({ title: "" }));
border-radius: 8rpx;
}
+
+
diff --git a/src/pages/work/config/index.vue b/src/pages/work/config/index.vue
index eea1650..aeba2a7 100644
--- a/src/pages/work/config/index.vue
+++ b/src/pages/work/config/index.vue
@@ -51,22 +51,27 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
{
formData.parentId = Number(value[value.length - 1]) || 0;
};
-const rules: FormRules = {
+const rules = toFormSchema({
name: [{ required: true, message: "请输入部门名称" }],
code: [{ required: true, message: "请输入部门编号" }],
parentId: [{ required: true, message: "请选择上级部门" }],
-};
+});
// 搜索触发
const handleSearch = () => loadDeptList();
@@ -205,7 +207,8 @@ function loadDeptList() {
}
// 操作菜单分发
-function handleActionSelect({ value }: { value: string }) {
+function handleActionSelect({ item }: { item: any }) {
+ const value = item.name;
const dept = currentActionItem.value;
if (value === "新增子部门") {
handleAddChild(dept);
diff --git a/src/pages/work/dict/index.vue b/src/pages/work/dict/index.vue
index 17be4f4..002d6fd 100644
--- a/src/pages/work/dict/index.vue
+++ b/src/pages/work/dict/index.vue
@@ -23,7 +23,7 @@
字典编码:{{ item.dictCode }}
-
+
{{ item.status === 1 ? "启用" : "禁用" }}
@@ -54,21 +54,24 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -97,7 +100,7 @@ definePage({
import { onLoad, onReachBottom } from "@dcloudio/uni-app";
import { useRouter } from "uni-mini-router";
import { LoadMoreState } from "@wot-ui/ui/components/wd-loadmore/types";
-import { FormRules } from "@wot-ui/ui/components/wd-form/types";
+import { toFormSchema } from "@/utils/form";
import { useToast, useDialog } from "@wot-ui/ui";
import DictAPI, { type DictTypeForm, type DictTypePageQuery, type DictTypeItem } from "@/api/dict";
import { hasPermission } from "@/utils/permission";
@@ -124,10 +127,10 @@ const initialFormData: DictTypeForm = {
const formData = reactive({ ...initialFormData });
-const rules: FormRules = {
+const rules = toFormSchema({
name: [{ required: true, message: "请输入字典名称" }],
dictCode: [{ required: true, message: "请输入字典编码" }],
-};
+});
const handleSearch = () => loadDictTypeList();
@@ -241,8 +244,8 @@ function showDictActions(item: DictTypeItem) {
actionSheetVisible.value = true;
}
-function handleActionSelect({ value }: { value: string }) {
- pendingAction.value[value]?.();
+function handleActionSelect({ item }: { item: any }) {
+ pendingAction.value[item.name]?.();
}
onReachBottom(() => {
diff --git a/src/pages/work/dict/item/index.vue b/src/pages/work/dict/item/index.vue
index b2a9220..2a511aa 100644
--- a/src/pages/work/dict/item/index.vue
+++ b/src/pages/work/dict/item/index.vue
@@ -25,7 +25,7 @@
字典值:{{ item.value }} · 排序:{{ item.sort }}
-
+
{{ item.status === 1 ? "启用" : "禁用" }}
@@ -56,24 +56,27 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -104,7 +109,7 @@ definePage({
import { onLoad, onReachBottom } from "@dcloudio/uni-app";
import { LoadMoreState } from "@wot-ui/ui/components/wd-loadmore/types";
-import { FormRules } from "@wot-ui/ui/components/wd-form/types";
+import { toFormSchema } from "@/utils/form";
import { useToast, useDialog } from "@wot-ui/ui";
import DictAPI, { type DictItemForm, type DictItemPageQuery, type DictDataItem } from "@/api/dict";
import { hasPermission } from "@/utils/permission";
@@ -136,10 +141,10 @@ const initialFormData: DictItemForm = {
const formData = reactive({ ...initialFormData });
-const rules: FormRules = {
+const rules = toFormSchema({
label: [{ required: true, message: "请输入字典项标签" }],
value: [{ required: true, message: "请输入字典项值" }],
-};
+});
const handleSearch = () => loadItemList();
@@ -259,8 +264,8 @@ function showItemActions(item: DictDataItem) {
actionSheetVisible.value = true;
}
-function handleActionSelect({ value }: { value: string }) {
- pendingAction.value[value]?.();
+function handleActionSelect({ item }: { item: any }) {
+ pendingAction.value[item.name]?.();
}
onReachBottom(() => {
diff --git a/src/pages/work/menu/index.vue b/src/pages/work/menu/index.vue
index 032ad6d..bdb6ddc 100644
--- a/src/pages/work/menu/index.vue
+++ b/src/pages/work/menu/index.vue
@@ -52,51 +52,44 @@
{{ formData.id ? "编辑菜单" : "新增菜单" }}
-
-
+
+
-
-
-
- 目录
- 菜单
- 按钮
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ 目录
+ 菜单
+ 按钮
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
{{ getStatusText(item.publishStatus) }}
@@ -106,30 +106,31 @@
-
-
-
-
-
- 低
- 中
- 高
-
-
-
-
- 全体
- 指定用户
-
-
+
+
+
+
+
+
+ 低
+ 中
+ 高
+
+
+
+
+ 全体
+ 指定用户
+
+
+
-
+
@@ -162,7 +165,7 @@ definePage({
import { onLoad, onReachBottom } from "@dcloudio/uni-app";
import { LoadMoreState } from "@wot-ui/ui/components/wd-loadmore/types";
-import { FormRules } from "@wot-ui/ui/components/wd-form/types";
+import { toFormSchema } from "@/utils/form";
import { useToast, useDialog } from "@wot-ui/ui";
import NoticeAPI, {
type NoticePageQuery,
@@ -197,9 +200,9 @@ const initialFormData: NoticeForm = {
};
const formData = reactive({ ...initialFormData });
-const formRules: FormRules = {
+const formRules = toFormSchema({
title: [{ required: true, message: "请输入通知标题" }],
-};
+});
// 获取状态样式
const getStatusType = (
@@ -387,8 +390,8 @@ function showNoticeActions(item: NoticeItem) {
actionSheetVisible.value = true;
}
-function handleActionSelect({ value }: { value: string }) {
- pendingAction.value[value]?.();
+function handleActionSelect({ item }: { item: any }) {
+ pendingAction.value[item.name]?.();
}
onReachBottom(() => {
diff --git a/src/pages/work/role/index.vue b/src/pages/work/role/index.vue
index d45156d..d53565e 100644
--- a/src/pages/work/role/index.vue
+++ b/src/pages/work/role/index.vue
@@ -25,7 +25,7 @@
{{ item.code }}
-
+
{{ item.status === 1 ? "正常" : "禁用" }}
@@ -70,23 +70,25 @@
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
{{ item.roleNames }} · {{ item.deptName }}
-
+
{{ item.status === 1 ? "正常" : "禁用" }}
@@ -116,36 +116,41 @@
-
-
+
+
-
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+