You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

469 lines
19 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. //公共参数
  2. let tableTags = "activity_data";//表格的id
  3. let currentRow;//临时的参数行
  4. //初始化
  5. $(function () {
  6. InfoDate('startDate')
  7. InfoDate('finishDate')
  8. activityTableInit();
  9. partTable();
  10. selectPart();
  11. });
  12. //初始化表格
  13. function activityTableInit() {
  14. $('#' + tableTags).bootstrapTable({
  15. url: '/promotion/searchPromotionHistList', //请求后台的URL(*)
  16. method: 'post', //请求方式(*)
  17. //contentType:'application/x-www-form-urlencoded',
  18. contentType: 'application/json;charset=utf-8',
  19. toolbar: '#toolbar', //工具按钮用哪个容器
  20. striped: true, //是否显示行间隔色
  21. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  22. pagination: false, //是否显示分页(*)
  23. sortable: false, //是否启用排序
  24. sortOrder: "asc", //排序方式
  25. queryParamsType: "undefined", //排序方式
  26. queryParams: function queryParams(params) { //设置查询参数
  27. var param = {
  28. site: $('#current_site').val(),
  29. wareHouseName: $('#warehousename').val(),
  30. partDescription: $('#partDescription').val(),
  31. status: $('#status').val()
  32. };
  33. return JSON.stringify(param);
  34. },
  35. sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
  36. pageNumber: 1, //初始化加载第一页,默认第一页
  37. pageSize: 10, //每页的记录行数(*)
  38. pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  39. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  40. searchTimeOut: 1000,
  41. // : true,
  42. showColumns: false, //是否显示所有的列
  43. showRefresh: false, //是否显示刷新按钮
  44. minimumCountColumns: 2, //最少允许的列数
  45. clickToSelect: true, //是否启用点击选中行
  46. singleSelect: false,
  47. height: 400, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
  48. uniqueId: "id", //每一行的唯一标识,一般为主键列
  49. // showToggle: true, //是否显示详细视图和列表视图的切换按钮
  50. cardView: false, //是否显示详细视图
  51. detailView: false, //是否显示父子表
  52. columns: [/*{
  53. checkbox: true
  54. },*/{
  55. field: 'wareHouseId',
  56. title: '店铺编号'
  57. }, {
  58. field: 'warehousename',
  59. title: '店铺名称'
  60. }, {
  61. field: 'partNo',
  62. title: 'SKU编号'
  63. }, {
  64. field: 'partdescription',
  65. title: 'SKU名称'
  66. }, {
  67. field: 'startDate',
  68. title: '开始时间',
  69. formatter: function (value, row) {
  70. var date = formatLinuxDate(value);
  71. date = date.substring(0, 10);
  72. return date;
  73. },
  74. width: 100
  75. }, {
  76. field: 'finishDate',
  77. title: '结束时间',
  78. formatter: function (value, row) {
  79. var date = formatLinuxDate(value);
  80. date = date.substring(0, 10);
  81. return date;
  82. },
  83. width: 100
  84. }, {
  85. field: 'averageConsumeQty',
  86. title: '日均消耗',
  87. width: 100,
  88. align: 'right',
  89. }, {
  90. field: 'promotionDesc',
  91. title: '描述',
  92. width: 200
  93. }, {
  94. field: 'createdBy',
  95. title: '创建人',
  96. width: 100
  97. }, {
  98. field: 'createdDate',
  99. title: '创建时间',
  100. formatter: function (value, row) {
  101. var date = formatLinuxDate(value);
  102. date = date.substring(0, 10);
  103. return date;
  104. },
  105. width: 100
  106. }
  107. // , {
  108. // field: 'status',
  109. // title: '状态',
  110. // width: 100
  111. // }
  112. ],
  113. onClickRow: function (row, $element) {
  114. $('.check_back').removeClass('check_back');
  115. $($element).addClass('check_back');
  116. currentRow = row;
  117. //调用自定义按钮的控制类
  118. customerBtnControl(tableTags, row, null);
  119. },
  120. onLoadSuccess: function (data) {
  121. var height_param = $(window).height() - 92;
  122. $('#' + tableTags).parents('.fixed-table-container').css("height", height_param + "px");
  123. //调用自定义按钮的控制类
  124. customerBtnControl(tableTags, null, null)
  125. },
  126. //>>>>>>>>>>>>>>导出excel表格设置
  127. showExport: false, //是否显示导出按钮(此方法是自己写的目的是判断终端是电脑还是手机,电脑则返回true,手机返回falsee,手机不显示按钮)
  128. exportDataType: "basic", //basic', 'all', 'selected'.
  129. exportTypes: ['excel', 'xlsx'], //导出类型
  130. exportButton: $('#download_button'), //为按钮btn_export 绑定导出事件 自定义导出按钮(可以不用)
  131. exportOptions: {
  132. ignoreColumn: [8, 8], //忽略某一列的索引
  133. fileName: '库存信息' + generateTimeReqestNumber(), //文件名称设置
  134. worksheetName: '库存信息', //表格工作区名称
  135. tableName: '库存信息',
  136. excelstyles: ['background-color', 'color', 'font-size', 'font-weight'],
  137. onMsoNumberFormat: DoOnMsoNumberFormat
  138. }
  139. //导出excel表格设置<<<<<<<<<<<<<<<<
  140. });
  141. }
  142. //处理搜索,刷新table
  143. function searchPromontion() {
  144. $('#' + tableTags).bootstrapTable('refresh');
  145. }
  146. // 活动添加 模态框
  147. function addPromotionModal() {
  148. $('#partList').bootstrapTable('refresh')
  149. $('#addPromotionModal').modal()
  150. }
  151. // part列表
  152. function partTable() {
  153. $('#partList').bootstrapTable({
  154. url: '/part/searchPartWareHouseList', //请求后台的URL(*)
  155. method: 'post', //请求方式(*)
  156. //contentType:'application/x-www-form-urlencoded',
  157. contentType: 'application/json;charset=utf-8',
  158. striped: true, //是否显示行间隔色
  159. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  160. pagination: false, //是否显示分页(*)
  161. sortable: false, //是否启用排序
  162. sortOrder: "asc", //排序方式
  163. queryParamsType: "undefined", //排序方式
  164. queryParams: function queryParams(params) { //设置查询参数
  165. var param = {
  166. othergroup2: $('#current_username').val(),
  167. partdescription: $('#addPartDescription').val(),
  168. warehousename: $('#addWarehouseName').val(),
  169. };
  170. return JSON.stringify(param);
  171. },
  172. sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
  173. pageNumber: 1, //初始化加载第一页,默认第一页
  174. pageSize: 10, //每页的记录行数(*)
  175. pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  176. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  177. searchTimeOut: 1000,
  178. // : true,
  179. showColumns: false, //是否显示所有的列
  180. showRefresh: false, //是否显示刷新按钮
  181. minimumCountColumns: 2, //最少允许的列数
  182. clickToSelect: true, //是否启用点击选中行
  183. singleSelect: false,
  184. // height: 400, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
  185. uniqueId: "id", //每一行的唯一标识,一般为主键列
  186. // showToggle: true, //是否显示详细视图和列表视图的切换按钮
  187. cardView: false, //是否显示详细视图
  188. detailView: false, //是否显示父子表
  189. columns: [{
  190. checkbox: true
  191. }, {
  192. field: 'defaultwarehouseid',
  193. title: '店铺编号',
  194. width: 200
  195. }, {
  196. field: 'warehousename',
  197. title: '店铺名称',
  198. width: 200
  199. }, {
  200. field: 'partno',
  201. title: '物料编号',
  202. width: 200
  203. }, {
  204. field: 'partdescription',
  205. title: '物料名称',
  206. width: 200
  207. }, {
  208. field: 'othergroup2',
  209. title: '运营',
  210. align: 'right',
  211. }],
  212. onLoadSuccess: function (data) {
  213. $('#partList').parents('.bootstrap-table').css("margin-left", "10px");
  214. $('#partList').parents('.fixed-table-container').css("width", 670 + "px");
  215. $('#partList').parents('.fixed-table-container').css("height", '300');
  216. }
  217. });
  218. }
  219. // 查询part列表
  220. function searchPart() {
  221. $('#partList').bootstrapTable('refresh')
  222. }
  223. // 初始化页面显示的列
  224. function selectPart() {
  225. $('#partTable').bootstrapTable({
  226. striped: true, //是否显示行间隔色
  227. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  228. pagination: false, //是否显示分页(*)
  229. sortable: false, //是否启用排序
  230. sortOrder: "asc", //排序方式
  231. queryParamsType: "undefined", //排序方式
  232. queryParams: function queryParams(params) { //设置查询参数
  233. var param = {
  234. site: $('#current_site').val(),
  235. active: $('#status').val(),
  236. partdescription: $('#partdescription').val(),
  237. warehousename: $('#warehousename').val(),
  238. operating: 1,
  239. othergroup2: ''
  240. };
  241. return JSON.stringify(param);
  242. },
  243. sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
  244. pageNumber: 1, //初始化加载第一页,默认第一页
  245. pageSize: 10, //每页的记录行数(*)
  246. pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  247. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  248. searchTimeOut: 1000,
  249. // : true,
  250. showColumns: false, //是否显示所有的列
  251. showRefresh: false, //是否显示刷新按钮
  252. minimumCountColumns: 2, //最少允许的列数
  253. clickToSelect: true, //是否启用点击选中行
  254. singleSelect: false,
  255. // height: 400, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
  256. uniqueId: "id", //每一行的唯一标识,一般为主键列
  257. // showToggle: true, //是否显示详细视图和列表视图的切换按钮
  258. cardView: false, //是否显示详细视图
  259. detailView: false, //是否显示父子表
  260. columns: [{
  261. field: 'defaultwarehouseid',
  262. title: '店铺编号',
  263. width: 200
  264. }, {
  265. field: 'warehousename',
  266. title: '店铺名称',
  267. width: 200
  268. }, {
  269. field: 'partno',
  270. title: '物料编号',
  271. width: 200
  272. }, {
  273. field: 'partdescription',
  274. title: '物料名称',
  275. width: 200
  276. }, {
  277. field: 'averageConsumeQty',
  278. title: '日均消耗',
  279. align: 'right',
  280. width: 200,
  281. formatter: function (value, row, index) {
  282. let averageConsumeQty = ' <input type="text" class=".parentNumber" name="averageConsumeQty" value="" style="width: 100px;border-style:none;" autocomplete="off" onkeyup="value=value.replace(/[^\\d]/g,\'\')">'
  283. return averageConsumeQty
  284. }
  285. }, {
  286. field: 'remark',
  287. title: '备注',
  288. width: 200,
  289. formatter: function (value, row, index) {
  290. let promotionDesc = ' <input type="text" class=".parentNumber" name="remark" value="" style="width: 165px;border-style:none;" autocomplete="off" >'
  291. return promotionDesc
  292. }
  293. }],
  294. onPostHeader: function (data) {
  295. $('#partTable').parents('.bootstrap-table').css("margin-left", "10px");
  296. $('#partTable').parents('.fixed-table-container').css("width", 670 + "px");
  297. $('#partTable').parents('.fixed-table-container').css("height", '260');
  298. }
  299. });
  300. }
  301. function addPromotionHist() {
  302. let partList = $("#partList").bootstrapTable('getSelections')
  303. $('#partTable').bootstrapTable('load', partList);
  304. $("#select_modal").modal()
  305. }
  306. // 添加活动计划
  307. function addPromotion() {
  308. let bool = false
  309. let promotionHistList = []
  310. let partList = $("#partList").bootstrapTable('getData')
  311. let averageConsumeQtyList = $("[name='averageConsumeQty']")
  312. let remarkList = $("[name='remark']")
  313. averageConsumeQtyList.each((index, item) => {
  314. if ($(item).val() == '' || $(item).val() == null) {
  315. bool = true;
  316. }
  317. let partPlan = {
  318. site: $('#current_site').val(),
  319. wareHouseId: partList[index].defaultwarehouseid,
  320. partNo: partList[index].partno,
  321. promotionDesc: $('#promotionDesc').val(),
  322. coverDays: partList[index].coverDays,
  323. startDate: $('#startDate').val(),
  324. finishDate: $('#finishDate').val(),
  325. averageConsumeQty: $(item).val(),
  326. remark: $(remarkList[index]).val(),
  327. createdBy: $('#current_username').val(),
  328. status: '进行中'
  329. }
  330. promotionHistList.push(partPlan)
  331. })
  332. if ($('#startDate').val() == '' || $('#startDate').val() == null) {
  333. layer.alert('开始时间不能为空')
  334. return;
  335. }
  336. if ($('#finishDate').val() == '' || $('#finishDate').val() == null) {
  337. layer.alert('结束时间不能为空')
  338. return;
  339. }
  340. if ($('#startDate').val() > $('#finishDate').val()) {
  341. layer.alert('结束时间不能早于开始时间')
  342. return;
  343. }
  344. if (bool) {
  345. layer.alert('日消耗数不能为空')
  346. return;
  347. }
  348. $.ajax({
  349. url: '/promotion/savePromotionHistList',
  350. contentType: 'application/json',
  351. type: "POST",
  352. async: false,
  353. data: JSON.stringify(promotionHistList),
  354. dataType: "json",
  355. success: function (data) {
  356. layer.msg(data.msg)
  357. if (data.success) {
  358. $('#saveClose').click()
  359. $('#addClose').click()
  360. $('#activity_data').bootstrapTable('refresh')
  361. }
  362. },
  363. error: function (data) {
  364. var responseText = data.responseText;
  365. var json_str = JSON.parse(responseText);
  366. var status = json_str.status;
  367. var message = json_str.message;
  368. //判断是否是session超时
  369. if (403 == status) {
  370. layer.alert(message, function () {
  371. window.location.href = "/login";
  372. });
  373. }
  374. layer.closeAll('loading');
  375. }
  376. })
  377. }
  378. // 结束活动
  379. function updatePromotion() {
  380. let promotionHis = {
  381. id: currentRow.id,
  382. status: "已结束"
  383. }
  384. $.ajax({
  385. url: '/promotion/updatePromotionHist',
  386. contentType: 'application/json',
  387. type: "POST",
  388. async: false,
  389. data: JSON.stringify(promotionHis),
  390. dataType: "json",
  391. success: function (data) {
  392. layer.msg(data.msg)
  393. if (data.success) {
  394. $('#activity_data').bootstrapTable('refresh')
  395. }
  396. },
  397. error: function (data) {
  398. var responseText = data.responseText;
  399. var json_str = JSON.parse(responseText);
  400. var status = json_str.status;
  401. var message = json_str.message;
  402. //判断是否是session超时
  403. if (403 == status) {
  404. layer.alert(message, function () {
  405. window.location.href = "/login";
  406. });
  407. }
  408. layer.closeAll('loading');
  409. }
  410. })
  411. }
  412. // 删除活动
  413. function removePromotion() {
  414. layer.confirm('确定要删除选中的活动信息!', {
  415. btn: ['确定', '取消']
  416. // 按钮
  417. }, function () {
  418. let promotionHis = {
  419. id: currentRow.id
  420. }
  421. $.ajax({
  422. url: '/promotion/removePromotionHis',
  423. contentType: 'application/json',
  424. type: "POST",
  425. async: false,
  426. data: JSON.stringify(promotionHis),
  427. dataType: "json",
  428. success: function (data) {
  429. layer.msg(data.msg)
  430. if (data.success) {
  431. $('#activity_data').bootstrapTable('refresh')
  432. }
  433. },
  434. error: function (data) {
  435. var responseText = data.responseText;
  436. var json_str = JSON.parse(responseText);
  437. var status = json_str.status;
  438. var message = json_str.message;
  439. //判断是否是session超时
  440. if (403 == status) {
  441. layer.alert(message, function () {
  442. window.location.href = "/login";
  443. });
  444. }
  445. layer.closeAll('loading');
  446. }
  447. })
  448. }, function () {
  449. });
  450. }