初始化
@ -0,0 +1,18 @@
|
||||
/node_modules
|
||||
/.env.local
|
||||
/.umirc.local.ts
|
||||
/config/config.local.ts
|
||||
/src/.umi
|
||||
/src/.umi-production
|
||||
/src/.umi-test
|
||||
/dist
|
||||
|
||||
.idea
|
||||
.vscode
|
||||
|
||||
yarn.lock
|
||||
package-lock.json
|
||||
|
||||
.DS_Store
|
||||
**/.DS_Store
|
||||
.DS_Store?
|
||||
@ -0,0 +1,2 @@
|
||||
registry=https://registry.npmmirror.com
|
||||
package-lock=false
|
||||
@ -0,0 +1,50 @@
|
||||
import defaultSettings from './config/defaultSettings'
|
||||
import proxy from './config/proxy'
|
||||
import routes from './config/routes'
|
||||
import { defineConfig } from '@umijs/max'
|
||||
|
||||
const { REACT_APP_ENV } = process.env
|
||||
|
||||
export default defineConfig({
|
||||
title: defaultSettings.title,
|
||||
theme: {
|
||||
'primary-color': defaultSettings.primaryColor
|
||||
},
|
||||
model: {},
|
||||
antd: {
|
||||
},
|
||||
request: {},
|
||||
initialState: {
|
||||
loading: '@/components/Loading'
|
||||
},
|
||||
dva: {},
|
||||
// layout: {},
|
||||
mfsu: { strategy: 'normal' },
|
||||
locale: {
|
||||
default: 'zh-CN',
|
||||
antd: true,
|
||||
baseNavigator: false
|
||||
},
|
||||
fastRefresh: true,
|
||||
history: {
|
||||
type: 'browser'
|
||||
},
|
||||
hash: false,
|
||||
// publicPath: "./", //本地静态化 for android
|
||||
publicPath: "/", //部署到服务端需要 publicPath: "/",或者 publicPath: "/xxxxx/",
|
||||
manifest: {
|
||||
basePath: "/", //本地静态化 for android 部署到服务端需要 publicPath: "/",或者 publicPath: "/xxxxx/",
|
||||
},
|
||||
routes: routes,
|
||||
proxy: proxy[REACT_APP_ENV || 'dev'],
|
||||
codeSplitting: {
|
||||
jsStrategy: 'granularChunks'
|
||||
},
|
||||
chainWebpack(config, { webpack }) {
|
||||
config.plugin('code-inspector-plugin').use(require('code-inspector-plugin').codeInspectorPlugin, [
|
||||
{
|
||||
bundler: 'webpack',
|
||||
},
|
||||
]);
|
||||
},
|
||||
})
|
||||
@ -0,0 +1,8 @@
|
||||
export default {
|
||||
primaryColor: '#2969ff',
|
||||
menu: {
|
||||
locale: true,
|
||||
},
|
||||
title: '智能巡检系统',
|
||||
iconfontUrl: '//at.alicdn.com/t/font_2163129_p3ldyoksz3s.js'
|
||||
}
|
||||
@ -0,0 +1,438 @@
|
||||
export default [
|
||||
{
|
||||
path: '/',
|
||||
redirect: '/topnavbar00/home',
|
||||
},
|
||||
{
|
||||
name: 'login',
|
||||
path: '/login',
|
||||
component: './login/Login'
|
||||
},
|
||||
{
|
||||
name: 'topnavbar',
|
||||
icon: 'table',
|
||||
path: '/topnavbar00',
|
||||
component: './topnavbar/TopNavBar',
|
||||
routes: [
|
||||
{
|
||||
path: '/topnavbar00/home',
|
||||
name: 'home',
|
||||
component: './home/HomeList'
|
||||
},
|
||||
{
|
||||
path: '/topnavbar00/business',
|
||||
name: 'business',
|
||||
component: './nav_system_content/SystemContentList',
|
||||
routes: [
|
||||
// 安全管理基础信息
|
||||
{
|
||||
path: '/topnavbar00/business/basicinformation',
|
||||
name: 'basicinformation',
|
||||
component: './business_basicinformation/BasicInformation',
|
||||
},
|
||||
// 隐患排查
|
||||
{
|
||||
path: '/topnavbar00/business/hiddentrouble',
|
||||
name: 'hiddentrouble',
|
||||
component: './business_hiddentrouble/HiddenTrouble',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// 异常页
|
||||
{
|
||||
name: 'exception',
|
||||
icon: 'warning',
|
||||
path: '/exception00',
|
||||
hideInMenu: true,
|
||||
routes: [
|
||||
// exception
|
||||
{
|
||||
path: '/exception00/403',
|
||||
name: 'not-permission',
|
||||
component: './exception/403'
|
||||
},
|
||||
{
|
||||
path: '/exception00/404',
|
||||
name: 'not-find',
|
||||
component: './exception/404'
|
||||
},
|
||||
{
|
||||
path: '/exception00/500',
|
||||
name: 'server-error',
|
||||
component: './exception/500'
|
||||
},
|
||||
{
|
||||
path: '/exception00/1403',
|
||||
name: 'not-license-permission',
|
||||
hideLayout: true,
|
||||
component: './exception/1403'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
// icon,
|
||||
hideInMenu: true,
|
||||
routes: [
|
||||
{
|
||||
// 网站通用图标
|
||||
routes: [
|
||||
{ icon: 'accountBook' },
|
||||
{ icon: 'aim' },
|
||||
{ icon: 'alert' },
|
||||
{ icon: 'apartment' },
|
||||
{ icon: 'api' },
|
||||
{ icon: 'appstoreAdd' },
|
||||
{ icon: 'appstore' },
|
||||
{ icon: 'audio' },
|
||||
{ icon: 'audioMuted' },
|
||||
{ icon: 'audit' },
|
||||
{ icon: 'bank' },
|
||||
{ icon: 'barcode' },
|
||||
{ icon: 'bars' },
|
||||
{ icon: 'bell' },
|
||||
{ icon: 'block' },
|
||||
{ icon: 'book' },
|
||||
{ icon: 'border' },
|
||||
{ icon: 'borderlessTable' },
|
||||
{ icon: 'branches' },
|
||||
{ icon: 'bug' },
|
||||
{ icon: 'build' },
|
||||
{ icon: 'bulb' },
|
||||
{ icon: 'calculator' },
|
||||
{ icon: 'calendar' },
|
||||
{ icon: 'camera' },
|
||||
{ icon: 'car' },
|
||||
{ icon: 'carryOut' },
|
||||
{ icon: 'ciCircle' },
|
||||
{ icon: 'ci' },
|
||||
{ icon: 'clear' },
|
||||
{ icon: 'cloudDownload' },
|
||||
{ icon: 'cloud' },
|
||||
{ icon: 'cloudServer' },
|
||||
{ icon: 'cloudSync' },
|
||||
{ icon: 'cloudUpload' },
|
||||
{ icon: 'cluster' },
|
||||
{ icon: 'code' },
|
||||
{ icon: 'coffee' },
|
||||
{ icon: 'comment' },
|
||||
{ icon: 'compass' },
|
||||
{ icon: 'compress' },
|
||||
{ icon: 'consoleSql' },
|
||||
{ icon: 'contacts' },
|
||||
{ icon: 'container' },
|
||||
{ icon: 'control' },
|
||||
{ icon: 'copyright' },
|
||||
{ icon: 'creditCard' },
|
||||
{ icon: 'crown' },
|
||||
{ icon: 'customerService' },
|
||||
{ icon: 'dashboard' },
|
||||
{ icon: 'database' },
|
||||
{ icon: 'deleteColumn' },
|
||||
{ icon: 'deleteRow' },
|
||||
{ icon: 'deliveredProcedure' },
|
||||
{ icon: 'deploymentUnit' },
|
||||
{ icon: 'desktop' },
|
||||
{ icon: 'dingtalk' },
|
||||
{ icon: 'disconnect' },
|
||||
{ icon: 'dislike' },
|
||||
{ icon: 'dollarCircle' },
|
||||
{ icon: 'dollar' },
|
||||
{ icon: 'download' },
|
||||
{ icon: 'ellipsis' },
|
||||
{ icon: 'environment' },
|
||||
{ icon: 'euroCircle' },
|
||||
{ icon: 'euro' },
|
||||
{ icon: 'exception' },
|
||||
{ icon: 'expandAlt' },
|
||||
{ icon: 'expand' },
|
||||
{ icon: 'experiment' },
|
||||
{ icon: 'export' },
|
||||
{ icon: 'eye' },
|
||||
{ icon: 'fieldBinary' },
|
||||
{ icon: 'fieldNumber' },
|
||||
{ icon: 'fieldString' },
|
||||
{ icon: 'fieldTime' },
|
||||
{ icon: 'fileAdd' },
|
||||
{ icon: 'fileDone' },
|
||||
{ icon: 'fileExcel' },
|
||||
{ icon: 'fileExclamation' },
|
||||
{ icon: 'file' },
|
||||
{ icon: 'fileGif' },
|
||||
{ icon: 'fileImage' },
|
||||
{ icon: 'fileJpg' },
|
||||
{ icon: 'fileMarkdown' },
|
||||
{ icon: 'filePdf' },
|
||||
{ icon: 'filePpt' },
|
||||
{ icon: 'fileProtect' },
|
||||
{ icon: 'fileSearch' },
|
||||
{ icon: 'fileSync' },
|
||||
{ icon: 'fileText' },
|
||||
{ icon: 'fileUnknown' },
|
||||
{ icon: 'fileWord' },
|
||||
{ icon: 'fileZip' },
|
||||
{ icon: 'filter' },
|
||||
{ icon: 'fire' },
|
||||
{ icon: 'flag' },
|
||||
{ icon: 'folderAdd' },
|
||||
{ icon: 'folder' },
|
||||
{ icon: 'folderView' },
|
||||
{ icon: 'fork' },
|
||||
{ icon: 'formatPainter' },
|
||||
{ icon: 'frown' },
|
||||
{ icon: 'function' },
|
||||
{ icon: 'fundProjectionScreen' },
|
||||
{ icon: 'fundView' },
|
||||
{ icon: 'funnelPlot' },
|
||||
{ icon: 'gateway' },
|
||||
{ icon: 'gif' },
|
||||
{ icon: 'gift' },
|
||||
{ icon: 'global' },
|
||||
{ icon: 'gold' },
|
||||
{ icon: 'group' },
|
||||
{ icon: 'hdd' },
|
||||
{ icon: 'heart' },
|
||||
{ icon: 'history' },
|
||||
{ icon: 'home' },
|
||||
{ icon: 'hourglass' },
|
||||
{ icon: 'idcard' },
|
||||
{ icon: 'import' },
|
||||
{ icon: 'inbox' },
|
||||
{ icon: 'insertRowAbove' },
|
||||
{ icon: 'insertRowBelow' },
|
||||
{ icon: 'insertRowLeft' },
|
||||
{ icon: 'insertRowRight' },
|
||||
{ icon: 'insurance' },
|
||||
{ icon: 'interaction' },
|
||||
{ icon: 'key' },
|
||||
{ icon: 'laptop' },
|
||||
{ icon: 'layout' },
|
||||
{ icon: 'like' },
|
||||
{ icon: 'line' },
|
||||
{ icon: 'link' },
|
||||
{ icon: 'loading3Quarters' },
|
||||
{ icon: 'loading' },
|
||||
{ icon: 'lock' },
|
||||
{ icon: 'macCommand' },
|
||||
{ icon: 'mail' },
|
||||
{ icon: 'man' },
|
||||
{ icon: 'medicineBox' },
|
||||
{ icon: 'meh' },
|
||||
{ icon: 'menu' },
|
||||
{ icon: 'mergeCells' },
|
||||
{ icon: 'message' },
|
||||
{ icon: 'mobile' },
|
||||
{ icon: 'moneyCollect' },
|
||||
{ icon: 'monitor' },
|
||||
{ icon: 'more' },
|
||||
{ icon: 'nodeCollapse' },
|
||||
{ icon: 'nodeExpand' },
|
||||
{ icon: 'nodeIndex' },
|
||||
{ icon: 'notification' },
|
||||
{ icon: 'number' },
|
||||
{ icon: 'oneToOne' },
|
||||
{ icon: 'partition' },
|
||||
{ icon: 'payCircle' },
|
||||
{ icon: 'percentage' },
|
||||
{ icon: 'phone' },
|
||||
{ icon: 'picture' },
|
||||
{ icon: 'playSquare' },
|
||||
{ icon: 'poundCircle' },
|
||||
{ icon: 'pound' },
|
||||
{ icon: 'poweroff' },
|
||||
{ icon: 'printer' },
|
||||
{ icon: 'profile' },
|
||||
{ icon: 'project' },
|
||||
{ icon: 'propertySafety' },
|
||||
{ icon: 'pullRequest' },
|
||||
{ icon: 'pushpin' },
|
||||
{ icon: 'qrcode' },
|
||||
{ icon: 'read' },
|
||||
{ icon: 'reconciliation' },
|
||||
{ icon: 'redEnvelope' },
|
||||
{ icon: 'reload' },
|
||||
{ icon: 'rest' },
|
||||
{ icon: 'robot' },
|
||||
{ icon: 'rocket' },
|
||||
{ icon: 'rotateLeft' },
|
||||
{ icon: 'rotateRight' },
|
||||
{ icon: 'safetyCertificate' },
|
||||
{ icon: 'safety' },
|
||||
{ icon: 'save' },
|
||||
{ icon: 'scan' },
|
||||
{ icon: 'schedule' },
|
||||
{ icon: 'search' },
|
||||
{ icon: 'securityScan' },
|
||||
{ icon: 'select' },
|
||||
{ icon: 'send' },
|
||||
{ icon: 'setting' },
|
||||
{ icon: 'shake' },
|
||||
{ icon: 'shareAlt' },
|
||||
{ icon: 'shop' },
|
||||
{ icon: 'shoppingCart' },
|
||||
{ icon: 'shopping' },
|
||||
{ icon: 'sisternode' },
|
||||
{ icon: 'skin' },
|
||||
{ icon: 'smile' },
|
||||
{ icon: 'solution' },
|
||||
{ icon: 'sound' },
|
||||
{ icon: 'splitCells' },
|
||||
{ icon: 'star' },
|
||||
{ icon: 'subnode' },
|
||||
{ icon: 'switcher' },
|
||||
{ icon: 'sync' },
|
||||
{ icon: 'table' },
|
||||
{ icon: 'tablet' },
|
||||
{ icon: 'tag' },
|
||||
{ icon: 'tags' },
|
||||
{ icon: 'team' },
|
||||
{ icon: 'thunderbolt' },
|
||||
{ icon: 'toTop' },
|
||||
{ icon: 'tool' },
|
||||
{ icon: 'trademarkCircle' },
|
||||
{ icon: 'trademark' },
|
||||
{ icon: 'transaction' },
|
||||
{ icon: 'translation' },
|
||||
{ icon: 'trophy' },
|
||||
{ icon: 'ungroup' },
|
||||
{ icon: 'unlock' },
|
||||
{ icon: 'upload' },
|
||||
{ icon: 'usb' },
|
||||
{ icon: 'userAdd' },
|
||||
{ icon: 'userDelete' },
|
||||
{ icon: 'user' },
|
||||
{ icon: 'userSwitch' },
|
||||
{ icon: 'usergroupAdd' },
|
||||
{ icon: 'usergroupDelete' },
|
||||
{ icon: 'verified' },
|
||||
{ icon: 'videoCameraAdd' },
|
||||
{ icon: 'videoCamera' },
|
||||
{ icon: 'wallet' },
|
||||
{ icon: 'whatsApp' },
|
||||
{ icon: 'wifi' },
|
||||
{ icon: 'woman' },
|
||||
]
|
||||
},
|
||||
{
|
||||
// 编辑类图标
|
||||
routes: [
|
||||
{ icon: 'edit' },
|
||||
{ icon: 'form' },
|
||||
{ icon: 'copy' },
|
||||
{ icon: 'scissor' },
|
||||
{ icon: 'delete' },
|
||||
{ icon: 'snippets' },
|
||||
{ icon: 'diff' },
|
||||
{ icon: 'highlight' },
|
||||
{ icon: 'alignCenter' },
|
||||
{ icon: 'alignLeft' },
|
||||
{ icon: 'alignRight' },
|
||||
{ icon: 'bgColors' },
|
||||
{ icon: 'bold' },
|
||||
{ icon: 'italic' },
|
||||
{ icon: 'underline' },
|
||||
{ icon: 'strikethrough' },
|
||||
{ icon: 'redo' },
|
||||
{ icon: 'undo' },
|
||||
{ icon: 'zoomIn' },
|
||||
{ icon: 'zoomOut' },
|
||||
{ icon: 'fontColors' },
|
||||
{ icon: 'fontSize' },
|
||||
{ icon: 'lineHeight' },
|
||||
{ icon: 'dash' },
|
||||
{ icon: 'smallDash' },
|
||||
{ icon: 'sortAscending' },
|
||||
{ icon: 'sortDescending' },
|
||||
{ icon: 'drag' },
|
||||
{ icon: 'orderedList' },
|
||||
{ icon: 'unorderedList' },
|
||||
{ icon: 'radiusSetting' },
|
||||
{ icon: 'columnWidth' },
|
||||
{ icon: 'columnHeight' },
|
||||
]
|
||||
},
|
||||
{
|
||||
// 数据类图标
|
||||
routes: [
|
||||
{ icon: 'areaChart' },
|
||||
{ icon: 'pieChart' },
|
||||
{ icon: 'barChart' },
|
||||
{ icon: 'dotChart' },
|
||||
{ icon: 'lineChart' },
|
||||
{ icon: 'radarChart' },
|
||||
{ icon: 'heatMap' },
|
||||
{ icon: 'fall' },
|
||||
{ icon: 'rise' },
|
||||
{ icon: 'stock' },
|
||||
{ icon: 'boxPlot' },
|
||||
{ icon: 'fund' },
|
||||
{ icon: 'sliders' },
|
||||
]
|
||||
},
|
||||
{
|
||||
// 品牌和标识
|
||||
routes: [
|
||||
{ icon: 'android' },
|
||||
{ icon: 'apple' },
|
||||
{ icon: 'windows' },
|
||||
{ icon: 'ie' },
|
||||
{ icon: 'chrome' },
|
||||
{ icon: 'github' },
|
||||
{ icon: 'aliwangwang' },
|
||||
{ icon: 'dingding' },
|
||||
{ icon: 'weiboSquare' },
|
||||
{ icon: 'weiboCircle' },
|
||||
{ icon: 'taobaoCircle' },
|
||||
{ icon: 'html5' },
|
||||
{ icon: 'weibo' },
|
||||
{ icon: 'twitter' },
|
||||
{ icon: 'wechat' },
|
||||
{ icon: 'youtube' },
|
||||
{ icon: 'alipayCircle' },
|
||||
{ icon: 'taobao' },
|
||||
{ icon: 'skype' },
|
||||
{ icon: 'qq' },
|
||||
{ icon: 'mediumWorkmark' },
|
||||
{ icon: 'gitlab' },
|
||||
{ icon: 'medium' },
|
||||
{ icon: 'linkedin' },
|
||||
{ icon: 'googlePlus' },
|
||||
{ icon: 'dropbox' },
|
||||
{ icon: 'facebook' },
|
||||
{ icon: 'codepen' },
|
||||
{ icon: 'codeSandbox' },
|
||||
{ icon: 'amazon' },
|
||||
{ icon: 'google' },
|
||||
{ icon: 'codepenCircle' },
|
||||
{ icon: 'alipay' },
|
||||
{ icon: 'antDesign' },
|
||||
{ icon: 'antCloud' },
|
||||
{ icon: 'aliyun' },
|
||||
{ icon: 'zhihu' },
|
||||
{ icon: 'slack' },
|
||||
{ icon: 'slackSquare' },
|
||||
{ icon: 'behance' },
|
||||
{ icon: 'behanceSquare' },
|
||||
{ icon: 'dribbble' },
|
||||
{ icon: 'dribbbleSquare' },
|
||||
{ icon: 'instagram' },
|
||||
{ icon: 'yuque' },
|
||||
{ icon: 'alibaba' },
|
||||
{ icon: 'yahoo' },
|
||||
{ icon: 'reddit' },
|
||||
{ icon: 'sketch' },
|
||||
]
|
||||
}
|
||||
|
||||
],
|
||||
},
|
||||
{
|
||||
component: './404',
|
||||
},
|
||||
|
||||
]
|
||||
@ -0,0 +1,17 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["./src/*"],
|
||||
"@@/*": ["./src/.umi/*"],
|
||||
"umi": ["./node_module/umi"],
|
||||
"@umijs/max": ["./node_module/umi"],
|
||||
"@umijs/max/typings": ["./src/.umi/typings"],
|
||||
"ahooks": ["./node_module/ahooks"],
|
||||
"@ant-design/icons": ["./node_module/@ant-design/icons"],
|
||||
"dayjs": ["./node_module/dayjs"]
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "flx-lms-fe",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"author": "",
|
||||
"scripts": {
|
||||
"dev": "cross-env REACT_APP_ENV=dev max dev",
|
||||
"build": "cross-env REACT_APP_ENV=prod max build",
|
||||
"postinstall": "max setup",
|
||||
"setup": "max setup",
|
||||
"start": "cross-env REACT_APP_ENV=dev max dev",
|
||||
"start:no-mock": "cross-env MOCK=none REACT_APP_ENV=dev max dev"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ant-design/icons": "^4.8.0",
|
||||
"@umijs/max": "^4.0.70",
|
||||
"antd": "5.6.0",
|
||||
"braft-editor": "^2.3.9",
|
||||
"braft-finder": "^0.0.21",
|
||||
"braft-utils": "^3.0.2",
|
||||
"code-inspector-plugin": "^1.2.8",
|
||||
"echarts": "5.4.0",
|
||||
"echarts-for-react": "^3.0.2",
|
||||
"moment": "^2.29.1",
|
||||
"nvm": "^0.0.4",
|
||||
"qs": "^6.11.0",
|
||||
"react": "^18.2.0",
|
||||
"react-contexify": "^5.0.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-split-pane": "^0.1.92"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^18.0.0",
|
||||
"@types/react-dom": "^18.0.0",
|
||||
"code-inspector-plugin": "^1.2.8",
|
||||
"cross-env": "^7.0.3",
|
||||
"typescript": "^4.1.2"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 526 B |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 209 KiB |
|
After Width: | Height: | Size: 238 B |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 302 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
@ -0,0 +1,3 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.3685 0.194824C14.8309 0.194824 15.2066 0.562877 15.2066 1.01668V13.1826H3.05233V13.5729C3.05233 14.0993 3.46457 14.5295 3.99225 14.5832L4.09954 14.5876H14.9965V15.8052H4.09954C2.87336 15.8052 1.87187 14.8787 1.79932 13.709L1.79492 13.5729V1.01646C1.79492 0.563097 2.17045 0.194824 2.63326 0.194824H14.3683H14.3685ZM4.89281 7.48377C4.89281 9.44628 6.48771 11.0506 8.4357 11.0506C10.3837 11.0506 11.9786 9.44518 11.9786 7.48267H4.89303V7.48377H4.89281ZM8.43592 2.13161C8.08062 2.13161 7.7273 2.16723 7.3731 2.27452V4.62817H6.66448V2.55859C6.02006 2.88612 5.47975 3.38688 5.10425 4.00458C4.72875 4.62228 4.53294 5.33245 4.53883 6.05531H3.82911V6.76899H13.0394V6.05531H12.3321C12.3321 4.52109 11.4815 3.20103 10.2052 2.55859V4.62817H9.49765V2.27562C9.15251 2.17492 8.79433 2.12601 8.43482 2.13051L8.43592 2.13161Z" fill="white" fill-opacity="0.45"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 962 B |
@ -0,0 +1,10 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1027_11080)">
|
||||
<path d="M16.3578 13.5109L12.8609 7.45469L9.36407 1.39844C9.17189 1.06563 8.83438 0.898438 8.49845 0.898438C8.16095 0.898438 7.82501 1.06563 7.63282 1.39844L4.13595 7.45469L0.639073 13.5109C0.254698 14.1781 0.735948 15.0109 1.5047 15.0109H15.4922C16.2625 15.0109 16.7422 14.1781 16.3578 13.5109ZM7.63282 12.3016V11.4344C7.63282 11.1953 7.82657 11.0016 8.06564 11.0016H8.93282C9.17189 11.0016 9.36564 11.1953 9.36564 11.4344V12.3016C9.36564 12.5406 9.17189 12.7344 8.93282 12.7344H8.06564C7.82814 12.7344 7.63282 12.5406 7.63282 12.3016ZM9.35626 6.22656L9.1547 10.4469C9.15157 10.5047 9.1047 10.55 9.04689 10.55H7.95314C7.89532 10.55 7.84689 10.5047 7.84532 10.4469L7.64376 6.22656C7.63751 6.10313 7.73595 6 7.86095 6H9.13907C9.26251 6 9.36251 6.10313 9.35626 6.22656Z" fill="white" fill-opacity="0.45"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1027_11080">
|
||||
<rect width="16" height="16" fill="white" transform="translate(0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,10 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1050_3700)">
|
||||
<path d="M16.3578 13.5109L12.8609 7.45469L9.36407 1.39844C9.17189 1.06563 8.83438 0.898438 8.49845 0.898438C8.16095 0.898438 7.82501 1.06563 7.63282 1.39844L4.13595 7.45469L0.639073 13.5109C0.254698 14.1781 0.735948 15.0109 1.5047 15.0109H15.4922C16.2625 15.0109 16.7422 14.1781 16.3578 13.5109ZM7.63282 12.3016V11.4344C7.63282 11.1953 7.82657 11.0016 8.06564 11.0016H8.93282C9.17189 11.0016 9.36564 11.1953 9.36564 11.4344V12.3016C9.36564 12.5406 9.17189 12.7344 8.93282 12.7344H8.06564C7.82814 12.7344 7.63282 12.5406 7.63282 12.3016ZM9.35626 6.22656L9.1547 10.4469C9.15157 10.5047 9.1047 10.55 9.04689 10.55H7.95314C7.89532 10.55 7.84689 10.5047 7.84532 10.4469L7.64376 6.22656C7.63751 6.10313 7.73595 6 7.86095 6H9.13907C9.26251 6 9.36251 6.10313 9.35626 6.22656Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1050_3700">
|
||||
<rect width="16" height="16" fill="white" transform="translate(0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,7 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.5 3.5H12.5V15H4.5V3.5ZM8.5 11.5C9.16304 11.5 9.79893 11.2366 10.2678 10.7678C10.7366 10.2989 11 9.66304 11 9C11 8.33696 10.7366 7.70107 10.2678 7.23223C9.79893 6.76339 9.16304 6.5 8.5 6.5C7.83696 6.5 7.20107 6.76339 6.73223 7.23223C6.26339 7.70107 6 8.33696 6 9C6 9.66304 6.26339 10.2989 6.73223 10.7678C7.20107 11.2366 7.83696 11.5 8.5 11.5ZM8.5 10.5C8.10218 10.5 7.72064 10.342 7.43934 10.0607C7.15804 9.77936 7 9.39782 7 9C7 8.60218 7.15804 8.22064 7.43934 7.93934C7.72064 7.65804 8.10218 7.5 8.5 7.5C8.89782 7.5 9.27936 7.65804 9.56066 7.93934C9.84196 8.22064 10 8.60218 10 9C10 9.39782 9.84196 9.77936 9.56066 10.0607C9.27936 10.342 8.89782 10.5 8.5 10.5Z" fill="white"/>
|
||||
<path d="M3.5 15.5V14H13.5V15.5H3.5Z" fill="white"/>
|
||||
<path d="M8 0.5H9C9.13261 0.5 9.25979 0.552678 9.35355 0.646447C9.44732 0.740215 9.5 0.867392 9.5 1V2H7.5V1C7.5 0.867392 7.55268 0.740215 7.64645 0.646447C7.74021 0.552678 7.86739 0.5 8 0.5Z" fill="white"/>
|
||||
<path d="M4.51172 4C4.66922 2.322 6.39522 1 8.50022 1C10.6052 1 12.3312 2.322 12.4887 4H4.51172Z" fill="white"/>
|
||||
<path d="M4 4.25C3.86739 4.25 3.74021 4.19732 3.64645 4.10355C3.55268 4.00979 3.5 3.88261 3.5 3.75C3.5 3.61739 3.55268 3.49021 3.64645 3.39645C3.74021 3.30268 3.86739 3.25 4 3.25H12.9565C13.0891 3.25 13.2163 3.30268 13.3101 3.39645C13.4038 3.49021 13.4565 3.61739 13.4565 3.75C13.4565 3.88261 13.4038 4.00979 13.3101 4.10355C13.2163 4.19732 13.0891 4.25 12.9565 4.25H4ZM4.5 10.449H4C3.86739 10.449 3.74021 10.3963 3.64645 10.3026C3.55268 10.2088 3.5 10.0816 3.5 9.949V7.5C3.5 7.36739 3.55268 7.24021 3.64645 7.14645C3.74021 7.05268 3.86739 7 4 7H4.5C4.63261 7 4.75979 7.05268 4.85355 7.14645C4.94732 7.24021 5 7.36739 5 7.5V9.949C5 10.0816 4.94732 10.2088 4.85355 10.3026C4.75979 10.3963 4.63261 10.449 4.5 10.449ZM13 10.449H12.5C12.3674 10.449 12.2402 10.3963 12.1464 10.3026C12.0527 10.2088 12 10.0816 12 9.949V7.5C12 7.36739 12.0527 7.24021 12.1464 7.14645C12.2402 7.05268 12.3674 7 12.5 7H13C13.1326 7 13.2598 7.05268 13.3536 7.14645C13.4473 7.24021 13.5 7.36739 13.5 7.5V9.949C13.5 10.0816 13.4473 10.2088 13.3536 10.3026C13.2598 10.3963 13.1326 10.449 13 10.449Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@ -0,0 +1,7 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.5 3.5H12.5V15H4.5V3.5ZM8.5 11.5C9.16304 11.5 9.79893 11.2366 10.2678 10.7678C10.7366 10.2989 11 9.66304 11 9C11 8.33696 10.7366 7.70107 10.2678 7.23223C9.79893 6.76339 9.16304 6.5 8.5 6.5C7.83696 6.5 7.20107 6.76339 6.73223 7.23223C6.26339 7.70107 6 8.33696 6 9C6 9.66304 6.26339 10.2989 6.73223 10.7678C7.20107 11.2366 7.83696 11.5 8.5 11.5ZM8.5 10.5C8.10218 10.5 7.72064 10.342 7.43934 10.0607C7.15804 9.77936 7 9.39782 7 9C7 8.60218 7.15804 8.22064 7.43934 7.93934C7.72064 7.65804 8.10218 7.5 8.5 7.5C8.89782 7.5 9.27936 7.65804 9.56066 7.93934C9.84196 8.22064 10 8.60218 10 9C10 9.39782 9.84196 9.77936 9.56066 10.0607C9.27936 10.342 8.89782 10.5 8.5 10.5Z" fill="#8C9DE7"/>
|
||||
<path d="M3.5 15.5V14H13.5V15.5H3.5Z" fill="#8C9DE7"/>
|
||||
<path d="M8 0.5H9C9.13261 0.5 9.25979 0.552678 9.35355 0.646447C9.44732 0.740215 9.5 0.867392 9.5 1V2H7.5V1C7.5 0.867392 7.55268 0.740215 7.64645 0.646447C7.74021 0.552678 7.86739 0.5 8 0.5Z" fill="#8C9DE7"/>
|
||||
<path d="M4.51172 4C4.66922 2.322 6.39522 1 8.50022 1C10.6052 1 12.3312 2.322 12.4887 4H4.51172Z" fill="#8C9DE7"/>
|
||||
<path d="M4 4.25C3.86739 4.25 3.74021 4.19732 3.64645 4.10355C3.55268 4.00979 3.5 3.88261 3.5 3.75C3.5 3.61739 3.55268 3.49021 3.64645 3.39645C3.74021 3.30268 3.86739 3.25 4 3.25H12.9565C13.0891 3.25 13.2163 3.30268 13.3101 3.39645C13.4038 3.49021 13.4565 3.61739 13.4565 3.75C13.4565 3.88261 13.4038 4.00979 13.3101 4.10355C13.2163 4.19732 13.0891 4.25 12.9565 4.25H4ZM4.5 10.449H4C3.86739 10.449 3.74021 10.3963 3.64645 10.3026C3.55268 10.2088 3.5 10.0816 3.5 9.949V7.5C3.5 7.36739 3.55268 7.24021 3.64645 7.14645C3.74021 7.05268 3.86739 7 4 7H4.5C4.63261 7 4.75979 7.05268 4.85355 7.14645C4.94732 7.24021 5 7.36739 5 7.5V9.949C5 10.0816 4.94732 10.2088 4.85355 10.3026C4.75979 10.3963 4.63261 10.449 4.5 10.449ZM13 10.449H12.5C12.3674 10.449 12.2402 10.3963 12.1464 10.3026C12.0527 10.2088 12 10.0816 12 9.949V7.5C12 7.36739 12.0527 7.24021 12.1464 7.14645C12.2402 7.05268 12.3674 7 12.5 7H13C13.1326 7 13.2598 7.05268 13.3536 7.14645C13.4473 7.24021 13.5 7.36739 13.5 7.5V9.949C13.5 10.0816 13.4473 10.2088 13.3536 10.3026C13.2598 10.3963 13.1326 10.449 13 10.449Z" fill="#8C9DE7"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 892 B |
|
After Width: | Height: | Size: 917 B |
@ -0,0 +1,4 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.097 8.03631C9.28795 8.84538 9.41235 10.1834 10.128 11.0856C10.2836 11.3036 10.2214 11.428 10.128 11.5525C10.097 11.5836 9.97246 11.7391 9.94127 11.7703C9.81688 11.9571 9.78586 12.237 9.81688 12.3926C9.87908 12.6414 10.128 12.6728 10.3148 12.6728C10.7193 12.7038 11.1549 12.6728 11.5594 12.6728H12.7728C13.0218 12.6728 13.2086 12.6104 13.3019 12.3926C13.3953 12.1437 13.3641 11.9257 13.1774 11.7391L12.9906 11.5524C12.8352 11.3968 12.8352 11.2412 12.9906 11.0856L13.3641 10.6189C13.9242 9.71664 13.7376 8.5654 12.8972 7.8809C12.0573 7.22724 10.8437 7.28961 10.097 8.03631ZM14.9821 13.7308C14.9821 13.2951 14.7953 13.0771 14.3598 13.0771H8.75903C8.32331 13.0771 8.13672 13.2639 8.13672 13.6996V14.3219H14.9821V13.7308Z" fill="white" fill-opacity="0.45"/>
|
||||
<path d="M9.10177 12.3926C9.07076 12.0503 9.16414 11.677 9.38191 11.3968C9.38191 11.3658 9.41293 11.3658 9.44411 11.3346C9.07059 10.8057 8.85298 10.1834 8.85298 9.56108C8.8218 8.7832 9.10177 8.06752 9.59968 7.53842C10.1286 7.00949 10.8131 6.72952 11.56 6.72952C11.9023 6.72952 12.2445 6.79172 12.5868 6.91628V1.65936C12.5868 1.28584 12.2757 0.974854 11.9023 0.974854H2.56755C2.22522 1.00587 1.91406 1.31702 1.91406 1.65936V13.6995C1.91406 14.073 2.22522 14.384 2.59857 14.384H7.48381V13.7308C7.48381 13.3263 7.6082 13.0151 7.82614 12.7972C8.04392 12.5484 8.38609 12.455 8.79062 12.455C8.884 12.3928 9.00856 12.3928 9.10177 12.3928V12.3926ZM3.87453 4.17977C3.87453 3.96183 4.06129 3.77523 4.27906 3.77523H9.41326C9.63103 3.77523 9.81763 3.96199 9.81763 4.17977C9.81763 4.39754 9.63087 4.58413 9.41309 4.58413H4.27889C4.06112 4.55312 3.87436 4.39737 3.87436 4.17977H3.87453ZM7.82631 7.32232C7.82631 7.54026 7.63955 7.72685 7.42178 7.72685H4.27889C4.06112 7.72685 3.87436 7.54009 3.87436 7.32232C3.87436 7.10454 4.06112 6.91795 4.27889 6.91795H7.42161C7.67057 6.94896 7.82614 7.10471 7.82614 7.32232H7.82631ZM7.82631 5.73553C7.82631 5.95331 7.63955 6.14007 7.42178 6.14007H4.27889C4.06112 6.14007 3.87436 5.95331 3.87436 5.73553C3.87436 5.51776 4.06112 5.331 4.27889 5.331H7.42161C7.67057 5.36218 7.82614 5.51776 7.82614 5.73553H7.82631ZM14.3295 15.224H9.03958C8.884 15.224 8.72842 15.0996 8.72842 14.9129C8.72842 14.7573 8.85298 14.6017 9.03958 14.6017H14.3293C14.4849 14.6017 14.6405 14.7573 14.6405 14.9129C14.6405 15.0996 14.5159 15.224 14.3293 15.224H14.3295Z" fill="white" fill-opacity="0.45"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
@ -0,0 +1,4 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.5613 10.5654C10.8491 10.2501 9.77747 9.43494 8.21177 9.15469C8.61221 8.72587 8.90796 8.05633 9.21875 7.2628C9.39944 6.80308 9.36335 6.41118 9.36335 5.85227C9.36335 5.44032 9.4407 4.7791 9.33757 4.41556C8.99306 3.18709 8.11897 2.84875 7.09769 2.84875C6.07507 2.84875 5.20165 3.18906 4.85695 4.41834C4.75658 4.78288 4.83369 5.44171 4.83369 5.85227C4.83369 6.41217 4.80342 6.80584 4.9845 7.26579C5.29767 8.06347 5.59693 8.73226 5.9948 9.15967C4.44279 9.44328 3.43876 10.2535 2.7311 10.5678C1.26675 11.2219 1.30281 11.9379 1.30281 11.9379V13.1513L13.0705 13.1491V11.9379C13.0705 11.9379 13.0317 11.2191 11.5613 10.5654ZM11.0331 3.1224H15.6875V4.14106H11.0331V3.1224ZM11.0331 5.3529H13.8784V6.38911H11.0331V5.3529Z" fill="white" fill-opacity="0.45"/>
|
||||
<path d="M11.0332 7.58337H15.108V8.61959H11.0332V7.58337Z" fill="white" fill-opacity="0.45"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 956 B |
@ -0,0 +1,3 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.96875 5.70811C1.96875 4.70643 1.98094 3.70382 1.96312 2.70214C1.95562 2.26508 2.13194 2.03529 2.554 1.93119C4.45231 1.46411 6.34686 0.979219 8.24517 0.51402C8.41775 0.471815 8.62127 0.494325 8.79853 0.537468C10.6274 0.983908 12.4545 1.43879 14.2815 1.89367C14.9193 2.05311 15.0009 2.16097 15.0009 2.82313C15.0018 4.6239 15.0046 6.42373 14.9999 8.22449C14.9943 10.2382 14.1943 11.8617 12.6383 13.1438C11.479 14.0995 10.2879 14.9933 8.85668 15.4979C8.63534 15.5758 8.33615 15.5842 8.12137 15.5007C6.1893 14.7551 4.55641 13.5677 3.22084 11.9967C2.40675 11.0391 2.03252 9.87426 1.98282 8.62591C1.94436 7.65425 1.97531 6.68071 1.97531 5.70811H1.96875ZM8.49747 2.73215C8.46183 2.72559 8.42712 2.71808 8.39148 2.71152C7.48266 4.37817 6.56446 6.04013 5.67064 7.71428C5.40615 8.21043 5.67158 8.60153 6.24557 8.61466C6.70983 8.62498 7.17409 8.61747 7.63835 8.61747H8.49747V12.3025C9.45412 10.6949 10.3367 9.07986 11.2155 7.46386C11.5907 6.77262 11.3562 6.38621 10.5646 6.38433C9.88837 6.38246 9.21215 6.38433 8.49747 6.38433V2.73215Z" fill="white" fill-opacity="0.45"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
@ -0,0 +1,3 @@
|
||||
<svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.7134 0.750488C14.988 0.750488 15.2515 0.859601 15.4457 1.05382C15.6399 1.24804 15.749 1.51146 15.749 1.78613V14.2139C15.749 14.4885 15.6399 14.752 15.4457 14.9462C15.2515 15.1404 14.988 15.2495 14.7134 15.2495H2.28564C2.01097 15.2495 1.74755 15.1404 1.55333 14.9462C1.35911 14.752 1.25 14.4885 1.25 14.2139V1.78613C1.25 1.51146 1.35911 1.24804 1.55333 1.05382C1.74755 0.859601 2.01097 0.750488 2.28564 0.750488L14.7134 0.750488ZM8.49951 11.1069C8.22484 11.1069 7.96142 11.216 7.7672 11.4103C7.57298 11.6045 7.46387 11.8679 7.46387 12.1426C7.46387 12.4172 7.57298 12.6807 7.7672 12.8749C7.96142 13.0691 8.22484 13.1782 8.49951 13.1782C8.77418 13.1782 9.0376 13.0691 9.23182 12.8749C9.42604 12.6807 9.53516 12.4172 9.53516 12.1426C9.53516 11.8679 9.42604 11.6045 9.23182 11.4103C9.0376 11.216 8.77418 11.1069 8.49951 11.1069ZM8.49951 2.82178C8.24475 2.82191 7.99307 2.87752 7.76198 2.98475C7.53088 3.09198 7.32591 3.24826 7.16132 3.44272C6.99673 3.63717 6.87646 3.86514 6.80888 4.11078C6.7413 4.35641 6.72803 4.61382 6.76999 4.8651L7.29506 8.01553C7.34316 8.30004 7.49047 8.55832 7.71085 8.74456C7.93123 8.93081 8.21045 9.033 8.49899 9.033C8.78754 9.033 9.06676 8.93081 9.28714 8.74456C9.50752 8.55832 9.65483 8.30004 9.70293 8.01553L10.2301 4.8651C10.272 4.61373 10.2588 4.35624 10.1911 4.11053C10.1235 3.86482 10.0031 3.6368 9.83841 3.44232C9.6737 3.24785 9.4686 3.09159 9.23738 2.98443C9.00616 2.87726 8.75436 2.82176 8.49951 2.82178Z" fill="white" fill-opacity="0.45"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
@ -0,0 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.95512 11.5156L13.7801 5.58875C13.9159 5.42196 13.9992 5.2229 14.0206 5.01406C14.0421 4.80522 14.0008 4.59491 13.9015 4.4069C13.8021 4.21889 13.6487 4.06067 13.4585 3.95012C13.2683 3.83956 13.0489 3.78107 12.8251 3.78125H3.17662C2.9529 3.78124 2.73364 3.83986 2.54359 3.95049C2.35353 4.06111 2.20024 4.21935 2.10103 4.40732C2.00181 4.5953 1.96063 4.80553 1.98211 5.01429C2.00359 5.22305 2.0869 5.42202 2.22262 5.58875L7.04762 11.5156C7.15961 11.6531 7.30393 11.7646 7.46935 11.8413C7.63476 11.918 7.81682 11.9579 8.00137 11.9579C8.18591 11.9579 8.36797 11.918 8.53338 11.8413C8.6988 11.7646 8.84312 11.6531 8.95512 11.5156Z" fill="white" fill-opacity="0.66"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 774 B |
@ -0,0 +1,40 @@
|
||||
<svg width="174" height="25" viewBox="0 0 174 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M172.379 4.32216C172.379 3.88599 172.296 3.48254 172.13 3.1118C171.985 2.74105 171.778 2.41393 171.508 2.13042C171.26 1.86872 170.949 1.65064 170.576 1.47617C170.224 1.32351 169.851 1.24718 169.457 1.24718H151.584H147.046V4.4203V9.81787V10.2104V13.0237H172.379V12.9583V9.81787V4.32216ZM167.84 9.81787H151.584V4.4203H166.877C167.146 4.4203 167.374 4.51843 167.561 4.71471C167.747 4.91099 167.84 5.16178 167.84 5.4671V9.81787ZM146.549 14.5939L152.548 24.4404H156.93L152.89 17.7997H166.815L163.769 23.1319H167.934L173.218 13.8415H169.084L168.649 14.5939H150.931H147.792H146.549Z" fill="url(#paint0_linear_999_11044)"/>
|
||||
<path d="M136.792 11.6173L138.594 19.7954H142.324L140.521 11.6173H136.792ZM126.099 11.6173H122.369L120.691 19.7954H124.421L126.099 11.6173ZM144.935 7.13569H133.466V1.11658H129.145V7.13569H117.645V7.98622V10.178V10.3415H129.145V21.3329H118.67V21.8236V24.0154V24.5388H143.909V24.0154V21.8236V21.3329H133.466V10.3415H144.935V10.178V7.98622V7.13569Z" fill="url(#paint1_linear_999_11044)"/>
|
||||
<path d="M91.4438 11.0613V19.4684H89.0194V22.6743H91.4438V24.6697H95.2981V22.6743H96.8211V19.4684H95.2981V15.6084H97.536L95.2981 10.6361V4.12627C95.2981 3.6901 95.2255 3.28665 95.0805 2.9159C94.9354 2.54516 94.7386 2.21804 94.4899 1.93453C94.262 1.67283 93.9822 1.45475 93.6507 1.28028C93.3399 1.12762 92.9979 1.05129 92.625 1.05129H89.268L89.9829 3.34117H90.5424C90.7911 3.34117 90.9983 3.43931 91.1641 3.63558C91.3506 3.83186 91.4438 4.07175 91.4438 4.35526V5.66376H88.9883L91.4438 11.0613ZM116.372 18.7815H112.394V19.5339C112.394 19.8174 112.3 20.0573 112.114 20.2535C111.927 20.4498 111.699 20.548 111.43 20.548H102.043V18.7815H98.0644V23.0668H104.747L104.126 24.5062H108.819L109.441 23.0668H113.295C114.248 23.0668 114.994 22.8378 115.533 22.3799C116.092 21.9219 116.372 21.1913 116.372 20.1881V18.7815ZM103.38 13.4493H98.6861L101.111 18.1272H105.804L103.38 13.4493ZM115.346 13.4493H110.653L108.228 18.1272H112.922L115.346 13.4493ZM104.903 4.25712V9.32756H98.9658V12.5661H115.16V9.32756H109.192V4.25712H115.999V1.01858H98.1577V4.25712H104.903Z" fill="url(#paint2_linear_999_11044)"/>
|
||||
<path d="M84.4529 18.389C84.9088 18.389 85.3336 18.2909 85.7273 18.0946C86.1417 17.9201 86.494 17.6693 86.7841 17.3422C87.0742 17.0369 87.3022 16.6661 87.4679 16.23C87.6544 15.8156 87.7477 15.3685 87.7477 14.8887V14.2999H85.5719V12.5007V11.0941C85.5719 10.3962 85.3336 9.7965 84.857 9.29491C84.3804 8.79331 83.8105 8.54252 83.1474 8.54252H67.0777V7.39758H85.5719V6.90689V4.94414V3.57021C85.5719 3.22128 85.5097 2.89415 85.3854 2.58884C85.2611 2.28352 85.0849 2.01092 84.857 1.77102C84.6498 1.55294 84.3907 1.37847 84.0799 1.24762C83.7898 1.11677 83.479 1.05135 83.1474 1.05135H62.8504V3.43936V4.94414V7.39758V8.54252V10.9632V12.5007V14.2999H60.457V18.389H71.5225L71.0562 19.2722H75.7497L76.216 18.389H84.4529ZM67.0777 4.94414V3.43936H80.8473C81.1789 3.43936 81.3446 3.61383 81.3446 3.96276V4.94414H67.0777ZM64.7154 16.1973V14.9215H83.4893V15.3467C83.4893 15.5866 83.4064 15.7829 83.2407 15.9355C83.0956 16.11 82.9091 16.1973 82.6812 16.1973H76.1849H71.9266H64.7154ZM81.3446 12.5007H67.0777V10.9632H80.8473C81.1789 10.9632 81.3446 11.1377 81.3446 11.4866V12.5007ZM73.4496 21.464H70.5589L71.3671 19.8938H67.7615L66.9222 21.464H65.4303L64.7464 19.8938H60.457L62.5707 24.6044H66.829L66.4249 23.6884H73.4496V21.464ZM80.6919 24.6044L80.2567 23.6884H87.2814V21.464H84.3907L85.23 19.8938H81.5933L80.7541 21.464H79.2621L78.5783 19.8938H74.2888L76.4025 24.6044H80.6919Z" fill="url(#paint3_linear_999_11044)"/>
|
||||
<path d="M40.6891 3.07923C40.8134 3.07923 40.8963 3.11194 40.9378 3.17737C40.9378 3.19918 40.9689 3.24279 41.031 3.30822L41.0932 3.47178V5.20555H34.5347V4.09332L33.8509 0.920204H30.4629L31.0535 4.09332V16.6549H42.1189C42.8442 16.6549 43.4658 16.3714 43.9839 15.8044C44.5226 15.2592 44.792 14.6049 44.792 13.8417V3.56992C44.792 3.04652 44.7299 2.63216 44.6055 2.32684C44.4812 2.02153 44.2947 1.73802 44.046 1.47632C43.8595 1.25824 43.6523 1.10558 43.4244 1.01834C43.1757 0.952919 42.9478 0.920204 42.7406 0.920204H39.3215L40.1918 3.07923H40.6891ZM58.0644 16.4587L56.6656 13.5472H49.0193C48.6048 13.5472 48.2319 13.6236 47.9003 13.7762C47.5066 13.9289 47.1854 14.147 46.9367 14.4305C46.6674 14.6922 46.4601 15.0193 46.3151 15.4119C46.1493 15.8262 46.0664 16.2297 46.0664 16.6222V24.5387H50.1072V20.0897L53.1533 24.1788H57.194L52.1276 17.4727H50.1072C50.1072 17.211 50.1901 16.9602 50.3558 16.7204C50.5838 16.5459 50.8221 16.4587 51.0707 16.4587H58.0644ZM58.0644 4.25688L56.6656 1.37818H49.0193C48.5841 1.37818 48.2111 1.45451 47.9003 1.60717C47.7138 1.67259 47.5377 1.75983 47.3719 1.86887C47.2268 1.99972 47.0818 2.13057 46.9367 2.26142C46.6674 2.50131 46.4601 2.82844 46.3151 3.2428C46.1493 3.63535 46.0664 4.0388 46.0664 4.45316V12.3042H50.1072V7.85526L53.1533 12.0098H57.194L52.1276 5.27097H50.1072C50.1072 4.96565 50.1901 4.72576 50.3558 4.5513C50.5838 4.35502 50.8221 4.25688 51.0707 4.25688H58.0644ZM33.8198 24.7676H37.8295L35.9956 20.6786H40.4094L39.7255 22.5105H43.5487L45.2583 17.898H42.9892V17.8653H30.9602L33.8198 24.7676ZM41.0932 7.72441V9.5236H34.5347V7.72441H41.0932ZM34.5347 13.7762V12.0425H41.0932V12.7294C41.0932 13.0129 40.9896 13.2528 40.7824 13.4491C40.5959 13.6672 40.3679 13.7762 40.0985 13.7762H34.5347Z" fill="url(#paint4_linear_999_11044)"/>
|
||||
<path d="M1.15424 1.05135V3.89734V5.20584V7.43029V8.73879V11.3231V11.6502H23.1919H27.6989V8.73879V7.43029V5.33669V5.20584C27.6782 4.61701 27.5746 4.07181 27.3881 3.57021C27.2223 3.06862 26.984 2.63245 26.6732 2.26171C26.3623 1.89097 25.9997 1.59656 25.5853 1.37847C25.1708 1.16039 24.7357 1.05135 24.2798 1.05135H5.56799H1.15424ZM5.56799 7.43029H23.1919V8.73879H5.56799V7.43029ZM5.56799 3.89734H22.1973C22.4874 3.89734 22.7257 4.01728 22.9122 4.25718C23.0987 4.49707 23.1919 4.79148 23.1919 5.14042V5.20584H5.56799V3.89734ZM15.732 24.6044H28.0719V24.31V21.3658V16.0664C28.0719 15.5648 27.9786 15.0959 27.7921 14.6598C27.6264 14.2236 27.3881 13.8419 27.0772 13.5148C26.7664 13.1877 26.4038 12.926 25.9893 12.7297C25.5749 12.5553 25.1294 12.468 24.6528 12.468H15.732V13.7438V15.7066V21.3658V24.31V24.6044ZM23.7514 21.3658H20.0525V15.7066H22.7878C23.0572 15.7066 23.2852 15.8047 23.4716 16.001C23.6581 16.1973 23.7514 16.4371 23.7514 16.7207V21.3658ZM0.843415 12.468L4.51118 15.8047H0.78125V19.0432H6.12748V20.2209H5.07067H2.77054H0.78125L2.24214 24.6044H6.53156L6.15856 23.4594H14.3022V20.2209H10.448V19.0432H14.4887V15.8047H12.1886L14.8928 12.468H10.5723L8.58302 14.9542L5.84774 12.468H0.843415Z" fill="url(#paint5_linear_999_11044)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_999_11044" x1="159.883" y1="24.4404" x2="159.883" y2="1.24718" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="0.379808" stop-color="white" stop-opacity="0.01"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.38"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_999_11044" x1="131.29" y1="24.5388" x2="131.29" y2="1.11658" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="0.379808" stop-color="white" stop-opacity="0.01"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.38"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_999_11044" x1="102.68" y1="24.6697" x2="102.68" y2="1.01858" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="0.379808" stop-color="white" stop-opacity="0.01"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.38"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear_999_11044" x1="74.1024" y1="24.6044" x2="74.1024" y2="1.05135" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="0.379808" stop-color="white" stop-opacity="0.01"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.38"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint4_linear_999_11044" x1="44.2636" y1="24.7676" x2="44.2636" y2="0.920206" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="0.379808" stop-color="white" stop-opacity="0.01"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.38"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint5_linear_999_11044" x1="14.4266" y1="24.6044" x2="14.4266" y2="1.05135" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="0.379808" stop-color="white" stop-opacity="0.01"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.38"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.3 KiB |
@ -0,0 +1,8 @@
|
||||
<svg width="174" height="25" viewBox="0 0 174 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M172.379 20.9349C172.379 21.3711 172.296 21.7745 172.13 22.1453C171.985 22.516 171.778 22.8432 171.508 23.1267C171.26 23.3884 170.949 23.6064 170.576 23.7809C170.224 23.9336 169.851 24.0099 169.457 24.0099H151.584H147.046V20.8368V15.4392V15.0467V12.2334H172.379V12.2988V15.4392V20.9349ZM167.84 15.4392H151.584V20.8368H166.877C167.146 20.8368 167.374 20.7386 167.561 20.5424C167.747 20.3461 167.84 20.0953 167.84 19.79V15.4392ZM146.549 10.6632L152.548 0.816711H156.93L152.89 7.45736H166.815L163.769 2.12521H167.934L173.218 11.4156H169.084L168.649 10.6632H150.931H147.792H146.549Z" fill="white"/>
|
||||
<path d="M136.792 13.6398L138.594 5.46164H142.324L140.521 13.6398H136.792ZM126.099 13.6398H122.369L120.691 5.46164H124.421L126.099 13.6398ZM144.935 18.1214H133.466V24.1405H129.145V18.1214H117.645V17.2709V15.0791V14.9156H129.145V3.92415H118.67V3.43346V1.24172V0.718323H143.909V1.24172V3.43346V3.92415H133.466V14.9156H144.935V15.0791V17.2709V18.1214Z" fill="white"/>
|
||||
<path d="M91.4438 14.1958V5.78863H89.0194V2.58281H91.4438V0.587341H95.2981V2.58281H96.8211V5.78863H95.2981V9.64871H97.536L95.2981 14.621V21.1308C95.2981 21.567 95.2255 21.9704 95.0805 22.3412C94.9354 22.7119 94.7386 23.039 94.4899 23.3225C94.262 23.5842 93.9822 23.8023 93.6507 23.9768C93.3399 24.1295 92.9979 24.2058 92.625 24.2058H89.268L89.9829 21.9159H90.5424C90.7911 21.9159 90.9983 21.8178 91.1641 21.6215C91.3506 21.4252 91.4438 21.1853 91.4438 20.9018V19.5933H88.9883L91.4438 14.1958ZM116.372 6.4756H112.394V5.72321C112.394 5.4397 112.3 5.19981 112.114 5.00353C111.927 4.80726 111.699 4.70912 111.43 4.70912H102.043V6.4756H98.0644V2.19026H104.747L104.126 0.750906H108.819L109.441 2.19026H113.295C114.248 2.19026 114.994 2.41924 115.533 2.87722C116.092 3.33519 116.372 4.06577 116.372 5.06896V6.4756ZM103.38 11.8077H98.6861L101.111 7.12985H105.804L103.38 11.8077ZM115.346 11.8077H110.653L108.228 7.12985H112.922L115.346 11.8077ZM104.903 21V15.9295H98.9658V12.691H115.16V15.9295H109.192V21H115.999V24.2385H98.1577V21H104.903Z" fill="white"/>
|
||||
<path d="M84.4529 6.86809C84.9088 6.86809 85.3336 6.96623 85.7273 7.1625C86.1417 7.33697 86.494 7.58777 86.7841 7.91489C87.0742 8.22021 87.3022 8.59095 87.4679 9.02712C87.6544 9.44148 87.7477 9.88855 87.7477 10.3683V10.9572H85.5719V12.7563V14.163C85.5719 14.8609 85.3336 15.4606 84.857 15.9622C84.3804 16.4638 83.8105 16.7146 83.1474 16.7146H67.0777V17.8595H85.5719V18.3502V20.3129V21.6869C85.5719 22.0358 85.5097 22.3629 85.3854 22.6682C85.2611 22.9736 85.0849 23.2462 84.857 23.4861C84.6498 23.7041 84.3907 23.8786 84.0799 24.0095C83.7898 24.1403 83.479 24.2057 83.1474 24.2057H62.8504V21.8177V20.3129V17.8595V16.7146V14.2938V12.7563V10.9572H60.457V6.86809H71.5225L71.0562 5.98485H75.7497L76.216 6.86809H84.4529ZM67.0777 20.3129V21.8177H80.8473C81.1789 21.8177 81.3446 21.6432 81.3446 21.2943V20.3129H67.0777ZM64.7154 9.05983V10.3356H83.4893V9.91036C83.4893 9.67046 83.4064 9.47419 83.2407 9.32153C83.0956 9.14706 82.9091 9.05983 82.6812 9.05983H76.1849H71.9266H64.7154ZM81.3446 12.7563H67.0777V14.2938H80.8473C81.1789 14.2938 81.3446 14.1194 81.3446 13.7704V12.7563ZM73.4496 3.79311H70.5589L71.3671 5.36331H67.7615L66.9222 3.79311H65.4303L64.7464 5.36331H60.457L62.5707 0.65271H66.829L66.4249 1.56866H73.4496V3.79311ZM80.6919 0.65271L80.2567 1.56866H87.2814V3.79311H84.3907L85.23 5.36331H81.5933L80.7541 3.79311H79.2621L78.5783 5.36331H74.2888L76.4025 0.65271H80.6919Z" fill="white"/>
|
||||
<path d="M40.6891 22.1778C40.8134 22.1778 40.8963 22.1451 40.9378 22.0797C40.9378 22.0579 40.9689 22.0143 41.031 21.9489L41.0932 21.7853V20.0515H34.5347V21.1638L33.8509 24.3369H30.4629L31.0535 21.1638V8.60215H42.1189C42.8442 8.60215 43.4658 8.88566 43.9839 9.45267C44.5226 9.99788 44.792 10.6521 44.792 11.4154V21.6872C44.792 22.2106 44.7299 22.6249 44.6055 22.9302C44.4812 23.2356 44.2947 23.5191 44.046 23.7808C43.8595 23.9988 43.6523 24.1515 43.4244 24.2387C43.1757 24.3042 42.9478 24.3369 42.7406 24.3369H39.3215L40.1918 22.1778H40.6891ZM58.0644 8.79842L56.6656 11.7098H49.0193C48.6048 11.7098 48.2319 11.6335 47.9003 11.4809C47.5066 11.3282 47.1854 11.1101 46.9367 10.8266C46.6674 10.5649 46.4601 10.2378 46.3151 9.84522C46.1493 9.43087 46.0664 9.02741 46.0664 8.63486V0.718428H50.1072V5.16733L53.1533 1.07827H57.194L52.1276 7.78433H50.1072C50.1072 8.04604 50.1901 8.29683 50.3558 8.53672C50.5838 8.71119 50.8221 8.79842 51.0707 8.79842H58.0644ZM58.0644 21.0002L56.6656 23.8789H49.0193C48.5841 23.8789 48.2111 23.8026 47.9003 23.6499C47.7138 23.5845 47.5377 23.4973 47.3719 23.3882C47.2268 23.2574 47.0818 23.1265 46.9367 22.9957C46.6674 22.7558 46.4601 22.4286 46.3151 22.0143C46.1493 21.6217 46.0664 21.2183 46.0664 20.8039V12.9529H50.1072V17.4018L53.1533 13.2473H57.194L52.1276 19.9861H50.1072C50.1072 20.2914 50.1901 20.5313 50.3558 20.7058C50.5838 20.9021 50.8221 21.0002 51.0707 21.0002H58.0644ZM33.8198 0.489441H37.8295L35.9956 4.57851H40.4094L39.7255 2.74661H43.5487L45.2583 7.35907H42.9892V7.39179H30.9602L33.8198 0.489441ZM41.0932 17.5327V15.7335H34.5347V17.5327H41.0932ZM34.5347 11.4809V13.2146H41.0932V12.5277C41.0932 12.2441 40.9896 12.0043 40.7824 11.808C40.5959 11.5899 40.3679 11.4809 40.0985 11.4809H34.5347Z" fill="white"/>
|
||||
<path d="M1.15424 24.2057V21.3597V20.0512V17.8268V16.5183V13.934V13.6069H23.1919H27.6989V16.5183V17.8268V19.9204V20.0512C27.6782 20.6401 27.5746 21.1853 27.3881 21.6869C27.2223 22.1885 26.984 22.6246 26.6732 22.9954C26.3623 23.3661 25.9997 23.6605 25.5853 23.8786C25.1708 24.0967 24.7357 24.2057 24.2798 24.2057H5.56799H1.15424ZM5.56799 17.8268H23.1919V16.5183H5.56799V17.8268ZM5.56799 21.3597H22.1973C22.4874 21.3597 22.7257 21.2398 22.9122 20.9999C23.0987 20.76 23.1919 20.4656 23.1919 20.1167V20.0512H5.56799V21.3597ZM15.732 0.65271H28.0719V0.947123V3.89125V9.19068C28.0719 9.69227 27.9786 10.1612 27.7921 10.5973C27.6264 11.0335 27.3881 11.4151 27.0772 11.7423C26.7664 12.0694 26.4038 12.3311 25.9893 12.5274C25.5749 12.7018 25.1294 12.7891 24.6528 12.7891H15.732V11.5133V9.55052V3.89125V0.947123V0.65271ZM23.7514 3.89125H20.0525V9.55052H22.7878C23.0572 9.55052 23.2852 9.45238 23.4716 9.25611C23.6581 9.05983 23.7514 8.81994 23.7514 8.53643V3.89125ZM0.843415 12.7891L4.51118 9.45238H0.78125V6.21384H6.12748V5.03619H5.07067H2.77054H0.78125L2.24214 0.65271H6.53156L6.15856 1.79765H14.3022V5.03619H10.448V6.21384H14.4887V9.45238H12.1886L14.8928 12.7891H10.5723L8.58302 10.3029L5.84774 12.7891H0.843415Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 318 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 629 B |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 371 B |
|
After Width: | Height: | Size: 485 B |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 304 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 177 KiB |
@ -0,0 +1,162 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import { connect } from 'umi';
|
||||
import { Modal, Tooltip, Input, Button } from 'antd';
|
||||
|
||||
import './index.less';
|
||||
import style from "@/global.less";
|
||||
|
||||
import StandardTable from '@/components/StandardTable';
|
||||
import { AX } from '@/utils/pr_new_datadictionary';
|
||||
import { initTreeSelect } from '@/utils/globalCommon'
|
||||
|
||||
@connect(({ baseinfodata, loading }) => ({
|
||||
baseinfodata,
|
||||
loading: loading.models.baseinfodata,
|
||||
}))
|
||||
|
||||
class A01UserTable extends PureComponent {
|
||||
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
visible: false,
|
||||
selectedRows: [],
|
||||
selectedRowKeys: [],
|
||||
formValues: '',
|
||||
};
|
||||
}
|
||||
|
||||
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||
if (undefined != nextProps.visible) {
|
||||
this.setState({ visible: nextProps.visible });
|
||||
if(!nextProps.visible) {
|
||||
this.setState({ selectedRows: [], formValues: '', selectedRowKeys: [] });
|
||||
}
|
||||
}
|
||||
// if (undefined != nextProps.value) {
|
||||
// this.setState({ selectedRowKeys: nextProps.value. });
|
||||
// }
|
||||
}
|
||||
|
||||
columns = [
|
||||
{
|
||||
title: '姓名',
|
||||
dataIndex: 'za0101',
|
||||
key: 'za0101',
|
||||
width: 80,
|
||||
fixed: 'left',
|
||||
},
|
||||
{
|
||||
title: '性别',
|
||||
dataIndex: 'aa0107',
|
||||
key: 'aa0107',
|
||||
render: val => {
|
||||
const list = AX || [];
|
||||
if (val) {
|
||||
return (
|
||||
<Tooltip title={initTreeSelect(list, val)}>
|
||||
<span className={style.nowrapper} style={{ width: '150px' }}>
|
||||
{initTreeSelect(list, val)}</span>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
componentDidMount() {
|
||||
const { dispatch } = this.props;
|
||||
dispatch({
|
||||
type: 'baseinfodata/query_page_for_aa01',
|
||||
});
|
||||
}
|
||||
|
||||
handleModalVisible() {
|
||||
const { getChildrenMsg } = this.props;
|
||||
const { selectedRows } = this.state;
|
||||
if (getChildrenMsg && selectedRows[0]) {
|
||||
getChildrenMsg(false, selectedRows[0]);
|
||||
} else {
|
||||
getChildrenMsg(false);
|
||||
}
|
||||
}
|
||||
|
||||
handleSelectRows = (selectedRowKeys, selectedRows) => {
|
||||
this.setState({
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
selectedRows: selectedRows,
|
||||
});
|
||||
};
|
||||
|
||||
handleStandardTableChange = (pagination, filtersArg, sorter) => {
|
||||
|
||||
const { dispatch } = this.props;
|
||||
const { formValues } = this.state;
|
||||
|
||||
const params = {
|
||||
currentPage: pagination.current,
|
||||
pageSize: pagination.pageSize,
|
||||
id: formValues || undefined,
|
||||
};
|
||||
|
||||
if (sorter.field) {
|
||||
params.sorter = `${sorter.field}_${sorter.order}`;
|
||||
}
|
||||
|
||||
dispatch({
|
||||
type: 'baseinfodata/query_page_for_aa01',
|
||||
payload: params,
|
||||
});
|
||||
};
|
||||
|
||||
handleChangeSearch(e) {
|
||||
this.setState({ formValues: e.target.value })
|
||||
}
|
||||
|
||||
handleSearch() {
|
||||
const { formValues } = this.state;
|
||||
const params = { id: formValues }
|
||||
dispatch({
|
||||
type: 'baseinfodata/query_page_for_aa01',
|
||||
payload: params,
|
||||
});
|
||||
}
|
||||
render() {
|
||||
const {
|
||||
baseinfodata: { data },
|
||||
loading,
|
||||
} = this.props;
|
||||
const { visible, selectedRows, selectedRowKeys } = this.state;
|
||||
return (
|
||||
<div className='a01-user-table'>
|
||||
<Modal
|
||||
title="用户列表"
|
||||
width={300}
|
||||
height={500}
|
||||
bodyStyle={{ padding: '20px', maxHeight: '500px', overflowY: 'auto' }}
|
||||
open={visible}
|
||||
onOk={() => this.handleModalVisible(false)}
|
||||
onCancel={() => this.handleModalVisible(false)}
|
||||
>
|
||||
<div style={{ marginBottom: '6px', display: 'flex' }}>
|
||||
<Input onChange={(e) => this.handleChangeSearch(e)} placeholder="" style={{ width: '100%' }} />
|
||||
<Button type="primary" onClick={this.handleSearch}>搜索</Button>
|
||||
</div>
|
||||
<StandardTable
|
||||
rowKey={"id"}
|
||||
selectedRows={selectedRows}
|
||||
loading={loading}
|
||||
data={data}
|
||||
columns={this.columns}
|
||||
// onSelectRow={this.handleSelectRows}
|
||||
onChange={this.handleStandardTableChange}
|
||||
rowSelection={{ type: 'radio', selectedRowKeys: selectedRowKeys, onChange: this.handleSelectRows }}
|
||||
/>
|
||||
</Modal>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default A01UserTable;
|
||||
@ -0,0 +1,3 @@
|
||||
.a01-user-table {
|
||||
|
||||
}
|
||||
@ -0,0 +1,446 @@
|
||||
import React, {PureComponent} from 'react';
|
||||
import {Input, message, Tree, Modal} from 'antd';
|
||||
import {DeleteOutlined, EditOutlined, FileOutlined, PlusCircleOutlined, ExclamationCircleOutlined} from '@ant-design/icons';
|
||||
import {contextMenu, Item, Menu} from 'react-contexify';
|
||||
import 'react-contexify/dist/ReactContexify.min.css';
|
||||
import {getNodeByKeyAndCallbackProcess} from '@/components/_utils/algorithmTools';
|
||||
import {connect} from '@umijs/max';
|
||||
|
||||
const {Search} = Input;
|
||||
|
||||
@connect(({globaldata, loading}) => ({
|
||||
globaldata,
|
||||
loading: loading.models.globaldata,
|
||||
}))
|
||||
class AsyncTree extends PureComponent {
|
||||
state = {
|
||||
expandedKeys: ['000000000000'],
|
||||
autoExpandParent: true,
|
||||
selectedKeys: [],
|
||||
treeData: [],
|
||||
selectedTreeByRightClick: "",
|
||||
searchValue: '',
|
||||
dataList: [],
|
||||
display: "block",
|
||||
};
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state.treeData = [
|
||||
{title: props.rootNodeName, id: '000000000000', key: '000000000000', value: '000000000000', levelcode: "000000000000"},
|
||||
]
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const {dispatch, getTreeMethod, reQueryParent} = this.props;
|
||||
if(!reQueryParent) {
|
||||
return
|
||||
}
|
||||
dispatch({
|
||||
type: 'globaldata/' + getTreeMethod,
|
||||
payload: {
|
||||
parentid: "#"
|
||||
},
|
||||
callback: (res) => {
|
||||
console.log(res)
|
||||
if (res.success == true && res?.list.length > 0) {
|
||||
const temList = res.list?.map((item) => {
|
||||
return {
|
||||
key: item.id,
|
||||
...item
|
||||
}
|
||||
})
|
||||
this.setState({
|
||||
treeData: temList
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//展开收起
|
||||
onExpand = expandedKeys => {
|
||||
this.setState({
|
||||
expandedKeys,
|
||||
autoExpandParent: false,
|
||||
});
|
||||
};
|
||||
|
||||
// 选中的树节点
|
||||
onSelect = (selectedKeys, {node}) => {
|
||||
const {checkedTreeChild} = this.props;
|
||||
this.setState({selectedKeys});
|
||||
if(checkedTreeChild) {
|
||||
checkedTreeChild(node);
|
||||
}
|
||||
};
|
||||
|
||||
addMenuTreeNode = () => {
|
||||
const {handleModalVisible} = this.props;
|
||||
handleModalVisible(true, this.state.selectedTreeByRightClick, this.reLoadCurrentTreeNode);
|
||||
};
|
||||
|
||||
updateMenuTreeNode = () => {
|
||||
const {handleUpdateModalVisible} = this.props;
|
||||
handleUpdateModalVisible(true, this.state.selectedTreeByRightClick, this.reLoadCurrentTreeNodeUpdate);
|
||||
};
|
||||
|
||||
viewMenuTreeNode = () => {
|
||||
const {handleViewModalVisible} = this.props;
|
||||
handleViewModalVisible(true, this.state.selectedTreeByRightClick);
|
||||
};
|
||||
|
||||
deleteMenuTreeNode = () => {
|
||||
const {handleDeleteRecord} = this.props;
|
||||
Modal.confirm({
|
||||
title: '你确定要删除吗?',
|
||||
icon: <ExclamationCircleOutlined />,
|
||||
content: '删除该节点后其子节点也会删除!这并不会删除该节点及其子节点的的关联数据',
|
||||
okText: '确认',
|
||||
cancelText: '取消',
|
||||
onOk: () => {
|
||||
handleDeleteRecord(this.state.selectedTreeByRightClick, this.reLoadCurrentTreeNodeDelete)
|
||||
},
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
// 响应右键点击
|
||||
rightClickTreeNode = ({event, node}) => {
|
||||
event.preventDefault();
|
||||
contextMenu.show({
|
||||
id: 'menu_id',
|
||||
event: event,
|
||||
props: {
|
||||
foo: 'bar'
|
||||
}
|
||||
});
|
||||
|
||||
if (node.key != '000000000000') {
|
||||
this.setState({
|
||||
selectedTreeByRightClick: node,
|
||||
display: "block",
|
||||
});
|
||||
} else {
|
||||
this.setState({
|
||||
selectedTreeByRightClick: node,
|
||||
display: "none",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 右键菜单
|
||||
MyAwesomeMenu = () => (
|
||||
<Menu id='menu_id' theme="light" style={{zIndex: 1000}}>
|
||||
<Item onClick={this.addMenuTreeNode}>
|
||||
<PlusCircleOutlined style={{fontSize: 16, paddingTop: 3}}/>
|
||||
<span style={{paddingLeft: 10}}>添加</span>
|
||||
</Item>
|
||||
<Item onClick={this.updateMenuTreeNode} style={{display: this.state.display}}>
|
||||
<EditOutlined style={{fontSize: 16, paddingTop: 3}}/>
|
||||
<span style={{paddingLeft: 10}}>修改</span>
|
||||
</Item>
|
||||
<Item onClick={this.viewMenuTreeNode} style={{display: this.state.display}}>
|
||||
<FileOutlined style={{fontSize: 16, paddingTop: 3}}/>
|
||||
<span style={{paddingLeft: 10}}>查看</span>
|
||||
</Item>
|
||||
<Item onClick={this.deleteMenuTreeNode} style={{display: this.state.display}}>
|
||||
<DeleteOutlined style={{fontSize: 16, paddingTop: 3}}/>
|
||||
<span style={{paddingLeft: 10}}>删除</span>
|
||||
</Item>
|
||||
</Menu>
|
||||
);
|
||||
|
||||
// 组装树数据
|
||||
updateTreeData(list, key, children) {
|
||||
return list.map(node => {
|
||||
if (node.key === key) {
|
||||
return {
|
||||
...node,
|
||||
children,
|
||||
};
|
||||
} else if (node.children) {
|
||||
return {
|
||||
...node,
|
||||
children: this.updateTreeData(node.children, key, children),
|
||||
};
|
||||
}
|
||||
return node;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步加载树数据
|
||||
* @param key
|
||||
* @param children
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
onLoadData = ({key, children}) => {
|
||||
const {dispatch, getTreeMethod} = this.props;
|
||||
|
||||
const params = {
|
||||
parentid: key
|
||||
};
|
||||
|
||||
return new Promise((resolve) => {
|
||||
// if (children) {
|
||||
// resolve();
|
||||
// return;
|
||||
// }
|
||||
dispatch({
|
||||
type: 'globaldata/' + getTreeMethod,
|
||||
payload: params,
|
||||
callback: (res) => {
|
||||
if (res.success == true) {
|
||||
const temList = res.list?.map((item) => {
|
||||
return {
|
||||
key: item.id,
|
||||
...item
|
||||
}
|
||||
})
|
||||
this.setState({
|
||||
treeData: this.updateTreeData(this.state.treeData, key, temList)
|
||||
});
|
||||
}
|
||||
resolve();
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
reLoadCurrentTreeNode = (treeNode, dropKey) => {
|
||||
const data = [...this.state.treeData];
|
||||
treeNode.key = treeNode.id;
|
||||
getNodeByKeyAndCallbackProcess(data, dropKey, (item) => {
|
||||
item.children = item.children || [];
|
||||
// where to insert 示例添加到尾部,可以是随意位置
|
||||
item.children.push(treeNode);
|
||||
});
|
||||
|
||||
this.setState({
|
||||
treeData: data,
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
||||
reLoadCurrentTreeNodeUpdate = (treeNode, currentTreeNodeKey, parentTreeNodeKey) => {
|
||||
const data = [...this.state.treeData];
|
||||
|
||||
getNodeByKeyAndCallbackProcess(data, parentTreeNodeKey, (item) => {
|
||||
item.children = item.children || {};
|
||||
item.children = item.children.map((item, key) => item.key == currentTreeNodeKey ? {...item, ...treeNode} : item)
|
||||
// item.children.push(treeNode);
|
||||
});
|
||||
this.setState({
|
||||
treeData: data,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
reLoadCurrentTreeNodeDelete = (currentTreeNodeKey) => {
|
||||
|
||||
const data = [...this.state.treeData];
|
||||
getNodeByKeyAndCallbackProcess(data, currentTreeNodeKey, (item, index, arr) => {
|
||||
arr.splice(index, 1);
|
||||
});
|
||||
|
||||
this.setState({
|
||||
treeData: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 搜索事件
|
||||
onChange = e => {
|
||||
const {treeData, dataList} = this.state;
|
||||
const {value} = e.target;
|
||||
const expandedKeys = dataList.map(item => {
|
||||
if (item.title.indexOf(value) > -1) {
|
||||
return this.getParentKey(item.title, treeData);
|
||||
}
|
||||
return null;
|
||||
}).filter((item, i, self) => item && self.indexOf(item) === i);
|
||||
this.setState({
|
||||
expandedKeys,
|
||||
searchValue: value,
|
||||
autoExpandParent: true,
|
||||
});
|
||||
};
|
||||
|
||||
getParentKey = (title, tree) => {
|
||||
let parentKey;
|
||||
for (let i = 0; i < tree.length; i++) {
|
||||
const node = tree[i];
|
||||
if (node.children) {
|
||||
if (node.children.some(item => item.title === title)) {
|
||||
parentKey = node.key;
|
||||
} else if (this.getParentKey(title, node.children)) {
|
||||
parentKey = this.getParentKey(title, node.children);
|
||||
}
|
||||
}
|
||||
}
|
||||
return parentKey;
|
||||
};
|
||||
|
||||
generateList = data => {
|
||||
|
||||
if (undefined == data) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
const node = data[i];
|
||||
const {key, title} = node;
|
||||
this.state.dataList.push({key, title: title});
|
||||
if (node.children) {
|
||||
this.generateList(node.children);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
onDrop = async info => {
|
||||
const dropKey = info.node.key;
|
||||
const dragKey = info.dragNode.key;
|
||||
const dropPos = info.node.pos.split('-');
|
||||
const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);
|
||||
|
||||
const source_parent_id = info.dragNode.parentid;
|
||||
const source_levelcode = info.dragNode.levelcode;
|
||||
let new_levelcode = "";
|
||||
let dragKey_parent_id = "";
|
||||
let sequences = "";
|
||||
let sequencesArray = [];
|
||||
|
||||
const data = [...this.state.treeData];
|
||||
|
||||
// Find dragObject
|
||||
let dragObj;
|
||||
getNodeByKeyAndCallbackProcess(data, dragKey, (item, index, arr) => {
|
||||
arr.splice(index, 1);
|
||||
dragObj = item;
|
||||
});
|
||||
|
||||
if (!info.dropToGap) {
|
||||
let ar;
|
||||
// Drop on the content 移动到未展开的节点里
|
||||
getNodeByKeyAndCallbackProcess(data, dropKey, (item, index) => {
|
||||
new_levelcode = item.levelcode + "/" + dragKey;
|
||||
dragKey_parent_id = item.key;
|
||||
ar = item.children || [];
|
||||
|
||||
dragObj.levelcode = new_levelcode;
|
||||
dragObj.parentid = dragKey_parent_id;
|
||||
item.children = item.children || [];
|
||||
sequences = item.children.length;
|
||||
// where to insert 示例添加到尾部,可以是随意位置 push
|
||||
item.children.unshift(dragObj);
|
||||
});
|
||||
ar.forEach((item, index) => {
|
||||
let arrs = {
|
||||
id: item.key,
|
||||
sequences: index
|
||||
}
|
||||
sequencesArray.push(arrs);
|
||||
})
|
||||
} else if (
|
||||
(info.node.props.children || []).length > 0 && // Has children
|
||||
info.node.props.expanded && // Is expanded
|
||||
dropPosition === 1 // On the bottom gap
|
||||
) {
|
||||
getNodeByKeyAndCallbackProcess(data, dropKey, (item) => {
|
||||
new_levelcode = item.levelcode + "/" + dragKey;
|
||||
dragKey_parent_id = item.key
|
||||
|
||||
dragObj.levelcode = new_levelcode;
|
||||
dragObj.parentid = dragKey_parent_id;
|
||||
item.children = item.children || [];
|
||||
item.children.unshift(dragObj);
|
||||
});
|
||||
} else {
|
||||
let ar;
|
||||
let i;
|
||||
getNodeByKeyAndCallbackProcess(data, dropKey, (item, index, arr) => {
|
||||
new_levelcode = item.levelcode.replace(item.key, "") + dragKey;
|
||||
dragKey_parent_id = item.parentid
|
||||
|
||||
dragObj.levelcode = new_levelcode;
|
||||
dragObj.parentid = dragKey_parent_id;
|
||||
ar = arr;
|
||||
i = index;
|
||||
});
|
||||
if (dropPosition === -1) {
|
||||
sequences = i;
|
||||
ar.splice(i, 0, dragObj);
|
||||
} else {
|
||||
sequences = i + 1;
|
||||
ar.splice(i + 1, 0, dragObj);
|
||||
}
|
||||
ar.forEach((item, index, arr) => {
|
||||
if(sequences <= index) {
|
||||
let arrs = {
|
||||
id: item.key,
|
||||
sequences: index
|
||||
}
|
||||
sequencesArray.push(arrs);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const {dispatch, updateTreeNodeByDragUrl} = this.props;
|
||||
|
||||
await dispatch({
|
||||
type: 'globaldata/' + updateTreeNodeByDragUrl,
|
||||
payload: {
|
||||
source_id: dragKey,
|
||||
source_parentid: source_parent_id,
|
||||
source_levelcode: source_levelcode,
|
||||
target_id: dragKey_parent_id,
|
||||
levelcode: new_levelcode,
|
||||
sequences: sequences,
|
||||
sequencesArray: sequencesArray
|
||||
},
|
||||
callback: async (res) => {
|
||||
if(res.success == true) {
|
||||
message.success('修改成功');
|
||||
await this.setState({
|
||||
treeData: data,
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
render() {
|
||||
const { height, modify } = this.props;
|
||||
const {autoExpandParent, expandedKeys, selectedKeys, treeData} = this.state;
|
||||
this.generateList(treeData);
|
||||
|
||||
return (
|
||||
<div style={{float: 'left', width: '30%'}}>
|
||||
<Search style={{marginBottom: 8, width: '100%'}} placeholder={'请输入'}
|
||||
onChange={this.onChange}/>
|
||||
<Tree
|
||||
loadData={this.onLoadData}
|
||||
onExpand={this.onExpand}
|
||||
expandedKeys={expandedKeys}
|
||||
autoExpandParent={autoExpandParent}
|
||||
onSelect={this.onSelect}
|
||||
selectedKeys={selectedKeys}
|
||||
onRightClick={this.rightClickTreeNode}
|
||||
draggable={modify}
|
||||
onDrop={this.onDrop}
|
||||
treeData={treeData}
|
||||
height={height || 700}
|
||||
>
|
||||
</Tree>
|
||||
{modify ? this.MyAwesomeMenu() : null}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default AsyncTree;
|
||||
@ -0,0 +1,2 @@
|
||||
@import '~antd/es/style/themes/default.less';
|
||||
|
||||
@ -0,0 +1,57 @@
|
||||
@avatar-size-base: 32px;
|
||||
@avatar-size-lg: 40px;
|
||||
@avatar-size-sm: 24px;
|
||||
@font-size-base: 14px;
|
||||
@border-color-base: hsv(0, 0, 85%);
|
||||
|
||||
.avatarList {
|
||||
display: inline-block;
|
||||
|
||||
ul {
|
||||
display: inline-block;
|
||||
margin-left: 8px;
|
||||
font-size: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.avatarItem {
|
||||
display: inline-block;
|
||||
width: @avatar-size-base;
|
||||
height: @avatar-size-base;
|
||||
margin-left: -8px;
|
||||
font-size: @font-size-base;
|
||||
|
||||
:global {
|
||||
.ant-avatar {
|
||||
border: 1px solid @border-color-base;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.avatarItemLarge {
|
||||
width: @avatar-size-lg;
|
||||
height: @avatar-size-lg;
|
||||
}
|
||||
|
||||
.avatarItemSmall {
|
||||
width: @avatar-size-sm;
|
||||
height: @avatar-size-sm;
|
||||
}
|
||||
|
||||
.avatarItemMini {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
|
||||
:global {
|
||||
.ant-avatar {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
|
||||
.ant-avatar-string {
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
import { Avatar, Tooltip } from 'antd'
|
||||
import React from 'react'
|
||||
import classNames from 'classnames'
|
||||
import styles from './index.less'
|
||||
|
||||
export declare type SizeType = number | 'small' | 'default' | 'large'
|
||||
|
||||
export interface AvatarItemProps {
|
||||
tips: React.ReactNode
|
||||
src: string
|
||||
size?: SizeType
|
||||
style?: React.CSSProperties
|
||||
onClick?: () => void
|
||||
}
|
||||
|
||||
export interface AvatarListProps {
|
||||
Item?: React.ReactElement<AvatarItemProps>
|
||||
size?: SizeType
|
||||
maxLength?: number
|
||||
excessItemsStyle?: React.CSSProperties
|
||||
style?: React.CSSProperties
|
||||
children: React.ReactElement<AvatarItemProps> | React.ReactElement<AvatarItemProps>[]
|
||||
}
|
||||
|
||||
const avatarSizeToClassName = (size?: SizeType | 'mini') =>
|
||||
classNames(styles.avatarItem, {
|
||||
[styles.avatarItemLarge]: size === 'large',
|
||||
[styles.avatarItemSmall]: size === 'small',
|
||||
[styles.avatarItemMini]: size === 'mini'
|
||||
})
|
||||
|
||||
const Item: React.FC<AvatarItemProps> = ({ src, size, tips, onClick = () => {} }) => {
|
||||
const cls = avatarSizeToClassName(size)
|
||||
|
||||
return (
|
||||
<li className={cls} onClick={onClick}>
|
||||
{tips ? (
|
||||
<Tooltip title={tips}>
|
||||
<Avatar src={src} size={size} style={{ cursor: 'pointer' }} />
|
||||
</Tooltip>
|
||||
) : (
|
||||
<Avatar src={src} size={size} />
|
||||
)}
|
||||
</li>
|
||||
)
|
||||
}
|
||||
|
||||
const AvatarList: React.FC<AvatarListProps> & { Item: typeof Item } = ({children, size, maxLength = 5, excessItemsStyle, ...other}) => {
|
||||
const numOfChildren = React.Children.count(children)
|
||||
const numToShow = maxLength >= numOfChildren ? numOfChildren : maxLength
|
||||
const childrenArray = React.Children.toArray(children) as React.ReactElement<AvatarItemProps>[]
|
||||
const childrenWithProps = childrenArray.slice(0, numToShow).map((child) => React.cloneElement(child, { size }))
|
||||
|
||||
if (numToShow < numOfChildren) {
|
||||
const cls = avatarSizeToClassName(size)
|
||||
|
||||
childrenWithProps.push(
|
||||
<li key='exceed' className={cls}>
|
||||
<Avatar size={size} style={excessItemsStyle}>{`+${numOfChildren - maxLength}`}</Avatar>
|
||||
</li>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div {...other} className={styles.avatarList}>
|
||||
<ul> {childrenWithProps} </ul>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
AvatarList.Item = Item
|
||||
|
||||
export default AvatarList
|
||||
@ -0,0 +1,98 @@
|
||||
import {
|
||||
Row,
|
||||
Col,
|
||||
Form,
|
||||
Input,
|
||||
DatePicker,
|
||||
Button,
|
||||
} from 'antd';
|
||||
import SelectOptionTree from '@/components/SelectOptionTree';
|
||||
import { AX, OR, } from '@/utils/pr_new_datadictionary';
|
||||
import { UpOutlined } from '@ant-design/icons';
|
||||
import style from "@/global.less";
|
||||
const FormItem = Form.Item;
|
||||
|
||||
const Aa01RenderAdvancedForm = (props) => {
|
||||
|
||||
const [form] = Form.useForm();
|
||||
|
||||
const { handleSearch, handleFormReset, toggleForm } = props;
|
||||
|
||||
const onFinish = values => {
|
||||
//console.log('Received values of form: ', values);
|
||||
handleSearch(values);
|
||||
};
|
||||
|
||||
const myhandleFormReset = () => {
|
||||
form.resetFields();
|
||||
handleFormReset();
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
<Form form={form} onFinish={onFinish} layout="inline">
|
||||
|
||||
<Row gutter={{ md: 8, lg: 24, xl: 48 }} style={{ width: '100%' }} className={style.searchinput}>
|
||||
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="本单位工龄" name="aa0101">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="人工成本统计标识" name="aa0106">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
</Row>
|
||||
|
||||
<Row gutter={{ md: 8, lg: 24, xl: 48 }} style={{ width: '100%' }} className={style.searchinput}>
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="性别" name="aa0107">
|
||||
<SelectOptionTree treeData={AX || []} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="备注" name="aa0108">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="人员类别" name="aa010d">
|
||||
<SelectOptionTree treeData={OR || []} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
</Row>
|
||||
|
||||
<Row gutter={{ md: 8, lg: 24, xl: 48 }} style={{ width: '100%' }} className={style.searchbox}>
|
||||
|
||||
<Col md={24} sm={24}>
|
||||
<div style={{ marginBottom: 12, display: 'flex', justifyContent: 'flex-end' }}>
|
||||
<Button type="primary" htmlType="submit">
|
||||
查询
|
||||
</Button>
|
||||
<Button style={{ marginLeft: 8 }} onClick={myhandleFormReset}>
|
||||
重置
|
||||
</Button>
|
||||
<a style={{ marginLeft: 8, lineHeight: '32px' }} onClick={toggleForm}>
|
||||
收起 <UpOutlined />
|
||||
</a>
|
||||
</div>
|
||||
</Col>
|
||||
|
||||
</Row>
|
||||
|
||||
</Form>
|
||||
|
||||
);
|
||||
|
||||
|
||||
};
|
||||
|
||||
export default Aa01RenderAdvancedForm;
|
||||
@ -0,0 +1,70 @@
|
||||
import {
|
||||
Row,
|
||||
Col,
|
||||
Form,
|
||||
Input,
|
||||
DatePicker,
|
||||
Button,
|
||||
} from 'antd';
|
||||
import { DownOutlined } from '@ant-design/icons';
|
||||
import style from "@/global.less";
|
||||
const FormItem = Form.Item;
|
||||
|
||||
const Aa01RenderSimpleForm = (props) => {
|
||||
|
||||
const [form] = Form.useForm();
|
||||
|
||||
const { submitButtons, handleSearch, handleFormReset, toggleForm } = props;
|
||||
|
||||
const onFinish = values => {
|
||||
//console.log('Received values of form: ', values);
|
||||
handleSearch(values);
|
||||
};
|
||||
|
||||
const myhandleFormReset = () => {
|
||||
form.resetFields();
|
||||
handleFormReset();
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
<Form form={form} onFinish={onFinish} layout="inline">
|
||||
|
||||
<Row gutter={{ md: 8, lg: 24, xl: 48 }} style={{ width: '100%' }} className={style.searchinput}>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="本单位工龄" name="aa0101">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="人工成本统计标识" name="aa0106">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<div style={{ marginBottom: 12, display: 'flex', justifyContent: 'flex-end' }}>
|
||||
<Button type="primary" htmlType="submit">
|
||||
查询
|
||||
</Button>
|
||||
<Button style={{ marginLeft: 8 }} onClick={myhandleFormReset}>
|
||||
重置
|
||||
</Button>
|
||||
<a style={{ marginLeft: 8, lineHeight: '32px' }} onClick={toggleForm}>
|
||||
展开 <DownOutlined />
|
||||
</a>
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
|
||||
</Form>
|
||||
|
||||
);
|
||||
|
||||
|
||||
};
|
||||
|
||||
export default Aa01RenderSimpleForm;
|
||||
@ -0,0 +1,83 @@
|
||||
.aa01tableList {
|
||||
.aa01tableListOperator {
|
||||
margin-bottom: 16px;
|
||||
button {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.aa01tableListForm {
|
||||
:global {
|
||||
.ant-form-item {
|
||||
display: flex;
|
||||
margin-right: 0;
|
||||
margin-bottom: 24px;
|
||||
> .ant-form-item-label {
|
||||
width: auto;
|
||||
padding-right: 8px;
|
||||
line-height: 32px;
|
||||
}
|
||||
.ant-form-item-control {
|
||||
line-height: 32px;
|
||||
}
|
||||
}
|
||||
.ant-form-item-control-wrapper {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
.submitButtons {
|
||||
display: block;
|
||||
margin-bottom: 24px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 0.8em;
|
||||
height: 0.8em;
|
||||
vertical-align: -0.15em;
|
||||
fill: currentColor;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ant-upload{
|
||||
width: 130px !important;
|
||||
height: 140px !important;
|
||||
}
|
||||
|
||||
.staffPhoto {
|
||||
font-size: 70px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.photoBox {
|
||||
.headIcon {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
svg {
|
||||
height: 150px;
|
||||
width: 140px;
|
||||
opacity: .75;
|
||||
}
|
||||
}
|
||||
:global {
|
||||
.ant-upload-select-picture-card{
|
||||
height: 150px;
|
||||
width: 150px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: @screen-lg) {
|
||||
.aa01tableListForm :global(.ant-form-item) {
|
||||
margin-right: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: @screen-md) {
|
||||
.aa01tableListForm :global(.ant-form-item) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,579 @@
|
||||
import { PureComponent, Fragment } from 'react';
|
||||
import { DownOutlined, SearchOutlined, EditOutlined, DeleteOutlined, PlusOutlined } from '@ant-design/icons';
|
||||
import { history, connect } from 'umi';
|
||||
|
||||
import {
|
||||
Card,
|
||||
Button,
|
||||
Dropdown,
|
||||
Menu,
|
||||
message,
|
||||
DatePicker,
|
||||
Divider,
|
||||
Popconfirm,
|
||||
Tooltip
|
||||
} from 'antd';
|
||||
|
||||
import { initTreeSelect, userInfo } from '@/utils/globalCommon'
|
||||
import { XQ, AE, AX, _09, AB, OR, BG, AT, HC, OC, OD, RF, X4 } from '@/utils/pr_new_datadictionary';
|
||||
import Aa01VipCreateForm from './form/Aa01VipCreateForm'; //新增表单
|
||||
import Aa01VipUpdateForm from './form/Aa01VipUpdateForm'; //修改表单
|
||||
import Aa01VipViewForm from './form/Aa01VipViewForm'; //查看表单
|
||||
import Aa01VipRenderSimpleForm from './form/Aa01VipRenderSimpleForm'; //简单查询表单
|
||||
import Aa01VipRenderAdvancedForm from './form/Aa01VipRenderAdvancedForm'; //高级查询表单
|
||||
import moment from 'moment';
|
||||
|
||||
import StandardTable from '@/components/StandardTable';
|
||||
|
||||
import style from '@/global.less';
|
||||
import styles from './index.less';
|
||||
|
||||
const { RangePicker } = DatePicker;
|
||||
|
||||
|
||||
/* eslint react/no-multi-comp:0 */
|
||||
@connect(({ baseinfodata, loading }) => ({
|
||||
baseinfodata,
|
||||
loading: loading.models.baseinfodata,
|
||||
}))
|
||||
class Aa01VipTable extends PureComponent {
|
||||
|
||||
state = {
|
||||
modalVisible: false,
|
||||
updateModalVisible: false,
|
||||
viewModalVisible: false,
|
||||
expandForm: false,
|
||||
selectedRows: [],
|
||||
formValues: {},
|
||||
updateFormValues: {},
|
||||
viewFormValues: {},
|
||||
};
|
||||
|
||||
columns = [
|
||||
{
|
||||
title: '姓名',
|
||||
dataIndex: 'za0101',
|
||||
key: 'za0101',
|
||||
width: 80,
|
||||
fixed: 'left',
|
||||
},
|
||||
{
|
||||
title: '性别',
|
||||
dataIndex: 'aa0107',
|
||||
key: 'aa0107',
|
||||
render: val => {
|
||||
const list = AX || [];
|
||||
if (val) {
|
||||
return (
|
||||
<Tooltip title={initTreeSelect(list, val)}>
|
||||
<span className={style.nowrapper} style={{ width: '150px' }}>
|
||||
{initTreeSelect(list, val)}</span>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '民族',
|
||||
dataIndex: 'aa0121',
|
||||
key: 'aa0121',
|
||||
render: val => {
|
||||
const list = AE || [];
|
||||
if (val) {
|
||||
return (
|
||||
<Tooltip title={initTreeSelect(list, val)}>
|
||||
<span className={style.nowrapper} style={{ width: '150px' }}>
|
||||
{initTreeSelect(list, val)}</span>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '出生年月',
|
||||
dataIndex: 'aa0111',
|
||||
key: 'aa0111',
|
||||
render: val => (<span>{moment(val).format("YYYY-MM")}</span>)
|
||||
},
|
||||
{
|
||||
title: '籍贯',
|
||||
dataIndex: 'aa0114',
|
||||
key: 'aa0114',
|
||||
render: val => {
|
||||
const list = AB || [];
|
||||
if (val) {
|
||||
return (
|
||||
<Tooltip title={initTreeSelect(list, val)}>
|
||||
<span className={style.nowrapper} style={{ width: '150px' }}>
|
||||
{initTreeSelect(list, val)}</span>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '参加工作时间',
|
||||
dataIndex: 'aa0141',
|
||||
key: 'aa0141',
|
||||
},
|
||||
{
|
||||
title: '职称',
|
||||
dataIndex: 'v_aa011a',
|
||||
key: 'v_aa011a',
|
||||
},
|
||||
{
|
||||
title: '婚姻状况',
|
||||
dataIndex: 'aa0127',
|
||||
key: 'aa0127',
|
||||
render: val => {
|
||||
const list = BG || [];
|
||||
if (val) {
|
||||
return (
|
||||
<Tooltip title={initTreeSelect(list, val)}>
|
||||
<span className={style.nowrapper} style={{ width: '150px' }}>
|
||||
{initTreeSelect(list, val)}</span>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '健康状况',
|
||||
dataIndex: 'v_aa011b',
|
||||
key: 'v_aa011b',
|
||||
},
|
||||
{
|
||||
title: '身份证号码',
|
||||
dataIndex: 'aa0177',
|
||||
key: 'aa0177',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: 220,
|
||||
fixed: 'right',
|
||||
render: (text, record) => (
|
||||
<Fragment>
|
||||
<a onClick={() => this.handleViewModalVisible(true, record)}> <SearchOutlined style={{ color: '#00FFFF' }} />查看 </a>
|
||||
<Divider type="vertical" />
|
||||
<a onClick={() => this.handleUpdateModalVisible(true, record)}> <EditOutlined style={{ color: '#FF4500' }} />编辑 </a>
|
||||
<Divider type="vertical" />
|
||||
<Popconfirm title="你确定要删除吗?" okText="确定" cancelText="取消" onConfirm={() => this.handleDeleteRecord(record)} >
|
||||
<a href={"javascript"} > <DeleteOutlined style={{ color: '#40E0D0' }} /> 删除</a>
|
||||
</Popconfirm>
|
||||
</Fragment>
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
componentDidMount() {
|
||||
const { dispatch } = this.props;
|
||||
dispatch({
|
||||
type: 'baseinfodata/query_page_for_aa01',
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
handleStandardTableChange = (pagination, filtersArg, sorter) => {
|
||||
|
||||
const { dispatch } = this.props;
|
||||
const { formValues } = this.state;
|
||||
|
||||
const params = {
|
||||
currentPage: pagination.current,
|
||||
pageSize: pagination.pageSize,
|
||||
...formValues,
|
||||
};
|
||||
|
||||
if (sorter.field) {
|
||||
params.sorter = `${sorter.field}_${sorter.order}`;
|
||||
}
|
||||
|
||||
dispatch({
|
||||
type: 'baseinfodata/query_page_for_aa01',
|
||||
payload: params,
|
||||
});
|
||||
|
||||
|
||||
};
|
||||
|
||||
previewItem = record => {
|
||||
const id = record.id;
|
||||
//history.push(`/baseinfodata/basic/${id}{id}`);
|
||||
};
|
||||
|
||||
handleFormReset = () => {
|
||||
const { dispatch } = this.props;
|
||||
this.setState({
|
||||
formValues: {},
|
||||
});
|
||||
dispatch({
|
||||
type: 'baseinfodata/query_page_for_aa01',
|
||||
payload: {},
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
toggleForm = () => {
|
||||
|
||||
const { expandForm } = this.state;
|
||||
this.setState({
|
||||
expandForm: !expandForm,
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
handleSelectRows = rows => {
|
||||
this.setState({
|
||||
selectedRows: rows,
|
||||
});
|
||||
};
|
||||
|
||||
handleSearch = values => {
|
||||
const { dispatch } = this.props;
|
||||
this.setState({
|
||||
formValues: values,
|
||||
});
|
||||
|
||||
dispatch({
|
||||
type: 'baseinfodata/query_page_for_aa01',
|
||||
payload: values,
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
handleModalVisible = flag => {
|
||||
this.setState({
|
||||
modalVisible: !!flag,
|
||||
});
|
||||
};
|
||||
|
||||
handleUpdateModalVisible = (flag, record) => {
|
||||
this.setState({
|
||||
updateModalVisible: !!flag,
|
||||
updateFormValues: record || {},
|
||||
});
|
||||
};
|
||||
|
||||
handleViewModalVisible = (flag, record) => {
|
||||
|
||||
this.setState({
|
||||
viewModalVisible: !!flag,
|
||||
viewFormValues: record || {},
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
handleAdd = (fields, form, loading) => {
|
||||
|
||||
const { dispatch } = this.props;
|
||||
const params = {
|
||||
za0101: fields.za0101, // 姓 名
|
||||
aa0107: fields.aa0107, // 性 别 aa0107
|
||||
aa0121: fields.aa0121, // 民 族 aa0121
|
||||
aa0111: fields.aa0111, // 出 生 年 月 aa0111
|
||||
aa0114: fields.aa0114, // 籍 贯 aa0114
|
||||
aa0117: fields.aa0117, // 出生地 aa0117
|
||||
aa0141: fields.aa0141, // 参加工作时间 aa0141
|
||||
v_aa011n: fields.v_aa011n, // 党派交叉情况 v_aa011n
|
||||
v_aa011a: fields.v_aa011a, // 职 称 v_aa011a
|
||||
aa0127: fields.aa0127, // 婚 姻 状 况 aa0127
|
||||
v_aa011b: fields.v_aa011b, // 健 康 状 况 v_aa011b
|
||||
aa0177: fields.aa0177, // 身份证号 码 aa0177
|
||||
v_aa011c: fields.v_aa011c, // 工作单位 v_aa011c
|
||||
v_aa011d: fields.v_aa011d, // 职 务 v_aa011d
|
||||
v_aa011h: fields.v_aa011h, // 职务层次 v_aa011h
|
||||
v_aa011f: fields.v_aa011f, // 任现职务层次时间 v_aa011f
|
||||
v_aa011e: fields.v_aa011e, // 职 级 v_aa011e
|
||||
v_aa011g: fields.v_aa011g, // 任 现 职 级 时 间 v_aa011g
|
||||
v_aa011i: fields.v_aa011i, // 单位地址 v_aa011i
|
||||
v_aa011j: fields.v_aa011j, // 固定电话 v_aa011j
|
||||
v_aa011k: fields.v_aa011k, // 家庭地址 v_aa011k
|
||||
ak010g: fields.ak010g, // 邮政编码 ak010g
|
||||
ak010b: fields.ak010b, // 手机号码 ak010b
|
||||
v_aa011l: fields.v_aa011l, // 电子邮箱 v_aa011l
|
||||
v_aa011m: fields.v_aa011m, // 专业专长 v_aa011m
|
||||
// za9998: fields.za9998, // 头像
|
||||
}
|
||||
if(fields.file) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', fields.file);
|
||||
dispatch({
|
||||
type: 'baseinfodata/upload_single_file',
|
||||
payload: formData,
|
||||
callback: ({ success, datarecord}) => {
|
||||
loading(false);
|
||||
if (success == true) {
|
||||
params.za9998 = datarecord.id
|
||||
dispatch({
|
||||
type: 'baseinfodata/insert_for_aa01',
|
||||
payload: params,
|
||||
callback: (res) => {
|
||||
loading(false);
|
||||
if (res.success == true) {
|
||||
message.success('添加成功');
|
||||
form.resetFields();
|
||||
this.handleModalVisible();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
message.error('照片上传失败');
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
dispatch({
|
||||
type: 'baseinfodata/insert_for_aa01',
|
||||
payload: params,
|
||||
callback: (res) => {
|
||||
loading(false);
|
||||
if (res.success == true) {
|
||||
message.success('添加成功');
|
||||
form.resetFields();
|
||||
this.handleModalVisible();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
handleDeleteRecord = record => {
|
||||
|
||||
const { dispatch } = this.props;
|
||||
|
||||
dispatch({
|
||||
type: 'baseinfodata/delete_by_primarykey_for_aa01',
|
||||
payload: {
|
||||
recordid: record.id,
|
||||
},
|
||||
callback: () => {
|
||||
this.setState({
|
||||
selectedRows: [],
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
message.success('删除成功');
|
||||
|
||||
|
||||
};
|
||||
|
||||
handleUpdate = (fields, form, loading) => {
|
||||
|
||||
const { dispatch } = this.props;
|
||||
const params = {
|
||||
id: fields.id,
|
||||
za0101: fields.za0101, // 姓 名
|
||||
aa0107: fields.aa0107, // 性 别 aa0107
|
||||
aa0121: fields.aa0121, // 民 族 aa0121
|
||||
aa0111: fields.aa0111, // 出 生 年 月 aa0111
|
||||
aa0114: fields.aa0114, // 籍 贯 aa0114
|
||||
aa0117: fields.aa0117, // 出生地 aa0117
|
||||
aa0141: fields.aa0141, // 参加工作时间 aa0141
|
||||
v_aa011n: fields.v_aa011n, // 党派交叉情况 v_aa011n
|
||||
v_aa011a: fields.v_aa011a, // 职 称 v_aa011a
|
||||
aa0127: fields.aa0127, // 婚 姻 状 况 aa0127
|
||||
v_aa011b: fields.v_aa011b, // 健 康 状 况 v_aa011b
|
||||
aa0177: fields.aa0177, // 身份证号 码 aa0177
|
||||
v_aa011c: fields.v_aa011c, // 工作单位 v_aa011c
|
||||
v_aa011d: fields.v_aa011d, // 职 务 v_aa011d
|
||||
v_aa011h: fields.v_aa011h, // 职务层次 v_aa011h
|
||||
v_aa011f: fields.v_aa011f, // 任现职务层次时间 v_aa011f
|
||||
v_aa011e: fields.v_aa011e, // 职 级 v_aa011e
|
||||
v_aa011g: fields.v_aa011g, // 任 现 职 级 时 间 v_aa011g
|
||||
v_aa011i: fields.v_aa011i, // 单位地址 v_aa011i
|
||||
v_aa011j: fields.v_aa011j, // 固定电话 v_aa011j
|
||||
v_aa011k: fields.v_aa011k, // 家庭地址 v_aa011k
|
||||
ak010g: fields.ak010g, // 邮政编码 ak010g
|
||||
ak010b: fields.ak010b, // 手机号码 ak010b
|
||||
v_aa011l: fields.v_aa011l, // 电子邮箱 v_aa011l
|
||||
v_aa011m: fields.v_aa011m, // 专业专长 v_aa011m
|
||||
// za9998: fields.za9998, // 头像
|
||||
}
|
||||
if(fields.file) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', fields.file);
|
||||
dispatch({
|
||||
type: 'baseinfodata/upload_single_file',
|
||||
payload: formData,
|
||||
callback: ({ success, datarecord}) => {
|
||||
loading(false);
|
||||
if (success == true) {
|
||||
params.za9998 = datarecord.id
|
||||
dispatch({
|
||||
type: 'baseinfodata/update_for_aa01',
|
||||
payload: params,
|
||||
callback: (res) => {
|
||||
loading(false);
|
||||
if (res.success == true) {
|
||||
message.success('修改成功');
|
||||
form.resetFields();
|
||||
this.handleUpdateModalVisible();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
message.error('照片上传失败');
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
dispatch({
|
||||
type: 'baseinfodata/update_for_aa01',
|
||||
payload: params,
|
||||
callback: (res) => {
|
||||
loading(false);
|
||||
if (res.success == true) {
|
||||
message.success('修改成功');
|
||||
form.resetFields();
|
||||
this.handleUpdateModalVisible();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
renderSimpleForm() {
|
||||
|
||||
const parentMethods = {
|
||||
handleSearch: this.handleSearch,
|
||||
handleFormReset: this.handleFormReset,
|
||||
toggleForm: this.toggleForm,
|
||||
submitButtons: styles.submitButtons,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
<Aa01VipRenderSimpleForm {...parentMethods} />
|
||||
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
renderAdvancedForm() {
|
||||
|
||||
const parentMethods = {
|
||||
handleSearch: this.handleSearch,
|
||||
handleFormReset: this.handleFormReset,
|
||||
toggleForm: this.toggleForm,
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
<Aa01VipRenderAdvancedForm {...parentMethods} />
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
renderForm() {
|
||||
const { expandForm } = this.state;
|
||||
return expandForm ? this.renderAdvancedForm() : this.renderSimpleForm();
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
const {
|
||||
baseinfodata: { data },
|
||||
loading,
|
||||
} = this.props;
|
||||
|
||||
|
||||
const { selectedRows, modalVisible, updateModalVisible, viewModalVisible, updateFormValues, viewFormValues } = this.state;
|
||||
const menu = (
|
||||
<Menu onClick={this.handleMenuClick} selectedKeys={[]}>
|
||||
<Menu.Item key="remove">删除</Menu.Item>
|
||||
<Menu.Item key="approval">批量审批</Menu.Item>
|
||||
</Menu>
|
||||
);
|
||||
const parentMethods = {
|
||||
handleAdd: this.handleAdd,
|
||||
handleModalVisible: this.handleModalVisible,
|
||||
};
|
||||
const updateMethods = {
|
||||
handleUpdateModalVisible: this.handleUpdateModalVisible,
|
||||
handleUpdate: this.handleUpdate,
|
||||
};
|
||||
const viewMethods = {
|
||||
handleViewModalVisible: this.handleViewModalVisible
|
||||
};
|
||||
return (
|
||||
|
||||
<>
|
||||
<Card bordered={false}>
|
||||
<div className={styles.aa01tableList}>
|
||||
|
||||
<div className={styles.aa01tableListForm}>{this.renderForm()}</div>
|
||||
|
||||
|
||||
<div className={styles.aa01tableListOperator}>
|
||||
|
||||
<Button type="primary" onClick={() => this.handleModalVisible(true)}>
|
||||
<PlusOutlined /> 新建
|
||||
</Button>
|
||||
{selectedRows.length > 0 && (
|
||||
<span>
|
||||
<Button>批量操作</Button>
|
||||
<Dropdown overlay={menu}>
|
||||
<Button>
|
||||
更多操作 <DownOutlined />
|
||||
</Button>
|
||||
</Dropdown>
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<StandardTable
|
||||
rowKey={"id"}
|
||||
selectedRows={selectedRows}
|
||||
loading={loading}
|
||||
data={data}
|
||||
columns={this.columns}
|
||||
scroll={{ x: 1500 }}
|
||||
onSelectRow={this.handleSelectRows}
|
||||
onChange={this.handleStandardTableChange}
|
||||
/>
|
||||
</div>
|
||||
</Card>
|
||||
|
||||
<Aa01VipCreateForm {...parentMethods} modalVisible={modalVisible} />
|
||||
|
||||
|
||||
{updateFormValues && Object.keys(updateFormValues).length ? (
|
||||
<Aa01VipUpdateForm
|
||||
{...updateMethods}
|
||||
updateModalVisible={updateModalVisible}
|
||||
values={updateFormValues}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
|
||||
{viewFormValues && Object.keys(viewFormValues).length ? (
|
||||
<Aa01VipViewForm
|
||||
{...viewMethods}
|
||||
viewModalVisible={viewModalVisible}
|
||||
values={viewFormValues}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
</>
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export default Aa01VipTable;
|
||||
|
||||
@ -0,0 +1,99 @@
|
||||
import {
|
||||
Row,
|
||||
Col,
|
||||
Form,
|
||||
Input,
|
||||
DatePicker,
|
||||
Button,
|
||||
} from 'antd';
|
||||
import { UpOutlined } from '@ant-design/icons';
|
||||
import style from "@/global.less";
|
||||
const FormItem = Form.Item;
|
||||
|
||||
const Aa01RenderAdvancedForm = (props) => {
|
||||
|
||||
const [form] = Form.useForm();
|
||||
|
||||
const { handleSearch, handleFormReset, toggleForm } = props;
|
||||
|
||||
const onFinish = values => {
|
||||
//console.log('Received values of form: ', values);
|
||||
handleSearch(values);
|
||||
};
|
||||
|
||||
const myhandleFormReset = () => {
|
||||
form.resetFields();
|
||||
handleFormReset();
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
<Form form={form} onFinish={onFinish} layout="inline">
|
||||
|
||||
<Row gutter={{ md: 8, lg: 24, xl: 48 }} style={{ width: '100%' }} className={style.searchinput}>
|
||||
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="本单位工龄" name="aa0101">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="人工成本统计标识" name="aa0106">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
</Row>
|
||||
|
||||
<Row gutter={{ md: 8, lg: 24, xl: 48 }} style={{ width: '100%' }} className={style.searchinput}>
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="性别" name="aa0107">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="备注" name="aa0108">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="人员类别" name="aa010d">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
</Row>
|
||||
|
||||
<Row gutter={{ md: 8, lg: 24, xl: 48 }} style={{ width: '100%' }} className={style.searchbox}>
|
||||
|
||||
<Col md={24} sm={24}>
|
||||
<div style={{ marginBottom: 12, display: 'flex', justifyContent: 'flex-end' }}>
|
||||
<Button type="primary" htmlType="submit">
|
||||
查询
|
||||
</Button>
|
||||
<Button style={{ marginLeft: 8 }} onClick={myhandleFormReset}>
|
||||
重置
|
||||
</Button>
|
||||
<a style={{ marginLeft: 8, lineHeight: '32px' }} onClick={toggleForm}>
|
||||
收起 <UpOutlined />
|
||||
</a>
|
||||
</div>
|
||||
</Col>
|
||||
|
||||
</Row>
|
||||
|
||||
</Form>
|
||||
|
||||
);
|
||||
|
||||
|
||||
};
|
||||
|
||||
export default Aa01RenderAdvancedForm;
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,70 @@
|
||||
import {
|
||||
Row,
|
||||
Col,
|
||||
Form,
|
||||
Input,
|
||||
DatePicker,
|
||||
Button,
|
||||
} from 'antd';
|
||||
import { DownOutlined } from '@ant-design/icons';
|
||||
import style from "@/global.less";
|
||||
const FormItem = Form.Item;
|
||||
|
||||
const Aa01RenderSimpleForm = (props) => {
|
||||
|
||||
const [form] = Form.useForm();
|
||||
|
||||
const { submitButtons, handleSearch, handleFormReset, toggleForm } = props;
|
||||
|
||||
const onFinish = values => {
|
||||
//console.log('Received values of form: ', values);
|
||||
handleSearch(values);
|
||||
};
|
||||
|
||||
const myhandleFormReset = () => {
|
||||
form.resetFields();
|
||||
handleFormReset();
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
<Form form={form} onFinish={onFinish} layout="inline">
|
||||
|
||||
<Row gutter={{ md: 8, lg: 24, xl: 48 }} style={{ width: '100%' }} className={style.searchinput}>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="本单位工龄" name="aa0101">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<FormItem label="人工成本统计标识" name="aa0106">
|
||||
<Input placeholder="" style={{ width: '100%' }} />
|
||||
</FormItem>
|
||||
</Col>
|
||||
|
||||
|
||||
<Col md={8} sm={24}>
|
||||
<div style={{ marginBottom: 12, display: 'flex', justifyContent: 'flex-end' }}>
|
||||
<Button type="primary" htmlType="submit">
|
||||
查询
|
||||
</Button>
|
||||
<Button style={{ marginLeft: 8 }} onClick={myhandleFormReset}>
|
||||
重置
|
||||
</Button>
|
||||
<a style={{ marginLeft: 8, lineHeight: '32px' }} onClick={toggleForm}>
|
||||
展开 <DownOutlined />
|
||||
</a>
|
||||
</div>
|
||||
</Col>
|
||||
</Row>
|
||||
|
||||
</Form>
|
||||
|
||||
);
|
||||
|
||||
|
||||
};
|
||||
|
||||
export default Aa01RenderSimpleForm;
|
||||
@ -0,0 +1,83 @@
|
||||
.aa01tableList {
|
||||
.aa01tableListOperator {
|
||||
margin-bottom: 16px;
|
||||
button {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.aa01tableListForm {
|
||||
:global {
|
||||
.ant-form-item {
|
||||
display: flex;
|
||||
margin-right: 0;
|
||||
margin-bottom: 24px;
|
||||
> .ant-form-item-label {
|
||||
width: auto;
|
||||
padding-right: 8px;
|
||||
line-height: 32px;
|
||||
}
|
||||
.ant-form-item-control {
|
||||
line-height: 32px;
|
||||
}
|
||||
}
|
||||
.ant-form-item-control-wrapper {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
.submitButtons {
|
||||
display: block;
|
||||
margin-bottom: 24px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 0.8em;
|
||||
height: 0.8em;
|
||||
vertical-align: -0.15em;
|
||||
fill: currentColor;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ant-upload{
|
||||
width: 130px !important;
|
||||
height: 140px !important;
|
||||
}
|
||||
|
||||
.staffPhoto {
|
||||
font-size: 70px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.photoBox {
|
||||
.headIcon {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
svg {
|
||||
height: 150px;
|
||||
width: 140px;
|
||||
opacity: .75;
|
||||
}
|
||||
}
|
||||
:global {
|
||||
.ant-upload-select-picture-card{
|
||||
height: 150px;
|
||||
width: 150px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: @screen-lg) {
|
||||
.aa01tableListForm :global(.ant-form-item) {
|
||||
margin-right: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: @screen-md) {
|
||||
.aa01tableListForm :global(.ant-form-item) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import * as plugins from 'antd';
|
||||
import CustomBreadcrumb from './Breadcrumb';
|
||||
|
||||
class GlobalComponent extends PureComponent {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
this.props = props
|
||||
|
||||
this.Affix = plugins.Affix
|
||||
this.Alert = plugins.Alert
|
||||
this.Anchor = plugins.Anchor
|
||||
this.AutoComplete = plugins.AutoComplete
|
||||
this.Avatar = plugins.Avatar
|
||||
this.BackTop = plugins.BackTop
|
||||
this.Badge = plugins.Badge
|
||||
this.Breadcrumb = plugins.Breadcrumb
|
||||
this.Button = plugins.Button
|
||||
this.Calendar = plugins.Calendar
|
||||
this.Card = plugins.Card
|
||||
this.Carousel = plugins.Carousel
|
||||
this.Cascader = plugins.Cascader
|
||||
this.Checkbox = plugins.Checkbox
|
||||
this.Col = plugins.Col
|
||||
this.Collapse = plugins.Collapse
|
||||
// this.Comment = plugins.Comment
|
||||
this.ConfigProvider = plugins.ConfigProvider
|
||||
this.Descriptions = plugins.Descriptions
|
||||
this.Divider = plugins.Divider
|
||||
this.Drawer = plugins.Drawer
|
||||
this.Dropdown = plugins.Dropdown
|
||||
this.Empty = plugins.Empty
|
||||
this.Form = plugins.Form
|
||||
this.Grid = plugins.Grid
|
||||
this.Image = plugins.Image
|
||||
this.Input = plugins.Input
|
||||
this.InputNumber = plugins.InputNumber
|
||||
this.Layout = plugins.Layout
|
||||
this.List = plugins.List
|
||||
this.Mentions = plugins.Mentions
|
||||
this.Menu = plugins.Menu
|
||||
this.Modal = plugins.Modal
|
||||
// this.PageHeader = plugins.PageHeader
|
||||
this.Pagination = plugins.Pagination
|
||||
this.Popconfirm = plugins.Popconfirm
|
||||
this.Popover = plugins.Popover
|
||||
this.Progress = plugins.Progress
|
||||
this.Radio = plugins.Radio
|
||||
this.Rate = plugins.Rate
|
||||
this.Result = plugins.Result
|
||||
this.Row = plugins.Row
|
||||
this.Segmented = plugins.Segmented
|
||||
this.Select = plugins.Select
|
||||
this.Skeleton = plugins.Skeleton
|
||||
this.Slider = plugins.Slider
|
||||
this.Space = plugins.Space
|
||||
this.Spin = plugins.Spin
|
||||
this.Statistic = plugins.Statistic
|
||||
this.Steps = plugins.Steps
|
||||
this.Switch = plugins.Switch
|
||||
this.Table = plugins.Table
|
||||
this.Tabs = plugins.Tabs
|
||||
this.Tag = plugins.Tag
|
||||
this.TimePicker = plugins.TimePicker
|
||||
this.Timeline = plugins.Timeline
|
||||
this.Tooltip = plugins.Tooltip
|
||||
this.Transfer = plugins.Transfer
|
||||
this.Tree = plugins.Tree
|
||||
this.TreeSelect = plugins.TreeSelect
|
||||
this.Typography = plugins.Typography
|
||||
this.Upload = plugins.Upload
|
||||
this.message = plugins.message
|
||||
// 自定义组件
|
||||
this.CustomBreadcrumb = CustomBreadcrumb;
|
||||
}
|
||||
}
|
||||
|
||||
export default GlobalComponent;
|
||||
// 同时导出自定义面包屑组件,方便直接使用
|
||||
export { CustomBreadcrumb };
|
||||