封装一个 useFeatures
This commit is contained in:
parent
3d8f90391e
commit
b3affb3be5
|
|
@ -416,12 +416,6 @@ exports.default = OakComponent({
|
|||
});
|
||||
});
|
||||
},
|
||||
getUrl: function (extraFile, style) {
|
||||
return this.features.extraFile.getUrl(extraFile, style);
|
||||
},
|
||||
formatBytes: function (size) {
|
||||
return this.features.extraFile.formatBytes(size);
|
||||
},
|
||||
},
|
||||
observers: {
|
||||
maxNumber: function () {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,5 @@ export default function render(props: WebComponentProps<EntityDict, 'extraFile',
|
|||
}, {
|
||||
onPickByWeb: (files: UploadFile[], callback?: (file: any, status: string) => void) => void;
|
||||
onDeleteByWeb: (file: UploadFile) => void;
|
||||
formatBytes: (size: number) => string;
|
||||
getUrl: (extraFile?: EntityDict['extraFile']['OpSchema'] | null, style?: string) => string;
|
||||
}>): JSX.Element;
|
||||
export {};
|
||||
|
|
|
|||
|
|
@ -5,9 +5,10 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|||
var react_1 = require("react");
|
||||
var antd_1 = require("antd");
|
||||
var icons_1 = require("@ant-design/icons");
|
||||
var utils_1 = require("antd/es/upload/utils");
|
||||
var classnames_1 = tslib_1.__importDefault(require("classnames"));
|
||||
var web_module_less_1 = tslib_1.__importDefault(require("./web.module.less"));
|
||||
var utils_1 = require("antd/es/upload/utils");
|
||||
var useFeatures_1 = tslib_1.__importDefault(require("../../../hooks/useFeatures"));
|
||||
function getListType(theme) {
|
||||
var themeMap = {
|
||||
file: 'text',
|
||||
|
|
@ -21,7 +22,8 @@ function getListType(theme) {
|
|||
function render(props) {
|
||||
var _this = this;
|
||||
var _a = props.data, _b = _a.accept, accept = _b === void 0 ? 'image/*' : _b, _c = _a.maxNumber, maxNumber = _c === void 0 ? 20 : _c, _d = _a.multiple, multiple = _d === void 0 ? maxNumber !== 1 : _d, _e = _a.draggable, draggable = _e === void 0 ? false : _e, _f = _a.theme, theme = _f === void 0 ? 'image' : _f, tips = _a.tips, beforeUpload = _a.beforeUpload, disabled = _a.disabled, style = _a.style, className = _a.className, _g = _a.directory, directory = _g === void 0 ? false : _g, onPreview = _a.onPreview, onDownload = _a.onDownload, children = _a.children, _h = _a.showUploadList, showUploadList = _h === void 0 ? true : _h, files = _a.files, disableInsert = _a.disableInsert;
|
||||
var _j = props.methods, onPickByWeb = _j.onPickByWeb, onDeleteByWeb = _j.onDeleteByWeb, formatBytes = _j.formatBytes, getUrl = _j.getUrl;
|
||||
var _j = props.methods, onPickByWeb = _j.onPickByWeb, onDeleteByWeb = _j.onDeleteByWeb;
|
||||
var features = (0, useFeatures_1.default)();
|
||||
var _k = tslib_1.__read((0, react_1.useState)([]), 2), newFiles = _k[0], setNewFiles = _k[1];
|
||||
var _l = tslib_1.__read((0, react_1.useState)([]), 2), newUploadFiles = _l[0], setNewUploadFiles = _l[1];
|
||||
var listType = getListType(theme);
|
||||
|
|
@ -36,8 +38,8 @@ function render(props) {
|
|||
var extraFileToUploadFile = function (extraFile) {
|
||||
return {
|
||||
id: extraFile.id,
|
||||
url: getUrl(extraFile),
|
||||
thumbUrl: getUrl(extraFile),
|
||||
url: features.extraFile.getUrl(extraFile),
|
||||
thumbUrl: features.extraFile.getUrl(extraFile),
|
||||
name: extraFile.filename + (extraFile.extension || ''),
|
||||
fileName: extraFile.filename + (extraFile.extension || ''),
|
||||
size: extraFile.size,
|
||||
|
|
@ -120,7 +122,7 @@ function render(props) {
|
|||
dataIndex: 'size',
|
||||
title: '文件大小',
|
||||
render: function (value, record, index) {
|
||||
return formatBytes(value);
|
||||
return features.extraFile.formatBytes(value);
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
import { GeneralFeatures } from '../features';
|
||||
import { EntityDict } from '../general-app-domain';
|
||||
import { BRC, FrcAspectDict, FRC } from '../types/RuntimeCxt';
|
||||
export default function useFeatures(): GeneralFeatures<EntityDict, BRC, FRC, FrcAspectDict>;
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var features_1 = require("oak-frontend-base/lib/platforms/web/features");
|
||||
// react 独有
|
||||
function useFeatures() {
|
||||
return (0, features_1.useFeatures)();
|
||||
}
|
||||
exports.default = useFeatures;
|
||||
;
|
||||
|
|
@ -2,9 +2,9 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tslib_1 = require("tslib");
|
||||
var react_1 = require("react");
|
||||
var features_1 = require("oak-frontend-base/lib/platforms/web/features");
|
||||
var useFeatures_1 = tslib_1.__importDefault(require("./useFeatures"));
|
||||
function useMyInfo() {
|
||||
var features = (0, features_1.useFeatures)();
|
||||
var features = (0, useFeatures_1.default)();
|
||||
var getMyInfo = function () {
|
||||
var _a, _b;
|
||||
var userInfo = features.token.getUserInfo();
|
||||
|
|
|
|||
|
|
@ -344,15 +344,6 @@ export default OakComponent({
|
|||
});
|
||||
}
|
||||
},
|
||||
getUrl(
|
||||
extraFile?: EntityDict['extraFile']['OpSchema'] | null,
|
||||
style?: string
|
||||
) {
|
||||
return this.features.extraFile.getUrl(extraFile, style);
|
||||
},
|
||||
formatBytes(size: number) {
|
||||
return this.features.extraFile.formatBytes(size);
|
||||
},
|
||||
},
|
||||
|
||||
observers: {
|
||||
|
|
|
|||
|
|
@ -9,12 +9,13 @@ import {
|
|||
Table,
|
||||
} from 'antd';
|
||||
import { PlusOutlined } from '@ant-design/icons';
|
||||
import { file2Obj } from 'antd/es/upload/utils'
|
||||
import { RcFile } from 'antd/es/upload/interface';
|
||||
import classNames from 'classnames';
|
||||
import Style from './web.module.less';
|
||||
import { WebComponentProps } from 'oak-frontend-base';
|
||||
import { EntityDict } from '../../../general-app-domain';
|
||||
import { file2Obj } from 'antd/es/upload/utils'
|
||||
import { RcFile } from 'antd/es/upload/interface';
|
||||
import useFeatures from '../../../hooks/useFeatures';
|
||||
|
||||
interface NewUploadFile extends UploadFile {
|
||||
id?: string;
|
||||
|
|
@ -66,11 +67,6 @@ export default function render(
|
|||
callback?: (file: any, status: string) => void
|
||||
) => void;
|
||||
onDeleteByWeb: (file: UploadFile) => void;
|
||||
formatBytes: (size: number) => string;
|
||||
getUrl: (
|
||||
extraFile?: EntityDict['extraFile']['OpSchema'] | null,
|
||||
style?: string
|
||||
) => string;
|
||||
}
|
||||
>
|
||||
) {
|
||||
|
|
@ -93,7 +89,8 @@ export default function render(
|
|||
files,
|
||||
disableInsert,
|
||||
} = props.data;
|
||||
const { onPickByWeb, onDeleteByWeb, formatBytes, getUrl } = props.methods;
|
||||
const { onPickByWeb, onDeleteByWeb } = props.methods;
|
||||
const features = useFeatures();
|
||||
|
||||
const [newFiles, setNewFiles] = useState<
|
||||
EntityDict['extraFile']['OpSchema'][]
|
||||
|
|
@ -117,8 +114,8 @@ export default function render(
|
|||
): NewUploadFile => {
|
||||
return {
|
||||
id: extraFile.id,
|
||||
url: getUrl(extraFile),
|
||||
thumbUrl: getUrl(extraFile),
|
||||
url: features.extraFile.getUrl(extraFile),
|
||||
thumbUrl: features.extraFile.getUrl(extraFile),
|
||||
name: extraFile.filename + (extraFile.extension || ''),
|
||||
fileName: extraFile.filename + (extraFile.extension || ''),
|
||||
size: extraFile.size!,
|
||||
|
|
@ -241,7 +238,9 @@ export default function render(
|
|||
dataIndex: 'size',
|
||||
title: '文件大小',
|
||||
render: (value, record, index) => {
|
||||
return formatBytes(value as number);
|
||||
return features.extraFile.formatBytes(
|
||||
value as number
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
|
||||
import { useFeatures as useCommonFeatures } from 'oak-frontend-base/lib/platforms/web/features';
|
||||
import { GeneralFeatures } from '../features';
|
||||
import { EntityDict } from '../general-app-domain';
|
||||
import { BRC, FrcAspectDict, FRC } from '../types/RuntimeCxt';
|
||||
|
||||
// react 独有
|
||||
export default function useFeatures() {
|
||||
return useCommonFeatures<
|
||||
GeneralFeatures<EntityDict, BRC, FRC, FrcAspectDict>
|
||||
>();
|
||||
};
|
||||
|
|
@ -1,13 +1,10 @@
|
|||
import React, { useState, useEffect } from 'react';
|
||||
|
||||
import { GeneralFeatures } from '../features';
|
||||
import { useFeatures } from 'oak-frontend-base/lib/platforms/web/features';
|
||||
import { EntityDict } from '../general-app-domain';
|
||||
import { BRC, FrcAspectDict, FRC} from '../types/RuntimeCxt';
|
||||
import { OpSchema as ExtraFile } from '../general-app-domain/ExtraFile/Schema';
|
||||
import useFeatures from './useFeatures';
|
||||
|
||||
export default function useMyInfo() {
|
||||
const features = useFeatures<GeneralFeatures<EntityDict, BRC, FRC, FrcAspectDict>>();
|
||||
const features = useFeatures();
|
||||
|
||||
const getMyInfo = () => {
|
||||
const userInfo = features.token.getUserInfo();
|
||||
|
|
|
|||
Loading…
Reference in New Issue