1
0

ad.js 9.8 KB

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