brand.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. $(function () {
  2. $("#jqGrid").jqGrid({
  3. url: '../brand/list',
  4. datatype: "json",
  5. colModel: [{
  6. label: 'id', name: 'id', index: 'id', key: true, width: 140,align: 'center'
  7. },
  8. {label: '所属商户', name: 'merchName', index: 'merchName', width: 180, align: 'center'},
  9. {label: '所属门店', name: 'storeName', index: 'storeName', width: 180, align: 'center'},
  10. {label: '所属分类', name: 'categoryName', index: 'categoryName', width: 180, align: 'center'},
  11. {
  12. label: '品牌名称', name: 'name', index: 'name', width: 300
  13. }, {
  14. label: '图片', name: 'listPicUrl', index: 'list_pic_url', width: 100, align: 'center', formatter: function (value) {
  15. return transImg(value);
  16. }
  17. }, {
  18. label: '描述', name: 'simpleDesc', index: 'simple_desc', width: 100
  19. }, {
  20. label: '图片', name: 'picUrl', index: 'pic_url', width: 100, align: 'center', formatter: function (value) {
  21. return transImg(value);
  22. }
  23. }, {
  24. label: '排序', name: 'sortOrder', index: 'sort_order', width: 100, align: 'center'
  25. }, {
  26. label: '显示', name: 'isShow', index: 'is_show', width: 100, align: 'center', formatter: function (value) {
  27. return transIsNot(value)
  28. }
  29. }, {
  30. label: '展示价格', name: 'floorPrice', index: 'floor_Price', width: 100, align: 'right'
  31. }, {
  32. label: 'app显示图片', name: 'appListPicUrl', index: 'app_list_pic_url', align: 'center', width: 100, formatter: function (value) {
  33. return transImg(value);
  34. }
  35. }, {
  36. label: '新品牌', name: 'isNew', index: 'is_new', align: 'center', width: 100, formatter: function (value) {
  37. return transIsNot(value)
  38. }
  39. }, {
  40. label: '新品牌图片', name: 'newPicUrl', index: 'new_pic_url', align: 'center', width: 100, formatter: function (value) {
  41. return transImg(value);
  42. }
  43. }, {
  44. label: '新品牌排序', name: 'newSortOrder', index: 'new_sort_order', align: 'center', width: 80
  45. },
  46. {label: '操作', width: 150, align: 'center', sortable: false,
  47. formatter: function (value, col, row) {
  48. if(hasPermission('brand:saveCopyBrand')) {
  49. return "&nbsp;&nbsp;&nbsp;&nbsp;<button class='btn btn-primary' " +
  50. "onclick='vm.copyBrand(" + row.id + ")'>复制品牌</button>";
  51. }else {
  52. return '-'
  53. }
  54. }
  55. }],
  56. viewrecords: true,
  57. height: 550,
  58. rowNum: 10,
  59. rowList: [10, 30, 50],
  60. rownumbers: true,
  61. rownumWidth: 25,
  62. autowidth: true,
  63. shrinkToFit: false,
  64. autoScroll: true, //开启水平滚动条
  65. width: 1500,
  66. multiselect: true,
  67. pager: "#jqGridPager",
  68. jsonReader: {
  69. root: "page.list",
  70. page: "page.currPage",
  71. total: "page.totalPage",
  72. records: "page.totalCount"
  73. },
  74. prmNames: {
  75. page: "page",
  76. rows: "limit",
  77. order: "order"
  78. },
  79. gridComplete: function () {
  80. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
  81. }
  82. });
  83. });
  84. var vm = new Vue({
  85. el: '#rrapp',
  86. data: {
  87. showList: true,
  88. title: null,
  89. brand: {listPicUrl: '', picUrl: '', appListPicUrl: '', newPicUrl: '', isShow: 1, isNew: 0},
  90. ruleValidate: {
  91. name: [
  92. {required: true, message: '品牌名称不能为空', trigger: 'blur'}
  93. ],
  94. listPicUrl: [
  95. {required: true, message: '品牌图片不能为空', trigger: 'blur'}
  96. ],
  97. simpleDesc: [
  98. {required: true, message: '品牌描述不能为空', trigger: 'blur'}
  99. ],
  100. picUrl: [
  101. {required: true, message: '品牌图片不能为空', trigger: 'blur'}
  102. ],
  103. // sortOrder: [
  104. // {required: true, message: '排序不能为空', trigger: 'blur'}
  105. // ],
  106. // floorPrice: [
  107. // {required: true, message: '展示价格不能为空', trigger: 'blur'}
  108. // ],
  109. appListPicUrl: [
  110. {required: true, message: 'app显示图片不能为空', trigger: 'blur'}
  111. ],
  112. newPicUrl: [
  113. {required: true, message: '新品牌图片不能为空', trigger: 'blur'}
  114. ]
  115. },
  116. q: {
  117. name: '',
  118. storeId: ''
  119. },
  120. storeList: [],
  121. merchList: [],
  122. categories: [],//一级分类
  123. copyBrandDto: {brandId: '', storeList:"", categoryList:""},
  124. showCopyList: true,
  125. showViewList: false,
  126. stores: [],
  127. },
  128. methods: {
  129. copyBrand: function(id){
  130. vm.copyBrandDto.brandId = id;
  131. vm.copyBrandDto.storeList = "";
  132. vm.copyBrandDto.categoryList = "";
  133. vm.showCopyList = false;
  134. vm.showList = true;
  135. vm.showViewList = true;
  136. vm.title = "复制品牌";
  137. },
  138. handleSubmitCopyBrand: function () {
  139. if(vm.copyBrandDto.brandId == ""){
  140. alert('品牌id不能为空');
  141. return;
  142. }
  143. if(vm.copyBrandDto.storeList == ""){
  144. alert('门店id批量上传数据没有上传或未上传成功');
  145. return;
  146. }
  147. if(vm.copyBrandDto.categoryList == ""){
  148. alert('分类id批量上传数据没有上传或未上传成功');
  149. return;
  150. }
  151. var url = "../brand/saveCopyBrand";
  152. $.ajax({
  153. type: "POST",
  154. url: url,
  155. contentType: "application/json",
  156. data: JSON.stringify(vm.copyBrandDto),
  157. success: function (r) {
  158. if (r.code === 0) {
  159. alert('操作成功', function (index) {
  160. vm.showCopyList = true;
  161. vm.showList = true;
  162. vm.showViewList = false;
  163. vm.reload();
  164. });
  165. } else {
  166. alert(r.msg);
  167. }
  168. }
  169. });
  170. },
  171. uploadExcelSuccess: function (data) {
  172. if(data.code==0){
  173. alert(data.msg, function (index) {
  174. vm.copyBrandDto.storeList = data.copyBrandDto.storeList;
  175. vm.copyBrandDto.categoryList = data.copyBrandDto.categoryList;
  176. });
  177. }else{
  178. alert(data.msg);
  179. }
  180. },
  181. uploadExcelError: function (data) {
  182. console.log(data);
  183. alert('上传出现异常,请重试!');
  184. },
  185. uploadExcelFormatError: function (file) {
  186. this.$Notice.warning({
  187. title: '文件格式不正确',
  188. desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
  189. });
  190. },
  191. query: function () {
  192. vm.reload();
  193. },
  194. add: function () {
  195. vm.showList = false;
  196. vm.showCopyList = true;
  197. vm.showViewList = true;
  198. vm.title = "新增";
  199. vm.brand = {listPicUrl: '', picUrl: '', appListPicUrl: '', newPicUrl: '', isShow: 1, isNew: 0};
  200. vm.storeList = [];
  201. vm.merchList = [];
  202. vm.getMerchList();
  203. },
  204. update: function (event) {
  205. var id = getSelectedRow();
  206. if (id == null) {
  207. return;
  208. }
  209. vm.showList = false;
  210. vm.showCopyList = true;
  211. vm.showViewList = true;
  212. vm.title = "修改";
  213. vm.brand = {listPicUrl: '', picUrl: '', appListPicUrl: '', newPicUrl: '', isShow: 1, isNew: 0};
  214. vm.storeList = [];
  215. vm.merchList = [];
  216. vm.getInfo(id);
  217. vm.getMerchList();
  218. vm.getStoresByMerch();
  219. },
  220. saveOrUpdate: function (event) {
  221. var url = vm.brand.id == null ? "../brand/save" : "../brand/update";
  222. $.ajax({
  223. type: "POST",
  224. url: url,
  225. contentType: "application/json",
  226. data: JSON.stringify(vm.brand),
  227. success: function (r) {
  228. if (r.code === 0) {
  229. alert('操作成功', function (index) {
  230. vm.reload();
  231. });
  232. } else {
  233. alert(r.msg);
  234. }
  235. }
  236. });
  237. },
  238. del: function (event) {
  239. var ids = getSelectedRows();
  240. if (ids == null) {
  241. return;
  242. }
  243. confirm('确定要删除选中的记录?', function () {
  244. $.ajax({
  245. type: "POST",
  246. url: "../brand/delete",
  247. contentType: "application/json",
  248. data: JSON.stringify(ids),
  249. success: function (r) {
  250. if (r.code == 0) {
  251. alert('操作成功', function (index) {
  252. $("#jqGrid").trigger("reloadGrid");
  253. });
  254. } else {
  255. alert(r.msg);
  256. }
  257. }
  258. });
  259. });
  260. },
  261. getInfo: function (id) {
  262. $.get("../brand/info/" + id, function (r) {
  263. vm.brand = r.brand;
  264. });
  265. },
  266. getStoresByMerch: function (opt) {
  267. var value = opt.value;
  268. $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
  269. vm.storeList = r.list;
  270. });
  271. },
  272. getCategoryByStore: function (opt) {
  273. var value = opt.value;
  274. vm.getCategories(value);
  275. },
  276. getMerchList: function() {
  277. $.get("../merch/queryAll", function (r) {
  278. vm.merchList = r.list;
  279. });
  280. },
  281. getCategories: function (storeId) {
  282. $.get("../category/getCategorySelect?isShow=1&storeId=" + storeId, function (r) {
  283. vm.categories = r.list;
  284. });
  285. },
  286. reload: function (event) {
  287. vm.showViewList = false;
  288. vm.showList = true;
  289. vm.showCopyList = true;
  290. var page = $("#jqGrid").jqGrid('getGridParam', 'page');
  291. $("#jqGrid").jqGrid('setGridParam', {
  292. postData: {'name': vm.q.name,'storeId':vm.q.storeId},
  293. page: page
  294. }).trigger("reloadGrid");
  295. vm.handleReset('formValidate');
  296. },
  297. handleSuccessListPicUrl: function (res, file) {
  298. vm.brand.listPicUrl = file.response.url;
  299. },
  300. handleSuccessPicUrl: function (res, file) {
  301. vm.brand.picUrl = file.response.url;
  302. },
  303. handleSuccessAppListPicUrl: function (res, file) {
  304. vm.brand.appListPicUrl = file.response.url;
  305. },
  306. handleSuccessNewPicUrl: function (res, file) {
  307. vm.brand.newPicUrl = file.response.url;
  308. },
  309. handleFormatError: function (file) {
  310. this.$Notice.warning({
  311. title: '文件格式不正确',
  312. desc: '文件 ' + file.name + ' 格式不正确,请上传 jpg 或 png 格式的图片。'
  313. });
  314. },
  315. handleMaxSize: function (file) {
  316. this.$Notice.warning({
  317. title: '超出文件大小限制',
  318. desc: '文件 ' + file.name + ' 太大,不能超过 100k。'
  319. });
  320. },
  321. eyeImageListPicUrl: function () {
  322. var url = vm.brand.listPicUrl;
  323. eyeImage(url);
  324. },
  325. eyeImagePicUrl: function () {
  326. var url = vm.brand.picUrl;
  327. eyeImage(url);
  328. },
  329. eyeImageAppListPicUrl: function () {
  330. var url = vm.brand.appListPicUrl;
  331. eyeImage(url);
  332. },
  333. eyeImageNewPicUrl: function () {
  334. var url = vm.brand.newPicUrl;
  335. eyeImage(url);
  336. },
  337. handleSubmit: function (name) {
  338. handleSubmitValidate(this, name, function () {
  339. vm.saveOrUpdate()
  340. });
  341. },
  342. handleReset: function (name) {
  343. handleResetForm(this, name);
  344. }
  345. },
  346. mounted() {
  347. $.get("../store/queryAll", function (r) {
  348. vm.stores = r.list;
  349. });
  350. }
  351. });