workflow.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. .wf-container {
  2. width: 100%;
  3. height: 100%;
  4. --th: 50px;
  5. --bh: 50px;
  6. --margin: 10px;
  7. display: flex;
  8. flex-direction: column;
  9. flex: 1 auto;
  10. flex-wrap: wrap;
  11. }
  12. .wf-container .step-tab {
  13. width: 100%;
  14. height: var(--th);
  15. margin-bottom: var(--margin);
  16. background: #fff;
  17. display: flex;
  18. font-size: 14px;
  19. --w: 120px;
  20. position: relative;
  21. }
  22. .wf-container .step-tab .step-tab-item {
  23. display: flex;
  24. align-items: center;
  25. justify-content: center;
  26. font-weight: 600;
  27. color: #999;
  28. width: var(--w);
  29. transition: 0.5s background-color;
  30. }
  31. .wf-container .step-tab .step-tab-item:not(:first-child) {
  32. --ml: calc((100% - var(--w)*3)/2);
  33. margin-left: var(--ml);
  34. }
  35. .wf-container .step-tab .step-tab-item:not(:first-child):before {
  36. content: "";
  37. position: absolute;
  38. width: calc(var(--ml) - 10px);
  39. height: 3px;
  40. background-color: #e8eaec;
  41. }
  42. .wf-container .step-tab .step-tab-item:nth-of-type(2):before {
  43. left: calc(5px + var(--w));
  44. }
  45. .wf-container .step-tab .step-tab-item:nth-child(3):before {
  46. left: calc(5px + var(--w) * 2 + var(--ml));
  47. }
  48. .wf-container .step-tab .step-tab-item i {
  49. font-size: 16px;
  50. padding-right: 8px;
  51. }
  52. .wf-container .step-tab .step-tab-item.finished i, .wf-container .step-tab .step-tab-item.active i {
  53. font-weight: 600;
  54. color: #2d8cf0;
  55. }
  56. .wf-container .step-tab .step-tab-item.finished:before, .wf-container .step-tab .step-tab-item.active:before {
  57. background-color: #2d8cf0;
  58. }
  59. .wf-container .step-tab .step-tab-item.active {
  60. color: #3c3c3c;
  61. }
  62. .wf-container .step-content {
  63. width: 100%;
  64. height: calc(100% - var(--th) - var(--bh) - var(--margin) * 2);
  65. background: #fff;
  66. }
  67. .wf-container .step-content .step-content-item {
  68. display: none;
  69. width: 100%;
  70. height: 100%;
  71. }
  72. .wf-container .step-content .step-content-item.step-content-item_0 {
  73. justify-content: center;
  74. overflow-y: auto;
  75. }
  76. .wf-container .step-content .step-content-item.step-content-item_0 form {
  77. padding: 20px;
  78. width: 500px;
  79. }
  80. .wf-container .step-content .step-content-item.step-content-item_0 form > div {
  81. margin-bottom: 15px;
  82. }
  83. .wf-container .step-content .step-content-item .design-left, .wf-container .step-content .step-content-item .design-mid, .wf-container .step-content .step-content-item .design-right {
  84. overflow-y: auto;
  85. }
  86. .wf-container .step-content .step-content-item.step-content-item_1 .form-component {
  87. width: 100%;
  88. display: flex;
  89. flex-wrap: wrap;
  90. }
  91. .wf-container .step-content .step-content-item.step-content-item_1 .form-component .title {
  92. width: 100%;
  93. height: 35px;
  94. display: flex;
  95. align-items: center;
  96. background: #2d8cf0;
  97. color: #eee;
  98. margin-bottom: 10px;
  99. padding-left: 20px;
  100. border-bottom: 1px solid #dcdee2;
  101. font-weight: 600;
  102. }
  103. .wf-container .step-content .step-content-item.step-content-item_1 .form-component .form-component-item {
  104. color: #3c3c3c;
  105. margin: 5px 8px;
  106. background: transparent;
  107. border-radius: 0.25rem;
  108. border: 1px dashed #dcdee2;
  109. padding: 5px 10px 4px;
  110. transition: color 0.2s linear, background-color 0.2s linear, border 0.2s linear, box-shadow 0.2s linear, -webkit-box-shadow 0.2s linear;
  111. }
  112. .wf-container .step-content .step-content-item.step-content-item_1 .form-component .form-component-item:hover {
  113. border-color: #2d8cf0;
  114. color: #2d8cf0;
  115. background: #fafafa;
  116. }
  117. .wf-container .step-content .step-content-item.step-content-item_1 .form-design {
  118. width: 100%;
  119. display: flex;
  120. flex-direction: column;
  121. padding: 15px;
  122. }
  123. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box {
  124. padding: 5px;
  125. margin: 3px 0;
  126. position: relative;
  127. }
  128. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box .delete {
  129. display: none;
  130. position: absolute;
  131. bottom: 0;
  132. left: 0;
  133. color: #fff;
  134. background-color: #ff6a00;
  135. width: auto;
  136. padding: 5px 8px;
  137. cursor: pointer;
  138. }
  139. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box.hover {
  140. border: 1px dashed #ff6a00;
  141. }
  142. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box.hover > .delete {
  143. display: block;
  144. }
  145. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box .item {
  146. border: 1px dotted #ddd;
  147. color: #ccc;
  148. margin-top: 0;
  149. padding: 10px 8px 8px;
  150. display: flex;
  151. align-items: center;
  152. /*
  153. &:last-child {
  154. border-left: none;
  155. }*/
  156. }
  157. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box .item span {
  158. width: 100%;
  159. text-align: center;
  160. line-height: 1;
  161. font-size: 16px;
  162. }
  163. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box .item .dy-form-input-box {
  164. width: 100%;
  165. padding: 10px;
  166. position: relative;
  167. color: #333;
  168. }
  169. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box .item .dy-form-input-box.active {
  170. border: 2px solid #2d8cf0;
  171. }
  172. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box .item .dy-form-input-box.active .delete {
  173. display: block;
  174. }
  175. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .dy-form-container .dy-form-drag-box .item .dy-form-input-box .delete {
  176. left: auto;
  177. right: 0;
  178. color: #fff;
  179. background-color: #2d8cf0;
  180. }
  181. .wf-container .step-content .step-content-item.step-content-item_1 .form-design button.add {
  182. width: 100%;
  183. margin: 10px auto;
  184. border: none;
  185. background: transparent;
  186. margin: 5px 8px;
  187. }
  188. .wf-container .step-content .step-content-item.step-content-item_1 .form-design button.add i {
  189. padding-right: 10px;
  190. }
  191. .wf-container .step-content .step-content-item.step-content-item_1 .form-design button.add:hover {
  192. color: #2d8cf0;
  193. }
  194. .wf-container .step-content .step-content-item.step-content-item_1 .form-design button.add:hover i {
  195. color: #2d8cf0;
  196. }
  197. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .form-design-btn-group-add {
  198. width: auto;
  199. padding: 7px;
  200. border: 1px solid #ccc;
  201. margin: 0 auto;
  202. border-radius: 0.4rem;
  203. position: relative;
  204. display: none;
  205. }
  206. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .form-design-btn-group-add .arrow {
  207. display: block;
  208. width: 0;
  209. height: 0;
  210. position: absolute;
  211. border: 7px solid transparent;
  212. top: -7px;
  213. border-width: 0 7px 7px;
  214. border-bottom-color: #ccc;
  215. left: 50%;
  216. margin-left: 7px;
  217. }
  218. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .form-design-btn-group-add .arrow:after {
  219. position: absolute;
  220. content: "";
  221. display: block;
  222. width: 0;
  223. height: 0;
  224. border: 7px solid transparent;
  225. top: 1px;
  226. left: 50%;
  227. margin-left: -7px;
  228. border-top-width: 0;
  229. border-bottom-width: 7px;
  230. border-bottom-color: #fff;
  231. }
  232. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .form-design-btn-group-add button {
  233. color: #3c3c3c;
  234. margin: 5px;
  235. border-radius: 0.25rem;
  236. background: transparent;
  237. border: 1px solid #dcdee2;
  238. padding: 3px 10px;
  239. }
  240. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .form-design-btn-group-add button:hover {
  241. border-color: #2d8cf0;
  242. color: #2d8cf0;
  243. background: #fafafa;
  244. }
  245. .wf-container .step-content .step-content-item.step-content-item_1 .form-design .form-design-btn-group-add.show {
  246. display: block;
  247. }
  248. .wf-container .step-content .step-content-item.step-content-item_1 .dy-form-input-params {
  249. width: 100%;
  250. display: flex;
  251. flex-direction: column;
  252. padding: 15px;
  253. }
  254. .wf-container .step-content .step-content-item.step-content-item_1 .dy-form-input-params > div {
  255. margin-bottom: 15px;
  256. }
  257. .wf-container .step-content .step-content-item.step-content-item_1 .dy-form-input-params > div.params .label {
  258. display: flex;
  259. justify-content: space-between;
  260. align-items: flex-end;
  261. padding-right: 15px;
  262. }
  263. .wf-container .step-content .step-content-item.step-content-item_1 .dy-form-input-params > div.params .label span {
  264. padding: 6px;
  265. border: 1px dashed #dcdee2;
  266. border-radius: 3px;
  267. cursor: pointer;
  268. }
  269. .wf-container .step-content .step-content-item.step-content-item_1 .dy-form-input-params > div.params .input-group {
  270. margin-top: 10px;
  271. }
  272. .wf-container .step-content .step-content-item.step-content-item_1 .dy-form-input-params > div .input-group-text {
  273. border: none;
  274. font-weight: 800;
  275. }
  276. .wf-container .step-content .step-content-item.step-content-item_2 .title {
  277. width: 100%;
  278. display: flex;
  279. align-items: center;
  280. background: #2d8cf0;
  281. color: #eee;
  282. margin-bottom: 10px;
  283. padding: 7px 20px;
  284. border-bottom: 1px solid #dcdee2;
  285. font-weight: 600;
  286. }
  287. .wf-container .step-content .step-content-item.step-content-item_2 .node-source {
  288. width: 100%;
  289. display: flex;
  290. flex-wrap: wrap;
  291. justify-content: center;
  292. }
  293. .wf-container .step-content .step-content-item.step-content-item_2 .node-source .item {
  294. width: 80%;
  295. margin: 8px 0;
  296. padding: 15px !important;
  297. }
  298. .wf-container .step-content .step-content-item.step-content-item_2 .design-mid {
  299. overflow: hidden;
  300. }
  301. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design {
  302. min-width: 100%;
  303. min-height: 100%;
  304. /*background: #f5f5f5;*/
  305. position: relative;
  306. padding: 20px;
  307. transform: scale(1);
  308. background-repeat: repeat;
  309. background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAADpJREFUOE9jZGBgkGIgDjwjRhnjqIH4gmk0DLGHztBINsRkAJAaonIUyMvEglEDcSeb0TDEGQIDk2wAXwsLGTSQqIAAAAAASUVORK5CYII=");
  310. }
  311. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .flow-design-node {
  312. position: absolute;
  313. display: flex;
  314. justify-content: center;
  315. align-items: center;
  316. padding: 10px 15px !important;
  317. }
  318. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .flow-design-node span {
  319. display: flex;
  320. justify-content: center;
  321. align-items: center;
  322. min-width: 80px;
  323. max-width: 120px;
  324. min-height: 40px;
  325. white-space: normal;
  326. }
  327. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .flow-design-node.active {
  328. font-weight: 600;
  329. border: 3px solid #ff6a00 !important;
  330. }
  331. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .jtk-connector {
  332. cursor: pointer;
  333. }
  334. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .jtk-connector path {
  335. stroke: #FFE177;
  336. stroke-width: 3;
  337. }
  338. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .jtk-connector.active path {
  339. stroke: #FFDA59;
  340. stroke-width: 4;
  341. }
  342. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .jtk-overlay {
  343. color: #009ef7;
  344. border: 1px solid #2d8cf0;
  345. padding: 4px 8px;
  346. border-radius: 3px;
  347. border-radius: 4px;
  348. cursor: pointer;
  349. background-color: rgba(0, 158, 247, 0.1);
  350. }
  351. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .jtk-overlay.active {
  352. font-size: 16px;
  353. font-weight: 600;
  354. border-width: 2px;
  355. background-color: rgba(0, 158, 247, 0.2);
  356. }
  357. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design .jtk-overlay.hide {
  358. display: none;
  359. }
  360. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail {
  361. width: 100%;
  362. height: 100%;
  363. display: flex;
  364. flex-direction: column;
  365. }
  366. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box {
  367. width: 100%;
  368. padding: 15px;
  369. display: flex;
  370. flex-direction: column;
  371. }
  372. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box > div {
  373. margin-bottom: 15px;
  374. }
  375. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box > div.params .label {
  376. display: flex;
  377. justify-content: space-between;
  378. align-items: flex-end;
  379. padding-right: 15px;
  380. }
  381. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box > div.params .label span {
  382. padding: 6px;
  383. border: 1px dashed #dcdee2;
  384. border-radius: 3px;
  385. cursor: pointer;
  386. }
  387. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box > div.params .input-group {
  388. margin-top: 10px;
  389. }
  390. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box .stepBody .dy-select {
  391. position: relative;
  392. }
  393. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box .stepBody .dy-select .dy-select-result {
  394. display: none;
  395. width: 100%;
  396. position: absolute;
  397. border-radius: 5px;
  398. background: #f5f8fa;
  399. margin-top: 2px;
  400. padding: 5px 0;
  401. max-height: 200px;
  402. overflow-y: auto;
  403. }
  404. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box .stepBody .dy-select .dy-select-result span {
  405. width: 100%;
  406. display: inline-block;
  407. text-align: left;
  408. padding: 5px 20px;
  409. cursor: pointer;
  410. }
  411. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box .stepBody .dy-select .dy-select-result span:not(:first-child) {
  412. border-top: 1px solid #ddd;
  413. }
  414. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .flow-design-detail-box .stepBody .dy-select .dy-select-result strong {
  415. width: 100%;
  416. display: inline-block;
  417. text-align: center;
  418. padding: 5px 20px;
  419. }
  420. .wf-container .step-content .step-content-item.step-content-item_2 .flow-design-detail .item {
  421. width: 80%;
  422. margin: 8px 0;
  423. padding: 15px !important;
  424. }
  425. .wf-container .step-content .step-content-item .design-container {
  426. width: 100%;
  427. height: 100%;
  428. display: flex;
  429. }
  430. .wf-container .step-content .step-content-item .design-container > div {
  431. height: 100%;
  432. border: 1px solid #ddd;
  433. }
  434. .wf-container .step-content .step-content-item .design-container .design-left {
  435. width: 20%;
  436. }
  437. .wf-container .step-content .step-content-item .design-container .design-mid {
  438. width: 60%;
  439. }
  440. .wf-container .step-content .step-content-item .design-container .design-right {
  441. width: 20%;
  442. }
  443. .wf-container .step-content .step-content-item .design-container .design-move-col {
  444. width: 5px;
  445. border-left: none;
  446. border-right: none;
  447. display: flex;
  448. flex-direction: column;
  449. justify-content: center;
  450. background: #eee;
  451. cursor: col-resize;
  452. }
  453. .wf-container .step-content .step-content-item .design-container .design-move-col .bar {
  454. width: 100%;
  455. height: 6px;
  456. border: 1px solid #aaa;
  457. border-left: none;
  458. border-right: none;
  459. margin: 2px 0;
  460. }
  461. .wf-container .step-content .step-content-item.show {
  462. display: flex;
  463. }
  464. .wf-container .step-tool {
  465. width: 100%;
  466. height: var(--bh);
  467. margin-top: var(--margin);
  468. display: flex;
  469. justify-content: center;
  470. align-items: center;
  471. }
  472. .wf-container .step-tool button {
  473. display: none;
  474. width: 85px;
  475. margin: 0 10px;
  476. }
  477. .wf-container .step-tool button.show {
  478. display: block;
  479. }