ad.js 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. $(function () {
  2. $("#jqGrid").jqGrid({
  3. url: '../ad/list',
  4. datatype: "json",
  5. colModel: [
  6. {label: 'id', name: 'id', index: 'id', key: true, hidden: true},
  7. {label: '所属商户', name: 'merchName', index: 'merchName', width: 100, align: 'center'},
  8. {label: '所属门店', name: 'storeName', index: 'storeName', width: 80, align: 'center'},
  9. {label: '广告位置', name: 'adPositionName', index: 'ad_Position_id', width: 80},
  10. {label: '广告名称', name: 'name', index: 'name', width: 80},
  11. {label: '链接', name: 'link', index: 'link', width: 80},
  12. {
  13. label: '图片', name: 'imageUrl', index: 'image_url', width: 80, formatter: function (value) {
  14. return transImg(value);
  15. }
  16. },
  17. {label: '内容', name: 'content', index: 'content', width: 80},
  18. {
  19. label: '结束时间', name: 'endTime', index: 'end_time', width: 80, formatter: function (value) {
  20. return transDate(value);
  21. }
  22. },
  23. {label: '排序', name: 'sortOrder', index: 'sortOrder', width: 80},
  24. {label: '状态', name: 'enabled', index: 'enabled', width: 80,
  25. formatter: function (value) {
  26. return value === 0 ?
  27. '<span class="label label-danger">禁用</span>' :
  28. '<span class="label label-success">正常</span>';
  29. }
  30. },
  31. {label: '操作', width: 90, align: 'center', sortable: false,
  32. formatter: function (value, col, row) {
  33. return "&nbsp;&nbsp;&nbsp;&nbsp;<button class='btn btn-primary' " +
  34. "onclick='vm.copyAd(" + row.id + ")'>复制广告</button>";
  35. }
  36. }],
  37. viewrecords: true,
  38. height: 550,
  39. rowNum: 10,
  40. rowList: [10, 30, 50],
  41. rownumbers: true,
  42. rownumWidth: 25,
  43. autowidth: true,
  44. multiselect: true,
  45. pager: "#jqGridPager",
  46. jsonReader: {
  47. root: "page.list",
  48. page: "page.currPage",
  49. total: "page.totalPage",
  50. records: "page.totalCount"
  51. },
  52. prmNames: {
  53. page: "page",
  54. rows: "limit",
  55. order: "order"
  56. },
  57. gridComplete: function () {
  58. //隐藏grid底部滚动条
  59. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
  60. }
  61. });
  62. });
  63. var vm = new Vue({
  64. el: '#rrapp',
  65. data: {
  66. showList: true,
  67. title: null,
  68. ad: {enabled: 1, imageUrl: '', mediaType: 0},
  69. ruleValidate: {
  70. name: [
  71. {required: true, message: '广告名称不能为空', trigger: 'blur'}
  72. ],
  73. imageUrl: [
  74. {required: true, message: '图片不能为空', trigger: 'blur'}
  75. ]
  76. },
  77. q: {
  78. name: ''
  79. },
  80. adPositions: [],
  81. storeList: [],
  82. merchList: [],
  83. copyAdDto:{
  84. adId: '',
  85. storeList: ''
  86. },
  87. showCopyList: true,
  88. showViewList: false,
  89. },
  90. methods: {
  91. copyAd: function(id){
  92. vm.copyAdDto.adId = id;
  93. vm.copyAdDto.storeList = "";
  94. vm.showCopyList = false;
  95. vm.showList = true;
  96. vm.showViewList = true;
  97. vm.title = "复制广告";
  98. },
  99. handleSubmitCopyAd: function () {
  100. if(vm.copyAdDto.adId == ""){
  101. alert('广告id不能为空');
  102. return;
  103. }
  104. if(vm.copyAdDto.storeList == ""){
  105. alert('门店id批量上传数据没有上传或未上传成功');
  106. return;
  107. }
  108. var url = "../ad/saveCopyAd";
  109. $.ajax({
  110. type: "POST",
  111. url: url,
  112. contentType: "application/json",
  113. data: JSON.stringify(vm.copyAdDto),
  114. success: function (r) {
  115. if (r.code === 0) {
  116. alert('操作成功', function (index) {
  117. vm.showCopyList = true;
  118. vm.showList = true;
  119. vm.showViewList = false;
  120. vm.reload();
  121. });
  122. } else {
  123. alert(r.msg);
  124. }
  125. }
  126. });
  127. },
  128. uploadExcelSuccess: function (data) {
  129. if(data.code==0){
  130. alert(data.msg, function (index) {
  131. vm.copyAdDto.storeList = data.storeIds;
  132. });
  133. }else{
  134. alert(data.msg);
  135. }
  136. },
  137. uploadExcelError: function (data) {
  138. console.log(data);
  139. alert('上传出现异常,请重试!');
  140. },
  141. uploadExcelFormatError: function (file) {
  142. this.$Notice.warning({
  143. title: '文件格式不正确',
  144. desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
  145. });
  146. },
  147. query: function () {
  148. vm.reload();
  149. },
  150. add: function () {
  151. vm.showList = false;
  152. vm.showCopyList = true;
  153. vm.showViewList = true;
  154. vm.title = "新增";
  155. vm.ad = {enabled: 1, imageUrl: '', mediaType: 0};
  156. vm.adPosition = [];
  157. this.getAdPositions();
  158. vm.storeList = [];
  159. vm.merchList = [];
  160. vm.getMerchList();
  161. },
  162. update: function (event) {
  163. var id = getSelectedRow();
  164. if (id == null) {
  165. return;
  166. }
  167. vm.showList = false;
  168. vm.showCopyList = true;
  169. vm.showViewList = true;
  170. vm.title = "修改";
  171. vm.getInfo(id);
  172. vm.getMerchList();
  173. vm.getStoresByMerch();
  174. this.getAdPositions();
  175. },
  176. saveOrUpdate: function (event) {
  177. var url = vm.ad.id == null ? "../ad/save" : "../ad/update";
  178. $.ajax({
  179. type: "POST",
  180. url: url,
  181. contentType: "application/json",
  182. data: JSON.stringify(vm.ad),
  183. success: function (r) {
  184. if (r.code === 0) {
  185. alert('操作成功', function (index) {
  186. vm.reload();
  187. });
  188. } else {
  189. alert(r.msg);
  190. }
  191. }
  192. });
  193. },
  194. del: function (event) {
  195. var ids = getSelectedRows();
  196. if (ids == null) {
  197. return;
  198. }
  199. confirm('确定要删除选中的记录?', function () {
  200. $.ajax({
  201. type: "POST",
  202. url: "../ad/delete",
  203. contentType: "application/json",
  204. data: JSON.stringify(ids),
  205. success: function (r) {
  206. if (r.code == 0) {
  207. alert('操作成功', function (index) {
  208. $("#jqGrid").trigger("reloadGrid");
  209. });
  210. } else {
  211. alert(r.msg);
  212. }
  213. }
  214. });
  215. });
  216. },
  217. getInfo: function (id) {
  218. $.get("../ad/info/" + id, function (r) {
  219. vm.ad = r.ad;
  220. });
  221. },
  222. getStoresByMerch: function (opt) {
  223. var value = opt.value;
  224. $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
  225. vm.storeList = r.list;
  226. });
  227. },
  228. getMerchList: function() {
  229. $.get("../merch/queryAll", function (r) {
  230. vm.merchList = r.list;
  231. });
  232. },
  233. reload: function (event) {
  234. vm.showViewList = false;
  235. vm.showList = true;
  236. vm.showCopyList = true;
  237. var page = $("#jqGrid").jqGrid('getGridParam', 'page');
  238. $("#jqGrid").jqGrid('setGridParam', {
  239. postData: {'name': vm.q.name},
  240. page: page
  241. }).trigger("reloadGrid");
  242. vm.handleReset('formValidate');
  243. },
  244. handleSuccess: function (res, file) {
  245. vm.ad.imageUrl = file.response.url;
  246. },
  247. handleFormatError: function (file) {
  248. this.$Notice.warning({
  249. title: '文件格式不正确',
  250. desc: '文件 ' + file.name + ' 格式不正确,请上传 jpg 或 png 格式的图片。'
  251. });
  252. },
  253. handleMaxSize: function (file) {
  254. this.$Notice.warning({
  255. title: '超出文件大小限制',
  256. desc: '文件 ' + file.name + ' 太大,不能超过 100K。'
  257. });
  258. },
  259. handleSubmit: function (name) {
  260. handleSubmitValidate(this, name, function () {
  261. vm.saveOrUpdate()
  262. });
  263. },
  264. handleReset: function (name) {
  265. handleResetForm(this, name);
  266. },
  267. eyeImage: function () {
  268. var url = vm.ad.imageUrl;
  269. eyeImage(url);
  270. },
  271. /**
  272. * 获取会员级别
  273. */
  274. getAdPositions: function () {
  275. $.get("../adposition/queryAll", function (r) {
  276. vm.adPositions = r.list;
  277. });
  278. }
  279. }
  280. });