edit.blade.php 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620
  1. @extends('layouts.base')
  2. @section('title', '新人奖')
  3. @section('content')
  4. <link href="{{static_url('yunshop/css/total.css')}}" media="all" rel="stylesheet" type="text/css" />
  5. <style>
  6. .left-conOne{
  7. float:left;
  8. margin-right:2%;
  9. width:375px;
  10. height:667px;
  11. background: url({{ plugin_assets('new-member-prize', 'views/admin/ht_popupbg_1.png') }}) no-repeat;
  12. background-size:cover;
  13. }
  14. .left-conTwo{
  15. float:left;
  16. margin-right:2%;
  17. width:375px;
  18. height:667px;
  19. background: url({{ plugin_assets('new-member-prize', 'views/admin/ht_popupbg_2.png') }}) no-repeat;
  20. background-size: contain;
  21. }
  22. .left-conThree{
  23. float:left;
  24. margin-right:2%;
  25. width:375px;
  26. height:667px;
  27. background: url({{ plugin_assets('new-member-prize', 'views/admin/ht_popupbg_3.png') }}) no-repeat;
  28. background-size:cover;
  29. }
  30. .left-conFour{
  31. float:left;
  32. margin-right:2%;
  33. width:375px;
  34. height:667px;
  35. background: url({{ plugin_assets('new-member-prize', 'views/admin/ht_popupbg_4.png') }}) no-repeat;
  36. background-size: contain;
  37. }
  38. .left-conFive{
  39. float:left;
  40. margin-right:2%;
  41. width:375px;
  42. height:667px;
  43. background: url({{ plugin_assets('new-member-prize', 'views/admin/ht_popupbg_5.png') }}) no-repeat;
  44. background-size: contain;
  45. }
  46. #re_content{
  47. margin-top:20px;
  48. }
  49. label{
  50. margin-bottom:0;
  51. }
  52. .people{
  53. height:20px;
  54. width:110px;
  55. }
  56. .people .el-input__inner{
  57. height:20px;
  58. width:100px;
  59. margin-left:10px;
  60. }
  61. .el-checkbox-group{
  62. font-size: inherit!important;
  63. }
  64. .list_total_num{
  65. margin-top:20px;
  66. }
  67. .el-table__header-wrapper{
  68. margin-top:20px;
  69. }
  70. .el-tag{font-weight:700;font-size:15px;}
  71. .rightlist-head{padding:15px 0;line-height:50px;}
  72. .rightlist-head-con{float:left;padding-right:20px;font-size:16px;color:#888;}
  73. .el-button+.el-button {margin-left: 0px;}
  74. .el-breadcrumb{padding:30px 0;font-size:16px;}
  75. .el-breadcrumb__inner a{font-weight: 500;}
  76. .tip{color:#333;font-size:12px;}
  77. /* 上传图片 */
  78. .avatar-uploader .el-upload {margin-top:15px;border: 1px dashed #d9d9d9;border-radius: 6px;cursor: pointer;position: relative;overflow: hidden;}
  79. .avatar-uploader .el-upload:hover {border-color: #409EFF;}
  80. .avatar-uploader-icon {font-size: 28px;color: #8c939d;width: 48px;height: 48px;line-height: 48px;text-align: center;}
  81. .avatar {width: 48px;height: 48px;display: block;}
  82. .el-upload-tip{width:178px;margin:0;padding:0;color:#999;text-align:center;}
  83. input[type=file] {display: none;}
  84. .avatar-uploader-box{position:relative;width:60px;}
  85. .avatar-tip-text{position:absolute;width:48px;height:20px;line-height:28px;bottom:0;background:#000;opacity:0.7;color:#fff;font-size:12px;}
  86. .el-icon-circle-close{position:absolute;top:10px;right:0;color:#999;}
  87. /* 添加奖品弹出框 */
  88. .addAwrad .tag{
  89. word-wrap:break-word;
  90. padding:7px;
  91. }
  92. .addAwrad .tag span{
  93. padding:5px;
  94. margin-bottom:5px;
  95. display:inline-block;
  96. border-radius:4px;
  97. margin-right:5px;
  98. }
  99. /* 编辑奖品弹出框 */
  100. .editAwrad .tag{
  101. word-wrap:break-word;
  102. padding:7px;
  103. }
  104. .editAwrad .tag span{
  105. padding:5px;
  106. margin-bottom:5px;
  107. display:inline-block;
  108. border-radius:4px;
  109. margin-right:5px;
  110. }
  111. .Coupon .tag{
  112. word-wrap:break-word;
  113. padding:7px;
  114. }
  115. .Coupon .tag span{
  116. padding:5px;
  117. margin-bottom:5px;
  118. display:inline-block;
  119. border-radius:4px;
  120. margin-right:5px;
  121. }
  122. .classNormal{
  123. border:solid 1px #eee;
  124. }
  125. .classred{
  126. border:solid 1px red;
  127. }
  128. .el-step.is-simple .el-step__head{
  129. display: flex;
  130. align-items: center;
  131. margin-bottom: 2px;
  132. }
  133. .vue-title-left {
  134. width: 4px;
  135. height: 18px;
  136. margin-top: 6px;
  137. background: #29ba9c;
  138. display: inline-block;
  139. margin-right: 10px;
  140. }
  141. .vue-title-content {
  142. font-size: 14px;
  143. flex: 1;
  144. }
  145. .tab-pane {
  146. padding: 10px;
  147. background: #eff3f6;
  148. display: flex;
  149. }
  150. .tab-pane .left {
  151. background: white;
  152. padding: 2px 10px;
  153. width: 200px;
  154. border-radius: 10px;
  155. overflow-y: auto;
  156. height: 530px;
  157. overflow-x: hidden;
  158. }
  159. .tab-pane .acitve-submenu {
  160. background-color: #eaf8f5;
  161. }
  162. .tab-pane .acitve-submenu-item {
  163. color:rgb(41, 186, 156);
  164. }
  165. .tab-pane .el-submenu__icon-arrow {
  166. display: none;
  167. }
  168. .tab-pane .el-menu-item-group__title {
  169. padding-top: 0 ;
  170. padding-bottom: 0 ;
  171. }
  172. .tab-pane .el-menu-item {
  173. height: 100%;
  174. min-width: 162px;
  175. padding: 0;
  176. }
  177. .tab-pane .el-menu {
  178. border-right:none
  179. }
  180. .el-dialog__header {
  181. padding-bottom: 0 !important;
  182. }
  183. .tab-pane .right {
  184. margin-left: 10px;
  185. width: calc(100% - 200px);
  186. }
  187. .tab-pane .right .single-table {
  188. margin-top: 10px;
  189. height: 420px;
  190. overflow: auto;
  191. }
  192. .tab-pane .right-top {
  193. background: white;
  194. padding: 2px 10px 20px 10px;
  195. border-radius: 10px;
  196. }
  197. .tab-pane .search-pane {
  198. display: flex;
  199. justify-content: space-between;
  200. padding: 0 15px;
  201. }
  202. .el-menu-name {
  203. display: flex;
  204. padding: 10px 13px 10px 0px;
  205. }
  206. .tab-pane-page {
  207. display: flex;
  208. justify-content: flex-end;
  209. align-items: center;
  210. margin-top: 10px;
  211. }
  212. .tab-pane-page .el-button {
  213. margin-left: 10px;
  214. }
  215. .upload-box:hover { border-color: #29ba9c; color: #29ba9c; }
  216. .upload-box {
  217. width: 40px;
  218. height: 40px;
  219. display: flex;
  220. cursor: pointer;
  221. border: 1px dashed #dde2ee;
  222. justify-content: center;
  223. align-items: center;
  224. border-radius: 5px;
  225. }
  226. /* 上传图片 */
  227. .avatar-uploader .el-upload {
  228. margin-top: 15px;
  229. border: 1px dashed #d9d9d9;
  230. border-radius: 6px;
  231. cursor: pointer;
  232. position: relative;
  233. overflow: hidden;
  234. }
  235. .avatar-uploader .el-upload:hover {
  236. border-color: #29ba9c;
  237. }
  238. .avatar-uploader-icon {
  239. font-size: 28px;
  240. color: #8c939d;
  241. width: 178px;
  242. height: 178px;
  243. line-height: 178px;
  244. text-align: center;
  245. }
  246. .avatar_box {
  247. width: 80%;
  248. height: 80%;
  249. margin: 0 auto;
  250. }
  251. .avatar {
  252. width: 50%;
  253. height: 50%;
  254. object-fit: cover;
  255. }
  256. .el-upload-tip {
  257. width: 178px;
  258. margin: 0;
  259. padding: 0;
  260. color: #999;
  261. text-align: center;
  262. }
  263. input[type="file"] {
  264. display: none;
  265. }
  266. .avatar-uploader-box {
  267. position: relative;
  268. margin-top: 20px;
  269. width: 200px;
  270. }
  271. .el-icon-circle-close {
  272. position: absolute;
  273. top: 0;
  274. right: 0;
  275. color: #999;
  276. }
  277. /*弹窗上传图片*/
  278. #upload-img {
  279. }
  280. #upload-img .avatar {
  281. width: 100px;
  282. height: 100px;
  283. display: block;
  284. }
  285. #upload-img .avatar-uploader-box {
  286. position: relative;
  287. margin: 20px 0 0 10px;
  288. width: 110px;
  289. }
  290. #upload-img .el-icon-circle-close {
  291. position: absolute;
  292. top: -7px;
  293. right: 1px;
  294. color: #999;
  295. }
  296. .imgList {
  297. display: flex;
  298. flex-wrap: wrap;
  299. margin: 10px auto;
  300. }
  301. /* 辅助色 */
  302. .vue-assist-color,
  303. .el-link-assist,
  304. .el-link:hover {
  305. color: #ff9b19 !important;
  306. }
  307. /* 选中及未选图片样式 */
  308. .upload-box:hover {
  309. border-color: #29ba9c;
  310. color: #29ba9c;
  311. }
  312. .upload-boxed {
  313. width: 150px;
  314. height: 150px;
  315. position: relative;
  316. border-radius: 5px;
  317. }
  318. .upload-boxed-text {
  319. position: absolute;
  320. bottom: 0;
  321. line-height: 32px;
  322. color: #fff;
  323. text-align: center;
  324. width: 100%;
  325. background: #000;
  326. opacity: 0.7;
  327. border-radius: 0px 0px 5px 5px;
  328. }
  329. .upload-boxed-list {
  330. display: flex;
  331. position: relative;
  332. border-radius: 5px;
  333. flex-wrap: wrap;
  334. }
  335. .upload-boxed-list-a {
  336. width:150px;
  337. height:150px;
  338. margin:0 10px 5px 0;
  339. position: relative;
  340. }
  341. .upload-boxed-list-a .el-icon-close {
  342. position: absolute;
  343. top: -5px;
  344. right: -5px;
  345. color: #fff;
  346. background: #333;
  347. border-radius: 50%;
  348. cursor: pointer;
  349. }
  350. /* 上传图片 */
  351. .avatar-uploader .el-upload {
  352. margin-top: 15px;
  353. border: 1px dashed #d9d9d9;
  354. border-radius: 6px;
  355. cursor: pointer;
  356. position: relative;
  357. overflow: hidden;
  358. }
  359. .avatar-uploader .el-upload:hover {
  360. border-color: #29ba9c;
  361. }
  362. .avatar-uploader-icon {
  363. font-size: 28px;
  364. color: #8c939d;
  365. width: 178px;
  366. height: 178px;
  367. line-height: 178px;
  368. text-align: center;
  369. }
  370. /* 选中及未选图片样式 */
  371. .upload-box:hover {
  372. border-color: #29ba9c;
  373. color: #29ba9c;
  374. }
  375. .upload-boxed {
  376. width: 150px;
  377. height: 150px;
  378. position: relative;
  379. border-radius: 5px;
  380. }
  381. .upload-boxed-text {
  382. position: absolute;
  383. bottom: 0;
  384. line-height: 32px;
  385. color: #fff;
  386. text-align: center;
  387. width: 100%;
  388. background: #000;
  389. opacity: 0.7;
  390. border-radius: 0px 0px 5px 5px;
  391. }
  392. .upload-boxed-list {
  393. display: flex;
  394. position: relative;
  395. border-radius: 5px;
  396. flex-wrap: wrap;
  397. }
  398. .upload-boxed-list-a {
  399. width:150px;
  400. height:150px;
  401. margin:0 10px 5px 0;
  402. position: relative;
  403. }
  404. .upload-boxed-list-a .el-icon-close {
  405. position: absolute;
  406. top: -5px;
  407. right: -5px;
  408. color: #fff;
  409. background: #333;
  410. border-radius: 50%;
  411. cursor: pointer;
  412. }
  413. </style>
  414. <!-- tab -->
  415. <div id='re_content' v-loading="all_loading">
  416. <div class="rightlist-head">
  417. <el-breadcrumb separator-class="el-icon-arrow-right">
  418. <el-breadcrumb-item><a href="{{ yzWebFullUrl('plugin.lucky-draw.admin.controllers.activity.index') }}">新人礼</a></el-breadcrumb-item>
  419. <el-breadcrumb-item>创建活动</el-breadcrumb-item>
  420. </el-breadcrumb>
  421. </div>
  422. <el-steps :active="active" simple style="width:90%;margin:0 auto">
  423. <el-step title="1、创建活动" icon="el-icon-edit"></el-step>
  424. <el-step title="2、奖品设置" icon="el-icon-setting"></el-step>
  425. <el-step title="3、页面设置" icon="el-icon-goods"></el-step>
  426. </el-steps>
  427. <!-- content start -->
  428. <div style="width:1100px;margin:50px auto">
  429. <!-- left -->
  430. <!-- left -->
  431. <div class="left-conOne" v-if="form.background_type==0">
  432. <div style="padding-top: 45%;padding-left: 17%;font-size: 24px;color: #fff;">
  433. [[form.title]]
  434. </div>
  435. </div>
  436. <div class="left-conTwo" v-if="form.background_type==1">
  437. <div style="padding-top: 45%;padding-left: 15%;font-size: 24px;color: #b07e54;;">
  438. [[form.title]]
  439. </div>
  440. </div>
  441. <div class="left-conThree" v-if="form.background_type==2">
  442. <div style="padding-top: 65%;font-size: 24px;color: #fff;text-align:center;">
  443. [[form.title]]
  444. </div>
  445. </div>
  446. <div class="left-conFour" v-if="form.background_type==3">
  447. <div style="padding-top: 45%;padding-left: 15%;font-size: 24px;color: #fff;text-align:left;">
  448. [[form.title]]
  449. </div>
  450. </div>
  451. <div class="left-conFive" v-if="form.background_type==4">
  452. <div style="padding-top: 45%;padding-left: 15%;font-size: 24px;color: #fff;text-align:left;">
  453. [[form.title]]
  454. </div>
  455. </div>
  456. <!-- right -->
  457. <!-- step 1 -->
  458. <el-form ref="form" :model="form" label-width="20%">
  459. <div v-if="active==0" class="right-con" style="width:600px;border:1px solid #e1e1e1;background:#fafafa;float:left;">
  460. <div style="line-height:40px;padding-left:15px;font-weight:900;">基本信息</div>
  461. <hr style="padding:0;margin:0"/>
  462. <template>
  463. <el-form-item label="活动名称" prop="name" style="margin-top:20px;">
  464. <el-input v-model="form.name" style="width:70%"></el-input>
  465. </el-form-item>
  466. <el-form-item label="活动时间" prop="time">
  467. <el-row>
  468. <el-date-picker v-model="form.activity_time" value-format="timestamp" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
  469. </el-row>
  470. </el-form-item>
  471. <el-form-item label="活动渠道" >
  472. <template>
  473. <el-checkbox-group v-model="form.activity_type">
  474. <div><el-checkbox label="0">微信公众号</el-checkbox></div>
  475. <div><el-checkbox label="1">微信小程序</el-checkbox></div>
  476. <div><el-checkbox label="2">H5/封装APP/支付宝</el-checkbox></div>
  477. </el-checkbox-group>
  478. </template>
  479. </el-form-item>
  480. <el-form-item label="领取条件" >
  481. <template>
  482. <el-radio-group v-model="form.receive_type">
  483. <div>
  484. <el-radio :label="0" style="margin-top:10px;">新注册会员</el-radio>
  485. </div>
  486. <div>
  487. <el-radio :label="1" style="margin-top:10px;">无消费记录会员</el-radio>
  488. </div>
  489. <div>
  490. <el-radio :label="2" style="margin-top:10px;">直推客户满<el-input placeholder="请输入内容" class="people" v-model="form.num"></el-input><span>人</span></el-radio>
  491. </div>
  492. <div>
  493. <el-radio :label="4" style="margin-top:10px;">选择会员标签</el-radio>
  494. </div>
  495. <div class="select-goods" style="margin-top:10px;" v-if="form.receive_type==4">
  496. <el-button @click.stop="openDialog()">
  497. <i class="el-icon-plus"></i> 添加标签
  498. </el-button>
  499. <div style="position:relative;margin-top:10px;display:inline-block;" >
  500. <span v-if="form.tags" v-for="(item,index) in form.tags">
  501. <el-tag effect="plain" style="margin-right:10px; margin-bottom:10px; cursor: pointer;user-select: none;" :closable="true" @close="handleCloseTag(index)" :key="index">[[item.title]]</el-tag>
  502. </span>
  503. </div>
  504. </div>
  505. <div>
  506. <el-radio :label="3" style="margin-top:10px;">购买指定商品会员</el-radio>
  507. </div>
  508. </el-radio-group>
  509. <div class="select-goods" style="margin-top:10px;" v-if="form.receive_type==3">
  510. <el-input v-model="titleList.join(',')" style="width:70%;" disabled></el-input>
  511. <el-button @click="openGoods()" type="primary">选择商品</el-button>
  512. <div style="position:relative;margin-top:10px;display:inline-block;" >
  513. <div style="font-size:12px;">可指定多件商品,只需购买其中一件就可以获得奖励</div>
  514. <div style="display:flex;flex-wrap:wrap;">
  515. <template v-for="(item,index) in thumbList">
  516. <div style="display:flex;width: 100px;height: 100px;box-sizing: border-box;margin-right: 10px;position:relative;margin-top:10px;">
  517. <img :src="item.thumb" style="display:inline-block;width:90%;padding: 10px;border: solid 1px #ccc;">
  518. <div style="margin-top:-10px;position:absolute;right:0;top:0;" @click="delGoods(item)">
  519. x
  520. </div>
  521. </div>
  522. </template>
  523. </div>
  524. </div>
  525. </div>
  526. <el-radio-group v-model="form.pay" v-if="form.receive_type==3">
  527. <el-radio label="0" style="margin-top:10px;">付款后</el-radio>
  528. <el-radio label="1" style="margin-top:10px;">完成后</el-radio>
  529. </el-radio-group>
  530. </template>
  531. </el-form-item>
  532. <el-form-item label="注">
  533. <template>
  534. <p style="padding-right:15px;font-size:12px;">
  535. 同一种领取条件、同一活动时间只能创建一个活动;领取条件为新注册会员活动存在的,新注册会员获得新注册会员领取条件的新人礼;如果不存在新注册会员活动,但是存在无消费记录会员活动的,新注册会员获得无消费记录会员新人礼;同一活动时间,无消费记录、会员标签、直推客户数量满N人、购买指定商品会员领取条件的活动不能同时发布
  536. </p>
  537. </template>
  538. </el-form-item>
  539. </template>
  540. </div>
  541. <div v-if="active==1" class="right-con" style="width:600px;border:1px solid #e1e1e1;background:#fafafa;float:left;">
  542. <div style="line-height:40px;padding-left:15px;font-weight:900;">添加奖品</div>
  543. <hr style="padding:0;margin:0"/>
  544. <el-button type="primary" size="mini" style="margin:5px" @click="addAward()" >添加奖品</el-button>
  545. <!-- 表格start -->
  546. <template>
  547. <el-table :data="award_list" style="width: 100%" v-loading="search_loading">
  548. <el-table-column prop="name" label="名称" align="center"></el-table-column>
  549. <el-table-column prop="award" label="礼品" align="center" >
  550. <template slot-scope="scope">
  551. <div v-if="scope.row.prize_type==1">
  552. 优惠券
  553. </div>
  554. <div v-if="scope.row.prize_type==2">
  555. 积分
  556. </div>
  557. <div v-if="scope.row.prize_type==3">
  558. 可用爱心值
  559. </div>
  560. <div v-if="scope.row.prize_type==5">
  561. 冻结爱心值
  562. </div>
  563. <div v-if="scope.row.prize_type==4">
  564. 余额
  565. </div>
  566. </template>
  567. </el-table-column>
  568. <el-table-column prop="received_num" label="发放" align="center" >
  569. <template slot-scope="scope">
  570. <div>
  571. [[scope.row.received_num]]
  572. </div>
  573. </template>
  574. </el-table-column>
  575. <el-table-column prop="prize_num" label="数量" align="center"></el-table-column>
  576. <el-table-column label="操作" align="center">
  577. <template slot-scope="scope">
  578. <a @click="editAward(scope, award_list)">编辑</a>
  579. <a @click="open(scope, award_list)">删除</a>
  580. </template>
  581. </el-table-column>
  582. </el-table>
  583. </template>
  584. </div>
  585. <div v-if="active==2" class="right-con" style="width:600px;border:1px solid #e1e1e1;background:#fafafa;float:left;">
  586. <div style="line-height:40px;padding-left:15px;font-weight:900;">页面设置</div>
  587. <hr style="padding:0;margin:0"/>
  588. <template>
  589. <el-form-item label="领取条件" style="margin-top:20px;">
  590. <template>
  591. <el-radio-group v-model="form.background_type" style="margin-top: 10px">
  592. <el-radio :label="0">样式一</el-radio>
  593. <el-radio :label="1">样式二</el-radio>
  594. <el-radio :label="2" >样式三</el-radio>
  595. <el-radio :label="3">样式四</el-radio>
  596. <el-radio :label="4" style="margin-top: 10px">自定义样式</el-radio>
  597. </el-radio-group>
  598. </template>
  599. </el-form-item>
  600. <el-form-item>
  601. <div v-if="form.background_type==4" style="margin-top: 10px">
  602. <div class="upload-box" @click="openUpload()" style="width:140px;height:140px" v-if="!form.diy_pic">
  603. <i class="el-icon-plus" style="font-size:32px"></i>
  604. </div>
  605. <div @click="openUpload()" style="width:140px;height:140px" class="upload-boxed" v-if="form.diy_pic">
  606. <img :src="form.diy_pic" alt=""
  607. style="width:140px;height:140px;border-radius: 5px;cursor: pointer;">
  608. </div>
  609. <span>建议尺寸:500*824</span>
  610. </div>
  611. </el-form-item>
  612. <el-form-item label="标题">
  613. <el-input placeholder="请输入标题" v-model="form.title"></el-input>
  614. </el-form-item>
  615. <el-form-item label="领取后H5跳转链接">
  616. <el-input placeholder="输入跳转链接" v-model="form.after_url"></el-input>
  617. </el-form-item>
  618. <el-form-item label="领取后小程序跳转链接">
  619. <el-input placeholder="输入跳转链接" v-model="form.after_mini"></el-input>
  620. </el-form-item>
  621. </template>
  622. </div>
  623. </el-form>
  624. </div>
  625. <div style="width:100%;display:block;float:left;text-align:center;margin:30px 0;" v-if="active==0||active==1||active==2">
  626. <a href="{{ yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.index') }}"><el-button v-if="active==0">取消</el-button></a>
  627. <el-button @click="last()" v-if="active==1||active==2">
  628. 上一步
  629. </el-button>
  630. <el-button type="success" @click="next()" v-if="active==1||active==0">
  631. 下一步
  632. </el-button>
  633. <el-button type="success" @click="submit()" v-if="active==2">
  634. 完成
  635. </el-button>
  636. </div>
  637. <!-- 添加奖品弹出框 -->
  638. <el-dialog title="添加奖品" :visible.sync="is_add_dialog" @close="closePop" class="addAwrad" :lock-scroll="true">
  639. <div >
  640. <el-form ref="award_form" :model="award_form" label-width="20%">
  641. <template>
  642. <el-form-item label="名称" prop="name">
  643. <el-input v-model="award_form.name" style="width:70%" placeholder="最多可填6个字"></el-input>
  644. </el-form-item>
  645. <el-form-item label="奖品" prop="award_type">
  646. <div>
  647. <el-radio v-model.munber="award_form.award_type" :label="1" >优惠券</el-radio>
  648. <el-select
  649. v-model="award_form.coupon"
  650. v-if="award_form.award_type==1"
  651. filterable
  652. remote
  653. style="width:50%"
  654. @change="getCount"
  655. reserve-keyword
  656. placeholder="请输入关键词"
  657. :remote-method="loadAward"
  658. :loading="loading">
  659. <el-option
  660. v-for="item in AwardList"
  661. :key="item.id"
  662. :label="item.name"
  663. :value="item.id">
  664. </el-option>
  665. </el-select>
  666. <el-input v-model="award_form.coupon_num" style="width:50px;display:inline-block;" v-if="award_form.award_type==1"></el-input>
  667. <div style="margin-left:10px;display:inline-block;" v-if="award_form.coupon">可用库存[[lasttotal]]份</div>
  668. </div>
  669. <div style="margin:5px 0">
  670. <el-radio v-model.munber="award_form.award_type" :label="2" >积分</el-radio>
  671. <el-input style="width:60%;padding-left:20px" v-model="award_form.coin">
  672. <template slot="append">积分</template>
  673. </el-input>
  674. </div>
  675. <div style="margin:5px 0" v-if="love_status == 1">
  676. <el-radio v-model.munber="award_form.award_type" :label="3" >可用[[love_name]]</el-radio>
  677. <el-input style="width:60%;padding-left:20px" v-model="love_use">
  678. <template slot="append">可用[[love_name]]</template>
  679. </el-input>
  680. </div>
  681. <div style="margin:5px 0" v-if="love_status == 1">
  682. <el-radio v-model.munber="award_form.award_type" :label="5" >冻结[[love_name]]</el-radio>
  683. <el-input style="width:60%;padding-left:20px" v-model="love_froze">
  684. <template slot="append">冻结[[love_name]]</template>
  685. </el-input>
  686. </div>
  687. <div style="margin:5px 0">
  688. <el-radio v-model.munber="award_form.award_type" :label="4" >余额</el-radio>
  689. <el-input style="width:60%;padding-left:20px" v-model="award_form.rest">
  690. <template slot="append">余额</template>
  691. </el-input>
  692. </div>
  693. </el-form-item>
  694. <el-form-item label="数量" prop="name">
  695. <el-input v-model="award_form.number" style="width:70%">
  696. <template slot="append">份</template>
  697. </el-input>
  698. </el-form-item>
  699. </template>
  700. </el-form>
  701. </div>
  702. <span slot="footer" class="dialog-footer">
  703. <el-button @click="is_add_dialog = false">取 消</el-button>
  704. <el-button type="primary" @click="choose()">确 定</el-button>
  705. </span>
  706. </el-dialog>
  707. <!-- 会话框 -->
  708. <el-dialog title="选择标签" :visible.sync="dialogVisible" width="55%" :before-close="handleClose" v-if="tagInfo">
  709. <div class="tab-pane">
  710. <div class="left">
  711. <div class="vue-title">
  712. <div class="vue-title-left"></div>
  713. <div class="vue-title-content">标签组</div>
  714. </div>
  715. <el-menu
  716. default-active="1"
  717. :default-openeds="openeds"
  718. class="el-menu-vertical-demo">
  719. <el-submenu index="1" :class="select_group_id === '' ? 'acitve-submenu' : ''" >
  720. <template slot="title">
  721. <div @click="handleSelect('')">
  722. <i class="el-icon-folder-opened" :class="select_group_id === '' ? 'acitve-submenu-item' : ''"></i>
  723. <span :class="select_group_id === '' ? 'acitve-submenu-item' : ''">全部分组</span>
  724. </div>
  725. </template>
  726. <el-menu-item-group>
  727. <el-menu-item v-for="(item,index) in menu_item_list" :key="index">
  728. <div class="el-menu-name" :style="[{color:( Number(select_group_id) == item.id ? '#29ba9c':'')}]" @click="handleSelect(item.id)">
  729. <i class="el-icon-folder-opened" :style="[{color:( Number(select_group_id) == item.id ? '#29ba9c':'')}]" ></i>
  730. <span style="white-space: normal !important;line-height: normal;">[[item.title]]</span>
  731. </div>
  732. </el-menu-item>
  733. </el-menu-item-group>
  734. </el-submenu>
  735. </el-menu>
  736. </div>
  737. <div class="right">
  738. <div class="right-top">
  739. <div class="vue-title">
  740. <div class="vue-title-left"></div>
  741. <div class="vue-title-content">标签列表</div>
  742. </div>
  743. <div class="search-pane">
  744. <el-input placeholder="标签名称" style="width: 40%;" v-model="tag_keyword"></el-input>
  745. <el-button type="primary" @click="search1(1)">搜索</el-button>
  746. </div>
  747. </div>
  748. <div class="single-table">
  749. <el-table ref="singleTable" :data="tagData">
  750. <el-table-column label="ID" prop="id"></el-table-column>
  751. <el-table-column label="标签名称" prop="title"></el-table-column>
  752. <el-table-column label="操作">
  753. <template slot-scope="scope">
  754. <el-button size="mini" @click="makeMemberTags(scope.row)">选择</el-button>
  755. </template>
  756. </el-table-column>
  757. </el-table>
  758. </div>
  759. </div>
  760. </div>
  761. <div class="vue-page tab-pane-page">
  762. <el-row>
  763. <el-col align="right">
  764. <el-pagination layout="prev, pager, next,jumper" @current-change="search1" :total="tag_total" :page-size="tag_per_page" :current-page="tag_current_page" background></el-pagination>
  765. </el-col>
  766. </el-row>
  767. <el-button @click="dialogVisible = false">取 消</el-button>
  768. </div>
  769. </el-dialog>
  770. <!-- 编辑奖品弹出框 -->
  771. <el-dialog title="编辑奖品" :visible.sync="is_edit_dialog" @close="closeEdit" class="editAwrad" :lock-scroll="true">
  772. <div>
  773. <el-form ref="edit_form" :model="edit_form" :rules="rules" label-width="20%">
  774. <template>
  775. <el-form-item label="名称" prop="name">
  776. <el-input v-model="edit_form.name" style="width:70%" placeholder="最多可填6个字" ></el-input>
  777. </el-form-item>
  778. <el-form-item label="奖品" prop="prize_type">
  779. <div>
  780. <el-radio v-model="edit_form.prize_type" :label="1" >优惠券</el-radio>
  781. <el-select
  782. v-model="edit_form.coupon_id"
  783. v-if="edit_form.prize_type==1"
  784. filterable
  785. remote
  786. style="width:50%"
  787. reserve-keyword
  788. @change="getEdit"
  789. placeholder="请输入关键词"
  790. :remote-method="loadEdit"
  791. :loading="loading">
  792. <el-option
  793. v-for="item in EditList"
  794. :key="item.id"
  795. :label="item.name"
  796. :value="item.id">
  797. </el-option>
  798. </el-select>
  799. <el-input v-model="edit_form.coupon_num" style="width:50px;display:inline-block;" v-if="edit_form.prize_type==1"></el-input>
  800. <div style="margin-left:10px;display:inline-block;" v-if="edit_form.prize_type==1">可用库存[[lasttotal]]份</div>
  801. </div>
  802. <div style="margin:5px 0">
  803. <el-radio v-model="edit_form.prize_type" :label="2" >积分</el-radio>
  804. <el-input style="width:60%;padding-left:20px" v-model="edit_form.point" >
  805. <template slot="append">积分</template>
  806. </el-input>
  807. </div>
  808. <div style="margin:5px 0" v-if="love_status == 1">
  809. <el-radio v-model="edit_form.prize_type" :label="3">可用[[love_name]]</el-radio>
  810. <el-input style="width:60%;padding-left:20px" v-model="love_use">
  811. <template slot="append">可用[[love_name]]</template>
  812. </el-input>
  813. </div>
  814. <div style="margin:5px 0" v-if="love_status == 1">
  815. <el-radio v-model="edit_form.prize_type" :label="5">冻结[[love_name]]</el-radio>
  816. <el-input style="width:60%;padding-left:20px" v-model="love_froze">
  817. <template slot="append">冻结[[love_name]]</template>
  818. </el-input>
  819. </div>
  820. <div style="margin:5px 0">
  821. <el-radio v-model="edit_form.prize_type" :label="4" >余额</el-radio>
  822. <el-input style="width:60%;padding-left:20px" v-model="edit_form.amount" >
  823. <template slot="append">余额</template>
  824. </el-input>
  825. </div>
  826. </el-form-item>
  827. <el-form-item label="数量" prop="name">
  828. <el-input v-model="edit_form.prize_num" style="width:70%">
  829. <template slot="append">份</template>
  830. </el-input>
  831. </el-form-item>
  832. </template>
  833. </el-form>
  834. </div>
  835. <span slot="footer" class="dialog-footer">
  836. <el-button @click="is_edit_dialog = false">取 消</el-button>
  837. <el-button type="primary" @click="editChoose()">确 定</el-button>
  838. </span>
  839. </el-dialog>
  840. <!--end-->
  841. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp"
  842. @sure="sureImg"></upload-img>
  843. <el-dialog :visible.sync="goodsShow" width="60%" center title="选择商品">
  844. <div>
  845. <div>
  846. <el-input v-model="keyword" style="width:70%"></el-input>
  847. <el-button type="primary" @click="searchGoods()">搜索</el-button>
  848. </div>
  849. <el-table :data="goods_list" style="width: 100%;height:500px;overflow:auto">
  850. <el-table-column label="ID" prop="id" align="center" width="100px"></el-table-column>
  851. <el-table-column label="商品信息">
  852. <template slot-scope="scope">
  853. <div v-if="scope.row" style="display:flex;align-items: center">
  854. <img v-if="scope.row.thumb" :src="scope.row.thumb" style="width:50px;height:50px"></img>
  855. <div style="margin-left:10px">[[scope.row.title]]</div>
  856. </div>
  857. </template>
  858. </el-table-column>
  859. <el-table-column prop="refund_time" label="操作" align="center" width="320">
  860. <template slot-scope="scope">
  861. <el-button @click="sureGoods(scope.row)">
  862. 选择
  863. </el-button>
  864. </template>
  865. </el-table-column>
  866. </el-table>
  867. </div>
  868. </el-dialog>
  869. </div>
  870. @include('public.admin.uploadImg')
  871. <script>
  872. var vm = new Vue({
  873. el: "#re_content",
  874. delimiters: ['[[', ']]'],
  875. data() {
  876. let data = {!! $activity?:'{}' !!}
  877. let selectGoods={!! $goods?:'{}' !!}
  878. let tags={!! $tags?:'{}' !!}
  879. let love_name ='{!! $love_name ?: '爱心值' !!}'
  880. let love_status = {!! $love_status !!};
  881. return {
  882. lasttotal:0,
  883. selectGoods:selectGoods,
  884. goods_list:[],
  885. goodsShow:false,
  886. keyword:'',
  887. activity_id:data.id,
  888. love_name:String(love_name),
  889. love_status:love_status,
  890. arr:data.prize_id,
  891. AwardList:[],
  892. EditList:[],
  893. all_loading:false,
  894. search_loading:false,
  895. search_form:{},
  896. uploadShow: false,
  897. chooseImgName: '',
  898. real_search_form:"",
  899. titleList:[],
  900. thumbList:[],
  901. award_list:[
  902. ],
  903. active:0,
  904. old_edit_form_coupon:'',
  905. form:{
  906. activity_time:[data.start_time*1000,data.end_time*1000],
  907. name:data.name,
  908. activity_type:data.activity_type,
  909. receive_type:data.receive_type,
  910. background_type:data.background_type,
  911. title:data.title,
  912. goods_id:data.receive_content.goods_id,
  913. pay:data.receive_content.pay,
  914. tags:tags,
  915. after_url:data.after_url,
  916. after_mini:data.after_mini,
  917. diy_pic:data.diy_pic,
  918. style_pic:data.style_pic,
  919. num:data.receive_content.num,
  920. },
  921. award_form:{
  922. name:'',
  923. award_type:1,
  924. coupon:'',
  925. coin:'',
  926. number:'',
  927. love:'',
  928. rest:'',
  929. coupon_num:'',
  930. },
  931. love_use:'',
  932. love_froze:'',
  933. edit_form:{
  934. },
  935. is_add_dialog:false,
  936. is_edit_dialog:false,
  937. loading:false,
  938. rules:{},
  939. //当前打开的 sub-menu 的 index 的数组
  940. openeds:["1"],
  941. dialogVisible: false,
  942. select_group_id:"",
  943. tagData: [],
  944. menu_item_list:[],
  945. tag_total: 1,
  946. tag_current_page: 1,
  947. tag_per_page: 1,
  948. tag_keyword:"",
  949. tagInfo:false,
  950. }
  951. },
  952. created () {
  953. this.getList();
  954. this.selectGoods.forEach((item,index,key)=>{
  955. this.thumbList.push(item)
  956. this.titleList.push(`[`+item.id+`]`+item.title)
  957. })
  958. },
  959. methods: {
  960. getCount(val){
  961. this.AwardList.forEach((item,index)=>{
  962. if(item.id==val){
  963. if(item.total!=-1){
  964. this.lasttotal=item.lasttotal
  965. }else{
  966. this.lasttotal='无限量'
  967. }
  968. }
  969. })
  970. },
  971. getEdit(val){
  972. this.EditList.forEach((item,index)=>{
  973. if(item.id==val){
  974. if(item.total!=-1){
  975. this.lasttotal=item.lasttotal
  976. }else{
  977. this.lasttotal='无限量'
  978. }
  979. }
  980. })
  981. },
  982. openGoods() {
  983. this.goodsShow = true;
  984. },
  985. delGoods(item){
  986. this.thumbList.forEach((list,index)=>{
  987. if(list.thumb==item.thumb){
  988. this.thumbList.splice(index,1)
  989. this.titleList.splice(index,1)
  990. this.form.goods_id.splice(index,1)
  991. }
  992. })
  993. },
  994. searchGoods() {
  995. let that = this;
  996. this.$http.post('{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.getGoods') !!}',{kwd:this.keyword}).then(response => {
  997. if (response.data.result) {
  998. this.goods_list = response.data.data;
  999. } else {
  1000. this.$message({message: response.data.msg,type: 'error'});
  1001. }
  1002. },response => {
  1003. this.$message({message: response.data.msg,type: 'error'});
  1004. });
  1005. },
  1006. sureGoods(item) {
  1007. let status=0
  1008. this.form.goods_id.some((list,index,key)=>{
  1009. if(list==item.id){
  1010. status=1
  1011. this.$message({message: '该商品已被选中',type: 'error'});
  1012. return true
  1013. }
  1014. })
  1015. if(status==1){
  1016. return false
  1017. }
  1018. this.thumbList.push(item)
  1019. this.titleList.push(`[`+item.id+`]`+item.title) ;
  1020. this.form.goods_id.push(item.id)
  1021. },
  1022. openDialog(row) {
  1023. //打开回话框
  1024. this.dialogVisible = true
  1025. //请求标签列表
  1026. this.handleTagsList(1);
  1027. //请求标签组列表
  1028. this.getTagsGroupList();
  1029. },
  1030. //3.请求标签的列表数据
  1031. handleTagsList(page) {
  1032. let group_id = {};
  1033. if(this.select_group_id) {
  1034. group_id = { group_id : this.select_group_id };
  1035. }
  1036. this.$http.post("{!!yzWebFullUrl('plugin.member-tags.Backend.controllers.tag.get-tags-list')!!}", {
  1037. search:{
  1038. ...group_id,
  1039. title:this.tag_keyword,
  1040. },
  1041. page
  1042. }).then(({data,result,msg}) => {
  1043. if(data.result) {
  1044. this.tagData = data.data.data;
  1045. this.tag_current_page = data.data.current_page;
  1046. this.tag_total = data.data.total;
  1047. this.tag_per_page = data.data.per_page;
  1048. }else {
  1049. console.log(data.msg);
  1050. }
  1051. })
  1052. },
  1053. //5.选择完标签关闭弹窗
  1054. handleClose() {
  1055. this.dialogVisible = false
  1056. },
  1057. // 标签搜索
  1058. search1(page) {
  1059. this.handleTagsList(page);
  1060. },
  1061. // 获取标签分组数据
  1062. getTagsGroupList() {
  1063. this.tagInfo = false;
  1064. this.$http.get("{!!yzWebFullUrl('plugin.member-tags.Backend.controllers.tag.getGroupList')!!}", {}).then(({data,result,msg}) => {
  1065. if(data.result) {
  1066. this.menu_item_list = data.data;
  1067. }else {
  1068. console.log(data.msg);
  1069. }
  1070. this.tagInfo = true;
  1071. })
  1072. },
  1073. handleCloseTag(index) {
  1074. this.form.tags.splice(index,1);
  1075. },
  1076. // 选中的分组
  1077. handleSelect(id){
  1078. this.select_group_id = id;
  1079. this.tag_keyword = "";
  1080. this.handleTagsList(1);
  1081. },
  1082. makeMemberTags(item) {
  1083. for(let i=0;i<this.form.tags.length;i++) {
  1084. if(item.id == this.form.tags[i].id){
  1085. this.$message.error("此标签已经选择!无需重复操作!");
  1086. return false;
  1087. }
  1088. }
  1089. this.form.tags.push({id:item.id,title:item.title});
  1090. },
  1091. openUpload() {
  1092. this.uploadShow = true
  1093. },
  1094. changeProp(val) {
  1095. if (val == true) {
  1096. this.uploadShow = false;
  1097. }
  1098. else {
  1099. this.uploadShow = true;
  1100. }
  1101. },
  1102. sureImg(name, image, image_url) {
  1103. this.form.diy_pic = image_url;
  1104. this.form.style_pic = image;
  1105. },
  1106. deleteAward(scope, rows){
  1107. rows.splice(scope.$index, 1);
  1108. this.arr.map((item,index,key)=>{
  1109. if(item===scope.row.id){
  1110. this.arr.splice(index,1);
  1111. }
  1112. })
  1113. let json={
  1114. id:scope.row.id,
  1115. activity_id:this.activity_id
  1116. }
  1117. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.delPrize') !!}",json).then(function (response){
  1118. this.getList();
  1119. },function (response) {
  1120. console.log(response);
  1121. }
  1122. );
  1123. },
  1124. open(scope, rows) {
  1125. this.$confirm('此操作将永久删除该奖品, 是否继续?', '提示', {
  1126. confirmButtonText: '确定',
  1127. cancelButtonText: '取消',
  1128. type: 'warning',
  1129. }).then(() => {
  1130. this.$message({
  1131. type: 'success',
  1132. message: '删除成功!',
  1133. callback:this.deleteAward(scope, rows)
  1134. });
  1135. }).catch(() => {
  1136. this.$message({
  1137. type: 'info',
  1138. message: '已取消删除'
  1139. });
  1140. });
  1141. },
  1142. closePop(){
  1143. this.is_add_dialog=false;
  1144. },
  1145. closeEdit(){
  1146. this.is_edit_dialog=false;
  1147. },
  1148. next() {
  1149. if(this.active===0){
  1150. if(this.form.name===''){
  1151. this.$message.error("请输入活动名称");
  1152. return
  1153. }
  1154. if(this.form.activity_type.length<=0){
  1155. this.$message.error("请选择活动渠道");
  1156. return
  1157. }
  1158. }
  1159. if(this.active===1){
  1160. if(this.award_list.length<=0){
  1161. this.$message.error("请先添加奖品");
  1162. return
  1163. }
  1164. }
  1165. if(this.active<=2){
  1166. this.active++;
  1167. }
  1168. },
  1169. last() {
  1170. this.active--;
  1171. },
  1172. addAward() {
  1173. this.love_use = ''
  1174. this.love_froze = ''
  1175. this.award_form={
  1176. name:'',
  1177. award_type:1,
  1178. coupon:'',
  1179. number:'',
  1180. coin:'',
  1181. love:'',
  1182. coupon_num:'',
  1183. },
  1184. this.is_add_dialog = true;
  1185. },
  1186. editAward(scope, rows){
  1187. let json={
  1188. id:scope.row.id
  1189. }
  1190. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.editPrize') !!}",json).then(response => {
  1191. if (response.data.result) {
  1192. this.edit_form=response.data.data.prize;
  1193. if(this.edit_form.prize_type===1){
  1194. this.old_edit_form_coupon=this.edit_form.coupon.id;
  1195. this.edit_form.coupon_id=this.edit_form.coupon.name;
  1196. this.lasttotal=this.edit_form.coupon.total==-1?'无限量':this.edit_form.coupon.lasttotal;
  1197. this.love_use = ''
  1198. this.love_froze = ''
  1199. this.edit_form.point='';
  1200. this.edit_form.amount='';
  1201. }
  1202. if(this.edit_form.prize_type==2){
  1203. this.love_use = ''
  1204. this.love_froze = ''
  1205. this.edit_form.amount='';
  1206. this.edit_form.coupon_id='';
  1207. }
  1208. if(this.edit_form.prize_type==3){
  1209. this.edit_form.point='';
  1210. this.edit_form.amount='';
  1211. this.edit_form.coupon_id='';
  1212. this.love_froze = '';
  1213. this.love_use = response.data.data.prize.love;
  1214. }
  1215. if(this.edit_form.prize_type==4){
  1216. this.love_use = '';
  1217. this.love_froze = '';
  1218. this.edit_form.point='';
  1219. this.edit_form.coupon_id='';
  1220. }
  1221. if(this.edit_form.prize_type==5){
  1222. this.edit_form.point='';
  1223. this.edit_form.amount='';
  1224. this.edit_form.coupon_id='';
  1225. this.love_use = '';
  1226. this.love_froze = response.data.data.prize.love;
  1227. }
  1228. }
  1229. else {
  1230. this.$message({message: response.data.msg,type: 'error'});
  1231. }
  1232. });
  1233. this.is_edit_dialog = true;
  1234. },
  1235. getList(){
  1236. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.getPrizeList') !!}",{'prize_id':this.arr}).then(response => {
  1237. if (response.data.result) {
  1238. this.award_list=response.data.data.prize_list;
  1239. }
  1240. else {
  1241. this.$message({message: response.data.msg,type: 'error'});
  1242. }
  1243. });
  1244. },
  1245. // 确认选中奖品
  1246. choose() {
  1247. if(this.award_form.name===''){
  1248. this.$message.error('请填写正确的奖品名称');
  1249. return ;
  1250. }
  1251. switch (this.award_form.award_type) {
  1252. case 1:
  1253. if(this.award_form.coupon===''||this.award_form.coupon===null||this.award_form.coupon===undefined){
  1254. this.$message.error("请选择优惠券");
  1255. return
  1256. }
  1257. if(this.award_form.coupon_num==''){
  1258. this.$message.error("优惠券份数不能为空");
  1259. return
  1260. }
  1261. if(this.award_form.coupon_num<=0){
  1262. this.$message.error("优惠券份数必须大于0");
  1263. return
  1264. }
  1265. // if(this.award_form.coupon_num>15){
  1266. // this.$message.error("优惠券份数必须小于15");
  1267. // return
  1268. // }
  1269. break;
  1270. case 2:
  1271. if(this.award_form.coin===''){
  1272. this.$message.error("请填写积分");
  1273. return
  1274. }
  1275. if(isNaN(this.award_form.coin)){
  1276. this.$message.error("积分需为数字");
  1277. return
  1278. }
  1279. break;
  1280. case 3:
  1281. if(this.love_use===''){
  1282. this.$message.error(`请填写${this.love_name}`);
  1283. return
  1284. }
  1285. if(isNaN(this.love_use)){
  1286. this.$message.error(`${this.love_name}需为数字`);
  1287. return
  1288. }
  1289. break;
  1290. case 4:
  1291. if(this.award_form.rest===''){
  1292. this.$message.error("请填写余额");
  1293. return
  1294. }
  1295. if(isNaN(this.award_form.rest)){
  1296. this.$message.error("余额需为数字");
  1297. return
  1298. }
  1299. break;
  1300. case 5:
  1301. if(this.love_froze===''){
  1302. this.$message.error(`请填写${this.love_name}`);
  1303. return
  1304. }
  1305. if(isNaN(this.love_froze)){
  1306. this.$message.error(`${this.love_name}需为数字`);
  1307. return
  1308. }
  1309. break;
  1310. }
  1311. if(this.award_form.number===''){
  1312. this.$message.error("请填写数量");
  1313. return
  1314. }
  1315. if(isNaN(this.award_form.number)){
  1316. this.$message.error("数量需为数字");
  1317. return
  1318. }
  1319. let i =0;
  1320. let status=0;
  1321. this.award_list.some((item,index)=>{
  1322. if(item.prize_type==this.award_form.award_type){
  1323. status=1
  1324. switch (this.award_form.award_type) {
  1325. case 2:
  1326. this.$message.error("奖品列表最多添加一份积分奖品");
  1327. break;
  1328. case 3:
  1329. this.$message.error("奖品列表最多添加一份可用爱心值奖品");
  1330. break;
  1331. case 4:
  1332. this.$message.error("奖品列表最多添加一份余额奖品");
  1333. break;
  1334. case 5:
  1335. this.$message.error("奖品列表最多添加一份冻结爱心值奖品");
  1336. break;
  1337. }
  1338. if(item.prize_type==1){
  1339. i++
  1340. }
  1341. }
  1342. })
  1343. if(status ==1 && this.award_form.award_type!=1){
  1344. return false
  1345. }
  1346. if(i >=5 && this.award_form.award_type==1) {
  1347. this.$message.error("奖品列表最多添加五分份优惠券奖品");
  1348. return false
  1349. }
  1350. let json={
  1351. name:this.award_form.name,
  1352. prize_type:this.award_form.award_type,
  1353. coupon_id:this.award_form.award_type===1?this.award_form.coupon:'',
  1354. prize_num:this.award_form.number,
  1355. point:this.award_form.award_type===2?this.award_form.coin:'',
  1356. love_use:this.award_form.award_type===3?this.love_use:'',
  1357. love_froze:this.award_form.award_type===5?this.love_froze:'',
  1358. amount:this.award_form.award_type===4?this.award_form.rest:'',
  1359. coupon_num:this.award_form.award_type===1?this.award_form.coupon_num:'',
  1360. }
  1361. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.addPrize') !!}",{'post_data':json,id:this.activity_id}).then(response => {
  1362. if (response.data.result) {
  1363. this.$message({message: "添加奖品成功",type: 'success'});
  1364. this.arr.push(response.data.data.id);
  1365. this.getList();
  1366. }
  1367. else {
  1368. this.$message({message: response.data.msg,type: 'error'});
  1369. }
  1370. });
  1371. this.is_add_dialog=false;
  1372. },
  1373. editChoose(){
  1374. if(this.edit_form.name===''){
  1375. this.$message.error('请填写正确的奖品名称');
  1376. return ;
  1377. }
  1378. switch (this.edit_form.prize_type) {
  1379. case 1:
  1380. if(this.edit_form.coupon_id===''||this.edit_form.coupon_id===null||this.edit_form.coupon_id===undefined){
  1381. this.$message.error("请选择优惠券");
  1382. return
  1383. }
  1384. if(this.edit_form.coupon_num==''){
  1385. this.$message.error("优惠券份数不能为空");
  1386. return
  1387. }
  1388. if(this.edit_form.coupon_num<=0){
  1389. this.$message.error("优惠券份数必须大于0");
  1390. return
  1391. }
  1392. // if(this.edit_form.coupon_num>15){
  1393. // this.$message.error("优惠券份数必须小于15");
  1394. // return
  1395. // }
  1396. break;
  1397. case 2:
  1398. if(this.edit_form.point===''){
  1399. this.$message.error("请填写积分");
  1400. return
  1401. }
  1402. if(isNaN(this.edit_form.point)){
  1403. this.$message.error("积分需为数字");
  1404. return
  1405. }
  1406. break;
  1407. case 3:
  1408. if(this.edit_form.love_use===''){
  1409. this.$message.error(`请填写${this.love_name}`);
  1410. return
  1411. }
  1412. if(isNaN(this.love_use)){
  1413. this.$message.error(`${this.love_name}需为数字`);
  1414. return
  1415. }
  1416. break;
  1417. case 4:
  1418. if(this.edit_form.amount===''){
  1419. this.$message.error("请填写余额");
  1420. return
  1421. }
  1422. if(isNaN(this.edit_form.amount)){
  1423. this.$message.error("余额需为数字");
  1424. return
  1425. }
  1426. break;
  1427. case 5:
  1428. if(this.love_froze===''){
  1429. this.$message.error(`请填写冻结${this.love_name}`);
  1430. return
  1431. }
  1432. if(isNaN(this.love_froze)){
  1433. this.$message.error(`冻结${this.love_name}需为数字`);
  1434. return
  1435. }
  1436. break;
  1437. }
  1438. if(this.edit_form.prize_num===''){
  1439. this.$message.error("请填写数量");
  1440. return
  1441. }
  1442. if(isNaN(this.edit_form.prize_num)){
  1443. this.$message.error("数量需为数字");
  1444. return
  1445. }
  1446. if(typeof(this.edit_form.coupon_id)==="string"){
  1447. this.edit_form.coupon_id=this.old_edit_form_coupon;
  1448. }
  1449. let i=0;
  1450. let status=0;
  1451. this.award_list.some((item,index)=>{
  1452. if(item.id==this.edit_form.id){
  1453. }else{
  1454. if(item.prize_type==this.edit_form.prize_type){
  1455. status=1
  1456. switch (this.edit_form.prize_type) {
  1457. case 2:
  1458. this.$message.error("奖品列表最多添加一份积分奖品");
  1459. break;
  1460. case 3:
  1461. this.$message.error("奖品列表最多添加一份可用爱心值奖品");
  1462. break;
  1463. case 4:
  1464. this.$message.error("奖品列表最多添加一份余额奖品");
  1465. break;
  1466. case 5:
  1467. this.$message.error("奖品列表最多添加一份冻结爱心值奖品");
  1468. break;
  1469. }
  1470. if(this.edit_form.prize_type==1){
  1471. i++
  1472. }
  1473. if(i >=5) {
  1474. this.$message.error("奖品列表最多添加五分份优惠券奖品");
  1475. return
  1476. }
  1477. }
  1478. }
  1479. })
  1480. if(status ==1 && this.edit_form.prize_type!=1){
  1481. return false
  1482. }
  1483. if(i >=5 && this.edit_form.prize_type==1) {
  1484. this.$message.error("奖品列表最多添加五分份优惠券奖品");
  1485. return false
  1486. }
  1487. let json={
  1488. amount:this.edit_form.prize_type===4?this.edit_form.amount:'',
  1489. coupon_id:this.edit_form.prize_type===1?this.edit_form.coupon_id:'',
  1490. love_use:this.edit_form.prize_type===3?this.love_use:'',
  1491. love_froze:this.edit_form.prize_type===5?this.love_froze:'',
  1492. name:this.edit_form.name,
  1493. point:this.edit_form.prize_type===2?this.edit_form.point:'',
  1494. prize_num:this.edit_form.prize_num,
  1495. prize_type:this.edit_form.prize_type,
  1496. coupon_num:this.edit_form.prize_type===1?this.edit_form.coupon_num:''
  1497. }
  1498. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.editPrize') !!}",{id:this.edit_form.id,'post_data':json}).then(response => {
  1499. if (response.data.result) {
  1500. this.$message({message: "编辑奖品成功",type: 'success'});
  1501. this.getList();
  1502. }
  1503. else {
  1504. this.$message({message: response.data.msg,type: 'error'});
  1505. }
  1506. });
  1507. this.is_edit_dialog=false;
  1508. },
  1509. submit() {
  1510. if(this.active===2){
  1511. let json={
  1512. name:this.form.name,
  1513. start_time:Number(String(this.form.activity_time[0]).substring(0,10)),
  1514. end_time:Number(String(this.form.activity_time[1]).substring(0,10)),
  1515. receive_type:this.form.receive_type,
  1516. activity_type:this.form.activity_type,
  1517. style_pic:this.form.style_pic,
  1518. after_url:this.form.after_url,
  1519. after_mini:this.form.after_mini,
  1520. receive_content:{
  1521. goods_id:this.form.receive_type==3?this.form.goods_id:[],
  1522. pay:this.form.receive_type==3?this.form.pay:'0',
  1523. tags:this.form.receive_type==4?this.form.tags:[],
  1524. num:this.form.receive_type==2?this.form.num:'',
  1525. },
  1526. prize_id:this.arr,
  1527. background_type:this.form.background_type,
  1528. title:this.form.title
  1529. }
  1530. this.$http.post('{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.editActivity') !!}',{id:this.activity_id,'post_data':json}).then(function (response){
  1531. if (response.data.result) {
  1532. this.$message({message: "编辑活动成功",type: 'success'});
  1533. window.location.href="{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.index') !!}"
  1534. } else {
  1535. this.$message({message: response.data.msg,type: 'error'});
  1536. }
  1537. },function (response) {
  1538. this.$message({message: response.data.msg,type: 'error'});
  1539. })
  1540. }
  1541. },
  1542. loadAward(query) {
  1543. if (query !== '') {
  1544. this.loading = true;
  1545. this.AwardList = [];
  1546. this.$http.post("{!! yzWebUrl('plugin.new-member-prize.admin.controllers.activity.getCoupons') !!}",{kwd:query}).then(response => {
  1547. this.AwardList = response.data.data.coupons;
  1548. this.loading = false;
  1549. }, response => {
  1550. this.$message({type: 'error',message: response.data.msg});
  1551. console.log(response);
  1552. });
  1553. } else {
  1554. this.AwardList = [];
  1555. }
  1556. },
  1557. loadEdit(query) {
  1558. if (query !== '') {
  1559. this.loading = true;
  1560. this.EditList=[];
  1561. this.$http.post("{!! yzWebUrl('plugin.new-member-prize.admin.controllers.activity.getCoupons') !!}",{kwd:query}).then(response => {
  1562. this.EditList = response.data.data.coupons;
  1563. this.loading = false;
  1564. }, response => {
  1565. this.$message({type: 'error',message: response.data.msg});
  1566. console.log(response);
  1567. });
  1568. } else {
  1569. this.EditList = [];
  1570. }
  1571. },
  1572. },
  1573. });
  1574. </script>
  1575. @endsection