index.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833
  1. {extend name="common/base"/}
  2. {block name="style"}
  3. <style>
  4. .footer{
  5. width: 100%;
  6. height: 25px;
  7. text-align: center;
  8. margin-bottom: 0 !important;
  9. }
  10. /* .left-box {
  11. height: 99vh !important;
  12. } */
  13. .left-box-font {
  14. color: #666666;
  15. font-size: 0.75vw;
  16. }
  17. .button-search {
  18. /* margin: 2.8vh 0 0 2vh; */
  19. margin-top: 2vw;
  20. background-color: rgb(23, 145, 233);
  21. }
  22. .layui-card-header {
  23. border-bottom: 1px solid #eee;
  24. line-height: 0;
  25. }
  26. .choose {
  27. margin-left: 1.4vw;
  28. display: flex;
  29. align-items: center;
  30. justify-content: space-between;
  31. line-height: 0;
  32. }
  33. .record {
  34. float: right;
  35. margin-right: 1.8vw;
  36. text-align: right;
  37. width: 45%;
  38. font-size: 0.75vw !important;
  39. }
  40. .box-right-top {
  41. height: 8vh;
  42. font-size: 0.75VW;
  43. }
  44. .box-right-top-1 {
  45. color: rgb(23, 145, 233);
  46. font-size: 1.5vw;
  47. height: 60%;
  48. }
  49. .countdown {
  50. height: 7vh;
  51. font-size: 1vw;
  52. text-align: center;
  53. border: 1px solid #eee;
  54. }
  55. .countdown-top {
  56. height: 3vh;
  57. line-height: 3vh;
  58. border-bottom: 1px solid #eee;
  59. color: #fff;
  60. background-color: rgb(23, 145, 233);
  61. border-bottom: 1px solid rgb(23, 145, 233);
  62. font-size: 0.8vw;
  63. padding: 0;
  64. margin: 0;
  65. }
  66. .countdown-bottom {
  67. height: 4vh;
  68. line-height: 4vh;
  69. padding: 0;
  70. margin: 0;
  71. background-color: #fff;
  72. }
  73. .fund {
  74. border: 1px solid rgba(209, 209, 204, 0.719);
  75. margin-top: 1.5vh;
  76. border-radius: 0.2vw;
  77. background-color: rgb(250, 250, 250);
  78. }
  79. .fund-top {
  80. font-size: 0.8vw;
  81. font-weight: 550;
  82. }
  83. .list {
  84. font-size: 0.75vw;
  85. }
  86. .layui-form-checked[lay-skin=primary]>i {
  87. border-color: rgb(23, 145, 233) !important;
  88. background-color: rgb(23, 145, 233);
  89. }
  90. .layui-form-checkbox[lay-skin=primary]:hover>i {
  91. border-color: rgb(23, 145, 233);
  92. }
  93. .bar {
  94. position: relative;
  95. }
  96. /* .progress-box {
  97. margin-left: 4vw;
  98. } */
  99. .line {
  100. width: 50%;
  101. height: 1px;
  102. background-color: black;
  103. float: left;
  104. top: 1vh;
  105. position: relative;
  106. margin: auto;
  107. position: absolute;
  108. left: 42%;
  109. top: 50%;
  110. margin-left: 1.25vw;
  111. }
  112. /* .text-line {
  113. float: left;
  114. } */
  115. .schedule {
  116. font-size: 2vw;
  117. vertical-align: middle;
  118. }
  119. .dynamic-top {
  120. width: 6.5vw;
  121. height: 3.5vh;
  122. border: 1px solid;
  123. /* color: rgb(23, 145, 233); */
  124. line-height: 3.5vh;
  125. text-align: center;
  126. margin: 0 auto;
  127. border-radius: 0.2vw;
  128. font-weight: 600;
  129. font-size: 0.8vw;
  130. margin-top: 3vh;
  131. }
  132. .dynamic-bottom {
  133. width: 6.5vw;
  134. height: 3.5vh;
  135. border: 1px solid;
  136. /* color: rgb(23, 145, 233); */
  137. line-height: 3.5vh;
  138. text-align: center;
  139. margin: 0 auto;
  140. border-radius: 0.2vw;
  141. font-weight: 600;
  142. font-size: 0.8vw;
  143. margin-top: 1.5vh;
  144. }
  145. .dynamic span {
  146. float: right;
  147. }
  148. .dynamic-top~p {
  149. color: grey;
  150. text-align: center;
  151. }
  152. .dynamic-bottom~p {
  153. color: grey;
  154. text-align: center;
  155. margin-bottom: 3vh;
  156. }
  157. .dynamic-top1 {
  158. width: 6.5vw;
  159. height: 3.5vh;
  160. border: 1px solid;
  161. /* color: rgb(23, 145, 233); */
  162. line-height: 3.5vh;
  163. text-align: center;
  164. margin: 0 auto;
  165. border-radius: 0.2vw;
  166. font-weight: 600;
  167. font-size: 0.8vw;
  168. margin-top: 3vh;
  169. }
  170. .dynamic-top1~p {
  171. color: grey;
  172. text-align: center;
  173. }
  174. .dynamic div {
  175. float: left;
  176. }
  177. .detail {
  178. color: rgb(23, 145, 233);
  179. }
  180. .project-list {
  181. border-bottom: 1px solid #eee;
  182. }
  183. .information {
  184. width: 6vw;
  185. height: 3.5vh;
  186. line-height: 3.5vh;
  187. border-radius: 0.25vw;
  188. }
  189. .table-header {
  190. height: 4.5vh;
  191. line-height: 4.5vh;
  192. }
  193. .basic-information {
  194. /* width: 7vw; */
  195. /* height: 3.5vh; */
  196. border: 1px solid rgb(23, 145, 233);
  197. color: rgb(23, 145, 233);
  198. line-height: 3.5vh;
  199. text-align: center;
  200. border-radius: 0.2vw;
  201. font-weight: 600;
  202. font-size: 0.8vw;
  203. float: left;
  204. padding: 0 2%;
  205. }
  206. .layui-tab .layui-tab-title .layui-this {
  207. background-color: rgb(247, 251, 255);
  208. color: rgb(23, 145, 233);
  209. border-color: rgb(236, 246, 255);
  210. font-size: 0.8vw;
  211. height: 4vh;
  212. line-height: 4vh;
  213. font-weight: 600;
  214. }
  215. .layui-tab .layui-tab-title li {
  216. width: 4.5vw;
  217. font-size: 0.8vw;
  218. height: 4vh;
  219. line-height: 4vh;
  220. }
  221. .layui-tab .layui-tab-title {
  222. /* height: 4vh; */
  223. height: unset;
  224. }
  225. .layui-tab-title .layui-this:after {
  226. border-style: none;
  227. }
  228. .per {
  229. height: 4vh;
  230. width: 4vw;
  231. text-align: center;
  232. line-height: 4vh;
  233. margin-top: 65%;
  234. border-radius: 5px;
  235. border: 1.5px solid rgb(25, 144, 255);
  236. }
  237. /* .percentage-box {
  238. width: 4vw;
  239. } */
  240. .project-list-name {
  241. font-size: 0.75vw;
  242. }
  243. .h3 {
  244. font-size: 1vw;
  245. }
  246. .layui-form-checkbox>div {
  247. font-size: 0.75vw !important;
  248. }
  249. .layui-form-label {
  250. width: 110px;
  251. }
  252. .line-style {
  253. width: 100%;
  254. overflow: hidden;
  255. }
  256. .line-style-right {
  257. width: 45%;
  258. overflow: hidden;
  259. }
  260. .dynamic-line {
  261. padding: 8px 0;
  262. }
  263. /* 日志 */
  264. .log_top {
  265. padding-left: 1vw;
  266. }
  267. .log_top span {
  268. margin: 0 0.5vw;
  269. }
  270. /* 1,1,1 */
  271. .log_commentary {
  272. color: rgb(0, 176, 80);
  273. }
  274. .log_company {
  275. color: rgb(255, 33, 0);
  276. }
  277. .log_content {
  278. margin: 1vw 1.5vw 0 1.5vw;
  279. padding: 0.5vw 1vw;
  280. text-indent: 1.2em;
  281. line-height: 2.1vh;
  282. background-color: rgb(255, 255, 255);
  283. /* background-color: aqua; */
  284. border-radius: 0.5vw;
  285. box-shadow: 0.19vw 0.16vw 0.4vw 0.03vw rgba(0, 0, 0, 0.13);
  286. }
  287. /* .log_content_color {
  288. background-color: rgb(250,250,250);
  289. } */
  290. .log_content_img img {
  291. /* height: 6vw;
  292. width: 9vw; */
  293. border-radius: 0.5vw;
  294. margin: 0.3vw 0;
  295. }
  296. .log_item_top {
  297. height: 70%;
  298. overflow: scroll;
  299. }
  300. .log_item_top {
  301. height: 60vh;
  302. }
  303. .log_item_bottom {
  304. display: flex;
  305. /* height: 17vh; */
  306. /* border-top: 1px solid #eee; */
  307. margin: 0 1.5vw;
  308. /* background-color: rgb(250,250,250); */
  309. }
  310. .log_input input {
  311. width: 55vw;
  312. height: 10vh;
  313. border: #eee 1px solid;
  314. }
  315. .log_bottom_img {
  316. /* height: 5vh; */
  317. }
  318. .log_bottom_img img {
  319. height: 4vw;
  320. width: 6vw;
  321. border-radius: 0.5vw;
  322. margin: 0.5vw 0vw 0.5vw 0.3vw;
  323. }
  324. .log_bottom_left {
  325. width: 95%;
  326. margin-top: 1.5vh;
  327. }
  328. .log_bottom_right {
  329. width: 5%;
  330. }
  331. /* 上传图片 */
  332. /* .layui-upload-drag-self {
  333. background-color: #fbfdff;
  334. border: 1px dashed #c0ccda;
  335. border-radius: 6px;
  336. box-sizing: border-box;
  337. width: 6vw;
  338. height: 4vw;
  339. line-height: 4vw;
  340. vertical-align: top;
  341. display: inline-block;
  342. text-align: center;
  343. cursor: pointer;
  344. outline: 0;
  345. margin-right: 13px;
  346. float: left;
  347. } */
  348. /* .layui-input-inlines-self {
  349. position: relative;
  350. margin-left: 90px;
  351. min-height: 36px;
  352. text-align: left;
  353. }
  354. .layui-upload-drag-self .layui-icon {
  355. font-size: 28px;
  356. color: #8c939d
  357. }
  358. .layui-upload-drag-self .img {
  359. position: relative;
  360. height: 148px;
  361. width: 148px;
  362. }
  363. .layui-upload-img {
  364. width: 148px;
  365. height: 148px;
  366. border-radius: 6px;
  367. margin-top: -3px;
  368. margin-left: -2px;
  369. } */
  370. .handle {
  371. position: absolute;
  372. width: 148px;
  373. height: 100%;
  374. z-index: 100;
  375. border-radius: 6px;
  376. top: 0;
  377. background: rgba(59, 60, 61, 0.6);
  378. text-align: center;
  379. }
  380. .handle .icon-myself {
  381. z-index: 999;
  382. transition: all .3s;
  383. cursor: pointer;
  384. font-size: 25px;
  385. width: 25px;
  386. color: rgba(255, 255, 255, 0.91);
  387. margin: 0 4px;
  388. }
  389. .log_textarea {
  390. width: 60vw;
  391. height: 8vh;
  392. padding: 0.5vw;
  393. /* margin-right: 2vw; */
  394. }
  395. .log_button_img {
  396. width: 2vw;
  397. }
  398. .log_card {
  399. border: none !important;
  400. }
  401. /* 点击图片放大 */
  402. /* .content_img img {
  403. max-width: 100%;
  404. cursor: pointer;
  405. }
  406. .overlay {
  407. display: none;
  408. position: fixed;
  409. top: 0;
  410. left: 0;
  411. width: 100%;
  412. height: 100%;
  413. background-color: rgba(0, 0, 0, 0.7);
  414. justify-content: center;
  415. align-items: center;
  416. z-index: 1;
  417. }
  418. .overlay img {
  419. max-width: 90%;
  420. max-height: 90%;
  421. object-fit: contain;
  422. }
  423. .layui-card:last-child {
  424. margin-bottom: 46px;
  425. }
  426. .layui-input,.layui-form-select {
  427. display: block;
  428. width: auto;
  429. padding-right: auto;
  430. } */
  431. /* .layui-form-select{
  432. padding-right:0;
  433. } */
  434. .project-select {
  435. width: auto !important;
  436. }
  437. .layui-form-select .layui-input {
  438. padding-right: 0;
  439. text-align: left;
  440. font-size: 0.75vw;
  441. }
  442. .filelist {
  443. width: 100%;
  444. overflow: scroll;
  445. height: 8vw;
  446. justify-content: flex-start;
  447. align-content: space-between;
  448. /* flex-direction: column-reverse; */
  449. flex-wrap: wrap;
  450. display: flex;
  451. }
  452. .filelist li {
  453. padding: 0.5vw 0.7vw 0.5vw 0.7vw;
  454. white-space: nowrap;
  455. overflow: hidden;
  456. text-overflow: ellipsis;
  457. display: inline-block;
  458. border-right: 1px solid #e2e2e2;
  459. }
  460. .filelist p {
  461. margin: 3px 0 5px 0;
  462. width: 5vw;
  463. text-align: center;
  464. }
  465. .filelist:hover li {
  466. /* display: initial; */
  467. }
  468. .layui-col-md4{
  469. padding: 6px 0 !important;
  470. }
  471. .layui-col-md12{
  472. padding-left: 0 !important;
  473. }
  474. .navleft-body{
  475. height: 85vh;
  476. overflow: auto;
  477. }
  478. .video{
  479. height: 100vh;
  480. overflow: auto;
  481. }
  482. </style>
  483. {/block}
  484. <!-- 主体 -->
  485. {block name="body"}
  486. <div class="p-3">
  487. <div class="layui-row layui-col-space12">
  488. <div class="layui-col-md4 left-box layui-card">
  489. <form class="layui-form" action="" lay-filter="component-form-element">
  490. <div class="layui-card-body layui-row layui-col-space12">
  491. <div class="layui-col-md10 layui-form" style="width: 82%;">
  492. <div class="layui-card-body layui-row layui-col-space12" style="padding: 10px 0;">
  493. <div class="layui-col-md6 " style="display: flex;">
  494. <label class="layui-form-label left-box-font" style="padding: 9px 0;">
  495. 项目名称:
  496. </label>
  497. <div class="layui-input-block left-box-font">
  498. <input type="text" name="project_name" placeholder="请输入" autocomplete="off"
  499. class="layui-input " style="font-size: 0.75vw;">
  500. </div>
  501. </div>
  502. <div class="layui-col-md6" style="display: flex;">
  503. <label class="layui-form-label left-box-font" style="padding: 9px 0;">
  504. 项目状态:
  505. </label>
  506. <div class="layui-input-block project-select">
  507. <select name="project_status" id="">
  508. <option value=""></option>
  509. <option value="2">审批中</option>
  510. <option value="3">待接收</option>
  511. <option value="4">分配中</option>
  512. <option value="5">作业中</option>
  513. <option value="6">归档中</option>
  514. <option value="8">已归档</option>
  515. <option value="7">退审中</option>
  516. <option value="9">已退审</option>
  517. </select>
  518. </div>
  519. </div>
  520. <div class="layui-col-md6" style="display: flex;">
  521. <label class="layui-form-label left-box-font" style="padding: 9px 0;">
  522. 送审部门:
  523. </label>
  524. <div class="layui-input-block">
  525. <input type="text" name="sent_review_unit_name" placeholder="请输入" autocomplete="off"
  526. class="layui-input" style="font-size: 0.75vw;">
  527. </div>
  528. </div>
  529. <div class="layui-col-md6" style="display: flex;">
  530. <label class="layui-form-label left-box-font" style="padding: 9px 0;">
  531. 负责人:
  532. </label>
  533. <div class="layui-input-block">
  534. <input type="text" name="entrust_unit_name" placeholder="请输入" autocomplete="off"
  535. class="layui-input" style="font-size: 0.75vw;">
  536. </div>
  537. </div>
  538. </div>
  539. </div>
  540. <div style="display: flex;justify-content: center;">
  541. <button class="layui-btn layui-btn-warm button-search" lay-submit="" lay-filter="webform"><i
  542. class="layui-icon">&#xe615;</i></button>
  543. </div>
  544. </div>
  545. </form>
  546. <!--<div class="layui-form">
  547. <div class="layui-card-header">
  548. <div class="choose">
  549. <input type="checkbox" name="interest[write]" title="与我有关" lay-skin="primary">
  550. <input type="checkbox" name="interest[read]" title="与我部门有关" lay-skin="primary">
  551. <input type="checkbox" name="interest[code]" title="未完成" checked lay-skin="primary">
  552. <p class="record">共3条记录</p>
  553. </div>
  554. </div>
  555. </div>-->
  556. <div id="project_list" class="navleft-body">
  557. {volist name="detail" id="vo"}
  558. <div class="layui-form navleft" style="cursor: pointer;" data-id="{$vo.id}">
  559. <div class="layui-card-body">
  560. <div class="layui-card-body layui-row layui-col-space12 project-list">
  561. <div class="layui-col-md2" style="padding: 0;">
  562. <div class="layui-card-body" style="padding: 0;">
  563. {if $field.project_status == 1}
  564. <div id="main222" class="per">
  565. {switch $vo.project_status}
  566. {case 1}立项中{/case}
  567. {case 2}审批中{/case}
  568. {case 3}待接收{/case}
  569. {case 4}待分配{/case}
  570. {case 5}作业中{/case}
  571. {case 6}归档中{/case}
  572. {case 7}退审中{/case}
  573. {case 8}已归档{/case}
  574. {case 9}已退审{/case}
  575. {default /}未知
  576. {/switch}
  577. </div>
  578. {/if}
  579. </div>
  580. </div>
  581. <div class="layui-col-md10 list">
  582. <a href="JavaScript:void(0)">
  583. <div class="layui-card-body layui-row layui-col-space12" style="padding-right: 0;">
  584. {if $field.project_name == 1}
  585. <div class="layui-col-md12 h3">
  586. {$vo.project_name}
  587. </div>
  588. {/if}
  589. {if $field.review_unit}
  590. <div class="layui-col-md12">
  591. 服务单位:{$vo.review_unit_name}
  592. </div>
  593. {/if}
  594. <!-- <div class="layui-col-md4">
  595. 项目状态:
  596. {switch $vo.project_status}
  597. {case 1}立项中{/case}
  598. {case 2}审批中{/case}
  599. {case 3}待接收{/case}
  600. {case 4}待分配{/case}
  601. {case 5}作业中{/case}
  602. {case 6}归档中{/case}
  603. {case 7}退审中{/case}
  604. {case 8}已归档{/case}
  605. {case 9}已退审{/case}
  606. {default /}未知
  607. {/switch}
  608. </div> -->
  609. {if $field.operate_name == 1}
  610. <div class="layui-col-md4">
  611. 作业人:{$vo.operate_head_name}
  612. </div>
  613. {/if}
  614. {if $field.review_head == 1}
  615. <div class="layui-col-md4">
  616. 负责人:{$vo.review_head_name}
  617. </div>
  618. {/if}
  619. {if $field.engineering_type == 1}
  620. <div class="layui-col-md4">
  621. 工程类别:{$vo.engineering_type}
  622. </div>
  623. {/if}
  624. {if $field.preparation_amount == 1}
  625. <div class="layui-col-md8" style="padding-left: 0;">
  626. 编制金额:{if !empty($vo.preparation_amount)}{$vo.preparation_amount}万{/if}
  627. </div>
  628. {/if}
  629. {if $field.create_time == 1}
  630. <div class="layui-col-md4">
  631. {$vo.create_time|date="Y-m-d"} 创建
  632. </div>
  633. {/if}
  634. </div>
  635. </a>
  636. </div>
  637. </div>
  638. </div>
  639. </div>
  640. {/volist}
  641. </div>
  642. </div>
  643. <div class="layui-col-md8 video" id="projectkanban">
  644. </div>
  645. </div>
  646. </div>
  647. {/block}
  648. <!-- /脚本 -->
  649. <!-- 脚本 -->
  650. {block name="script"}
  651. <script>
  652. const moduleInit = ['tool'];
  653. function gouguInit() {
  654. var form = layui.form,tool=layui.tool,upload = layui.upload;
  655. var $ = layui.jquery,
  656. layer = layui.layer;
  657. $('.navleft').click((e) => {
  658. let projectId = $(e)[0].currentTarget.dataset.id;
  659. var cindex = layer.load(3,{shade: 0.1});
  660. $("#projectkanban").load("/admin/project/kan?id="+ projectId,'',function(){
  661. layer.close(cindex);
  662. })
  663. })
  664. $(".navleft")[0].click();
  665. var element = layui.element;
  666. element.on('tab(test-hash)', function (data) {
  667. let index = $(this).attr('data-id');
  668. console.log(index)
  669. if (index == 1) {
  670. comment()
  671. } else if (index == 2) {
  672. record(index);
  673. } else if (index == 3) {
  674. report(index);
  675. } else if (index == 4) {
  676. project_user(index)
  677. } else if (index == 5) {
  678. } else if (index == 6) {
  679. contact(index)
  680. } else if (index == 7) {
  681. }
  682. });
  683. form.on('submit(webform)', function (data) {
  684. console.log(data.field)
  685. let host=window.location.host
  686. console.log(data.field.toString())
  687. window.location.href = 'https://'+host+'/admin/project/index?project_name=' + data.field['project_name'] + '&sent_review_unit_name=' + data.field['sent_review_unit_name'] + '&entrust_unit_name=' + data.field['entrust_unit_name']+ '&project_status=' + data.field['project_status'];
  688. // tool.post("/admin/project/index", data.field, callback);
  689. return false;
  690. });
  691. //看报告
  692. $('[lay-data="readreport"]').click(function (){
  693. var id = $(this).attr('data-id');
  694. parent.layui.tool.side('/admin/project.report/view/id/' + id); // 项目id
  695. })
  696. }
  697. </script>
  698. {/block}