main.html 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  6. <meta http-equiv="x-ua-compatible" content="ie=edge">
  7. <title>造价书-Smartcost</title>
  8. <link rel="stylesheet" href="web/css/bootstrap/bootstrap.min.css">
  9. <link rel="stylesheet" href="web/css/main.css">
  10. <link rel="stylesheet" href="web/css/font-awesome/font-awesome.min.css">
  11. <!--zTree-->
  12. <link rel="stylesheet" href="web/css/ztree/zTreeStyle.css" type="text/css">
  13. <!--SpreadJs-->
  14. <link rel="stylesheet" href="web/css/spreadjs/gc.spread.sheets.excel2013lightGray.10.0.1.css" type="text/css">
  15. <!-- jquery.contextmenu -->
  16. <link rel="stylesheet" href="/lib/jquery-contextmenu/jquery.contextMenu.css" type="text/css">
  17. <script src="lib/jquery/jquery.min.js"></script>
  18. <script src="lib/global.js"></script>
  19. <script>
  20. // 这里的变量供页面调用
  21. var userAccount = '<%- userAccount %>';
  22. var userID = '<%- userID %>';
  23. </script>
  24. </head>
  25. <body>
  26. <div class="header">
  27. <!-- <div class="top-msg clearfix">
  28. <div class="alert alert-warning mb-0 py-0" role="alert">
  29. <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  30. <span aria-hidden="true">&times;</span>
  31. </button>
  32. <strong>注意!</strong> 这是一条消息通知 <a href="#">链接</a>
  33. </div>
  34. </div> -->
  35. <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
  36. <span class="header-logo px-2">Smartcost</span>
  37. <div class="navbar-text" id="fullpath"><a href="/pm">项目管理</a><i class="fa fa-angle-right fa-fw"></i>文件夹<i class="fa fa-angle-right fa-fw"></i>建设项目<i class="fa fa-angle-right fa-fw"></i>单项工程<i class="fa fa-angle-right fa-fw"></i>单位工程</div>
  38. <div class="float-lg-right navbar-text pt-0">
  39. <div class="dropdown d-inline-block">
  40. <button class="btn btn-link btn-sm dropdown-toggle" type="button" data-toggle="dropdown"><%- userAccount %></button>
  41. <div class="dropdown-menu dropdown-menu-right">
  42. <a class="dropdown-item" href="/user/info" target="_blank">账号资料</a>
  43. <a class="dropdown-item" href="/user/buy" target="_blank">产品购买</a>
  44. <a class="dropdown-item" href="/user/set" target="_blank">偏好设置</a>
  45. </div>
  46. </div>
  47. <span class="btn btn-link btn-sm new-msg">
  48. <i class="fa fa-envelope-o" aria-hidden="true"></i>&nbsp;2
  49. </span>
  50. <a class="btn btn-link btn-sm" href="/logout">注销</a>
  51. </div>
  52. </nav>
  53. <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
  54. <ul class="nav navbar-nav px-1">
  55. <li class="nav-item">
  56. <a class="nav-link" href="#" aria-haspopup="true" aria-expanded="false"><i class="fa fa-sliders"></i> 选项</a>
  57. </li>
  58. <li class="nav-item dropdown">
  59. <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-wrench"></i> 工具</a>
  60. <div class="dropdown-menu">
  61. <a class="dropdown-item" href="#">定额库编辑器</a>
  62. <a class="dropdown-item" href="#">工料机库编辑器</a>
  63. </div>
  64. </li>
  65. <li class="nav-item dropdown">
  66. <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-question-circle-o"></i> 帮助</a>
  67. <div class="dropdown-menu">
  68. <a class="dropdown-item" href="#">帮助</a>
  69. <a class="dropdown-item" href="#">升级说明</a>
  70. <a class="dropdown-item" href="#">重庆市2008定额说明</a>
  71. <a class="dropdown-item" href="#">纵横官网</a>
  72. <a class="dropdown-item" href="#">动画教程</a>
  73. <a class="dropdown-item" href="#">联系客服</a>
  74. <a class="dropdown-item" href="#">关于</a>
  75. </div>
  76. </li>
  77. <li class="nav-item">
  78. <a class="nav-link" href="#" aria-haspopup="true" aria-expanded="false"><i class="fa fa-history"></i> 历史记录</a>
  79. </li>
  80. </ul>
  81. <form class="form-inline">
  82. <input class="form-control form-control-sm mr-1" type="text" placeholder="告诉我你想做什么">
  83. </form>
  84. </nav>
  85. </div>
  86. <div class="main">
  87. <div class="main-nav">
  88. <ul class="nav nav-tabs flex-column" role="tablist">
  89. <li class="nav-item"><a class="active" data-toggle="tab" href="#zaojiashu" role="tab">造价书</a></li>
  90. <li class="nav-item"><a data-toggle="tab" href="#gongliaoji" role="tab">工料机</a></li>
  91. <li class="nav-item"><a data-toggle="tab" href="#baobiao" role="tab">报表</a></li>
  92. </ul>
  93. </div>
  94. <div class="content">
  95. <div class="tab-content">
  96. <div class="tab-pane active" id="zaojiashu" role="tabpanel">
  97. <!--造价书-->
  98. <div class="toolsbar px-1 d-flex justify-content-between">
  99. <div class="tools-btn btn-group align-top">
  100. <a href="" class="btn btn-sm"><i class="fa fa-files-o" aria-hidden="true"></i> 复制</a>
  101. <a href="" class="btn btn-sm"><i class="fa fa-scissors" aria-hidden="true"></i> 接切</a>
  102. <a href="" class="btn btn-sm"><i class="fa fa-clipboard" aria-hidden="true"></i> 粘贴</a>
  103. <a href="javascript:void(0)" class="btn btn-sm" id="insert"><i class="fa fa-sign-in" aria-hidden="true"></i> 插入</a>
  104. <a href="javascript:void(0)" class="btn btn-sm" id="delete"><i class="fa fa-remove" aria-hidden="true"></i> 删除</a>
  105. <a href="javascript:void(0)" class="btn btn-sm" id="upLevel"><i class="fa fa-arrow-left" aria-hidden="true"></i> 升级</a>
  106. <a href="javascript:void(0)" class="btn btn-sm" id="downLevel"><i class="fa fa-arrow-right" aria-hidden="true"></i> 降级</a>
  107. <a href="javascript:void(0)" class="btn btn-sm" id="downMove"><i class="fa fa-arrow-down" aria-hidden="true"></i> 下移</a>
  108. <a href="javascript:void(0)" class="btn btn-sm" id="upMove"><i class="fa fa-arrow-up" aria-hidden="true"></i> 上移</a>
  109. </div>
  110. <div class="side-tabs">
  111. <ul class="nav nav-tabs" role="tablist">
  112. <li class="nav-item">
  113. <a class="nav-link active px-3" data-toggle="tab" href="#qd" role="tab">清单规则</a>
  114. </li>
  115. <li class="nav-item">
  116. <a class="nav-link px-3" data-toggle="tab" href="#de" role="tab" id="stdRationTab">定额库</a>
  117. </li>
  118. </ul>
  119. </div>
  120. </div>
  121. <div class="container-fluid">
  122. <div class="row">
  123. <div class="main-content col-lg-9 p-0">
  124. <div class="top-content">
  125. <div class="main-data-top" id="billsSpread"></div>
  126. </div>
  127. <div class="bottom-content">
  128. <ul class="nav nav-tabs" role="tablist">
  129. <li class="nav-item">
  130. <a class="nav-link active" data-toggle="tab" href="#gl" role="tab">工料机</a>
  131. </li>
  132. <li class="nav-item">
  133. <a class="nav-link" data-toggle="tab" href="#fzt" role="tab">附注条件</a>
  134. </li>
  135. <li class="nav-item">
  136. <a class="nav-link" data-toggle="tab" href="#fzd" role="tab">辅助定额</a>
  137. </li>
  138. <li class="nav-item">
  139. <a class="nav-link" data-toggle="tab" href="#gc" role="tab">工程量明细</a>
  140. </li>
  141. <li class="nav-item">
  142. <a class="nav-link" data-toggle="tab" href="#dj" role="tab">单价构成</a>
  143. </li>
  144. <li class="nav-item">
  145. <a class="nav-link" data-toggle="tab" href="#fx" role="tab">分项说明</a>
  146. </li>
  147. <li class="nav-item">
  148. <a class="nav-link" data-toggle="tab" href="#des" role="tab">定额说明</a>
  149. </li>
  150. </ul>
  151. <!-- Tab panes -->
  152. <div class="tab-content">
  153. <div class="tab-pane active" id="gl" role="tabpanel">
  154. <div class="main-data-bottom ovf-hidden" id="gljSpread">
  155. </div>
  156. </div>
  157. <div class="tab-pane" id="fzt" role="tabpanel">
  158. <div class="warp-p2">
  159. 附注条件的内容
  160. </div>
  161. </div>
  162. <div class="tab-pane" id="fzd" role="tabpanel">
  163. <div class="warp-p2">
  164. 辅助定额的内容
  165. </div>
  166. </div>
  167. <div class="tab-pane" id="gc" role="tabpanel">
  168. <div class="warp-p2">
  169. 工程量明细的内容
  170. </div>
  171. </div>
  172. <div class="tab-pane" id="dj" role="tabpanel">
  173. <div class="warp-p2">
  174. 单价构成的内容
  175. </div>
  176. </div>
  177. <div class="tab-pane" id="fx" role="tabpanel">
  178. <div class="warp-p2">
  179. 分项说明的内容
  180. </div>
  181. </div>
  182. <div class="tab-pane" id="des" role="tabpanel">
  183. <div class="warp-p2">
  184. 定额说明的内容
  185. </div>
  186. </div>
  187. </div>
  188. </div>
  189. </div>
  190. <div class="main-side col-lg-3 p-0">
  191. <div class="tab-content">
  192. <!--清单规则-->
  193. <div class="tab-pane active" id="qd" role="tabpanel">
  194. <div class="sidebar-tools-bar container-fluid">
  195. <div class="p-1 row">
  196. <select class="form-control form-control-sm col-6" id="stdBillsLibSelect">
  197. </select>
  198. <div class="input-group col-6">
  199. <div class="input-group-addon form-control-sm"><i class="fa fa-search" aria-hidden="true"></i></div>
  200. <input type="text" class="form-control form-control-sm" placeholder="搜索清单">
  201. </div>
  202. </div>
  203. </div>
  204. <div class="main-data-side-s" id="stdBillsSpread">
  205. </div>
  206. <div class="sidebar-bottom container-fluid">
  207. <div class="row" id="stdBillsJobTab">
  208. <div class="col-lg-6 p-0" id="stdBillsJobs"></div>
  209. <div class="col-lg-6 p-0" id="stdBillsFeatures"></div>
  210. </div>
  211. <div class="row" id="stdBillsRemarkTab">
  212. <div class="col-lg-12 p-0">
  213. <textarea class="form-control" id="stdBillsRemark" rows="8" readonly="true"></textarea>
  214. </div>
  215. </div>
  216. </div>
  217. </div>
  218. <!--定额库-->
  219. <div class="tab-pane" id="de" role="tabpanel">
  220. <div class="sidebar-tools-bar container-fluid">
  221. <div class="p-1 row">
  222. <select class="form-control form-control-sm col-6" id="stdRationLibSelect">
  223. </select>
  224. <div class="input-group col-6">
  225. <div class="input-group-addon form-control-sm"><i class="fa fa-search" aria-hidden="true"></i></div>
  226. <input type="text" class="form-control form-control-sm" placeholder="搜索定额">
  227. </div>
  228. </div>
  229. </div>
  230. <div class="main-data-side-s" id="stdRationChapter">
  231. </div>
  232. <div class="sidebar-bottom container-fluid">
  233. <div class="row">
  234. <div class="col-lg-12 p-0" id="stdSectionRations"></div>
  235. </div>
  236. </div>
  237. </div>
  238. </div>
  239. </div>
  240. </div>
  241. </div>
  242. </div>
  243. <div class="tab-pane" id="gongliaoji" role="tabpanel">
  244. <!--工料机-->
  245. <div class="toolsbar px-1">
  246. <div class="tools-btn btn-group align-top">
  247. <a href="" class="btn btn-sm"><i class="fa fa-arrow-down" aria-hidden="true"></i>下移</a>
  248. <a href="" class="btn btn-sm"><i class="fa fa-arrow-up" aria-hidden="true"></i>上移</a>
  249. <a href="" class="btn btn-sm"><i class="fa fa-arrow-left" aria-hidden="true"></i></a>
  250. <a href="" class="btn btn-sm"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
  251. <a href="" class="btn btn-sm"><i class="fa fa-undo" aria-hidden="true"></i></a>
  252. </div>
  253. </div>
  254. <div class="container-fluid">
  255. <div class="row">
  256. <div class="main-content col-lg-12 p-0">
  257. <div class="fluid-content">
  258. <div class="warp-p2">
  259. <table class="table table-sm table-bordered m-0">
  260. <thead>
  261. <tr>
  262. <th>编码</th>
  263. <th>名称</th>
  264. <th>规格型号</th>
  265. <th>单位</th>
  266. <th>类型</th>
  267. <th>人工工种</th>
  268. <th>调整系数</th>
  269. <th>总消耗量</th>
  270. <th>基价单价</th>
  271. <th>调整基价</th>
  272. <th>市场单价</th>
  273. <th>市场价合计</th>
  274. <th>是否暂估</th>
  275. <th>供货方式</th>
  276. <th>甲供数量</th>
  277. <th>出厂价</th>
  278. <th>交货方式</th>
  279. <th>... </th>
  280. </tr>
  281. </thead>
  282. <tbody>
  283. <tr>
  284. <td>00010201</td>
  285. <td>土石方综合工日</td>
  286. <td> </td>
  287. <td>工日</td>
  288. <td>人</td>
  289. <td>土石方人工</td>
  290. <td> </td>
  291. <td>100.232</td>
  292. <td>38</td>
  293. <td> </td>
  294. <td>38</td>
  295. <td>市场价合计</td>
  296. <td>是否暂估</td>
  297. <td>供货方式</td>
  298. <td>甲供数量</td>
  299. <td>出厂价</td>
  300. <td>交货方式</td>
  301. <td>... </td>
  302. </tr>
  303. </tbody>
  304. </table>
  305. </div>
  306. </div>
  307. </div>
  308. </div>
  309. </div>
  310. </div>
  311. <div class="tab-pane" id="baobiao" role="tabpanel">
  312. <!--报表-->
  313. <div class="container-fluid">
  314. <div class="row">
  315. <div class="col-lg-2 p-0">
  316. <div class="print-list">
  317. <div class="list-tools d-flex justify-content-center">
  318. <button class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#editForm"><i class="fa fa-cog"></i> 管理报表</button>
  319. </div>
  320. <div class="form-list">
  321. <ul id="treeDemo" class="ztree"></ul>
  322. </div>
  323. </div>
  324. </div>
  325. <div class="col-lg-10 p-0">
  326. <div class="toolsbar">
  327. <div class="print-toolsbar">
  328. <div class="panel">
  329. <div class="panel-body">
  330. <button class="btn btn-secondary btn-sm" type="button">
  331. <i class="fa fa-print"></i><br>
  332. 打印 <span id="checkCount" class="badge badge-primary">5</span>
  333. </button>
  334. </div>
  335. </div>
  336. <div class="panel">
  337. <div class="panel-body">
  338. <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
  339. <div class="btn-group" role="group">
  340. <button id="btnGroupDrop1" type="button" class="btn btn-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  341. 纵向
  342. </button>
  343. <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
  344. <a class="dropdown-item" href="#">横向</a>
  345. </div>
  346. </div>
  347. <div class="btn-group" role="group">
  348. <button id="btnGroupDrop1" type="button" class="btn btn-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  349. A4
  350. </button>
  351. <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
  352. <a class="dropdown-item" href="#">A3</a>
  353. </div>
  354. </div>
  355. </div>
  356. </div>
  357. <div class="panel-foot text-muted">
  358. 预览设置
  359. </div>
  360. </div>
  361. <div class="panel">
  362. <div class="panel-body">
  363. <div class="btn-group" role="group">
  364. <button type="button" class="btn btn-secondary btn-sm">-</button>
  365. <a class="btn btn-secondary btn-sm" data-toggle="tooltip" data-placement="bottom" title="重置默认大小">1000%</a>
  366. <button type="button" class="btn btn-secondary btn-sm">+</button>
  367. </div>
  368. </div>
  369. <div class="panel-foot text-muted">
  370. 缩放
  371. </div>
  372. </div>
  373. <div class="panel">
  374. <div class="panel-body">
  375. <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
  376. <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#paper"><i class="fa fa-file-o"></i> 纸张</button>
  377. <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#format"><i class="fa fa-bold"></i> 格式</button>
  378. <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#content"><i class="fa fa-file-text-o"></i> 内容</button>
  379. </div>
  380. </div>
  381. <div class="panel-foot text-muted">
  382. 报表设置
  383. </div>
  384. </div>
  385. </div>
  386. </div>
  387. <div class="print-view poj-list">
  388. <div class="pageContainer">
  389. <div class="page">
  390. <img src="web/img/baobiao.png">
  391. </div>
  392. <div class="page">
  393. <img src="web/img/baobiao.png">
  394. </div>
  395. <div class="page">
  396. <img src="web/img/baobiao.png">
  397. </div>
  398. <div class="page">
  399. <img src="web/img/baobiao.png">
  400. </div>
  401. </div>
  402. </div>
  403. </div>
  404. </div>
  405. </div>
  406. <!--报表的弹窗-->
  407. <!--1弹出纸张-->
  408. <div class="modal fade" id="paper" data-backdrop="static">
  409. <div class="modal-dialog" role="document">
  410. <div class="modal-content">
  411. <div class="modal-header">
  412. <h5 class="modal-title">纸张</h5>
  413. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  414. <span aria-hidden="true">&times;</span>
  415. </button>
  416. </div>
  417. <div class="modal-body">
  418. </div>
  419. <div class="modal-footer">
  420. <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
  421. <a href="" class="btn btn-primary">确定</a>
  422. </div>
  423. </div>
  424. </div>
  425. </div>
  426. <!--2弹出页面-->
  427. <div class="modal fade" id="format" data-backdrop="static">
  428. <div class="modal-dialog" role="document">
  429. <div class="modal-content">
  430. <div class="modal-header">
  431. <h5 class="modal-title">格式</h5>
  432. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  433. <span aria-hidden="true">&times;</span>
  434. </button>
  435. </div>
  436. <div class="modal-body">
  437. </div>
  438. <div class="modal-footer">
  439. <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
  440. <a href="" class="btn btn-primary">确定</a>
  441. </div>
  442. </div>
  443. </div>
  444. </div>
  445. <!--3弹出格式-->
  446. <div class="modal fade" id="content" data-backdrop="static">
  447. <div class="modal-dialog" role="document">
  448. <div class="modal-content">
  449. <div class="modal-header">
  450. <h5 class="modal-title">内容</h5>
  451. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  452. <span aria-hidden="true">&times;</span>
  453. </button>
  454. </div>
  455. <div class="modal-body">
  456. </div>
  457. <div class="modal-footer">
  458. <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
  459. <a href="" class="btn btn-primary">确定</a>
  460. </div>
  461. </div>
  462. </div>
  463. </div>
  464. </div>
  465. </div>
  466. </div>
  467. </div>
  468. <!-- JS. -->
  469. <script type="text/javascript">
  470. autoFlashHeight();
  471. </script>
  472. <script src="lib/tether/tether.min.js"></script>
  473. <script src="lib/bootstrap/bootstrap.min.js"></script>
  474. <script type="text/javascript" src="/lib/bootstrap/bootstrap-select.min.js"></script>
  475. <script type="text/javascript" src="/lib/jquery-contextmenu/jquery.contextMenu.js"></script>
  476. <script type="text/javascript" src="/lib/jquery-contextmenu/jquery.ui.position.js"></script>
  477. <!-- Common -->
  478. <script type="text/javascript" src="/public/web/common_ajax.js"></script>
  479. <!--报表 zTree -->
  480. <script type="text/javascript" src="lib/ztree/jquery.ztree.core.js"></script>
  481. <script type="text/javascript" src="lib/ztree/jquery.ztree.excheck.js"></script>
  482. <!-- SpreadJs -->
  483. <script type="text/javascript" src="lib/spreadjs/sheets/gc.spread.sheets.all.10.0.1.min.js"></script>
  484. <script>GC.Spread.Sheets.LicenseKey = "559432293813965#A0y3iTOzEDOzkjMyMDN9UTNiojIklkI1pjIEJCLi4TPB9mM5AFNTd4cvZ7SaJUVy3CWKtWYXx4VVhjMpp7dYNGdx2ia9sEVlZGOTh7NRlTUwkWR9wEV4gmbjBDZ4ElR8N7cGdHVvEWVBtCOwIGW0ZmeYVWVr3mI0IyUiwCMzETN8kzNzYTM0IicfJye&Qf35VfiEzRwEkI0IyQiwiIwEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIyNyMzM5ADI5ADNwcTMwIjI0ICdyNkIsIibj9SbvNmL4N7bjRnch56ciojIz5GRiwiI8+Y9sWY9QmZ0Jyp96uL9v6L0wap9biY9qiq95q197Wr9g+89iojIh94Wiqi";</script>
  485. <!-- Model -->
  486. <script type="text/javascript" src="web/main/js/models/mainConsts.js"></script>
  487. <script type="text/javascript" src="web/main/js/models/project.js"></script>
  488. <script type="text/javascript" src="web/main/js/models/bills.js"></script>
  489. <script type="text/javascript" src="web/main/js/models/ration.js"></script>
  490. <script type="text/javascript" src="web/main/js/models/glj.js"></script>
  491. <script type="text/javascript" src="public/web/idTree.js"></script>
  492. <script type="text/javascript" src="web/main/js/models/cache_tree.js"></script>
  493. <script type="text/javascript" src="/test/tmp_data/data_15690.js"></script>
  494. <!-- Controller -->
  495. <script type="text/javascript" src="public/web/tree_sheet_controller.js"></script>
  496. <script type="text/javascript" src="public/web/tree_sheet_helper.js"></script>
  497. <script type="text/javascript" src="/web/scripts/sheetDataHelper.js"></script>
  498. <!-- Test Data -->
  499. <script type="text/javascript" src="test/tmp_data/bills_grid_setting.js"></script>
  500. <!-- view -->
  501. <script type="text/javascript" src="web/main/js/main_ajax.js"></script>
  502. <script type="text/javascript" src="web/main/js/main.js"></script>
  503. <script type="text/javascript" src="/web/main/js/views/std_bills_lib.js"></script>
  504. <script type="text/javascript" src="/web/main/js/views/std_ration_lib.js"></script>
  505. <script type="text/javascript" src="/public/web/urlUtil.js"></script>
  506. <SCRIPT type="text/javascript">
  507. <!--
  508. var setting = {
  509. view: {
  510. selectedMulti: false
  511. },
  512. check: {
  513. enable: true
  514. },
  515. data: {
  516. simpleData: {
  517. enable: true
  518. }
  519. },
  520. callback: {
  521. onCheck: onCheck
  522. }
  523. };
  524. var zNodes =[
  525. { id:1, pId:0, name:"随意勾选 1", open:true},
  526. { id:11, pId:1, name:"随意勾选 1-1"},
  527. { id:12, pId:1, name:"随意勾选 1-2", open:true},
  528. { id:121, pId:12, name:"随意勾选 1-2-1", checked:true},
  529. { id:122, pId:12, name:"随意勾选 1-2-2"},
  530. { id:123, pId:12, name:"随意勾选 1-2-3"},
  531. { id:13, pId:1, name:"随意勾选 1-3"},
  532. { id:2, pId:0, name:"随意勾选 2", open:true},
  533. { id:21, pId:2, name:"随意勾选 2-1"},
  534. { id:22, pId:2, name:"随意勾选 2-2", open:true},
  535. { id:221, pId:22, name:"随意勾选 2-2-1", checked:true},
  536. { id:222, pId:22, name:"随意勾选 2-2-2"},
  537. { id:223, pId:22, name:"随意勾选 2-2-3"},
  538. { id:23, pId:2, name:"随意勾选 2-3", checked:true}
  539. ];
  540. var clearFlag = false;
  541. function onCheck(e, treeId, treeNode) {
  542. count();
  543. if (clearFlag) {
  544. clearCheckedOldNodes();
  545. }
  546. }
  547. function clearCheckedOldNodes() {
  548. var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
  549. nodes = zTree.getChangeCheckedNodes();
  550. for (var i=0, l=nodes.length; i<l; i++) {
  551. nodes[i].checkedOld = nodes[i].checked;
  552. }
  553. }
  554. function count() {
  555. var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
  556. checkCount = zTree.getCheckedNodes(true).length;
  557. $("#checkCount").text(checkCount);
  558. }
  559. function createTree() {
  560. $.fn.zTree.init($("#treeDemo"), setting, zNodes);
  561. count();
  562. }
  563. $(document).ready(function(){
  564. createTree();
  565. });
  566. //-->
  567. </SCRIPT>
  568. <script type="text/javascript" src="web/main/js/gljView.js"></script>
  569. </body>
  570. <script>
  571. var project;
  572. var controller;
  573. var billsSpread;
  574. $(document).ready(function () {
  575. GC.Spread.Common.CultureManager.culture("zh-cn");
  576. billsSpread = new GC.Spread.Sheets.Workbook($('#billsSpread')[0], { sheetCount: 1 });
  577. billsSpread.options.tabStripVisible = false;
  578. billsSpread.options.scrollbarMaxAlign = true;
  579. billsSpread.getActiveSheet().selectionPolicy(GC.Spread.Sheets.SelectionPolicy.single);
  580. // For Test
  581. /*datas.forEach(function (data) {
  582. data.fees = [];
  583. data.fees.push({fieldName: 'labour', unitFee: '1', totalFee: '2', tenderUnitFee: '3', tenderTotalFee: '4'});
  584. data.flags = [];
  585. data.flags.push({fieldName: 'isPartGather', flag: true});
  586. });
  587. drawing_data.forEach(function (data) {
  588. data.fees = [];
  589. data.fees.push({fieldName: 'machine', unitFee: '5', totalFee: '6', tenderUnitFee: '7', tenderTotalFee: '8'});
  590. data.flags = [];
  591. data.flags.push({fieldName: 'isPartGather', flag: false});
  592. });*/
  593. project = PROJECT.createNew(scUrlUtil.GetQueryString('project'), null/* to do: userID*/);
  594. project.loadDatas(function (err) {
  595. if (!err) {
  596. controller = TREE_SHEET_CONTROLLER.createNew(project.mainTree, billsSpread.getActiveSheet(), BillsGridSetting);
  597. controller.showTreeData();
  598. controller.bind('refreshBaseActn', function (tree) {
  599. var setButtonValid = function (valid, btn) {
  600. if (valid) {
  601. btn.removeClass('disabled');
  602. } else {
  603. btn.addClass('disabled');
  604. }
  605. };
  606. setButtonValid(tree.selected && tree.selected.canUpLevel(), $('#upLevel'));
  607. setButtonValid(tree.selected && tree.selected.canDownLevel(), $('#downLevel'));
  608. setButtonValid(tree.selected && tree.selected.canUpMove(), $('#upMove'));
  609. setButtonValid(tree.selected && tree.selected.canDownMove(), $('#downMove'));
  610. setButtonValid(tree.selected ? true : false, $('#delete'));
  611. });
  612. gljView.showDatas(project.GLJ.datas);
  613. // alert('GLJDatas1:' + objTest(project.GLJ.datas[0]));
  614. }
  615. else {
  616. }
  617. });
  618. $.contextMenu({
  619. selector: '#billsSpread',
  620. build: function ($trigger, e) {
  621. var target = SheetDataHelper.safeRightClickSelection($trigger, e, billsSpread);
  622. controller.setTreeSelected(controller.tree.items[target.row]);
  623. return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
  624. },
  625. items: {
  626. "insertBills": {
  627. name: "插入清单",
  628. icon: 'fa-sign-in',
  629. disabled: function () {
  630. return project.mainTree.selected ? project.mainTree.selected.sourceType !== project.Bills.getSourceType() : false;
  631. }
  632. },
  633. "insertRation": {
  634. name: "插入定额",
  635. icon: 'fa-sign-in',
  636. disabled: function () {
  637. var selected = project.mainTree.selected;
  638. if (selected) {
  639. if (selected.sourceType === project.Ration.getSourceType()) {
  640. return false;
  641. } else if (selected.sourceType === project.Bills.getSourceType()) {
  642. return selected.source.children.length !== 0;
  643. };
  644. } else {
  645. return true;
  646. }
  647. }
  648. },
  649. "insertLJ": {
  650. name: "插入量价",
  651. icon: 'fa-sign-in',
  652. disabled: function () {
  653. var selected = project.mainTree.selected;
  654. if (selected) {
  655. if (selected.sourceType === project.Ration.getSourceType()) {
  656. return false;
  657. } else if (selected.sourceType === project.Bills.getSourceType()) {
  658. return selected.source.children.length !== 0;
  659. };
  660. } else {
  661. return true;
  662. }
  663. }
  664. }
  665. }
  666. });
  667. /*CommonAjax.post('/bills/getBills', {}, function (bills) {
  668. project.Bills.loadDatas(bills);
  669. project.Ration.loadDatas([]);
  670. //project.Rations.loadDatas(drawing_data);
  671. project.loadMainTree();
  672. controller = TREE_SHEET_CONTROLLER.createNew(project.mainTree, billsSpread.getActiveSheet(), BillsGridSetting);
  673. //controller = TREE_SHEET_CONTROLLER.createNew(project.Bills.tree, billsSpread.getActiveSheet(), BillsGridSetting);
  674. controller.showTreeData();
  675. controller.bind('refreshBaseActn', function (tree) {
  676. var showButton = function (show, btn) {
  677. if (show) {
  678. btn.show();
  679. } else {
  680. btn.hide();
  681. }
  682. };
  683. showButton(tree.selected && tree.selected.canUpLevel(), $('#upLevel'));
  684. showButton(tree.selected && tree.selected.canDownLevel(), $('#downLevel'));
  685. showButton(tree.selected && tree.selected.canUpMove(), $('#upMove'));
  686. showButton(tree.selected && tree.selected.canDownMove(), $('#downMove'));
  687. showButton(tree.selected ? true : false, $('#delete'));
  688. });
  689. });*/
  690. $('#insert').click(function () {
  691. var selected = controller.tree.selected;
  692. var newSource = null, newNode = null, sels = billsSpread.getActiveSheet().getSelections();
  693. if (!selected || selected.sourceType === project.Bills.getSourceType()) {
  694. newSource = project.Bills.tree.insert(selected ? selected.source.getParentID() : -1, selected ? selected.source.getNextSiblingID() : -1);
  695. newNode = project.mainTree.insert(selected.getParentID(), selected.getNextSiblingID());
  696. } else if (selected.sourceType === project.Ration.getSourceType()) {
  697. } else if (selected.sourceType === project.GLJ.getSourceType()) {
  698. }
  699. if (newNode) {
  700. newNode.source = newSource;
  701. newNode.sourceType = selected ? selected.sourceType : project.Bills.getSourceType();
  702. if (newNode.sourceType === project.Bills.getSourceType()) {
  703. newNode.data = newSource.data;
  704. } else {
  705. newNode.data = newSource;
  706. }
  707. TREE_SHEET_HELPER.massOperationSheet(controller.sheet, function () {
  708. controller.sheet.addRows(newNode.serialNo(), 1);
  709. TREE_SHEET_HELPER.refreshTreeNodeData(controller.setting, controller.sheet, [newNode], false);
  710. controller.setTreeSelected(newNode);
  711. controller.sheet.setSelection(newNode.serialNo(), sels[0].col, 1, 1);
  712. controller.sheet.showRow(newNode.serialNo(), GC.Spread.Sheets.VerticalPosition.center)
  713. });
  714. }
  715. });
  716. $('#delete').click(function () {
  717. var selected = controller.tree.selected;
  718. if (selected) {
  719. if (selected.sourceType === project.Bills.getSourceType()) {
  720. project.Bills.delete(selected.source.getID());
  721. controller.delete();
  722. } else if (selected.sourceType === project.Rations.getSourceType()) {
  723. project.Ration.delete(selected.source);
  724. controller.delete();
  725. };
  726. }
  727. });
  728. $('#upLevel').click(function () {
  729. console.log(project.Bills.tree.getInsertData(project.Bills.tree.selected.getParentID(), project.Bills.tree.selected.getNextSiblingID()));
  730. var selected = controller.tree.selected;
  731. if (selected && selected.sourceType === project.Bills.getSourceType()) {
  732. selected.source.upLevel();
  733. controller.upLevel();
  734. }
  735. });
  736. $('#downLevel').click(function () {
  737. var selected = controller.tree.selected;
  738. if (selected && selected.sourceType === project.Bills.getSourceType()) {
  739. selected.source.upLevel();
  740. controller.downLevel();
  741. }
  742. });
  743. $('#upMove').click(function () {
  744. var selected = controller.tree.selected;
  745. if (selected) {
  746. if (selected.sourceType === project.Bills.getSourceType()) {
  747. selected.source.upLevel();
  748. controller.upMove();
  749. } else if (selected.sourceType === project.Rations.getSourceType()) {
  750. // to Do
  751. controller.upMove();
  752. }
  753. }
  754. });
  755. $('#downMove').click(function () {
  756. var selected = controller.tree.selected;
  757. if (selected) {
  758. if (selected.sourceType === project.Bills.getSourceType()) {
  759. selected.source.downLevel();
  760. controller.downMove();
  761. } else if (selected.sourceType === project.Rations.getSourceType()) {
  762. // to Do
  763. controller.downMove();
  764. }
  765. }
  766. });
  767. });
  768. </script>
  769. </html>