record-wv.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>运行记录</title>
  8. <link rel='stylesheet' href='../luckysheet/dist/plugins/plugins.css' />
  9. <link rel='stylesheet' href='../luckysheet/dist/plugins/css/pluginsCss.css' />
  10. <link rel='stylesheet' href='../luckysheet/dist/css/luckysheet.css' />
  11. <link rel='stylesheet' href='../luckysheet/dist/assets/iconfont/iconfont.css' />
  12. <link rel="stylesheet" href="../dist/css/layui.css">
  13. <style>
  14. .la-btn {
  15. position: absolute;
  16. bottom: 20px;
  17. left: 50%;
  18. margin-left: -35px
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div id="luckysheet"
  24. style="margin:0px;padding:0px;position:absolute;width:100%;height:100%;left: 0px;top: 0px;"></div>
  25. <script src="../jquery.min.js"></script>
  26. <script src="../dist/layui.js"></script>
  27. <script src="./cqcyCode.js"></script>
  28. <script src="../luckysheet/dist/luckysheet.umd.js"></script>
  29. <script src="../luckysheet/dist/plugins/js/plugin.js"></script>
  30. <script src="./echarts.js"></script>
  31. <script src="./cqcyCode.js"></script>
  32. <script src="./canvertChart.js"></script>
  33. <!-- uni 的 SDK -->
  34. <script src="./wvIP.js"></script>
  35. <script type="text/javascript" src="../luckysheet/dist/plugins/js/uni-webview-js0.0.3_index.js"></script>
  36. <script>
  37. document.addEventListener('UniAppJSBridgeReady', function() {
  38. uni.getEnv(function(res) {
  39. window.sessionName = 'device_report_index'
  40. sessionStorage.removeItem(window.sessionName)
  41. console.log('33333')
  42. const id = window.location.search.split('?id=')[1]
  43. const token = window.localStorage.getItem('C_TOKEN')
  44. $.ajax({
  45. url: "" + id,
  46. type: 'GET',
  47. beforeSend: function(xhr) {
  48. this.url = baseUrl +
  49. "/reportTable/getReportTableById?id=" +
  50. id
  51. xhr.setRequestHeader("Authorization", "Bearer " +
  52. token);
  53. xhr.setRequestHeader("token", token);
  54. },
  55. success: function(res) {
  56. const data = res.data
  57. if (res.code === 200) {
  58. // 报表数据
  59. let templateData = JSON.parse(data.reportTableData)
  60. // 报表类型
  61. let reportTableType = data.reportTableType
  62. //报表名称
  63. let reportTableName = data.reportTableName
  64. console.log(templateData)
  65. let s_data = $.extend(true, {}, templateData.sheet)
  66. delete s_data.chart
  67. const option = {
  68. container: 'luckysheet',
  69. data: [s_data],
  70. title: '报表模板',
  71. lang: 'zh',
  72. showinfobar: false,
  73. showtoolbar: false,
  74. showtoolbarConfig: {
  75. paintFormat: true, //格式刷
  76. moreFormats: true, // 单元格格式
  77. font: true, // 字体
  78. fontSize: true, // 字号大小
  79. bold: true, // 粗体 (Ctrl+B)
  80. italic: true, // 斜体 (Ctrl+I)
  81. strikethrough: true, // 删除线 (Alt+Shift+5)
  82. underline: true, // 下划线 (Alt+Shift+6)
  83. textColor: true, // 文本颜色
  84. fillColor: true, // 单元格颜色
  85. border: true, // 边框
  86. mergeCell: true, // 合并单元格
  87. horizontalAlignMode: true, // 水平对齐方式
  88. verticalAlignMode: true, // 垂直对齐方式
  89. function: true, // 公式
  90. print: false,
  91. image: true,
  92. link: true,
  93. textRotateMode: true,
  94. sortAndFilter: true
  95. },
  96. showsheetbar: false,
  97. showstatisticBar: false,
  98. sheetFormulaBar: false,
  99. allowCopy:false,
  100. allowUpdate:false,
  101. allowEdit:true,
  102. forceCalculation:true,
  103. cellRightClickConfig: {
  104. copy: false, // 复制
  105. copyAs: false, // 复制为
  106. paste: false, // 粘贴
  107. insertRow: false, // 插入行
  108. insertColumn: false, // 插入列
  109. deleteRow: false, // 删除选中行
  110. deleteColumn: false, // 删除选中列
  111. deleteCell: false, // 删除单元格
  112. hideRow: false, // 隐藏选中行和显示选中行
  113. hideColumn: false, // 隐藏选中列和显示选中列
  114. rowHeight: false, // 行高
  115. columnWidth: false, // 列宽
  116. clear: false, // 清除内容
  117. matrix: false, // 矩阵操作选区
  118. sort: false, // 排序选区
  119. filter: false, // 筛选选区
  120. chart: false, // 图表生成
  121. image: false, // 插入图片
  122. link: false, // 插入链接
  123. data: false, // 数据验证
  124. cellFormat: false // 设置单元格格式
  125. },
  126. plugins: ['chart'],
  127. hook: {
  128. cellEditBefore: function(range) {
  129. const cell = getCellData((range[0].row)[0], (range[0].column)[0])
  130. if (cell) {
  131. try {
  132. const data = JSON.parse(cell) || {}
  133. if (data && data.tableId) {
  134. return false
  135. }
  136. } catch(e) {
  137. //console.log(e)
  138. }
  139. }
  140. return false;
  141. },
  142. cellUpdateBefore: function(r, c, val) {
  143. const cell = getCellData(r, c)
  144. if (cell) {
  145. try {
  146. const data = JSON.parse(cell) || {}
  147. if (data && data.tableId) {
  148. return false
  149. }
  150. } catch(e) {
  151. //console.log(e)
  152. }
  153. }
  154. return true
  155. },
  156. cellMousedown:function(cell,position,sheet,ctx){
  157. //console.log('r='+position.r+','+'c='+position.c);
  158. //console.log(position.c);
  159. console.log(cell);
  160. },
  161. workbookCreateAfter: function() {
  162. luckysheet.setRangeShow('B1:B2', {
  163. success: () => {
  164. for (let key in templateData.chart) {
  165. //console.log(templateData.chart[key])
  166. luckysheet.showHistoryChart({
  167. chartId: key,
  168. option: templateData.chart[key].position,
  169. init: function(chart, chartId) {
  170. const colorForm = templateData.chart[key].colorForm
  171. if (colorForm.background) {
  172. templateData.chart[key].chartData.backgroundColor = colorForm.background
  173. $(`#${chartId}_c`).css('background', colorForm.background)
  174. }
  175. const xForm = templateData.chart[key].xForm;
  176. let chart_new = templateData.chart[key].chartData;
  177. if(xForm!=undefined){
  178. chart_new.xAxis[0].axisLabel.formatter = function (value) {
  179. var date = new Date(value);
  180. if(date.toString()=='Invalid Date'){
  181. return value
  182. }else{
  183. return new Date(value).format(xForm.formatter)
  184. }
  185. };
  186. }
  187. chart.setOption(chart_new, {
  188. notMerge: true
  189. })
  190. // chart.setOption(templateData.chart[key].chartData, {
  191. // notMerge: true
  192. // })
  193. if (colorForm.border) {
  194. $(`#${chartId}_c`).css('border', '1px solid ' + colorForm.border)
  195. }
  196. },
  197. })
  198. }
  199. // if(callback){
  200. // callback()
  201. // return
  202. // }
  203. }
  204. })
  205. }
  206. }
  207. }
  208. luckysheet.create(option)
  209. } else {
  210. }
  211. }
  212. })
  213. });
  214. });
  215. </script>
  216. </body>
  217. </html>