🔱: [client] sync upgrade with 9 commits [trident-sync]

perf: 完善文档,完善部分types
perf: 优化d.ts类型
perf: 日期增加week、month、year、quarter类型
feat: resetCrudOptions 示例
feat: tabs快捷查询组件
fix: 行编辑支持多级表头

https://github.com/fast-crud/fast-crud/issues/143
perf: antdv 增加自定义表头示例

https://github.com/fast-crud/fast-crud/issues/141
perf: 表单下方按钮支持context

https://github.com/fast-crud/fast-crud/issues/142
This commit is contained in:
GitHub Actions Bot
2023-03-09 19:24:01 +00:00
parent 76dd23174a
commit 52a167c647
100 changed files with 1465 additions and 585 deletions
@@ -15,13 +15,13 @@ interface PageState {
// 已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
openedLoaded: boolean;
// 当前页面
current: "";
current: string;
// 需要缓存的页面 name
keepAlive: Array<any>;
inited: boolean;
}
// 判定是否需要缓存
const isKeepAlive = (data) => get(data, "meta.cache", false);
const isKeepAlive = (data: any) => get(data, "meta.cache", false);
export const usePageStore = defineStore({
id: "app.page",
@@ -48,7 +48,7 @@ export const usePageStore = defineStore({
inited: false
}),
getters: {
getOpened() {
getOpened(): any {
// @ts-ignore
return this.opened;
},
@@ -91,7 +91,7 @@ export const usePageStore = defineStore({
const valid: Array<number> = [];
// 处理数据
this.opened = value
.map((opened) => {
.map((opened: any) => {
// 忽略首页
if (opened.fullPath === "/index") {
valid.push(1);
@@ -105,7 +105,7 @@ export const usePageStore = defineStore({
// 新的数据中一般不会携带 params 和 query, 所以旧的参数会留存
return Object.assign({}, opened, find);
})
.filter((opened, index) => valid[index] === 1);
.filter((opened: any, index: any) => valid[index] === 1);
// 标记已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
this.openedLoaded = true;
// 根据 opened 数据生成缓存设置
@@ -132,7 +132,7 @@ export const usePageStore = defineStore({
* @param {Object} context
* @param {Object} payload { index, params, query, fullPath } 路由信息
*/
async openedUpdate({ index, params, query, fullPath }) {
async openedUpdate({ index, params, query, fullPath }: any) {
// 更新页面列表某一项
const page = this.opened[index];
page.params = params || page.params;
@@ -148,7 +148,7 @@ export const usePageStore = defineStore({
* @param {Object} context
* @param {Object} payload { oldIndex, newIndex } 位置信息
*/
async openedSort({ oldIndex, newIndex }) {
async openedSort({ oldIndex, newIndex }: any) {
// 重排页面列表某一项
const page = this.opened[oldIndex];
this.opened.splice(oldIndex, 1);
@@ -162,7 +162,7 @@ export const usePageStore = defineStore({
* @param {Object} context
* @param {Object} payload new tag info
*/
async add({ tag, params, query, fullPath }) {
async add({ tag, params, query, fullPath }: any) {
// 设置新的 tag 在新打开一个以前没打开过的页面时使用
const newTag = tag;
newTag.params = params || newTag.params;
@@ -183,7 +183,7 @@ export const usePageStore = defineStore({
* @param {Object} context
* @param {Object} payload 从路由钩子的 to 对象上获取 { name, params, query, fullPath, meta } 路由信息
*/
async open({ name, params, query, fullPath, meta }) {
async open({ name, params, query, fullPath, meta }: any) {
// 已经打开的页面
const opened = this.opened;
// 判断此页面是否已经打开 并且记录位置
@@ -227,7 +227,7 @@ export const usePageStore = defineStore({
* @param {Object} context
* @param {Object} payload { tagName: 要关闭的标签名字 }
*/
async close({ tagName }) {
async close({ tagName }: any) {
// 预定下个新页面
let newPage = {};
const isCurrent = this.current === tagName;
@@ -267,7 +267,7 @@ export const usePageStore = defineStore({
*/
async closeLeft(opts = {}) {
await this.closeByCondition({
condition({ i, currentIndex }) {
condition({ i, currentIndex }: any) {
return i >= currentIndex;
},
...opts
@@ -280,7 +280,7 @@ export const usePageStore = defineStore({
*/
async closeRight(opts = {}) {
await this.closeByCondition({
condition({ i, currentIndex }) {
condition({ i, currentIndex }: any) {
return currentIndex >= i;
},
...opts
@@ -321,7 +321,7 @@ export const usePageStore = defineStore({
*/
async closeOther(opts = {}) {
await this.closeByCondition({
condition({ i, currentIndex }) {
condition({ i, currentIndex }: any) {
return currentIndex === i;
},
...opts
@@ -357,14 +357,13 @@ export const usePageStore = defineStore({
*/
keepAliveRefresh() {
this.keepAlive = this.opened.filter((item) => isKeepAlive(item)).map((e) => e.name);
console.log("keep alive:", this.keepAlive);
},
/**
* @description 删除一个页面的缓存设置
* @param {Object} state state
* @param {String} name name
*/
keepAliveRemove(name) {
keepAliveRemove(name: string) {
const list = cloneDeep(this.keepAlive);
const index = list.findIndex((item) => item === name);
if (index !== -1) {
@@ -377,7 +376,7 @@ export const usePageStore = defineStore({
* @param {Object} state state
* @param {String} name name
*/
keepAlivePush(name) {
keepAlivePush(name: string) {
const keep = cloneDeep(this.keepAlive);
keep.push(name);
this.keepAlive = uniq(keep);
@@ -395,7 +394,7 @@ export const usePageStore = defineStore({
* @param {Object} state state
* @param {String} fullPath new fullPath
*/
currentSet(fullPath) {
currentSet(fullPath: string) {
this.current = fullPath;
},
/**
@@ -404,7 +403,7 @@ export const usePageStore = defineStore({
* @param {Object} state state
* @param {Array} routes routes
*/
async init(routes) {
async init(routes: any) {
if (this.inited) {
return;
}
@@ -414,9 +413,9 @@ export const usePageStore = defineStore({
routes = frameworkRoutes;
}
const pool = [];
const push = function (routes) {
routes.forEach((route) => {
const pool: any = [];
const push = function (routes: any) {
routes.forEach((route: any) => {
if (route.children && route.children.length > 0) {
push(route.children);
} else {
@@ -39,7 +39,7 @@ export const useResourceStore = defineStore({
getFrameworkMenus() {
return this.frameworkMenus;
}
},
} as any,
actions: {
clear() {
this.inited = false;
@@ -54,17 +54,17 @@ export const useResourceStore = defineStore({
this.inited = true;
const showMenus = _.cloneDeep(frameworkMenus[0].children);
this.frameworkMenus = filterMenus(showMenus, (item) => {
this.frameworkMenus = filterMenus(showMenus, (item: any) => {
return item?.meta?.showOnHeader !== false;
});
this.fixedAsideMenus = findMenus(showMenus, (item) => {
this.fixedAsideMenus = findMenus(showMenus, (item: any) => {
return item?.meta?.fixedAside === true;
});
this.headerMenus = headerMenus;
this.setAsideMenu();
},
setAsideMenu(topMenu?) {
setAsideMenu(topMenu?: any) {
if (this.frameworkMenus.length === 0) {
return;
}
@@ -74,13 +74,13 @@ export const useResourceStore = defineStore({
const asideMenus = topMenu?.children || [];
this.asideMenus = [...this.fixedAsideMenus, ...asideMenus];
},
setAsideMenuByCurrentRoute(matched) {
setAsideMenuByCurrentRoute(matched: any) {
const menuHeader = this.frameworkMenus;
if (matched?.length <= 1) {
return;
}
function findFromTree(tree, find) {
function findFromTree(tree: any, find: any) {
const results: Array<any> = [];
for (const item of tree) {
if (find(item)) {
@@ -88,7 +88,7 @@ export const useResourceStore = defineStore({
return results;
}
if (item.children && item.children.length > 0) {
const found = findFromTree(item.children, find);
const found: any = findFromTree(item.children, find);
if (found) {
results.push(item);
return results.concat(found);
@@ -97,7 +97,7 @@ export const useResourceStore = defineStore({
}
}
const matchedPath = matched[1].path;
const _side = findFromTree(menuHeader, (menu) => menu.path === matchedPath);
const _side = findFromTree(menuHeader, (menu: any) => menu.path === matchedPath);
if (_side?.length > 0) {
if (this.currentAsidePath === _side[0]) {
return;
@@ -106,11 +106,11 @@ export const useResourceStore = defineStore({
this.setAsideMenu(_side[0]);
}
},
filterByPermission(permissions) {
filterByPermission(permissions: any) {
this.frameworkMenus = this.filterChildrenByPermission(this.frameworkMenus, permissions);
},
filterChildrenByPermission(list, permissions) {
const menus = list.filter((item) => {
filterChildrenByPermission(list: any, permissions: any) {
const menus = list.filter((item: any) => {
if (item?.meta?.permission) {
return permissions.includes(item.meta.permission);
}
@@ -51,7 +51,7 @@ export const useSettingStore = defineStore({
this.persistTheme();
// await changeTheme(this.theme.primaryColor);
},
async setPrimaryColor(color) {
async setPrimaryColor(color: any) {
const theme = this.theme;
theme.primaryColor = color;
await this.setTheme();