activity-add.blade.php 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  1. @extends('layouts.base')
  2. @section('title', '创建活动')
  3. @section('content')
  4. <link rel="stylesheet" href="{{resource_get('plugins/deposit-ladder/views/backend/index.css')}}">
  5. <link rel="stylesheet" href="{{static_url('css/public-number.css')}}">
  6. <style>
  7. th {border-bottom: 1px solid #EBEEF5 !important;}
  8. .dialog-cover{z-index:2001}
  9. .dialog-content{z-index:2002}
  10. /* 导航 */
  11. .el-radio-button .el-radio-button__inner,.el-radio-button:first-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;border-left: 0px;}
  12. .el-radio-button__inner{border:0;}
  13. .el-radio-button:last-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;}
  14. </style>
  15. <div class="all">
  16. <div id="app" v-cloak>
  17. <div class="vue-crumbs">
  18. <a @click="goParent(1)">定金阶梯团</a>
  19. >
  20. <a @click="goParent(2)">活动管理</a>
  21. >
  22. <a @click="goParent(3)">创建活动</a>
  23. </div>
  24. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  25. <div class="vue-head">
  26. <el-radio-group v-model="sel_tab">
  27. <el-radio-button v-if="item.show" :label="item.value" @click.native="selectTab(item.value)" v-for="(item,index) in tab_list">
  28. [[item.name]]
  29. </el-radio-button>
  30. </el-radio-group>
  31. </div>
  32. <!-- 基础设置 -->
  33. <div class="vue-main" v-show="sel_tab=='basic'">
  34. <div class="vue-main-title">
  35. <div class="vue-main-title-left"></div>
  36. <div class="vue-main-title-content">基本信息</div>
  37. </div>
  38. <div class="vue-main-form">
  39. <el-form-item label="活动名称" prop="activity_name">
  40. <el-input v-model="form.basic.activity_name" style="width:70%;" placeholder="15个字以内" ></el-input>
  41. </el-form-item>
  42. <el-form-item label="主题色" prop="theme_color">
  43. <el-color-picker v-model="form.basic.theme_color" style="display:inline-block;float:left;"></el-color-picker>
  44. </el-form-item>
  45. <el-form-item label="活动时间" prop="">
  46. <el-row>
  47. <el-col :span="8">
  48. <el-date-picker v-model="form.basic.activity_start" type="datetime" format="yyyy-MM-dd HH:mm:ss"
  49. value-format="timestamp" placeholder="选择活动开始时间" style="width:90%"></el-date-picker>
  50. </el-col>
  51. <el-col :span="10">
  52. <el-date-picker v-model="form.basic.activity_end" type="datetime" format="yyyy-MM-dd HH:mm:ss"
  53. value-format="timestamp" placeholder="选择动结束时间" style="width:70%"></el-date-picker>
  54. </el-col>
  55. </el-row>
  56. </el-form-item>
  57. <el-form-item label="活动说明" prop="activity_explain">
  58. <tinymceee v-model="form.basic.activity_explain" style="width:70%"></tinymceee>
  59. </el-form-item>
  60. <el-form-item label="活动商品" prop="">
  61. <div>
  62. <el-button size="mini" type="primary" icon="el-icon-plus" @click="selectGoods">选择商品</el-button>
  63. </div>
  64. <div v-if="form.basic.bind_goods && form.basic.bind_goods.title">
  65. <img :src="form.basic.bind_goods.thumb_src" style="width:100px;height:100px;">
  66. <div class="goods-info">
  67. <div>【[[form.basic.bind_goods.id]]】[[form.basic.bind_goods.title]]</div>
  68. <div v-if="form.basic.bind_goods.has_option && form.basic.goods_option">商品规格:¥[[form.basic.goods_option.title]]</div>
  69. </div>
  70. </div>
  71. <div class="tip">只能选择一个商品,创建后不能修改!</div>
  72. </el-form-item>
  73. <el-form-item label="每次限购数量" prop="" >
  74. <el-input v-model="form.basic.limit" style="width:70%;"></el-input>
  75. <div class="tip">每次下单限购数量,为0为空不限制</div>
  76. </el-form-item>
  77. <el-form-item label="会员限购总数" prop="" >
  78. <el-input v-model="form.basic.limit_total" style="width:70%;"></el-input>
  79. <div class="tip">会员限购的总数,为0为空不限制</div>
  80. </el-form-item>
  81. <el-form-item label="排行榜" prop="">
  82. <el-switch v-model="form.basic.ranking_list" :active-value="1"
  83. :inactive-value="0"></el-switch>
  84. </el-form-item>
  85. </div>
  86. <div class="vue-main-title">
  87. <div class="vue-main-title-left"></div>
  88. <div class="vue-main-title-content">定金设置</div>
  89. </div>
  90. <div class="vue-main-form">
  91. <el-form-item label="定金金额" prop="deposit">
  92. <el-input v-model="form.basic.deposit" style="width:70%;"></el-input><span style="margin-left:10px;">元</span>
  93. <div class="tip">定金订单不计算会员折扣</div>
  94. </el-form-item>
  95. <el-form-item label="定金协议" prop="agreement">
  96. <el-radio v-model="form.basic.agreement = 1" :label="1">弹窗确认</el-radio>
  97. <el-form-item label="" v-if="form.basic.agreement == 1">
  98. <el-input type="textarea"
  99. :autosize="{ minRows: 5, maxRows: 999}"
  100. placeholder="请输入协议内容"
  101. v-model="form.basic.agreement_content" ref="content">
  102. </el-input>
  103. <div class="tip" style="color: red">
  104. 弹窗客户点击确认,不会进行存证,后续如果有争议无法提供证据!
  105. </div>
  106. </el-form-item>
  107. </el-form-item>
  108. </div>
  109. <div class="vue-main-title">
  110. <div class="vue-main-title-left"></div>
  111. <div class="vue-main-title-content">梯度设置</div>
  112. </div>
  113. <div class="tip" style="color: black;padding-left: 20px;">
  114. 活动结束后,根据定金支付人数/销售数量对应梯度确定最终活动价格(未达到任何梯度的,按商品现价),用户可按活动价格-定金作为活动商品最终支付金额。
  115. </div>
  116. <el-form-item label="" prop="ladder_type">
  117. <el-radio v-model="form.basic.ladder_type" :label="0">成交人数</el-radio>
  118. <el-radio v-model="form.basic.ladder_type" :label="1">销售数量</el-radio>
  119. </el-form-item>
  120. <el-form-item label="" prop="">
  121. <el-row v-for="(item,index) in form.basic.ladder">
  122. <el-col :span="8" v-if="form.basic.ladder_type==0">
  123. 成交人数达到:
  124. <el-input v-model="item.deal_num" style="width:45%;"></el-input><span style="margin-left:10px;">人</span>
  125. </el-col>
  126. <el-col :span="8" v-if="form.basic.ladder_type==1">
  127. 销售数量达到:
  128. <el-input v-model="item.sale_num" style="width:45%;"></el-input><span style="margin-left:10px;">件</span>
  129. </el-col>
  130. <el-col :span="8">
  131. 成交价:
  132. <el-input v-model="item.deal_price" style="width:50%;"></el-input><span style="margin-left:10px;">元</span>
  133. </el-col>
  134. <el-col :span="2">
  135. <el-button size="mini" type="danger" icon="el-icon-delete" circle @click="delLadder(index)">
  136. </el-button>
  137. </el-col>
  138. </el-row>
  139. <div>
  140. <el-button size="mini" type="primary" icon="el-icon-plus" @click="addLadder">添加一个梯度</el-button>
  141. </div>
  142. </el-form-item>
  143. </div>
  144. <!-- 分享设置 -->
  145. <div class="vue-main" v-show="sel_tab=='share'">
  146. <div class="vue-main-title">
  147. <div class="vue-main-title-left"></div>
  148. <div class="vue-main-title-content">分享设置</div>
  149. </div>
  150. <div class="vue-main-form">
  151. <el-form-item label="分享标题" prop="share_title">
  152. <el-input v-model="form.share.share_title" style="width:70%;" placeholder="请输入分享标题" ></el-input>
  153. <div class="tip">
  154. 默认活动名称-商城名称
  155. </div>
  156. </el-form-item>
  157. <el-form-item label="分享图标" prop="share_img">
  158. <div class="upload-box" @click="openUpload('share_img',0)" v-if="!form.share.share_img_src">
  159. <i class="el-icon-plus" style="font-size:32px"></i>
  160. </div>
  161. <div @click="openUpload('share_img',0)" class="upload-boxed" v-if="form.share.share_img_src" >
  162. <img :src="form.share.share_img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  163. <i class="el-icon-close" @click.stop="clearImg('share_img',1)" title="点击清除图片"></i>
  164. <div class="upload-boxed-text">点击重新上传</div>
  165. </div>
  166. <div class="tip">
  167. 默认所选商品的主图
  168. </div>
  169. </el-form-item>
  170. <el-form-item label="分享描述" prop="share_desc">
  171. <el-input type="textarea"
  172. :autosize="{ minRows: 3, maxRows: 999}"
  173. placeholder="请输入分享描述"
  174. v-model="form.share.share_desc" ref="content">
  175. </el-input>
  176. <div class="tip">
  177. 默认活动说明前20字
  178. </div>
  179. </el-form-item>
  180. </div>
  181. <div class="vue-main-title" >
  182. <div class="vue-main-title-left"></div>
  183. <div class="vue-main-title-content">海报设置</div>
  184. </div>
  185. <div class="vue-main-form" >
  186. <el-form-item label="选择海报" prop="agreement">
  187. <el-form-item label="" v-if="pluginEnabled.new_poster">
  188. <el-select v-model="form.share.poster" clearable placeholder="选择海报">
  189. <el-option :label="item.title" :value="item.id" v-for="(item,index) in poster"></el-option>
  190. </el-select>
  191. </el-form-item>
  192. <div class="tip">
  193. 需要先在新海报插件中创建定金阶梯团海报!
  194. </div>
  195. </el-form-item>
  196. </div>
  197. </div>
  198. <!-- 营销设置 -->
  199. <div class="vue-main" v-show="sel_tab=='market'">
  200. <div class="vue-main-title">
  201. <div class="vue-main-title-left"></div>
  202. <div class="vue-main-title-content">余额设置</div>
  203. </div>
  204. <div class="vue-main-form">
  205. <el-form-item label="会员奖励余额" prop="market.balance.reward_balance">
  206. <el-input v-model="form.market.balance.reward_balance" style="width:70%;">
  207. <template slot="append">%</template>
  208. </el-input>
  209. </el-form-item>
  210. <el-form-item label="一级上级奖励余额" prop="market.balance.reward_balance_first">
  211. <el-input v-model="form.market.balance.reward_balance_first" style="width:70%;">
  212. <template slot="append">%</template>
  213. </el-input>
  214. </el-form-item>
  215. <el-form-item label="二级上级奖励余额" prop="market.balance.reward_balance_second">
  216. <el-input v-model="form.market.balance.reward_balance_second" style="width:70%;">
  217. <template slot="append">%</template>
  218. </el-input>
  219. </el-form-item>
  220. </div>
  221. <div class="vue-main-title">
  222. <div class="vue-main-title-left"></div>
  223. <div class="vue-main-title-content">积分设置</div>
  224. </div>
  225. <div class="vue-main-form">
  226. <el-form-item label="会员奖励积分" prop="market.point.reward_point">
  227. <el-input v-model="form.market.point.reward_point" style="width:70%;">
  228. <template slot="append">%</template>
  229. </el-input>
  230. </el-form-item>
  231. <el-form-item label="一级上级奖励积分" prop="market.point.reward_point_first">
  232. <el-input v-model="form.market.point.reward_point_first" style="width:70%;">
  233. <template slot="append">%</template>
  234. </el-input>
  235. </el-form-item>
  236. <el-form-item label="二级上级奖励积分" prop="market.point.reward_point_second">
  237. <el-input v-model="form.market.point.reward_point_second" style="width:70%;">
  238. <template slot="append">%</template>
  239. </el-input>
  240. </el-form-item>
  241. </div>
  242. <div class="vue-main-title" v-if="pluginEnabled.integral">
  243. <div class="vue-main-title-left"></div>
  244. <div class="vue-main-title-content">消费积分设置</div>
  245. </div>
  246. <div class="vue-main-form" v-if="pluginEnabled.integral">
  247. <el-form-item label="购物赠送比例" prop="market.integral.award_proportion">
  248. <el-input v-model="form.market.integral.award_proportion" style="width:70%;">
  249. <template slot="append">%</template>
  250. </el-input>
  251. </el-form-item>
  252. <el-form-item label="购物上一级赠送比例" prop="market.integral.parent_award_proportion">
  253. <el-input v-model="form.market.integral.parent_award_proportion" style="width:70%;">
  254. <template slot="append">%</template>
  255. </el-input>
  256. </el-form-item>
  257. <el-form-item label="购物上二级赠送比例" prop="market.integral.second_award_proportion">
  258. <el-input v-model="form.market.integral.second_award_proportion" style="width:70%;">
  259. <template slot="append">%</template>
  260. </el-input>
  261. </el-form-item>
  262. </div>
  263. </div>
  264. <!-- 分润设置 -->
  265. <div class="vue-main" v-show="sel_tab=='profit'">
  266. <!-- 分销设置 -->
  267. <div class="vue-head" v-if="pluginEnabled.commission">
  268. <div class="vue-main-title">
  269. <div class="vue-main-title-left"></div>
  270. <div class="vue-main-title-content">分销设置</div>
  271. </div>
  272. <div class="vue-main-form">
  273. <el-form-item label="是否开启分销" prop="profit.commission.is_commission">
  274. <el-switch v-model="form.profit.commission.is_commission" :active-value="1"
  275. :inactive-value="0"></el-switch>
  276. </el-form-item>
  277. <el-form-item label="分销" prop="">
  278. <table class="el-table" style="width:90%">
  279. <tr style="border-bottom:1px solid #EBEEF5">
  280. <th style="width:120px;padding-top:0">等级名称</th>
  281. <th style="padding-top:0">一级分销</th>
  282. <th style="padding-top:0">二级分销</th>
  283. </tr>
  284. <tr v-for="(item,index) in form.profit.commission.level">
  285. <td>
  286. [[item.level_name]]
  287. </td>
  288. <td>
  289. <el-input v-model="item.first_level_rate" style="width:80%">
  290. <template slot="append">%</template>
  291. </el-input>
  292. </td>
  293. <td>
  294. <el-input v-model="item.second_level_rate" style="width:80%">
  295. <template slot="append">%</template>
  296. </el-input>
  297. </td>
  298. </tr>
  299. </table>
  300. </el-form-item>
  301. </div>
  302. </div>
  303. <!-- 分销设置 -->
  304. <!-- 经销商设置 -->
  305. <div class="vue-head" v-if="pluginEnabled.team_dividend">
  306. <div class="vue-main-title">
  307. <div class="vue-main-title-left"></div>
  308. <div class="vue-main-title-content">经销商设置</div>
  309. </div>
  310. <div class="vue-main-form">
  311. <el-form-item label="是否开启经销商" prop="profit.team_dividend.is_dividend">
  312. <el-switch v-model="form.profit.team_dividend.is_dividend" :active-value="1"
  313. :inactive-value="0"></el-switch>
  314. </el-form-item>
  315. <el-form-item label="经销商提成" prop="">
  316. <table class="el-table" style="width:90%">
  317. <tr style="border-bottom:1px solid #EBEEF5">
  318. <th style="width:120px;padding-top:0">等级名称</th>
  319. <th style="padding-top:0">比例</th>
  320. </tr>
  321. <tr v-for="(item,index) in form.profit.team_dividend.level">
  322. <td>
  323. [[item.level_name]]
  324. </td>
  325. <td>
  326. <el-input v-model="item.level_rate" style="width:80%">
  327. <template slot="append">%</template>
  328. </el-input>
  329. </td>
  330. </tr>
  331. </table>
  332. </el-form-item>
  333. </div>
  334. </div>
  335. <!-- 经销商设置 -->
  336. <!-- 区域分红设置 -->
  337. <div class="vue-head" v-if="pluginEnabled.area_dividend">
  338. <div class="vue-main-title">
  339. <div class="vue-main-title-left"></div>
  340. <div class="vue-main-title-content">区域分红设置</div>
  341. </div>
  342. <div class="vue-main-form">
  343. <el-form-item label="是否开启区域分红" prop="profit.area_dividend.is_dividend">
  344. <el-switch v-model="form.profit.area_dividend.is_dividend" :active-value="1"
  345. :inactive-value="0"></el-switch>
  346. </el-form-item>
  347. <el-form-item label="区域分红" prop="">
  348. <el-input v-model="form.profit.area_dividend.has_dividend_rate" style="width:80%">
  349. <template slot="append">%</template>
  350. </el-input>
  351. </el-form-item>
  352. </div>
  353. </div>
  354. <!-- 区域分红设置 -->
  355. </div>
  356. </el-form>
  357. <!-- 选择商品 -->
  358. <el-dialog :visible.sync="goods_show" width="60%" center title="选择商品">
  359. <div>
  360. <div style="text-align: center">
  361. <el-input v-model="keyword_type" style="width:80%" placeholder="请输入商品ID/名称搜索"></el-input>
  362. <el-button type="primary" @click="searchGoods(0)" style="margin-left:20px;">搜索</el-button>
  363. </div>
  364. <el-table :data="goods_list" style="width: 100%;height:600px;overflow-y:auto" >
  365. <el-table-column prop="id" label="ID" align="center"></el-table-column>
  366. <el-table-column prop="id" label="商品信息" align="center">
  367. <template slot-scope="scope">
  368. <div style="display:flex;align-items:center;justify-content:center;">
  369. <img :src="scope.row.thumb_src" alt="" style="width:80px;height: 50px;">
  370. <div style="margin-left:10px">[[scope.row.title]]</div>
  371. </div>
  372. </template>
  373. </el-table-column>
  374. <el-table-column prop="" label="操作" align="center" >
  375. <template slot-scope="scope">
  376. <el-button @click="addGoods(scope.$index)" v-if="!scope.row.has_option">
  377. 选择
  378. </el-button>
  379. <el-select v-model="select_option" clearable placeholder="选择规格" v-if="scope.row.has_option" @change="changeOption(scope.$index)">
  380. <el-option v-for="(item,index) in scope.row.has_many_options" :key="index" :label="item.title" :value="item.id"></el-option>
  381. </el-select>
  382. </template>
  383. </el-table-column>
  384. </el-table>
  385. </div>
  386. </el-dialog>
  387. <!-- 分页 -->
  388. <div class="vue-page">
  389. <div class="vue-center">
  390. <el-button type="primary" @click="submitForm('form')" :disabled="btnChangeEnable">提交</el-button>
  391. <el-button @click="goBack">返回</el-button>
  392. </div>
  393. </div>
  394. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  395. </div>
  396. </div>
  397. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  398. @include('public.admin.tinymceee')
  399. @include('public.admin.uploadImg')
  400. <script>
  401. var app = new Vue({
  402. el:"#app",
  403. delimiters: ['[[', ']]'],
  404. name: 'test',
  405. data() {
  406. let tab_list = {!! json_encode($tab?:[]) !!};
  407. let pluginEnabled = {!! json_encode($plugin?:[]) !!};
  408. let activity = {!! json_encode($activity?:[]) !!};
  409. let poster = {!! json_encode($poster?:[]) !!};
  410. let contract = {!! json_encode($contract?:[]) !!};
  411. if(activity.basic.activity_start){
  412. activity.basic.activity_start = new Date(activity.basic.activity_start).getTime();
  413. }
  414. if(activity.basic.activity_end){
  415. activity.basic.activity_end = new Date(activity.basic.activity_end).getTime();
  416. }
  417. return{
  418. uploadShow:false,
  419. chooseImgName:'',
  420. chooseImgIndex:'-1',
  421. loading: false,
  422. uploadImg1:'',
  423. table_loading:false,
  424. btnChangeEnable:false,
  425. id:0,
  426. keyword_type:"",
  427. goods_show:false,//选择商品弹窗
  428. goods_list:[],
  429. sel_tab:'basic',
  430. tab_list:tab_list,
  431. pluginEnabled:pluginEnabled,
  432. contract:contract,
  433. poster:poster,
  434. select_option:'',
  435. form:{
  436. basic:activity.basic?activity.basic:{},
  437. share:activity.share?activity.share:{},
  438. market:activity.market?activity.market:{},
  439. profit:activity.profit?activity.profit:{}
  440. },
  441. show:false,//是否开启公众号弹窗
  442. pro:false ,//是否开启小程序弹窗
  443. submit_url:'',
  444. showVisible:false,
  445. rules:{
  446. // combination_name:{ required: true, message: '请输入组合名称'},
  447. },
  448. }
  449. },
  450. created() {
  451. },
  452. mounted() {
  453. },
  454. methods: {
  455. getParam(name) {
  456. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  457. var r = window.location.search.substr(1).match(reg);
  458. if (r != null) return unescape(r[2]);
  459. return null;
  460. },
  461. goParent(level) {
  462. if(level==1) {
  463. window.location.href = `{!! yzWebFullUrl('plugin.deposit-ladder.backend.store.activity.show') !!}`;
  464. }
  465. else if(level==2) {
  466. window.location.href = `{!! yzWebFullUrl('plugin.deposit-ladder.backend.store.activity.show') !!}`;
  467. }
  468. else if(level==3) {
  469. window.location.href = `{!! yzWebFullUrl('plugin.deposit-ladder.backend.store.activity.add') !!}`;
  470. }
  471. },
  472. goBack() {
  473. history.go(-1)
  474. },
  475. openUpload(str,index) {
  476. this.chooseImgName = str;
  477. this.uploadShow = true;
  478. this.chooseImgIndex = "-1";
  479. if(index || index == 0) {
  480. this.chooseImgIndex = index;
  481. }
  482. },
  483. changeProp(val) {
  484. if(val == true) {
  485. this.uploadShow = false;
  486. }
  487. else {
  488. this.uploadShow = true;
  489. }
  490. },
  491. sureImg(name,image,image_url) {
  492. // 表格里
  493. if(this.chooseImgIndex != '-1') {
  494. this.form.share[name] = image;
  495. this.form.share[name+'_src'] = image_url;
  496. this.$forceUpdate();
  497. // console.log(this.chooseImgIndex)
  498. // console.log(this.form.goods[this.chooseImgIndex])
  499. }
  500. // 普通图片
  501. else {
  502. // console.log("afdfdfdff")
  503. this.form[name] = image;
  504. this.form[name+'_src'] = image_url;
  505. }
  506. },
  507. clearImg(str,index) {
  508. if (index) {
  509. this.form.share[str] = "";
  510. this.form.share[str+'_src'] = "";
  511. this.$forceUpdate();
  512. } else {
  513. this.form[str] = "";
  514. this.form[str+'_src'] = "";
  515. this.$forceUpdate();
  516. }
  517. },
  518. selectTab(value) {
  519. this.sel_tab = value;
  520. },
  521. addLadder() {
  522. this.form.basic.ladder.push({
  523. 'deal_num':'',
  524. 'sales_num':'',
  525. 'deal_price':''
  526. });
  527. },
  528. delLadder(index) {
  529. this.form.basic.ladder.splice(index,1);
  530. },
  531. searchGoods(){
  532. var url = '{!! yzWebFullUrl('plugin.deposit-ladder.backend.store.activity.search-goods') !!}';
  533. let json = {
  534. kwd:this.keyword_type,
  535. }
  536. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  537. this.$http.post(url,json).then(function (response) {
  538. if (response.data.result){
  539. this.goods_list = response.data.data.list
  540. }
  541. else {
  542. this.$message.error( response.data.msg );
  543. }
  544. loading.close();
  545. },function (response) {
  546. this.$message.error(response.data.msg);
  547. loading.close();
  548. }
  549. );
  550. },
  551. selectGoods(){
  552. this.goods_show = true;
  553. },
  554. addGoods(index){
  555. this.form.basic.bind_goods_id = this.goods_list[index].id;
  556. this.form.basic.bind_goods = this.goods_list[index];
  557. this.goods_show = false;
  558. },
  559. changeOption(index){
  560. var goods_option = null;
  561. this.goods_list[index].has_many_options.forEach((item,index) => {
  562. if(item.id == this.select_option){
  563. goods_option = item;
  564. }
  565. });
  566. // console.log(goods_option.title);
  567. this.form.basic.bind_goods_id = this.goods_list[index].id;
  568. this.form.basic.goods_option_id = this.select_option;
  569. this.form.basic.goods_option_title = goods_option?goods_option.title:'';
  570. this.form.basic.goods_option = goods_option;
  571. this.form.basic.bind_goods = this.goods_list[index];
  572. this.goods_show = false;
  573. },
  574. submitForm(formName) {
  575. this.btnChangeEnable = true;
  576. let json = JSON.parse(JSON.stringify(this.form));
  577. json.basic.activity_start = json.basic.activity_start/1000;
  578. json.basic.activity_end = json.basic.activity_end/1000;
  579. console.log(json);
  580. this.$refs[formName].validate((valid) => {
  581. if (valid) {
  582. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  583. this.$http.post('{!! yzWebFullUrl('plugin.deposit-ladder.backend.store.activity.add') !!}',json).then(response => {
  584. if (response.data.result) {
  585. this.$message({type: 'success',message: '操作成功!'});
  586. window.location.href = `{!! yzWebFullUrl('plugin.deposit-ladder.backend.store.activity.show') !!}`
  587. } else {
  588. this.$message({message: response.data.msg,type: 'error'});
  589. }
  590. loading.close();
  591. },response => {
  592. loading.close();
  593. });
  594. }
  595. else {
  596. console.log('error submit!!');
  597. return false;
  598. }
  599. });
  600. this.btnChangeEnable = false;
  601. },
  602. },
  603. })
  604. </script>
  605. @endsection