From 6e668c9d89ae211d4f8806aff2d39bc699de6a89 Mon Sep 17 00:00:00 2001 From: MustangDeng <670124965@qq.com> Date: Tue, 12 Jul 2022 17:10:03 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=BB=93=E6=9E=84=E5=9B=BEv1?= =?UTF-8?q?.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 16 ++ .gitignore | 20 ++ .prettierignore | 8 + .prettierrc | 11 + .umirc.ts | 25 ++ README.md | 15 + mock/api.ts | 158 +++++++++++ package.json | 44 +++ public/img/avator.png | Bin 0 -> 6018 bytes public/img/button_content.png | Bin 0 -> 238 bytes public/img/company.png | Bin 0 -> 3974 bytes public/img/company_job_label.png | Bin 0 -> 8468 bytes public/img/default_avator.png | Bin 0 -> 737 bytes public/img/department/1.png | Bin 0 -> 978 bytes public/img/department/2.png | Bin 0 -> 981 bytes public/img/department/3.png | Bin 0 -> 1053 bytes public/img/department/4.png | Bin 0 -> 1179 bytes public/img/department/5.png | Bin 0 -> 997 bytes public/img/department/6.png | Bin 0 -> 1310 bytes public/img/department/7.png | Bin 0 -> 1064 bytes public/img/department/8.png | Bin 0 -> 945 bytes public/img/manager.png | Bin 0 -> 978 bytes public/img/subcompany/1.png | Bin 0 -> 2588 bytes public/img/subcompany/2.png | Bin 0 -> 2510 bytes public/img/subcompany/3.png | Bin 0 -> 2601 bytes public/img/subcompany1.png | Bin 0 -> 2588 bytes public/img/user-card/avatar-outer.png | Bin 0 -> 8862 bytes public/img/user-card/card-label-start.png | Bin 0 -> 140 bytes public/img/user-card/jobicon.png | Bin 0 -> 2522 bytes public/img/user-card/line1.png | Bin 0 -> 232 bytes public/img/user-card/line2.png | Bin 0 -> 233 bytes public/img/user-card/user-card.png | Bin 0 -> 5620 bytes src/components/orgChart/index.jsx | 58 ++++ src/components/toolBar/img/add.png | Bin 0 -> 798 bytes src/components/toolBar/img/decrease.png | Bin 0 -> 744 bytes src/components/toolBar/img/left.png | Bin 0 -> 643 bytes src/components/toolBar/img/left_active.png | Bin 0 -> 438 bytes src/components/toolBar/img/top.png | Bin 0 -> 372 bytes src/components/toolBar/img/top_active.png | Bin 0 -> 515 bytes src/components/toolBar/index.jsx | 78 ++++++ src/components/toolBar/index.less | 38 +++ src/components/topBar/index.jsx | 123 +++++++++ src/components/topBar/index.less | 9 + src/department/index.js | 5 + src/pages/company.jsx | 252 +++++++++++++++++ src/pages/index.less | 11 + src/pages/index.tsx | 9 + src/pages/user.jsx | 304 +++++++++++++++++++++ tsconfig.json | 37 +++ typings.d.ts | 10 + 50 files changed, 1231 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 .umirc.ts create mode 100644 README.md create mode 100644 mock/api.ts create mode 100644 package.json create mode 100644 public/img/avator.png create mode 100644 public/img/button_content.png create mode 100644 public/img/company.png create mode 100644 public/img/company_job_label.png create mode 100644 public/img/default_avator.png create mode 100644 public/img/department/1.png create mode 100644 public/img/department/2.png create mode 100644 public/img/department/3.png create mode 100644 public/img/department/4.png create mode 100644 public/img/department/5.png create mode 100644 public/img/department/6.png create mode 100644 public/img/department/7.png create mode 100644 public/img/department/8.png create mode 100644 public/img/manager.png create mode 100644 public/img/subcompany/1.png create mode 100644 public/img/subcompany/2.png create mode 100644 public/img/subcompany/3.png create mode 100644 public/img/subcompany1.png create mode 100644 public/img/user-card/avatar-outer.png create mode 100644 public/img/user-card/card-label-start.png create mode 100644 public/img/user-card/jobicon.png create mode 100644 public/img/user-card/line1.png create mode 100644 public/img/user-card/line2.png create mode 100644 public/img/user-card/user-card.png create mode 100644 src/components/orgChart/index.jsx create mode 100644 src/components/toolBar/img/add.png create mode 100644 src/components/toolBar/img/decrease.png create mode 100644 src/components/toolBar/img/left.png create mode 100644 src/components/toolBar/img/left_active.png create mode 100644 src/components/toolBar/img/top.png create mode 100644 src/components/toolBar/img/top_active.png create mode 100644 src/components/toolBar/index.jsx create mode 100644 src/components/toolBar/index.less create mode 100644 src/components/topBar/index.jsx create mode 100644 src/components/topBar/index.less create mode 100644 src/department/index.js create mode 100644 src/pages/company.jsx create mode 100644 src/pages/index.less create mode 100644 src/pages/index.tsx create mode 100644 src/pages/user.jsx create mode 100644 tsconfig.json create mode 100644 typings.d.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..7e3649a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[Makefile] +indent_style = tab diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bee1cf6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/npm-debug.log* +/yarn-error.log +/yarn.lock +/package-lock.json + +# production +/dist + +# misc +.DS_Store + +# umi +/src/.umi +/src/.umi-production +/src/.umi-test +/.env.local diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..0d4222f --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +**/*.md +**/*.svg +**/*.ejs +**/*.html +package.json +.umi +.umi-production +.umi-test diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..94beb14 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,11 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "printWidth": 80, + "overrides": [ + { + "files": ".prettierrc", + "options": { "parser": "json" } + } + ] +} diff --git a/.umirc.ts b/.umirc.ts new file mode 100644 index 0000000..e54955f --- /dev/null +++ b/.umirc.ts @@ -0,0 +1,25 @@ +import { defineConfig } from 'umi'; + +export default defineConfig({ + hash: true, + history: { type: 'hash'}, + base: "/spa/orgChart/", + // exportStatic: {}, + publicPath: './', + nodeModulesTransform: { + type: 'none', + }, + routes: [ + { path: '/user', component: '@/pages/user' }, + { path: '/company', component: '@/pages/company' } + ], + fastRefresh: {}, + antd: {}, + proxy: { + "/api": { // 标识需要进行转换的请求的url + "target": "http://localhost:18089/api", // 服务端域名 + "changeOrigin": true, // 允许域名进行转换 + "pathRewrite": { "^/api": ''} // 将请求url里的ci去掉 + } + } +}); diff --git a/README.md b/README.md new file mode 100644 index 0000000..07afeb7 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# umi project + +## Getting Started + +Install dependencies, + +```bash +$ yarn +``` + +Start the dev server, + +```bash +$ yarn start +``` diff --git a/mock/api.ts b/mock/api.ts new file mode 100644 index 0000000..f845c0d --- /dev/null +++ b/mock/api.ts @@ -0,0 +1,158 @@ +export default { + 'GET /company/data': [ + { + "id": 1, + "fname": "集团公司", + "ftype": 0, + "parentId": null + }, + { + "id": 2, + "fname": "HRSSC共享服务中心", + "ftype": 1, + "parentId": 1 + }, + { + "id": 3, + "fname": "事业部A", + "ftype": 1, + "parentId": 1 + }, + { + "id": 4, + "fname": "苏州分公司", + "ftype": 1, + "parentId": 1 + }, + { + "id": 5, + "fname": "人力资源部经理", + "ftype": 2, + "parentId": 2 + }, + { + "id": 6, + "fname": "招聘组", + "ftype": 2, + "parentId": 3 + }, + { + "id": 7, + "fname": "薪酬核算组", + "ftype": 2, + "parentId": 4 + }, + { + "id": 8, + "fname": "人事服务组", + "ftype": 2, + "parentId": 2 + }, + { + "id": 9, + "fname": "培训组", + "ftype": 2, + "parentId": 2 + }, + { + "id": 10, + "fname": "员工关系组", + "ftype": 2, + "parentId": 2 + }, + { + "id": 11, + "fname": "服务管理组", + "ftype": 2, + "parentId": 2 + }, + { + "id": 12, + "fname": "信息与数据组", + "ftype": 2, + "parentId": 2 + } + ], + 'GET /user/data': [ + { + "id": 1, + "parentId": null, + "ftype": 0, + "fname": "维森集团", + "fleadername": "杨文元", + "fleaderimg": "./img/avator.png", + "fleaderjob": "董事长", + "fplan": 1000, + "fonjob": 987 + }, + { + "id": 2, + "parentId": 1, + "ftype": 1, + "fname": "南京分公司", + "fleadername": "杨文元", + "fleaderimg": "./img/avator.png", + "fleaderjob": "总经理", + "fplan": 300, + "fonjob": 287 + }, + { + "id": 3, + "parentId": 1, + "ftype": 1, + "fname": "南京分公司", + "fleadername": "杨文元", + "fleaderimg": "./img/avator.png", + "fleaderjob": "总经理", + "fplan": 300, + "fonjob": 287 + }, + { + "id": 4, + "parentId": 1, + "ftype": 1, + "fname": "南京分公司", + "fleadername": "杨文元", + "fleaderimg": "./img/avator.png", + "fleaderjob": "总经理", + "fplan": 300, + "fonjob": 287 + }, + { + "id": 5, + "parentId": 2, + "ftype": 2, + "fname": "销售部", + "fleadername": "杨文元", + "fleaderimg": "./img/avator.png", + "fleaderjob": "部长", + "fplan": 200, + "fonjob": 200 + }, + { + "id": 6, + "parentId": 5, + "ftype": 3, + "fname": "销售", + "fleadername": null, + "fleaderimg": null, + "fleaderjob": null, + "fplan": 200, + "fonjob": 200 + }, + { + "id": 7, + "parentId": 6, + "ftype": 4, + "fname": "杨文元", + "fleadername": "杨文元", + "department": "销售部", + "fleaderimg": "./img/avator.png", + "fleaderjob": "销售", + "mobile": "13989058743", + "address": "秦淮区新街口12-201", + "fplan": 200, + "fonjob": 200 + } + ] + } \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..7f0d301 --- /dev/null +++ b/package.json @@ -0,0 +1,44 @@ +{ + "private": true, + "scripts": { + "start": "umi dev", + "build": "umi build", + "postinstall": "umi generate tmp", + "prettier": "prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'", + "test": "umi-test", + "test:coverage": "umi-test --coverage" + }, + "gitHooks": { + "pre-commit": "lint-staged" + }, + "lint-staged": { + "*.{js,jsx,less,md,json}": [ + "prettier --write" + ], + "*.ts?(x)": [ + "prettier --parser=typescript --write" + ] + }, + "dependencies": { + "@ant-design/pro-layout": "^6.5.0", + "@types/d3": "^7.4.0", + "d3": "7.4.4", + "d3-org-chart": "2.6.0", + "jspdf": "^2.5.1", + "moment": "^2.29.3", + "qs": "^6.11.0", + "react": "17.x", + "react-dom": "17.x", + "umi": "^3.5.26" + }, + "devDependencies": { + "@types/react": "^17.0.0", + "@types/react-dom": "^17.0.0", + "@umijs/preset-react": "1.x", + "@umijs/test": "^3.5.26", + "lint-staged": "^10.0.7", + "prettier": "^2.2.0", + "typescript": "^4.1.2", + "yorkie": "^2.0.0" + } +} diff --git a/public/img/avator.png b/public/img/avator.png new file mode 100644 index 0000000000000000000000000000000000000000..ea4f2d01794042f69ac894cbbaee83188763a8da GIT binary patch literal 6018 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 literal 0 HcmV?d00001 diff --git a/public/img/button_content.png b/public/img/button_content.png new file mode 100644 index 0000000000000000000000000000000000000000..458a4f0b186a85564eb48f36050757ec16c6220b GIT binary patch literal 238 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 literal 0 HcmV?d00001 diff --git a/public/img/company_job_label.png b/public/img/company_job_label.png new file mode 100644 index 0000000000000000000000000000000000000000..109a4ebc967f62c305767d359fa46055ee6113f7 GIT binary patch literal 8468 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

PJhcDb(ljaSIr^=1d`^|H(sq ziOi&QwtKf4jWJ~p@4a_xUPdiI2!vUA5hNE>on|&W7o|yvZ#kkeu?~OU%9XUq`u$2j z0-|!F5fG(KU+4e7C&*zXTOF2r*g7+HV@+8~EvsRJ^em6e$_3b<;jTD0IOS#SeZRZp zEKg+aEMALWCfD{o;@TO_kGiy3OlEp*4e`s%sLP_Xl?t$S9koU=h>FR^xQfqg^^qeF zXW>2Ph|3=QToCKWqO@_VJ(LgeH2MA3xbAF?%c#Q&ST0&j2B&002iDAn1LyKwQE-8Q z`eZIm${w+v$UxLZtEm##dMwnBH*_ei#m`s3Dt{_+qHz5zyys(B%GTmHTHaGzT?SFV zyXcrOq$^{lXdH-I$&8nDwf+k(EeOU+?u=J8DM)d}hb~~$CDgILnrGzXy7$w>U%p|J zKVCoPxT!v-X!Se&TLkrC?&eV-XWut~` z;}$Pc9(%n0-3&w$nXv_t{#I< zh_8=h@nY>V@*UwlW0no6D`H>17JtQM)KOxQH>1T_4f(Z_&(-V;#vx3OS-sfaN)Hj)(xF6^fS(af~D#+Z|x0RDg|uB*j;Y&O}edGfj|| zhxa_Xnmc2^s;rA)ezA&QuAPzp1Pw^AMx&O9r4P143Zi)x>Bk#7SOIpN6eNI&Wa!K| z(TeKEepoV;A$^sMbri+N?u@6##M-L(qg%@mMCTRvB$7x?NwjeyU8}EPDhTz%J!-Cq zjqVJfD-#g$KT)#r^t*ysP!F`GX8fsBr=sXg>u1b2j^7nT_b2L{TyWE~X||NwNHs0c z#KH+Dix;C-SdSl7@oj6F)iTzxs?nyj6(5iFdj8VDiA;>9#Jacw_HpbAa{AhtSe|S( zNUX6gZE_Vf)&!5}jDjU1A1X&@@vb0NfK@vLa22fV6(Smv6k+ z6hUNb@MBKI5%C^HnVtxp!Uk9Jg9K$`ym&Fo70s;k3lA>{s~#cN(XJq3=}MbinI$54 zPF5dvvk5tqu7Hi#;+sojgqAI%F6pZ||JbresGsTAXnSU?x3d5%ZB(ouZ*;YWvPTI- zA!E&{^Np^G>+q8S93!-{mPoBlQLJxk^EG45d=l+`*d2rdH2D(BiQ)=A%N`8#2_n-| z7nTfli{U+IDat_X?@%pKwp&^$M`WXlYtKg4or%V}>V$x2A%3WOh&3$jPn2n_hn5<# z^&YmN!*Q$|YVkF8W&BjOL_8)trNx_EMVmUv4ry^KuY!$sN{chrtLce2UAEEHm_0F9 z-W6npD!zbY4Vzqz1yR^)rl=)q`r7h>Gs#DJt33jUfRP+gX=Gsxc9{N%wQK48ZwRK8kgE5Dz~104})TA~|>4 zwo=q~=}xap^bcVBc6D`!4vpUj_>mVZCE1>h9+jK)()kXpww%%A_y7O^!bwCyR9kMv zc8(4Gva@S6EZbQ&!@T^TT??jFcbE+)C6HZP^|S67t5fT1rJm0p&z<_JucV3NF0k39 zk_6SNo@zVC=5vRs!zFY_+IZ{L1U}mV*LKM*?o!L^aM#%A>&g_BY$sWw7jTWLPs084 za=N>0aYxzs9NoQDcb2t#vgevqlaZZhZ5La1aBh7LyjT4`l}b%^i{);%Lk#6L^~GIb zdAw3OmU!=Lwc<{Aa0-&R3`u?pc~K)V$$A0DeV(VOMBsaFD>sV z(4VB&UM}aM0f?x_yMeJwvzInMcW7iRW}CD9u+2Qri_uj?9NU;Jq{9i>9@u;mqy6~cLs2GD`@EgQY?%A<!s}J(R3LQZ&x3cjlO=K;hmn3|}qXXzB z$w-ROA@nmi1&<1sBJ>>k@kOW){rJ-B67&MBcc6TnaJ|Yo1 zhkg>FGw5f2Dne&=m?qf;*OJw{5_5*(;>;9AX!h!_Z0vpX8+!SYjZKbe4d2b=m=<>z zUwB8&6(3hY&ZXX>$BbAhMqW_+gmjD|Woj>!#ft%s38mhh(DC@74%F5+C0IQ8Mjcx% zA+`3hgd?QGSkihqNNt0Qy=vW>rRPL+& T2r_RI00000NkvXXu0mjfW@cAx literal 0 HcmV?d00001 diff --git a/public/img/department/1.png b/public/img/department/1.png new file mode 100644 index 0000000000000000000000000000000000000000..34cec80d05677aa63cb59cd3f8cf1b7d2f127069 GIT binary patch literal 978 zcmV;@11X1^@s6HR9gx00001b5ch_0Itp) z=>Px&j7da6R7gv$m0M_BRTzcW+Goy8CNXVd(*{~wv@c>y1v?3?)Q4E3sCaqMB;Kls zMPiFsk)pIpQc%%?L=$4DAyg4X)Pl8E@%A8Mq7U9;Nv*~g!C0(KYT{&a=A6Bkj3wG+ z&Lk=HyzYO0d+mR(e;s0uujx&lmtKT=Pwr}xmjE;(esaXeQG_pFyPo5vwlj7?;+BuF z)>yZb;Ef=vXVr}h{1n1-uUvBnE() z@FMW0K2=`0)ICMRI{+-1t5pCdBpu4<%p-3#^Z1#yGr?^#O>3hKewp_?pbP+S9?s&L!;x~-s}ndJhX@TSjCXIt_M}+E~u-l;I>4BxyFTuB}XanRLqB>m|@YV9_jiwlLB`-tEs$xi9i7%0`Bo|5sb6Eqa`W z{VJogH<4;3R8OJ;LN0PR2EclT7Za)!Fa=^z7QLer{@dR@%u^)?WK&;uc|xh(gli_T zWZD%1k4K?BC?NEG-b`@iG(^B(Al?h)+6T6l4HxzJ@}9{RzUOz5x&~6knWszm(OLBZ z2#m-3NL)6vHJmEshMXS!yfroSUn?@tXmPsQ?uFcKfM)lzQ1_LK*lndr-`4{GuPRD2 zA}ip1>m^$UwsMqcli9d*Y75C{K`x8wdtv@Rw2`_UmGwPr6U;3HOiWasl41M6?|wHg z?a{IdMX$=b1`x?2YmpY>VGDFRhCxE!b^^BoNW|DM1n^COWDDy$bB!ckCs-5blGB?x zF5nZ;MRaHcd48<72~iw#);+{bXYjZYb^$6C=nKrE(`5n*3HK7~I;Qr);2r>}vm%r( z&I@{nbsf1r7;`6}a|I3|zRUU-!fP$vdIMC*xuTaot6LC)L(Vhi2siYq)=lJVK>G3) zl)rPI6(|fnJ4Q6g%QV8|M$Q4W@Jn9~eO(Rr4=j>+O$FP000>X1^@s6#OZ}&00001b5ch_0Itp) z=>Px&k4Z#9R7gv$mR)F^MHGhLGvEJav%9uQEETGyiM2`_<}}4K)`GOK`GG?o0>jy@@G( zc(R}eDb#aup`|iS=*ni)Q-z{_XhN*dTp!U~JY9h9-zEj~Ee7!5hf$a9+0P5$RcAnm zCfbxjXOi$&Qbq-sUx}#&SJ<|6P~#gBj2g9?m4=M1o_Dw4TeYVx#9Aij*Hz3HNkRXQHZ_2 zpB{c$u06!`x)t$m&z0wvBeYOWIpqE`=k2}HzGp0R_4-V=@5qiuLrM{Qe>ykWQ-O4J zWV&4&4Tpp=dVfAY3t6`|)9pBoheQ#2&zzm?k@fpWo7c4Ep0I7~0%6y*u<6H0lS2?B z^-T*)S+ZIPr?wUfaa_i}KgRNJ$?C&Qt(D|f*TKW0^(s*_ZA==Y$W$2X?+vUTgn;9_ z>IQ<%VoGUhL5K{OOYxDjmNy{n2kGVF(iMKQdc=m@&Pt{k#uhRWYkr}%D*hXUqD7!Q z*Ww)z$yU5$97Hl9j~5H>+j$#*3HDH3mqo569loxVx}U;%LsCivPmvN`Y{XflRP5&n zun`J=bt2ki%O}OM{n*I?@$;iL&$7eB8 zfn0x}&>E!NK4Ie^1P1kVwDs%lO~X})@4I~f8@Cd0kj3O;i0iq1(qITmmqJ|k9f0>N zw$)3G6Z}e*lWo=Q>U?!-B^>)Df!Ye0zk-)4_>Z>N#wP0H$Sv>q;qkP&QGw1^m{mdC zrJ-*Dk(xE`avA1iDFHkYO?xM*J~2njWf9u67qv> literal 0 HcmV?d00001 diff --git a/public/img/department/3.png b/public/img/department/3.png new file mode 100644 index 0000000000000000000000000000000000000000..f9296ad344ec6522cbd53c9e59f1e62ee9032e5d GIT binary patch literal 1053 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 ThC*gT00000NkvXXu0mjfUxwC; literal 0 HcmV?d00001 diff --git a/public/img/department/6.png b/public/img/department/6.png new file mode 100644 index 0000000000000000000000000000000000000000..3441b82b99db894881250c9088a7d4bb93538e96 GIT binary patch literal 1310 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 TyLO>700000NkvXXu0mjfgX+)q literal 0 HcmV?d00001 diff --git a/public/img/manager.png b/public/img/manager.png new file mode 100644 index 0000000000000000000000000000000000000000..34cec80d05677aa63cb59cd3f8cf1b7d2f127069 GIT binary patch literal 978 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 YKfnwB*+C%~lK=n!07*qoM6N<$f-i-l0{{R3 literal 0 HcmV?d00001 diff --git a/public/img/subcompany/3.png b/public/img/subcompany/3.png new file mode 100644 index 0000000000000000000000000000000000000000..88ffaa1dc7ec1bdb26f9d5d96686c9699dcb1e4e GIT binary patch literal 2601 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 LNkvXXu0mjfC*;&^ literal 0 HcmV?d00001 diff --git a/public/img/subcompany1.png b/public/img/subcompany1.png new file mode 100644 index 0000000000000000000000000000000000000000..bb91a88ac291361ff745650d07628f03ae6d1ae3 GIT binary patch literal 2588 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 literal 0 HcmV?d00001 diff --git a/public/img/user-card/card-label-start.png b/public/img/user-card/card-label-start.png new file mode 100644 index 0000000000000000000000000000000000000000..88b48b4e0dcba0b6480b04185dc6a4ee2c38678e GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y;!3HFk*Rf{-Db50q$YKTtZeb8+WSBKa0w~B> z9OUlAu literal 0 HcmV?d00001 diff --git a/public/img/user-card/jobicon.png b/public/img/user-card/jobicon.png new file mode 100644 index 0000000000000000000000000000000000000000..5c25edd796cb59e7fb9b18e8252814bdce41f7c6 GIT binary patch literal 2522 zcmV<02_^Q4P)Px;lu1NER9Hu~SZj<`R~7!&KIh!`oqI3CFb^IL05aY5ZXmlNv2mn@Y6SKa)1ZR&6_2h5n+^meRCUU;%$&2&-rxS#x4yOZA=G)@)5(!k3LhaCYgvQpd~M1wQeXz&>M7ya z3!k9EeCCjM>RY^%ojobtp&a!CFvsS*SnyuK*ZjyI^6FviCVxJ2)dtJ^<5_}J6+um%v~lmL9aQ$srE+y&TLwB%3_1pN(V1oF1<)l1+D4>&e|sh ziY{(;Kb~!H?=$m^>fPN}oEP5NixC@u`mY+GnKu0l4XsQ4Ph~UeX~WP+>CuZ9@sxJ- zutQN@&r&`^DZiL*Yr$93Y4>{u^pO6_d#9YgzOf%e?+lOH{?2~3v|hcD)_}rI!<4XMb$nlGwdyCbtE3gH78;tRw`or z&pq2N6`6K?Z@~fDsMuP00M9`lK;s9>4_<30*{Zsho!y z8q7xr`<$=6^mPn?s>{ZJUem#mwd?ewr10%}!hNI1XpP6-_SJ*$>?R@Tx{J`kYDIh? zy`eqx3K7=bXh8MM&!9I?T%ax8eaKgn3T?WdJ+&T^LhO&DWw{c z^bHWw)z)L?Gkt^J$7Tc_YC0F2_!a~-v-q)Pk`#lrW}rVmihpRT&{6}!c^E_mFrOJ1kNkQ@P2;!htr;3=j5%sKT(m+{ z!URt)C7@A+;vvUZ{XRiM`x!+l$Al=eo-9JM37x?TT+lA{qu>lVE|d?wfE;RIMg&?1 zMGg$bqr~n-H8JtOe~l#jvHyCnCUmmX-h<@QWa&GA-v)*Y6=2b(n)*a^wYPubagSJM z8oXWX(0YP$mSi}!s?qs00hwT%M(k3P*|5iO9pbnPq@$p0jF60&Qp(o~OoL;Ld;u6Q z3Bf?jC1m12ON!8zCNw1hc_-qQL)xnddkD;G&ErV4#EY*=ahyTZr_PnU&7KRrSQUQ* z#+PK=txFYqG<#Ay3Wz#DCZ;$YWlDGgnmAw3bZs2S7r_Oei9j54Kv@BuCM<3sG$-Xf zAnMt^f&?w2Pb#9jp)sG!B%((NSY0(SfYZan#oLP|?dP(QUn!#97PKML(h&3steJ#0 zxi7!vC+ZR>JWx6!f7=yCi!dyY78%8$JxX}QnHZ>5KxYW80y<8Jxqzz39#dR0daOB_ zbPp4-at3J*YOS9!xk+?85t$;iX^CRusZ39AjERUNib=pq$TKm!qX}PR0rZbCu8hDi zDKg5&2?Ba)*2+ZW5%Vl)MPMyT5})p0INq9xP!}*aE8Eakk%uAUB3MOCTFxpq3Jw9Q zniPNG7NWjUOG}`8EJ^}TzoBuuj}iBXvoWUD2EsC7I!zF{NCZSbA)!G6g#9T>I&1M zYh^Ye2`U>8VV6NW&O{esZe@IJ0J=M;K6aOjA0IAZV9Y#$)xI5R z>_gtG_$`3r9|khN`fBR=A!GgMq7j8T-@FdRIeNNVH>kcso$R>dMHo5rQDQ(0`X}nE|oqV zg7)?JO9bn`^}wm}$Si#XKkce*TL6GA4qa-{lhx<1>IC@Sa7ncSLh&bj` zf-Nsb*d6SyOe5P6DX!4qn~1SO+69obi?d_@;s)o3Wv2@OgpqpSHU|fe`6!i{p4xmH zAGA#n6cIZ?sh2YU`I{Avy~olSnj~}$44Z`(Ju|iKM|^R5tg#evn;l>0SRtZHH4p>X zx7~eirgOl(wNyMh2xiOS$7qeJ=!{uRCKvI zSS`sQ+7>~gFfkTW5ptuB>1<}b9^T1ktvn{no$)0i>{vng=UIkn$!&B)n;;XN%9(95 zWEhpkYV%^kTUXfpF9}+)OBKm+BH))D zt)io8J`h)iD=LN0hN{k-;JZu-2eap07*qoM6N<$g6IyTg#Z8m literal 0 HcmV?d00001 diff --git a/public/img/user-card/line1.png b/public/img/user-card/line1.png new file mode 100644 index 0000000000000000000000000000000000000000..341964fdc5b54a2aeac3dda5f27b5fd8281429b2 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^2|&!o!3HF4OlQ{vDb50q$YKTtZeb8+WSBKa0w~B> z9OUlAu!UTMr|G@E3*b@k3x zDcvbA56`e&mTsOE+;oJiTh=*tpJ8>0I3IU=_ip|tDtl+xHrm@CNRws>eKA}3-;Kq; ZSx^2yxSeCNdlb+i44$rjF6*2UngHM~PtX7W literal 0 HcmV?d00001 diff --git a/public/img/user-card/line2.png b/public/img/user-card/line2.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3045eec744f9d0ac28c3ca6f1f1aa0994033b9 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^2|&!o!3HF4OlQ{vDb50q$YKTtZeb8+WSBKa0w~B> z9OUlAun`c3G0f59VnJoNh`=cGn#uk6h_Zd*J)wtn>r3{cW6bZhvI2>$%B(c39Yx=l@8~ zCTHf&3(E>lKa#t1#f1Hz^tZgoKehj7blneKyyTDptH-)cJH)SVj%E3k>u7Z(%ZC3^ bT@Cxu>QMK`dhcceUBck$>gTe~DWM4fqn}dH literal 0 HcmV?d00001 diff --git a/public/img/user-card/user-card.png b/public/img/user-card/user-card.png new file mode 100644 index 0000000000000000000000000000000000000000..92e09953123fad8d9250039f91fe2c79b80bc71d GIT binary patch literal 5620 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 literal 0 HcmV?d00001 diff --git a/src/components/orgChart/index.jsx b/src/components/orgChart/index.jsx new file mode 100644 index 0000000..a010448 --- /dev/null +++ b/src/components/orgChart/index.jsx @@ -0,0 +1,58 @@ +import React, { useLayoutEffect, useRef, useEffect } from 'react'; +import { OrgChart } from 'd3-org-chart'; +import * as d3 from 'd3'; + +export const OrgChartComponent = (props, ref) => { + const d3Container = useRef(null); + let chart = null; + + function addNode(node) { + chart.addNode(node); + } + + props.setClick(addNode); + + + // We need to manipulate DOM + useLayoutEffect(() => { + if (props.data && d3Container.current) { + if (!chart) { + chart = new OrgChart(); + } + props.setChart(chart) + try { + chart + .container(d3Container.current) + .data(props.data) + .nodeWidth(props.nodeWidth) + .nodeHeight(props.nodeHeight) + .layout("left") + + .linkUpdate(function(d, i, arr) { + d3.select(this) + .attr("stroke", "#66BAF5") + .attr("stroke-width", 1) + .style("stroke-dasharray", ("3, 3")) + }) + .onNodeClick((d, i, arr) => { + console.log(d, 'Id of clicked node '); + props.onNodeClick(d); + }) + .buttonContent(props.buttonContent) + .nodeContent(props.nodeContent) + .render(); + + chart.expandAll() + } catch(err) { + console.log(err); + } + } + }, [props.data, d3Container.current]); + + + return ( +

+
+
+ ); +}; diff --git a/src/components/toolBar/img/add.png b/src/components/toolBar/img/add.png new file mode 100644 index 0000000000000000000000000000000000000000..f300dccb02118ee668ee5c1ddfd03fed983d8414 GIT binary patch literal 798 zcmV+(1L6FMP)P000>X1^@s6#OZ}&00001b5ch_0Itp) z=>Px%*hxe|R7gv`mQQFCQ4q$z$+or%MZt{pL{Ko@_cjzY6s1@Y6nhc9h-dMj zCl6KesE9Xjg3_A`f>uFnwWRI7O)Pk*RSzmu^r8rAS0(Hlc}q4VG20{%+*>m9=C?ER zzL_QbhllE6OiWCyYHx2(T9(zLweBFIMF8)8-+z%#r@z#Su_VOvyuHkP7Qg`j%PNC0 zb3jDTnfa=eax4y36{3_{4d4cVqqW|$#6D(O)~RGN`ML7UKM$z(F?T3cHe03@1tyP&n+?l{hTQH)9{BgAwQA#*~A9c5yinVC71NF?qz3lf#8 z48qKm&1Ro4^FSP^-q{5pYumO%L_ry(pqKT`Y;H$a3@Dt!v$M0^`FuWZ3V#KV5<(bz z_*B~`I{`e30WG;tnE9KTf0ft2>SoO4avOpmxD8-W16s-E^Z66~{rzt$&&2Ndk&%(a z(9qCuVaM;TmUSW6oZ0b0h+9z)>V}j$dY)%CrK7dplt?5xn0Zla{lUyuqk~%6*7ZqL cD@ZN-UwdF-DGbgTIRF3v07*qoM6N<$f_=1i7XSbN literal 0 HcmV?d00001 diff --git a/src/components/toolBar/img/decrease.png b/src/components/toolBar/img/decrease.png new file mode 100644 index 0000000000000000000000000000000000000000..3f70bc2e4c6e045e1fd7cc158bff66c2a8b5697f GIT binary patch literal 744 zcmVP)P000>X1^@s6#OZ}&00001b5ch_0Itp) z=>Px%qDe$SR7gv`md$GuK^VrLcXmM=#bB@+4?PqKn@Msovc2iidJs`4^q_dDsO_QH z-UPkqKTxgKkE$RZy?7KwPeKGitn61y5~PB9@FHy*+iaYXEZwk;`Pin#x$VyLyuX=u z-`RHv|6x!khH09+8Dl4jXn=_Nq?8dNS`tDO6-9Z!yuAEI*LAmDoR*M6p|Ia|-D?0Y z0NB+k2oe1hLQKbEv8i}GzS2zB6k=J{X+=>UNhy0f?KCi7V2qv9H0?v9=O2h|+hdHe zJ5owz698ZOTL>|fPN!c6y&E8o;|u|K4uEw5@GUE92W&5LeRa^t2Co4d8ga8i*!KrP8df z>*bIDI}o^Q&shAV6l&r$>c>J z@(RFUU>$>jEV1-I4Z>3VHNe^P%_B|pR3mb3~IJ@fPPBT~v) z0NwPH5@YO)rfF}3ahrBV$8k;ocnTmMHg!bgRIAmqnM`J`(bKZWo2D6Kj9q1nU6N8p z+rYjFA*Ldc$V`8K|7tT`$JP000>X1^@s6#OZ}&00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP7Os$h;1q6_<2Yhgl|Iv zn2|~7B0dZ z2}w}bir?=Kmq>6-FC%daO;>dm-enOx4F-dsDg@)mIi&jNfnd(z2TLSww>ts1Lpo7b zBfQukwVyo<9gtX+r1-UHG|JAfUS0jj00coegGe5+f-d?~nJyAjH)A9c8O3V4(VT?e z&`6b`$~H5X76k%<(t(MRb!g>b#WM4ju3z99_C@L>N6cIPTESH;qGU6qT(xE3k1P3n dzAI`LegV)!&ZxbcGOYjr002ovPDHLkV1j1U5y=1m literal 0 HcmV?d00001 diff --git a/src/components/toolBar/img/left_active.png b/src/components/toolBar/img/left_active.png new file mode 100644 index 0000000000000000000000000000000000000000..99869123f47dbf4d257bd54096adeab415f58c75 GIT binary patch literal 438 zcmV;n0ZIOeP)q{M;|i}(Y?V6j;&WMhy)28$A_!H=ZOBH^NBWI_=- z-gCR%=iK|=_woAF)6@HW&-wOr-qU#!eM{fOpb8iQN*#*_U^^MZxDGf38jKRKP-2dv z(;8wdO#0qDp{CV9k5O|e^D$2W`#^_L3gA;GGw;44ADamJH`IjwV7C10U5ybo~B;*S? zF{fFkfP3J{S(4KzWf{|;8Yl5X+w|6026O_8<}^TN&!(6^0y9P~Os2cSCZf>nGq}>a zPw0%PH4zRzvt>g^L8W%hznZ`5jb#l2%O=9%FV9?Nkd+sSdyn(X?E-fp`bwM!`dNow guRLjvmIiiy0IbG3-r|^8XaE2J07*qoM6N<$f~LB{00000 literal 0 HcmV?d00001 diff --git a/src/components/toolBar/img/top.png b/src/components/toolBar/img/top.png new file mode 100644 index 0000000000000000000000000000000000000000..935c0b098b50d2b80fa1f549964ce6b5d241ed9e GIT binary patch literal 372 zcmV-)0gL{LP)P000;W1^@s654Bdt0003yNklt^kjo{^7c5N|l1KvI^`1_rRB&Dt*8xuml{Xn%ug(-jI`g_J9FkIgDss z*CsIM?I(djV8ZQ>fvrgSb$6{Lms0`uz4J3*$2wUknxG!juEQ2K{x2j-nYEufEOMMm zpq8UiO0_#6|FMb9rxad;pwGm-XEU)kau7^be_3&R59dL$O@yn0;@?06X#4<}5k++J STRyA+0000nn literal 0 HcmV?d00001 diff --git a/src/components/toolBar/img/top_active.png b/src/components/toolBar/img/top_active.png new file mode 100644 index 0000000000000000000000000000000000000000..379a699c451d0827d210ab2f2d3177e559fcd602 GIT binary patch literal 515 zcmV+e0{s1nP)P000>X1^@s6#OZ}&00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP4qW!m&dfP8mwN~J1&Ck3?7l8RF{Xl+YJN*`8eW$}G%7N8pu>)X zOZdRbV=}xYiJJa;$<7BlVF0zzUC&=v`<~B>hJp5q6Rz)vkXCmto`|b`@%b~y`<%7{x*@Pk3`3c1qxUCRzJDJ_n zEfSCNXk1ZsFiuaFM|0=e1;nEp5~?5$=`so!Bzb^SdVrmD@ps(Ae#SzNWICu5Bu~H( zHin`ra#a-A(=n1H{nA+Ah{eDTm>}m?S%QN$qdZRN=Ir{fB2;-bi^Pl9 10) { + this.props.onZoomOut() + this.clientY = e.clientY + } else if(this.start && e.clientY - this.clientY < - 10) { + this.props.onZoomIn() + this.clientY = e.clientY + } + if(this.start) { + let offset = e.clientY - this.originalY + console.log("offset:", offset); + if((this.top + offset) < 0) { + offset = 0 - this.top + } + if((this.top + offset) > 100) { + offset = 100 - this.top + } + console.log("(this.top + offset):", (this.top + offset)) + this.progressBtn.current.style.top = (this.top + offset) + "px"; + } + } + + handleMouseUp(e) { + this.start = false; + console.log("this.start:", this.start) + + } + + render() { + return ( +
+ {this.props.onZoomIn(this.progressBtn)}}/> +
+
{this.handleMouseDown(e)}} + onMouseMove={(e) => {this.handleMouseMove(e)}} + onMouseUp={(e) => {this.handleMouseUp(e)}} + onMouseLeave={(e) => {this.handleMouseUp(e)}} + >
+
+
+ {this.props.onZoomOut(this.progressBtn)}}/> + + {this.setState({toolActive: "top"}); this.props.onTopLayoutClick(this.progressBtn)}}/> + {this.setState({toolActive: "left"}); this.props.onLeftLayoutClick(this.progressBtn)}}/> +
+ ) + } +} \ No newline at end of file diff --git a/src/components/toolBar/index.less b/src/components/toolBar/index.less new file mode 100644 index 0000000..ffe10d8 --- /dev/null +++ b/src/components/toolBar/index.less @@ -0,0 +1,38 @@ +.toolbarWrapper { + width: 68px; + position: fixed; + right: 10px; + z-index: 100; + background: #fff; + border-radius: 20px; + padding-top: 20px; + padding-bottom: 20px; + text-align: center; + .progressWrapper { + position: relative; + padding-top: 5px; + padding-bottom: 5px; + margin-left: 20px; + .progressLine { + height: 100px; + width: 0px; + border-left: 2px solid #C9C9C9; + margin-left: 12px; + } + .progressBtn { + width: 16px; + height: 9px; + background-color: #C9C9C9; + position: absolute; + left: 5px; + top: 0px; + } + } + .toolBarItem { + display: block; + margin-top: 20px; + margin-bottom: 20px; + margin-left: 20px; + cursor: pointer; + } +} \ No newline at end of file diff --git a/src/components/topBar/index.jsx b/src/components/topBar/index.jsx new file mode 100644 index 0000000..c0a888a --- /dev/null +++ b/src/components/topBar/index.jsx @@ -0,0 +1,123 @@ +import React from 'react' +import style from './index.less' +import { DatePicker, Select, Button, Checkbox, Row, Col, Dropdown, Menu, } from 'antd' +const { Option } = Select; +import moment from 'moment'; + + +export class TopBar extends React.Component { + + constructor(props) { + super(props) + this.state = { + fclasslist: [], + companylist: [], + requestData: { + date: moment(new Date()).format("YYYY-MM-DD"), + fclass: "0", + root: "0", + level: "3", + fisvitual: "0" + } + } + } + + handleFormChange(payload) { + let requestData = {...this.state.requestData, ...payload} + this.setState({requestData}) + } + + handleExportMenuClick(e) { + this.props.onExport(e.key == '1' ? "png" : "pdf") + } + + handleExportButtonClick() { + this.props.onExport("png") + } + + componentDidMount() { + fetch(this.props.url).then(res => res.json()).then(data => { + this.setState({ + fclasslist: data.fclasslist, + companylist: data.companylist + }) + }) + } + + menu = ( + + ); + + render() { + return ( +
+ + + + 数据日期: this.handleFormChange({date: value && value != "" ? value.format("YYYY-MM-DD") : ""})} /> + + + + + 维度: + + + + 根节点: + + + + 显示层级: + + + + this.handleFormChange({fisvitual: e.target.checked ? "1": "0"})}>显示虚拟组织 + + + + + + + + + + + +
+ ) + } +} \ No newline at end of file diff --git a/src/components/topBar/index.less b/src/components/topBar/index.less new file mode 100644 index 0000000..e3e9c4d --- /dev/null +++ b/src/components/topBar/index.less @@ -0,0 +1,9 @@ +.topbarWrapper { + margin: 20px; + background: #FFFFFF; + // background: red; + padding: 20px 26px 20px 26px; + box-shadow: 0px 5px 5px #e2e2e2; + border-radius: 0px 0px 0px 0px; + vertical-align: middle; +} \ No newline at end of file diff --git a/src/department/index.js b/src/department/index.js new file mode 100644 index 0000000..b04fce2 --- /dev/null +++ b/src/department/index.js @@ -0,0 +1,5 @@ +import React from 'react' + +export default () => { + return
Hello
+} \ No newline at end of file diff --git a/src/pages/company.jsx b/src/pages/company.jsx new file mode 100644 index 0000000..0a6fd8c --- /dev/null +++ b/src/pages/company.jsx @@ -0,0 +1,252 @@ +import styles from './index.less'; +import React, { useEffect, useState } from "react"; +import {OrgChartComponent} from '@/components/orgChart' +import * as d3 from 'd3'; +import { TopBar } from '../components/topBar'; +import ToolBar from '../components/toolBar'; +import jsPDF from 'jspdf' +import moment from 'moment'; +import qs from 'qs'; + + +export default function companyPage() { + const [data, setData] = useState(null); + const [sliderProgress, setSliderProgress] = useState(50); + let addNodeChildFunc = null; + let orgChart = null; + + // 点击节点 + function onNodeClick(nodeId) { + // alert('clicked ' + nodeId); + } + + // 获取部门图片 + function getDepartmentImage() { + let index = Math.floor(Math.random() * 8) + 1 + return `./img/department/${index}.png` + } + + // 获取部门图片 + function getSubcompanyImage() { + let index = Math.floor(Math.random() * 3) + 1 + return `./img/subcompany/${index}.png` + } + + // 获取数据 + useEffect(() => { + d3.json( + // "/company/data" + "/api/bs/hrmorganization/orgchart/companyData?fclass=0&root=0&date=" + moment(new Date()).format("YYYY-MM-DD") + ).then(data => { + setData(data.data); + }); + }, [true]); + + // ButtonContent渲染 + const buttonContentRender = ({ node, state }) => { + if(node.children) { + return `
ˆ
`; + } else { + return `
ˬ
` + } + } + + // 节点宽度渲染 + const nodeWidthRender = d => + { + if(d.data.ftype == 0) { + return 220; + } else if(d.data.ftype == 1) { + return 160; + } else if(d.data.ftype == 2) { + return 144; + } + return 200; + } + + const nodeHeightRender = d => { + if(d.data.ftype == 0) { + return 100; + } else if(d.data.ftype == 1) { + return 160; + }else if(d.data.ftype == 2) { + return 56; + } + return 120; + } + + + + const nodeContentRender = (d, i, arr, state) => { + if(d.data.ftype == 0) { + return `
+
+ +
+
+
${d.data.fname}
+
COMPANY_GROUP
+
+
` + } else if(d.data.ftype == 1) { + return `
+
+ +
+
+ ${d.data.fname} +
+
` + } else if(d.data.ftype == 2) { + return ` +
+
+ + ${d.data.fname} +
+
+ ` + } + return `
${d.data.fname}
` + } + + + // tool bar start + const handleTopLayoutClick = (progressBtn) => { + progressBtn.current.style.top= 50 + "px"; + orgChart && orgChart.layout('top').render().fit(); + } + + const handleLeftLayoutClick = (progressBtn) => { + progressBtn.current.style.top= 50 + "px"; + orgChart && orgChart.layout('left').render().fit(); + } + + const handleZoomIn = (progressBtn) => { + if(progressBtn) { + let top = (parseInt(progressBtn.current.style.top) - 10) + if(top <= 0) { + top = 30; + } + progressBtn.current.style.top = top + "px"; + } + orgChart && orgChart.zoomIn(); + } + + const handleZoomOut = (progressBtn) => { + if(progressBtn) { + let top = (parseInt(progressBtn.current.style.top) + 10) + if(top >= 100) { + top = 70; + } + progressBtn.current.style.top = top + "px"; + } + + orgChart && orgChart.zoomOut(); + } + + const handleZoomBehavior = (value) => { + orgChart && orgChart.zoomBehavior(value - 50); + } + + // tool bar end + + // top bar start + + function downloadPdf(chart) { + chart.exportImg({ + save: false, + onLoad: (base64) => { + var pdf = new jsPDF(); + var img = new Image(); + img.src = base64; + img.onload = function () { + pdf.addImage( + img, + 'JPEG', + 5, + 5, + 595 / 3, + ((img.height / img.width) * 595) / 3 + ); + pdf.save('chart.pdf'); + }; + }, + }); + } + + const handleExport = (type) => { + if(type == "png") { + orgChart && orgChart.exportImg({full:true}); + } else { + orgChart && downloadPdf(orgChart) + } + } + + const handleSearch = (requestData) => { + let api = "/api/bs/hrmorganization/orgchartt/companyData" + qs.stringify(requestData, {addQueryPrefix: true}) + fetch(api).then(res => res.json()).then(data => { + setData(data.data); + }) + } + + // top bar end + + + return ( +
+ {handleExport(type)}} + onSearch={(requestData) => {handleSearch(requestData)}} + url="/bs/hrmorganization/orgchart/jcl/orgchart/getCondition?type=company" + /> + handleTopLayoutClick(progressBtn)} + onLeftLayoutClick={(progressBtn) => handleLeftLayoutClick(progressBtn)} + onZoomOut={(progressBtn) => handleZoomOut(progressBtn)} + onZoomIn={(progressBtn) => handleZoomIn(progressBtn)} + onZoomBehavior={(value) => handleZoomBehavior(value)} + /> + orgChart = chart} + setClick={click => (addNodeChildFunc = click)} + onNodeClick={onNodeClick} + data={data} + buttonContent={ + buttonContentRender + } + nodeWidth={nodeWidthRender} + nodeHeight={nodeHeightRender} + nodeContent={nodeContentRender} + /> +
+ ); +} diff --git a/src/pages/index.less b/src/pages/index.less new file mode 100644 index 0000000..0186693 --- /dev/null +++ b/src/pages/index.less @@ -0,0 +1,11 @@ +.title { + background: rgb(121, 242, 157); +} + +.wrapper { + background: #F7F9FD; +} + +.contentWrapper { + background-color: #F7F9FD; +} \ No newline at end of file diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 0000000..b725177 --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,9 @@ +import styles from './index.less'; + +export default function IndexPage() { + return ( +
+

Page index

+
+ ); +} diff --git a/src/pages/user.jsx b/src/pages/user.jsx new file mode 100644 index 0000000..0dea0da --- /dev/null +++ b/src/pages/user.jsx @@ -0,0 +1,304 @@ +import styles from './index.less'; +import React, { useEffect, useState } from "react"; +import {OrgChartComponent} from '@/components/orgChart' +import * as d3 from 'd3'; +import { TopBar } from '../components/topBar'; +import ToolBar from '../components/toolBar'; +import moment from "moment"; +import qs from 'qs'; + + +export default function userPage() { + const [data, setData] = useState(null); + const [progressTop, setProgressTop] = useState(50); + let addNodeChildFunc = null; + let orgChart = null; + let progressBtnRef = null; + + // 点击节点 + function onNodeClick(nodeId) { + // alert('clicked ' + nodeId); + } + + // 获取部门图片 + function getDepartmentImage() { + let index = Math.floor(Math.random() * 8) + 1 + return `./img/department/${index}.png` + } + + // 获取部门图片 + function getSubcompanyImage() { + let index = Math.floor(Math.random() * 3) + 1 + return `./img/subcompany/${index}.png` + } + + // 获取数据 + useEffect(() => { + d3.json( + // "/user/data" + "/api/bs/hrmorganization/orgchart/userData?fclass=0&root=0&date=" + moment(new Date()).format("YYYY-MM-DD") + ).then(data => { + setData(data.data); + }); + }, [true]); + + // ButtonContent渲染 + const buttonContentRender = ({ node, state }) => { + return ` +
+ +
+ ` + } + + // 节点宽度渲染 + const nodeWidthRender = d => + { + return 280; + } + + const nodeHeightRender = d => { + return 160; + } + + // tool bar start + const handleTopLayoutClick = (progressBtn) => { + progressBtn.current.style.top= 50 + "px"; + orgChart && orgChart.layout('top').render().fit(); + } + + const handleLeftLayoutClick = (progressBtn) => { + progressBtn.current.style.top= 50 + "px"; + orgChart && orgChart.layout('left').render().fit(); + } + + const handleZoomIn = (progressBtn) => { + if(progressBtn) { + let top = (parseInt(progressBtn.current.style.top) - 10) + if(top <= 0) { + top = 30; + } + progressBtn.current.style.top = top + "px"; + } + orgChart && orgChart.zoomIn(); + } + + const handleZoomOut = (progressBtn) => { + if(progressBtn) { + let top = (parseInt(progressBtn.current.style.top) + 10) + if(top >= 100) { + top = 70; + } + progressBtn.current.style.top = top + "px"; + } + orgChart && orgChart.zoomOut(); + } + + // tool bar end + + + // top bar start + + function downloadPdf(chart) { + chart.exportImg({ + save: false, + onLoad: (base64) => { + var pdf = new jsPDF(); + var img = new Image(); + img.src = base64; + img.onload = function () { + pdf.addImage( + img, + 'JPEG', + 5, + 5, + 595 / 3, + ((img.height / img.width) * 595) / 3 + ); + pdf.save('chart.pdf'); + }; + }, + }); + } + + const handleExport = (type) => { + if(type == "png") { + orgChart && orgChart.exportImg({full:true}); + } else { + orgChart && downloadPdf(orgChart) + } + } + + const handleSearch = (requestData) => { + let api = "/api/bs/hrmorganization/orgchart/jcl/orgchart/userData" + qs.stringify(requestData, {addQueryPrefix: true}) + fetch(api).then(res => res.json()).then(data => { + setData(data.data) + }) + } + + // top bar end + + const nodeContentRender = (d, i, arr, state) => { + if(d.data.ftype == 0 || d.data.ftype == 1 || d.data.ftype == 2) { + return `
+
+ + ${d.data.fname} + + + + +
+
+ +
+
+
${d.data.fleadername}
+
${d.data.fname} / ${d.data.fleaderjob}
+
+
编制: ${d.data.fplan}
+
在岗: ${d.data.fonjob}
+
+
+
+
+
` + } else if(d.data.ftype == 3) { + return `
+
+ + ${d.data.fname} + + + + +
+ +
+
${d.data.fname}
+
+ 编制:${d.data.fplan} + 在岗:${d.data.fonjob} +
+
+
+
+
` + } else if(d.data.ftype == 4) { + return `
+
+ + + + + +
+
+ +
+
+
${d.data.fname}
+
${d.data.department} / ${d.data.fleaderjob}
+
${d.data.mobile}
+
地址:${d.data.address}
+
+
+
+
` + } + } + + return ( +
+ {handleExport()}} + onSearch={(requestData) => {handleSearch(requestData)}} + url="/api/bs/hrmorganization/orgchart/getCondition?type=user" + /> + handleTopLayoutClick(progressBtn)} + onLeftLayoutClick={(progressBtn) => handleLeftLayoutClick(progressBtn)} + onZoomOut={(progressBtn) => handleZoomOut(progressBtn)} + onZoomIn={(progressBtn) => handleZoomIn(progressBtn)} + /> + orgChart = chart} + setClick={click => (addNodeChildFunc = click)} + onNodeClick={onNodeClick} + data={data} + buttonContent={ + buttonContentRender + } + nodeWidth={nodeWidthRender} + nodeHeight={nodeHeightRender} + nodeContent={nodeContentRender} + /> +
+ ); +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..6d42f8c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,37 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "importHelpers": true, + "jsx": "react-jsx", + "esModuleInterop": true, + "sourceMap": true, + "baseUrl": "./", + "strict": true, + "paths": { + "@/*": ["src/*"], + "@@/*": ["src/.umi/*"] + }, + "allowSyntheticDefaultImports": true + }, + "include": [ + "mock/**/*", + "src/**/*", + "config/**/*", + ".umirc.ts", + "typings.d.ts" + ], + "exclude": [ + "node_modules", + "lib", + "es", + "dist", + "typings", + "**/__test__", + "test", + "docs", + "tests" + ] +} diff --git a/typings.d.ts b/typings.d.ts new file mode 100644 index 0000000..06c8a5b --- /dev/null +++ b/typings.d.ts @@ -0,0 +1,10 @@ +declare module '*.css'; +declare module '*.less'; +declare module '*.png'; +declare module '*.svg' { + export function ReactComponent( + props: React.SVGProps, + ): React.ReactElement; + const url: string; + export default url; +}