other-list.php 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. <?php
  2. session_start();
  3. if (!isset($_SESSION['loggedin'])) {
  4. header('Location: pages-signin.html');
  5. exit;
  6. }
  7. ?>
  8. <!doctype html>
  9. <html class="fixed sidebar-left-collapsed">
  10. <head>
  11. <!-- jstree CSS -->
  12. <link rel="stylesheet" href="assets/vendor/jstree/themes/default/style.css" />
  13. <!-- jstree CSS -->
  14. <!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.4/themes/default/style.min.css"> -->
  15. <?php include("bim-support-header.html"); ?>
  16. <script src="./script/js/global.js"></script>
  17. <script src="./script/js/pdfobject.min.js"></script>
  18. <script type="application/javascript">
  19. var url_href = window.location.href;
  20. var url = new URL(url_href);
  21. var type = url.searchParams.get("type");
  22. if (type === null) {
  23. window.location.href = "other-list.php?type=收費建議";
  24. }
  25. var delFavoriteList = [];
  26. var i = 0;
  27. var path = [];
  28. var categoryList = [];
  29. var categoryTable = [];
  30. var id = [];
  31. var revitVersion = [];
  32. var userName = '<?php echo $_SESSION['name']; ?>';
  33. var url_href = window.location.href;
  34. var url = new URL(url_href);
  35. var $grid;
  36. var list;
  37. pageHeader = "BIM相關資源";
  38. </script>
  39. <style>
  40. .menu-item.active {
  41. color: #0088CC;
  42. }
  43. .jstree-anchor {
  44. width: 95%;
  45. text-overflow: ellipsis;
  46. overflow: hidden;
  47. white-space: nowrap;
  48. }
  49. th {
  50. text-align: center;
  51. width: 30%;
  52. font-size: 18px;
  53. }
  54. td {
  55. text-align: center;
  56. font-size: 18px;
  57. }
  58. </style>
  59. </head>
  60. <body>
  61. <canvas id="c"></canvas>
  62. <section class="body">
  63. <!-- start: header -->
  64. <header-menu></header-menu>
  65. <!-- end: header -->
  66. <div class="inner-wrapper">
  67. <!-- start: sidebar -->
  68. <side-bar></side-bar>
  69. <!-- end: sidebar -->
  70. <section role="main" class="content-body">
  71. <header class="page-header">
  72. <h2>{{pageHeader}}</h2>
  73. </header>
  74. <!-- start: page -->
  75. <section class="content-with-menu content-with-menu-has-toolbar media-gallery">
  76. <div class="content-with-menu-container">
  77. <inner-menu>
  78. <template v-slot:inner-equipment>
  79. <other-list></other-list>
  80. </template>
  81. </inner-menu>
  82. <div class="inner-body mg-main">
  83. <div class="inner-toolbar">
  84. </div>
  85. <filter-content2></filter-content2>
  86. <div class="row">
  87. <div class="col-md-6">
  88. <section class="panel">
  89. <div class="panel-body">
  90. <h5 class="text-semibold text-dark text-uppercase">檔案下載</h5>
  91. <div id="treeAjaxHTML" style="height:400px;overflow: auto;"></div>
  92. </div>
  93. </section>
  94. <section class="panel">
  95. <div class="panel-body">
  96. <h5 class="text-semibold text-dark text-uppercase">檔案資訊</h5>
  97. <div id="fileTable" style="height:200px">
  98. <table class="table table-bordered mb-none" style="height: 100%;">
  99. <tbody>
  100. <tr>
  101. <th>檔案名稱</th>
  102. <td id="fileName"></td>
  103. </tr>
  104. <tr>
  105. <th>詳細資訊</th>
  106. <td id="fileDetail">尚未填寫</td>
  107. </tr>
  108. <tr>
  109. <th>檔案日期</th>
  110. <td id="fileDate"></td>
  111. </tr>
  112. <tr>
  113. <th>下載連結</th>
  114. <td id="fileLink"><a id="fileHerf" href="#" target="_blank"><i class="fa fa-download">檔案下載</i></a></td>
  115. </tr>
  116. </tbody>
  117. </table>
  118. </div>
  119. </div>
  120. </section>
  121. </div>
  122. <div class="col-md-6">
  123. <section class="panel">
  124. <div class="panel-body">
  125. <div id="pdfFile" style="height:720px"></div>
  126. </div>
  127. </section>
  128. </div>
  129. </div>
  130. <!-- <div class="row mg-files" data-sort-destination="" data-sort-id="media-gallery" id="content" style="position: relative; height: 720.5px;">
  131. <isotope-item v-for="item in list" v-bind:name="item.APIName" v-bind:folder="item.APIID + item.APIName" v-bind:id="item.id" v-bind:object="item.object" v-bind:usage="item.usage" v-bind:software="item.software" v-bind:detail="item.detail" v-bind:operate="item.operate" v-bind:source="item.source">
  132. </isotope-item>
  133. </div> -->
  134. </div>
  135. </div>
  136. </section>
  137. <!-- end: page -->
  138. </section>
  139. </div>
  140. </section>
  141. <script>
  142. var folder = 'Dynamo/自動化汙水管線建置';
  143. $.ajax({
  144. url: "./script/php/getPath.php",
  145. type: "GET",
  146. async: false,
  147. data: {
  148. type: type,
  149. },
  150. contentType: "application/json",
  151. dataType: "json"
  152. }).done(function(data) {
  153. var table = data.table;
  154. for (i = 0; i < table.length; i++) {
  155. listObj = {};
  156. listObj["APIName"] = table[i].APIName;
  157. if (table[i].APIID == null)
  158. table[i].APIID = '';
  159. listObj["APIID"] = table[i].APIID;
  160. listObj["id"] = table[i].id;
  161. if (table[i].object != null)
  162. table[i].object = table[i].object.replaceAll(",", " ");
  163. listObj["object"] = table[i].object;
  164. if (table[i].usage != null)
  165. table[i].usage = table[i].usage.replaceAll(",", " ");
  166. listObj["usage"] = table[i].usage;
  167. listObj["software"] = table[i].software;
  168. listObj["detail"] = table[i].detail;
  169. listObj["operate"] = table[i].operate;
  170. listObj["source"] = table[i].source;
  171. list.push(listObj);
  172. }
  173. var filter = data.objectFilter;
  174. var filterArray = [];
  175. for (i = 0; i < filter.length; i++) {
  176. filterArray = filter[i].object.split(",")
  177. for (j = 0; j < filterArray.length; j++) {
  178. objectFilter.push(filterArray[j]);
  179. }
  180. }
  181. objectFilter = [...new Set(objectFilter)];
  182. filter = data.usageFilter;
  183. for (i = 0; i < filter.length; i++) {
  184. filterArray = filter[i].usage.split(",");
  185. for (j = 0; j < filterArray.length; j++) {
  186. usageFilter.push(filterArray[j]);
  187. }
  188. }
  189. usageFilter = [...new Set(usageFilter)];
  190. vm.mount('.body');
  191. }).error(function(error) {
  192. console.log(error);
  193. });
  194. </script>
  195. <?php include("bim-support-body.html"); ?>
  196. <script>
  197. $(document).ready(function() {
  198. PDFObject.embed("./assets/null.pdf", "#pdfFile");
  199. console.log(type);
  200. $('#treeAjaxHTML').jstree({
  201. 'core': {
  202. 'themes': {
  203. 'responsive': false
  204. },
  205. 'check_callback': true,
  206. 'data': {
  207. 'url': './script/php/getBIMData.php?folder=' + type,
  208. }
  209. },
  210. 'types': {
  211. 'default': {
  212. 'icon': 'fa fa-folder'
  213. },
  214. 'file': {
  215. 'icon': 'fa fa-file-o'
  216. },
  217. 'pdf': {
  218. 'icon': 'fa fa-file-pdf-o'
  219. },
  220. 'word': {
  221. 'icon': 'fa fa-file-word-o'
  222. },
  223. 'excel': {
  224. 'icon': 'fa fa-file-excel-o'
  225. },
  226. 'ppt': {
  227. 'icon': 'fa fa-file-powerpoint-o'
  228. },
  229. 'f-open': {
  230. 'icon': 'fa fa-folder-open'
  231. },
  232. 'f-closed': {
  233. 'icon': 'fa fa-folder'
  234. }
  235. },
  236. 'plugins': ['types']
  237. }).on(
  238. 'select_node.jstree',
  239. function(event, data) {
  240. data.instance.toggle_node(data.node);
  241. /*if (data.node.text.includes(".") & !data.node.text.includes(".pdf")) {
  242. console.log(data.node);
  243. var link = document.createElement("a");
  244. link.download = data.node.text;
  245. link.href = data.node.a_attr.href;
  246. document.body.appendChild(link);
  247. link.click();
  248. document.body.removeChild(link);
  249. } else */
  250. if (data.node.text.includes(".pdf")) {
  251. PDFObject.embed(data.node.a_attr.href, "#pdfFile");
  252. } else {
  253. if (data.node.text.includes(".")) {
  254. PDFObject.embed("./assets/notPDF.pdf", "#pdfFile");
  255. }
  256. }
  257. if (data.node.text.includes(".")) {
  258. $("#fileName").empty();
  259. $("#fileName").append(data.node.text);
  260. $("#fileHerf").attr("href", data.node.a_attr.href);
  261. $("#fileDate").empty();
  262. $("#fileDate").append(data.node.a_attr.time);
  263. }
  264. }).bind('loaded.jstree', function(e, data) {
  265. // invoked after jstree has loaded
  266. /*$('.jstree-anchor').each(function(index) {
  267. if ($(this).attr('href').includes(".dll") || $(this).attr('href').includes(".dyn") || $(this).attr('href').includes(".exe") || $(this).attr('href').includes(".msi")) {
  268. folder.push($(this).attr('href'));
  269. }
  270. });
  271. if (api != null) {
  272. for (i = 0; i < api.length; i++) {
  273. var fileNames = api[i].split("/");
  274. fileName = fileNames[fileNames.length - 1];
  275. $("#apiList").append("<a download href='" + api[i] + "' id='api" + i + "'>" + fileName + "</a><br>");
  276. }
  277. }*/
  278. });
  279. $("#treeAjaxHTML").on('open_node.jstree', function(event, data) {
  280. data.instance.set_type(data.node, 'f-open');
  281. });
  282. $("#treeAjaxHTML").on('close_node.jstree', function(event, data) {
  283. data.instance.set_type(data.node, 'f-closed');
  284. });
  285. });
  286. </script>
  287. <script src="assets/vendor/jstree/jstree.js"></script>
  288. </body>
  289. </html>