setting_custom_output.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>产品产量填报</title>
  6. <link href="http://static.vbdsm.com/js/lib/easyui/themes/vber/easyui.css" rel="stylesheet" type="text/css" />
  7. <link href="http://static.vbdsm.com/js/lib/easyui/themes/icon.css" rel="stylesheet" type="text/css" />
  8. <link href="http://static.vbdsm.com/js/lib/loadmask/jquery.loadmask.css" rel="stylesheet" type="text/css" />
  9. <script src="http://static.vbdsm.com/js/lib/jquery-1.8.0.min.js" type="text/javascript"></script>
  10. <script src="http://static.vbdsm.com/js/lib/easyui/jquery.easyui.min.js" type="text/javascript"></script>
  11. <script src="http://static.vbdsm.com/js/lib/easyui/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
  12. <script src="http://static.vbdsm.com/js/lib/loadmask/jquery.loadmask.min.js" type="text/javascript"></script>
  13. <script src="http://static.vbdsm.com/js/lib/highcharts/highcharts.js?v=4.1.8" type="text/javascript"></script>
  14. <script src="http://static.vbdsm.com/js/lib/highcharts/modules/exporting.js?v=4.1.8" type="text/javascript"></script>
  15. <script src="http://static.vbdsm.com/js/util.js" type="text/javascript"></script>
  16. <script src="http://static.vbdsm.com/js/lib/layer/layer/layer.js" type="text/javascript"></script>
  17. <style type="text/css">
  18. #menu_left * {
  19. vertical-align: middle;
  20. }
  21. </style>
  22. <script charset="UTF-8" type="text/javascript"></script>
  23. </head>
  24. <body>
  25. <div class="easyui-layout" data-options="fit:true">
  26. <div data-options="region:'center', border:false" style="overflow: auto">
  27. <div id="menu_left" style="padding: 2px; background-color: #eee; border-bottom: solid 1px #ddd">
  28. <a class="easyui-linkbutton easyui-tooltip" data-options="plain:true, iconCls:'icon-add'" id="btnAdd" title="添加信息">新增</a>
  29. <a class="easyui-linkbutton easyui-tooltip" data-options="plain:true, iconCls:'icon-edit'" id="btnUpdate" title="修改信息">修改</a>
  30. <a class="easyui-linkbutton easyui-tooltip" data-options="plain:true, iconCls:'icon-remove'" id="btnDelete" title="删除信息">删除</a>
  31. <a class="easyui-linkbutton easyui-tooltip" data-options="iconCls:'icon-save', plain:true" id="btnSave" title="保存信息">保存</a>
  32. <a class="easyui-linkbutton easyui-tooltip" data-options="iconCls:'icon-undo', plain:true" id="btnCancel" title="取消当前操作">取消</a>
  33. </div>
  34. <!-- 客户管理表格 -->
  35. <div id="dgDiv" style="width: 100%; height: 100%">
  36. <table data-options="singleSelect:true,fit:true" id="dg"></table>
  37. </div>
  38. </div>
  39. </div>
  40. </body>
  41. <script type="text/javascript">
  42. var editFlag = true,
  43. appendFlag = true,
  44. editIndex
  45. $(document).ready(function () {
  46. //initDatagrid();
  47. //loadDatagrid();
  48. loadData()
  49. $("#btnAdd").on("click", function () {
  50. if (!appendFlag || !editFlag) {
  51. layer.msg("请先取消正在更改或者新增的行!", {
  52. icon: 4,
  53. })
  54. return
  55. }
  56. $("#dg").datagrid("appendRow", {})
  57. editIndex = $("#dg").datagrid("getRows").length - 1
  58. $("#dg").datagrid("selectRow", editIndex).datagrid("beginEdit", editIndex)
  59. appendFlag = false
  60. })
  61. $("#btnSave").on("click", function () {
  62. if (appendFlag && editFlag) {
  63. layer.msg("没有需要保存或者更新的行!")
  64. return
  65. }
  66. var flag = $("#dg").datagrid("validateRow", editIndex)
  67. if (!flag) {
  68. layer.msg("请填写完整的信息!")
  69. return
  70. }
  71. $("#dg").datagrid("acceptChanges")
  72. $("#dg").datagrid("selectRow", editIndex)
  73. var row = $("#dg").datagrid("getSelected")
  74. var url = "",
  75. type = 1
  76. if (row["id"]) {
  77. url = "/web/custom/output/update.json"
  78. type = 2
  79. } else {
  80. url = "/web/custom/output/save.json"
  81. }
  82. saveOrUpdate(url, row, type)
  83. ;(editFlag = true), (appendFlag = true)
  84. })
  85. function saveOrUpdate(url, row, type) {
  86. ajax({
  87. url: url,
  88. data: row,
  89. type: "POST",
  90. beforeSend: function (XHR) {
  91. $("#dg").mask("数据加载中...")
  92. },
  93. success: function (data) {
  94. $("#dg").unmask()
  95. if (data["status"] == 1) {
  96. if (type == 1) {
  97. layer.msg(" 保存成功", {
  98. icon: 1,
  99. })
  100. $("#dg").datagrid("updateRow", {
  101. index: editIndex,
  102. row: data["data"],
  103. })
  104. } else {
  105. layer.msg(" 更新成功", {
  106. icon: 1,
  107. })
  108. $("#dg").datagrid("updateRow", {
  109. index: editIndex,
  110. row: data["data"],
  111. })
  112. }
  113. } else {
  114. if (type == 1) {
  115. layer.msg(" 保存失败", {
  116. icon: 1,
  117. })
  118. } else {
  119. layer.msg(" 更新失败", {
  120. icon: 1,
  121. })
  122. }
  123. }
  124. },
  125. error: function () {
  126. $("#dg").unmask()
  127. if (type == 1) {
  128. layer.msg(" 服务器发生错误,保存失败", {
  129. icon: 1,
  130. })
  131. } else {
  132. layer.msg(" 服务器发生错误,更新失败", {
  133. icon: 1,
  134. })
  135. }
  136. },
  137. })
  138. }
  139. $("#btnCancel").on("click", function () {
  140. if (editIndex != undefined) {
  141. $("#dg").datagrid("cancelEdit", editIndex)
  142. if (!appendFlag) {
  143. $("#dg").datagrid("deleteRow", editIndex)
  144. appendFlag = true
  145. }
  146. editIndex = undefined
  147. editFlag = true
  148. }
  149. })
  150. $("#btnUpdate").click(function () {
  151. if (!appendFlag || !editFlag) {
  152. layer.msg("请先取消正在更改或者新增的行!", {
  153. icon: 4,
  154. })
  155. return
  156. }
  157. var row = $("#dg").datagrid("getSelected")
  158. if (row == null || row == undefined) {
  159. layer.msg(" 请选择一条记录进行修改.", {
  160. icon: 4,
  161. })
  162. return
  163. }
  164. var index = $("#dg").datagrid("getRowIndex", row)
  165. editIndex = index
  166. $("#dg").datagrid("beginEdit", editIndex)
  167. editFlag = false
  168. })
  169. $("#btnDelete").click(function () {
  170. if (!appendFlag || !editFlag) {
  171. layer.msg("请先取消正在更改或者新增的行!", {
  172. icon: 4,
  173. })
  174. return
  175. }
  176. var checkedItem = $("#dg").datagrid("getSelected")
  177. if (checkedItem != undefined) {
  178. layer.confirm("删除后,将导致某些关联数据无法显示。<br/>您确定要删除选中数据吗?", function (index) {
  179. layer.close(index)
  180. ajax({
  181. url: "/web/custom/output/delete.json",
  182. data: {
  183. id: checkedItem.id,
  184. },
  185. success: function (data) {
  186. if (data["status"] == 1) {
  187. var rowIndex = $("#dg").datagrid("getRowIndex", checkedItem)
  188. $("#dg").datagrid("deleteRow", rowIndex)
  189. layer.msg(" 删除成功", {
  190. icon: 1,
  191. })
  192. } else {
  193. layer.msg(" 删除失败", {
  194. icon: 2,
  195. })
  196. }
  197. },
  198. error: function () {
  199. layer.msg("服务器存在问题,删除失败", {
  200. icon: 2,
  201. })
  202. },
  203. })
  204. })
  205. } else {
  206. layer.msg(" 请选择一条要删除的记录!", {
  207. icon: 4,
  208. })
  209. return
  210. }
  211. })
  212. $("#month").combobox({
  213. width: 70,
  214. valueField: "id",
  215. textField: "text",
  216. data: getMonth(),
  217. })
  218. $("#year").combobox({
  219. width: 70,
  220. valueField: "id",
  221. textField: "text",
  222. data: getYear(10),
  223. })
  224. })
  225. var type
  226. function getProductData() {
  227. var productData = ""
  228. ajax({
  229. url: "web/custom/output/getComboboxData.json",
  230. type: "post",
  231. async: false,
  232. dataType: "json",
  233. success: function (data) {
  234. if (data.status == 1) {
  235. productData = data.data
  236. }
  237. },
  238. })
  239. return productData
  240. }
  241. function getYear(num) {
  242. var data = new Array()
  243. var currentYear = new Date().getFullYear()
  244. data.push({ value: currentYear, text: currentYear + "年" })
  245. for (var i = 1; i <= num; i++) {
  246. data.push({ value: currentYear - i, text: currentYear - i + "年" })
  247. }
  248. return data
  249. }
  250. function getMonth() {
  251. var data = new Array()
  252. for (var i = 1; i <= 12; i++) {
  253. data.push({ value: i, text: i + "月" })
  254. }
  255. return data
  256. }
  257. var tableObj = $("#dg")
  258. //分页控件
  259. function loadData() {
  260. //获取DataGrid分页组件对象
  261. var p = tableObj.datagrid("getPager")
  262. //设置分页组件参数
  263. $(p).pagination({
  264. pageSize: 20,
  265. pageNumber: 1,
  266. pageList: [10, 20, 50],
  267. onSelectPage: function (pageNumber, pageSize) {
  268. getData(pageNumber, pageSize)
  269. },
  270. })
  271. var obj = $(p).pagination("options")
  272. getData(obj.pageNumber, obj.pageSize)
  273. }
  274. function getData(pageNumber, pageSize) {
  275. if (pageNumber == 0) {
  276. pageNumber = 1
  277. }
  278. ajax({
  279. url: "/web/custom/output/getForPage.json",
  280. type: "post",
  281. dataType: "json",
  282. data: { pageSize: pageSize, pageNo: pageNumber },
  283. beforeSend: function (XHR) {
  284. $("#dgDiv").mask("数据加载中...")
  285. },
  286. success: function (data) {
  287. $("#dgDiv").unmask()
  288. tableObj.datagrid("loadData", data.data)
  289. },
  290. })
  291. }
  292. tableObj.datagrid({
  293. toolbar: "#menu_left",
  294. fit: true,
  295. fitcolumns: true,
  296. pagination: true,
  297. pageSize: 20,
  298. rownumbers: false,
  299. singleSelect: true,
  300. selectOnCheck: false,
  301. checkOnSelect: true,
  302. columns: [
  303. [
  304. {
  305. field: "id",
  306. hidden: true,
  307. },
  308. {
  309. field: "productId",
  310. title: "产品",
  311. align: "left",
  312. width: 150,
  313. type: "combobox",
  314. formatter: function (value, row) {
  315. return row.productName
  316. },
  317. editor: {
  318. type: "combobox",
  319. options: {
  320. valueField: "id",
  321. textField: "productName",
  322. panelHeight: "auto",
  323. data: getProductData(),
  324. required: true,
  325. },
  326. },
  327. },
  328. {
  329. field: "year",
  330. title: "年",
  331. width: 100,
  332. align: "center",
  333. editor: {
  334. type: "combobox",
  335. options: {
  336. valueField: "value",
  337. textField: "text",
  338. panelHeight: "auto",
  339. data: getYear(10),
  340. required: true,
  341. },
  342. },
  343. },
  344. {
  345. field: "month",
  346. title: "月",
  347. width: 100,
  348. align: "center",
  349. editor: {
  350. type: "combobox",
  351. options: {
  352. valueField: "value",
  353. textField: "text",
  354. panelHeight: "auto",
  355. data: getMonth(),
  356. required: true,
  357. },
  358. },
  359. },
  360. {
  361. field: "outputNum",
  362. title: "产量",
  363. width: 130,
  364. align: "left",
  365. editor: {
  366. type: "text",
  367. options: {
  368. required: true,
  369. },
  370. },
  371. },
  372. {
  373. field: "stockNum",
  374. title: "库存量",
  375. width: 130,
  376. align: "left",
  377. editor: {
  378. type: "text",
  379. options: {
  380. required: true,
  381. },
  382. },
  383. },
  384. ],
  385. ],
  386. })
  387. </script>
  388. </html>