add.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. <div class="left-conOne" v-if="form.background_type==0">
  431. <div style="padding-top: 45%;padding-left: 17%;font-size: 24px;color: #fff;">
  432. [[form.title]]
  433. </div>
  434. </div>
  435. <div class="left-conTwo" v-if="form.background_type==1">
  436. <div style="padding-top: 45%;padding-left: 15%;font-size: 24px;color: #b07e54;;">
  437. [[form.title]]
  438. </div>
  439. </div>
  440. <div class="left-conThree" v-if="form.background_type==2">
  441. <div style="padding-top: 65%;font-size: 24px;color: #fff;text-align:center;">
  442. [[form.title]]
  443. </div>
  444. </div>
  445. <div class="left-conFour" v-if="form.background_type==3">
  446. <div style="padding-top: 45%;padding-left: 15%;font-size: 24px;color: #fff;text-align:left;">
  447. [[form.title]]
  448. </div>
  449. </div>
  450. <div class="left-conFive" v-if="form.background_type==4">
  451. <div style="padding-top: 45%;padding-left: 15%;font-size: 24px;color: #fff;text-align:left;">
  452. [[form.title]]
  453. </div>
  454. </div>
  455. <!-- right -->
  456. <!-- step 1 -->
  457. <el-form ref="form" :model="form" label-width="20%">
  458. <div v-if="active==0" class="right-con" style="width:600px;border:1px solid #e1e1e1;background:#fafafa;float:left;">
  459. <div style="line-height:40px;padding-left:15px;font-weight:900;">基本信息</div>
  460. <hr style="padding:0;margin:0"/>
  461. <template>
  462. <el-form-item label="活动名称" prop="name" style="margin-top:20px;">
  463. <el-input v-model="form.name" style="width:70%"></el-input>
  464. </el-form-item>
  465. <el-form-item label="活动时间" prop="time">
  466. <el-row>
  467. <el-date-picker v-model="form.activity_time" value-format="timestamp" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
  468. </el-row>
  469. </el-form-item>
  470. <el-form-item label="活动渠道" >
  471. <template>
  472. <el-checkbox-group v-model="form.activity_type">
  473. <div>
  474. <el-checkbox label="0">微信公众号</el-checkbox>
  475. </div>
  476. <div>
  477. <el-checkbox label="1">微信小程序</el-checkbox>
  478. </div>
  479. <div>
  480. <el-checkbox label="2">H5/封装APP/支付宝</el-checkbox>
  481. </div>
  482. </el-checkbox-group>
  483. </template>
  484. </el-form-item>
  485. <el-form-item label="领取条件" >
  486. <template>
  487. <el-radio-group v-model="form.receive_type">
  488. <div>
  489. <el-radio label="0" style="margin-top:10px;">新注册会员</el-radio>
  490. </div>
  491. <div>
  492. <el-radio label="1" style="margin-top:10px;">无消费记录会员</el-radio>
  493. </div>
  494. <div>
  495. <el-radio label="2" style="margin-top:10px;">直推客户满<el-input placeholder="请输入内容" class="people" v-model="form.num"></el-input><span>人</span></el-radio>
  496. </div>
  497. <div>
  498. <el-radio label="4" style="margin-top:10px;">选择会员标签</el-radio>
  499. </div>
  500. <div class="select-goods" style="margin-top:10px;" v-if="form.receive_type==4">
  501. <el-button @click.stop="openDialog()">
  502. <i class="el-icon-plus"></i> 添加标签
  503. </el-button>
  504. <div style="position:relative;margin-top:10px;display:inline-block;" >
  505. <span v-if="form.tags" v-for="(item,index) in form.tags">
  506. <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>
  507. </span>
  508. </div>
  509. </div>
  510. <div>
  511. <el-radio label="3" style="margin-top:10px;">购买指定商品会员</el-radio>
  512. </div>
  513. </el-radio-group>
  514. <div class="select-goods" style="margin-top:10px;" v-if="form.receive_type==3">
  515. <el-input v-model="titleList.join(',')" style="width:70%;" disabled></el-input>
  516. <el-button @click="openGoods()" type="primary">选择商品</el-button>
  517. <div style="position:relative;margin-top:10px;display:inline-block;" >
  518. <div style="font-size:12px;">可指定多件商品,只需购买其中一件就可以获得奖励</div>
  519. <div style="display:flex;flex-wrap:wrap;">
  520. <template v-for="(item,index) in thumbList">
  521. <div style="display:flex;width: 100px;height: 100px;box-sizing: border-box;margin-right: 10px;position:relative;margin-top:10px;">
  522. <img :src="item.thumb" style="display:inline-block;width:90%;padding: 10px;border: solid 1px #ccc;">
  523. <div style="margin-top:-10px;position:absolute;right:0;top:0;" @click="delGoods(item)">
  524. x
  525. </div>
  526. </div>
  527. </template>
  528. </div>
  529. </div>
  530. </div>
  531. <el-radio-group v-model="form.pay" v-if="form.receive_type==3">
  532. <el-radio label="0" style="margin-top:10px;">付款后</el-radio>
  533. <el-radio label="1" style="margin-top:10px;">完成后</el-radio>
  534. </el-radio-group>
  535. </template>
  536. </el-form-item>
  537. <el-form-item label="注">
  538. <template>
  539. <p style="padding-right:15px;font-size:12px;">
  540. 同一种领取条件、同一活动时间只能创建一个活动;领取条件为新注册会员活动存在的,新注册会员获得新注册会员领取条件的新人礼;如果不存在新注册会员活动,但是存在无消费记录会员活动的,新注册会员获得无消费记录会员新人礼;同一活动时间,无消费记录、直推客户数量满N人、会员标签、购买指定商品会员领取条件的活动不能同时发布
  541. </p>
  542. </template>
  543. </el-form-item>
  544. </template>
  545. </div>
  546. <div v-if="active==1" class="right-con" style="width:600px;border:1px solid #e1e1e1;background:#fafafa;float:left;">
  547. <div style="line-height:40px;padding-left:15px;font-weight:900;">添加奖品</div>
  548. <hr style="padding:0;margin:0"/>
  549. <el-button type="primary" size="mini" style="margin:5px" @click="addAward()" >添加奖品</el-button>
  550. <!-- 表格start -->
  551. <template>
  552. <el-table :data="award_list" style="width: 100%" v-loading="search_loading">
  553. <el-table-column prop="name" label="名称" align="center"></el-table-column>
  554. <el-table-column prop="award" label="礼品" align="center" >
  555. <template slot-scope="scope">
  556. <div v-if="scope.row.prize_type==1">
  557. 优惠券
  558. </div>
  559. <div v-if="scope.row.prize_type==2">
  560. 积分
  561. </div>
  562. <div v-if="scope.row.prize_type==3">
  563. 可用爱心值
  564. </div>
  565. <div v-if="scope.row.prize_type==5">
  566. 冻结爱心值
  567. </div>
  568. <div v-if="scope.row.prize_type==4">
  569. 余额
  570. </div>
  571. </template>
  572. </el-table-column>
  573. <el-table-column prop="received_num" label="发放" align="center" >
  574. <template slot-scope="scope">
  575. <div>
  576. [[scope.row.received_num]]
  577. </div>
  578. </template>
  579. </el-table-column>
  580. <el-table-column prop="prize_num" label="数量" align="center"></el-table-column>
  581. <el-table-column label="操作" align="center">
  582. <template slot-scope="scope">
  583. <a @click="editAward(scope, award_list)">编辑</a>
  584. <a @click="open(scope, award_list)">删除</a>
  585. </template>
  586. </el-table-column>
  587. </el-table>
  588. </template>
  589. </div>
  590. <div v-if="active==2" class="right-con" style="width:600px;border:1px solid #e1e1e1;background:#fafafa;float:left;">
  591. <div style="line-height:40px;padding-left:15px;font-weight:900;">页面设置</div>
  592. <hr style="padding:0;margin:0"/>
  593. <template>
  594. <el-form-item label="领取条件" style="margin-top:20px;">
  595. <template>
  596. <el-radio-group v-model="form.background_type" style="margin-top: 10px">
  597. <el-radio label="0">样式一</el-radio>
  598. <el-radio label="1">样式二</el-radio>
  599. <el-radio label="2" >样式三</el-radio>
  600. <el-radio label="3">样式四</el-radio>
  601. <el-radio label="4" style="margin-top: 10px">自定义样式</el-radio>
  602. </el-radio-group>
  603. </template>
  604. </el-form-item>
  605. <el-form-item>
  606. <div v-if="form.background_type==4" style="margin-top: 10px">
  607. <div class="upload-box" @click="openUpload()" style="width:140px;height:140px" v-if="!form.diy_pic">
  608. <i class="el-icon-plus" style="font-size:32px"></i>
  609. </div>
  610. <div @click="openUpload()" style="width:140px;height:140px" class="upload-boxed" v-if="form.diy_pic">
  611. <img :src="form.diy_pic" alt=""
  612. style="width:140px;height:140px;border-radius: 5px;cursor: pointer;">
  613. </div>
  614. <span>建议尺寸:500*824</span>
  615. </div>
  616. </el-form-item>
  617. <el-form-item label="标题">
  618. <el-input placeholder="请输入标题" v-model="form.title"></el-input>
  619. </el-form-item>
  620. <el-form-item label="领取后H5跳转链接">
  621. <el-input placeholder="输入跳转链接" v-model="form.after_url"></el-input>
  622. </el-form-item>
  623. <el-form-item label="领取后小程序跳转链接">
  624. <el-input placeholder="输入跳转链接" v-model="form.after_mini"></el-input>
  625. </el-form-item>
  626. </template>
  627. </div>
  628. </el-form>
  629. </div>
  630. <div style="width:100%;display:block;float:left;text-align:center;margin:30px 0;" v-if="active==0||active==1||active==2">
  631. <a href="{{ yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.index') }}"><el-button v-if="active==0">取消</el-button></a>
  632. <el-button @click="last()" v-if="active==1||active==2">
  633. 上一步
  634. </el-button>
  635. <el-button type="success" @click="next()" v-if="active==1||active==0">
  636. 下一步
  637. </el-button>
  638. <el-button type="success" @click="submit()" v-if="active==2">
  639. 完成
  640. </el-button>
  641. </div>
  642. <!-- 添加奖品弹出框 -->
  643. <el-dialog title="添加奖品" :visible.sync="is_add_dialog" @close="closePop" class="addAwrad" :lock-scroll="true">
  644. <div >
  645. <el-form ref="award_form" :model="award_form" label-width="20%">
  646. <template>
  647. <el-form-item label="名称" prop="name">
  648. <el-input v-model="award_form.name" style="width:70%" placeholder="最多可填6个字"></el-input>
  649. </el-form-item>
  650. <el-form-item label="奖品" prop="award_type">
  651. <div>
  652. <el-radio v-model.munber="award_form.award_type" :label="1" >优惠券</el-radio>
  653. <el-select
  654. v-model="award_form.coupon"
  655. v-if="award_form.award_type==1"
  656. filterable
  657. remote
  658. style="width:50%"
  659. @change="getCount"
  660. reserve-keyword
  661. placeholder="请输入关键词"
  662. :remote-method="loadAward"
  663. :loading="loading"
  664. >
  665. <el-option
  666. v-for="item in AwardList"
  667. :key="item.id"
  668. :label="item.name"
  669. :value="item.id">
  670. </el-option>
  671. </el-select>
  672. <el-input v-model="award_form.coupon_num" style="width:50px;display:inline-block;" v-if="award_form.award_type==1"></el-input>
  673. <div style="margin-left:10px;display:inline-block;" v-if="award_form.coupon">可用库存[[lasttotal]]份</div>
  674. </div>
  675. <div style="margin:5px 0">
  676. <el-radio v-model.munber="award_form.award_type" :label="2" >积分</el-radio>
  677. <el-input style="width:60%;padding-left:20px" v-model="award_form.coin">
  678. <template slot="append">积分</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="3" >可用[[love_name]]</el-radio>
  683. <el-input style="width:60%;padding-left:20px" v-model="love_use">
  684. <template slot="append">可用[[love_name]]</template>
  685. </el-input>
  686. </div>
  687. <div style="margin:5px 0" v-if="love_status == 1">
  688. <el-radio v-model.munber="award_form.award_type" :label="5" >冻结[[love_name]]</el-radio>
  689. <el-input style="width:60%;padding-left:20px" v-model="love_froze">
  690. <template slot="append">冻结[[love_name]]</template>
  691. </el-input>
  692. </div>
  693. <div style="margin:5px 0">
  694. <el-radio v-model.munber="award_form.award_type" :label="4" >余额</el-radio>
  695. <el-input style="width:60%;padding-left:20px" v-model="award_form.rest">
  696. <template slot="append">余额</template>
  697. </el-input>
  698. </div>
  699. </el-form-item>
  700. <el-form-item label="数量" prop="name">
  701. <el-input v-model="award_form.number" style="width:70%">
  702. <template slot="append">份</template>
  703. </el-input>
  704. </el-form-item>
  705. </template>
  706. </el-form>
  707. </div>
  708. <span slot="footer" class="dialog-footer">
  709. <el-button @click="is_add_dialog = false">取 消</el-button>
  710. <el-button type="primary" @click="choose()">确 定</el-button>
  711. </span>
  712. </el-dialog>
  713. <!-- 会话框 -->
  714. <el-dialog title="选择标签" :visible.sync="dialogVisible" width="55%" :before-close="handleClose" v-if="tagInfo">
  715. <div class="tab-pane">
  716. <div class="left">
  717. <div class="vue-title">
  718. <div class="vue-title-left"></div>
  719. <div class="vue-title-content">标签组</div>
  720. </div>
  721. <el-menu
  722. default-active="1"
  723. :default-openeds="openeds"
  724. class="el-menu-vertical-demo">
  725. <el-submenu index="1" :class="select_group_id === '' ? 'acitve-submenu' : ''" >
  726. <template slot="title">
  727. <div @click="handleSelect('')">
  728. <i class="el-icon-folder-opened" :class="select_group_id === '' ? 'acitve-submenu-item' : ''"></i>
  729. <span :class="select_group_id === '' ? 'acitve-submenu-item' : ''">全部分组</span>
  730. </div>
  731. </template>
  732. <el-menu-item-group>
  733. <el-menu-item v-for="(item,index) in menu_item_list" :key="index">
  734. <div class="el-menu-name" :style="[{color:( Number(select_group_id) == item.id ? '#29ba9c':'')}]" @click="handleSelect(item.id)">
  735. <i class="el-icon-folder-opened" :style="[{color:( Number(select_group_id) == item.id ? '#29ba9c':'')}]" ></i>
  736. <span style="white-space: normal !important;line-height: normal;">[[item.title]]</span>
  737. </div>
  738. </el-menu-item>
  739. </el-menu-item-group>
  740. </el-submenu>
  741. </el-menu>
  742. </div>
  743. <div class="right">
  744. <div class="right-top">
  745. <div class="vue-title">
  746. <div class="vue-title-left"></div>
  747. <div class="vue-title-content">标签列表</div>
  748. </div>
  749. <div class="search-pane">
  750. <el-input placeholder="标签名称" style="width: 40%;" v-model="tag_keyword"></el-input>
  751. <el-button type="primary" @click="search1(1)">搜索</el-button>
  752. </div>
  753. </div>
  754. <div class="single-table">
  755. <el-table ref="singleTable" :data="tagData">
  756. <el-table-column label="ID" prop="id"></el-table-column>
  757. <el-table-column label="标签名称" prop="title"></el-table-column>
  758. <el-table-column label="操作">
  759. <template slot-scope="scope">
  760. <el-button size="mini" @click="makeMemberTags(scope.row)">选择</el-button>
  761. </template>
  762. </el-table-column>
  763. </el-table>
  764. </div>
  765. </div>
  766. </div>
  767. <div class="vue-page tab-pane-page">
  768. <el-row>
  769. <el-col align="right">
  770. <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>
  771. </el-col>
  772. </el-row>
  773. <el-button @click="dialogVisible = false">取 消</el-button>
  774. </div>
  775. </el-dialog>
  776. <!-- 编辑奖品弹出框 -->
  777. <el-dialog title="编辑奖品" :visible.sync="is_edit_dialog" @close="closeEdit" class="editAwrad" :lock-scroll="true">
  778. <div>
  779. <el-form ref="edit_form" :model="edit_form" :rules="rules" label-width="20%">
  780. <template>
  781. <el-form-item label="名称" prop="name">
  782. <el-input v-model="edit_form.name" style="width:70%" placeholder="最多可填6个字" ></el-input>
  783. </el-form-item>
  784. <el-form-item label="奖品" prop="prize_type">
  785. <div>
  786. <el-radio v-model="edit_form.prize_type" :label="1" >优惠券</el-radio>
  787. <el-select
  788. v-model="edit_form.coupon_id"
  789. v-if="edit_form.prize_type==1"
  790. filterable
  791. remote
  792. style="width:50%"
  793. @change="getEdit"
  794. reserve-keyword
  795. placeholder="请输入关键词"
  796. :remote-method="loadEdit"
  797. :loading="loading"
  798. >
  799. <el-option
  800. v-for="item in EditList"
  801. :key="item.id"
  802. :label="item.name"
  803. :value="item.id">
  804. </el-option>
  805. </el-select>
  806. <el-input v-model="edit_form.coupon_num" style="width:50px;display:inline-block;" v-if="edit_form.prize_type==1"></el-input>
  807. <div style="margin-left:10px;display:inline-block;" v-if="edit_form.prize_type==1">可用库存[[lasttotal]]份</div>
  808. </div>
  809. <div style="margin:5px 0">
  810. <el-radio v-model="edit_form.prize_type" :label="2" >积分</el-radio>
  811. <el-input style="width:60%;padding-left:20px" v-model="edit_form.point" >
  812. <template slot="append">积分</template>
  813. </el-input>
  814. </div>
  815. <div style="margin:5px 0" v-if="love_status == 1">
  816. <el-radio v-model.munber="award_form.award_type" :label="3" >可用[[love_name]]</el-radio>
  817. <el-input style="width:60%;padding-left:20px" v-model="love_use">
  818. <template slot="append">可用[[love_name]]</template>
  819. </el-input>
  820. </div>
  821. <div style="margin:5px 0" v-if="love_status == 1">
  822. <el-radio v-model.munber="award_form.award_type" :label="5" >冻结[[love_name]]</el-radio>
  823. <el-input style="width:60%;padding-left:20px" v-model="love_froze">
  824. <template slot="append">冻结[[love_name]]</template>
  825. </el-input>
  826. </div>
  827. <div style="margin:5px 0">
  828. <el-radio v-model="edit_form.prize_type" :label="4" >余额</el-radio>
  829. <el-input style="width:60%;padding-left:20px" v-model="edit_form.amount" >
  830. <template slot="append">余额</template>
  831. </el-input>
  832. </div>
  833. </el-form-item>
  834. <el-form-item label="数量" prop="name">
  835. <el-input v-model="edit_form.prize_num" style="width:70%">
  836. <template slot="append">份</template>
  837. </el-input>
  838. </el-form-item>
  839. </template>
  840. </el-form>
  841. </div>
  842. <span slot="footer" class="dialog-footer">
  843. <el-button @click="is_edit_dialog = false">取 消</el-button>
  844. <el-button type="primary" @click="editChoose()">确 定</el-button>
  845. </span>
  846. </el-dialog>
  847. <!--end-->
  848. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp"
  849. @sure="sureImg"></upload-img>
  850. <el-dialog :visible.sync="goodsShow" width="60%" center title="选择商品">
  851. <div>
  852. <div>
  853. <el-input v-model="keyword" style="width:70%"></el-input>
  854. <el-button type="primary" @click="searchGoods()">搜索</el-button>
  855. </div>
  856. <el-table :data="goods_list" style="width: 100%;height:500px;overflow:auto">
  857. <el-table-column label="ID" prop="id" align="center" width="100px"></el-table-column>
  858. <el-table-column label="商品信息">
  859. <template slot-scope="scope">
  860. <div v-if="scope.row" style="display:flex;align-items: center">
  861. <img v-if="scope.row.thumb" :src="scope.row.thumb" style="width:50px;height:50px"></img>
  862. <div style="margin-left:10px">[[scope.row.title]]</div>
  863. </div>
  864. </template>
  865. </el-table-column>
  866. <el-table-column prop="refund_time" label="操作" align="center" width="320">
  867. <template slot-scope="scope">
  868. <el-button @click="sureGoods(scope.row)">
  869. 选择
  870. </el-button>
  871. </template>
  872. </el-table-column>
  873. </el-table>
  874. </div>
  875. </el-dialog>
  876. </div>
  877. @include('public.admin.uploadImg')
  878. <script>
  879. var vm = new Vue({
  880. el: "#re_content",
  881. delimiters: ['[[', ']]'],
  882. data() {
  883. let love_name ='{!! $love_name ?: '爱心值' !!}'
  884. let love_status = {!! $love_status !!};
  885. return {
  886. lasttotal:0,
  887. goods_list:[],
  888. goodsShow:false,
  889. love_name:String(love_name),
  890. love_status:love_status,
  891. arr:[],
  892. AwardList:[],
  893. EditList:[],
  894. all_loading:false,
  895. search_loading:false,
  896. search_form:{},
  897. real_search_form:"",
  898. uploadShow: false,
  899. chooseImgName: '',
  900. old_edit_form_coupon:'',
  901. award_list:[
  902. ],
  903. active:0,
  904. thumbList:[],
  905. titleList:[],
  906. love_froze:'',
  907. love_use:'',
  908. form:{
  909. name:'',
  910. num:'',
  911. activity_time:[],
  912. activity_type:['0'],
  913. receive_type:'0',
  914. background_type:'0',
  915. title:'',
  916. after_url:'',
  917. after_mini:'',
  918. diy_pic:'',
  919. style_pic:'',
  920. goods:[],
  921. tags:[],
  922. pay:'0',
  923. },
  924. award_form:{
  925. name:'',
  926. award_type:1,
  927. coupon:'',
  928. number:'',
  929. coin:'',
  930. love:'',
  931. rest:'',
  932. coupon_num:'',
  933. },
  934. edit_form:{
  935. },
  936. is_add_dialog:false,
  937. is_edit_dialog:false,
  938. loading:false,
  939. rules:{},
  940. keyword:'',
  941. // 标签
  942. //当前打开的 sub-menu 的 index 的数组
  943. openeds:["1"],
  944. dialogVisible: false,
  945. select_group_id:"",
  946. tagData: [],
  947. menu_item_list:[],
  948. tag_total: 1,
  949. tag_current_page: 1,
  950. tag_per_page: 1,
  951. tag_keyword:"",
  952. tagInfo:false,
  953. }
  954. },
  955. created () {
  956. },
  957. methods: {
  958. getCount(val){
  959. this.AwardList.forEach((item,index)=>{
  960. if(item.id==val){
  961. if(item.total!=-1){
  962. this.lasttotal=item.lasttotal
  963. }else{
  964. this.lasttotal='无限量'
  965. }
  966. }
  967. })
  968. },
  969. getEdit(val){
  970. this.EditList.forEach((item,index)=>{
  971. if(item.id==val){
  972. if(item.total!=-1){
  973. this.lasttotal=item.lasttotal
  974. }else{
  975. this.lasttotal='无限量'
  976. }
  977. }
  978. })
  979. },
  980. openGoods() {
  981. this.goodsShow = true;
  982. },
  983. delGoods(item){
  984. this.thumbList.forEach((list,index)=>{
  985. if(list.thumb==item.thumb){
  986. this.thumbList.splice(index,1)
  987. this.titleList.splice(index,1)
  988. this.form.goods.splice(index,1)
  989. }
  990. })
  991. },
  992. searchGoods() {
  993. let that = this;
  994. this.$http.post('{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.getGoods') !!}',{kwd:this.keyword}).then(response => {
  995. if (response.data.result) {
  996. this.goods_list = response.data.data;
  997. } else {
  998. this.$message({message: response.data.msg,type: 'error'});
  999. }
  1000. },response => {
  1001. this.$message({message: response.data.msg,type: 'error'});
  1002. });
  1003. },
  1004. confirmGoods(){
  1005. },
  1006. sureGoods(item) {
  1007. let status=0;
  1008. this.form.goods.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.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. }
  1116. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.delPrize') !!}",json).then(function (response){
  1117. this.getList();
  1118. },function (response) {
  1119. console.log(response);
  1120. }
  1121. );
  1122. },
  1123. open(scope, rows) {
  1124. this.$confirm('此操作将永久删除该奖品, 是否继续?', '提示', {
  1125. confirmButtonText: '确定',
  1126. cancelButtonText: '取消',
  1127. type: 'warning',
  1128. }).then(() => {
  1129. this.$message({
  1130. type: 'success',
  1131. message: '删除成功!',
  1132. callback:this.deleteAward(scope, rows)
  1133. });
  1134. }).catch(() => {
  1135. this.$message({
  1136. type: 'info',
  1137. message: '已取消删除'
  1138. });
  1139. });
  1140. },
  1141. closePop(){
  1142. this.is_add_dialog=false;
  1143. },
  1144. closeEdit(){
  1145. this.is_edit_dialog=false;
  1146. },
  1147. next() {
  1148. if(this.active===0){
  1149. if(this.form.name===''){
  1150. this.$message.error("请输入活动名称");
  1151. return
  1152. }
  1153. if(this.form.activity_type.length<=0){
  1154. this.$message.error("请选择活动渠道");
  1155. return
  1156. }
  1157. }
  1158. if(this.active===1){
  1159. if(this.award_list.length<=0){
  1160. this.$message.error("请先添加奖品");
  1161. return
  1162. }
  1163. }
  1164. if(this.active<=2){
  1165. this.active++;
  1166. }
  1167. },
  1168. last() {
  1169. this.active--;
  1170. },
  1171. addAward() {
  1172. this.love_use = ''
  1173. this.love_froze = ''
  1174. this.award_form={
  1175. name:'',
  1176. award_type:1,
  1177. coupon:'',
  1178. number:'',
  1179. coin:'',
  1180. love:'',
  1181. coupon_num:'',
  1182. },
  1183. this.is_add_dialog = true;
  1184. },
  1185. editAward(scope, rows){
  1186. let json={
  1187. id:scope.row.id
  1188. }
  1189. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.editPrize') !!}",json).then(response => {
  1190. if (response.data.result) {
  1191. this.edit_form=response.data.data.prize;
  1192. if(this.edit_form.prize_type===1){
  1193. this.old_edit_form_coupon=this.edit_form.coupon.id;
  1194. this.edit_form.coupon_id=this.edit_form.coupon.name;
  1195. this.lasttotal=this.edit_form.coupon.total==-1?'无限量':this.edit_form.coupon.lasttotal;
  1196. this.love_use = '';
  1197. this.love_froze = '';
  1198. this.edit_form.point='';
  1199. this.edit_form.amount='';
  1200. }
  1201. if(this.edit_form.prize_type==2){
  1202. this.love_use = '';
  1203. this.love_froze = '';
  1204. this.edit_form.amount='';
  1205. this.edit_form.coupon_id='';
  1206. }
  1207. if(this.edit_form.prize_type==3){
  1208. this.edit_form.point='';
  1209. this.edit_form.amount='';
  1210. this.edit_form.coupon_id='';
  1211. this.love_froze = '';
  1212. this.love_use = response.data.data.prize.love;
  1213. }
  1214. if(this.edit_form.prize_type==4){
  1215. this.love_use = '';
  1216. this.love_froze = '';
  1217. this.edit_form.point='';
  1218. this.edit_form.coupon_id='';
  1219. }
  1220. if(this.edit_form.prize_type==5){
  1221. this.edit_form.point='';
  1222. this.edit_form.amount='';
  1223. this.edit_form.coupon_id='';
  1224. this.love_use = '';
  1225. this.love_froze = response.data.data.prize.love;
  1226. }
  1227. }
  1228. else {
  1229. this.$message({message: response.data.msg,type: 'error'});
  1230. }
  1231. });
  1232. this.is_edit_dialog = true;
  1233. },
  1234. getList(){
  1235. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.getPrizeList') !!}",{'prize_id':this.arr}).then(response => {
  1236. if (response.data.result) {
  1237. this.award_list=response.data.data.prize_list;
  1238. }
  1239. else {
  1240. this.$message({message: response.data.msg,type: 'error'});
  1241. }
  1242. });
  1243. },
  1244. // 确认选中奖品
  1245. choose() {
  1246. if(this.award_form.name===''){
  1247. this.$message.error('请填写正确的奖品名称');
  1248. return ;
  1249. }
  1250. switch (this.award_form.award_type) {
  1251. case 1:
  1252. if(this.award_form.coupon===''||this.award_form.coupon===null||this.award_form.coupon===undefined){
  1253. this.$message.error("请选择优惠券");
  1254. return
  1255. }
  1256. if(this.award_form.coupon_num==''){
  1257. this.$message.error("优惠券份数不能为空");
  1258. return
  1259. }
  1260. if(this.award_form.coupon_num<=0){
  1261. this.$message.error("优惠券份数必须大于0");
  1262. return
  1263. }
  1264. // if(this.award_form.coupon_num>15){
  1265. // this.$message.error("优惠券份数必须小于15");
  1266. // return
  1267. // }
  1268. break;
  1269. case 2:
  1270. if(this.award_form.coin===''){
  1271. this.$message.error("请填写积分");
  1272. return
  1273. }
  1274. if(isNaN(this.award_form.coin)){
  1275. this.$message.error("积分需为数字");
  1276. return
  1277. }
  1278. break;
  1279. case 3:
  1280. if(this.love_use===''){
  1281. this.$message.error(`请填写可用${this.love_name}`);
  1282. return
  1283. }
  1284. if(isNaN(this.love_use)){
  1285. this.$message.error(`可用${this.love_name}需为数字`);
  1286. return
  1287. }
  1288. break;
  1289. case 4:
  1290. if(this.award_form.rest===''){
  1291. this.$message.error("请填写余额");
  1292. return
  1293. }
  1294. if(isNaN(this.award_form.rest)){
  1295. this.$message.error("余额需为数字");
  1296. return
  1297. }
  1298. break;
  1299. case 5:
  1300. if(this.love_froze===''){
  1301. this.$message.error(`请填写冻结${this.love_name}`);
  1302. return
  1303. }
  1304. if(isNaN(this.love_froze)){
  1305. this.$message.error(`冻结${this.love_name}需为数字`);
  1306. return
  1307. }
  1308. break;
  1309. }
  1310. if(this.award_form.number===''){
  1311. this.$message.error("请填写数量");
  1312. return
  1313. }
  1314. if(isNaN(this.award_form.number)){
  1315. this.$message.error("数量需为数字");
  1316. return
  1317. }
  1318. let i =0;
  1319. let status=0;
  1320. this.award_list.some((item,index)=>{
  1321. if(item.prize_type==this.award_form.award_type){
  1322. status=1
  1323. switch (this.award_form.award_type) {
  1324. case 2:
  1325. this.$message.error("奖品列表最多添加一份积分奖品");
  1326. break;
  1327. case 3:
  1328. this.$message.error("奖品列表最多添加一份可用爱心值奖品");
  1329. break;
  1330. case 4:
  1331. this.$message.error("奖品列表最多添加一份余额奖品");
  1332. break;
  1333. case 5:
  1334. this.$message.error("奖品列表最多添加一份冻结爱心值奖品");
  1335. break;
  1336. }
  1337. if(item.prize_type==1){
  1338. i++
  1339. }
  1340. }
  1341. })
  1342. if(status ==1 && this.award_form.award_type!=1){
  1343. return false
  1344. }
  1345. if(i >=5 && this.award_form.award_type==1) {
  1346. this.$message.error("奖品列表最多添加五分份优惠券奖品");
  1347. return false
  1348. }
  1349. let json={
  1350. name:this.award_form.name,
  1351. prize_type:this.award_form.award_type,
  1352. coupon_id:this.award_form.award_type===1?this.award_form.coupon:'',
  1353. prize_num:this.award_form.number,
  1354. point:this.award_form.award_type===2?this.award_form.coin:'',
  1355. love_use:this.award_form.award_type===3?this.love_use:'',
  1356. love_froze:this.award_form.award_type===5?this.love_froze:'',
  1357. amount:this.award_form.award_type===4?this.award_form.rest:'',
  1358. coupon_num:this.award_form.award_type===1?this.award_form.coupon_num:'',
  1359. }
  1360. this.$http.post("{!! yzWebFullUrl('plugin.new-member-prize.admin.controllers.activity.addPrize') !!}",{'post_data':json}).then(response => {
  1361. if (response.data.result) {
  1362. this.$message({message: "添加奖品成功",type: 'success'});
  1363. this.arr.push(response.data.data.id);
  1364. this.getList();
  1365. }
  1366. else {
  1367. this.$message({message: response.data.msg,type: 'error'});
  1368. }
  1369. });
  1370. this.is_add_dialog=false;
  1371. },
  1372. editChoose(){
  1373. if(this.edit_form.name===''){
  1374. this.$message.error('请填写正确的奖品名称');
  1375. return ;
  1376. }
  1377. switch (this.edit_form.prize_type) {
  1378. case 1:
  1379. if(this.edit_form.coupon_id===''||this.edit_form.coupon_id===null||this.edit_form.coupon_id===undefined){
  1380. this.$message.error("请选择优惠券");
  1381. return
  1382. }
  1383. if(this.edit_form.coupon_num==''){
  1384. this.$message.error("优惠券份数不能为空");
  1385. return
  1386. }
  1387. if(this.edit_form.coupon_num<=0){
  1388. this.$message.error("优惠券份数必须大于0");
  1389. return
  1390. }
  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.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.award_type===3?this.love_use:'',
  1491. love_froze:this.edit_form.award_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:[],
  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.addActivity') !!}',{'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