1
0

mkstorecampminus.html 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865
  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="100"
  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. <Row>
  533. <i-col span="16" style="margin-top: -30px;">
  534. <span style="margin-left: 140px;color: red;font-size: 12px;">* 尺寸建议410*110像素以内,大小100K以下</span>
  535. </i-col>
  536. </Row>
  537. <Form-item label="活动说明" prop="advDesc">
  538. <i-input type="textarea" :rows="3" v-model="mkStoreCampMinus.advDesc" placeholder="活动说明" style="width: 400px"></i-input>
  539. </Form-item>
  540. <Form-item label="是否有效" prop="isValid">
  541. <Radio-group v-model="mkStoreCampMinus.isValid">
  542. <Radio label="0">
  543. <span>有效</span>
  544. </Radio>
  545. <Radio label="1">
  546. <span>无效</span>
  547. </Radio>
  548. </Radio-group>
  549. </Form-item>
  550. <!--<Form-item label="是否过期,0:否,1:是" prop="isPast">-->
  551. <!--<i-input v-model="mkStoreCampMinus.isPast" placeholder="是否过期,0:否,1:是"/>-->
  552. <!--</Form-item>-->
  553. <!--<Form-item label="备注" prop="note">-->
  554. <!--<i-input v-model="mkStoreCampMinus.note" placeholder="备注"/>-->
  555. <!--</Form-item>-->
  556. <!--<Form-item label="创建人编号" prop="createrSn">-->
  557. <!--<i-input v-model="mkStoreCampMinus.createrSn" placeholder="创建人编号"/>-->
  558. <!--</Form-item>-->
  559. <!--<Form-item label="创建时间" prop="createTime">-->
  560. <!--<i-input v-model="mkStoreCampMinus.createTime" placeholder="创建时间"/>-->
  561. <!--</Form-item>-->
  562. <!--<Form-item label="修改人编号" prop="moderSn">-->
  563. <!--<i-input v-model="mkStoreCampMinus.moderSn" placeholder="修改人编号"/>-->
  564. <!--</Form-item>-->
  565. <!--<Form-item label="修改时间" prop="modTime">-->
  566. <!--<i-input v-model="mkStoreCampMinus.modTime" placeholder="修改时间"/>-->
  567. <!--</Form-item>-->
  568. <!--<Form-item label="时间戳" prop="tstm">-->
  569. <!--<i-input v-model="mkStoreCampMinus.tstm" placeholder="时间戳"/>-->
  570. <!--</Form-item>-->
  571. </Tab-Pane>
  572. </Tabs>
  573. </i-form>
  574. <div style="padding-left: 20px">
  575. <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
  576. <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
  577. <!--<i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>-->
  578. </div>
  579. </Card>
  580. <Card v-show="!showInfoList">
  581. <p slot="title">{{title}}</p>
  582. <i-form :label-width="140">
  583. <Tabs value="name1">
  584. <Tab-Pane label="基本信息" name="name1">
  585. <Form-item label="活动名称">
  586. {{mkStoreCampMinus.campName}}
  587. </Form-item>
  588. <Form-item label="活动时间">
  589. {{mkStoreCampMinus.inValidTime}}
  590. </Form-item>
  591. <Form-item label="减免活动类型">
  592. {{mkStoreCampMinus.campMinusType=='00'?'满x元减':''}}
  593. {{mkStoreCampMinus.campMinusType=='01'?'满x件减':''}}
  594. {{mkStoreCampMinus.campMinusType=='10'?'满x元折':''}}
  595. {{mkStoreCampMinus.campMinusType=='11'?'满x件折':''}}
  596. </Form-item>
  597. <Form-item label="减免方式">
  598. {{mkStoreCampMinus.minusMode=='00'?'满足最高层级减一次':''}}
  599. {{mkStoreCampMinus.minusMode=='10'?'每满一次减一次':''}}
  600. </Form-item>
  601. <Form-item label="优惠内容活动层级">
  602. <!--满元满减-->
  603. <div v-for="(item,index) in minusTypeUnitAttrList" v-if="minusTypeUnitAttrList.length>0" v-show="item.isDelete==0" style="margin-top: 10px;">
  604. <div class="row">
  605. <div class="col-md-8">
  606. <label class="ivu-form-item-label">满元减条件:</label>
  607. <div class="col-md-5 input-icon right">
  608. ¥{{item.yuanMinusCond}}元
  609. </div>
  610. </div>
  611. <div class="col-md-8">
  612. <label class="ivu-form-item-label">满元减优惠:</label>
  613. <div class="col-md-5 input-icon right">
  614. ¥{{item.yuanMinusPref}}元
  615. </div>
  616. </div>
  617. </div>
  618. </div>
  619. <!--满件满减-->
  620. <div v-for="(item,index) in minusTypePieceAttrList" v-if="minusTypePieceAttrList.length>0" v-show="item.isDelete==0" style="margin-top: 10px;">
  621. <div class="row">
  622. <div class="col-md-8">
  623. <label class="ivu-form-item-label">满件减条件:</label>
  624. <div class="col-md-5 input-icon right">
  625. {{item.pieceMinusConf}}件
  626. </div>
  627. </div>
  628. <div class="col-md-8">
  629. <label class="ivu-form-item-label">满件减优惠:</label>
  630. <div class="col-md-5 input-icon right">
  631. ¥{{item.pieceMinusPref}}元
  632. </div>
  633. </div>
  634. </div>
  635. </div>
  636. <!--满元满折-->
  637. <div v-for="(item,index) in minusTypeDiscUnitAttrList" v-if="minusTypeDiscUnitAttrList.length>0" v-show="item.isDelete==0" style="margin-top: 10px;">
  638. <div class="row">
  639. <div class="col-md-8">
  640. <label class="ivu-form-item-label">满元折条件:</label>
  641. <div class="col-md-5 input-icon right">
  642. ¥{{item.yuanDiscCond}}元
  643. </div>
  644. </div>
  645. <div class="col-md-8">
  646. <label class="ivu-form-item-label">满元折优惠:</label>
  647. <div class="col-md-5 input-icon right">
  648. ¥{{item.yuanDiscPref}}折
  649. </div>
  650. </div>
  651. </div>
  652. </div>
  653. <!--满件满折-->
  654. <div v-for="(item,index) in minusTypeDiscPieceAttrList" v-if="minusTypeDiscPieceAttrList.length>0" v-show="item.isDelete==0" style="margin-top: 10px;">
  655. <div class="row">
  656. <div class="col-md-8">
  657. <label class="ivu-form-item-label">满件折条件:</label>
  658. <div class="col-md-5 input-icon right">
  659. {{item.pieceDiscConf}}件
  660. </div>
  661. </div>
  662. <div class="col-md-8">
  663. <label class="ivu-form-item-label">满件折优惠:</label>
  664. <div class="col-md-5 input-icon right">
  665. ¥{{item.pieceDiscPref}}折
  666. </div>
  667. </div>
  668. </div>
  669. </div>
  670. <!--满元满减,且减免类型为每满一次减一次-->
  671. <div v-for="(item,index) in minusTypeUnitMode10List" v-if="minusTypeUnitMode10List.length>0" style="margin-top: 10px;">
  672. <div class="row">
  673. <div class="col-md-8">
  674. <label class="ivu-form-item-label">满元减条件:</label>
  675. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  676. ¥{{item.yuanMinusCond}}元
  677. </div>
  678. </div>
  679. <div class="col-md-8">
  680. <label class="ivu-form-item-label">满元减优惠:</label>
  681. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  682. ¥{{item.yuanMinusPref}}元
  683. </div>
  684. </div>
  685. <div class="col-md-8">
  686. <label class="ivu-form-item-label">满减件每人优惠:</label>
  687. <div class="col-md-5 input-icon right">
  688. ¥{{item.pieceMinusEachDisc}}元
  689. </div>
  690. </div>
  691. </div>
  692. </div>
  693. <!--满件满减,且减免类型为每满一次减一次-->
  694. <div v-for="(item,index) in minusTypePieceMode10List" v-if="minusTypePieceMode10List.length>0" style="margin-top: 10px;">
  695. <div class="row">
  696. <div class="col-md-8">
  697. <label class="ivu-form-item-label">满件减条件:</label>
  698. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  699. {{item.pieceMinusConf}}件
  700. </div>
  701. </div>
  702. <div class="col-md-8">
  703. <label class="ivu-form-item-label">满件减优惠:</label>
  704. <div class="col-md-5 input-icon right" style="margin-left: 23px;">
  705. ¥{{item.pieceMinusPref}}元
  706. </div>
  707. </div>
  708. <div class="col-md-8">
  709. <label class="ivu-form-item-label">满减件每人优惠:</label>
  710. <div class="col-md-5 input-icon right">
  711. ¥{{item.pieceMinusEachDisc}}元
  712. </div>
  713. </div>
  714. </div>
  715. </div>
  716. </Form-item>
  717. </Tab-Pane>
  718. <Tab-Pane label="优惠规则" name="name2">
  719. <!--<Form-item label="所属三方商户">-->
  720. <!--{{mkStoreCampMinus.thirdMerchSn}}-->
  721. <!--</Form-item>-->
  722. <Form-item label="所属门店">
  723. {{mkStoreCampMinus.storeName}}
  724. </Form-item>
  725. <Form-item label="货品业务类型">
  726. {{mkStoreCampMinus.goodsBizType=='00'?'保税备货':''}}
  727. {{mkStoreCampMinus.goodsBizType=='02'?'保税展示补货':''}}
  728. {{mkStoreCampMinus.goodsBizType=='10'?'保税展示跨境':''}}
  729. {{mkStoreCampMinus.goodsBizType=='11'?'普通商品':''}}
  730. </Form-item>
  731. <Form-item label="适用类型">
  732. {{mkStoreCampMinus.applyType=='00'?'全部商品参与':''}}
  733. {{mkStoreCampMinus.applyType=='01'?'指定商品参与':''}}
  734. {{mkStoreCampMinus.applyType=='02'?'指定商品不参与':''}}
  735. </Form-item>
  736. <Form-item label="图片是否展示在广告栏">
  737. {{mkStoreCampMinus.isStoreShow=='0'?'否':'是'}}
  738. </Form-item>
  739. <Form-item label="活动图片url(小图)">
  740. <img :src="mkStoreCampMinus.advImgUrl" style="width: 60px;height: 60px;"/>
  741. </Form-item>
  742. <Form-item label="活动说明">
  743. {{mkStoreCampMinus.advDesc}}
  744. </Form-item>
  745. <Form-item label="是否有效">
  746. {{mkStoreCampMinus.isValid=='0'?'有效':'无效'}}
  747. </Form-item>
  748. <Form-item label="是否过期">
  749. {{mkStoreCampMinus.isPast=='0'?'否':'是'}}
  750. </Form-item>
  751. </Tab-Pane>
  752. </Tabs>
  753. </i-form>
  754. <div style="padding-left: 20px">
  755. <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
  756. </div>
  757. </Card>
  758. <!--<Card v-show="!showGoodsList">
  759. <p slot="title">{{title}}</p>
  760. <div style="padding-left: 20px">
  761. <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
  762. </div>
  763. </Card>-->
  764. <Card v-show="!updateGoodsList">
  765. <p slot="title">{{title}}</p>
  766. <Row :gutter="16">
  767. <div class="search-group">
  768. <i-col span="4">
  769. <i-input v-model="g.goodsName" @on-enter="query" placeholder="商品名称"/>
  770. </i-col>
  771. <i-button @click="queryOrder">查询</i-button>
  772. <i-button @click="reloadOrderSearch">重置</i-button>
  773. </div>
  774. <div class="buttons-group">
  775. <!--#if($shiro.hasPermission("goods:save"))-->
  776. <i-button type="warning" @click="saveCampMinusGoods" v-show="!isShowGoods">添加商品</i-button>
  777. <!--#end-->
  778. <i-button type="warning" @click="reload">返回</i-button>
  779. </div>
  780. </Row>
  781. <table id="jqGridOrder"></table>
  782. <div id="jqGridPagerOrder"></div>
  783. </Card>
  784. <Card v-show="!showStoreGoodsList">
  785. <p slot="title">{{title}}</p>
  786. <div class="search-group">
  787. <i-col span="4">
  788. <i-input v-model="s.goodsName" @on-enter="query" placeholder="名称"/>
  789. </i-col>
  790. <i-button @click="reloadGoodsByStore">查询</i-button>
  791. <i-button @click="reloadGoodsSearch">重置</i-button>
  792. </div>
  793. <div class="buttons-group">
  794. <i-button type="warning" @click="reloadCampGoods">返回管理商品</i-button>
  795. </div>
  796. <div style="margin-top: 10px; height: 550px">
  797. <div v-for="item in goodsList" :item="item" style="padding-left:5px; padding-right:5px; width: 100%" v-show="goodsList.length>0">
  798. <div v-show="item.isCheck==0" class="col-sm-3 goods-item clearfix" name="noCheck" @click="selectThisGoods(item)" :id="item.goodsId">
  799. <div class="goods-img fl">
  800. <img :src="item.listPicUrl" style="background-repeat: no-repeat;background-position: center center; background-size: cover;" class="goods-img-wrapper">
  801. <div class="bg-model" :id="item.id" style="display: none;">
  802. <div class="bg-model-model"></div>
  803. <img src="${rc.contextPath}/statics/img/selected.png" alt="" style="width: 30px;height: 30px;
  804. margin-left: 20px;margin-top: 10px;">
  805. </div>
  806. </div>
  807. <div class="goods-info fl">
  808. <div class="goods-intro ng-binding" :title="item.goodsName">
  809. {{item.goodsName}}
  810. </div>
  811. <p class="goods-price ng-binding">¥ {{item.retailPrice==null?0:item.retailPrice}}</p>
  812. </div>
  813. <div class="goods-mask">
  814. <p style="text-align:center;color: #FFFFFF;">不支持参加此活动</p>
  815. </div>
  816. </div>
  817. <div v-show="item.isCheck==1" class="col-sm-3 goods-item clearfix select" name="noCheck" @click="selectThisGoods(item)" :id="item.goodsId">
  818. <div class="goods-img fl">
  819. <img :src="item.listPicUrl" style="background-repeat: no-repeat;
  820. background-position: center center; background-size: cover;" class="goods-img-wrapper">
  821. <div class="bg-model" :id="item.id" style="display: block;">
  822. <div class="bg-model-model"></div>
  823. <img src="${rc.contextPath}/statics/img/selected.png" alt="" style="width: 30px;height: 30px;
  824. margin-left: 10px;margin-top: 10px;">
  825. </div>
  826. </div>
  827. <div class="goods-info fl">
  828. <div class="goods-intro ng-binding" :title="item.goodsName">
  829. {{item.goodsName}}
  830. </div>
  831. <p class="goods-price ng-binding">¥ {{item.retailPrice==null?0:item.retailPrice}}</p>
  832. </div>
  833. <div class="goods-mask">
  834. <p style="text-align:center;color: #FFFFFF;">不支持参加此活动</p>
  835. </div>
  836. </div>
  837. </div>
  838. </div>
  839. <div style="text-align: right;">
  840. <Page :total="totalCount" :current="currentPage" :page-size="limit" class="page" show-total
  841. placement="top" @on-change="loadGoodsDataByPage" @on-page-size-change='handlePageSize'>
  842. </Page>
  843. </div>
  844. <div style="padding-left: 20px">
  845. <i-button type="primary" @click="ok">保存</i-button>
  846. <i-button type="warning" @click="cancel" style="margin-left: 8px"/>取消</i-button>
  847. </div>
  848. </Card>
  849. </div>
  850. <div id="qrcode" style="display: none;padding: 10px;">
  851. <div id="qrcodeCanvas" style="margin: 20px 0 0 55px"></div>
  852. </div>
  853. <div id="qrcImg" style="display:none">
  854. <img class="qrcImg align-center" height="300px" width="300px" src="">
  855. </div>
  856. <script src="${rc.contextPath}/js/mk/mkstorecampminus.js?_${date.systemTime}"></script>
  857. </body>
  858. </html>