Merge branch 'dev' of codeup.aliyun.com:61c14a7efa282c88e103c23f/oak-frontend-base into dev
This commit is contained in:
commit
55a404611f
|
|
@ -1,5 +1,5 @@
|
|||
import { assert } from 'oak-domain/lib/utils/assert';
|
||||
import { getFilterName } from '../filter2/utils';
|
||||
import { getFilterName } from '../filter/utils';
|
||||
export default OakComponent({
|
||||
isList: true,
|
||||
data: {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import React, { useState } from 'react';
|
||||
import { Button, Space, Form, Badge, Row, Col } from 'antd';
|
||||
import { DownOutlined, UpOutlined } from '@ant-design/icons';
|
||||
import Filter from '../filter2';
|
||||
import { getFilterName } from '../filter2/utils';
|
||||
import Filter from '../filter';
|
||||
import { getFilterName } from '../filter/utils';
|
||||
import Style from './web.module.less';
|
||||
const DEFAULT_COLUMN_MAP = {
|
||||
xxl: 4,
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
import React, { useState } from 'react';
|
||||
import styles from './index.module.less';
|
||||
import { Space, Checkbox, Divider, Modal, Image } from 'antd';
|
||||
import { Space, Checkbox, Divider, Image } from 'antd';
|
||||
import { EyeOutlined, } from '@ant-design/icons';
|
||||
const { confirm } = Modal;
|
||||
function MaskView(props) {
|
||||
const { selected, onClick, setVisibleTrue } = props;
|
||||
return (<div className={selected ? styles['mask-checked'] : styles.mask} onClick={onClick}>
|
||||
|
|
|
|||
|
|
@ -6,8 +6,9 @@ type buttonProps = {
|
|||
onClick: () => void;
|
||||
};
|
||||
type ToolBarProps = {
|
||||
title?: string;
|
||||
title?: React.ReactNode;
|
||||
buttonGroup?: buttonProps[];
|
||||
extraContent?: React.ReactNode;
|
||||
reload: () => void;
|
||||
};
|
||||
declare function ToolBar(props: ToolBarProps): React.JSX.Element;
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ import ColumnSetting from '../columnSetting';
|
|||
import { useFeatures } from '../../../platforms/web';
|
||||
import Style from './index.module.less';
|
||||
function ToolBar(props) {
|
||||
const { title, buttonGroup, reload } = props;
|
||||
const { title, buttonGroup, reload, extraContent } = props;
|
||||
const features = useFeatures();
|
||||
return (<div className={Style.toolbarContainer}>
|
||||
<div className={Style.title}>{title}</div>
|
||||
<div className={Style.toolbarRight}>
|
||||
<Space>
|
||||
{extraContent}
|
||||
{buttonGroup && buttonGroup.length > 0 && (<ButtonGroup items={buttonGroup}/>)}
|
||||
<Tooltip title={features.locales.t('reload')}>
|
||||
<div className={Style.reloadIconBox} onClick={() => {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
color: rgba(42, 46, 54, 0.88);
|
||||
font-weight: bolder;
|
||||
padding-left: 10px;
|
||||
font-size: var(--oak-font-size-title-large);
|
||||
font-size: var(--oak-font-size-title-small);
|
||||
}
|
||||
|
|
@ -4,7 +4,9 @@ import { StorageSchema } from 'oak-domain/lib/types/Storage';
|
|||
import { OakAbsAttrDef, onActionFnDef, OakExtraActionProps, ListButtonProps, ED, OakAbsAttrJudgeDef } from '../../types/AbstractComponent';
|
||||
import { RowWithActions } from '../../types/Page';
|
||||
type Props<ED2 extends ED, T extends keyof ED2> = {
|
||||
title?: string;
|
||||
title?: string | React.ReactNode;
|
||||
extraContent?: React.ReactNode;
|
||||
hideDefaultButtons?: boolean;
|
||||
buttonGroup?: ListButtonProps[];
|
||||
onReload?: () => void;
|
||||
entity: T;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ export const TableContext = createContext({
|
|||
onReset: undefined,
|
||||
});
|
||||
const ProList = (props) => {
|
||||
const { title, buttonGroup, entity, extraActions, onAction, disabledOp, attributes, data, loading, tablePagination, rowSelection, onReload, disableSerialNumber, } = props;
|
||||
const { buttonGroup, entity, extraActions, onAction, disabledOp, attributes, data, loading, tablePagination, rowSelection, onReload, disableSerialNumber, title, hideDefaultButtons = false, extraContent, } = props;
|
||||
const features = useFeatures();
|
||||
const [tableAttributes, setTableAttributes] = useState([]);
|
||||
const [schema, setSchema] = useState(undefined);
|
||||
|
|
@ -68,7 +68,7 @@ const ProList = (props) => {
|
|||
},
|
||||
}}>
|
||||
<div className={Style.container}>
|
||||
{!isMobile && (<ToolBar title={title} buttonGroup={buttonGroup} reload={() => {
|
||||
{!isMobile && !hideDefaultButtons && (<ToolBar title={title} extraContent={extraContent} buttonGroup={buttonGroup} reload={() => {
|
||||
onReload && onReload();
|
||||
}}/>)}
|
||||
{isMobile && <ButtonGroup items={buttonGroup}/>}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
/// <reference types="react" />
|
||||
import { EntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { ReactComponentProps } from '../../types/Page';
|
||||
declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, false, {
|
||||
style?: import("react").CSSProperties | undefined;
|
||||
className?: string | undefined;
|
||||
showHeader?: boolean | undefined;
|
||||
showBack?: boolean | undefined;
|
||||
onBack?: (() => void) | undefined;
|
||||
backIcon?: React.ReactNode;
|
||||
delta?: number | undefined;
|
||||
title?: React.ReactNode;
|
||||
subTitle?: React.ReactNode;
|
||||
tags?: React.ReactNode;
|
||||
extra?: React.ReactNode;
|
||||
children?: React.ReactNode;
|
||||
content: React.ReactNode;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
export default OakComponent({
|
||||
isList: false,
|
||||
methods: {
|
||||
goBack(delta) {
|
||||
this.navigateBack(delta);
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
.oak-pageHeader {
|
||||
.oak-new-pageHeader {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
|
|
@ -12,7 +12,29 @@
|
|||
position: relative;
|
||||
padding: 10px 20px;
|
||||
color: #000;
|
||||
background: var(--oak-bg-color-container);
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
&-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&-back {
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
transition: color .3s;
|
||||
color: #000;
|
||||
border: 0px;
|
||||
background: transparent;
|
||||
padding: 0px;
|
||||
line-height: inherit;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
&-backIcon {
|
||||
width: 16px;
|
||||
|
|
@ -26,7 +48,6 @@
|
|||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
margin-right: 20px;
|
||||
max-width: 70%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
-o-text-overflow: ellipsis;
|
||||
|
|
@ -46,20 +67,31 @@
|
|||
margin-right: 24px;
|
||||
}
|
||||
|
||||
&-col {
|
||||
&-extra {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
&-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
margin: 12px 12px 12px 12px;
|
||||
|
||||
&-margin {
|
||||
margin: 12px;
|
||||
}
|
||||
padding: 16px 32px;
|
||||
}
|
||||
|
||||
&-body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
margin: 0px 12px 12px 12px;
|
||||
|
||||
background: var(--oak-bg-color-container);
|
||||
box-shadow: 0 2px 3px #0000001a;
|
||||
border-radius: 3px;
|
||||
padding: 30px 32px;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import React from 'react';
|
||||
import { WebComponentProps } from '../../types/Page';
|
||||
import { EntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import './index.less';
|
||||
type PageHeaderProps = {
|
||||
style?: React.CSSProperties;
|
||||
className?: string;
|
||||
showHeader?: boolean;
|
||||
showBack?: boolean;
|
||||
onBack?: () => void;
|
||||
backIcon?: React.ReactNode;
|
||||
delta?: number;
|
||||
title?: React.ReactNode;
|
||||
subTitle?: React.ReactNode;
|
||||
tags?: React.ReactNode;
|
||||
extra?: React.ReactNode;
|
||||
children?: React.ReactNode;
|
||||
content?: React.ReactNode;
|
||||
};
|
||||
type ED = EntityDict & BaseEntityDict;
|
||||
export default function Render(props: WebComponentProps<ED, keyof ED, false, PageHeaderProps, {
|
||||
goBack: (delta?: number) => void;
|
||||
}>): React.JSX.Element;
|
||||
export {};
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
import React from 'react';
|
||||
import { Button } from 'antd';
|
||||
import { ArrowLeftOutlined } from '@ant-design/icons';
|
||||
import classNames from 'classnames';
|
||||
import './index.less';
|
||||
export default function Render(props) {
|
||||
const { style, className, showHeader = true, showBack = false, onBack, backIcon, delta, title, subTitle, extra, tags, children, content,
|
||||
// contentStyle,
|
||||
// contentClassName,
|
||||
// bodyStyle,
|
||||
// bodyClassName,
|
||||
} = props.data;
|
||||
const { t, goBack } = props.methods;
|
||||
const prefixCls = 'oak-new';
|
||||
return (<div style={style} className={classNames(`${prefixCls}-pageHeader`, className)}>
|
||||
{showHeader && (title || showBack || subTitle || tags || extra) && (<div className={`${prefixCls}-pageHeader-header`}>
|
||||
<div className={`${prefixCls}-pageHeader-header-left`}>
|
||||
{showBack && (<Button type="text" className={`${prefixCls}-pageHeader-header-back`} onClick={() => {
|
||||
if (typeof onBack === 'function') {
|
||||
onBack();
|
||||
return;
|
||||
}
|
||||
goBack(delta);
|
||||
}}>
|
||||
{backIcon || (<ArrowLeftOutlined className={`${prefixCls}-pageHeader-header-backIcon`}/>)}
|
||||
</Button>)}
|
||||
{title && (<span className={`${prefixCls}-pageHeader-header-title`}>
|
||||
{title}
|
||||
</span>)}
|
||||
{subTitle && (<span className={`${prefixCls}-pageHeader-header-subTitle`}>
|
||||
{subTitle}
|
||||
</span>)}
|
||||
{tags}
|
||||
</div>
|
||||
<div className={`${prefixCls}-pageHeader-header-extra`}>
|
||||
{extra}
|
||||
</div>
|
||||
</div>)}
|
||||
|
||||
{content ? (<div
|
||||
// style={contentStyle}
|
||||
className={classNames(`${prefixCls}-pageHeader-content`
|
||||
// contentClassName
|
||||
)}>
|
||||
{content}
|
||||
</div>) : null}
|
||||
|
||||
<div
|
||||
// style={bodyStyle}
|
||||
className={classNames(`${prefixCls}-pageHeader-body`
|
||||
// bodyClassName
|
||||
)}>
|
||||
{children}
|
||||
</div>
|
||||
</div>);
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"l-dialog": "../../miniprogram_npm/lin-ui/dialog/index",
|
||||
"l-button": "../../miniprogram_npm/lin-ui/button/index",
|
||||
"l-popup": "../../miniprogram_npm/lin-ui/popup/index",
|
||||
"oak-icon": "../icon/index",
|
||||
"popover": "../../miniprogram_npm/popover/popover",
|
||||
"popover-item": "../../miniprogram_npm/popover/popover-item"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
.container {
|
||||
padding: 20rpx;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
}
|
||||
.btn {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 4px 15px;
|
||||
}
|
||||
.btn-icon {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 4px 15px;
|
||||
}
|
||||
.btn-text {
|
||||
font-size: 28rpx;
|
||||
color: var(--oak-color-primary);
|
||||
}
|
||||
.divider {
|
||||
width: 2rpx;
|
||||
height: 20rpx;
|
||||
background-color: #e0e0e0;
|
||||
}
|
||||
|
||||
.draw-container {
|
||||
border-radius: 20rpx;
|
||||
width: 500rpx;
|
||||
background-color: #fff;
|
||||
.title-view {
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
font-weight: 600;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-bottom: 1px solid rgba(200, 200, 200, 0.2);
|
||||
}
|
||||
.border {
|
||||
border-bottom: 1px solid rgba(200, 200, 200, 0.2);
|
||||
}
|
||||
.draw-content {
|
||||
max-height: 480rpx;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.draw-cell {
|
||||
color: var(--oak-color-primary);
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
<view class="container">
|
||||
<block wx:for="{{items}}" wx:key="index">
|
||||
<view class="btn" data-action="{{item.action}}" data-path="{{item.path}}" bindtap="onActionMp">
|
||||
<view class="btn-text">
|
||||
{{item.label}}
|
||||
</view>
|
||||
</view>
|
||||
<block wx:if="{{index !== items.length - 1}}">
|
||||
<view class="divider"></view>
|
||||
</block>
|
||||
</block>
|
||||
<view class="divider"></view>
|
||||
<block wx:if="{{moreItems && moreItems.length > 0}}">
|
||||
<view class="btn-icon" bindtap="handleShow">
|
||||
<oak-icon name="switch" size="24"></oak-icon>
|
||||
</view>
|
||||
<l-popup show="{{showMore}}" content-align="center">
|
||||
<view class="draw-container">
|
||||
<view class="title-view">
|
||||
操作
|
||||
</view>
|
||||
<view class="draw-content">
|
||||
<view class="draw-cell border" wx:for="{{moreItems}}" wx:key="index" data-path="{{item.path}}" data-action="{{item.action}}" bindtap="onActionMp">
|
||||
{{item.label}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</l-popup>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
.container {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
}
|
||||
.btn {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 4px 15px;
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
.panelContainer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 10px 5px;
|
||||
}
|
||||
|
||||
.more {
|
||||
white-space: nowrap;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
padding: 5px;
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"l-dialog": "../../miniprogram_npm/lin-ui/dialog/index",
|
||||
"l-button": "../../miniprogram_npm/lin-ui/button/index",
|
||||
"popover": "../../miniprogram_npm/popover/popover",
|
||||
"popover-item": "../../miniprogram_npm/popover/popover-item"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
|
||||
.panel-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20rpx 10rpx;
|
||||
}
|
||||
|
||||
.more {
|
||||
white-space: nowrap;
|
||||
font-size: 28rpx;
|
||||
color: #000;
|
||||
padding: 10rpx;
|
||||
}
|
||||
|
||||
.btn-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
flex-wrap: wrap;
|
||||
width: 100%;
|
||||
gap: 16rpx;
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
<block wx:if="{{ newItems && newItems.length > 0 }}">
|
||||
<view class="panel-container">
|
||||
<block wx:if="{{ moreItems && moreItems.length > 0 }}">
|
||||
<view id='more' class="more" catchtap="handleMoreClick">
|
||||
更多
|
||||
</view>
|
||||
<popover id='popover'>
|
||||
<block wx:for="{{ moreItems }}" wx:key="index">
|
||||
<popover-item hasline catchtap='handleClick' data-type="popover" data-item="{{ item }}">{{ item.text }}</popover-item>
|
||||
</block>
|
||||
</popover>
|
||||
</block>
|
||||
|
||||
|
||||
<view class="btn-container">
|
||||
|
||||
<block wx:for="{{ newItems }}" wx:key="index">
|
||||
<l-button plain="{{true}}" shape="{{ item.buttonProps.shape || 'square' }}" catchtap="handleClick" data-item="{{ item }}">
|
||||
{{item.text}}
|
||||
</l-button>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
|
||||
<l-dialog id="my-action-btn-dialog" bind:linconfirm="linconfirm" bind:lincancel="lincancel" />
|
||||
|
||||
</block>
|
||||
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
.panelContainer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 10px 5px;
|
||||
}
|
||||
|
||||
.more {
|
||||
white-space: nowrap;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
padding: 5px;
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"oak-icon": "../icon/index",
|
||||
"l-dialog": "../../miniprogram_npm/lin-ui/dialog/index"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
|
||||
|
||||
.tab-container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.scroll-view {
|
||||
white-space: nowrap;
|
||||
|
||||
border-radius: 10rpx;
|
||||
width: 100%;
|
||||
padding-top: 20rpx;
|
||||
padding-bottom: 24rpx;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.tab-view {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.slide-bar {
|
||||
width: 100rpx;
|
||||
height: 8rpx;
|
||||
position: absolute;
|
||||
background-color: #eee;
|
||||
border-radius: 4rpx;
|
||||
bottom: 6rpx;
|
||||
left: 50%;
|
||||
transform: translateX(-50%) translateY(-50%);
|
||||
}
|
||||
|
||||
.slide-show {
|
||||
height: 100%;
|
||||
background-color: #8f8f8f;
|
||||
}
|
||||
|
||||
.btn-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.btn-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.btn-box:active {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
.btn-box{
|
||||
margin-top: 20rpx,
|
||||
}
|
||||
|
||||
.btn-name {
|
||||
font-size: 28rpx;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.icon {
|
||||
font-size: 30rpx;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.icon-white {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.icon-box {
|
||||
font-size: 30rpx;
|
||||
width: 96rpx;
|
||||
height: 96rpx;
|
||||
min-width: 96rpx;
|
||||
border-radius: 16rpx;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<block wx:if="{{ newItems && newItems.length > 0 }}">
|
||||
<view class="tab-container">
|
||||
<scroll-view class="scroll-view" scroll-x="true" bindscroll="scroll" style="height: 100%;">
|
||||
<view class="tab-view" wx:for="{{ tabNums }}" wx:key="idx" wx:for-item="tabNum" wx:for-index="idx">
|
||||
<view class="btn-container">
|
||||
<block wx:for="{{ newItems }}" wx:key="index">
|
||||
<block wx:if="{{ ((tabNum -1) * count) < index + 1 && index + 1 <= (tabNum * count) }}">
|
||||
<view style="width: calc(100% / {{ column }})" class="btn-box {{ newItems.length > column && index > column - 1 ? 'btn-box_top' : '' }}" bindtap="handleClick" data-item="{{ item }}" >
|
||||
<block wx:if="{{ mode === 'card' }}">
|
||||
<view class="icon-box {{ item.iconProps.rootStyle }}" style="{{ item.iconProps.bgColor ? 'background-color:' + item.iconProps.bgColor : '' }}">
|
||||
<oak-icon name="{{ item.icon }}" size="24" color="{{ item.iconColor || '' }}" oak-class="icon {{ item.iconProps.bgColor ? 'icon-white' : '' }} {{ item.iconProps.style }}" />
|
||||
</view>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<oak-icon name="{{ item.icon }}" size="24" color="{{ item.iconColor || '' }}" oak-class="icon {{ item.iconProps.bgColor ? 'icon-white' : '' }} {{ item.iconProps.style }}"/>
|
||||
</block>
|
||||
|
||||
<view class="btn-name">
|
||||
{{ item.text }}
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<block wx:if="{{ slideShow }}">
|
||||
<view class="slide-bar">
|
||||
<view class="slide-show" style="width:{{slideWidth}}rpx; margin-left:{{slideLeft <= 1 ? 0 : slideLeft + 'rpx'}};"></view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<l-dialog id="my-action-tab-dialog" bind:linconfirm="linconfirm" bind:lincancel="lincancel" />
|
||||
|
||||
</block>
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
|
||||
.tabContainer {
|
||||
position: relative,
|
||||
}
|
||||
|
||||
.scrollBox {
|
||||
width: 100%;
|
||||
overflow-y: hidden;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.scrollView {
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
overflow-y: hidden;
|
||||
overflow-x: auto;
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
background-color: transparent;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.tabView {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
display: -webkit-inline-box;
|
||||
}
|
||||
|
||||
.slideBar {
|
||||
width: 50px;
|
||||
height: 4px;
|
||||
position: absolute;
|
||||
background-color: #eee;
|
||||
border-radius: 2px;
|
||||
bottom: 6px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%) translateY(-50%);
|
||||
}
|
||||
|
||||
.slideShow {
|
||||
height: 100%;
|
||||
background-color: #8f8f8f;
|
||||
}
|
||||
|
||||
.btnContainer {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.btnBox {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.btnBox_top {
|
||||
margin-top: 10px,
|
||||
}
|
||||
|
||||
.btn {
|
||||
height: unset !important;
|
||||
}
|
||||
|
||||
.space {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
font-size:24px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.iconWhite {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.iconBox {
|
||||
font-size: 24px;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
min-width: 48px;
|
||||
border-radius: 8px;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"l-dialog": "../../miniprogram_npm/lin-ui/dialog/index",
|
||||
"l-button": "../../miniprogram_npm/lin-ui/button/index",
|
||||
"l-tag": "../../miniprogram_npm/lin-ui/tag/index",
|
||||
"popover": "../../miniprogram_npm/popover/popover",
|
||||
"popover-item": "../../miniprogram_npm/popover/popover-item"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,171 +0,0 @@
|
|||
@import '../../config/styles/mp/index.less';
|
||||
@import '../../config/styles/mp/mixins.less';
|
||||
.container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
background-color: var(--oak-bg-color-page);
|
||||
padding-bottom: 50rpx;
|
||||
}
|
||||
.btn-view {
|
||||
padding: 20rpx;
|
||||
padding-bottom: 50rpx;
|
||||
width: 100vw;
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
bottom: 0;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
.actions-btn-content {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
.more-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||
}
|
||||
.circle-btn {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.circle-text {
|
||||
margin-top: 16rpx;
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
.card {
|
||||
margin: 20rpx;
|
||||
margin-bottom: 0rpx;
|
||||
border-radius: 20rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.title-view {
|
||||
padding: 20rpx 40rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 0.8px solid rgba(200, 200, 200, 0.2);
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: 600;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
.card-content {
|
||||
padding: 40rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.text-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.label {
|
||||
min-width: 160rpx;
|
||||
color: #888;
|
||||
}
|
||||
.download {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
.download-text {
|
||||
color: var(--oak-color-primary);
|
||||
}
|
||||
}
|
||||
.img-view {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
.img {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.state-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.badge {
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--oak-color-success);
|
||||
margin-right: 5px;
|
||||
}
|
||||
.effective {
|
||||
background-color: var(--oak-color-success);
|
||||
}
|
||||
.interrupted {
|
||||
background-color: var(--oak-color-error);
|
||||
}
|
||||
// .inCharge {
|
||||
// background-color: var(--oak-color-primary);
|
||||
// }
|
||||
.overdue {
|
||||
background-color: var(--oak-color-warning);
|
||||
}
|
||||
}
|
||||
[class='text-view']:not(:last-child) {
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
[class='btn']:not(:last-child) {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.draw-container {
|
||||
width: 500rpx;
|
||||
background-color: #fff;
|
||||
.draw-content {
|
||||
max-height: 500rpx;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.draw-cell {
|
||||
color: var(--oak-color-primary);
|
||||
width: 100%;
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.primary-panel {
|
||||
margin: 20rpx;
|
||||
padding: 40rpx;
|
||||
border-radius: 32rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: #fff;
|
||||
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 3%), 0 1px 6px -1px rgb(0 0 0 / 2%),
|
||||
0 2px 4px 0 rgb(0 0 0 / 2%);
|
||||
background: linear-gradient(120deg, var(--oak-color-primary), #1ca3da);
|
||||
.panel-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.text-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.tab-content {
|
||||
margin-bottom: 160rpx;
|
||||
min-height: 140rpx;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 28rpx;
|
||||
color: rgba(140, 152, 174, 1);
|
||||
}
|
||||
[class='img']:not(:last-child) {
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
<view class="container">
|
||||
<view class="card">
|
||||
<!-- <view class="title-view">
|
||||
<view class="title">
|
||||
{{name}}
|
||||
</view>
|
||||
<view class="state-view">
|
||||
<l-tag bg-color="{{StateColorMp[iState]}}" shape="circle"> {{t('rsContract:v.iState.' + iState)}}</l-tag>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="card-content">
|
||||
<view wx:for="{{renderData}}">
|
||||
<view class="text-view" wx:if="{{item.type === 'img'}}">
|
||||
<text class="label">{{item.label}}</text>
|
||||
<view class="img-view">
|
||||
<block wx:for="{{item.value}}" wx:key="index" wx:for-item="imgItem">
|
||||
<image class="img" src="{{imgItem}}" data-src="{{imgItem}}" data-list="{{item.value}}" mode="aspectFit" bindtap="preview" />
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<view class="text-view" wx:if="{{item.type === 'enum'}}">
|
||||
<text class="label">{{item.label}}</text>
|
||||
<view class="img-view">
|
||||
<!-- <block wx:for="{{item.value}}" wx:key="index" wx:for-item="imgItem"> -->
|
||||
<!-- {{t(entity+':v.' + item.attr + '.' + item.value)}} -->
|
||||
<!-- </block> -->
|
||||
<!-- <l-tag shape="circle"> {{t(entity+':v.' + item.attr + '.' + item.value)}}</l-tag> -->
|
||||
<l-tag bg-color="{{colorDict[entity][item.attr][item.value]}}" shape="circle"> {{t(entity+':v.' + item.attr + '.' + item.value)}}</l-tag>
|
||||
</view>
|
||||
</view>
|
||||
<view class="text-view" wx:if="{{item.type !== 'img' && item.type !== 'enum'}}">
|
||||
<text class="label">{{item.label}}</text>
|
||||
<text>{{item.value || '未填写'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
|
||||
{
|
||||
"not_filled_in": "未填写"
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
.panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.title {
|
||||
padding-block: 20px 10px;
|
||||
padding-inline: 10px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
text-align: left;
|
||||
}
|
||||
.panel_content {
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
}
|
||||
.renderRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.renderLabel {
|
||||
min-width: 140px;
|
||||
margin-right: 16px;
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
.renderValue {
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
[class='renderRow']:not(:last-child) {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.img {
|
||||
object-fit: contain;
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"component": true
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"useWideScreen": "本页面较为复杂,请使用宽屏查看"
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
.container {
|
||||
background-color: var(--oak-bg-color-container);
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.container {
|
||||
background-color: var(--oak-bg-color-container);
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"oak-filter": "../filter2/index",
|
||||
"l-collapse": "../../miniprogram_npm/lin-ui/collapse/index",
|
||||
"l-button": "../../miniprogram_npm/lin-ui/button/index",
|
||||
"l-icon": "../../miniprogram_npm/lin-ui/icon/index",
|
||||
"l-collapse-item": "../../miniprogram_npm/lin-ui/collapse-item/index"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
.filter-item {
|
||||
width: 100%;
|
||||
}
|
||||
.filter-item-mb {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.ticket-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border: 1px #eee dotted;
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
|
||||
.ticket-container-top {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 40rpx 30rpx;
|
||||
}
|
||||
|
||||
.ticket-left {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.ticket-left > .name {
|
||||
color: #333333;
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ticket-left > .date {
|
||||
margin-top: 16rpx;
|
||||
color: #999;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.ticket-right {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
color: #3963BC;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.ticket-right > .number {
|
||||
font-size: 50rpx;
|
||||
}
|
||||
|
||||
.ticket-right > .text{
|
||||
font-size: 24rpx;
|
||||
margin-left: 6rpx;
|
||||
}
|
||||
|
||||
.ticket-container-bottom{
|
||||
border-top: 1px #eee dashed;
|
||||
padding: 10rpx 30rpx;
|
||||
}
|
||||
|
||||
.ticket-container-bottom .title{
|
||||
width: 100%;
|
||||
font-size: 22rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between ;
|
||||
}
|
||||
|
||||
.ticket-container-bottom text{
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.l-title-class{
|
||||
padding-left: 0rpx !important;
|
||||
padding-right: 0rpx !important;
|
||||
}
|
||||
|
||||
.l-body-class{
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
|
||||
.ticket-detail-container{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ticket-detail-container l-icon{
|
||||
margin-left: 6rpx;
|
||||
}
|
||||
.space-vertical {
|
||||
margin-top: 20rpx;
|
||||
transition: height .3s ease-in-out;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
<view class="ticket-container">
|
||||
<view class="ticket-container-top">
|
||||
<block wx:for="{{columnsMp}}" wx:key="attr">
|
||||
<view class="filter-item {{index !== columnsMp.length - 1 ? 'filter-item-mb' : ''}}">
|
||||
<oak-filter column="{{item}}" oakPath="{{oakFullpath}}" entity="{{entity}}" />
|
||||
</view>
|
||||
</block>
|
||||
<view class="space-vertical" style="height: {{isExpandContent ? 72*moreColumnsMp.length + 20*(moreColumnsMp.length - 1) : 0}}rpx">
|
||||
<block wx:for="{{moreColumnsMp}}" wx:key="attr">
|
||||
<view class="filter-item {{index !== columnsMp.length - 1 ? 'filter-item-mb' : ''}}">
|
||||
<oak-filter column="{{item}}" oakPath="{{oakFullpath}}" entity="{{entity}}" />
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ticket-container-bottom">
|
||||
<view class="title">
|
||||
<block wx:if="{{moreColumnsMp && moreColumnsMp.length}}">
|
||||
<view class="ticket-detail-container" bindtap="toggleExpand">
|
||||
{{isExpandContent ? '收起' : '展开'}}
|
||||
<l-icon name="down" size="16" color="#999" style="{{isExpandContent ? 'transform:rotate(-180deg);' : ''}}"/>
|
||||
</view>
|
||||
</block>
|
||||
<view class="btn-view">
|
||||
<l-button l-class bind:lintap="resetFiltersMp" height="50" size="mini" shape="semicircle" plain="{{true}}" type="error" style="margin-right: 10rpx">重置</l-button>
|
||||
<l-button l-class bind:lintap="confirmSearchMp" height="50" size="mini" shape="semicircle" plain="{{true}}">搜索</l-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
.actionBox {
|
||||
justify-content: flex-end;
|
||||
width: 100%;
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"component": true
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
@import './iconfont.less';
|
||||
@import '../../config/styles/mp/index.less';
|
||||
|
||||
.oak-icon__primary {
|
||||
color: @oak-color-primary;
|
||||
}
|
||||
|
||||
.oak-icon__error {
|
||||
color: @oak-color-error;
|
||||
}
|
||||
|
||||
.oak-icon__warning {
|
||||
color: @oak-color-warning;
|
||||
}
|
||||
|
||||
.oak-icon__success {
|
||||
color: @oak-color-success;
|
||||
}
|
||||
|
||||
.oak-icon__info {
|
||||
color: @oak-color-info;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
<view class="oak-icon {{ name === '' ? '' : 'oak-icon-' + name }} {{ color === '' || color === 'primary' || color === 'info' || color === 'error' || color === 'success' || color === 'warning' ? 'oak-icon__' + (color || 'primary') : ''}} oak-class" style="font-size: {{ size || 14 }}px; {{ color && color !== 'primary' && color !== 'info'&& color !== 'error'&& color !== 'success'&& color !== 'warning' ? 'color:' + color : '' }}"></view>
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
@import './iconfont.less';
|
||||
|
||||
.oak-icon__primary {
|
||||
color: var(--oak-color-primary);
|
||||
}
|
||||
|
||||
.oak-icon__error {
|
||||
color: var(--oak-color-error);
|
||||
}
|
||||
|
||||
.oak-icon__warning {
|
||||
color: var(--oak-color-warning);
|
||||
}
|
||||
|
||||
.oak-icon__success {
|
||||
color: var(--oak-color-success);
|
||||
}
|
||||
|
||||
.oak-icon__info {
|
||||
color: var(--oak-color-info);
|
||||
}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
.imgBoxBorder {
|
||||
position: relative;
|
||||
padding: 4px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
.imgBox {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.mask {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
box-sizing: border-box;
|
||||
padding: 8px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
opacity: 0;
|
||||
background-color: rgba(0, 0, 0, .6);
|
||||
color: var(--oak-text-color-anti);
|
||||
line-height: 22px;
|
||||
transition: .2s;
|
||||
z-index: 10;
|
||||
&-checked {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
box-sizing: border-box;
|
||||
padding: 8px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
opacity: 1;
|
||||
background-color: rgba(0, 0, 0, .6);
|
||||
color: var(--oak-text-color-anti);
|
||||
line-height: 22px;
|
||||
transition: .2s;
|
||||
z-index: 10;
|
||||
}
|
||||
}
|
||||
|
||||
.imgBoxBorder:hover .mask {
|
||||
opacity: 1;
|
||||
cursor: pointer;
|
||||
}
|
||||
.imgBox:hover .mask {
|
||||
opacity: 1;
|
||||
cursor: pointer;
|
||||
}
|
||||
.row2 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
.titleView {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.iconBox {
|
||||
margin-block: 0;
|
||||
margin-inline: 4px;
|
||||
color: rgba(42, 46, 54, 0.88);
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.iconBox:hover {
|
||||
color: var(--oak-color-primary);
|
||||
}
|
||||
.listItem {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.listItemView {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 132px;
|
||||
transition: all 0.3s;
|
||||
.listItemTitle {
|
||||
flex: 1;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.listIconView {
|
||||
display: none;
|
||||
margin-left: 4px;
|
||||
align-items: center;
|
||||
.listIcon {
|
||||
color: var(--oak-color-primary);
|
||||
margin-inline: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.listItemView:hover .listIconView {
|
||||
display: flex;
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
|
||||
{
|
||||
"columnSetting": "列设置",
|
||||
"leftPin": "固定在列首",
|
||||
"rightPin": "固定在列尾"
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"l-dialog": "../../miniprogram_npm/lin-ui/dialog/index",
|
||||
"l-button": "../../miniprogram_npm/lin-ui/button/index",
|
||||
"action-btn": "../actionBtn/index",
|
||||
"popover": "../../miniprogram_npm/popover/popover",
|
||||
"popover-item": "../../miniprogram_npm/popover/popover-item"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
@import '../../config/styles/mp/index.less';
|
||||
@import '../../config/styles/mp/mixins.less';
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
background-color: var(--oak-bg-color-page);
|
||||
}
|
||||
.loading{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex: 1;
|
||||
}
|
||||
.list-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
margin-bottom: 20rpx;
|
||||
.safe-area-inset-bottom();
|
||||
}
|
||||
.sticky-view {
|
||||
z-index: 100;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: #fff;
|
||||
}
|
||||
.search-view {
|
||||
padding: 20rpx;
|
||||
}
|
||||
.card {
|
||||
margin: 20rpx;
|
||||
margin-bottom: 0rpx;
|
||||
border-radius: 20rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.title-view {
|
||||
padding: 20rpx 40rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 0.8px solid rgba(200, 200, 200, 0.2);
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
.card-content {
|
||||
padding: 40rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.text-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.label {
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
.state-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.badge {
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--oak-color-success);
|
||||
margin-right: 5px;
|
||||
}
|
||||
.success {
|
||||
background-color: var(--oak-color-success);
|
||||
}
|
||||
.error {
|
||||
background-color: var(--oak-color-error);
|
||||
}
|
||||
.warning {
|
||||
background-color: var(--oak-color-warning);
|
||||
}
|
||||
.default {
|
||||
background-color: var(--oak-color-primary);
|
||||
}
|
||||
}
|
||||
[class='text-view']:not(:last-child) {
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<view class="container">
|
||||
<block wx:if="{{oakLoading}}">
|
||||
<view class="loading">
|
||||
<l-loading show="{{true}}" type="circle">
|
||||
</l-loading>
|
||||
</view>
|
||||
</block>
|
||||
<block wx:if="{{mobileData && mobileData.length}}">
|
||||
<view class="list-container">
|
||||
<view class="card" wx:for="{{mobileData}}" wx:key="index">
|
||||
<block wx:if="{{item.data && item.data.length > 0}}">
|
||||
<view class="card-content">
|
||||
<block wx:for="{{item.data}}" wx:for-item="row" wx:key="index">
|
||||
<view class="text-view">
|
||||
<text class="label">{{row.label}}</text>
|
||||
<text>{{row.value}}</text>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
</block>
|
||||
<block wx:if="{{!disabledOp}}">
|
||||
<action-btn
|
||||
data-row="{{item.record}}"
|
||||
entity="{{entity}}"
|
||||
extraActions="{{extraActions}}"
|
||||
actions="{{item.record['#oakLegalActions']}}"
|
||||
cascadeActions="{{item.record['#oakLegalCascadeActions']}}"
|
||||
bind:onAction="onActionMp"
|
||||
/>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<l-status-show show="{{true}}" type="data"></l-status-show>
|
||||
</block>
|
||||
</view>
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
.card {
|
||||
margin: 10px;
|
||||
margin-bottom: 0px;
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
|
||||
.titleView {
|
||||
padding: 10px 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 0.8px solid rgba(200, 200, 200, 0.2);
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
.cardContent {
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.textView {
|
||||
margin-block: 2px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.label {
|
||||
color: #888;
|
||||
}
|
||||
.value {
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
.stateView {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.badge {
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--oak-color-success);
|
||||
margin-right: 5px;
|
||||
}
|
||||
.success {
|
||||
background-color: var(--oak-color-success);
|
||||
}
|
||||
.error {
|
||||
background-color: var(--oak-color-error);
|
||||
}
|
||||
.waring {
|
||||
background-color: var(--oak-color-waring);
|
||||
}
|
||||
.default {
|
||||
background-color: var(--oak-color-primary);
|
||||
}
|
||||
}
|
||||
[class='text-view']:not(:last-child) {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.container {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
}
|
||||
.loadingView {
|
||||
min-height: 300px;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.text {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<block wx:if="{{value === '' || value === undefined || value === null}}">
|
||||
<view class="text">--</view>
|
||||
</block>
|
||||
<block wx:if="{{type === image}}">
|
||||
<block wx:if="{{value.length}}">
|
||||
<block wx:for="{{value}}">
|
||||
<image src="{{item}}" style="width: 100px;height: 60px" mode="aspectFit" />
|
||||
</block>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<image src="{{value}}" style="width: 100px;height: 60px" mode="aspectFit" />
|
||||
</block>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<view class="text">{{value}}</view>
|
||||
</block>
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
.toolbarContainer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding-block: 16px;
|
||||
padding-inline: 0;
|
||||
}
|
||||
.reloadIconBox {
|
||||
margin-block: 0;
|
||||
margin-inline: 4px;
|
||||
color: rgba(42, 46, 54, 0.88);
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.reloadIconBox:hover {
|
||||
color: var(--oak-color-primary);
|
||||
}
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
color: rgba(42, 46, 54, 0.88);
|
||||
font-weight: bolder;
|
||||
padding-left: 10px;
|
||||
font-size: var(--oak-font-size-title-large);
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
|
||||
{
|
||||
"reload": "刷新",
|
||||
"density": "表格密度",
|
||||
"columnSetting": "列设置",
|
||||
"fullScreen": "全屏"
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.container {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.container {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
{ "list": "列表", "total number of rows": "总行数" }
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
.location-list {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
&-meta {
|
||||
align-self: center;
|
||||
justify-self: center;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.map {
|
||||
height: 400px;
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
.actionBox {
|
||||
justify-content: flex-end;
|
||||
width: 100%;
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"l-button": "@oak-frontend-base/miniprogram_npm/lin-ui/button/index",
|
||||
"l-list": "@oak-frontend-base/miniprogram_npm/lin-ui/list/index",
|
||||
"l-input": "@oak-frontend-base/miniprogram_npm/lin-ui/input/index",
|
||||
"l-icon": "@oak-frontend-base/miniprogram_npm/lin-ui/icon/index",
|
||||
"l-textarea": "@oak-frontend-base/miniprogram_npm/lin-ui/textarea/index",
|
||||
"l-form": "@oak-frontend-base/miniprogram_npm/lin-ui/form/index",
|
||||
"l-form-item": "@oak-frontend-base/miniprogram_npm/lin-ui/form-item/index",
|
||||
"l-radio-group": "@oak-frontend-base/miniprogram_npm/lin-ui/radio-group/index",
|
||||
"l-radio": "@oak-frontend-base/miniprogram_npm/lin-ui/radio/index",
|
||||
"l-checkbox-group": "@oak-frontend-base/miniprogram_npm/lin-ui/checkbox-group/index",
|
||||
"l-checkbox": "@oak-frontend-base/miniprogram_npm/lin-ui/checkbox/index",
|
||||
"l-counter": "@oak-frontend-base/miniprogram_npm/lin-ui/counter/index",
|
||||
"l-loading": "@oak-frontend-base/miniprogram_npm/lin-ui/loading/index",
|
||||
"l-notice-bar": "@oak-frontend-base/miniprogram_npm/lin-ui/notice-bar/index"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
.container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
background-color: var(--oak-bg-color-page);
|
||||
padding-bottom: 50rpx;
|
||||
}
|
||||
.btn-view {
|
||||
padding: 20rpx;
|
||||
padding-bottom: 50rpx;
|
||||
width: 100vw;
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
bottom: 0;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: #fff;
|
||||
.actions-btn-content {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
}
|
||||
.more-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||
}
|
||||
.circle-btn {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.circle-text {
|
||||
margin-top: 16rpx;
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
.card {
|
||||
margin: 20rpx;
|
||||
margin-bottom: 0rpx;
|
||||
border-radius: 20rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
.title-view {
|
||||
padding: 20rpx 40rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 0.8px solid rgba(200, 200, 200, 0.2);
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: 600;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
.card-content {
|
||||
padding: 40rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.text-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.label {
|
||||
min-width: 160rpx;
|
||||
color: #888;
|
||||
}
|
||||
.download {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
.download-text {
|
||||
color: var(--oak-color-primary);
|
||||
}
|
||||
}
|
||||
.img-view {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
.img {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.state-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.badge {
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--oak-color-success);
|
||||
margin-right: 5px;
|
||||
}
|
||||
.effective {
|
||||
background-color: var(--oak-color-success);
|
||||
}
|
||||
.interrupted {
|
||||
background-color: var(--oak-color-error);
|
||||
}
|
||||
// .inCharge {
|
||||
// background-color: var(--oak-color-primary);
|
||||
// }
|
||||
.overdue {
|
||||
background-color: var(--oak-color-warning);
|
||||
}
|
||||
}
|
||||
[class='text-view']:not(:last-child) {
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
[class='btn']:not(:last-child) {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.draw-container {
|
||||
width: 500rpx;
|
||||
background-color: #fff;
|
||||
.draw-content {
|
||||
max-height: 500rpx;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.draw-cell {
|
||||
color: var(--oak-color-primary);
|
||||
width: 100%;
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.primary-panel {
|
||||
margin: 20rpx;
|
||||
padding: 40rpx;
|
||||
border-radius: 32rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: #fff;
|
||||
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 3%), 0 1px 6px -1px rgb(0 0 0 / 2%),
|
||||
0 2px 4px 0 rgb(0 0 0 / 2%);
|
||||
background: linear-gradient(120deg, var(--oak-color-primary), #1ca3da);
|
||||
.panel-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.text-view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.tab-content {
|
||||
margin-bottom: 160rpx;
|
||||
min-height: 140rpx;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 28rpx;
|
||||
color: rgba(140, 152, 174, 1);
|
||||
}
|
||||
[class='img']:not(:last-child) {
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
<view class="container">
|
||||
<view wx:if="{{!data && mode !== 'list'}}">
|
||||
<l-loading show="{{true}}" size="large"></l-loading>
|
||||
</view>
|
||||
<view wx:else>
|
||||
<view wx:if="{{mode === 'select'}}">
|
||||
<picker mode="{{multiple ? 'multiSelector':'selector'}}" />
|
||||
</view>
|
||||
<view wx:if="{{mode === 'radio'}}">
|
||||
<view wx:if="{{multiple}}">
|
||||
<l-radio-group wx:for="{{data}}" wx:key="index" wx:for-item="enumItem" current="{{entityId}}" bind:linchange="setValueMp">
|
||||
<l-radio key="{{enumItem.value}}">{{enumItem.label}}</l-radio>
|
||||
</l-radio-group>
|
||||
</view>
|
||||
<view wx:else>
|
||||
<l-checkbox-group bind:linchange="onChangeTap" >
|
||||
<l-checkbox
|
||||
wx:for-items="{{data}}"
|
||||
wx:key="{{item.id}}"
|
||||
key="{{item.id}}"
|
||||
checked="{{item.isChecked}}"
|
||||
disabled="{{item.disabled}}"
|
||||
>
|
||||
{{item.title}}
|
||||
</l-checkbox>
|
||||
</l-checkbox-group>
|
||||
</view>
|
||||
</view>
|
||||
<view wx:if="{{mode === 'list'}}">
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"confirm": "确认", "reset": "重置"}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"confirm": "确认", "reset": "重置"}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"action":"操作", "relation":"关系", "sourceEntity": "源对象", "path": "路径"}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.container {
|
||||
background-color: var(--oak-bg-color-container);
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"component": true
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.container {
|
||||
background-color: var(--oak-bg-color-container);
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"component": true
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"hasEntityId": "指定对象专属",
|
||||
"searchTip": "输入对象名称过滤(英文)"
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
.inputDiv {
|
||||
padding: 10px;
|
||||
background-color: var(--oak-bg-color-container);
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.inputDiv {
|
||||
padding: 10px;
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"confirm": "确认", "reset": "重置", "grantedRoles": "授权角色"}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"confirm": "确认", "reset": "重置"}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"l-search-bar": "../../miniprogram_npm/lin-ui/search-bar/index"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
<l-search-bar value="{{searchValue}}" placeholder="{{placeholder}}" bind:linchange="searchChangeMp" bind:linconfirm="searchConfirm" bind:linclear="searchClear" show-cancel="{{false}}" />
|
||||
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"l-button": "@oak-frontend-base/miniprogram_npm/lin-ui/button/index",
|
||||
"l-list": "@oak-frontend-base/miniprogram_npm/lin-ui/list/index",
|
||||
"l-input": "@oak-frontend-base/miniprogram_npm/lin-ui/input/index",
|
||||
"l-icon": "@oak-frontend-base/miniprogram_npm/lin-ui/icon/index",
|
||||
"l-textarea": "@oak-frontend-base/miniprogram_npm/lin-ui/textarea/index",
|
||||
"l-form": "@oak-frontend-base/miniprogram_npm/lin-ui/form/index",
|
||||
"l-form-item": "@oak-frontend-base/miniprogram_npm/lin-ui/form-item/index",
|
||||
"l-radio-group": "@oak-frontend-base/miniprogram_npm/lin-ui/radio-group/index",
|
||||
"l-radio": "@oak-frontend-base/miniprogram_npm/lin-ui/radio/index",
|
||||
"l-counter": "@oak-frontend-base/miniprogram_npm/lin-ui/counter/index",
|
||||
"l-notice-bar": "@oak-frontend-base/miniprogram_npm/lin-ui/notice-bar/index",
|
||||
"refAttr": "../refAttr/index"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
/** index.wxss **/
|
||||
@import '../../config/styles/mp/index.less';
|
||||
@import '../../config/styles/mp/mixins.less';
|
||||
.page-body {
|
||||
// height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// background-color: @oak-bg-color-page;
|
||||
.safe-area-inset-bottom();
|
||||
}
|
||||
|
||||
.col {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
|
||||
margin-bottom: 50rpx;
|
||||
|
||||
.label {
|
||||
color: @oak-text-color-primary;
|
||||
}
|
||||
.form-label {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.textarea {
|
||||
font-size: 28rpx;
|
||||
color: @oak-text-color-primary;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.btn {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin: 10px 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
<view class="col">
|
||||
<l-form>
|
||||
<view wx:for="{{renderData}}">
|
||||
<view wx:if="{{item.type === 'string' || item.type === 'varchar'|| item.type === 'char' || item.type === 'poiName'}}">
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" l-form-label-class="textarea" label-width="120rpx" rules="{{[{required:item.required}]}}">
|
||||
<l-input placeholder="{{item.placeholder || '请输入'+item.label}}" value="{{item.value}}" hide-label show-row="{{false}}" bind:lininput="setValueMp" data-attr="{{item.attr}}"/>
|
||||
</l-form-item>
|
||||
</view>
|
||||
<view wx:if="{{item.type === 'text'}}">
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" l-form-label-class="textarea" label-width="120rpx" rules="{{[{required:item.required}]}}">
|
||||
<l-textarea placeholder="{{item.placeholder || '请输入'+item.label}}" indicator="{{true}}" maxlength="{{item.maxlength}}" value="{{item.value}}" bind:lininput="setValueMp" data-attr="{{item.attr}}" border="{{false}}"/>
|
||||
</l-form-item>
|
||||
</view>
|
||||
<view wx:if="{{item.type === 'int'}}">
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" rules="{{[{required:item.required}]}}">
|
||||
<l-counter count="{{item.value}}" min="{{item.min}}" max="{{item.max}}" round-float="{{true}}" bind:linchange="setValueMp" data-attr="{{item.attr}}" />
|
||||
</l-form-item>
|
||||
</view>
|
||||
<view wx:if="{{item.type === 'decimal'}}">
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" rules="{{[{required:item.required}]}}">
|
||||
<l-input label="{{item.label}}" type="number" placeholder="{{item.placeholder || '请输入'+item.label+'(将保留一位小数)'}}" value="{{item.value / 10}}" hide-label show-row="{{false}}" bind:lininput="setValueMp1" data-attr="{{item.attr}}"/>
|
||||
</l-form-item>
|
||||
</view>
|
||||
<view wx:if="{{item.type === 'money'}}">
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" rules="{{[{required:item.required}]}}">
|
||||
<l-input label="{{item.label}}" type="number" placeholder="{{item.placeholder || '请输入'+item.label+'(将保留两位小数)'}}" value="{{item.value / 100}}" hide-label show-row="{{false}}" bind:lininput="setValueMp2" data-attr="{{item.attr}}"/>
|
||||
</l-form-item>
|
||||
</view>
|
||||
<view wx:if="{{item.type === 'enum'}}">
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" rules="{{[{required:item.required}]}}">
|
||||
<l-radio-group wx:for="{{item.enumeration}}" wx:key="index" wx:for-item="enumItem" current="{{item.value}}" data-attr="{{item.attr}}" bind:linchange="setValueMp">
|
||||
<l-radio key="{{enumItem.value}}">{{enumItem.label}}</l-radio>
|
||||
</l-radio-group>
|
||||
</l-form-item>
|
||||
</view>
|
||||
<view wx:if="{{item.type === 'date' || item.type === 'datetime'}}">
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" rules="{{[{required:item.required}]}}">
|
||||
<picker mode="date" value="{{item.value}}" bind:change="onDateChange" start="{{today}}">
|
||||
<view class="input-content">
|
||||
<block wx:if="{{item.value}}">
|
||||
<view>
|
||||
{{item.value}}
|
||||
</view>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<view>
|
||||
请选择时间
|
||||
</view>
|
||||
</block>
|
||||
<l-icon name="right" color="#777777" size="24" style="margin-left: 20rpx" />
|
||||
</view>
|
||||
</picker>
|
||||
</l-form-item>
|
||||
</view>
|
||||
<view wx:if="{{item.type === 'boolean'}}">
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" rules="{{[{required:item.required}]}}">
|
||||
<l-switch checked="{{ item.value }}" active-value="{{ 1 }}" inactive-value="{{ 0 }}" bind:linchange="onChangeMp"/>
|
||||
</l-form-item>
|
||||
</view>
|
||||
<view wx:if="{{item.type === 'ref'}}" >
|
||||
<l-form-item label="{{item.label}}" name="{{item.attr}}" rules="{{[{required:item.required}]}}">
|
||||
<refAttr multiple="{{false}}" entityId="{{item.value}}" pickerRender="{{attrRender}}"/>
|
||||
</l-form-item>
|
||||
</view>
|
||||
</view>
|
||||
</l-form>
|
||||
</view>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue