Aucune description

floorManage.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. /**
  2. * 楼层管理
  3. * */
  4. var table = $('#table1'); //左边表格
  5. var tableRight = $('#table2');
  6. var bs; //字典标识
  7. $(document).ready(function() {
  8. $('.tool_bars').authorizeButton();
  9. initTable(); //左边表格
  10. initTableRight(bs); //右边表格
  11. /*搜索*/
  12. $("#sc_btns").click(function() {
  13. initTable();
  14. })
  15. //项目信息
  16. GetEquipName($('#projectid'))
  17. })
  18. //加载左边的数据表格
  19. function initTable() {
  20. //先销毁表格
  21. table.bootstrapTable('destroy');
  22. //初始化表格,动态从服务器加载数据
  23. table.bootstrapTable({
  24. method: "get", //使用get请求到服务器获取数据
  25. url: huayi.config.callcenter_url + "configurationapi/api/FloorManage/getbuildlistsbypage", //获取数据的Servlet地址
  26. contentType: "application/x-www-form-urlencoded",
  27. striped: true,
  28. striped: true, //表格显示条纹
  29. pagination: true, //启动分页
  30. pageSize: 10, //每页显示的记录数
  31. pageNumber: 1, //当前第几页
  32. pageList: [10, 15, 20, 30, 50, 100], //记录数可选列表
  33. search: false, //是否启用查询
  34. showColumns: false, //显示下拉框勾选要显示的列
  35. showRefresh: false, //显示刷新按钮
  36. sidePagination: "server", //表示服务端请求
  37. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  38. //设置为limit可以获取limit, offset, search, sort, order
  39. queryParamsType: "undefined",
  40. queryParams: function queryParams(params) { //设置查询参数
  41. var param = {
  42. pageindex: params.pageNumber,
  43. pagesize: params.pageSize,
  44. keyword: $("#KeyWord").val(),
  45. projectid: $('#projectid').val()
  46. };
  47. return param;
  48. },
  49. onLoadSuccess: function(data) { //加载成功时执行
  50. //layer.msg("加载成功");
  51. var newDataL = {};
  52. newDataL.state = data.state;
  53. newDataL.message = data.message;
  54. newDataL.rows = data.data.rows;
  55. newDataL.total = data.data.total;
  56. $('#table1').bootstrapTable('load', newDataL);
  57. $('.tool_downs').authorizeOperateButton();
  58. },
  59. onLoadError: function() { //加载失败时执行
  60. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  61. }
  62. });
  63. }
  64. /*获取选中行对象*/
  65. table.on("click-row.bs.table", function(e, row, ele) {
  66. $('.success').removeClass('success'); //去除之前选中的行的,选中样式
  67. $(ele).addClass('success'); //添加当前选中的 success样式用于区别
  68. bs = row.id;
  69. initTableRight(bs); //加载右侧的表格数据
  70. });
  71. function oper(val, row) {
  72. return '<div class="pull-right tool_downs">' +
  73. '<a class="del" title="删除" style="margin-right:5px;" authorize="yes" id="HY_deleteL_' + row.id + '" onclick="btn_deleteL(\'' + row.id + '\')"><i class="shanChu"></i></a>' +
  74. '<a class="xg" title="修改" authorize="yes" id="HY_editL_' + row.id + '" onclick="btn_editL(\'' + row.id + '\')"><i class="xiuGai"></i></a>' +
  75. '</div>' +
  76. '<div class="pull-left">' + val + '</div>'
  77. }
  78. function setCodeLeft(val, row, index) {
  79. var page = table.bootstrapTable("getPageCode");
  80. return page.pageSize * (page.pageNumber - 1) + index + 1;
  81. }
  82. //左侧添加
  83. function btn_addL() {
  84. layer.open({
  85. type: 2,
  86. content: "template/addOrEditBuild.html",
  87. title: '添加楼信息',
  88. area: ['50%', '95%'], //宽高
  89. });
  90. }
  91. //左侧删除
  92. function btn_deleteL(ids) {
  93. layer.confirm('确定删除选中记录?', {
  94. icon: 7,
  95. btn: ['是', '否'] //按钮
  96. }, function() {
  97. /*发送请求*/
  98. $.post(huayi.config.callcenter_url + "configurationapi/api/FloorManage/deletebuild", {
  99. ids: ids
  100. }, function(result) {
  101. result = JSON.parse(result);
  102. if(result.state.toLowerCase() == "success") {
  103. layer.msg("删除成功");
  104. $('#table1').bootstrapTable('refresh');
  105. }
  106. })
  107. });
  108. }
  109. //左侧修改
  110. function btn_editL(ids) {
  111. layer.open({
  112. type: 2,
  113. content: "template/addOrEditBuild.html?ids=" + ids,
  114. title: '修改楼信息',
  115. area: ['50%', '95%'], //宽高
  116. });
  117. }
  118. /*
  119. 右侧开始*****************************************************
  120. * */
  121. //右侧 楼层表格
  122. function initTableRight(ids) {
  123. //先销毁表格
  124. $('#table2').bootstrapTable('destroy');
  125. //初始化表格,动态从服务器加载数据
  126. $("#table2").bootstrapTable({
  127. method: "get", //使用get请求到服务器获取数据
  128. url: huayi.config.callcenter_url + "configurationapi/api/FloorManage/getlistsbypage", //获取数据的Servlet地址
  129. contentType: "application/x-www-form-urlencoded",
  130. striped: true, //表格显示条纹
  131. pagination: true, //启动分页
  132. pageSize: 10, //每页显示的记录数
  133. pageNumber: 1, //当前第几页
  134. pageList: [10, 20, 50, 100], //记录数可选列表
  135. search: false, //是否启用查询
  136. showColumns: false, //显示下拉框勾选要显示的列
  137. showRefresh: false, //显示刷新按钮
  138. sidePagination: "server", //表示服务端请求
  139. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  140. //设置为limit可以获取limit, offset, search, sort, order
  141. queryParamsType: "undefined",
  142. queryParams: function queryParams(params) { //设置查询参数
  143. var param = {
  144. pageindex: params.pageNumber,
  145. pagesize: params.pageSize,
  146. buildid: ids
  147. };
  148. return param;
  149. },
  150. onLoadSuccess: function(data) { //加载成功时执行
  151. //layer.msg("加载成功");
  152. var newData = {};
  153. newData.state = data.state;
  154. newData.message = data.message;
  155. newData.rows = data.data.rows;
  156. newData.total = data.data.total;
  157. $('#table2').bootstrapTable('load', newData);
  158. $('.codeBox').hide();
  159. $('.tool_downs').authorizeOperateButton();
  160. },
  161. onLoadError: function() { //加载失败时执行
  162. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  163. }
  164. });
  165. }
  166. /* 楼层 删除提示*/
  167. function btn_deleteR() {
  168. var ids = $.map($('#table2').bootstrapTable('getSelections'),
  169. function(row) {
  170. return row.id;
  171. });
  172. /*判断长度*/
  173. if(ids.length <= 0) {
  174. layer.confirm('没有可删除的选项?', {
  175. icon: 7,
  176. btn: ['确定'] //按钮
  177. });
  178. return;
  179. }
  180. removeR(ids)
  181. }
  182. function removeR(ids) {
  183. layer.confirm('确定删除选中记录?', {
  184. icon: 7,
  185. btn: ['是', '否'] //按钮
  186. }, function() {
  187. /*发送请求*/
  188. $.post(huayi.config.callcenter_url + "configurationapi/api/FloorManage/delete", {
  189. ids: ids
  190. }, function(result) {
  191. result = JSON.parse(result);
  192. if(result.state.toLowerCase() == "success") {
  193. layer.msg("删除成功");
  194. $('#table2').bootstrapTable('refresh');
  195. }
  196. })
  197. });
  198. }
  199. /* 楼层增加弹框*/
  200. function btn_addR() {
  201. if(bs) {
  202. layer.open({
  203. type: 2,
  204. content: "template/addFloorManage.html?floorId=" + bs,
  205. title: '添加楼层信息',
  206. area: ['50%', '95%'], //宽高
  207. });
  208. } else {
  209. layer.confirm('请选择楼信息!', {
  210. icon: 7,
  211. btn: ['确定']
  212. });
  213. return;
  214. }
  215. }
  216. /* 楼层修改弹窗*/
  217. function btn_editR(ids) {
  218. if(bs) {
  219. layer.open({
  220. type: 2,
  221. content: "template/addFloorManage.html?ids=" + ids + "&floorId=" + bs,
  222. title: '修改楼层信息',
  223. area: ['50%', '95%'], //宽高
  224. });
  225. } else {
  226. layer.confirm('请选择楼信息!', {
  227. icon: 7,
  228. btn: ['确定']
  229. });
  230. return;
  231. }
  232. }
  233. //楼层 格式化操作
  234. function formatterOperate(val, row) {
  235. var str = '<ul class="tool_downs">' +
  236. '<li><a class="aBtn" authorize="yes" id="HY_editR_' + row.id + '" onclick="btn_editR(\'' + row.id + '\')">编辑</a><li>' +
  237. '<li><a class="aBtn" authorize="yes" id="HY_deleteR_' + row.id + '" onclick="removeR(\'' + row.id + '\')">删除</a><li>' +
  238. '<li><a class="aBtn" authorize="yes" id="HY_seeQR_' + row.id + '" onclick="btn_seeQR(\'' + row.id + '\', \''+ row.floorname +'\', \''+ row.remark +'\',\''+ row.projectname +'\')">查看二维码</a><li>' +
  239. '<li><a class="aBtn" authorize="yes" id="HY_exportQR_' + row.id + '" onclick="btn_exportQR(\'' + row.id + '\')">导出二维码</a><li>' +
  240. '</ul>' +
  241. '<div class="codeBox" id="codeBox_' + row.id + '">'+
  242. '<input type="hidden" id="qrCode_' + row.id + '" />' +
  243. // '<p class="code_title">需维修请微信扫码</p>'+
  244. '<p class="code_title">请微信扫码</p>'+
  245. '<p style="font-size: 12px; font-family:微软雅黑; color: #000;margin-top: 2px;margin-bottom: 10px;letter-spacing: 0px;">(首次扫码时请先关注公众号后再进行扫码)</p>'+
  246. '<div id="codeHtml" id="codeHtml_' + row.id + '" class="codeHtml">'+
  247. '<div id="code_' + row.id + '"></div>'+
  248. '</div>'+
  249. '<p style="font-size: 18px; color: #000000; font-family: 微软雅黑; font-weight: bold; padding: 0; margin: 16px auto 0 auto; width: 230px; text-align: justify; height: 22px; line-height: 22px;">'+ row.projectname +
  250. '<i style="display: inline-block; width: 100%"></i>'+
  251. '</p>'+
  252. '<p style="font-size: 16px; color: #333333; font-family: 微软雅黑; text-align: center; width: 230px; padding: 0; margin: 0 auto 5px auto;">技术支持</p>'+
  253. // '<img src="../img/floor_logo.png" class="logo_img">'+
  254. '<p class="promptMsg">'+
  255. '<span class="line">'+ row.floorname + '&nbsp;&nbsp;&nbsp;&nbsp;' + row.remark +'</span>'+
  256. '</p>'+
  257. '</div>';
  258. return str;
  259. }
  260. //楼层 查看二维码
  261. function btn_seeQR(ids, floorName, remark, proname) {
  262. layer.open({
  263. type: 2,
  264. content: "template/seeFloorQRcode.html?ids=" + ids + "&floorName=" + floorName + "&remark=" + remark + "&proname=" + proname,
  265. title: '查看二维码',
  266. area: ['50%', '99%'], //宽高
  267. });
  268. }
  269. // 楼层导出二维码
  270. function btn_exportQR(ids) {
  271. $('.codeBox').show();
  272. var index = layer.load();
  273. if($.isArray(ids)) {
  274. var zip = new JSZip();
  275. $.each(ids, function(i, v) {
  276. getQcodes(v);
  277. html2canvas($('#codeBox_' + v))
  278. .then(function(canvas) {
  279. var context = canvas.getContext('2d');
  280. // 【重要】关闭抗锯齿
  281. context.mozImageSmoothingEnabled = false;
  282. context.webkitImageSmoothingEnabled = false;
  283. context.msImageSmoothingEnabled = false;
  284. context.imageSmoothingEnabled = false;
  285. if(canvas.msToBlob) { //IE9+浏览器
  286. var blob = canvas.msToBlob();
  287. zip.file("floorQRcode_" + v + ".png", blob, {
  288. type: 'blob'
  289. });
  290. } else { //firefox,chrome
  291. // 【重要】默认转化的格式为png,也可设置为其他格式
  292. var imgEl = Canvas2Image.convertToImage(canvas, 380, 410, "png"); //转成图片
  293. //imgURL = zip.folder("");//可以自定义文件夹
  294. zip.file("floorQRcode_" + v + ".png", $(imgEl).attr("src").substring(22), {
  295. base64: true
  296. });
  297. }
  298. })
  299. .then(function() {
  300. if(ids.length == zip.file(/^floorQRcode/).length) {
  301. zip.generateAsync({
  302. type: "blob"
  303. }).then(function(content) {
  304. //console.log(content);
  305. // see FileSaver.js
  306. layer.close(index);
  307. saveAs(content, "报修二维码.zip");
  308. $('.codeBox').hide();
  309. }, function(err) {
  310. $('.codeBox').hide();
  311. layer.confirm(err, {
  312. btn: ['确定'] //按钮
  313. });
  314. return;
  315. });
  316. }
  317. });
  318. });
  319. } else {
  320. getQcodes(ids);
  321. html2canvas($('#codeBox_' + ids)).then(function(canvas) {
  322. var context = canvas.getContext('2d');
  323. // 【重要】关闭抗锯齿
  324. context.mozImageSmoothingEnabled = false;
  325. context.webkitImageSmoothingEnabled = false;
  326. context.msImageSmoothingEnabled = false;
  327. context.imageSmoothingEnabled = false;
  328. layer.close(index);
  329. if(canvas.msToBlob) { //IE9+浏览器
  330. var blob = canvas.msToBlob();
  331. window.navigator.msSaveBlob(blob, "报修二维码.png");
  332. $('.codeBox').hide();
  333. } else { //firefox,chrome
  334. Canvas2Image.saveAsImage(canvas, 380, 410, "png", "报修二维码"); //保存图片
  335. $('.codeBox').hide();
  336. }
  337. });
  338. }
  339. }
  340. // 楼层批量导出二维码
  341. function btn_exportQRs() {
  342. var ids = $.map($('#table2').bootstrapTable('getSelections'),
  343. function(row) {
  344. return row.id;
  345. });
  346. /*判断长度*/
  347. if(ids.length <= 0) {
  348. layer.confirm('请选择楼层', {
  349. icon: 7,
  350. btn: ['确定'] //按钮
  351. });
  352. return;
  353. }
  354. btn_exportQR(ids);
  355. }
  356. // 楼层获取二维码
  357. function getQcodes(ids) {
  358. var qrUrl = "http://wechat.nuodajituan.com/index.html?menucode=KSBX&id=" + ids + "&type=1"; //楼层
  359. $("#qrCode_" + ids).val(qrUrl);
  360. $('#code_' + ids).html('');
  361. var qrcode = new QRCode(document.getElementById("code_" + ids), {
  362. width: 230,
  363. height: 230,
  364. });
  365. var elText = document.getElementById("qrCode_" + ids);
  366. qrcode.makeCode(elText.value);
  367. }
  368. //项目信息
  369. function GetEquipName(obj) {
  370. obj.empty();
  371. obj.append('<option selected="selected" value="">请选择项目名称</option>');
  372. $.getJSON(huayi.config.callcenter_url + "equipmentapi/api/ProjectInfo/getlistdrop", function(data) {
  373. if(data.state.toLowerCase() == "success") {
  374. var content = data.data;
  375. $(content).each(function(i, n) {
  376. $("<option value='" + n.id + "'>" + n.text + "</option>").appendTo(obj);
  377. })
  378. obj.selectpicker('refresh');
  379. }
  380. })
  381. }