mkstorecampminus.js 89 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795
  1. $(function () {
  2. $("#jqGrid").jqGrid({
  3. url: '../mkstorecampminus/list',
  4. datatype: "json",
  5. colModel: [
  6. {label: 'campMinusId', name: 'campMinusId', index: 'camp_minus_id', key: true, hidden: true},
  7. {
  8. label: '活动图片', name: 'advImgUrl', index: 'advImgUrl', align: 'center', width: 30,
  9. formatter: function (value) {
  10. return transImg(value);
  11. }
  12. },
  13. {label: '活动名称', name: 'campName', index: 'camp_name', width: 60, align: 'center'},
  14. {label: '减免活动类型', name: 'campMinusType', index: 'camp_minus_type', width: 50, align: 'center',
  15. formatter: function (value) {
  16. if (value == '00') {
  17. return '满x元减';
  18. } else if (value == '01') {
  19. return '满x件减';
  20. } else if (value == '10') {
  21. return '满x元折';
  22. } else if (value == '11') {
  23. return '满x件折';
  24. }
  25. return '';
  26. }},
  27. // {label: '第三方商户id', name: 'thirdMerchSn', index: 'third_merch_sn', width: 80},
  28. {label: '所属门店', name: 'storeName', index: 'storeName', width: 60, align: 'center'},
  29. // {label: '活动id', name: 'storeTopicId', index: 'store_topic_id', width: 80},
  30. {label: '活动时间', name: 'inValidTime', index: 'inValidTime', width: 110, align: 'center'},
  31. // {label: '减免方式【minus_mode,00:满足最高层级减一次,10:每满一次减一次】,1、减免方式选择10时,满件、满元每人最多项必填;2、减免方式为00,如设置每满100(2件)减10元,满200(4件)减20元....等; 按最高层级优惠满减,仅减一次。', name: 'minusMode', index: 'minus_mode', width: 80},
  32. // {label: '满元减条件(元)', name: 'yuanMinusCond', index: 'yuan_minus_cond', width: 80},
  33. // {label: '满元减优惠(元)', name: 'yuanMinusPref', index: 'yuan_minus_pref', width: 80},
  34. // {label: '满件减条件(件)', name: 'pieceMinusConf', index: 'piece_minus_conf', width: 80},
  35. // {label: '满件减优惠(元)', name: 'pieceMinusPref', index: 'piece_minus_pref', width: 80},
  36. // {label: '满减件每人优惠(元),填0代表不设置上限,减免活动类型为10,且减免方式选择10时,满件每人最多项必填。', name: 'pieceMinusEachDisc', index: 'piece_minus_each_disc', width: 80},
  37. // {label: '满元折条件(元),大于等于0的2位小数', name: 'yuanDiscCond', index: 'yuan_disc_cond', width: 80},
  38. // {label: '满元折优惠(折),大于0且小于10的1位小数。', name: 'yuanDiscPref', index: 'yuan_disc_pref', width: 80},
  39. // {label: '满件折条件(件),大于等于0的整数', name: 'pieceDiscConf', index: 'piece_disc_conf', width: 80},
  40. // {label: '满件折优惠(折),大于0且小于10的数,可带1位小数。', name: 'pieceDiscPref', index: 'piece_disc_pref', width: 80},
  41. // {label: '适用类型,【apply_type,00:全部商品参与,01:指定商品参与,02:指定商品不参与】', name: 'applyType', index: 'apply_type', width: 80},
  42. {label: '是否有效', name: 'isValid', index: 'is_valid', width: 50, align: 'center',
  43. formatter: function (value) {
  44. if (value == '0') {
  45. return '有效';
  46. } else if (value == '1') {
  47. return '无效';
  48. }
  49. return '';
  50. }},
  51. {label: '活动状态', name: 'isPast', index: 'is_past', width: 50, align: 'center',
  52. formatter: function (value) {
  53. if (value == '0') {
  54. return '<span style="font-weight: bolder;background: #58d44d;color: white">进行中</span>';
  55. } else if (value == '1') {
  56. return '<span style="font-weight: bolder;background: #B2AEBC;color: white;">已结束</span>';
  57. }else if (value == '2') {
  58. return '<span style="font-weight: bolder;background: red;color: white">未开始</span>';
  59. }
  60. return '';
  61. }},
  62. {label: '统计', name: 'minusStat', index: 'promStat', width: 70, align: 'center'},
  63. {label: '操作', width: 150, align: 'center', sortable: false,
  64. formatter: function (value, col, row) {
  65. let htmlStr = '';
  66. if ((row.isPast == '1' || row.isValid == 1) && row.applyType != '00') {//已结束,适用类型不为全部商品
  67. htmlStr = "<button class='btn btn-outline btn-primary' " +
  68. "onclick='vm.showInfo(" + row.campMinusId + ")'>活动详情</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  69. "<button class='btn btn-outline btn-primary' " +
  70. "onclick='vm.showGoods(" + row.campMinusId + ")'>查看商品</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  71. "<button class='btn btn-outline btn-primary' " +
  72. "onclick='vm.delById(" + row.campMinusId + ")'>删除活动</button>";
  73. }
  74. if ((row.isPast == '0' && row.isValid == 0) && row.applyType != '00') {//进行中,适用类型不为全部商品
  75. htmlStr = "<button class='btn btn-outline btn-primary' " +
  76. "onclick='vm.updateById(" + row.campMinusId + ")'>编辑活动</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  77. "<button class='btn btn-outline btn-primary' " +
  78. "onclick='vm.updatePastById(" + row.campMinusId + ")'>结束活动</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  79. "<button class='btn btn-outline btn-primary' " +
  80. "onclick='vm.updateGoods("+row.storeId+",\""+row.goodsBizType+"\","+row.campMinusId+",\""+row.applyType+"\","+row.storeTopicId+")'>管理商品</button>&nbsp;&nbsp;&nbsp;&nbsp;"/* +
  81. TODO req_hidden_20200610
  82. "<button class='btn btn-outline btn-primary' " +
  83. "onclick='vm.putOn(" + row.campMinusId + ")'>投放</button>"*/;
  84. }
  85. if ((row.isPast == '2' && row.isValid == 0) && row.applyType != '00') {//未开始,适用类型不为全部商品
  86. htmlStr = "<button class='btn btn-outline btn-primary' " +
  87. "onclick='vm.updateById(" + row.campMinusId + ")'>编辑活动</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  88. "<button class='btn btn-outline btn-primary' " +
  89. "onclick='vm.updateStartPastById(" + row.campMinusId + ")'>立即开始</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  90. "<button class='btn btn-outline btn-primary' " +
  91. "onclick='vm.updateGoods("+row.storeId+",\""+row.goodsBizType+"\","+row.campMinusId+",\""+row.applyType+"\","+row.storeTopicId+")'>管理商品</button>&nbsp;&nbsp;&nbsp;&nbsp;" /*+
  92. TODO req_hidden_20200610
  93. "<button class='btn btn-outline btn-primary' " +
  94. "onclick='vm.putOn(" + row.campMinusId + ")'>投放</button>"*/;
  95. }
  96. if ((row.isPast == '1' || row.isValid == 1) && row.applyType == '00') {//已结束,适用类型是00全部商品
  97. htmlStr = "<button class='btn btn-outline btn-primary' " +
  98. "onclick='vm.showInfo(" + row.campMinusId + ")'>活动详情</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  99. "<button class='btn btn-outline btn-primary' " +
  100. "onclick='vm.delById(" + row.campMinusId + ")'>删除活动</button>";
  101. }
  102. if ((row.isPast == '0' && row.isValid == 0) && row.applyType == '00') {//进行中,适用类型是00全部商品
  103. htmlStr = "<button class='btn btn-outline btn-primary' " +
  104. "onclick='vm.updateById(" + row.campMinusId + ")'>编辑活动</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  105. "<button class='btn btn-outline btn-primary' " +
  106. "onclick='vm.updatePastById(" + row.campMinusId + ")'>结束活动</button>&nbsp;&nbsp;&nbsp;&nbsp;" /*+
  107. TODO req_hidden_20200610
  108. "<button class='btn btn-outline btn-primary' " +
  109. "onclick='vm.putOn(" + row.campMinusId + ")'>投放</button>"*/;
  110. }
  111. if ((row.isPast == '2' && row.isValid == 0) && row.applyType == '00') {//未开始,适用类型是00全部商品
  112. htmlStr = "<button class='btn btn-outline btn-primary' " +
  113. "onclick='vm.updateById(" + row.campMinusId + ")'>编辑活动</button>&nbsp;&nbsp;&nbsp;&nbsp;" +
  114. "<button class='btn btn-outline btn-primary' " +
  115. "onclick='vm.updateStartPastById(" + row.campMinusId + ")'>立即开始</button>&nbsp;&nbsp;&nbsp;&nbsp;" /*+
  116. TODO req_hidden_20200610
  117. "<button class='btn btn-outline btn-primary' " +
  118. "onclick='vm.putOn(" + row.campMinusId + ")'>投放</button>"*/;
  119. }
  120. return htmlStr;
  121. }
  122. }
  123. ],
  124. viewrecords: true,
  125. height: 580,
  126. rowNum: 10,
  127. rowList: [10, 30, 50],
  128. rownumbers: true,
  129. rownumWidth: 25,
  130. autowidth: true,
  131. multiselect: true,
  132. pager: "#jqGridPager",
  133. jsonReader: {
  134. root: "page.list",
  135. page: "page.currPage",
  136. total: "page.totalPage",
  137. records: "page.totalCount"
  138. },
  139. prmNames: {
  140. page: "page",
  141. rows: "limit",
  142. order: "order"
  143. },
  144. gridComplete: function () {
  145. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
  146. }
  147. });
  148. $("#jqGridOrder").jqGrid({
  149. url: '../mkstorecampminusgoods/queryCampMinusGoodsByIdList',
  150. datatype: "json",
  151. colModel: [
  152. {label: '所属门店', name: 'storeName', index: 'storeName', width: 80, align: 'center'},
  153. {label: '商品名称', name: 'goodsName', index: 'goodsName', width: 80, align: 'center'},
  154. {label: '销售价', name: 'retailPrice', index: 'retailPrice', width: 60, align: 'center'},
  155. {label: '成本价', name: 'marketPrice', index: 'marketPrice', width: 120, align: 'center'},
  156. {label: '实际销量', name: 'actualTotalPrice', index: 'actualTotalPrice', width: 120, align: 'center',
  157. formatter: function (value) {
  158. if (value == null) {
  159. return '0';
  160. }
  161. return value;
  162. }},
  163. {label: '商品状态', name: 'isOnSale', index: 'isOnSale', width: 120, align: 'center',
  164. formatter: function (value) {
  165. if (value == '0') {
  166. return '下架';
  167. } else if (value == '1') {
  168. return '上架';
  169. }
  170. return value;
  171. }
  172. },
  173. {label: '操作', width: 130, align: 'center', sortable: false,
  174. formatter: function (value, col, row) {
  175. let htmlStr = "-" ;
  176. if(!vm.isShowGoods){
  177. htmlStr = "<button class='btn btn-outline btn-primary' " +
  178. "onclick='vm.delCheckGoods(" + row.minusGoodId + ")'>移除</button>" ;
  179. }
  180. return htmlStr;
  181. }
  182. }
  183. ],
  184. viewrecords: true,
  185. height: 550,
  186. width:1680,
  187. rowNum: 10,
  188. rowList: [10, 30, 50],
  189. rownumbers: true,
  190. rownumWidth: 25,
  191. autowidth: false,
  192. multiselect: true,
  193. pager: "#jqGridPagerOrder",
  194. jsonReader: {
  195. root: "page.list",
  196. page: "page.currPage",
  197. total: "page.totalPage",
  198. records: "page.totalCount"
  199. },
  200. prmNames: {
  201. page: "page",
  202. rows: "limit",
  203. order: "order"
  204. },
  205. gridComplete: function () {
  206. $("#jqGridOrder").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
  207. }
  208. });
  209. });
  210. let vm = new Vue({
  211. el: '#rrapp',
  212. data: {
  213. title: null,
  214. mkStoreCampMinus: {},
  215. ruleValidate: {
  216. name: [
  217. {required: true, message: '名称不能为空', trigger: 'blur'}
  218. ]
  219. },
  220. q: {
  221. campName: '',
  222. isPast:''
  223. },
  224. isOperatorShow: false,
  225. thirdMerchantBizList: [],
  226. storeList: [],
  227. showList: true,//新增修改活动框
  228. showViewList: false,//查询页面框
  229. showInfoList: true,//查询明细框
  230. isShowGoods: true,//为true在查看商品页则不能操作【添加商品】,为false则在管理商品页可以操作【添加商品】
  231. updateGoodsList: true,//管理商品框
  232. showStoreGoodsList: true,//添加活动商品框
  233. macros: [],
  234. minusTypeUnitAttrList: [{'yuanMinusCond': '', 'yuanMinusPref': '', 'isDelete': 0}],//满元满减
  235. minusTypePieceAttrList: [{'pieceMinusConf': '', 'pieceMinusPref': '', 'isDelete': 0}],//满件满减
  236. minusTypeDiscUnitAttrList: [{'yuanDiscCond': '', 'yuanDiscPref': '', 'isDelete': 0}],//满元满折
  237. minusTypeDiscPieceAttrList: [{'pieceDiscConf': '', 'pieceDiscPref': '', 'isDelete': 0}],//满件满折
  238. minusTypeUnitMode10List: [{'yuanMinusCond': '', 'yuanMinusPref': '', 'pieceMinusEachDisc': '', 'isDelete': 0}],//满元满减,且减免类型为每满一次减一次
  239. minusTypePieceMode10List: [{'pieceMinusConf': '', 'pieceMinusPref': '', 'pieceMinusEachDisc': '', 'isDelete': 0}],//满件满减,且减免类型为每满一次减一次
  240. isMinusShow: false,
  241. isUnitAttrShow: false,//满元满减
  242. isPieceAttrShow: false,//满件满减
  243. isDiscUnitAttrShow: false,//满元满折
  244. isDiscPieceAttrShow: false,//满件满折
  245. isUnitMode10Show: false,//满元满减,且减免类型为每满一次减一次
  246. isPieceMode10Show: false,//满件满减,且减免类型为每满一次减一次
  247. minusModeType: '',
  248. campMinusType:'',
  249. isValidationByUnit: true,
  250. isValidationByPiece: true,
  251. isValidationByDiscUnit: true,
  252. isValidationByDiscPiece: true,
  253. isValidationByUnitMode: true,
  254. isValidationByPieceMode: true,
  255. g:{
  256. goodsName:''
  257. },
  258. campMinusId: '',
  259. storeId: '',
  260. goodsBizType: '',
  261. applyType: '',
  262. storeTopicId: '',
  263. currentPage: 1,
  264. limit: 30,
  265. totalPage:'',
  266. totalCount:'',
  267. goodsList: [],
  268. s:{
  269. goodsName:''
  270. },
  271. checkGoodsByHtmlList:[],//选择商品前端储存的数组
  272. mkStoreTicketDiscountGoods:{checkGoodsList:[]},
  273. mkStoreCampMinusGoodsEntity:{}
  274. },
  275. methods: {
  276. query: function () {
  277. vm.reload();
  278. },
  279. add: function () {
  280. vm.showList = false;
  281. vm.showViewList = true;
  282. vm.showInfoList = true;
  283. vm.showGoodsList = true;
  284. vm.updateGoodsList = true;
  285. vm.showStoreGoodsList = true;
  286. vm.mkStoreCampMinus = {isValid:'0',isStoreShow:'0',applyType:'00',campMinusType:'00',minusMode:'00',advImgUrl:''};
  287. vm.isMinusShow = true;
  288. vm.minusModeType = '00';
  289. vm.chanCampMinusType('00');
  290. vm.chanMinusMode('00');
  291. vm.title = "新增满减满折活动";
  292. vm.thirdMerchantBizList = [];
  293. vm.storeList = [];
  294. vm.minusTypeUnitAttrList = [{'yuanMinusCond': '', 'yuanMinusPref': '', 'isDelete': 0}];
  295. vm.minusTypePieceAttrList = [{'pieceMinusConf': '', 'pieceMinusPref': '', 'isDelete': 0}];
  296. vm.minusTypeDiscUnitAttrList = [{'yuanDiscCond': '', 'yuanDiscPref': '', 'isDelete': 0}];
  297. vm.minusTypeDiscPieceAttrList = [{'pieceDiscConf': '', 'pieceDiscPref': '', 'isDelete': 0}];
  298. vm.minusTypeUnitMode10List = [{'yuanMinusCond': '', 'yuanMinusPref': '', 'pieceMinusEachDisc': '', 'isDelete': 0}];
  299. vm.minusTypePieceMode10List = [{'pieceMinusConf': '', 'pieceMinusPref': '', 'pieceMinusEachDisc': '', 'isDelete': 0}];
  300. vm.getThirdMerchantBizList();
  301. vm.isOperatorShow = false;
  302. },
  303. update: function (event) {
  304. let campMinusId = getSelectedRow();
  305. if (campMinusId == null) {
  306. return;
  307. }
  308. vm.showList = false;
  309. vm.showViewList = true;
  310. vm.showInfoList = true;
  311. vm.showGoodsList = true;
  312. vm.updateGoodsList = true;
  313. vm.showStoreGoodsList = true;
  314. vm.title = "修改满减满折活动";
  315. vm.isOperatorShow = true;
  316. vm.getThirdMerchantBizList();
  317. vm.getInfo(campMinusId)
  318. },
  319. updateById: function (campMinusId) {
  320. if (campMinusId == null) {
  321. return;
  322. }
  323. vm.showList = false;
  324. vm.showViewList = true;
  325. vm.showInfoList = true;
  326. vm.showGoodsList = true;
  327. vm.updateGoodsList = true;
  328. vm.showStoreGoodsList = true;
  329. vm.isMinusShow = true;
  330. vm.title = "修改满减满折活动";
  331. vm.getThirdMerchantBizList();
  332. vm.getInfo(campMinusId);
  333. vm.isOperatorShow = true;
  334. },
  335. showInfo: function(campMinusId){
  336. if(campMinusId == null){
  337. return;
  338. }
  339. vm.title = "查看满减满折信息";
  340. vm.showList = true;
  341. vm.showViewList = true;
  342. vm.showInfoList = false;
  343. vm.showGoodsList = true;
  344. vm.updateGoodsList = true;
  345. vm.showStoreGoodsList = true;
  346. vm.getShowInfo(campMinusId);
  347. },
  348. showGoods: function (campMinusId) {
  349. if(campMinusId == null){
  350. return;
  351. }
  352. vm.title = "查看商品";
  353. vm.showList = true;
  354. vm.showViewList = true;
  355. vm.showInfoList = true;
  356. vm.updateGoodsList = false;
  357. vm.isShowGoods = true;//为true则不可以添加商品
  358. vm.showStoreGoodsList = true;
  359. vm.reloadOrder();
  360. },
  361. updateGoods: function (storeId,goodsBizType,campMinusId,applyType,storeTopicId) {
  362. if(storeId == null || goodsBizType == null || campMinusId == null || applyType == null || storeTopicId == null){
  363. return;
  364. }
  365. vm.campMinusId = campMinusId;
  366. vm.storeId = storeId;
  367. vm.goodsBizType = goodsBizType;
  368. vm.applyType = applyType;
  369. vm.storeTopicId = storeTopicId;
  370. vm.title = "管理商品";
  371. vm.showList = true;
  372. vm.showViewList = true;
  373. vm.showInfoList = true;
  374. vm.updateGoodsList = false;
  375. vm.isShowGoods = false;//为false则可以添加商品
  376. vm.showStoreGoodsList = true;
  377. vm.reloadOrderSearch();
  378. },
  379. queryOrder: function () {
  380. vm.reloadOrder();
  381. },
  382. reloadOrderSearch: function() {
  383. vm.g = {
  384. goodsName: ''
  385. }
  386. vm.reloadOrder();
  387. },
  388. reloadOrder: function () {
  389. let page = $("#jqGridOrder").jqGrid('getGridParam', 'page');
  390. $("#jqGridOrder").jqGrid('setGridParam', {
  391. postData: {'goodsName': vm.g.goodsName, 'campMinusId': vm.campMinusId},
  392. page: page
  393. }).trigger("reloadGrid");
  394. },
  395. saveCampMinusGoods: function () {
  396. if(vm.storeId == null || vm.goodsBizType == null || vm.storeTopicId == null){
  397. return;
  398. }
  399. vm.title = "添加活动商品";
  400. vm.showList = true;
  401. vm.showViewList = true;
  402. vm.showInfoList = true;
  403. vm.updateGoodsList = true;
  404. vm.showStoreGoodsList = false;
  405. //查询门店业务类型下的商品列表
  406. vm.getGoodsList(vm.storeId,vm.goodsBizType);
  407. },
  408. /**
  409. * 选择商品参数查询
  410. */
  411. reloadGoodsByStore: function (){
  412. vm.getGoodsList(vm.storeId,vm.goodsBizType);
  413. },
  414. /**
  415. * 选择商品重置参数查询
  416. */
  417. reloadGoodsSearch: function (){
  418. vm.s.goodsName='';
  419. vm.getGoodsList(vm.storeId,vm.goodsBizType);
  420. },
  421. /**
  422. * 返回管理商品
  423. */
  424. reloadCampGoods: function () {
  425. vm.showList = true;
  426. vm.showViewList = true;
  427. vm.showInfoList = true;
  428. vm.updateGoodsList = false;
  429. vm.isShowGoods = false;//为false则可以添加商品
  430. vm.showStoreGoodsList = true;
  431. vm.reloadOrder();
  432. },
  433. /**
  434. * 商品选中
  435. * @param item 商品信息
  436. */
  437. selectThisGoods: function (item) {
  438. if(item.isCheck==0){
  439. for(var i = 0; i < vm.goodsList.length; i++){
  440. if(vm.goodsList[i].goodsId == item.goodsId){
  441. vm.goodsList[i].isCheck = 1;
  442. }
  443. }
  444. vm.checkGoodsByHtmlList.push({goodsId: item.goodsId, storeRealId: item.id, goodsName: item.goodsName, applyType: vm.applyType, discGoodTempId:item.discGoodTempId});
  445. }else{
  446. for(var i = 0; i < vm.goodsList.length; i++){
  447. if(vm.goodsList[i].goodsId == item.goodsId){
  448. vm.goodsList[i].isCheck = 0;
  449. }
  450. }
  451. for (var g = 0; g < vm.checkGoodsByHtmlList.length; g++) {
  452. if(item.goodsId == vm.checkGoodsByHtmlList[g].goodsId){
  453. vm.checkGoodsByHtmlList.remove(vm.checkGoodsByHtmlList[g]);
  454. }
  455. }
  456. //删除取消选中的商品
  457. vm.mkStoreTicketDiscountGoods.storeRelaId=item.id;
  458. $.ajax({
  459. type: "POST",
  460. url: '../mkstoreticketgoodstemp/updateTempByStoreTopicIsValid',
  461. contentType: "application/json",
  462. data: JSON.stringify(vm.mkStoreTicketDiscountGoods),
  463. success: function (r) {
  464. }
  465. });
  466. }
  467. },
  468. /**
  469. * 选择指定商品保存按钮
  470. */
  471. ok : function () {
  472. vm.checkGoodsDataList =[];
  473. vm.mkStoreTicketDiscountGoods.checkGoodsList = vm.checkGoodsByHtmlList;
  474. vm.mkStoreTicketDiscountGoods.isSubmit = 0;//ok按钮提交的数据则为0
  475. vm.mkStoreTicketDiscountGoods.storeTopicId = vm.storeTopicId;
  476. $.ajax({
  477. type: "POST",
  478. url: '../mkstoreticketgoodstemp/batchSaveStoreTopicGoods',
  479. contentType: "application/json",
  480. data: JSON.stringify(vm.mkStoreTicketDiscountGoods),
  481. success: function (r) {
  482. if (r.code === 0) {
  483. vm.mkStoreCampMinusGoodsEntity.storeTopicId = vm.storeTopicId;
  484. vm.mkStoreCampMinusGoodsEntity.campMinusId = vm.campMinusId;
  485. $.ajax({
  486. type: "POST",
  487. url: '../mkstorecampminusgoods/batchSaveCampMinusGoods',
  488. contentType: "application/json",
  489. data: JSON.stringify(vm.mkStoreCampMinusGoodsEntity),
  490. success: function (r) {
  491. if (r.code === 0) {
  492. vm.reloadCampGoods();
  493. } else {
  494. alert(r.msg);
  495. }
  496. }
  497. });
  498. } else {
  499. alert(r.msg);
  500. }
  501. }
  502. });
  503. },
  504. /**
  505. * 选择指定商品取消按钮
  506. */
  507. cancel: function () {
  508. vm.checkGoodsByHtmlList =[];
  509. // console.log(vm.checkGoodsByHtmlList);
  510. //点击取消按钮如有分页记录的数据就删除
  511. vm.mkStoreTicketDiscountGoods.checkGoodsList=vm.checkGoodsByHtmlList;
  512. vm.mkStoreTicketDiscountGoods.isSubmit = 1;//cancel按钮提交的数据则为1
  513. $.ajax({
  514. type: "POST",
  515. url: '../mkstoreticketgoodstemp/batchSaveStoreTopicGoods',
  516. contentType: "application/json",
  517. data: JSON.stringify(vm.mkStoreTicketDiscountGoods),
  518. success: function (r) {
  519. if (r.code === 0) {
  520. vm.reloadCampGoods();
  521. } else {
  522. alert(r.msg);
  523. }
  524. }
  525. });
  526. },
  527. /**
  528. * 指定商品分页,分页则将当前页选中的商品保存
  529. */
  530. loadGoodsDataByPage: function (value) {
  531. vm.currentPage = value;
  532. vm.mkStoreTicketDiscountGoods.checkGoodsList=vm.checkGoodsByHtmlList;//选择商品前端储存的数组
  533. vm.mkStoreTicketDiscountGoods.isSubmit = 1;//分页记录的数据则为1
  534. vm.mkStoreTicketDiscountGoods.storeTopicId = vm.storeTopicId;
  535. $.ajax({
  536. type: "POST",
  537. url: '../mkstoreticketgoodstemp/batchSaveStoreTopicGoods',
  538. contentType: "application/json",
  539. data: JSON.stringify(vm.mkStoreTicketDiscountGoods),
  540. success: function (r) {
  541. if (r.code === 0) {
  542. } else {
  543. alert(r.msg);
  544. }
  545. }
  546. });
  547. vm.getGoodsList(vm.storeId, vm.goodsBizType);
  548. },
  549. handlePageSize: function (value) {
  550. vm.limit = value;
  551. vm.currentPage = 1;
  552. vm.getGoodsList(vm.storeId);
  553. },
  554. /**
  555. * 删除已选中商品
  556. * @param minusGoodId
  557. */
  558. delCheckGoods: function (minusGoodId) {
  559. var minusGoodIds = [minusGoodId];
  560. if (minusGoodIds == null){
  561. return;
  562. }
  563. confirm('所选中的商品移除后,将不再参加此活动', function () {
  564. $.ajax({
  565. type: "POST",
  566. url: "../mkstorecampminusgoods/delete",
  567. contentType: "application/json",
  568. data: JSON.stringify(minusGoodIds),
  569. success: function (r) {
  570. if (r.code == 0) {
  571. alert('操作成功', function (index) {
  572. vm.reloadOrder();
  573. });
  574. } else {
  575. alert(r.msg);
  576. }
  577. }
  578. });
  579. });
  580. },
  581. /**
  582. * 查询选择商品分页
  583. * @param storeId
  584. */
  585. getGoodsList: function(storeId,goodsBizType){
  586. if(vm.storeId == null || vm.goodsBizType == null || vm.storeTopicId == null){
  587. return;
  588. }
  589. $.get("../productstorerela/queryGoodsRealListByTopicId?storeId=" + storeId +"&goodsName="+vm.s.goodsName+"&applyType="+vm.applyType+"&goodsBizType="+goodsBizType
  590. +"&storeTopicId="+vm.storeTopicId+"&page="+vm.currentPage+"&limit="+vm.limit, function (r) {
  591. if(r.code == 0){
  592. vm.goodsList = r.page.list;
  593. vm.totalPage = r.page.totalPage;
  594. vm.totalCount = r.page.totalCount;
  595. vm.currentPage = r.page.currPage;
  596. vm.limit = r.page.pageSize;
  597. }
  598. });
  599. },
  600. putOn: function (campMinusId) {
  601. if (campMinusId == null) {
  602. return;
  603. }
  604. $("#qrcodeCanvas").html("");
  605. $.get("../mkstorecampminus/qrcodeCanvasByCampMinus/" + campMinusId, function (r) {
  606. var qrcSrc = r.url;
  607. $("#qrcImg .qrcImg").attr("src", qrcSrc);
  608. $("#qrcodeCanvas").html($("#qrcImg").html());
  609. openWindow({
  610. title: "二维码",
  611. area: ['450px', '450px'],
  612. content: jQuery("#qrcode"),
  613. btn1: function (index) {
  614. $("#qrcImg").show();
  615. $("#qrcImg").hide();
  616. layer.close(index);
  617. }
  618. });
  619. });
  620. $("#qrcImg").hide();
  621. },
  622. saveOrUpdate: function (event) {
  623. let url = vm.mkStoreCampMinus.campMinusId == null ? "../mkstorecampminus/save" : "../mkstorecampminus/update";
  624. vm.mkStoreCampMinus.minusTypeUnitAttrList = vm.minusTypeUnitAttrList;
  625. vm.mkStoreCampMinus.minusTypePieceAttrList = vm.minusTypePieceAttrList;
  626. vm.mkStoreCampMinus.minusTypeDiscUnitAttrList = vm.minusTypeDiscUnitAttrList;
  627. vm.mkStoreCampMinus.minusTypeDiscPieceAttrList = vm.minusTypeDiscPieceAttrList;
  628. vm.mkStoreCampMinus.minusTypeUnitMode10List = vm.minusTypeUnitMode10List;
  629. vm.mkStoreCampMinus.minusTypePieceMode10List = vm.minusTypePieceMode10List;
  630. if(vm.mkStoreCampMinus.campMinusType=='00' && vm.mkStoreCampMinus.minusMode=='00'){
  631. if(!vm.isValidationByUnit){
  632. alert('优惠内容活动层级信息错误,请根据错误提示修改正确');
  633. return;
  634. }
  635. }
  636. if(vm.mkStoreCampMinus.campMinusType=='00' && vm.mkStoreCampMinus.minusMode=='10'){
  637. if(!vm.isValidationByUnitMode){
  638. alert('优惠内容活动层级信息错误,请根据错误提示修改正确');
  639. return;
  640. }
  641. }
  642. if(vm.mkStoreCampMinus.campMinusType=='01' && vm.mkStoreCampMinus.minusMode=='00'){
  643. if(!vm.isValidationByPiece){
  644. alert('优惠内容活动层级信息错误,请根据错误提示修改正确');
  645. return;
  646. }
  647. }
  648. if(vm.mkStoreCampMinus.campMinusType=='01' && vm.mkStoreCampMinus.minusMode=='10'){
  649. if(!vm.isValidationByPieceMode){
  650. alert('优惠内容活动层级信息错误,请根据错误提示修改正确');
  651. return;
  652. }
  653. }
  654. if(vm.mkStoreCampMinus.campMinusType=='10'){
  655. if(!vm.isValidationByDiscUnit){
  656. alert('优惠内容活动层级信息错误,请根据错误提示修改正确');
  657. return;
  658. }
  659. }
  660. if(vm.mkStoreCampMinus.campMinusType=='11'){
  661. if(!vm.isValidationByDiscPiece){
  662. alert('优惠内容活动层级信息错误,请根据错误提示修改正确');
  663. return;
  664. }
  665. }
  666. $.ajax({
  667. type: "POST",
  668. url: url,
  669. contentType: "application/json",
  670. data: JSON.stringify(vm.mkStoreCampMinus),
  671. success: function (r) {
  672. if (r.code === 0) {
  673. alert('操作成功', function (index) {
  674. vm.reload();
  675. });
  676. } else {
  677. alert(r.msg);
  678. }
  679. }
  680. });
  681. },
  682. del: function (event) {
  683. let campMinusIds = getSelectedRows();
  684. if (campMinusIds == null){
  685. return;
  686. }
  687. confirm('确定要删除选中的记录?', function () {
  688. $.ajax({
  689. type: "POST",
  690. url: "../mkstorecampminus/delete",
  691. contentType: "application/json",
  692. data: JSON.stringify(campMinusIds),
  693. success: function (r) {
  694. if (r.code == 0) {
  695. alert('操作成功', function (index) {
  696. $("#jqGrid").trigger("reloadGrid");
  697. });
  698. } else {
  699. alert(r.msg);
  700. }
  701. }
  702. });
  703. });
  704. },
  705. delById: function (campMinusId) {
  706. if (campMinusId == null){
  707. return;
  708. }
  709. let campMinusIds = [campMinusId];
  710. confirm('确定要删除选中的记录?', function () {
  711. $.ajax({
  712. type: "POST",
  713. url: "../mkstorecampminus/delete",
  714. contentType: "application/json",
  715. data: JSON.stringify(campMinusIds),
  716. success: function (r) {
  717. if (r.code == 0) {
  718. alert('操作成功', function (index) {
  719. $("#jqGrid").trigger("reloadGrid");
  720. });
  721. } else {
  722. alert(r.msg);
  723. }
  724. }
  725. });
  726. });
  727. },
  728. updatePastById: function (campMinusId) {
  729. if (campMinusId == null){
  730. return;
  731. }
  732. confirm('结束进行中的活动会影响用户正常购买,建议您提前告知或说明,确定要结束活动吗?', function () {
  733. $.ajax({
  734. type: "POST",
  735. url: "../mkstorecampminus/updatePastById",
  736. contentType: "application/json",
  737. data: JSON.stringify(campMinusId),
  738. success: function (r) {
  739. if (r.code == 0) {
  740. alert('操作成功', function (index) {
  741. $("#jqGrid").trigger("reloadGrid");
  742. });
  743. } else {
  744. alert(r.msg);
  745. }
  746. }
  747. });
  748. });
  749. },
  750. updateStartPastById: function (campMinusId) {
  751. if (campMinusId == null){
  752. return;
  753. }
  754. confirm('开始后,活动立即生效,确定要开始活动吗?', function () {
  755. $.ajax({
  756. type: "POST",
  757. url: "../mkstorecampminus/updateStartPastById",
  758. contentType: "application/json",
  759. data: JSON.stringify(campMinusId),
  760. success: function (r) {
  761. if (r.code == 0) {
  762. alert('操作成功', function (index) {
  763. $("#jqGrid").trigger("reloadGrid");
  764. });
  765. } else {
  766. alert(r.msg);
  767. }
  768. }
  769. });
  770. });
  771. },
  772. getInfo: function(campMinusId){
  773. $.get("../mkstorecampminus/info/"+campMinusId, function (r) {
  774. vm.mkStoreCampMinus = r.mkStoreCampMinus;
  775. vm.minusModeType = r.mkStoreCampMinus.minusModeType;
  776. vm.minusMode = r.mkStoreCampMinus.minusMode;
  777. vm.chanCampMinusType(r.mkStoreCampMinus.campMinusType);
  778. vm.chanMinusMode(r.mkStoreCampMinus.minusMode);
  779. if (r.mkStoreCampMinus.minusTypeUnitAttrList.length > 0) {
  780. vm.minusTypeUnitAttrList = r.mkStoreCampMinus.minusTypeUnitAttrList;
  781. for(var i=0; i<r.mkStoreCampMinus.minusTypeUnitAttrList.length; i++){
  782. $("#"+(i+'unit')).html('');
  783. $("#"+(i+'unit_pref')).html('');
  784. }
  785. } else {
  786. vm.minusTypeUnitAttrList = [{'yuanMinusCond': '', 'yuanMinusPref': '', 'isDelete': 0}];
  787. }
  788. if (r.mkStoreCampMinus.minusTypePieceAttrList.length > 0) {
  789. vm.minusTypePieceAttrList = r.mkStoreCampMinus.minusTypePieceAttrList;
  790. for(var i=0; i<r.mkStoreCampMinus.minusTypePieceAttrList.length; i++){
  791. $("#"+(i+'piece_conf')).html('');
  792. $("#"+(i+'piece_pref')).html('');
  793. }
  794. } else {
  795. vm.minusTypePieceAttrList = [{'pieceMinusConf': '', 'pieceMinusPref': '', 'isDelete': 0}];
  796. }
  797. if (r.mkStoreCampMinus.minusTypeDiscUnitAttrList.length > 0) {
  798. vm.minusTypeDiscUnitAttrList = r.mkStoreCampMinus.minusTypeDiscUnitAttrList;
  799. for(var i=0; i<r.mkStoreCampMinus.minusTypeDiscUnitAttrList.length; i++){
  800. $("#"+(i+'disc_unit_cond')).html('');
  801. $("#"+(i+'disc_unit_pref')).html('');
  802. }
  803. } else {
  804. vm.minusTypeDiscUnitAttrList = [{'yuanDiscCond': '', 'yuanDiscPref': '', 'isDelete': 0}];
  805. }
  806. if (r.mkStoreCampMinus.minusTypeDiscPieceAttrList.length > 0) {
  807. vm.minusTypeDiscPieceAttrList = r.mkStoreCampMinus.minusTypeDiscPieceAttrList;
  808. for(var i=0; i<r.mkStoreCampMinus.minusTypeDiscPieceAttrList.length; i++){
  809. $("#"+(i+'piece_disc_conf')).html('');
  810. $("#"+(i+'piece_disc_ref')).html('');
  811. }
  812. } else {
  813. vm.minusTypeDiscPieceAttrList = [{'pieceDiscConf': '', 'pieceDiscPref': '', 'isDelete': 0}];
  814. }
  815. if (r.mkStoreCampMinus.minusTypeUnitMode10List.length > 0) {
  816. vm.minusTypeUnitMode10List = r.mkStoreCampMinus.minusTypeUnitMode10List;
  817. for(var i=0; i<r.mkStoreCampMinus.minusTypeUnitMode10List.length; i++){
  818. $("#"+(i+'unit_mode')).html('');
  819. $("#"+(i+'unit_mode_pref')).html('');
  820. $("#"+(i+'unit_mode_each')).html('');
  821. }
  822. } else {
  823. vm.minusTypeUnitMode10List = [{'yuanMinusCond': '', 'yuanMinusPref': '', 'pieceMinusEachDisc': '', 'isDelete': 0}];
  824. }
  825. if (r.mkStoreCampMinus.minusTypePieceMode10List.length > 0) {
  826. vm.minusTypePieceMode10List = r.mkStoreCampMinus.minusTypePieceMode10List;
  827. for(var i=0; i<r.mkStoreCampMinus.minusTypePieceMode10List.length; i++){
  828. $("#"+(i+'piece_mode')).html('');
  829. $("#"+(i+'piece_mode_pref')).html('');
  830. $("#"+(i+'piece_mode_each')).html('');
  831. }
  832. } else {
  833. vm.minusTypePieceMode10List = [{'pieceMinusConf': '', 'pieceMinusPref': '', 'pieceMinusEachDisc': '', 'isDelete': 0}];
  834. }
  835. });
  836. },
  837. getShowInfo: function(campMinusId){
  838. $.get("../mkstorecampminus/info/"+campMinusId, function (r) {
  839. vm.mkStoreCampMinus = r.mkStoreCampMinus;
  840. if (r.mkStoreCampMinus.minusTypeUnitAttrList.length > 0) {
  841. vm.minusTypeUnitAttrList = r.mkStoreCampMinus.minusTypeUnitAttrList;
  842. } else {
  843. vm.minusTypeUnitAttrList = [];
  844. }
  845. if (r.mkStoreCampMinus.minusTypePieceAttrList.length > 0) {
  846. vm.minusTypePieceAttrList = r.mkStoreCampMinus.minusTypePieceAttrList;
  847. } else {
  848. vm.minusTypePieceAttrList = [];
  849. }
  850. if (r.mkStoreCampMinus.minusTypeDiscUnitAttrList.length > 0) {
  851. vm.minusTypeDiscUnitAttrList = r.mkStoreCampMinus.minusTypeDiscUnitAttrList;
  852. } else {
  853. vm.minusTypeDiscUnitAttrList = [];
  854. }
  855. if (r.mkStoreCampMinus.minusTypeDiscPieceAttrList.length > 0) {
  856. vm.minusTypeDiscPieceAttrList = r.mkStoreCampMinus.minusTypeDiscPieceAttrList;
  857. } else {
  858. vm.minusTypeDiscPieceAttrList = [];
  859. }
  860. if (r.mkStoreCampMinus.minusTypeUnitMode10List.length > 0) {
  861. vm.minusTypeUnitMode10List = r.mkStoreCampMinus.minusTypeUnitMode10List;
  862. } else {
  863. vm.minusTypeUnitMode10List = [];
  864. }
  865. if (r.mkStoreCampMinus.minusTypePieceMode10List.length > 0) {
  866. vm.minusTypePieceMode10List = r.mkStoreCampMinus.minusTypePieceMode10List;
  867. } else {
  868. vm.minusTypePieceMode10List = [];
  869. }
  870. });
  871. },
  872. getThirdMerchantBizList: function() {
  873. $.get("../thirdmerchantbiz/queryAll", function (r) {
  874. vm.thirdMerchantBizList = r.list;
  875. });
  876. },
  877. changeStore: function (option) {
  878. var thirdMerchSn = option.value;
  879. if(thirdMerchSn){
  880. vm.getStoreList(thirdMerchSn);
  881. }
  882. },
  883. getStoreList: function(thirdMerchSn){
  884. $.get("../store/queryAll?thirdMerchSn=" + thirdMerchSn, function (r) {
  885. vm.storeList = r.list;
  886. });
  887. },
  888. reloadSearch: function() {
  889. vm.q = {
  890. campName: '',
  891. isPast:''
  892. }
  893. vm.reload();
  894. },
  895. reload: function (event) {
  896. vm.showList = true;
  897. vm.showViewList = false;
  898. vm.showInfoList = true;
  899. vm.updateGoodsList = true;
  900. vm.showStoreGoodsList = true;
  901. let page = $("#jqGrid").jqGrid('getGridParam', 'page');
  902. $("#jqGrid").jqGrid('setGridParam', {
  903. postData: {'campName': vm.q.campName,"isPast":vm.q.isPast},
  904. page: page
  905. }).trigger("reloadGrid");
  906. vm.handleReset('formValidate');
  907. },
  908. /**
  909. * 详情页返回
  910. * @param event
  911. */
  912. reloadInfoBack: function (event) {
  913. vm.showList = true;
  914. vm.showViewList = false;
  915. vm.showInfoList = true;
  916. vm.updateGoodsList = true;
  917. vm.showStoreGoodsList = true;
  918. let page = $("#jqGrid").jqGrid('getGridParam', 'page');
  919. $("#jqGrid").jqGrid('setGridParam', {
  920. postData: {'campName': vm.q.campName,"isPast":vm.q.isPast},
  921. page: page
  922. }).trigger("reloadGrid");
  923. vm.handleReset('formValidate');
  924. },
  925. handleSubmit: function (name) {
  926. handleSubmitValidate(this, name, function () {
  927. vm.saveOrUpdate()
  928. });
  929. },
  930. handleReset: function (name) {
  931. handleResetForm(this, name);
  932. },
  933. handleSuccessAdvImgUrl: function (res, file) {
  934. vm.mkStoreCampMinus.advImgUrl = file.response.url;
  935. },
  936. handleFormatError: function (file) {
  937. this.$Notice.warning({
  938. title: '文件格式不正确',
  939. desc: '文件 ' + file.name + ' 格式不正确,请上传 jpg 或 png 格式的图片。'
  940. });
  941. },
  942. handleMaxSize: function (file) {
  943. this.$Notice.warning({
  944. title: '超出文件大小限制',
  945. desc: '文件 ' + file.name + ' 太大,不能超过 100K。'
  946. });
  947. },
  948. eyeImageAdvImgUrl: function () {
  949. var url = vm.mkStoreCampMinus.advImgUrl;
  950. eyeImage(url);
  951. },
  952. /**
  953. * 减免活动类型联动 00:满x元减,01:满x件减,10:满x元折,11:满x件折,减免活动类型为00,01时,减免方式必选
  954. * @param value
  955. */
  956. chanCampMinusType: function (value) {
  957. if(value == '00'){
  958. vm.campMinusType = '00';
  959. vm.isMinusShow = true;
  960. vm.isUnitAttrShow = true;
  961. vm.isPieceAttrShow = false;
  962. vm.isDiscUnitAttrShow = false;
  963. vm.isDiscPieceAttrShow = false;
  964. vm.isUnitMode10Show = false;
  965. vm.isPieceMode10Show = false;
  966. if(!vm.isOperatorShow){
  967. vm.mkStoreCampMinus.minusMode='00';
  968. }
  969. }
  970. if(value == '01'){
  971. vm.campMinusType = '01';
  972. vm.isMinusShow = true;
  973. vm.isUnitAttrShow = false;
  974. vm.isPieceAttrShow = true;
  975. vm.isDiscUnitAttrShow = false;
  976. vm.isDiscPieceAttrShow = false;
  977. vm.isUnitMode10Show = false;
  978. vm.isPieceMode10Show = false;
  979. if(!vm.isOperatorShow){
  980. vm.mkStoreCampMinus.minusMode='00';
  981. }
  982. }
  983. if(value == '10'){
  984. vm.campMinusType = '10';
  985. vm.isMinusShow = false;
  986. vm.isUnitAttrShow = false;
  987. vm.isPieceAttrShow = false;
  988. vm.isDiscUnitAttrShow = true;
  989. vm.isDiscPieceAttrShow = false;
  990. vm.isUnitMode10Show = false;
  991. vm.isPieceMode10Show = false;
  992. }
  993. if(value == '11'){
  994. vm.campMinusType = '11';
  995. vm.isMinusShow = false;
  996. vm.isUnitAttrShow = false;
  997. vm.isPieceAttrShow = false;
  998. vm.isDiscUnitAttrShow = false;
  999. vm.isDiscPieceAttrShow = true;
  1000. vm.isUnitMode10Show = false;
  1001. vm.isPieceMode10Show = false;
  1002. }
  1003. },
  1004. /**
  1005. * 减免方式联动 00:满足最高层级减一次,10:每满一次减一次
  1006. * @param value
  1007. */
  1008. chanMinusMode: function (value) {
  1009. //满x元减,满足最高层级减一次
  1010. if(value == '00' && vm.campMinusType == '00'){
  1011. vm.minusModeType = '00';
  1012. vm.isMinusShow = true;
  1013. vm.isUnitAttrShow = true;
  1014. vm.isPieceAttrShow = false;
  1015. vm.isDiscUnitAttrShow = false;
  1016. vm.isDiscPieceAttrShow = false;
  1017. vm.isUnitMode10Show = false;
  1018. vm.isPieceMode10Show = false;
  1019. }
  1020. if(value == '00' && vm.campMinusType == '01'){
  1021. vm.minusModeType = '00';
  1022. vm.isMinusShow = true;
  1023. vm.isUnitAttrShow = false;
  1024. vm.isPieceAttrShow = true;
  1025. vm.isDiscUnitAttrShow = false;
  1026. vm.isDiscPieceAttrShow = false;
  1027. vm.isUnitMode10Show = false;
  1028. vm.isPieceMode10Show = false;
  1029. }
  1030. if(value == '10' && vm.campMinusType == '00'){
  1031. vm.minusModeType = '10';
  1032. vm.isMinusShow = true;
  1033. vm.isUnitAttrShow = false;
  1034. vm.isPieceAttrShow = false;
  1035. vm.isDiscUnitAttrShow = false;
  1036. vm.isDiscPieceAttrShow = false;
  1037. vm.isUnitMode10Show = true;
  1038. vm.isPieceMode10Show = false;
  1039. }
  1040. if(value == '10' && vm.campMinusType == '01'){
  1041. vm.minusModeType = '10';
  1042. vm.isMinusShow = true;
  1043. vm.isUnitAttrShow = false;
  1044. vm.isPieceAttrShow = false;
  1045. vm.isDiscUnitAttrShow = false;
  1046. vm.isDiscPieceAttrShow = false;
  1047. vm.isUnitMode10Show = false;
  1048. vm.isPieceMode10Show = true;
  1049. }
  1050. },
  1051. addAttrRow1: function () {
  1052. if(vm.minusTypeUnitAttrList.length <10){
  1053. vm.minusTypeUnitAttrList.push({'yuanMinusCond': '', 'yuanMinusPref': '', 'isDelete': 0});
  1054. }
  1055. },
  1056. delAttrRow1: function (index) {
  1057. //最后一行时禁止删除
  1058. if (vm.minusTypeUnitAttrList.length == 1) {
  1059. return;
  1060. }
  1061. vm.minusTypeUnitAttrList[index].isDelete = 1;
  1062. var minusTypeUnitAttrList = [];
  1063. for(var i=0;i<vm.minusTypeUnitAttrList.length;i++){
  1064. if(vm.minusTypeUnitAttrList[i].isDelete == 0){
  1065. minusTypeUnitAttrList.push(vm.minusTypeUnitAttrList[i]);
  1066. }
  1067. }
  1068. vm.minusTypeUnitAttrList = minusTypeUnitAttrList;
  1069. },
  1070. addAttrRow2: function () {
  1071. if(vm.minusTypePieceAttrList.length <10) {
  1072. vm.minusTypePieceAttrList.push({'pieceMinusConf': '', 'pieceMinusPref': '', 'isDelete': 0});
  1073. }
  1074. },
  1075. delAttrRow2: function (index) {
  1076. //最后一行时禁止删除
  1077. if (vm.minusTypePieceAttrList.length == 1) {
  1078. return;
  1079. }
  1080. vm.minusTypePieceAttrList[index].isDelete = 1;
  1081. var minusTypePieceAttrList = [];
  1082. for(var i=0;i<vm.minusTypePieceAttrList.length;i++){
  1083. if(vm.minusTypePieceAttrList[i].isDelete == 0){
  1084. minusTypePieceAttrList.push(vm.minusTypePieceAttrList[i]);
  1085. }
  1086. }
  1087. vm.minusTypePieceAttrList = minusTypePieceAttrList;
  1088. },
  1089. addAttrRow3: function () {
  1090. if(vm.minusTypeDiscUnitAttrList.length <10) {
  1091. vm.minusTypeDiscUnitAttrList.push({'yuanDiscCond': '', 'yuanDiscPref': '', 'isDelete': 0});
  1092. }
  1093. },
  1094. delAttrRow3: function (index) {
  1095. //最后一行时禁止删除
  1096. if (vm.minusTypeDiscUnitAttrList.length == 1) {
  1097. return;
  1098. }
  1099. vm.minusTypeDiscUnitAttrList[index].isDelete = 1;
  1100. var minusTypeDiscUnitAttrList = [];
  1101. for(var i=0;i<vm.minusTypeDiscUnitAttrList.length;i++){
  1102. if(vm.minusTypeDiscUnitAttrList[i].isDelete == 0){
  1103. minusTypeDiscUnitAttrList.push(vm.minusTypeDiscUnitAttrList[i]);
  1104. }
  1105. }
  1106. vm.minusTypeDiscUnitAttrList = minusTypeDiscUnitAttrList;
  1107. },
  1108. addAttrRow4: function () {
  1109. if(vm.minusTypeDiscPieceAttrList.length <10) {
  1110. vm.minusTypeDiscPieceAttrList.push({'pieceDiscConf': '', 'pieceDiscPref': '', 'isDelete': 0});
  1111. }
  1112. },
  1113. delAttrRow4: function (index) {
  1114. //最后一行时禁止删除
  1115. if (vm.minusTypeDiscPieceAttrList.length == 1) {
  1116. return;
  1117. }
  1118. vm.minusTypeDiscPieceAttrList[index].isDelete = 1;
  1119. var minusTypeDiscUnitAttrList = [];
  1120. for(var i=0;i<vm.minusTypeDiscPieceAttrList.length;i++){
  1121. if(vm.minusTypeDiscPieceAttrList[i].isDelete == 0){
  1122. minusTypeDiscUnitAttrList.push(vm.minusTypeDiscPieceAttrList[i]);
  1123. }
  1124. }
  1125. vm.minusTypeDiscPieceAttrList = minusTypeDiscPieceAttrList;
  1126. },
  1127. checkNumber: function(value) {
  1128. var re = /^\d+(\.\d{1,2})?$/;
  1129. if (value != "") {
  1130. if (!re.test(value)) {
  1131. return false;
  1132. }
  1133. }
  1134. return true;
  1135. },
  1136. checkList: function (list, value) {
  1137. for(var i=0; i < list.length; i++){
  1138. if(list[i] != null && list[i] != undefined && list[i] != ''){
  1139. if(value >= list[i]){
  1140. return false;
  1141. }
  1142. }
  1143. }
  1144. return true;
  1145. },
  1146. /**
  1147. * 满元满减,校验【满元减条件】
  1148. * @param index 当前编辑的活动层级条件
  1149. */
  1150. checkCoudByUnitAttr: function (index) {
  1151. var minusTypeUnitAttrList = vm.minusTypeUnitAttrList;
  1152. var inputY = parseFloat(minusTypeUnitAttrList[index].yuanMinusCond);
  1153. if(minusTypeUnitAttrList[index].yuanMinusCond == ''){
  1154. $("#"+(index+'unit')).html('* 不能为空');
  1155. vm.isValidationByUnit = false;
  1156. return;
  1157. }else {
  1158. //先把非数字的都替换掉,除了数字和.
  1159. minusTypeUnitAttrList[index].yuanMinusCond = minusTypeUnitAttrList[index].yuanMinusCond.replace(/[^\d.]/g,"");
  1160. //必须保证第一个为数字而不是.
  1161. minusTypeUnitAttrList[index].yuanMinusCond = minusTypeUnitAttrList[index].yuanMinusCond.replace(/^\./g,"");
  1162. //保证只有出现一个.而没有多个.
  1163. minusTypeUnitAttrList[index].yuanMinusCond = minusTypeUnitAttrList[index].yuanMinusCond.replace(/\.{2,}/g,".");
  1164. //保证.只出现一次,而不能出现两次以上
  1165. minusTypeUnitAttrList[index].yuanMinusCond = minusTypeUnitAttrList[index].yuanMinusCond.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
  1166. minusTypeUnitAttrList[index].yuanMinusCond = minusTypeUnitAttrList[index].yuanMinusCond.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数
  1167. if(minusTypeUnitAttrList[index].yuanMinusCond.indexOf(".")< 0 && minusTypeUnitAttrList[index].yuanMinusCond !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
  1168. minusTypeUnitAttrList[index].yuanMinusCond= parseFloat(minusTypeUnitAttrList[index].yuanMinusCond)+'';
  1169. }
  1170. var re = /^\d+(\.\d{1,2})?$/
  1171. if (!re.test(vm.minusTypeUnitAttrList[index].yuanMinusCond)) {
  1172. $("#"+(index+'unit')).html('* 最多只保留小数点后2位的正数');
  1173. vm.isValidationByUnit = false;
  1174. return;
  1175. }else{
  1176. $("#"+(index+'unit')).html('');
  1177. vm.isValidationByUnit = true;
  1178. }
  1179. if (vm.minusTypeUnitAttrList[index].yuanMinusCond>=vm.minusTypeUnitAttrList[index].yuanMinusPref) {
  1180. $("#"+(index+'unit')).html('');
  1181. $("#"+(index+'unit_pref')).html('');
  1182. vm.isValidationByUnit = true;
  1183. }else{
  1184. $("#"+(index+'unit')).html('* 不能小于满元减优惠'+vm.minusTypeUnitAttrList[index].yuanMinusPref);
  1185. vm.isValidationByUnit = false;
  1186. return;
  1187. }
  1188. }
  1189. if(minusTypeUnitAttrList[0].yuanMinusCond != null){
  1190. for (var i = 0; i < minusTypeUnitAttrList.length; i++) {
  1191. if(minusTypeUnitAttrList[i].yuanMinusCond != ''){
  1192. //下层比较
  1193. if(index<i){
  1194. // console.log(index+"<="+i+";输入:"+inputY+"<比较"+minusTypeUnitAttrList[i].yuanMinusCond);
  1195. if(inputY >= minusTypeUnitAttrList[i].yuanMinusCond && minusTypeUnitAttrList[i].yuanMinusCond != ''){
  1196. // console.log("下层比较,不满足条件1:"+(index+10));
  1197. $("#"+(index+'unit')).html('* 层级必须递增且不可相同');
  1198. $("#"+(i+'unit')).html('* 层级必须递增且不可相同');
  1199. vm.isValidationByUnit = false;
  1200. }
  1201. if(inputY < minusTypeUnitAttrList[i].yuanMinusCond && minusTypeUnitAttrList[i].yuanMinusCond != ''){
  1202. if(minusTypeUnitAttrList.length > 1){
  1203. var yuanMinusCond = '';
  1204. if((i+1) == minusTypeUnitAttrList.length){
  1205. yuanMinusCond = '';
  1206. }else{
  1207. yuanMinusCond = minusTypeUnitAttrList[i+1].yuanMinusCond;
  1208. }
  1209. // console.log("下层比较,"+minusTypeUnitAttrList[i].yuanMinusCond+">"+(i+1)+"层比较:"+yuanMinusCond);
  1210. if(yuanMinusCond != '' && minusTypeUnitAttrList[i].yuanMinusCond >= parseFloat(yuanMinusCond)){
  1211. // console.log("下层比较,不满足条件1:"+(i+10));
  1212. $("#"+(i+'unit')).html('* 层级必须递增且不可相同');
  1213. $("#"+(index+'unit')).html('* 层级必须递增且不可相同');
  1214. vm.isValidationByUnit = false;
  1215. }else {
  1216. // console.log("下层比较,满足条件1:"+(i+10));
  1217. $("#"+(i+'unit')).html('');
  1218. $("#"+(index+'unit')).html('');
  1219. vm.isValidationByUnit = true;
  1220. }
  1221. }else{
  1222. // console.log("下层比较,满足条件1:"+(i+10));
  1223. $("#"+(i+'unit')).html('');
  1224. $("#"+(index+'unit')).html('');
  1225. vm.isValidationByUnit = true;
  1226. }
  1227. }
  1228. }
  1229. //上层比较
  1230. if(index>i){
  1231. // console.log(index+">"+i+";输入:"+inputY+">比较"+minusTypeUnitAttrList[i].yuanMinusCond);
  1232. if(inputY <= minusTypeUnitAttrList[i].yuanMinusCond && minusTypeUnitAttrList[i].yuanMinusCond != ''){
  1233. // console.log("上层比较,不满足条件2:"+(index+10));
  1234. $("#"+(index+'unit')).html('* 层级必须递增且不可相同');
  1235. $("#"+(i+'unit')).html('* 层级必须递增且不可相同');
  1236. vm.isValidationByUnit = false;
  1237. }
  1238. if(inputY > minusTypeUnitAttrList[i].yuanMinusCond && minusTypeUnitAttrList[i].yuanMinusCond != ''){
  1239. if(minusTypeUnitAttrList.length > 1){
  1240. var yuanMinusCond = '';
  1241. if((i+1) == minusTypeUnitAttrList.length){
  1242. yuanMinusCond = '';
  1243. }else{
  1244. yuanMinusCond = minusTypeUnitAttrList[i+1].yuanMinusCond;
  1245. }
  1246. // console.log("上层比较,"+minusTypeUnitAttrList[i].yuanMinusCond+">"+(i+1)+"层比较:"+yuanMinusCond);
  1247. if(yuanMinusCond != '' && minusTypeUnitAttrList[i].yuanMinusCond >= parseFloat(yuanMinusCond)){
  1248. // console.log("上层比较,不满足条件1:"+(i+10));
  1249. $("#"+(i+'unit')).html('* 层级必须递增且不可相同');
  1250. $("#"+(index+'unit')).html('* 层级必须递增且不可相同');
  1251. vm.isValidationByUnit = false;
  1252. }else {
  1253. // console.log("上层比较,满足条件2:"+(i+10));
  1254. $("#"+(i+'unit')).html('');
  1255. $("#"+(index+'unit')).html('');
  1256. vm.isValidationByUnit = true;
  1257. }
  1258. }else{
  1259. // console.log("上层比较,满足条件2:"+(i+10));
  1260. $("#"+(i+'unit')).html('');
  1261. $("#"+(index+'unit')).html('');
  1262. vm.isValidationByUnit = true;
  1263. }
  1264. }
  1265. }
  1266. }else{
  1267. $("#"+(index+'unit')).html('');
  1268. vm.isValidationByUnit = true;
  1269. }
  1270. }
  1271. }
  1272. },
  1273. /**
  1274. * 满元满减,校验【满元减优惠】
  1275. * @param index
  1276. */
  1277. checkYuanMinusPref: function (index) {
  1278. //先把非数字的都替换掉,除了数字和.
  1279. vm.minusTypeUnitAttrList[index].yuanMinusPref = vm.minusTypeUnitAttrList[index].yuanMinusPref.replace(/[^\d.]/g,"");
  1280. var re = /^\d+(\.\d{1,2})?$/;
  1281. if (vm.minusTypeUnitAttrList[index].yuanMinusPref != '') {
  1282. if (!re.test(vm.minusTypeUnitAttrList[index].yuanMinusPref)) {
  1283. $("#"+(index+'unit_pref')).html('* 最多只保留小数点后2位的正数');
  1284. vm.isValidationByUnit = false;
  1285. }else if (vm.minusTypeUnitAttrList[index].yuanMinusPref<= 0) {
  1286. $("#"+(index+'unit_pref')).html('* 不能小于等于0');
  1287. vm.isValidationByUnit = false;
  1288. }else if (vm.minusTypeUnitAttrList[index].yuanMinusPref>vm.minusTypeUnitAttrList[index].yuanMinusCond) {
  1289. $("#"+(index+'unit_pref')).html('* 不能大于满元减条件'+vm.minusTypeUnitAttrList[index].yuanMinusCond);
  1290. vm.isValidationByUnit = false;
  1291. }else{
  1292. if(vm.minusTypeUnitAttrList[index].yuanMinusPref<vm.minusTypeUnitAttrList[index].yuanMinusCond){
  1293. $("#"+(index+'unit')).html('');
  1294. }
  1295. $("#"+(index+'unit_pref')).html('');
  1296. vm.isValidationByUnit = true;
  1297. }
  1298. }
  1299. },
  1300. /**
  1301. * 满件满减,校验【满件减条件】
  1302. * @param index 当前编辑的活动层级条件
  1303. */
  1304. checkCoudByPieceAttr: function (index) {
  1305. vm.minusTypePieceAttrList[index].pieceMinusConf = vm.minusTypePieceAttrList[index].pieceMinusConf.replace(/[^\d]/g,"");
  1306. var re = /^[+]{0,1}(\d+)$/;
  1307. if (vm.minusTypePieceAttrList[index].pieceMinusConf != '') {
  1308. if (!re.test(vm.minusTypePieceAttrList[index].pieceMinusConf)) {
  1309. $("#"+(index+'piece_conf')).html('* 只允许输入大于等于0的整数');
  1310. vm.isValidationByPiece = false;
  1311. }else if(vm.minusTypePieceAttrList[index].pieceMinusConf < 0){
  1312. $("#"+(index+'piece_conf')).html('* 只允许输入大于等于0的整数');
  1313. vm.isValidationByPiece = false;
  1314. }else{
  1315. $("#"+(index+'piece_conf')).html('');
  1316. vm.isValidationByPiece = true;
  1317. }
  1318. var minusTypePieceAttrList = vm.minusTypePieceAttrList;
  1319. var inputY = parseInt(minusTypePieceAttrList[index].pieceMinusConf);
  1320. for (var i = 0; i < minusTypePieceAttrList.length; i++) {
  1321. if(minusTypePieceAttrList[i].pieceMinusConf != ''){
  1322. //下层比较
  1323. if(index<i){
  1324. if(inputY >= minusTypePieceAttrList[i].pieceMinusConf && minusTypePieceAttrList[i].pieceMinusConf != ''){
  1325. $("#"+(index+'piece_conf')).html('* 层级必须递增且不可相同');
  1326. $("#"+(i+'piece_conf')).html('* 层级必须递增且不可相同');
  1327. vm.isValidationByPiece = false;
  1328. }
  1329. if(inputY < minusTypePieceAttrList[i].pieceMinusConf && minusTypePieceAttrList[i].pieceMinusConf != ''){
  1330. if(minusTypePieceAttrList.length > 1){
  1331. var pieceMinusConf = '';
  1332. if((i+1) == minusTypePieceAttrList.length){
  1333. pieceMinusConf = '';
  1334. }else{
  1335. pieceMinusConf = minusTypePieceAttrList[i+1].pieceMinusConf;
  1336. }
  1337. if(pieceMinusConf != '' && minusTypePieceAttrList[i].pieceMinusConf >= parseInt(pieceMinusConf)){
  1338. $("#"+(i+'piece_conf')).html('* 层级必须递增且不可相同');
  1339. $("#"+(index+'piece_conf')).html('* 层级必须递增且不可相同');
  1340. vm.isValidationByPiece = false;
  1341. }else {
  1342. $("#"+(i+'piece_conf')).html('');
  1343. $("#"+(index+'piece_conf')).html('');
  1344. vm.isValidationByPiece = true;
  1345. }
  1346. }else{
  1347. $("#"+(i+'piece_conf')).html('');
  1348. $("#"+(index+'piece_conf')).html('');
  1349. vm.isValidationByPiece = true;
  1350. }
  1351. }
  1352. }
  1353. //上层比较
  1354. if(index>i){
  1355. if(inputY <= minusTypePieceAttrList[i].pieceMinusConf && minusTypePieceAttrList[i].pieceMinusConf != ''){
  1356. $("#"+(index+'piece_conf')).html('* 层级必须递增且不可相同');
  1357. $("#"+(i+'piece_conf')).html('* 层级必须递增且不可相同');
  1358. vm.isValidationByPiece = false;
  1359. }
  1360. if(inputY > minusTypePieceAttrList[i].pieceMinusConf && minusTypePieceAttrList[i].pieceMinusConf != ''){
  1361. if(minusTypePieceAttrList.length > 1){
  1362. var pieceMinusConf = '';
  1363. if((i+1) == minusTypePieceAttrList.length){
  1364. pieceMinusConf = '';
  1365. }else{
  1366. pieceMinusConf = minusTypePieceAttrList[i+1].pieceMinusConf;
  1367. }
  1368. if(pieceMinusConf != '' && minusTypePieceAttrList[i].pieceMinusConf >= parseInt(pieceMinusConf)){
  1369. $("#"+(i+'piece_conf')).html('* 层级必须递增且不可相同');
  1370. $("#"+(index+'piece_conf')).html('* 层级必须递增且不可相同');
  1371. vm.isValidationByPiece = false;
  1372. }else {
  1373. $("#"+(i+'piece_conf')).html('');
  1374. $("#"+(index+'piece_conf')).html('');
  1375. vm.isValidationByPiece = true;
  1376. }
  1377. }else{
  1378. $("#"+(i+'piece_conf')).html('');
  1379. $("#"+(index+'piece_conf')).html('');
  1380. vm.isValidationByPiece = true;
  1381. }
  1382. }
  1383. }
  1384. }else{
  1385. $("#"+(index+'piece_conf')).html('');
  1386. vm.isValidationByPiece = true;
  1387. }
  1388. }
  1389. }
  1390. },
  1391. /**
  1392. * 满件满减,校验【满件减优惠】
  1393. * @param index
  1394. */
  1395. checkPieceMinusPref: function (index) {
  1396. vm.minusTypePieceAttrList[index].pieceMinusPref = vm.minusTypePieceAttrList[index].pieceMinusPref.replace(/[^\d.]/g,"");
  1397. var re = /^\d+(\.\d{1,2})?$/
  1398. if (vm.minusTypePieceAttrList[index].pieceMinusPref != '') {
  1399. if (!re.test(vm.minusTypePieceAttrList[index].pieceMinusPref)) {
  1400. $("#"+(index+'piece_pref')).html('* 最多只保留小数点后2位的正数');
  1401. vm.isValidationByPiece = false;
  1402. }else if (vm.minusTypePieceAttrList[index].pieceMinusPref<= 0) {
  1403. $("#"+(index+'piece_pref')).html('* 不能小于等于0');
  1404. vm.isValidationByPiece = false;
  1405. }else{
  1406. $("#"+(index+'piece_pref')).html('');
  1407. vm.isValidationByPiece = true;
  1408. }
  1409. }
  1410. },
  1411. /**
  1412. * 满元满折,校验【满元折条件】
  1413. * @param index
  1414. */
  1415. checkYuanDiscCondByDiscUnit: function (index) {
  1416. vm.minusTypeDiscUnitAttrList[index].yuanDiscCond = vm.minusTypeDiscUnitAttrList[index].yuanDiscCond.replace(/[^\d.]/g,"");
  1417. var re = /^\d+(\.\d{1,2})?$/
  1418. if (vm.minusTypeDiscUnitAttrList[index].yuanDiscCond != '') {
  1419. if (!re.test(vm.minusTypeDiscUnitAttrList[index].yuanDiscCond)) {
  1420. $("#"+(index+'disc_unit_cond')).html('* 最多只保留小数点后2位的正数');
  1421. vm.isValidationByDiscUnit = false;
  1422. }else if (vm.minusTypeDiscUnitAttrList[index].yuanDiscCond< 0) {
  1423. $("#"+(index+'disc_unit_cond')).html('* 不能小于0');
  1424. vm.isValidationByDiscUnit = false;
  1425. }else{
  1426. $("#"+(index+'disc_unit_cond')).html('');
  1427. vm.isValidationByDiscUnit = true;
  1428. }
  1429. var minusTypeDiscUnitAttrList = vm.minusTypeDiscUnitAttrList;
  1430. var inputY = parseFloat(minusTypeDiscUnitAttrList[index].yuanDiscCond);
  1431. for (var i = 0; i < minusTypeDiscUnitAttrList.length; i++) {
  1432. if(minusTypeDiscUnitAttrList[i].yuanDiscCond != ''){
  1433. //下层比较
  1434. if(index<i){
  1435. if(inputY >= minusTypeDiscUnitAttrList[i].yuanDiscCond && minusTypeDiscUnitAttrList[i].yuanDiscCond != ''){
  1436. $("#"+(index+'disc_unit_cond')).html('* 层级必须递增且不可相同');
  1437. $("#"+(i+'disc_unit_cond')).html('* 层级必须递增且不可相同');
  1438. vm.isValidationByDiscUnit = false;
  1439. }
  1440. if(inputY < minusTypeDiscUnitAttrList[i].yuanDiscCond && minusTypeDiscUnitAttrList[i].yuanDiscCond != ''){
  1441. if(minusTypeDiscUnitAttrList.length > 1){
  1442. var yuanDiscCond = '';
  1443. if((i+1) == minusTypeDiscUnitAttrList.length){
  1444. yuanDiscCond = '';
  1445. }else{
  1446. yuanDiscCond = minusTypeDiscUnitAttrList[i+1].yuanDiscCond;
  1447. }
  1448. if(yuanDiscCond != '' && minusTypeDiscUnitAttrList[i].yuanDiscCond >= parseFloat(yuanDiscCond)){
  1449. $("#"+(i+'disc_unit_cond')).html('* 层级必须递增且不可相同');
  1450. $("#"+(index+'disc_unit_cond')).html('* 层级必须递增且不可相同');
  1451. vm.isValidationByDiscUnit = false;
  1452. }else {
  1453. $("#"+(i+'disc_unit_cond')).html('');
  1454. $("#"+(index+'disc_unit_cond')).html('');
  1455. vm.isValidationByDiscUnit = true;
  1456. }
  1457. }else{
  1458. $("#"+(i+'disc_unit_cond')).html('');
  1459. $("#"+(index+'disc_unit_cond')).html('');
  1460. vm.isValidationByDiscUnit = true;
  1461. }
  1462. }
  1463. }
  1464. //上层比较
  1465. if(index>i){
  1466. if(inputY <= minusTypeDiscUnitAttrList[i].yuanDiscCond && minusTypeDiscUnitAttrList[i].yuanDiscCond != ''){
  1467. $("#"+(index+'disc_unit_cond')).html('* 层级必须递增且不可相同');
  1468. $("#"+(i+'disc_unit_cond')).html('* 层级必须递增且不可相同');
  1469. vm.isValidationByDiscUnit = false;
  1470. }
  1471. if(inputY > minusTypeDiscUnitAttrList[i].yuanDiscCond && minusTypeDiscUnitAttrList[i].yuanDiscCond != ''){
  1472. if(minusTypeDiscUnitAttrList.length > 1){
  1473. var yuanDiscCond = '';
  1474. if((i+1) == minusTypeDiscUnitAttrList.length){
  1475. yuanDiscCond = '';
  1476. }else{
  1477. yuanDiscCond = minusTypeDiscUnitAttrList[i+1].yuanDiscCond;
  1478. }
  1479. if(yuanDiscCond != '' && minusTypeDiscUnitAttrList[i].yuanDiscCond >= parseFloat(yuanDiscCond)){
  1480. $("#"+(i+'disc_unit_cond')).html('* 层级必须递增且不可相同');
  1481. $("#"+(index+'disc_unit_cond')).html('* 层级必须递增且不可相同');
  1482. vm.isValidationByDiscUnit = false;
  1483. }else {
  1484. $("#"+(i+'disc_unit_cond')).html('');
  1485. $("#"+(index+'disc_unit_cond')).html('');
  1486. vm.isValidationByDiscUnit = true;
  1487. }
  1488. }else{
  1489. $("#"+(i+'disc_unit_cond')).html('');
  1490. $("#"+(index+'disc_unit_cond')).html('');
  1491. vm.isValidationByDiscUnit = true;
  1492. }
  1493. }
  1494. }
  1495. }else{
  1496. $("#"+(index+'disc_unit_cond')).html('');
  1497. vm.isValidationByDiscUnit = true;
  1498. }
  1499. }
  1500. }
  1501. },
  1502. /**
  1503. * 满元满折,校验【满元折优惠】
  1504. * @param index
  1505. */
  1506. checkYuanDiscPrefByDiscUnit: function (index) {
  1507. vm.minusTypeDiscUnitAttrList[index].yuanDiscPref = vm.minusTypeDiscUnitAttrList[index].yuanDiscPref.replace(/[^\d.]/g,"");
  1508. var re = /^\d+(\.\d{1,1})?$/
  1509. if (vm.minusTypeDiscUnitAttrList[index].yuanDiscPref != '') {
  1510. if (!re.test(vm.minusTypeDiscUnitAttrList[index].yuanDiscPref)) {
  1511. $("#"+(index+'disc_unit_pref')).html('* 最多只保留小数点后1位的正数');
  1512. vm.isValidationByDiscUnit = false;
  1513. }else if(vm.minusTypeDiscUnitAttrList[index].yuanDiscPref > 10){
  1514. $("#"+(index+'disc_unit_pref')).html('* 请输入不大于 10 的数值');
  1515. vm.isValidationByDiscUnit = false;
  1516. }else if(vm.minusTypeDiscUnitAttrList[index].yuanDiscPref <= 0){
  1517. $("#"+(index+'disc_unit_pref')).html('* 数值不能小于等于0');
  1518. vm.isValidationByDiscUnit = false;
  1519. }else{
  1520. $("#"+(index+'disc_unit_pref')).html('');
  1521. vm.isValidationByDiscUnit = true;
  1522. }
  1523. }
  1524. },
  1525. /**
  1526. * 满件满折,校验【满件折条件】
  1527. * @param index
  1528. */
  1529. checkConfByDiscPiece: function (index) {
  1530. vm.minusTypeDiscPieceAttrList[index].pieceDiscConf = vm.minusTypeDiscPieceAttrList[index].pieceDiscConf.replace(/[^\d]/g,"");
  1531. var re = /^[+]{0,1}(\d+)$/;
  1532. if (vm.minusTypeDiscPieceAttrList[index].pieceDiscConf != '') {
  1533. if (!re.test(vm.minusTypeDiscPieceAttrList[index].pieceDiscConf)) {
  1534. $("#"+(index+'piece_disc_conf')).html('* 只允许输入大于等于0的整数');
  1535. vm.isValidationByDiscPiece = false;
  1536. }else if(vm.minusTypeDiscPieceAttrList[index].pieceDiscConf < 0){
  1537. $("#"+(index+'piece_disc_conf')).html('* 只允许输入大于等于0的整数');
  1538. vm.isValidationByDiscPiece = false;
  1539. }else{
  1540. $("#"+(index+'piece_disc_conf')).html('');
  1541. vm.isValidationByDiscPiece = true;
  1542. }
  1543. var minusTypeDiscPieceAttrList = vm.minusTypeDiscPieceAttrList;
  1544. var inputY = parseInt(minusTypeDiscPieceAttrList[index].pieceDiscConf);
  1545. for (var i = 0; i < minusTypeDiscPieceAttrList.length; i++) {
  1546. if(minusTypeDiscPieceAttrList[i].pieceDiscConf != ''){
  1547. //下层比较
  1548. if(index<i){
  1549. if(inputY >= minusTypeDiscPieceAttrList[i].pieceDiscConf && minusTypeDiscPieceAttrList[i].pieceDiscConf != ''){
  1550. $("#"+(index+'piece_disc_conf')).html('* 层级必须递增且不可相同');
  1551. $("#"+(i+'piece_disc_conf')).html('* 层级必须递增且不可相同');
  1552. vm.isValidationByDiscPiece = false;
  1553. }
  1554. if(inputY < minusTypeDiscPieceAttrList[i].pieceDiscConf && minusTypeDiscPieceAttrList[i].pieceDiscConf != ''){
  1555. if(minusTypeDiscPieceAttrList.length > 1){
  1556. var pieceDiscConf = '';
  1557. if((i+1) == minusTypeDiscPieceAttrList.length){
  1558. pieceDiscConf = '';
  1559. }else{
  1560. pieceDiscConf = minusTypeDiscPieceAttrList[i+1].pieceDiscConf;
  1561. }
  1562. if(pieceDiscConf != '' && minusTypeDiscPieceAttrList[i].pieceDiscConf >= parseInt(pieceDiscConf)){
  1563. $("#"+(i+'piece_disc_conf')).html('* 层级必须递增且不可相同');
  1564. $("#"+(index+'piece_disc_conf')).html('* 层级必须递增且不可相同');
  1565. vm.isValidationByDiscPiece = false;
  1566. }else {
  1567. $("#"+(i+'piece_disc_conf')).html('');
  1568. $("#"+(index+'piece_disc_conf')).html('');
  1569. vm.isValidationByDiscPiece = true;
  1570. }
  1571. }else{
  1572. $("#"+(i+'piece_disc_conf')).html('');
  1573. $("#"+(index+'piece_disc_conf')).html('');
  1574. vm.isValidationByDiscPiece = true;
  1575. }
  1576. }
  1577. }
  1578. //上层比较
  1579. if(index>i){
  1580. if(inputY <= minusTypeDiscPieceAttrList[i].pieceDiscConf && minusTypeDiscPieceAttrList[i].pieceDiscConf != ''){
  1581. $("#"+(index+'piece_disc_conf')).html('* 层级必须递增且不可相同');
  1582. $("#"+(i+'piece_disc_conf')).html('* 层级必须递增且不可相同');
  1583. vm.isValidationByDiscPiece = false;
  1584. }
  1585. if(inputY > minusTypeDiscPieceAttrList[i].pieceDiscConf && minusTypeDiscPieceAttrList[i].pieceDiscConf != ''){
  1586. if(minusTypeDiscPieceAttrList.length > 1){
  1587. var pieceDiscConf = '';
  1588. if((i+1) == minusTypeDiscPieceAttrList.length){
  1589. pieceDiscConf = '';
  1590. }else{
  1591. pieceDiscConf = minusTypeDiscPieceAttrList[i+1].pieceDiscConf;
  1592. }
  1593. if(pieceDiscConf != '' && minusTypeDiscPieceAttrList[i].pieceDiscConf >= parseInt(pieceDiscConf)){
  1594. $("#"+(i+'piece_disc_conf')).html('* 层级必须递增且不可相同');
  1595. $("#"+(index+'piece_disc_conf')).html('* 层级必须递增且不可相同');
  1596. vm.isValidationByDiscPiece = false;
  1597. }else {
  1598. $("#"+(i+'piece_disc_conf')).html('');
  1599. $("#"+(index+'piece_disc_conf')).html('');
  1600. vm.isValidationByDiscPiece = true;
  1601. }
  1602. }else{
  1603. $("#"+(i+'piece_disc_conf')).html('');
  1604. $("#"+(index+'piece_disc_conf')).html('');
  1605. vm.isValidationByDiscPiece = true;
  1606. }
  1607. }
  1608. }
  1609. }else{
  1610. $("#"+(index+'piece_disc_conf')).html('');
  1611. vm.isValidationByDiscPiece = true;
  1612. }
  1613. }
  1614. }else {
  1615. $("#"+(index+'piece_disc_conf')).html('* 不能为空');
  1616. vm.isValidationByDiscPiece = false;
  1617. }
  1618. },
  1619. /**
  1620. * 满件满折,校验【满件折优惠】
  1621. * @param index
  1622. */
  1623. checkPrefByDiscPiece: function (index) {
  1624. vm.minusTypeDiscPieceAttrList[index].pieceDiscPref = vm.minusTypeDiscPieceAttrList[index].pieceDiscPref.replace(/[^\d.]/g,"");
  1625. var re = /^\d+(\.\d{1,1})?$/
  1626. if (vm.minusTypeDiscPieceAttrList[index].pieceDiscPref != '') {
  1627. if (!re.test(vm.minusTypeDiscPieceAttrList[index].pieceDiscPref)) {
  1628. $("#"+(index+'piece_disc_ref')).html('* 最多只保留小数点后1位的正数');
  1629. vm.isValidationByDiscPiece = false;
  1630. }else if(vm.minusTypeDiscPieceAttrList[index].pieceDiscPref > 10){
  1631. $("#"+(index+'piece_disc_ref')).html('* 请输入不大于 10 的数值');
  1632. vm.isValidationByDiscPiece = false;
  1633. }else if(vm.minusTypeDiscPieceAttrList[index].pieceDiscPref <= 0){
  1634. $("#"+(index+'piece_disc_ref')).html('* 数值不能小于等于0');
  1635. vm.isValidationByDiscPiece = false;
  1636. }else{
  1637. $("#"+(index+'piece_disc_ref')).html('');
  1638. vm.isValidationByDiscPiece = true;
  1639. }
  1640. }
  1641. },
  1642. /**
  1643. * 满元满减,且减免类型为每满一次减一次,校验【满元减条件】
  1644. * @param index
  1645. */
  1646. checkYuanCondByMode: function (index) {
  1647. vm.minusTypeUnitMode10List[index].yuanMinusCond = vm.minusTypeUnitMode10List[index].yuanMinusCond.replace(/[^\d.]/g,"");
  1648. var re = /^\d+(\.\d{1,2})?$/
  1649. if (vm.minusTypeUnitMode10List[index].yuanMinusCond != '') {
  1650. if (!re.test(vm.minusTypeUnitMode10List[index].yuanMinusCond)) {
  1651. $("#"+(index+'unit_mode')).html('* 最多只保留小数点后2位的正数');
  1652. vm.isValidationByUnitMode = false;
  1653. }else if (vm.minusTypeUnitMode10List[index].yuanMinusCond<= 0) {
  1654. $("#"+(index+'unit_mode')).html('* 不能小于等于0');
  1655. vm.isValidationByUnitMode = false;
  1656. }else{
  1657. $("#"+(index+'unit_mode')).html('');
  1658. vm.isValidationByUnitMode = true;
  1659. }
  1660. }
  1661. },
  1662. /**
  1663. * 满元满减,且减免类型为每满一次减一次,校验【满元减优惠】
  1664. * @param index
  1665. */
  1666. checkYuanPrefByMode: function (index) {
  1667. vm.minusTypeUnitMode10List[index].yuanMinusPref = vm.minusTypeUnitMode10List[index].yuanMinusPref.replace(/[^\d.]/g,"");
  1668. var re = /^\d+(\.\d{1,2})?$/
  1669. if (vm.minusTypeUnitMode10List[index].yuanMinusPref != '') {
  1670. if (!re.test(vm.minusTypeUnitMode10List[index].yuanMinusPref)) {
  1671. $("#"+(index+'unit_mode_pref')).html('* 最多只保留小数点后2位的正数');
  1672. vm.isValidationByUnitMode = false;
  1673. }else if (vm.minusTypeUnitMode10List[index].yuanMinusPref<= 0) {
  1674. $("#"+(index+'unit_mode_pref')).html('* 不能小于等于0');
  1675. vm.isValidationByUnitMode = false;
  1676. }else{
  1677. $("#"+(index+'unit_mode_pref')).html('');
  1678. vm.isValidationByUnitMode = true;
  1679. }
  1680. }
  1681. },
  1682. /**
  1683. * 满元满减,且减免类型为每满一次减一次,校验【每人最多】
  1684. * @param index
  1685. */
  1686. checkEachDiscByUnitMode: function (index) {
  1687. vm.minusTypeUnitMode10List[index].pieceMinusEachDisc = vm.minusTypeUnitMode10List[index].pieceMinusEachDisc.replace(/[^\d.]/g,"");
  1688. var re = /^\d+(\.\d{1,2})?$/
  1689. if (vm.minusTypeUnitMode10List[index].pieceMinusEachDisc != '') {
  1690. if (!re.test(vm.minusTypeUnitMode10List[index].pieceMinusEachDisc)) {
  1691. $("#"+(index+'unit_mode_each')).html('* 最多只保留小数点后2位的正数');
  1692. vm.isValidationByUnitMode = false;
  1693. }else if (vm.minusTypeUnitMode10List[index].pieceMinusEachDisc< 0) {
  1694. $("#"+(index+'unit_mode_each')).html('* 不能小于0');
  1695. vm.isValidationByUnitMode = false;
  1696. }else{
  1697. $("#"+(index+'unit_mode_each')).html('');
  1698. vm.isValidationByUnitMode = true;
  1699. }
  1700. }
  1701. },
  1702. /**
  1703. * 满件满减,且减免类型为每满一次减一次,校验【满件减条件】
  1704. * @param index
  1705. */
  1706. checkPieceConfByMode: function (index) {
  1707. vm.minusTypePieceMode10List[index].pieceMinusConf = vm.minusTypePieceMode10List[index].pieceMinusConf.replace(/[^\d]/g,"");
  1708. var re = /^[+]{0,1}(\d+)$/;
  1709. if (vm.minusTypePieceMode10List[index].pieceMinusConf != '') {
  1710. if (!re.test(vm.minusTypePieceMode10List[index].pieceMinusConf)) {
  1711. $("#"+(index+'piece_mode')).html('* 只允许输入大于0的整数');
  1712. vm.isValidationByPieceMode = false;
  1713. }else if(vm.minusTypePieceMode10List[index].pieceMinusConf <= 0){
  1714. $("#"+(index+'piece_mode')).html('* 只允许输入大于0的整数');
  1715. vm.isValidationByPieceMode = false;
  1716. }else{
  1717. $("#"+(index+'piece_mode')).html('');
  1718. vm.isValidationByPieceMode = true;
  1719. }
  1720. }
  1721. },
  1722. /**
  1723. * 满件满减,且减免类型为每满一次减一次,校验【满件减优惠】
  1724. * @param index
  1725. */
  1726. checkPiecePrefByMode: function (index) {
  1727. vm.minusTypePieceMode10List[index].pieceMinusPref = vm.minusTypePieceMode10List[index].pieceMinusPref.replace(/[^\d.]/g,"");
  1728. var re = /^\d+(\.\d{1,2})?$/
  1729. if (vm.minusTypePieceMode10List[index].pieceMinusPref != '') {
  1730. if (!re.test(vm.minusTypePieceMode10List[index].pieceMinusPref)) {
  1731. $("#"+(index+'piece_mode_pref')).html('* 最多只保留小数点后2位的正数');
  1732. vm.isValidationByPieceMode = false;
  1733. }else if (vm.minusTypePieceMode10List[index].pieceMinusPref<= 0) {
  1734. $("#"+(index+'piece_mode_pref')).html('* 不能小于等于0');
  1735. vm.isValidationByPieceMode = false;
  1736. }else{
  1737. $("#"+(index+'piece_mode_pref')).html('');
  1738. vm.isValidationByPieceMode = true;
  1739. }
  1740. }
  1741. },
  1742. /**
  1743. * 满件满减,且减免类型为每满一次减一次,校验【每人最多】
  1744. * @param index
  1745. */
  1746. checkEachDiscByPieceMode: function (index) {
  1747. vm.minusTypePieceMode10List[index].pieceMinusEachDisc = vm.minusTypePieceMode10List[index].pieceMinusEachDisc.replace(/[^\d.]/g,"");
  1748. var re = /^\d+(\.\d{1,2})?$/
  1749. if (vm.minusTypePieceMode10List[index].pieceMinusEachDisc != '') {
  1750. if (!re.test(vm.minusTypePieceMode10List[index].pieceMinusEachDisc)) {
  1751. $("#"+(index+'piece_mode_each')).html('* 最多只保留小数点后2位的正数');
  1752. vm.isValidationByPieceMode = false;
  1753. }else if (vm.minusTypePieceMode10List[index].pieceMinusEachDisc< 0) {
  1754. $("#"+(index+'piece_mode_each')).html('* 不能小于0');
  1755. vm.isValidationByPieceMode = false;
  1756. }else{
  1757. $("#"+(index+'piece_mode_each')).html('');
  1758. vm.isValidationByPieceMode = true;
  1759. }
  1760. }
  1761. },
  1762. },
  1763. mounted() {
  1764. $.get("../sys/macro/queryMacrosByValue?value=goodsBizType", function (r) {
  1765. vm.macros = r.list;
  1766. });
  1767. }
  1768. });