main.html 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790
  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="/lib/bootstrap/css/bootstrap.min.css">
  9. <link rel="stylesheet" href="/web/building_saas/css/main.css">
  10. <link rel="stylesheet" href="/lib/font-awesome/font-awesome.min.css">
  11. <!--zTree-->
  12. <link rel="stylesheet" href="/lib/ztree/css/zTreeStyle.css" type="text/css">
  13. <!--SpreadJs-->
  14. <link rel="stylesheet" href="/lib/spreadjs/sheets/css/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="/web/building_saas/js/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 px-3" href="javascript:void(0)" id = 'stdBillsTab' relaPanel="#qd">清单规则</a>
  114. </li>
  115. <li class="nav-item">
  116. <a class="nav-link px-3" href="javascript:void(0)" id="stdRationTab" relaPanel="#de">定额库</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-12 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-0 p-0">
  191. <div class="tab-content">
  192. <!--清单规则-->
  193. <div class="tab-pane" id="qd">
  194. <div class="tools-bar-height-q 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" id="stdBillsSearch">
  199. <input type="text" class="form-control form-control-sm" placeholder="搜索清单">
  200. <span class="input-group-btn">
  201. <button class="btn btn-secondary btn-sm" type="button"><i class="fa fa-search" aria-hidden="true"></i></button>
  202. </span>
  203. </div>
  204. <!--搜索结果窗体-->
  205. <div class="side-search-box col-12 p-2" id="stdBillsSearchResult" style="display: none;">
  206. <div class="d-flex justify-content-between">
  207. <span id = 'stdBillsSearchResultCount'>搜索结果:5</span>
  208. <a class="btn btn-secondary btn-sm" href="javascript:void(0);" id="nextStdBills">查找下一条</a>
  209. <a title="关闭搜索" class="btn btn-link btn-sm" href="javascript:void(0);" id="closeSearchStdBills"><i class="fa fa-remove" aria-hidden="true"></i></a>
  210. </div>
  211. </div>
  212. </div>
  213. </div>
  214. <div class="main-data-side-q" id="stdBillsSpread">
  215. </div>
  216. <div class="sidebar-bottom container-fluid">
  217. <div class="row" id="stdBillsJobTab">
  218. <div class="col-lg-6 p-0" id="stdBillsJobs"></div>
  219. <div class="col-lg-6 p-0" id="stdBillsFeatures"></div>
  220. </div>
  221. <div class="row" id="stdBillsRemarkTab">
  222. <div class="col-lg-12 p-0">
  223. <textarea class="form-control" id="stdBillsRemark" rows="8" readonly="true"></textarea>
  224. </div>
  225. </div>
  226. </div>
  227. </div>
  228. <!--定额库-->
  229. <div class="tab-pane" id="de">
  230. <div class="tools-bar-height-d container-fluid">
  231. <div class="p-1 row">
  232. <select class="form-control form-control-sm col-6" id="stdRationLibSelect">
  233. </select>
  234. <div class="input-group col-6">
  235. <input type="text" class="form-control form-control-sm" placeholder="搜索定额" value="" id="rationSearchKeyword">
  236. <span class="input-group-btn">
  237. <button class="btn btn-secondary btn-sm" type="button" id="rationSearch"><i class="fa fa-search" aria-hidden="true"></i></button>
  238. </span>
  239. </div>
  240. <!--搜索结果窗体-->
  241. <div class="side-search-box col-12 p-0" id="rationSearchResult" style="display: none;">
  242. </div>
  243. </div>
  244. </div>
  245. <div class="main-data-side-d" id="stdRationChapter">
  246. </div>
  247. <div class="sidebar-bottom container-fluid">
  248. <div class="row">
  249. <div class="col-lg-12 p-0" id="stdSectionRations"></div>
  250. </div>
  251. </div>
  252. </div>
  253. </div>
  254. </div>
  255. </div>
  256. </div>
  257. </div>
  258. <div class="tab-pane" id="gongliaoji" role="tabpanel">
  259. <!--工料机-->
  260. <div class="toolsbar px-1">
  261. <div class="tools-btn btn-group align-top">
  262. <a href="" class="btn btn-sm"><i class="fa fa-arrow-down" aria-hidden="true"></i>下移</a>
  263. <a href="" class="btn btn-sm"><i class="fa fa-arrow-up" aria-hidden="true"></i>上移</a>
  264. <a href="" class="btn btn-sm"><i class="fa fa-arrow-left" aria-hidden="true"></i></a>
  265. <a href="" class="btn btn-sm"><i class="fa fa-arrow-right" aria-hidden="true"></i></a>
  266. <a href="" class="btn btn-sm"><i class="fa fa-undo" aria-hidden="true"></i></a>
  267. </div>
  268. </div>
  269. <div class="container-fluid">
  270. <div class="row">
  271. <div class="main-content col-lg-12 p-0">
  272. <div class="fluid-content">
  273. <div class="warp-p2">
  274. <table class="table table-sm table-bordered m-0">
  275. <thead>
  276. <tr>
  277. <th>编码</th>
  278. <th>名称</th>
  279. <th>规格型号</th>
  280. <th>单位</th>
  281. <th>类型</th>
  282. <th>人工工种</th>
  283. <th>调整系数</th>
  284. <th>总消耗量</th>
  285. <th>基价单价</th>
  286. <th>调整基价</th>
  287. <th>市场单价</th>
  288. <th>市场价合计</th>
  289. <th>是否暂估</th>
  290. <th>供货方式</th>
  291. <th>甲供数量</th>
  292. <th>出厂价</th>
  293. <th>交货方式</th>
  294. <th>... </th>
  295. </tr>
  296. </thead>
  297. <tbody>
  298. <tr>
  299. <td>00010201</td>
  300. <td>土石方综合工日</td>
  301. <td> </td>
  302. <td>工日</td>
  303. <td>人</td>
  304. <td>土石方人工</td>
  305. <td> </td>
  306. <td>100.232</td>
  307. <td>38</td>
  308. <td> </td>
  309. <td>38</td>
  310. <td>市场价合计</td>
  311. <td>是否暂估</td>
  312. <td>供货方式</td>
  313. <td>甲供数量</td>
  314. <td>出厂价</td>
  315. <td>交货方式</td>
  316. <td>... </td>
  317. </tr>
  318. </tbody>
  319. </table>
  320. </div>
  321. </div>
  322. </div>
  323. </div>
  324. </div>
  325. </div>
  326. <div class="tab-pane" id="baobiao" role="tabpanel">
  327. <!--报表-->
  328. <div class="container-fluid">
  329. <div class="row">
  330. <div class="col-lg-2 p-0">
  331. <div class="print-list">
  332. <div class="list-tools d-flex justify-content-center">
  333. <button class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#editForm"><i class="fa fa-cog"></i> 管理报表</button>
  334. </div>
  335. <div class="form-list">
  336. <ul id="treeDemo" class="ztree"></ul>
  337. </div>
  338. </div>
  339. </div>
  340. <div class="col-lg-10 p-0">
  341. <div class="toolsbar">
  342. <div class="print-toolsbar">
  343. <div class="panel">
  344. <div class="panel-body">
  345. <button class="btn btn-secondary btn-sm" type="button">
  346. <i class="fa fa-print"></i><br>
  347. 打印 <span id="checkCount" class="badge badge-primary">5</span>
  348. </button>
  349. </div>
  350. </div>
  351. <div class="panel">
  352. <div class="panel-body">
  353. <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
  354. <div class="btn-group" role="group">
  355. <button id="btnGroupDrop1" type="button" class="btn btn-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  356. 纵向
  357. </button>
  358. <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
  359. <a class="dropdown-item" href="#">横向</a>
  360. </div>
  361. </div>
  362. <div class="btn-group" role="group">
  363. <button id="btnGroupDrop1" type="button" class="btn btn-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  364. A4
  365. </button>
  366. <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
  367. <a class="dropdown-item" href="#">A3</a>
  368. </div>
  369. </div>
  370. </div>
  371. </div>
  372. <div class="panel-foot text-muted">
  373. 预览设置
  374. </div>
  375. </div>
  376. <div class="panel">
  377. <div class="panel-body">
  378. <div class="btn-group" role="group">
  379. <button type="button" class="btn btn-secondary btn-sm">-</button>
  380. <a class="btn btn-secondary btn-sm" data-toggle="tooltip" data-placement="bottom" title="重置默认大小">1000%</a>
  381. <button type="button" class="btn btn-secondary btn-sm">+</button>
  382. </div>
  383. </div>
  384. <div class="panel-foot text-muted">
  385. 缩放
  386. </div>
  387. </div>
  388. <div class="panel">
  389. <div class="panel-body">
  390. <div class="btn-group" role="group" aria-label="Button group with nested dropdown">
  391. <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#paper"><i class="fa fa-file-o"></i> 纸张</button>
  392. <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#format"><i class="fa fa-bold"></i> 格式</button>
  393. <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" data-target="#content"><i class="fa fa-file-text-o"></i> 内容</button>
  394. </div>
  395. </div>
  396. <div class="panel-foot text-muted">
  397. 报表设置
  398. </div>
  399. </div>
  400. </div>
  401. </div>
  402. <div class="print-view poj-list">
  403. <div class="pageContainer">
  404. <div class="page">
  405. <img src="/web/building_saas/img/baobiao.png">
  406. </div>
  407. <div class="page">
  408. <img src="/web/building_saas/img/baobiao.png">
  409. </div>
  410. <div class="page">
  411. <img src="/web/building_saas/img/baobiao.png">
  412. </div>
  413. <div class="page">
  414. <img src="/web/building_saas/img/baobiao.png">
  415. </div>
  416. </div>
  417. </div>
  418. </div>
  419. </div>
  420. </div>
  421. <!--报表的弹窗-->
  422. <!--1弹出纸张-->
  423. <div class="modal fade" id="paper" data-backdrop="static">
  424. <div class="modal-dialog" role="document">
  425. <div class="modal-content">
  426. <div class="modal-header">
  427. <h5 class="modal-title">纸张</h5>
  428. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  429. <span aria-hidden="true">&times;</span>
  430. </button>
  431. </div>
  432. <div class="modal-body">
  433. </div>
  434. <div class="modal-footer">
  435. <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
  436. <a href="" class="btn btn-primary">确定</a>
  437. </div>
  438. </div>
  439. </div>
  440. </div>
  441. <!--2弹出页面-->
  442. <div class="modal fade" id="format" data-backdrop="static">
  443. <div class="modal-dialog" role="document">
  444. <div class="modal-content">
  445. <div class="modal-header">
  446. <h5 class="modal-title">格式</h5>
  447. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  448. <span aria-hidden="true">&times;</span>
  449. </button>
  450. </div>
  451. <div class="modal-body">
  452. </div>
  453. <div class="modal-footer">
  454. <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
  455. <a href="" class="btn btn-primary">确定</a>
  456. </div>
  457. </div>
  458. </div>
  459. </div>
  460. <!--3弹出格式-->
  461. <div class="modal fade" id="content" data-backdrop="static">
  462. <div class="modal-dialog" role="document">
  463. <div class="modal-content">
  464. <div class="modal-header">
  465. <h5 class="modal-title">内容</h5>
  466. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  467. <span aria-hidden="true">&times;</span>
  468. </button>
  469. </div>
  470. <div class="modal-body">
  471. </div>
  472. <div class="modal-footer">
  473. <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
  474. <a href="" class="btn btn-primary">确定</a>
  475. </div>
  476. </div>
  477. </div>
  478. </div>
  479. </div>
  480. </div>
  481. </div>
  482. </div>
  483. <!-- JS. -->
  484. <script type="text/javascript">
  485. autoFlashHeight();
  486. </script>
  487. <script src="/lib/tether/tether.min.js"></script>
  488. <script src="/lib/bootstrap/bootstrap.min.js"></script>
  489. <script type="text/javascript" src="/lib/bootstrap/bootstrap-select.min.js"></script>
  490. <script type="text/javascript" src="/lib/jquery-contextmenu/jquery.contextMenu.js"></script>
  491. <script type="text/javascript" src="/lib/jquery-contextmenu/jquery.ui.position.js"></script>
  492. <!-- Common -->
  493. <script type="text/javascript" src="/public/web/common_ajax.js"></script>
  494. <script type="text/javascript" src="/public/web/url_util.js"></script>
  495. <!--报表 zTree -->
  496. <script type="text/javascript" src="/lib/ztree/jquery.ztree.core.js"></script>
  497. <script type="text/javascript" src="/lib/ztree/jquery.ztree.excheck.js"></script>
  498. <!-- SpreadJs -->
  499. <script type="text/javascript" src="/lib/spreadjs/sheets/gc.spread.sheets.all.10.0.1.min.js"></script>
  500. <script>GC.Spread.Sheets.LicenseKey = "559432293813965#A0y3iTOzEDOzkjMyMDN9UTNiojIklkI1pjIEJCLi4TPB9mM5AFNTd4cvZ7SaJUVy3CWKtWYXx4VVhjMpp7dYNGdx2ia9sEVlZGOTh7NRlTUwkWR9wEV4gmbjBDZ4ElR8N7cGdHVvEWVBtCOwIGW0ZmeYVWVr3mI0IyUiwCMzETN8kzNzYTM0IicfJye&Qf35VfiEzRwEkI0IyQiwiIwEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIyNyMzM5ADI5ADNwcTMwIjI0ICdyNkIsIibj9SbvNmL4N7bjRnch56ciojIz5GRiwiI8+Y9sWY9QmZ0Jyp96uL9v6L0wap9biY9qiq95q197Wr9g+89iojIh94Wiqi";</script>
  501. <!-- Model -->
  502. <script type="text/javascript" src="/web/building_saas/main/js/models/main_consts.js"></script>
  503. <script type="text/javascript" src="/web/building_saas/main/js/models/project.js"></script>
  504. <script type="text/javascript" src="/web/building_saas/main/js/models/bills.js"></script>
  505. <script type="text/javascript" src="/web/building_saas/main/js/models/ration.js"></script>
  506. <script type="text/javascript" src="/web/building_saas/main/js/models/glj.js"></script>
  507. <script type="text/javascript" src="/public/web/id_tree.js"></script>
  508. <script type="text/javascript" src="/web/building_saas/main/js/models/cache_tree.js"></script>
  509. <!-- Controller -->
  510. <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_controller.js"></script>
  511. <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_helper.js"></script>
  512. <script type="text/javascript" src="/public/web/sheet/sheet_data_helper.js"></script>
  513. <!-- Test Data -->
  514. <script type="text/javascript" src="/test/tmp_data/bills_grid_setting.js"></script>
  515. <!-- view -->
  516. <script type="text/javascript" src="/web/building_saas/main/js/main_ajax.js"></script>
  517. <script type="text/javascript" src="/web/building_saas/main/js/main.js"></script>
  518. <script type="text/javascript" src="/web/building_saas/main/js/controllers/project_controller.js"></script>
  519. <script type="text/javascript" src="/web/building_saas/main/js/views/side_tools.js"></script>
  520. <script type="text/javascript" src="/web/building_saas/main/js/views/std_bills_lib.js"></script>
  521. <script type="text/javascript" src="/web/building_saas/main/js/views/std_ration_lib.js"></script>
  522. <SCRIPT type="text/javascript">
  523. <!--
  524. var setting = {
  525. view: {
  526. selectedMulti: false
  527. },
  528. check: {
  529. enable: true
  530. },
  531. data: {
  532. simpleData: {
  533. enable: true
  534. }
  535. },
  536. callback: {
  537. onCheck: onCheck
  538. }
  539. };
  540. var zNodes =[
  541. { id:1, pId:0, name:"随意勾选 1", open:true},
  542. { id:11, pId:1, name:"随意勾选 1-1"},
  543. { id:12, pId:1, name:"随意勾选 1-2", open:true},
  544. { id:121, pId:12, name:"随意勾选 1-2-1", checked:true},
  545. { id:122, pId:12, name:"随意勾选 1-2-2"},
  546. { id:123, pId:12, name:"随意勾选 1-2-3"},
  547. { id:13, pId:1, name:"随意勾选 1-3"},
  548. { id:2, pId:0, name:"随意勾选 2", open:true},
  549. { id:21, pId:2, name:"随意勾选 2-1"},
  550. { id:22, pId:2, name:"随意勾选 2-2", open:true},
  551. { id:221, pId:22, name:"随意勾选 2-2-1", checked:true},
  552. { id:222, pId:22, name:"随意勾选 2-2-2"},
  553. { id:223, pId:22, name:"随意勾选 2-2-3"},
  554. { id:23, pId:2, name:"随意勾选 2-3", checked:true}
  555. ];
  556. var clearFlag = false;
  557. function onCheck(e, treeId, treeNode) {
  558. count();
  559. if (clearFlag) {
  560. clearCheckedOldNodes();
  561. }
  562. }
  563. function clearCheckedOldNodes() {
  564. var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
  565. nodes = zTree.getChangeCheckedNodes();
  566. for (var i=0, l=nodes.length; i<l; i++) {
  567. nodes[i].checkedOld = nodes[i].checked;
  568. }
  569. }
  570. function count() {
  571. var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
  572. checkCount = zTree.getCheckedNodes(true).length;
  573. $("#checkCount").text(checkCount);
  574. }
  575. function createTree() {
  576. $.fn.zTree.init($("#treeDemo"), setting, zNodes);
  577. count();
  578. }
  579. $(document).ready(function(){
  580. createTree();
  581. });
  582. //-->
  583. </SCRIPT>
  584. <script type="text/javascript" src="/web/building_saas/main/js/views/gljView.js"></script>
  585. </body>
  586. <script>
  587. var project;
  588. var controller;
  589. var billsSpread;
  590. $(document).ready(function () {
  591. GC.Spread.Common.CultureManager.culture("zh-cn");
  592. billsSpread = new GC.Spread.Sheets.Workbook($('#billsSpread')[0], { sheetCount: 1 });
  593. billsSpread.options.tabStripVisible = false;
  594. billsSpread.options.scrollbarMaxAlign = true;
  595. billsSpread.options.allowUserDragDrop = false;
  596. billsSpread.getActiveSheet().selectionPolicy(GC.Spread.Sheets.SelectionPolicy.single);
  597. // For Test
  598. /*datas.forEach(function (data) {
  599. data.fees = [];
  600. data.fees.push({fieldName: 'labour', unitFee: '1', totalFee: '2', tenderUnitFee: '3', tenderTotalFee: '4'});
  601. data.flags = [];
  602. data.flags.push({fieldName: 'isPartGather', flag: true});
  603. });
  604. drawing_data.forEach(function (data) {
  605. data.fees = [];
  606. data.fees.push({fieldName: 'machine', unitFee: '5', totalFee: '6', tenderUnitFee: '7', tenderTotalFee: '8'});
  607. data.flags = [];
  608. data.flags.push({fieldName: 'isPartGather', flag: false});
  609. });*/
  610. project = PROJECT.createNew(scUrlUtil.GetQueryString('project'), userID);
  611. project.loadDatas(function (err) {
  612. if (!err) {
  613. controller = TREE_SHEET_CONTROLLER.createNew(project.mainTree, billsSpread.getActiveSheet(), BillsGridSetting);
  614. controller.showTreeData();
  615. controller.bind('refreshBaseActn', function (tree) {
  616. var setButtonValid = function (valid, btn) {
  617. if (valid) {
  618. btn.removeClass('disabled');
  619. } else {
  620. btn.addClass('disabled');
  621. }
  622. };
  623. setButtonValid(tree.selected && tree.selected.canUpLevel(), $('#upLevel'));
  624. setButtonValid(tree.selected && tree.selected.canDownLevel(), $('#downLevel'));
  625. setButtonValid(tree.selected && tree.selected.canUpMove(), $('#upMove'));
  626. setButtonValid(tree.selected && tree.selected.canDownMove(), $('#downMove'));
  627. setButtonValid(tree.selected ? true : false, $('#delete'));
  628. });
  629. gljView.showDatas(project.GLJ.datas);
  630. // alert('GLJDatas1:' + objTest(project.GLJ.datas[0]));
  631. }
  632. else {
  633. }
  634. });
  635. $.contextMenu({
  636. selector: '#billsSpread',
  637. build: function ($trigger, e) {
  638. var target = SheetDataHelper.safeRightClickSelection($trigger, e, billsSpread);
  639. controller.setTreeSelected(controller.tree.items[target.row]);
  640. return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
  641. },
  642. items: {
  643. "insertBills": {
  644. name: "插入清单",
  645. icon: 'fa-sign-in',
  646. disabled: function () {
  647. return project.mainTree.selected ? project.mainTree.selected.sourceType !== project.Bills.getSourceType() : false;
  648. },
  649. callback: function (key, opt) {
  650. ProjectController.addBills(project, controller);
  651. }
  652. },
  653. "insertRation": {
  654. name: "插入定额",
  655. icon: 'fa-sign-in',
  656. disabled: function () {
  657. var selected = project.mainTree.selected;
  658. if (selected) {
  659. if (selected.sourceType === project.Ration.getSourceType()) {
  660. return false;
  661. } else if (selected.sourceType === project.Bills.getSourceType()) {
  662. return selected.source.children.length !== 0;
  663. };
  664. } else {
  665. return true;
  666. }
  667. },
  668. callback: function (key, opt) {
  669. ProjectController.addRation(project, controller);
  670. }
  671. },
  672. "insertLJ": {
  673. name: "插入量价",
  674. icon: 'fa-sign-in',
  675. disabled: function () {
  676. var selected = project.mainTree.selected;
  677. if (selected) {
  678. if (selected.sourceType === project.Ration.getSourceType()) {
  679. return false;
  680. } else if (selected.sourceType === project.Bills.getSourceType()) {
  681. return selected.source.children.length !== 0;
  682. };
  683. } else {
  684. return true;
  685. }
  686. }
  687. },
  688. "spr1": '--------',
  689. "delete": {
  690. name: '删除',
  691. icon: 'fa-remove',
  692. disabled: function () {
  693. var selected = project.mainTree.selected;
  694. return !selected;
  695. },
  696. callback: function () {
  697. var selected = controller.tree.selected;
  698. if (selected) {
  699. if (selected.sourceType === project.Bills.getSourceType()) {
  700. project.Bills.deleteBills(selected.source);
  701. controller.delete();
  702. };
  703. }
  704. }
  705. }
  706. }
  707. });
  708. $('#insert').click(function () {
  709. var selected = controller.tree.selected;
  710. if (!selected || selected.sourceType === project.Bills.getSourceType()) {
  711. ProjectController.addBills(project, controller);
  712. } else if (selected.sourceType === project.Ration.getSourceType()) {
  713. ProjectController.addRation(project, controller);
  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.deleteBills(selected.source);
  721. controller.delete();
  722. } else if (selected.sourceType === project.Ration.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, pre, preSerialNo;
  745. if (selected) {
  746. if (selected.sourceType === project.Bills.getSourceType()) {
  747. selected.source.upLevel();
  748. controller.upMove();
  749. } else if (selected.sourceType === project.Ration.getSourceType()) {
  750. project.Ration.changePos(selected.source, selected.preSibling.source);
  751. controller.upMove();
  752. }
  753. }
  754. });
  755. $('#downMove').click(function () {
  756. var selected = controller.tree.selected, next, nextSerialNo;
  757. if (selected) {
  758. if (selected.sourceType === project.Bills.getSourceType()) {
  759. selected.source.downLevel();
  760. controller.downMove();
  761. } else if (selected.sourceType === project.Ration.getSourceType()) {
  762. project.Ration.changePos(selected.source, selected.nextSibling.source);
  763. controller.downMove();
  764. }
  765. }
  766. });
  767. });
  768. </script>
  769. </html>