mkstorecampminus.html 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>门店满减活动</title>
  5. #parse("sys/header.html")
  6. <script src="//unpkg.com/iview/dist/locale/en-US.js"></script>
  7. <style>
  8. .col-sm-3 {
  9. width: 25%;
  10. float: left;
  11. }
  12. .goods-item {
  13. position: relative;
  14. width: 300px;
  15. height: 76px;
  16. border-radius: 4px;
  17. border: 1px solid #e0e0e0;
  18. padding: 10px;
  19. margin-bottom: 10px;
  20. cursor: pointer;
  21. margin-right: 10px;
  22. }
  23. .clearfix {
  24. zoom: 1;
  25. }
  26. .goods-img {
  27. position: relative;
  28. width: 26%;
  29. height: 100%;
  30. border-radius: 4px;
  31. overflow: hidden;
  32. margin-right: 10px;
  33. }
  34. .fl {
  35. float: left;
  36. }
  37. .goods-info {
  38. width: 55%;
  39. }
  40. .goods-mask {
  41. position: absolute;
  42. background-color: #000;
  43. opacity: .5;
  44. width: 100%;
  45. height: 100%;
  46. top: 0;
  47. left: 0;
  48. border-radius: 4px;
  49. display: none;
  50. }
  51. .goods-img>.goods-img-wrapper {
  52. width: 100%;
  53. height: 100%;
  54. }
  55. .goods-img>.bg-model {
  56. position: absolute;
  57. display: none;
  58. top: 0;
  59. left: 0;
  60. width: 100%;
  61. height: 100%;
  62. }
  63. .goods-img>.bg-model>.bg-model-model {
  64. position: absolute;
  65. top: 0;
  66. left: 0;
  67. width: 100%;
  68. height: 100%;
  69. background-color: #000;
  70. opacity: .5;
  71. }
  72. .goods-info>div.goods-intro {
  73. display: inline-block;
  74. width: 170px;
  75. max-height: 40px;
  76. overflow: hidden;
  77. text-overflow: ellipsis;
  78. display: -webkit-box;
  79. -webkit-box-orient: vertical;
  80. -webkit-line-clamp: 2;
  81. line-height: 18px;
  82. }
  83. .goods-info>.goods-price {
  84. position: absolute;
  85. bottom: 12px;
  86. }
  87. .goods-item.select {
  88. border: 1px solid #2589ff;
  89. }
  90. .goods-img>.bg-model>img {
  91. position: absolute;
  92. top: 0;
  93. left: 0;
  94. width: 100%;
  95. z-index: 10;
  96. }
  97. .tick-color-g{
  98. border:3px #206602 solid;
  99. border-radius: 5px;
  100. }
  101. .tick-color-r{
  102. border:3px #990033 solid;
  103. border-radius: 5px;
  104. }
  105. </style>
  106. </head>
  107. <body>
  108. <div id="rrapp" v-cloak>
  109. <Card v-show="!showViewList">
  110. <p slot="title">满减满折</p>
  111. <Row :gutter="16">
  112. <div class="search-group">
  113. <i-col span="4">
  114. <i-input v-model="q.campName" @on-enter="query" placeholder="活动名称"/>
  115. </i-col>
  116. <i-col span="3">
  117. <i-select v-model="q.isPast" placeholder="过期状态" label-in-value>
  118. <i-option value="1">已结束
  119. </i-option>
  120. <i-option value="0">进行中
  121. </i-option>
  122. </i-select>
  123. </i-col>
  124. <i-button @click="query">查询</i-button>
  125. <i-button @click="reloadSearch">重置</i-button>
  126. </div>
  127. <div class="buttons-group">
  128. #if($shiro.hasPermission("mkstorecampminus:save"))
  129. <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
  130. #end
  131. <!--#if($shiro.hasPermission("mkstorecampminus:update"))-->
  132. <!--<i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>-->
  133. <!--#end-->
  134. #if($shiro.hasPermission("mkstorecampminus:delete"))
  135. <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
  136. #end
  137. <a href="${rc.contextPath}/mk/mkcenter.html">
  138. <i-button type="warning" ><i class="fa"></i>&nbsp;返回营销中心页</i-button>
  139. </a>
  140. </div>
  141. </Row>
  142. <table id="jqGrid"></table>
  143. <div id="jqGridPager"></div>
  144. </Card>
  145. <Card v-show="!showList">
  146. <p slot="title">{{title}}</p>
  147. <i-form ref="formValidate" :model="mkStoreCampMinus" :rules="ruleValidate" :label-width="140">
  148. <Tabs value="name1">
  149. <Tab-Pane label="基本信息" name="name1">
  150. <Form-item label="活动名称" prop="campName">
  151. <i-input v-model="mkStoreCampMinus.campName" placeholder="活动名称" style="width: 400px" v-show="!isOperatorShow"></i-input>
  152. <i-input v-model="mkStoreCampMinus.campName" placeholder="活动名称" style="width: 400px" v-show="isOperatorShow" disabled></i-input>
  153. </Form-item>
  154. <!--<Form-item label="活动id" prop="storeTopicId">-->
  155. <!--<i-input v-model="mkStoreCampMinus.storeTopicId" placeholder="活动id"/>-->
  156. <!--</Form-item>-->
  157. <Form-item label="活动起始时间" prop="campBegTime">
  158. <Date-picker type="datetime" format="yyyy-MM-dd HH:mm:ss" v-model="mkStoreCampMinus.campBegTime" placeholder="活动起始时间"
  159. style="width: 240px" v-show="!isOperatorShow"></Date-picker>
  160. <Date-picker type="datetime" format="yyyy-MM-dd HH:mm:ss" v-model="mkStoreCampMinus.campBegTime" placeholder="活动起始时间"
  161. style="width: 240px" v-show="isOperatorShow" disabled></Date-picker>
  162. </Form-item>
  163. <Form-item label="活动结束时间" prop="campEndTime">
  164. <Date-picker type="datetime" format="yyyy-MM-dd HH:mm:ss" v-model="mkStoreCampMinus.campEndTime" placeholder="活动结束时间"
  165. style="width: 240px;"/>
  166. </Form-item>
  167. <Form-item label="减免活动类型" prop="campMinusType">
  168. <!--<i-input v-model="mkStoreCampMinus.campMinusType" placeholder="减免活动类型, 00:满x元减,01:满x件减,10:满x元折,
  169. 11:满x件折,减免活动类型为00,01时,减免方式必选"/>-->
  170. <Radio-group v-model="mkStoreCampMinus.campMinusType" id="minusMode" @on-change="chanCampMinusType" v-show="!isOperatorShow">
  171. <Radio label="00">
  172. <span>满x元减</span>
  173. </Radio>
  174. <Radio label="01">
  175. <span>满x件减</span>
  176. </Radio>
  177. <Radio label="10">
  178. <span>满x元折</span>
  179. </Radio>
  180. <Radio label="11">
  181. <span>满x件折</span>
  182. </Radio>
  183. </Radio-group>
  184. <Radio-group v-model="mkStoreCampMinus.campMinusType" id="minusMode" @on-change="chanCampMinusType" v-show="isOperatorShow">
  185. <Radio label="00" disabled>
  186. <span>满x元减</span>
  187. </Radio>
  188. <Radio label="01" disabled>
  189. <span>满x件减</span>
  190. </Radio>
  191. <Radio label="10" disabled>
  192. <span>满x元折</span>
  193. </Radio>
  194. <Radio label="11" disabled>
  195. <span>满x件折</span>
  196. </Radio>
  197. </Radio-group>
  198. </Form-item>
  199. <Form-item label="减免方式" prop="minusMode" v-show="isMinusShow">
  200. <!--<i-input v-model="mkStoreCampMinus.minusMode" placeholder="减免方式【minus_mode,00:满足最高层级减一次,10:每满一次减一次】,
  201. 1、减免方式选择10时,满件、满元每人最多项必填;2、减免方式为00,如设置每满100(2件)减10元,满200(4件)减20元....等; 按最高层级优惠满减,仅减一次。"/>-->
  202. <Radio-group v-model="mkStoreCampMinus.minusMode" id="minusMode" @on-change="chanMinusMode" v-show="!isOperatorShow">
  203. <Radio label="00">
  204. <span>满足最高层级减一次</span>
  205. </Radio>
  206. <Radio label="10">
  207. <span>每满一次减一次</span>
  208. </Radio>
  209. </Radio-group>
  210. <Radio-group v-model="mkStoreCampMinus.minusMode" id="minusMode" @on-change="chanMinusMode" v-show="isOperatorShow">
  211. <Radio label="00" disabled>
  212. <span>满足最高层级减一次</span>
  213. </Radio>
  214. <Radio label="10" disabled>
  215. <span>每满一次减一次</span>
  216. </Radio>
  217. </Radio-group>
  218. </Form-item>
  219. <Form-item label="优惠内容活动层级">
  220. <!--满元满减-->
  221. <div v-for="(item,index) in minusTypeUnitAttrList" v-show="isUnitAttrShow && item.isDelete==0" style="margin-top: 10px;">
  222. <div class="row">
  223. <div class="col-md-8">
  224. <label class="ivu-form-item-label">满元减条件:</label>
  225. <div class="col-md-5 input-icon right">
  226. <i-input type="text" v-model="item.yuanMinusCond" @on-keyup="checkCoudByUnitAttr(index)"><span slot="append">元</span></i-input>
  227. </div>
  228. <div class="col-md-5">
  229. <span style="color: #aaa">请输入大于等于0的2位小数</span>
  230. <span :id="index+'unit'" style="color: red;"></span>
  231. </div>
  232. </div>
  233. <div class="col-md-8">
  234. <label class="ivu-form-item-label">满元减优惠:</label>
  235. <div class="col-md-5 input-icon right">
  236. <i-input type="text" v-model="item.yuanMinusPref" @on-keyup="checkYuanMinusPref(index)"><span slot="append">元</span></i-input>
  237. </div>
  238. <div class="col-md-5">
  239. <span style="color: #aaa">请输入大于0的2位小数</span>
  240. <span :id="index+'unit_pref'" style="color: red;"></span>
  241. </div>
  242. </div>
  243. <button class="btn red btn-sm" type="button" @click="delAttrRow1(index)" v-show="index>0">
  244. <i class="fa fa-trash-o"></i>
  245. </button>
  246. </div>
  247. </div>
  248. <!--满件满减-->
  249. <div v-for="(item,index) in minusTypePieceAttrList" v-show="isPieceAttrShow && item.isDelete==0" style="margin-top: 10px;">
  250. <div class="row">
  251. <div class="col-md-8">
  252. <label class="ivu-form-item-label">满件减条件:</label>
  253. <div class="col-md-5 input-icon right">
  254. <i-input type="text" v-model="item.pieceMinusConf" @on-keyup="checkCoudByPieceAttr(index)"><span slot="append">件</span></i-input>
  255. </div>
  256. <div class="col-md-5">
  257. <span style="color: #aaa">请输入大于等于0的整数</span>
  258. <span :id="index+'piece_conf'" style="color: red;"></span>
  259. </div>
  260. </div>
  261. <div class="col-md-8">
  262. <label class="ivu-form-item-label">满件减优惠:</label>
  263. <div class="col-md-5 input-icon right">
  264. <i-input type="text" v-model="item.pieceMinusPref" @on-keyup="checkPieceMinusPref(index)"><span slot="append">元</span></i-input>
  265. </div>
  266. <div class="col-md-5">
  267. <span style="color: #aaa">请输入大于0的2位小数</span>
  268. <span :id="index+'piece_pref'" style="color: red;"></span>
  269. </div>
  270. </div>
  271. </button>
  272. <button class="btn red btn-sm" type="button" @click="delAttrRow2(index)" v-show="index>0">
  273. <i class="fa fa-trash-o"></i>
  274. </button>
  275. </div>
  276. </div>
  277. <!--满元满折-->
  278. <div v-for="(item,index) in minusTypeDiscUnitAttrList" v-show="isDiscUnitAttrShow && item.isDelete==0" style="margin-top: 10px;">
  279. <div class="row">
  280. <div class="col-md-8">
  281. <label class="ivu-form-item-label">满元折条件:</label>
  282. <div class="col-md-5 input-icon right">
  283. <i-input type="text" v-model="item.yuanDiscCond" @on-keyup="checkYuanDiscCondByDiscUnit(index)"><span slot="append">元</span></i-input>
  284. </div>
  285. <div class="col-md-5">
  286. <span style="color: #aaa">请输入大于等于0的2位小数</span>
  287. <span :id="index+'disc_unit_cond'" style="color: red;"></span>
  288. </div>
  289. </div>
  290. <div class="col-md-8">
  291. <label class="ivu-form-item-label">满元折优惠:</label>
  292. <div class="col-md-5 input-icon right">
  293. <i-input type="text" v-model="item.yuanDiscPref" @on-keyup="checkYuanDiscPrefByDiscUnit(index)"><span slot="append">折</span></i-input>
  294. </div>
  295. <div class="col-md-5">
  296. <span style="color: #aaa">请输入大于0且小于10的1位小数</span>
  297. <span :id="index+'disc_unit_pref'" style="color: red;"></span>
  298. </div>
  299. </div>
  300. <button class="btn red btn-sm" type="button" @click="delAttrRow3(index)" v-show="index>0">
  301. <i class="fa fa-trash-o"></i>
  302. </button>
  303. </div>
  304. </div>
  305. <!--满件满折-->
  306. <div v-for="(item,index) in minusTypeDiscPieceAttrList" v-show="isDiscPieceAttrShow && item.isDelete==0" style="margin-top: 10px;">
  307. <div class="row">
  308. <div class="col-md-8">
  309. <label class="ivu-form-item-label">满件折条件:</label>
  310. <div class="col-md-5 input-icon right">
  311. <i-input type="text" v-model="item.pieceDiscConf" @on-keyup="checkConfByDiscPiece(index)"><span slot="append">件</span></i-input>
  312. </div>
  313. <div class="col-md-5">
  314. <span style="color: #aaa">请输入大于等于0的整数</span>
  315. <span :id="index+'piece_disc_conf'" style="color: red;"></span>
  316. </div>
  317. </div>
  318. <div class="col-md-8">
  319. <label class="ivu-form-item-label">满件折优惠:</label>
  320. <div class="col-md-5 input-icon right">
  321. <i-input type="text" v-model="item.pieceDiscPref" @on-keyup="checkPrefByDiscPiece(index)"><span slot="append">折</span></i-input>
  322. </div>
  323. <div class="col-md-5">
  324. <span style="color: #aaa">请输入大于0且小于10的1位小数</span>
  325. <span :id="index+'piece_disc_ref'" style="color: red;"></span>
  326. </div>
  327. </div>
  328. <button class="btn red btn-sm" type="button" @click="delAttrRow4(index)" v-show="index>0">
  329. <i class="fa fa-trash-o"></i>
  330. </button>
  331. </div>
  332. </div>
  333. <!--满元满减,且减免类型为每满一次减一次-->
  334. <div v-for="(item,index) in minusTypeUnitMode10List" v-show="isUnitMode10Show">
  335. <div class="row">
  336. <div class="col-md-8">
  337. <label class="ivu-form-item-label">满元减条件:</label>
  338. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  339. <i-input type="text" v-model="item.yuanMinusCond" @on-keyup="checkYuanCondByMode(index)"><span slot="append">元</span></i-input>
  340. </div>
  341. <div class="col-md-5">
  342. <span style="color: #aaa">请输入大于0的2位小数</span>
  343. <span :id="index+'unit_mode'" style="color: red;"></span>
  344. </div>
  345. </div>
  346. <div class="col-md-8">
  347. <label class="ivu-form-item-label">满元减优惠:</label>
  348. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  349. <i-input type="text" v-model="item.yuanMinusPref" @on-keyup="checkYuanPrefByMode(index)"><span slot="append">元</span></i-input>
  350. </div>
  351. <div class="col-md-5">
  352. <span style="color: #aaa">请输入大于0的2位小数</span>
  353. <span :id="index+'unit_mode_pref'" style="color: red;"></span>
  354. </div>
  355. </div>
  356. <div class="col-md-8">
  357. <label class="ivu-form-item-label">满减件每人优惠:</label>
  358. <div class="col-md-5 input-icon right">
  359. <i-input type="text" v-model="item.pieceMinusEachDisc" placeholder="填0代表不设置上限" @on-keyup="checkEachDiscByUnitMode(index)"><span slot="append">元</span></i-input>
  360. </div>
  361. <div class="col-md-5">
  362. <span style="color: #aaa">填0代表不设置上限</span>
  363. <span :id="index+'unit_mode_each'" style="color: red;"></span>
  364. </div>
  365. </div>
  366. </div>
  367. </div>
  368. <!--满件满减,且减免类型为每满一次减一次-->
  369. <div v-for="(item,index) in minusTypePieceMode10List" v-show="isPieceMode10Show">
  370. <div class="row">
  371. <div class="col-md-8">
  372. <label class="ivu-form-item-label">满件减条件:</label>
  373. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  374. <i-input type="text" v-model="item.pieceMinusConf" @on-keyup="checkPieceConfByMode(index)"><span slot="append">件</span></i-input>
  375. </div>
  376. <div class="col-md-5">
  377. <span style="color: #aaa">请输入大于0的整数</span>
  378. <span :id="index+'piece_mode'" style="color: red;"></span>
  379. </div>
  380. </div>
  381. <div class="col-md-8">
  382. <label class="ivu-form-item-label">满件减优惠:</label>
  383. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  384. <i-input type="text" v-model="item.pieceMinusPref" @on-keyup="checkPiecePrefByMode(index)"><span slot="append">元</span></i-input>
  385. </div>
  386. <div class="col-md-5">
  387. <span style="color: #aaa">请输入大于0的2位小数</span>
  388. <span :id="index+'piece_mode_pref'" style="color: red;"></span>
  389. </div>
  390. </div>
  391. <div class="col-md-8">
  392. <label class="ivu-form-item-label">满减件每人优惠:</label>
  393. <div class="col-md-5 input-icon right">
  394. <i-input type="text" v-model="item.pieceMinusEachDisc" placeholder="填0代表不设置上限" @on-keyup="checkEachDiscByPieceMode(index)"><span slot="append">元</span></i-input>
  395. </div>
  396. <div class="col-md-5">
  397. <span style="color: #aaa">填0代表不设置上限</span>
  398. <span :id="index+'piece_mode_each'" style="color: red;"></span>
  399. </div>
  400. </div>
  401. </div>
  402. </div>
  403. <div v-show="isUnitAttrShow" style="margin-top: 10px;">
  404. <button class="btn btn-primary btn-sm" type="button" @click="addAttrRow1">
  405. <i class="fa fa-plus">添加活动层级</i>
  406. </button>最多10级,下单时以满足的最高层级优惠
  407. </div>
  408. <div v-show="isPieceAttrShow" style="margin-top: 10px;">
  409. <button class="btn btn-primary btn-sm" type="button" @click="addAttrRow2">
  410. <i class="fa fa-plus">添加活动层级</i>
  411. </button>最多10级,下单时以满足的最高层级优惠
  412. </div>
  413. <div v-show="isDiscUnitAttrShow" style="margin-top: 10px;">
  414. <button class="btn btn-primary btn-sm" type="button" @click="addAttrRow3">
  415. <i class="fa fa-plus">添加活动层级</i>
  416. </button>最多10级,下单时以满足的最高层级优惠
  417. </div>
  418. <div v-show="isDiscPieceAttrShow" style="margin-top: 10px;">
  419. <button class="btn btn-primary btn-sm" type="button" @click="addAttrRow4">
  420. <i class="fa fa-plus">添加活动层级</i>
  421. </button>最多10级,下单时以满足的最高层级优惠
  422. </div>
  423. </Form-item>
  424. <!--<Form-item label="满元减条件(元)" prop="yuanMinusCond" v-show="isVoucher">
  425. <i-input v-model="mkStoreCampMinus.yuanMinusCond" style="width: 400px" placeholder="满元减条件(元)"><span slot="append">元</span></i-input>
  426. </Form-item>
  427. <Form-item label="满元减优惠(元)" prop="yuanMinusPref" v-show="isVoucher">
  428. <i-input v-model="mkStoreCampMinus.yuanMinusPref" style="width: 400px" placeholder="满元减优惠(元)"><span slot="append">元</span></i-input>
  429. </Form-item>
  430. <Form-item label="满件减条件(件)" prop="pieceMinusConf" v-show="isVoucher">
  431. <i-input v-model="mkStoreCampMinus.pieceMinusConf" style="width: 400px" placeholder="满件减条件(件)"><span slot="append">件</span></i-input>
  432. </Form-item>
  433. <Form-item label="满件减优惠(元)" prop="pieceMinusPref" v-show="isVoucher">
  434. <i-input v-model="mkStoreCampMinus.pieceMinusPref" style="width: 400px" placeholder="满件减优惠(元)"><span slot="append">元</span></i-input>
  435. </Form-item>
  436. <Form-item label="满减件每人优惠(元)" prop="pieceMinusEachDisc" v-show="isVoucher">
  437. <i-input v-model="mkStoreCampMinus.pieceMinusEachDisc" style="width: 400px" placeholder="满减件每人优惠(元),填0代表不设置上限"><span slot="append">元</span></i-input>
  438. </Form-item>
  439. <Form-item label="满元折条件(元)" prop="yuanDiscCond" v-show="isVoucher">
  440. <i-input v-model="mkStoreCampMinus.yuanDiscCond" style="width: 400px" placeholder="满元折条件(元),大于等于0的2位小数"><span slot="append">元</span></i-input>
  441. </Form-item>
  442. <Form-item label="满元折优惠(折)" prop="yuanDiscPref" v-show="isVoucher">
  443. <i-input v-model="mkStoreCampMinus.yuanDiscPref" style="width: 400px" placeholder="满元折优惠(折),大于0且小于10的1位小数"><span slot="append">折</span></i-input>
  444. </Form-item>
  445. <Form-item label="满件折条件(件)" prop="pieceDiscConf" v-show="isVoucher">
  446. <i-input v-model="mkStoreCampMinus.pieceDiscConf" style="width: 400px" placeholder="满件折条件(件),大于等于0的整数"><span slot="append">件</span></i-input>
  447. </Form-item>
  448. <Form-item label="满件折优惠(折)" prop="pieceDiscPref" v-show="isVoucher">
  449. <i-input v-model="mkStoreCampMinus.pieceDiscPref" style="width: 400px" placeholder="满件折优惠(折),大于0且小于10的数,可带1位小数"><span slot="append">折</span></i-input>
  450. </Form-item>-->
  451. </Tab-Pane>
  452. <Tab-Pane label="优惠规则" name="name2">
  453. <Form-item label="所属三方商户" prop="thirdMerchSn">
  454. <i-select v-model="mkStoreCampMinus.thirdMerchSn" placeholder="所属三方商户" style="width: 268px;" @on-change="changeStore" v-show="!isOperatorShow" label-in-value>
  455. <i-option v-for="thirdMerchant in thirdMerchantBizList" :value="thirdMerchant.thirdMerchSn" :key="thirdMerchant.thirdMerchSn">{{thirdMerchant.thirdPartyMerchName}}</i-option>
  456. </i-select>
  457. <i-select v-model="mkStoreCampMinus.thirdMerchSn" placeholder="所属三方商户" style="width: 268px;" @on-change="changeStore" v-show="isOperatorShow" disabled label-in-value>
  458. <i-option v-for="thirdMerchant in thirdMerchantBizList" :value="thirdMerchant.thirdMerchSn" :key="thirdMerchant.thirdMerchSn">{{thirdMerchant.thirdPartyMerchName}}</i-option>
  459. </i-select>
  460. </Form-item>
  461. <Form-item label="所属门店" prop="storeId">
  462. <i-select v-model="mkStoreCampMinus.storeId" placeholder="所属门店" style="width: 268px;" label-in-value v-show="!isOperatorShow">
  463. <i-option v-for="store in storeList" :value="store.id" :key="store.id">{{store.storeName}}
  464. </i-option>
  465. </i-select>
  466. <i-select v-model="mkStoreCampMinus.storeId" placeholder="所属门店" style="width: 268px;" label-in-value v-show="isOperatorShow" disabled>
  467. <i-option v-for="store in storeList" :value="store.id" :key="store.id">{{store.storeName}}
  468. </i-option>
  469. </i-select>
  470. </Form-item>
  471. <Form-item label="货品业务类型" prop="goodsBizType" >
  472. <i-select v-model="mkStoreCampMinus.goodsBizType" placeholder="货品业务类型"
  473. label-in-value style="width: 268px;" v-show="!isOperatorShow">
  474. <i-option v-for="macro in macros" :value="macro.value" :key="macro.id">{{macro.name}}
  475. </i-option>
  476. </i-select>
  477. <i-select v-model="mkStoreCampMinus.goodsBizType" placeholder="货品业务类型"
  478. label-in-value style="width: 268px;" v-show="isOperatorShow" disabled>
  479. <i-option v-for="macro in macros" :value="macro.value" :key="macro.id">{{macro.name}}
  480. </i-option>
  481. </i-select>
  482. <div style="float: right;margin-right: 730px;">
  483. <span style="margin-left: 25px;color: red;font-size: 12px;">* 货品业务类型必填,不同业务类型会生成不同订单,订单不能同时使用一个优惠券,会影响清关</span>
  484. </div>
  485. </Form-item>
  486. <Form-item label="适用类型" prop="applyType">
  487. <Radio-group v-model="mkStoreCampMinus.applyType" id="applyType">
  488. <Radio label="00">
  489. <span>全部商品参与</span>
  490. </Radio>
  491. <Radio label="01">
  492. <span>指定商品参与</span>
  493. </Radio>
  494. <Radio label="02">
  495. <span>指定商品不参与</span>
  496. </Radio>
  497. </Radio-group>
  498. </Form-item>
  499. <Form-item label="图片是否展示在广告栏" prop="isStoreShow">
  500. <Radio-group v-model="mkStoreCampMinus.isStoreShow">
  501. <Radio label="0">
  502. <span>否</span>
  503. </Radio>
  504. <Radio label="1">
  505. <span>是</span>
  506. </Radio>
  507. </Radio-group>
  508. </Form-item>
  509. <Row>
  510. <i-col span="16">
  511. <Form-item label="活动图片url(小图)" prop="advImgUrl">
  512. <i-input v-model="mkStoreCampMinus.advImgUrl" placeholder="活动图片url(小图)" readonly/>
  513. </Form-item>
  514. </i-col>
  515. <i-col span="3">
  516. <Form-item :label-width="1">
  517. <Upload style="width: 300px;" action="../sys/oss/upload" :format="['jpg','jpeg','png']"
  518. max-size="2048"
  519. :on-success="handleSuccessAdvImgUrl" :on-format-error="handleFormatError"
  520. :show-upload-list="false"
  521. :on-exceeded-size="handleMaxSize">
  522. <i-button icon="ios-cloud-upload-outline">上传图片</i-button>
  523. </Upload>
  524. </Form-item>
  525. </i-col>
  526. <i-col span="4">
  527. <Form-item :label-width="1">
  528. <i-button icon="eye" @click="eyeImageAdvImgUrl">预览图片</i-button>
  529. </Form-item>
  530. </i-col>
  531. </Row>
  532. <Form-item label="活动说明" prop="advDesc">
  533. <i-input type="textarea" :rows="3" v-model="mkStoreCampMinus.advDesc" placeholder="活动说明" style="width: 400px"></i-input>
  534. </Form-item>
  535. <Form-item label="是否有效" prop="isValid">
  536. <Radio-group v-model="mkStoreCampMinus.isValid">
  537. <Radio label="0">
  538. <span>有效</span>
  539. </Radio>
  540. <Radio label="1">
  541. <span>无效</span>
  542. </Radio>
  543. </Radio-group>
  544. </Form-item>
  545. <!--<Form-item label="是否过期,0:否,1:是" prop="isPast">-->
  546. <!--<i-input v-model="mkStoreCampMinus.isPast" placeholder="是否过期,0:否,1:是"/>-->
  547. <!--</Form-item>-->
  548. <!--<Form-item label="备注" prop="note">-->
  549. <!--<i-input v-model="mkStoreCampMinus.note" placeholder="备注"/>-->
  550. <!--</Form-item>-->
  551. <!--<Form-item label="创建人编号" prop="createrSn">-->
  552. <!--<i-input v-model="mkStoreCampMinus.createrSn" placeholder="创建人编号"/>-->
  553. <!--</Form-item>-->
  554. <!--<Form-item label="创建时间" prop="createTime">-->
  555. <!--<i-input v-model="mkStoreCampMinus.createTime" placeholder="创建时间"/>-->
  556. <!--</Form-item>-->
  557. <!--<Form-item label="修改人编号" prop="moderSn">-->
  558. <!--<i-input v-model="mkStoreCampMinus.moderSn" placeholder="修改人编号"/>-->
  559. <!--</Form-item>-->
  560. <!--<Form-item label="修改时间" prop="modTime">-->
  561. <!--<i-input v-model="mkStoreCampMinus.modTime" placeholder="修改时间"/>-->
  562. <!--</Form-item>-->
  563. <!--<Form-item label="时间戳" prop="tstm">-->
  564. <!--<i-input v-model="mkStoreCampMinus.tstm" placeholder="时间戳"/>-->
  565. <!--</Form-item>-->
  566. </Tab-Pane>
  567. </Tabs>
  568. </i-form>
  569. <div style="padding-left: 20px">
  570. <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
  571. <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
  572. <!--<i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>-->
  573. </div>
  574. </Card>
  575. <Card v-show="!showInfoList">
  576. <p slot="title">{{title}}</p>
  577. <i-form :label-width="140">
  578. <Tabs value="name1">
  579. <Tab-Pane label="基本信息" name="name1">
  580. <Form-item label="活动名称">
  581. {{mkStoreCampMinus.campName}}
  582. </Form-item>
  583. <Form-item label="活动时间">
  584. {{mkStoreCampMinus.inValidTime}}
  585. </Form-item>
  586. <Form-item label="减免活动类型">
  587. {{mkStoreCampMinus.campMinusType=='00'?'满x元减':''}}
  588. {{mkStoreCampMinus.campMinusType=='01'?'满x件减':''}}
  589. {{mkStoreCampMinus.campMinusType=='10'?'满x元折':''}}
  590. {{mkStoreCampMinus.campMinusType=='11'?'满x件折':''}}
  591. </Form-item>
  592. <Form-item label="减免方式">
  593. {{mkStoreCampMinus.minusMode=='00'?'满足最高层级减一次':''}}
  594. {{mkStoreCampMinus.minusMode=='10'?'每满一次减一次':''}}
  595. </Form-item>
  596. <Form-item label="优惠内容活动层级">
  597. <!--满元满减-->
  598. <div v-for="(item,index) in minusTypeUnitAttrList" v-if="minusTypeUnitAttrList.length>0" v-show="item.isDelete==0" style="margin-top: 10px;">
  599. <div class="row">
  600. <div class="col-md-8">
  601. <label class="ivu-form-item-label">满元减条件:</label>
  602. <div class="col-md-5 input-icon right">
  603. ¥{{item.yuanMinusCond}}元
  604. </div>
  605. </div>
  606. <div class="col-md-8">
  607. <label class="ivu-form-item-label">满元减优惠:</label>
  608. <div class="col-md-5 input-icon right">
  609. ¥{{item.yuanMinusPref}}元
  610. </div>
  611. </div>
  612. </div>
  613. </div>
  614. <!--满件满减-->
  615. <div v-for="(item,index) in minusTypePieceAttrList" v-if="minusTypePieceAttrList.length>0" v-show="item.isDelete==0" style="margin-top: 10px;">
  616. <div class="row">
  617. <div class="col-md-8">
  618. <label class="ivu-form-item-label">满件减条件:</label>
  619. <div class="col-md-5 input-icon right">
  620. {{item.pieceMinusConf}}件
  621. </div>
  622. </div>
  623. <div class="col-md-8">
  624. <label class="ivu-form-item-label">满件减优惠:</label>
  625. <div class="col-md-5 input-icon right">
  626. ¥{{item.pieceMinusPref}}元
  627. </div>
  628. </div>
  629. </div>
  630. </div>
  631. <!--满元满折-->
  632. <div v-for="(item,index) in minusTypeDiscUnitAttrList" v-if="minusTypeDiscUnitAttrList.length>0" v-show="item.isDelete==0" style="margin-top: 10px;">
  633. <div class="row">
  634. <div class="col-md-8">
  635. <label class="ivu-form-item-label">满元折条件:</label>
  636. <div class="col-md-5 input-icon right">
  637. ¥{{item.yuanDiscCond}}元
  638. </div>
  639. </div>
  640. <div class="col-md-8">
  641. <label class="ivu-form-item-label">满元折优惠:</label>
  642. <div class="col-md-5 input-icon right">
  643. ¥{{item.yuanDiscPref}}折
  644. </div>
  645. </div>
  646. </div>
  647. </div>
  648. <!--满件满折-->
  649. <div v-for="(item,index) in minusTypeDiscPieceAttrList" v-if="minusTypeDiscPieceAttrList.length>0" v-show="item.isDelete==0" style="margin-top: 10px;">
  650. <div class="row">
  651. <div class="col-md-8">
  652. <label class="ivu-form-item-label">满件折条件:</label>
  653. <div class="col-md-5 input-icon right">
  654. {{item.pieceDiscConf}}件
  655. </div>
  656. </div>
  657. <div class="col-md-8">
  658. <label class="ivu-form-item-label">满件折优惠:</label>
  659. <div class="col-md-5 input-icon right">
  660. ¥{{item.pieceDiscPref}}折
  661. </div>
  662. </div>
  663. </div>
  664. </div>
  665. <!--满元满减,且减免类型为每满一次减一次-->
  666. <div v-for="(item,index) in minusTypeUnitMode10List" v-if="minusTypeUnitMode10List.length>0" style="margin-top: 10px;">
  667. <div class="row">
  668. <div class="col-md-8">
  669. <label class="ivu-form-item-label">满元减条件:</label>
  670. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  671. ¥{{item.yuanMinusCond}}元
  672. </div>
  673. </div>
  674. <div class="col-md-8">
  675. <label class="ivu-form-item-label">满元减优惠:</label>
  676. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  677. ¥{{item.yuanMinusPref}}元
  678. </div>
  679. </div>
  680. <div class="col-md-8">
  681. <label class="ivu-form-item-label">满减件每人优惠:</label>
  682. <div class="col-md-5 input-icon right">
  683. ¥{{item.pieceMinusEachDisc}}元
  684. </div>
  685. </div>
  686. </div>
  687. </div>
  688. <!--满件满减,且减免类型为每满一次减一次-->
  689. <div v-for="(item,index) in minusTypePieceMode10List" v-if="minusTypePieceMode10List.length>0" style="margin-top: 10px;">
  690. <div class="row">
  691. <div class="col-md-8">
  692. <label class="ivu-form-item-label">满件减条件:</label>
  693. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  694. {{item.pieceMinusConf}}件
  695. </div>
  696. </div>
  697. <div class="col-md-8">
  698. <label class="ivu-form-item-label">满件减优惠:</label>
  699. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  700. ¥{{item.pieceMinusPref}}元
  701. </div>
  702. </div>
  703. <div class="col-md-8">
  704. <label class="ivu-form-item-label">满减件每人优惠:</label>
  705. <div class="col-md-5 input-icon right">
  706. ¥{{item.pieceMinusEachDisc}}元
  707. </div>
  708. </div>
  709. </div>
  710. </div>
  711. </Form-item>
  712. </Tab-Pane>
  713. <Tab-Pane label="优惠规则" name="name2">
  714. <!--<Form-item label="所属三方商户">-->
  715. <!--{{mkStoreCampMinus.thirdMerchSn}}-->
  716. <!--</Form-item>-->
  717. <Form-item label="所属门店">
  718. {{mkStoreCampMinus.storeName}}
  719. </Form-item>
  720. <Form-item label="货品业务类型">
  721. {{mkStoreCampMinus.goodsBizType=='00'?'保税备货':''}}
  722. {{mkStoreCampMinus.goodsBizType=='02'?'保税展示补货':''}}
  723. {{mkStoreCampMinus.goodsBizType=='10'?'保税展示跨境':''}}
  724. {{mkStoreCampMinus.goodsBizType=='11'?'普通商品':''}}
  725. </Form-item>
  726. <Form-item label="适用类型">
  727. {{mkStoreCampMinus.applyType=='00'?'全部商品参与':''}}
  728. {{mkStoreCampMinus.applyType=='01'?'指定商品参与':''}}
  729. {{mkStoreCampMinus.applyType=='02'?'指定商品不参与':''}}
  730. </Form-item>
  731. <Form-item label="图片是否展示在广告栏">
  732. {{mkStoreCampMinus.isStoreShow=='0'?'否':'是'}}
  733. </Form-item>
  734. <Form-item label="活动图片url(小图)">
  735. <img :src="mkStoreCampMinus.advImgUrl" style="width: 60px;height: 60px;"/>
  736. </Form-item>
  737. <Form-item label="活动说明">
  738. {{mkStoreCampMinus.advDesc}}
  739. </Form-item>
  740. <Form-item label="是否有效">
  741. {{mkStoreCampMinus.isValid=='0'?'有效':'无效'}}
  742. </Form-item>
  743. <Form-item label="是否过期">
  744. {{mkStoreCampMinus.isPast=='0'?'否':'是'}}
  745. </Form-item>
  746. </Tab-Pane>
  747. </Tabs>
  748. </i-form>
  749. <div style="padding-left: 20px">
  750. <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
  751. </div>
  752. </Card>
  753. <!--<Card v-show="!showGoodsList">
  754. <p slot="title">{{title}}</p>
  755. <div style="padding-left: 20px">
  756. <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
  757. </div>
  758. </Card>-->
  759. <Card v-show="!updateGoodsList">
  760. <p slot="title">{{title}}</p>
  761. <Row :gutter="16">
  762. <div class="search-group">
  763. <i-col span="4">
  764. <i-input v-model="g.goodsName" @on-enter="query" placeholder="商品名称"/>
  765. </i-col>
  766. <i-button @click="queryOrder">查询</i-button>
  767. <i-button @click="reloadOrderSearch">重置</i-button>
  768. </div>
  769. <div class="buttons-group">
  770. <!--#if($shiro.hasPermission("goods:save"))-->
  771. <i-button type="warning" @click="saveCampMinusGoods" v-show="!isShowGoods">添加商品</i-button>
  772. <!--#end-->
  773. <i-button type="warning" @click="reload">返回</i-button>
  774. </div>
  775. </Row>
  776. <table id="jqGridOrder"></table>
  777. <div id="jqGridPagerOrder"></div>
  778. </Card>
  779. <Card v-show="!showStoreGoodsList">
  780. <p slot="title">{{title}}</p>
  781. <div class="search-group">
  782. <i-col span="4">
  783. <i-input v-model="s.goodsName" @on-enter="query" placeholder="名称"/>
  784. </i-col>
  785. <i-button @click="reloadGoodsByStore">查询</i-button>
  786. <i-button @click="reloadGoodsSearch">重置</i-button>
  787. </div>
  788. <div class="buttons-group">
  789. <i-button type="warning" @click="reloadCampGoods">返回管理商品</i-button>
  790. </div>
  791. <div style="margin-top: 10px; height: 550px">
  792. <div v-for="item in goodsList" :item="item" style="padding-left:5px; padding-right:5px; width: 100%" v-show="goodsList.length>0">
  793. <div v-show="item.isCheck==0" class="col-sm-3 goods-item clearfix" name="noCheck" @click="selectThisGoods(item)" :id="item.goodsId">
  794. <div class="goods-img fl">
  795. <img :src="item.listPicUrl" style="background-repeat: no-repeat;background-position: center center; background-size: cover;" class="goods-img-wrapper">
  796. <div class="bg-model" :id="item.id" style="display: none;">
  797. <div class="bg-model-model"></div>
  798. <img src="${rc.contextPath}/statics/img/selected.png" alt="" style="width: 30px;height: 30px;
  799. margin-left: 20px;margin-top: 10px;">
  800. </div>
  801. </div>
  802. <div class="goods-info fl">
  803. <div class="goods-intro ng-binding" :title="item.goodsName">
  804. {{item.goodsName}}
  805. </div>
  806. <p class="goods-price ng-binding">¥ {{item.retailPrice==null?0:item.retailPrice}}</p>
  807. </div>
  808. <div class="goods-mask">
  809. <p style="text-align:center;color: #FFFFFF;">不支持参加此活动</p>
  810. </div>
  811. </div>
  812. <div v-show="item.isCheck==1" class="col-sm-3 goods-item clearfix select" name="noCheck" @click="selectThisGoods(item)" :id="item.goodsId">
  813. <div class="goods-img fl">
  814. <img :src="item.listPicUrl" style="background-repeat: no-repeat;
  815. background-position: center center; background-size: cover;" class="goods-img-wrapper">
  816. <div class="bg-model" :id="item.id" style="display: block;">
  817. <div class="bg-model-model"></div>
  818. <img src="${rc.contextPath}/statics/img/selected.png" alt="" style="width: 30px;height: 30px;
  819. margin-left: 10px;margin-top: 10px;">
  820. </div>
  821. </div>
  822. <div class="goods-info fl">
  823. <div class="goods-intro ng-binding" :title="item.goodsName">
  824. {{item.goodsName}}
  825. </div>
  826. <p class="goods-price ng-binding">¥ {{item.retailPrice==null?0:item.retailPrice}}</p>
  827. </div>
  828. <div class="goods-mask">
  829. <p style="text-align:center;color: #FFFFFF;">不支持参加此活动</p>
  830. </div>
  831. </div>
  832. </div>
  833. </div>
  834. <div style="text-align: right;">
  835. <Page :total="totalCount" :current="currentPage" :page-size="limit" class="page" show-total
  836. placement="top" @on-change="loadGoodsDataByPage" @on-page-size-change='handlePageSize'>
  837. </Page>
  838. </div>
  839. <div style="padding-left: 20px">
  840. <i-button type="primary" @click="ok">保存</i-button>
  841. <i-button type="warning" @click="cancel" style="margin-left: 8px"/>取消</i-button>
  842. </div>
  843. </Card>
  844. </div>
  845. <div id="qrcode" style="display: none;padding: 10px;">
  846. <div id="qrcodeCanvas" style="margin: 20px 0 0 55px"></div>
  847. </div>
  848. <div id="qrcImg" style="display:none">
  849. <img class="qrcImg align-center" height="300px" width="300px" src="">
  850. </div>
  851. <script src="${rc.contextPath}/js/mk/mkstorecampminus.js?_${date.systemTime}"></script>
  852. </body>
  853. </html>