activity-add.blade.php 35 KB

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