goodsPanorama.js 39 KB

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