Merge branch 'dev' of codeup.aliyun.com:61c14a7efa282c88e103c23f/oak-general-business into dev

This commit is contained in:
Xu Chang 2022-12-28 11:59:24 +08:00
commit dcf44f1725
33 changed files with 193 additions and 115 deletions

View File

@ -1 +1,3 @@
export {};
/// <reference types="react" />
declare const _default: import("react").ComponentType<any>;
export default _default;

View File

@ -1,9 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var mockId_1 = require("oak-frontend-base/lib/utils/mockId");
var extraFile_1 = require("../../../utils/extraFile");
OakComponent({
exports.default = OakComponent({
entity: 'extraFile',
isList: false,
projection: {
@ -17,25 +14,16 @@ OakComponent({
extension: 1,
type: 1,
entity: 1,
entityId: 1,
},
formData: function (_a) {
var extraFile = _a.data, features = _a.features;
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var application, isTmp;
var _b;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0: return [4 /*yield*/, features.application.getApplication()];
case 1:
application = _c.sent();
isTmp = (extraFile === null || extraFile === void 0 ? void 0 : extraFile.id) && (0, mockId_1.isMockId)(extraFile.id);
return [2 /*return*/, {
src: extraFile && (0, extraFile_1.composeFileUrl)(extraFile, (_b = application === null || application === void 0 ? void 0 : application.system) === null || _b === void 0 ? void 0 : _b.config),
isTmp: isTmp,
}];
}
});
});
return {
url: features.extraFile.getUrl(extraFile),
};
},
wechatMp: {
externalClasses: ['oak-class'],
},
properties: {
// 图片显示模式

View File

@ -1,2 +1,2 @@
<!-- index.wxml -->
<image src="{{src}}" mode="{{mode}}" class="image l-class"/>
<image src="{{url}}" mode="{{mode}}" class="image oak-class"/>

View File

@ -2,6 +2,6 @@
Object.defineProperty(exports, "__esModule", { value: true });
var jsx_runtime_1 = require("react/jsx-runtime");
function render() {
return ((0, jsx_runtime_1.jsx)("div", { children: "react" }));
return ((0, jsx_runtime_1.jsx)("div", { children: "\u672A\u5B9E\u73B0" }));
}
exports.default = render;

View File

@ -1,9 +1,8 @@
.container {
height: 100vh;
display: flex;
flex-direction: column;
justify-content: 'center';
align-items: 'center';
justify-content: center;
align-items: center;
}

View File

@ -4,7 +4,6 @@ var tslib_1 = require("tslib");
var uuid_1 = require("oak-domain/lib/utils/uuid");
var assert_1 = tslib_1.__importDefault(require("assert"));
var index_1 = tslib_1.__importDefault(require("../../../utils/dialog/index"));
var extraFile_1 = require("../../../utils/extraFile");
exports.default = OakComponent({
entity: 'extraFile',
isList: true,
@ -20,6 +19,7 @@ exports.default = OakComponent({
extension: 1,
type: 1,
entity: 1,
entityId: 1
},
formData: function (_a) {
var _this = this;
@ -46,7 +46,7 @@ exports.default = OakComponent({
itemSizePercentage: '',
},
wechatMp: {
externalClasses: ['l-class', 'l-item-class'],
externalClasses: ['oak-class', 'oak-item-class'],
},
properties: {
removeLater: Boolean,
@ -321,14 +321,15 @@ exports.default = OakComponent({
onItemTapped: function (event) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, files, systemConfig, index, imageUrl, urls, detail, result;
var _this = this;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = this.state, files = _a.files, systemConfig = _a.systemConfig;
index = event.currentTarget.dataset.index;
imageUrl = (0, extraFile_1.composeFileUrl)(files[index], systemConfig);
imageUrl = this.features.extraFile.getUrl(files[index]);
urls = files === null || files === void 0 ? void 0 : files.filter(function (ele) { return !!ele; }).map(function (ele) {
return (0, extraFile_1.composeFileUrl)(ele, systemConfig);
return _this.features.extraFile.getUrl(ele);
});
detail = {
all: files,
@ -353,41 +354,39 @@ exports.default = OakComponent({
},
onDeleteByMp: function (event) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var value, id, bucket, result, confirm_1;
var value, id, bucket, origin, result, confirm_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
value = event.currentTarget.dataset.value;
id = value.id, bucket = value.bucket;
if (!(this.props.removeLater || (origin !== 'unknown' && !bucket))) return [3 /*break*/, 2];
return [4 /*yield*/, this.removeItem(id)];
case 1:
_a.sent();
return [3 /*break*/, 5];
case 2: return [4 /*yield*/, wx.showModal({
id = value.id, bucket = value.bucket, origin = value.origin;
if (!(this.props.removeLater || (origin !== 'unknown' && !bucket))) return [3 /*break*/, 1];
this.removeItem(id);
return [3 /*break*/, 4];
case 1: return [4 /*yield*/, wx.showModal({
title: '确认删除吗',
content: '删除现有文件',
})];
case 3:
case 2:
result = _a.sent();
confirm_1 = result.confirm;
if (!confirm_1) return [3 /*break*/, 5];
if (!confirm_1) return [3 /*break*/, 4];
this.removeItem(id);
return [4 /*yield*/, this.execute()];
case 4:
case 3:
_a.sent();
_a.label = 5;
case 5: return [2 /*return*/];
_a.label = 4;
case 4: return [2 /*return*/];
}
});
});
},
onDeleteByWeb: function (value) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var id, bucket, confirm_2;
var id, bucket, origin, confirm_2;
var _this = this;
return tslib_1.__generator(this, function (_a) {
id = value.id, bucket = value.bucket;
id = value.id, bucket = value.bucket, origin = value.origin;
// 如果 removeLater为true 或 origin === 'qiniu' 且 bucket不存在
if (this.props.removeLater || (origin !== 'unknown' && !bucket)) {
this.removeItem(id);

View File

@ -1,9 +1,7 @@
{
"component": true,
"usingComponents": {
"l-icon": "../../../miniprogram_npm/lin-ui/icon/index"
},
"componentGenerics": {
"item": true
"l-icon": "../../../miniprogram_npm/lin-ui/icon/index",
"OakDisplay": "../display/index"
}
}

View File

@ -1,15 +1,15 @@
<view class="file-list__container l-class">
<view class="file-list__container aok-class">
<block wx:for="{{files}}" wx:key="index">
<block wx:if="{{item}}">
<view class="file-list__item file-list__item--{{size}} l-item-class" style="{{itemSizePercentage?'width:'+itemSizePercentage+'padding-bottom:'+itemSizePercentage:'xxx'}}">
<item data-index="{{index}}" bind:tap="onItemTapped" mode="{{mode}}" oakPath="{{oakFullpath}}.{{index}}" />
<view class="file-list__item file-list__item--{{size}} oak-item-class" style="{{itemSizePercentage?'width:'+itemSizePercentage+'padding-bottom:'+itemSizePercentage:'xxx'}}">
<OakDisplay data-index="{{index}}" bind:tap="onItemTapped" mode="{{mode}}" oakPath="{{oakFullpath}}.{{item.id}}" />
<view wx:if="{{!disableDelete}}" mut-bind:tap="onDeleteByMp" class="file-list__remove" data-value="{{item}}">
<t-icon name="close" color="#ffffff" size="18" />
<l-icon name="close" color="#ffffff" size="18" />
</view>
</view>
</block>
</block>
<view class="file-list__item file-list__item--add file-list__item--{{size}} l-item-class" style="{{itemSizePercentage?'width:'+itemSizePercentage+'padding-bottom:'+itemSizePercentage:''}}" wx:if="{{!disableInsert}}" bind:tap="onPickByMp">
<view class="file-list__item file-list__item--add file-list__item--{{size}} oak-item-class" style="{{itemSizePercentage?'width:'+itemSizePercentage+'padding-bottom:'+itemSizePercentage:''}}" wx:if="{{!disableInsert}}" bind:tap="onPickByMp">
<view class="file-list__item-slot-wrapper">
<slot />
</view>

View File

@ -14,8 +14,8 @@ function extraFileToUploadFile(extraFile, systemConfig) {
id: extraFile.id,
url: (0, extraFile_1.composeFileUrl)(extraFile, systemConfig),
thumbUrl: (0, extraFile_1.composeFileUrl)(extraFile, systemConfig),
name: extraFile.filename,
fileName: extraFile.filename,
name: extraFile.filename + (extraFile.extension || ''),
fileName: extraFile.filename + (extraFile.extension || ''),
size: extraFile.size,
type: extraFile.fileType,
uid: extraFile.id, //upload 组件需要uid来维护fileList

View File

@ -62,6 +62,8 @@ function render(props) {
modal.destroy();
},
});
} }, { children: "Reset" })) }))] }))] }))] }));
} }, { children: "Reset" })) })), (0, jsx_runtime_1.jsx)(antd_1.Tooltip, tslib_1.__assign({ title: "\u67E5\u770BOakIcon" }, { children: (0, jsx_runtime_1.jsx)(antd_1.Button, tslib_1.__assign({ size: "large", type: "primary", shape: "circle", onClick: function () {
window.open('/icon');
} }, { children: "Icon" })) }))] }))] }))] }));
}
exports.default = render;

3
lib/pages/icon/index.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
/// <reference types="react" />
declare const _default: import("react").ComponentType<any>;
export default _default;

6
lib/pages/icon/index.js Normal file
View File

@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = OakComponent({
isList: true,
methods: {},
});

View File

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "OakIcon示例",
"usingComponents": {}
}

View File

@ -0,0 +1,6 @@
.page-body {
display: flex;
}

4
lib/pages/icon/index.xml Normal file
View File

@ -0,0 +1,4 @@
<!-- index.wxml -->
<view class="page-body">
未实现
</view>

3
lib/pages/icon/web.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
import { EntityDict } from '../../general-app-domain';
import { WebComponentProps } from 'oak-frontend-base';
export default function Render(props: WebComponentProps<EntityDict, 'token', true, {}, {}>): JSX.Element;

9
lib/pages/icon/web.js Normal file
View File

@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var jsx_runtime_1 = require("react/jsx-runtime");
var web_module_less_1 = tslib_1.__importDefault(require("./web.module.less"));
function Render(props) {
return (0, jsx_runtime_1.jsx)("div", tslib_1.__assign({ className: web_module_less_1.default.container }, { children: "1122" }));
}
exports.default = Render;

View File

@ -0,0 +1,6 @@
.container {
height: 100vh;
display: flex;
flex-direction: column;
background-color: var(--oak-bg-color-page);
}

View File

@ -1,8 +1,6 @@
import { isMockId } from 'oak-frontend-base/lib/utils/mockId';
import { EntityDict } from '../../../general-app-domain';
import { composeFileUrl } from '../../../utils/extraFile';
OakComponent(
{
export default OakComponent({
entity: 'extraFile',
isList: false,
projection: {
@ -16,16 +14,18 @@ OakComponent(
extension: 1,
type: 1,
entity: 1,
entityId: 1,
},
formData: async ({ data: extraFile, features }) => {
const application = await features.application.getApplication();
const isTmp = extraFile?.id && isMockId(extraFile.id);
formData: ({ data: extraFile, features }) => {
return {
src: extraFile && composeFileUrl(extraFile as EntityDict['extraFile']['OpSchema'], application?.system?.config),
isTmp,
url: features.extraFile.getUrl(
extraFile as EntityDict['extraFile']['Schema']
),
};
},
wechatMp: {
externalClasses: ['oak-class'],
},
properties: {
// 图片显示模式
mode: {
@ -33,5 +33,4 @@ OakComponent(
value: 'aspectFit',
},
},
}
);
});

View File

@ -1,2 +1,2 @@
<!-- index.wxml -->
<image src="{{src}}" mode="{{mode}}" class="image l-class"/>
<image src="{{url}}" mode="{{mode}}" class="image oak-class"/>

View File

@ -1,9 +1,8 @@
.container {
height: 100vh;
display: flex;
flex-direction: column;
justify-content: 'center';
align-items: 'center';
justify-content: center;
align-items: center;
}

View File

@ -3,7 +3,7 @@ import React, { Component } from 'react';
export default function render() {
return (
<div>
react
</div>
);
}

View File

@ -1,9 +1,7 @@
{
"component": true,
"usingComponents": {
"l-icon": "../../../miniprogram_npm/lin-ui/icon/index"
},
"componentGenerics": {
"item": true
"l-icon": "../../../miniprogram_npm/lin-ui/icon/index",
"OakDisplay": "../display/index"
}
}

View File

@ -2,7 +2,6 @@ import { generateNewId } from 'oak-domain/lib/utils/uuid';
import assert from 'assert';
import Dialog from '../../../utils/dialog/index';
import { EntityDict } from '../../../general-app-domain';
import { composeFileUrl } from '../../../utils/extraFile';
export default OakComponent({
entity: 'extraFile',
@ -19,6 +18,7 @@ export default OakComponent({
extension: 1,
type: 1,
entity: 1,
entityId: 1
},
formData({ data: originalFiles, features }) {
const application = features.application.getApplication();
@ -45,7 +45,7 @@ export default OakComponent({
itemSizePercentage: '',
},
wechatMp: {
externalClasses: ['l-class', 'l-item-class'],
externalClasses: ['oak-class', 'oak-item-class'],
},
properties: {
removeLater: Boolean,
@ -283,11 +283,11 @@ export default OakComponent({
async onItemTapped(event: WechatMiniprogram.Touch) {
const { files, systemConfig } = this.state;
const { index } = event.currentTarget.dataset;
const imageUrl = composeFileUrl(files[index]!, systemConfig);
const imageUrl = this.features.extraFile.getUrl(files[index]!);
const urls = files
?.filter((ele: EntityDict['extraFile']['Schema']) => !!ele)
.map((ele: EntityDict['extraFile']['Schema']) =>
composeFileUrl(ele!, systemConfig)
this.features.extraFile.getUrl(ele!)
);
const detail = {
@ -308,10 +308,10 @@ export default OakComponent({
},
async onDeleteByMp(event: WechatMiniprogram.Touch) {
const { value } = event.currentTarget.dataset;
const { id, bucket } = value;
const { id, bucket, origin } = value;
if (this.props.removeLater || (origin !== 'unknown' && !bucket)) {
await this.removeItem(id);
this.removeItem(id);
} else {
const result = await wx.showModal({
title: '确认删除吗',
@ -325,7 +325,7 @@ export default OakComponent({
}
},
async onDeleteByWeb(value: any) {
const { id, bucket } = value;
const { id, bucket, origin } = value;
// 如果 removeLater为true 或 origin === 'qiniu' 且 bucket不存在
if (this.props.removeLater || (origin !== 'unknown' && !bucket)) {
this.removeItem(id);

View File

@ -1,15 +1,15 @@
<view class="file-list__container l-class">
<view class="file-list__container aok-class">
<block wx:for="{{files}}" wx:key="index">
<block wx:if="{{item}}">
<view class="file-list__item file-list__item--{{size}} l-item-class" style="{{itemSizePercentage?'width:'+itemSizePercentage+'padding-bottom:'+itemSizePercentage:'xxx'}}">
<item data-index="{{index}}" bind:tap="onItemTapped" mode="{{mode}}" oakPath="{{oakFullpath}}.{{index}}" />
<view class="file-list__item file-list__item--{{size}} oak-item-class" style="{{itemSizePercentage?'width:'+itemSizePercentage+'padding-bottom:'+itemSizePercentage:'xxx'}}">
<OakDisplay data-index="{{index}}" bind:tap="onItemTapped" mode="{{mode}}" oakPath="{{oakFullpath}}.{{item.id}}" />
<view wx:if="{{!disableDelete}}" mut-bind:tap="onDeleteByMp" class="file-list__remove" data-value="{{item}}">
<t-icon name="close" color="#ffffff" size="18" />
<l-icon name="close" color="#ffffff" size="18" />
</view>
</view>
</block>
</block>
<view class="file-list__item file-list__item--add file-list__item--{{size}} l-item-class" style="{{itemSizePercentage?'width:'+itemSizePercentage+'padding-bottom:'+itemSizePercentage:''}}" wx:if="{{!disableInsert}}" bind:tap="onPickByMp">
<view class="file-list__item file-list__item--add file-list__item--{{size}} oak-item-class" style="{{itemSizePercentage?'width:'+itemSizePercentage+'padding-bottom:'+itemSizePercentage:''}}" wx:if="{{!disableInsert}}" bind:tap="onPickByMp">
<view class="file-list__item-slot-wrapper">
<slot />
</view>

View File

@ -8,7 +8,6 @@ import {
Tag,
Button,
Table,
UploadProps,
} from 'antd';
import { PlusOutlined } from '@ant-design/icons';
import classNames from 'classnames';
@ -30,8 +29,8 @@ function extraFileToUploadFile(
id: extraFile.id,
url: composeFileUrl(extraFile, systemConfig),
thumbUrl: composeFileUrl(extraFile, systemConfig),
name: extraFile.filename,
fileName: extraFile.filename,
name: extraFile.filename + (extraFile.extension || ''),
fileName: extraFile.filename + (extraFile.extension || ''),
size: extraFile.size!,
type: extraFile.fileType,
uid: extraFile.id, //upload 组件需要uid来维护fileList

View File

@ -175,6 +175,19 @@ export default function render(props: WebComponentProps<EntityDict, 'address', t
Reset
</Button>
</Tooltip>
<Tooltip title="查看OakIcon">
<Button
size="large"
type="primary"
shape="circle"
onClick={() => {
window.open('/icon')
}}
>
Icon
</Button>
</Tooltip>
</Space>
</Drawer>
</React.Fragment>

View File

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "OakIcon示例",
"usingComponents": {}
}

View File

@ -0,0 +1,6 @@
.page-body {
display: flex;
}

6
src/pages/icon/index.ts Normal file
View File

@ -0,0 +1,6 @@
export default OakComponent({
isList: true,
methods: {
},
});

4
src/pages/icon/index.xml Normal file
View File

@ -0,0 +1,4 @@
<!-- index.wxml -->
<view class="page-body">
未实现
</view>

View File

@ -0,0 +1,6 @@
.container {
height: 100vh;
display: flex;
flex-direction: column;
background-color: var(--oak-bg-color-page);
}

15
src/pages/icon/web.tsx Normal file
View File

@ -0,0 +1,15 @@
import React, { useState } from 'react';
import { List, Button, Avatar, Input, Drawer } from 'antd';
import { EntityDict } from '../../general-app-domain';
import { WebComponentProps } from 'oak-frontend-base';
import Style from './web.module.less';
export default function Render(
props: WebComponentProps<EntityDict, 'token', true, {}, {}>
) {
return <div className={Style.container}>
1122
</div>;
}