property.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. var pageNo = 1;
  2. var totalPages = 0;
  3. //设备类型列表
  4. getListDataAjax();
  5. //获取设备类型列表 ajax请求
  6. function getListDataAjax(queryParam = {}, pageNo = 1) {
  7. queryParam.pageNo = pageNo;
  8. // queryParam.pageSize = 4;
  9. ajaxRequest(PROPERTY_LIST, "POST", queryParam, function(result) {
  10. let data = result.pageList;
  11. let items = '';
  12. if (result.totalCount > 0) {
  13. data.forEach(function(item, key) {
  14. items += "<tr>" +
  15. "<td class='status' data-user='" + JSON.stringify(item) + "' data-id=" + item.register + "></td>" +
  16. "<td>" + item.facilityNo + "</td>" +
  17. "<td>" + item.facilityName + "</td>" +
  18. "<td>" + item.facilityType + "</td>" +
  19. "<td>" + item.facilityModel + "</td>" +
  20. "<td>" + item.man + "</td>" +
  21. "<td>" + item.purchase + "</td>" +
  22. "<td>" + item.addrs + "</td>" +
  23. "<td>" + getFormatDate(item.buyTime) + "</td>" +
  24. "<td>" + item.buyNo + "</td>" +
  25. "<td>" + item.invoice + "</td>" +
  26. "<td><img src='" + item.qrurl + "' class='enlargeImg'><div class='imgBox'></div</td>" +
  27. "</tr>"
  28. })
  29. }
  30. $('#dataList').html(items);
  31. totalPages = result.totalPages;
  32. $('#totalPage').html(totalPages); //总共多少页
  33. $('#dataTotal').html(result.totalCount); //总共多少条数据
  34. $('#currentPage').val(pageNo); //当前页面
  35. let pageFrom = (pageNo - 1) * result.pageSize + 1; //开始
  36. let pageTo = result.pageNo * result.pageSize; //结束
  37. pageTo = pageTo > result.totalCount ? result.totalCount : pageTo;
  38. $('#pageFrom').html(pageFrom);
  39. $('#pageTo').html(pageTo);
  40. // 无数据时
  41. if (!data.length) {
  42. $('.pager.has-data').hide()
  43. $('.pager.no-data').show()
  44. } else {
  45. $('.pager.has-data').show()
  46. $('.pager.no-data').hide()
  47. }
  48. if (pageNo < totalPages) {
  49. $('#nextPageButton,#lastPageButton').removeClass('disabled');
  50. } else {
  51. $('#nextPageButton,#lastPageButton').addClass('disabled');
  52. }
  53. if (pageNo === 1) {
  54. $('#firstPageButton,#prevPageButton').addClass('disabled');
  55. } else {
  56. $('#firstPageButton,#prevPageButton').removeClass('disabled');
  57. }
  58. }, function(errorMsg) {
  59. alert("请求数据失败!");
  60. })
  61. }
  62. //按钮搜索
  63. $('#buttonClick').on('click', function() {
  64. pageNo = 1;
  65. getListDataAjax(getSearchParamObj());
  66. })
  67. //拼接搜索条件
  68. function getSearchParamObj() {
  69. let queryParam = {};
  70. let facilityName = $('#facilityName').val();
  71. let addrs = $('#addrs').val()
  72. queryParam.facilityName = facilityName;
  73. queryParam.addrs = addrs;
  74. return queryParam;
  75. }
  76. //分页操作
  77. $('#firstPageButton').on('click', function() {
  78. pageNo = 1;
  79. getListDataAjax(getSearchParamObj(), 1);
  80. })
  81. $('#lastPageButton').on('click', function() {
  82. pageNo = totalPages;
  83. getListDataAjax(getSearchParamObj(), pageNo);
  84. })
  85. $('#prevPageButton').on('click', function() {
  86. pageNo -= 1;
  87. getListDataAjax(getSearchParamObj(), pageNo);
  88. })
  89. $('#nextPageButton').on('click', function() {
  90. pageNo += 1;
  91. getListDataAjax(getSearchParamObj(), pageNo);
  92. })
  93. //重置表单
  94. $('.reset').click(resetForm)
  95. //重置表单
  96. function resetForm() {
  97. pageNo = 1;
  98. $("#facilityName").val("");
  99. $("#addrs").val("");
  100. getListDataAjax(getSearchParamObj());
  101. }
  102. //类别下拉
  103. getTypeList()
  104. //类别下拉 ajax请求
  105. function getTypeList() {
  106. ajaxRequest(FACILITY_TYPE_LIST, "POST", {}, function(result) {
  107. let data = result.data;
  108. let items = '';
  109. data.forEach(function(item, key) {
  110. items += `<option value="${item.id}">${item.facilityTypeName}</option>`
  111. })
  112. $('#getTypeList').append(items);
  113. }, function(errorMsg) {
  114. alert("请求数据失败!");
  115. })
  116. }
  117. //单位下拉
  118. getCompanyList()
  119. function getCompanyList() {
  120. ajaxRequest(COMPANY_LIST, "POST", {}, function(result) {
  121. let data = result.data;
  122. let items = '';
  123. data.forEach(function(item, key) {
  124. items += `<option value="${item.ownerId}">${item.ownerName}</option>`
  125. })
  126. $('#getCompanyList').append(items);
  127. $('#getCompanyList2').append(items);
  128. }, function(errorMsg) {
  129. alert("请求数据失败!");
  130. })
  131. }
  132. // 公司与部门联动
  133. linkDep('#getCompanyList')
  134. linkDep('#getCompanyList2')
  135. function linkDep(element) {
  136. $(element).on('change', function() {
  137. //获取公司id
  138. let companyName = $(this).find('option:selected').val();
  139. ajaxRequest(COMPANY_LIST, "POST", { "ownerId": companyName }, function(result) {
  140. let companyDepartmentItems = '<option value="">请选择</option>';
  141. let departmentObj = result.data[0].child;
  142. departmentObj.forEach(function(item, key) {
  143. companyDepartmentItems += `<option value="${item.departmentId}">${item.departmentName}</option>`
  144. })
  145. $('#getDepartmentList').html(companyDepartmentItems);
  146. $('#getDepartmentList2').html(companyDepartmentItems);
  147. }, function(errorMsg) {
  148. alert("请求数据失败!");
  149. })
  150. })
  151. }
  152. // 导出 start
  153. $('.export').click(getDataExport)
  154. function getDataExport() {
  155. // 输出base64编码
  156. const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
  157. ajaxRequest(PROPERTY_EXPORT, "POST", {}, function(result) {
  158. let data = result.data;
  159. let newData = [];
  160. data.forEach(function(item, index) {
  161. newData.push({ facilityNo: item.facilityNo, facilityName: item.facilityName, facilityType: item.facilityType, facilityModel: item.facilityModel, man: item.man, purchase: item.purchase, addrs: item.addrs, buyTime: getFormatDate(item.buyTime), buyNo: item.buyNo, invoice: item.invoice })
  162. });
  163. let str = '<tr style="text-align:center"><th>资产编号</th><th>资产名称</th><th>资产类型</th><th>设施型号</th><th>负责人</th><th>购入方式</th><th>存放地点</th><th>购入日期</th><th>购买编号</th><th>发票号</th></tr>';
  164. // 循环遍历,每行加入tr标签,每个单元格加td标签
  165. for (let i = 0; i < newData.length; i++) {
  166. str += '<tr style="text-align:center">';
  167. for (const key in newData[i]) {
  168. // 增加\t为了不让表格显示科学计数法或者其他格式
  169. str += `<td>${ newData[i][key] + '\t'}</td>`;
  170. }
  171. str += '</tr>';
  172. }
  173. // Worksheet名
  174. const worksheet = 'Sheet1'
  175. const uri = 'data:application/vnd.ms-excel;base64,';
  176. // 下载的表格模板数据
  177. const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
  178. xmlns:x="urn:schemas-microsoft-com:office:excel"
  179. xmlns="http://www.w3.org/TR/REC-html40">
  180. <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
  181. <x:Name>${worksheet}</x:Name>
  182. <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
  183. </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
  184. </head><body><table>${str}</table></body></html>`;
  185. // 通过创建a标签实现
  186. const link = document.createElement("a");
  187. link.href = uri + base64(template);
  188. // 对下载的文件命名
  189. link.download = "资产管理数据表.xls";
  190. link.click();
  191. }, function(errorMsg) {
  192. alert("请求数据失败!");
  193. })
  194. }
  195. // 导出 end
  196. /*新增 修改 关闭 弹框*/
  197. var layer = layui.layer;
  198. var layerCreateIndex = '';
  199. var layerUpdateIndex = ''
  200. layui.use('layer', function() {
  201. //新增弹框
  202. $('.add').click(function() {
  203. layerCreateIndex = layer.open({
  204. type: 1,
  205. title: false,
  206. closeBtn: 0,
  207. shadeClose: true,
  208. skin: 'yourclass',
  209. area: ['1170px', '400px'],
  210. content: $(".deviceCheckAdd"),
  211. success: function() {
  212. $('.clsBtn,.cancel').click(function() {
  213. layer.close(layerCreateIndex);
  214. })
  215. }
  216. })
  217. }),
  218. //修改弹框信息
  219. $('.edit').click(function() {
  220. if (!$('.pure-table tr').has('.checked').length) {
  221. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  222. } else {
  223. let userInfo = $('.pure-table tr').find('.checked').data('user');
  224. $('.editPropertyOut input[name=facilityName]').val(userInfo.facilityName)
  225. $('.editPropertyOut input[name=facilityType]').val(userInfo.facilityType)
  226. // 单位赋值
  227. $('.editPropertyOut select[name=company]').val(userInfo.company)
  228. // 部门下拉展示及赋值
  229. if ($('#getCompanyList2').val()) {
  230. listDepname()
  231. function listDepname() {
  232. //获取公司id
  233. let companyName = $('#getCompanyList2').find('option:selected').val();
  234. ajaxRequest(COMPANY_LIST, "POST", { "ownerId": companyName }, function(result) {
  235. let companyDepartmentItems = '<option value="">请选择</option>';
  236. let departmentObj = result.data[0].child;
  237. departmentObj.forEach(function(item, key) {
  238. companyDepartmentItems += `<option value="${item.departmentId}">${item.departmentName}</option>`
  239. })
  240. $('#getDepartmentList2').html(companyDepartmentItems);
  241. }, function(errorMsg) {
  242. alert("请求数据失败!");
  243. })
  244. }
  245. }
  246. // 部门赋值
  247. $('.editPropertyOut select[name=department]').val(userInfo.department)
  248. $('.editPropertyOut input[name=man').val(userInfo.man)
  249. $('.editPropertyOut input[name=addrs').val(userInfo.addrs)
  250. $('.editPropertyOut input[name=register').val(userInfo.register)
  251. layerUpdateIndex = layer.open({
  252. type: 1,
  253. title: false,
  254. closeBtn: 0,
  255. shadeClose: true,
  256. skin: 'yourclass',
  257. area: ['410px', '400px'],
  258. content: $(".editPropertyOut"),
  259. success: function() {
  260. $('.clsBtn,.cancel').click(function() {
  261. layer.close(layerUpdateIndex);
  262. })
  263. }
  264. });
  265. }
  266. })
  267. //删除信息
  268. $('.delete').click(function() {
  269. if (!$('.pure-table tr').has('.checked').length) {
  270. //layer.msg('请选择一条需要修改的信息');
  271. layer.msg('请选择一条需要删除的信息!', { icon: 5 });
  272. } else {
  273. let dataId = $('.pure-table tr').find('.checked').data('id');
  274. ajaxRequest(PROPERTY_DELETE, "POST", { "register": dataId }, function(result) {
  275. $(".pure-table tbody tr.selected").remove()
  276. layer.close(layer.layerCreateIndex);
  277. layer.msg('删除成功!', { icon: 6 });
  278. getListDataAjax()
  279. }, function(errorMsg) {
  280. alert("用户删除失败!");
  281. })
  282. }
  283. })
  284. })
  285. /* 新增发送请求 */
  286. $('#addData').click(function() {
  287. //获取表单的值 并转换成对象
  288. let allParam = serializeArrayToObj($("#addDataForm").serializeArray());
  289. //验证数据是否为空
  290. let res = validParamIsEmpty(allParam, {
  291. "facilityName": "请输入资产名称",
  292. "facilityType": "请选择资产类别",
  293. "company": "请选择使用单位",
  294. "man": "请填写负责人",
  295. "purchase": "请选择购入方式",
  296. "price": "请输入单价",
  297. "addrs": "请输入存放地点",
  298. "supplier": "请输入供应商",
  299. "buyTime": "请输入购买时间",
  300. "buyNo": "请输入采购编号",
  301. "invoice": "请输入发票编号",
  302. "purpose": "请输入资产用途",
  303. });
  304. if (res.code == -1) {
  305. alert(res.msg);
  306. return;
  307. }
  308. if (!allParam.warranty) {
  309. alert('请输入维修天数');
  310. return;
  311. } else {
  312. let pattern = /^(([1-9]\d{0,3})|10000)$/
  313. if (!pattern.test(allParam.warranty)) {
  314. alert('请输入1-10000正整数');
  315. return false;
  316. }
  317. }
  318. if (!allParam.warrantyPeriod) {
  319. alert('请输入维修周期');
  320. return;
  321. } else {
  322. let pattern = /^(([1-9]\d{0,3})|10000)$/
  323. if (!pattern.test(allParam.warrantyPeriod)) {
  324. alert('请输入1-10000正整数');
  325. return false;
  326. }
  327. }
  328. if (!allParam.usedData) {
  329. alert('请输入已使用年限');
  330. return;
  331. } else {
  332. let pattern = /^(([1-9]\d{0,3})|10000)$/
  333. if (!pattern.test(allParam.warranty)) {
  334. alert('请输入1-10000正整数');
  335. return false;
  336. }
  337. }
  338. //验证通过 请求ajax
  339. ajaxRequest(PROPERTY_ADD, "POST", allParam, function(result) {
  340. if (result.flag) {
  341. layer.close(layerCreateIndex);
  342. layer.msg('添加成功!', { icon: 6 });
  343. getListDataAjax();
  344. } else {
  345. alert(result.msg)
  346. }
  347. }, function(errorMsg) {
  348. alert('异常错误');
  349. })
  350. })
  351. /* 修改发送请求 */
  352. $('#dataUpdate').click(function() {
  353. //获取表单的值 并转换成对象
  354. let allParam = serializeArrayToObj($("#updatePropertyForm").serializeArray());
  355. //验证数据是否为空
  356. let res = validParamIsEmpty(allParam, {
  357. "facilityName": "请输入资产名称",
  358. "facilityType": "请选择资产类别",
  359. "company": "请选择使用单位",
  360. "man": "请填写负责人",
  361. "register": "请输入资产编号",
  362. });
  363. if (res.code == -1) {
  364. alert(res.msg);
  365. return;
  366. }
  367. ajaxRequest(PROPERTY_UPDATE, "POST", allParam, function(result) {
  368. if (result.flag) {
  369. layer.close(layerUpdateIndex);
  370. layer.msg('修改成功!', { icon: 6 });
  371. getListDataAjax();
  372. } else {
  373. alert(result.msg)
  374. }
  375. }, function(errorMsg) {
  376. alert("数据修改失败!");
  377. })
  378. })