goodsPanorama.js 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924
  1. $(function () {
  2. $("#jqGrid").jqGrid({
  3. url: '../goods/list',
  4. datatype: "json",
  5. colModel: [
  6. // {label: 'ID', name: 'id', index: 'id', width: 60, key: true},
  7. {label: '商户名称', name: 'merchName', index: 'merchName', width: 100, align: 'center'},
  8. {label: '第三方商户编号', name: 'thirdPartyMerchCode', index: 'thirdPartyMerchCode', width: 160, align: 'center'},
  9. {label: '商品编码', name: 'goodsSn', index: 'goods_Sn', width: 180, align: 'center'},
  10. {label: 'SKU', name: 'sku', index: 'sku', width: 180, align: 'center'},
  11. {label: 'PLU', name: 'plu', index: 'plu', width: 180, align: 'center'},
  12. {label: '英文名称', name: 'englishName', index: 'englishName', width: 180, align: 'center'},
  13. {label: '产品条码', name: 'prodBarcode', index: 'prod_barcode', width: 160, align: 'center'},
  14. // {label: '商品类型', name: 'categoryName', index: 'category_id', width: 40, align: 'center'},
  15. {label: '名称', name: 'name', index: 'name', width: 500, align: 'left'},
  16. {
  17. label: '货品业务类型', name: 'goodsBizType', index: 'goods_biz_type', width: 100, align: 'center',
  18. formatter: function (value) {
  19. if (value == '00') {
  20. return '保税备货';
  21. } else if (value == '02') {
  22. return '保税展示补货';
  23. } else if (value == '10') {
  24. return '保税展示跨境';
  25. }
  26. return '普通货物';
  27. }
  28. },
  29. {label: '库存是否共享', name: 'isStockShare', index: 'isStockShare', width: 100, align: 'center',
  30. formatter: function (value) {
  31. if (value == '0') {
  32. return '否';
  33. } else if (value == '1') {
  34. return '是';
  35. }
  36. return '-';
  37. }},
  38. {label: '商品库存', name: 'goodsNumber', index: 'goodsNumber', width: 100, align: 'right'},
  39. // {label: '零售价格', name: 'retailPrice', index: 'retail_price', width: 80, align: 'center'},
  40. // {label: '市场价', name: 'marketPrice', index: 'market_price', width: 80, align: 'center'},
  41. {
  42. label: '上架', name: 'isOnSale', index: 'is_on_sale', width: 50, align: 'center',
  43. formatter: function (value) {
  44. return transIsNot(value);
  45. }
  46. },
  47. {
  48. label: '热销', name: 'isHot', index: 'is_hot', width: 50, align: 'center',formatter: function (value) {
  49. return transIsNot(value);
  50. }
  51. },
  52. /*{
  53. label: '活动', name: 'goodsType', index: 'goodsType', width: 80,
  54. formatter: function (value) {
  55. if (value == 2) {
  56. return '<span class="label label-warning">团购</span>';
  57. } else {
  58. return '<span class="label label-success">无活动</span>';
  59. }
  60. }
  61. },*/
  62. {
  63. label: '录入日期', name: 'addTime', index: 'add_time', width: 200, align: 'center',
  64. formatter: function (value) {
  65. return transDate(value, 'yyyy-MM-dd hh:mm:ss');
  66. }
  67. }
  68. ],
  69. viewrecords: true,
  70. height: 475,
  71. rowNum: 10,
  72. rowList: [10, 30, 50],
  73. rownumbers: true,
  74. rownumWidth: 25,
  75. autowidth: true,
  76. shrinkToFit: false,
  77. autoScroll: true, //开启水平滚动条
  78. width: 1600,
  79. multiselect: true,
  80. pager: "#jqGridPager",
  81. jsonReader: {
  82. root: "page.list",
  83. page: "page.currPage",
  84. total: "page.totalPage",
  85. records: "page.totalCount"
  86. },
  87. prmNames: {
  88. page: "page",
  89. rows: "limit",
  90. order: "order"
  91. },
  92. gridComplete: function () {
  93. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
  94. }
  95. });
  96. $('#goodsDesc').editable({
  97. inlineMode: false,
  98. alwaysBlank: true,
  99. height: '500px', //高度
  100. minHeight: '200px',
  101. language: "zh_cn",
  102. spellcheck: false,
  103. plainPaste: true,
  104. enableScript: false,
  105. imageButtons: ["floatImageLeft", "floatImageNone", "floatImageRight", "linkImage", "replaceImage", "removeImage"],
  106. allowedImageTypes: ["jpeg", "jpg", "png", "gif"],
  107. imageUploadURL: '../sys/oss/upload',
  108. imageUploadParams: {id: "edit"},
  109. imagesLoadURL: '../sys/oss/queryAll'
  110. });
  111. $("#branchJqGrid").jqGrid({
  112. url: '../productstorerela/list',
  113. datatype: "json",
  114. colModel: [
  115. {label: '所属门店', name: 'storeName', index: 'storeName', width: 180, align: 'center'},
  116. {label: '商品类型', name: 'categoryName', index: 'categoryName', width: 120, align: 'center'},
  117. {label: '批次编号', name: 'batchSn', index: 'batchSn', width: 140, align: 'center'},
  118. {label: '批次到期日期', name: 'batchExpireDate', index: 'batchExpireDate', width: 160, align: 'center',formatter: function (value) {
  119. return transDate(value,'yyyy-MM-dd hh:mm:ss');
  120. }},
  121. {label: '门店库存', name: 'stockNum', index: 'stockNum', width: 80, align: 'center'},
  122. {label: '园区库存', name: 'parkStock', index: 'parkStock', width: 80, align: 'center'},
  123. {label: '零售价格', name: 'retailPrice', index: 'retailPrice', width: 80, align: 'right'},
  124. {label: '市场价', name: 'marketPrice', index: 'marketPrice', width: 80, align: 'right'},
  125. {label: '底线价格', name: 'bottomLinePrice', index: 'bottomLinePrice', width: 80, align: 'right',formatter: function (value) {
  126. if (value){
  127. return value;
  128. }
  129. return '-';
  130. }},
  131. {
  132. label: '销售量',
  133. name: 'sellVolume',
  134. index: 'a.sell_volume',
  135. width: 80,
  136. sortable: true, align: 'center',
  137. onSortCol: function (index, colindex, sortorder) {
  138. //列排序事件
  139. jQuery("#jqGrid").jqGrid('setGridParam', {page: $('#XtoPage').val()});
  140. }
  141. }
  142. ],
  143. viewrecords: true,
  144. height: 475,
  145. rowNum: 10,
  146. rowList: [10, 30, 50],
  147. rownumbers: true,
  148. rownumWidth: 25,
  149. autowidth: true,
  150. shrinkToFit: false,
  151. autoScroll: true, //开启水平滚动条
  152. width: 1600,
  153. pager: "#branchJqGridPager",
  154. jsonReader: {
  155. root: "page.list",
  156. page: "page.currPage",
  157. total: "page.totalPage",
  158. records: "page.totalCount"
  159. },
  160. prmNames: {
  161. page: "page",
  162. rows: "limit",
  163. order: "order"
  164. },
  165. gridComplete: function () {
  166. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
  167. }
  168. });
  169. $("#barcodeJqGrid").jqGrid({
  170. url: '../goods/list',
  171. datatype: "json",
  172. colModel: [
  173. // {label: 'ID', name: 'id', index: 'id', width: 60, key: true},
  174. {label: '商户名称', name: 'merchName', index: 'merchName', width: 100, align: 'center'},
  175. {label: '商品编码', name: 'goodsSn', index: 'goods_Sn', width: 180, align: 'center'},
  176. {label: 'SKU', name: 'sku', index: 'sku', width: 180, align: 'center'},
  177. {label: 'PLU', name: 'plu', index: 'plu', width: 180, align: 'center'},
  178. {label: '英文名称', name: 'englishName', index: 'englishName', width: 180, align: 'center'},
  179. {label: '产品条码', name: 'prodBarcode', index: 'prod_barcode', width: 160, align: 'center'}
  180. ],
  181. viewrecords: true,
  182. height: 475,
  183. rowNum: 10,
  184. rowList: [10, 30, 50],
  185. rownumbers: true,
  186. rownumWidth: 25,
  187. autowidth: true,
  188. shrinkToFit: false,
  189. autoScroll: true, //开启水平滚动条
  190. width: 1600,
  191. multiselect: true,
  192. pager: "#barcodeJqGridPager",
  193. jsonReader: {
  194. root: "page.list",
  195. page: "page.currPage",
  196. total: "page.totalPage",
  197. records: "page.totalCount"
  198. },
  199. prmNames: {
  200. page: "page",
  201. rows: "limit",
  202. order: "order"
  203. },
  204. gridComplete: function () {
  205. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
  206. }
  207. });
  208. $("#salesJqGrid").jqGrid({
  209. url: '../order/offilineOrderList',
  210. datatype: "json",
  211. colModel: [
  212. {label: '所属门店', name: 'storeName', index: 'storeName',align: 'center', width: 180},
  213. {label: '订单号', name: 'orderSn', index: 'order_sn', align: 'center',width: 180},
  214. {label: '会员', name: 'consignee', index: 'consignee',align: 'center', width: 80},
  215. {label: '商户订单号', name: 'merchOrderSn', index: 'merchOrderSn', align: 'center',width: 150},
  216. {
  217. label: '订单状态', name: 'orderStatus', index: 'order_status', align: 'center',width: 120,
  218. formatter: function (value) {
  219. if (value == '0') {
  220. return '订单创建成功等待付款';
  221. } else if (value == '100') {
  222. return '订单付款中';
  223. } else if (value == '101') {
  224. return '订单已取消';
  225. } else if (value == '102') {
  226. return '订单已删除';
  227. } else if (value == '201') {
  228. return '订单已付款';
  229. } else if (value == '300') {
  230. return '订单已发货';
  231. } else if (value == '301') {
  232. return '用户确认收货';
  233. } else if (value == '401') {
  234. return '没有发货,退款';
  235. } else if (value == '402') {
  236. return '已收货,退款退货';
  237. }
  238. return value;
  239. }
  240. },
  241. {
  242. label: '订付人核验', name: 'buyerPayCheck', index: 'buyer_pay_check', align: 'center',width: 80,
  243. formatter: function (value) {//订购人支付人校验,0:未知,1:一致,2:不一致,3:校验异常
  244. if (value == '0') {
  245. return '未知';
  246. } else if (value == '1') {
  247. return '一致';
  248. } else if (value == '2') {
  249. return '不一致';
  250. }
  251. return "-";
  252. }
  253. },
  254. {
  255. label: '付款状态', name: 'payStatus', index: 'pay_status', align: 'center',width: 80,
  256. formatter: function (value) {
  257. if (value == '0') {
  258. return '未付款';
  259. } else if (value == '1') {
  260. return '付款中';
  261. } else if (value == '2') {
  262. return '已付款';
  263. } else if (value == '3') {
  264. return '退款中';
  265. } else if (value == '4') {
  266. return '退款';
  267. }
  268. return value;
  269. }
  270. },
  271. {label: '实际支付', name: 'actualPrice', index: 'actual_price', align: 'right',width: 80},
  272. {label: '订单总价', name: 'orderPrice', index: 'order_price', align: 'right',width: 80},
  273. {
  274. label: '下单时间', name: 'addTime', index: 'add_time',align: 'center', width: 160,
  275. formatter: function (value) {
  276. return transDate(value, 'yyyy-MM-dd hh:mm:ss');
  277. }
  278. }
  279. ],
  280. viewrecords: true,
  281. height: 550,
  282. rowNum: 10,
  283. rowList: [10, 30, 50],
  284. rownumbers: true,
  285. rownumWidth: 25,
  286. autowidth: true,
  287. shrinkToFit: false,
  288. autoScroll: true, //开启水平滚动条
  289. width: 1500,
  290. pager: "#salesJqGridPager",
  291. jsonReader: {
  292. root: "page.list",
  293. page: "page.currPage",
  294. total: "page.totalPage",
  295. records: "page.totalCount"
  296. },
  297. prmNames: {
  298. page: "page",
  299. rows: "limit",
  300. order: "order"
  301. },
  302. gridComplete: function () {
  303. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
  304. }
  305. });
  306. });
  307. var ztree;
  308. var setting = {
  309. data: {
  310. simpleData: {
  311. enable: true,
  312. idKey: "id",
  313. pIdKey: "parentId",
  314. rootPId: -1
  315. },
  316. key: {
  317. url: "nourl"
  318. }
  319. }
  320. };
  321. var vm = new Vue({
  322. el: '#rrapp',
  323. data: {
  324. showList: true,
  325. fileList: true,
  326. title: null,
  327. uploadList: [],
  328. imgName: '',
  329. visible: false,
  330. stores: [],
  331. goods: {primaryPicUrl: '', listPicUrl: '',videoUrl:'', categoryId: '', isOnSale: 1, isAppExclusive: 0, isLimited: 0, isHot: 0, categoryName: '', retailPrice: '', marketPrice: '', goodsRate: '', sortOrder: '',goodsNumber: '' },
  332. ruleValidate: {
  333. },
  334. q: {name: '', goodsSn: '', prodBarcode: '',goodsBizType:'', merchSn: '',thirdPartyMerchCode:''},
  335. attributes: [],
  336. attributeEntityList: [{'id': '', 'goodsId': '', 'attributeId': '', 'value': '', 'isDelete': 0}],
  337. productEntityList: [{'id': '', 'goodsId': '', 'goodsSpecificationIds': '', 'goodsSpecificationNameValue': '', 'goodsSn': '', 'goodsNumber': '', 'isDelete': 0, 'goodsDefault': 0}],
  338. queryMerch: [],
  339. macros: [],//商品单位
  340. specifications: [],
  341. showInput: true,
  342. cusUnitCodeList: [],
  343. cusNationCodeList: [],
  344. merchList: [],
  345. suppliers: [],
  346. thirdMerchantBizList: [],
  347. thirdMerchantBizViewList: [],
  348. isStockShare: false,
  349. goodsBizType: '',
  350. isOperator: '',
  351. share: ''
  352. },
  353. methods: {
  354. delSpeRow: function (index) {
  355. //最后一行时禁止删除
  356. if (vm.productEntityList.length == 1) {
  357. return;
  358. }
  359. vm.productEntityList[index].isDelete = 1;
  360. },
  361. addSpeRow: function () {
  362. let goodsId = '';
  363. if (vm.goods) {
  364. goodsId = vm.goods.id;
  365. }
  366. vm.productEntityList.push({'id': '', 'goodsId': '', 'goodsSpecificationIds': '', 'goodsSpecificationNameValue': '', 'goodsSn': '', 'goodsNumber': '', 'isDelete': 0, 'goodsDefault': 0});
  367. },
  368. reloadSearch: function () {
  369. vm.q = {
  370. name: '',
  371. goodsSn: '',
  372. prodBarcode: '',
  373. goodsBizType: '',
  374. merchSn: '',
  375. thirdPartyMerchCode:''
  376. }
  377. },
  378. query: function () {
  379. vm.reload(1);
  380. },
  381. add: function () {
  382. vm.showList = false;
  383. vm.isOperator='add';
  384. vm.title = "新增";
  385. vm.uploadList = [];
  386. vm.goods = {primaryPicUrl: '', listPicUrl: '',videoUrl:'', categoryId: '', isOnSale: 1, isAppExclusive: 0, isLimited: 0,
  387. isHot: 0, categoryName: '', retailPrice: '', marketPrice: '', goodsRate: '', sortOrder: '',goodsNumber: '' };
  388. $('#goodsDesc').editable('setHTML', '');
  389. vm.getCategory();
  390. vm.macros = [];
  391. vm.brands = [];
  392. // vm.freights = [];
  393. vm.cusUnitCodeList = [];
  394. vm.cusNationCodeList = [];
  395. // vm.attributeEntityList = [{'id': '', 'goodsId': '', 'attributeId': '', 'value': '', 'isDelete': 0}];
  396. vm.getMacro();
  397. vm.getCusUnitCodeList();
  398. vm.getCusNationCode();
  399. vm.getMerchList();
  400. vm.showInput = true;
  401. },
  402. update: function (event) {
  403. var id = getSelectedRow();
  404. if (id == null) {
  405. return;
  406. }
  407. vm.isOperator='update';
  408. vm.showList = false;
  409. vm.title = "修改";
  410. vm.uploadList = [];
  411. // vm.goods = {primaryPicUrl: '', listPicUrl: '',videoUrl:'', categoryId: '', isOnSale: 1, isAppExclusive: 0, isLimited: 0,
  412. // isHot: 0, categoryName: '', retailPrice: '', marketPrice: '', goodsRate: '', sortOrder: '',goodsNumber: '' };
  413. vm.getInfo(id);/*
  414. var opt = {};
  415. opt.value = vm.goods.categoryId;
  416. opt.flag = 1;
  417. vm.getAttributes(opt);*/
  418. vm.thirdMerchantBizList = [];
  419. vm.getCusUnitCodeList();
  420. vm.getCusNationCode();
  421. vm.showInput = true;
  422. if (vm.goods.goodsBizType == '10' || vm.goods.goodsBizType == '02') {
  423. vm.showInput = false;
  424. }
  425. vm.price();
  426. vm.discount();
  427. vm.detail();
  428. },
  429. getInfo: function () {
  430. var postData = {"goodsSn":vm.q.goodsSn,'prodBarcode':vm.q.prodBarcode,'storeId':vm.q.storeId};
  431. vm.getCusUnitCodeList();
  432. vm.getCusNationCode();
  433. $.post("../goods/infoByQuery",postData,function(r){
  434. vm.goods = r.goods;
  435. console.log(r.goods);
  436. // vm.goodsBizType = r.goods.goodsBizType;
  437. });
  438. // $.get("../goods/info/" + id, function (r) {
  439. // vm.goods = r.goods;
  440. // vm.goodsBizType = r.goods.goodsBizType;
  441. //
  442. // // vm.branch(r.goods.goodsSn);
  443. // // vm.barcode(r.goods.goodsSn);
  444. // // vm.sales(r.goods.goodsSn);
  445. // });
  446. },
  447. branch:function(){
  448. var postData = {"goodsSn":vm.q.goodsSn,'prodBarcode':vm.q.prodBarcode,'storeId':vm.q.storeId};
  449. $("#branchJqGrid").jqGrid('setGridParam',{
  450. datatype:'json',
  451. postData:postData,
  452. }).trigger("reloadGrid");
  453. },
  454. price:function(){
  455. },
  456. discount:function(){
  457. },
  458. barcode:function(){
  459. var postData = {"goodsSn":vm.q.goodsSn,'prodBarcode':vm.q.prodBarcode,'storeId':vm.q.storeId};
  460. $("#barcodeJqGrid").jqGrid('setGridParam',{
  461. datatype:'json',
  462. postData:postData,
  463. }).trigger("reloadGrid");
  464. },
  465. detail:function(){
  466. },
  467. sales:function(){
  468. var postData = {"goodsSn":vm.q.goodsSn,'prodBarcode':vm.q.prodBarcode,'storeId':vm.q.storeId};
  469. $("#salesJqGrid").jqGrid('setGridParam',{
  470. datatype:'json',
  471. postData:postData,
  472. }).trigger("reloadGrid");
  473. },
  474. getMacro: function () {
  475. // 获取货品业务类型
  476. $.get("../sys/macro/queryMacrosByValue?value=goodsBizType", function (r) {
  477. vm.macros = r.list;
  478. });
  479. },/*
  480. getBrand: function (merchSn) {
  481. $.get("../brand/queryAll?merchSn=" + merchSn, function (r) {
  482. vm.brands = r.list;
  483. });
  484. },*/
  485. getSuppliers: function (thirdMerchantCode) {
  486. $.get("../supplier/queryAll?thirdPartyMerchCode=" + thirdMerchantCode, function (r) {
  487. vm.suppliers = r.list;
  488. });
  489. },
  490. getCusUnitCodeList: function () {
  491. $.get("../syscusunitcode/queryAll", function (r) {
  492. vm.cusUnitCodeList = r.list;
  493. });
  494. },
  495. getCusNationCode: function () {
  496. $.get("../syscusnationcode/queryAll", function (r) {
  497. vm.cusNationCodeList = r.list;
  498. });
  499. },/*
  500. getFreights: function(merchSn) {
  501. $.get("../freight/queryAll?merchSn=" + merchSn, function (r) {
  502. vm.freights = r.list;
  503. });
  504. },*/
  505. getGoodsGallery: function (id) {//获取商品顶部轮播图
  506. $.get("../goodsgallery/queryAll?goodsId=" + id, function (r) {
  507. vm.uploadList = r.list;
  508. });
  509. },
  510. getMerchList: function() {
  511. $.get("../merch/queryAll", function (r) {
  512. vm.merchList = r.list;
  513. });
  514. },
  515. getThirdMerchantBizList: function(merchSn) {
  516. $.get("../thirdmerchantbiz/queryAll?merchSn=" + merchSn, function (r) {
  517. vm.thirdMerchantBizList = r.list;
  518. });
  519. },
  520. saveOrUpdate: function (event) {
  521. var url = vm.goods.id == null ? "../goods/save" : "../goods/update";
  522. vm.goods.goodsDesc = $('#goodsDesc').editable('getHTML');
  523. vm.goods.goodsImgList = vm.uploadList;
  524. // vm.goods.attributeEntityList = vm.attributeEntityList;
  525. vm.goods.productEntityList = vm.productEntityList;
  526. $.ajax({
  527. type: "POST",
  528. url: url,
  529. dataType: "json",
  530. contentType: "application/json",
  531. data: JSON.stringify(vm.goods),
  532. success: function (r) {
  533. if (r.code === 0) {
  534. alert('操作成功', function (index) {
  535. vm.reload();
  536. });
  537. } else {
  538. alert(r.msg);
  539. }
  540. }
  541. });
  542. },
  543. enSale: function () {
  544. var ids = getSelectedRows();
  545. if (ids == null) {
  546. return;
  547. }
  548. confirm('确定要上架选中的商品?', function () {
  549. $.ajax({
  550. type: "POST",
  551. url: "../goods/enSaleBatch",
  552. contentType: "application/json",
  553. data: JSON.stringify(ids),
  554. success: function (r) {
  555. if (r.code == 0) {
  556. alert('操作成功', function (index) {
  557. $("#jqGrid").trigger("reloadGrid");
  558. });
  559. } else {
  560. alert(r.msg);
  561. }
  562. }
  563. });
  564. });
  565. },
  566. openSpe: function () {
  567. var id = getSelectedRow();
  568. if (id == null) {
  569. return;
  570. }
  571. openWindow({
  572. type: 2,
  573. title: '商品规格',
  574. content: '../shop/goodsspecification.html?goodsId=' + id
  575. })
  576. },
  577. openPro: function () {
  578. var id = getSelectedRow();
  579. if (id == null) {
  580. return;
  581. }
  582. openWindow({
  583. type: 2,
  584. title: '产品设置',
  585. content: '../shop/product.html?goodsId=' + id
  586. });
  587. },
  588. unSale: function () {
  589. var ids = getSelectedRows();
  590. if (ids == null) {
  591. return;
  592. }
  593. confirm('确定要下架选中的商品?', function () {
  594. $.ajax({
  595. type: "POST",
  596. url: "../goods/unSaleBatch",
  597. contentType: "application/json",
  598. data: JSON.stringify(ids),
  599. success: function (r) {
  600. if (r.code == 0) {
  601. alert('操作成功', function (index) {
  602. $("#jqGrid").trigger("reloadGrid");
  603. });
  604. } else {
  605. alert(r.msg);
  606. }
  607. }
  608. });
  609. });
  610. },
  611. del: function (event) {
  612. var ids = getSelectedRows();
  613. if (ids == null) {
  614. return;
  615. }
  616. confirm('确定要删除选中的记录?', function () {
  617. $.ajax({
  618. type: "POST",
  619. url: "../goods/delete",
  620. contentType: "application/json",
  621. data: JSON.stringify(ids),
  622. success: function (r) {
  623. if (r.code == 0) {
  624. alert('操作成功', function (index) {
  625. $("#jqGrid").trigger("reloadGrid");
  626. });
  627. } else {
  628. alert(r.msg);
  629. }
  630. }
  631. });
  632. });
  633. },
  634. reload: function (event) {
  635. vm.sales();
  636. vm.branch();
  637. vm.barcode();
  638. vm.getInfo();
  639. vm.showList = true;
  640. // let page = event;
  641. // if (event != 1) {
  642. // page = $("#jqGrid").jqGrid('getGridParam', 'page');
  643. // }
  644. // $("#jqGrid").jqGrid('setGridParam', {
  645. // postData: {
  646. // 'name': vm.q.name,
  647. // 'englishName': vm.q.englishName,
  648. // 'goodsSn': vm.q.goodsSn,
  649. // 'prodBarcode': vm.q.prodBarcode,
  650. // 'goodsBizType': vm.q.goodsBizType,
  651. // 'merchSn': vm.q.merchSn,
  652. // 'thirdPartyMerchCode': vm.q.thirdPartyMerchCode
  653. // },
  654. // page: page
  655. // }).trigger("reloadGrid");
  656. // vm.handleReset('formValidate');
  657. },
  658. getCategory: function () {
  659. //加载分类树
  660. $.get("../category/query", function (r) {
  661. ztree = $.fn.zTree.init($("#categoryTree"), setting, r.list);
  662. var node = ztree.getNodeByParam("id", vm.goods.categoryId);
  663. if (node) {
  664. ztree.selectNode(node);
  665. vm.goods.categoryName = node.name;
  666. } else {
  667. node = ztree.getNodeByParam("id", 0);
  668. ztree.selectNode(node);
  669. vm.goods.categoryName = node.name;
  670. }
  671. })
  672. },
  673. categoryTree: function () {
  674. openWindow({
  675. title: "选择类型",
  676. area: ['300px', '450px'],
  677. content: jQuery("#categoryLayer"),
  678. btn: ['确定', '取消'],
  679. btn1: function (index) {
  680. var node = ztree.getSelectedNodes();
  681. if (node[0].isParent) {
  682. alert("只能选择");
  683. return;
  684. }
  685. //选择上级菜单
  686. vm.goods.categoryId = node[0].id;
  687. vm.goods.categoryName = node[0].name;
  688. layer.close(index);
  689. }
  690. });
  691. },
  692. showStockShare:function(opt){
  693. var thirdMerchantCode = opt.value;
  694. /*$.get("../thirdmerchantbiz/infoByCode?thirdMerchantCode=" + thirdMerchantCode, function (r) {
  695. if(r.thirdMerchantBiz){
  696. vm.share = r.thirdMerchantBiz.isStockShare;
  697. if(vm.goods.goodsBizType == '00' && r.thirdMerchantBiz.isStockShare == 1){
  698. // vm.isStockShare = true;
  699. }else{
  700. // vm.isStockShare = false;
  701. vm.goods.goodsNumber= '';
  702. }
  703. }
  704. });*/
  705. vm.getSuppliers(thirdMerchantCode);
  706. },
  707. changeGoodsBizType: function(opt) {
  708. var goodsBizType = opt.value;
  709. if (vm.goods.goodsBizType == '10' || vm.goods.goodsBizType == '02') {
  710. vm.showInput = false;
  711. } else {
  712. vm.showInput = true;
  713. }
  714. // console.log('goodsBizType:'+vm.goods.goodsBizType)
  715. // console.log('share:'+vm.share)
  716. // if(vm.goods.goodsBizType == '00' && vm.share == 1){
  717. // vm.isStockShare = true;
  718. // }else{
  719. // vm.isStockShare = false;
  720. // // vm.goods.goodsNumber= '';
  721. // // console.log('错错错')
  722. // }
  723. },
  724. handleView(name) {
  725. this.imgName = name;
  726. this.visible = true;
  727. },
  728. /*changeQueryCategories: function (opt) {
  729. var value = opt.value;
  730. $.get("../category/getCategorySelectByParent?parentId=" + value, function (r) {
  731. vm.queryCategoriesTwo = r.list;
  732. });
  733. },
  734. getAttributes: function (opt) {
  735. var value = opt.value;
  736. $.get("../attribute/query?attributeCategoryId=" + value, function (r) {
  737. vm.attributes = r.list;
  738. });
  739. if (opt.flag != 1 && !(value === vm.categoryId)) {
  740. if (vm.attributeEntityList.length > 0 && vm.attributeEntityList[0].attributeId != '') {
  741. for (var i = 0; i < vm.attributeEntityList.length; i++) {
  742. if (!(vm.attributeEntityList[0].attributeId === '')) {
  743. vm.attributeEntityList[i].isDelete = 1;
  744. }
  745. }
  746. var goodsId = '';
  747. if (vm.goods) {
  748. goodsId = vm.goods.id;
  749. }
  750. vm.attributeEntityList.unshift({'id': '', 'goodsId': goodsId, 'attributeId': '', 'value': '', 'isDelete': 0});
  751. }
  752. }
  753. },
  754. changeCategories: function (opt) {
  755. var value = opt.value;
  756. $.get("../category/getCategorySelectByParent?isShow=1&parentId=" + value, function (r) {
  757. vm.categoriesTwo = r.list;
  758. });
  759. },*/
  760. uploadExcelSuccess: function (data) {
  761. // console.log(data);
  762. if(data.code==0){
  763. alert('导入成功', function (index) {
  764. $("#jqGrid").trigger("reloadGrid");
  765. });
  766. }else{
  767. alert(data.msg);
  768. }
  769. },
  770. uploadExcelError: function () {
  771. alert('上传出现异常,请重试!');
  772. },
  773. uploadExcelFormatError: function (file) {
  774. this.$Notice.warning({
  775. title: '文件格式不正确',
  776. desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
  777. });
  778. },
  779. handleRemove(file) {
  780. // 从 upload 实例删除数据
  781. const fileList = vm.uploadList;
  782. vm.uploadList.splice(fileList.indexOf(file), 1);
  783. },
  784. handleSuccess(res, file) {
  785. // 因为上传过程为实例,这里模拟添加 url
  786. file.imgUrl = res.url;
  787. file.name = res.url;
  788. vm.uploadList.add(file);
  789. },
  790. handleBeforeUpload() {
  791. const check = vm.uploadList.length < 5;
  792. if (!check) {
  793. this.$Notice.warning({
  794. title: '最多只能上传 5 张图片。'
  795. });
  796. }
  797. return check;
  798. },
  799. handleSubmit: function (name) {
  800. // handleSubmitValidate(this, name, function () {
  801. vm.saveOrUpdate()
  802. // });
  803. },
  804. handleFormatError: function (file) {
  805. this.$Notice.warning({
  806. title: '文件格式不正确',
  807. desc: '文件 ' + file.name + ' 格式不正确,请上传 jpg 或 png 格式的图片。'
  808. });
  809. },
  810. handleMaxSize: function (file) {
  811. this.$Notice.warning({
  812. title: '超出文件大小限制',
  813. desc: '文件 ' + file.name + ' 太大,不能超过 100k。'
  814. });
  815. },
  816. handleMaxSizeByInfo: function (file) {
  817. this.$Notice.warning({
  818. title: '超出文件大小限制',
  819. desc: '文件 ' + file.name + ' 太大,不能超过 300k。'
  820. });
  821. },
  822. handleReset: function (name) {
  823. handleResetForm(this, name);
  824. },
  825. handleSuccessPicUrl: function (res, file) {
  826. vm.goods.primaryPicUrl = file.response.url;
  827. },
  828. handleSuccessListPicUrl: function (res, file) {
  829. vm.goods.listPicUrl = file.response.url;
  830. },
  831. eyeImagePicUrl: function () {
  832. var url = vm.goods.primaryPicUrl;
  833. eyeImage(url);
  834. },
  835. eyeImageListPicUrl: function () {
  836. var url = vm.goods.listPicUrl;
  837. eyeImage(url);
  838. },
  839. eyeImage: function (e) {
  840. eyeImage($(e.target).attr('src'));
  841. },
  842. eyeImageListVideoUrl: function (e) {
  843. var url = vm.goods.videoUrl;
  844. eyeVideo(url);
  845. },
  846. handleVideoFormatError: function (file) {
  847. this.$Notice.warning({
  848. title: '文件格式不正确',
  849. desc: '文件 ' + file.name + ' 格式不正确,请上传 mp4 格式的图片。'
  850. });
  851. },
  852. handleVideoMaxSize: function (file) {
  853. this.$Notice.warning({
  854. title: '超出文件大小限制',
  855. desc: '文件 ' + file.name + ' 太大,不能超过 1M。'
  856. });
  857. },
  858. handleSuccessListVideoUrl: function (res, file) {
  859. vm.goods.videoUrl = file.response.url;
  860. },
  861. goodsExport: function () {
  862. vm.fileList = false;
  863. },
  864. showMerchInfo:function(opt){
  865. var merchSn = opt.value;
  866. // vm.getCategories(merchSn);
  867. // vm.getFreights(merchSn);
  868. // vm.getBrand(merchSn);
  869. vm.getThirdMerchantBizList(merchSn);
  870. },
  871. // getCategories: function (merchSn) {
  872. // $.get("../category/getCategorySelect?isShow=1&merchSn=" + merchSn, function (r) {
  873. // vm.categories = r.list;
  874. // });
  875. // }
  876. },
  877. mounted() {
  878. // this.uploadList = this.$refs.upload.fileList;
  879. /*$.get("../category/getCategorySelect", function (r) {
  880. vm.queryCategories = r.list;
  881. });*/
  882. $.get("../merch/queryAll", function (r) {
  883. vm.queryMerch = r.list;
  884. });
  885. $.get("../store/queryAll", function (r) {
  886. vm.stores = r.list;
  887. });
  888. $.get("../sys/macro/queryMacrosByValue?value=goodsBizType", function (r) {
  889. vm.macros = r.list;
  890. });
  891. $.get("../thirdmerchantbiz/queryAll", function (r) {
  892. vm.thirdMerchantBizViewList = r.list;
  893. });
  894. }
  895. });