view-set.blade.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. @extends('layouts.base')
  2. @section('title', '基础设置')
  3. @section('content')
  4. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/>
  5. <div class="all">
  6. <div id="app" v-cloak>
  7. <div class="vue-crumbs">
  8. 拼团奖励 > 基础设置
  9. </div>
  10. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  11. <div class="vue-head">
  12. <div class="vue-main-title">
  13. <div class="vue-main-title-left"></div>
  14. <div class="vue-main-title-content">基础设置</div>
  15. </div>
  16. <div class="vue-main-form">
  17. <el-form-item label="插件开启" prop="is_open">
  18. <el-switch v-model="form.is_open" :active-value="1" :inactive-value="0"></el-switch>
  19. <div class="tip" style="color:red">拼团所选商品为虚拟商品时,拼团活动不参与拼团抽奖</div>
  20. </el-form-item>
  21. <el-form-item label="拼团活动默认状态" prop="open_type">
  22. <el-switch v-model="form.open_type" :active-value="1" :inactive-value="0"></el-switch>
  23. </el-form-item>
  24. <el-form-item label="退款方式" prop="refund">
  25. <el-radio v-model="form.refund" :label="0">原路退回</el-radio>
  26. <el-radio v-model="form.refund" :label="1">余额</el-radio>
  27. </el-form-item>
  28. <el-form-item label="奖励节点" prop="reward_time">
  29. <el-radio v-model="form.reward_time" :label="0">订单完成后(任意一单)</el-radio>
  30. <el-radio v-model="form.reward_time" :label="1">成团后</el-radio>
  31. </el-form-item>
  32. <el-form-item label="拼团抽奖通知">
  33. <el-select v-model="form.notifiyType" value-key="id">
  34. <el-option label="请选择消息模板" :value="0"></el-option>
  35. <el-option v-for="(typeItem,itemIndex) in notifiyTypes" :value="typeItem.id" :label="typeItem.title" :key="typeItem.id"></el-option>
  36. </el-select>
  37. </el-form-item>
  38. <el-form-item label="自定义前端显示名称" prop="lottery_name">
  39. <el-input v-model="form.lottery_name" style="width:10%"></el-input>
  40. </el-form-item>
  41. <el-form-item label="前端活动详情页参与次数与累积中奖次数显示" prop="is_show_custom_number" style="width:150%">
  42. <el-switch v-model="form.is_show_custom_number" :active-value="1" :inactive-value="0"></el-switch>
  43. </el-form-item>
  44. <el-form-item label="当天累积参与次数自定义" prop="join_number_custom">
  45. <el-input v-model="form.join_number_custom" style="width:70%;" ref="join_number_custom" placeholder="默认:今日累积参与次数【参与次数】"></el-input>
  46. <div>
  47. <el-button size="mini" @click="addContent_1('join_number')" ref="join_number">参与次数</el-button>
  48. </div>
  49. </el-form-item>
  50. <el-form-item label="拼中累积次数自定义" prop="winning_number_custom">
  51. <el-input v-model="form.winning_number_custom" style="width:70%;" ref="winning_number_custom" placeholder="默认:您已累积拼中【累积次数】次~"></el-input>
  52. <div>
  53. <el-button size="mini" @click="addContent_2('winning_number')" ref="winning_number">累积次数</el-button>
  54. </div>
  55. </el-form-item>
  56. </div>
  57. </div>
  58. <div class="vue-head">
  59. <div class="vue-main-title">
  60. <div class="vue-main-title-left"></div>
  61. <div class="vue-main-title-content">抽奖规则(统一设置)</div>
  62. </div>
  63. <div class="vue-main-form">
  64. <el-form-item label="团长限制" prop="commander_set">
  65. <el-radio v-model="form.commander_set" :label="0">无限制</el-radio>
  66. <el-radio v-model="form.commander_set" :label="1">必中</el-radio>
  67. <el-radio v-model="form.commander_set" :label="2">必不中</el-radio>
  68. </el-form-item>
  69. <el-form-item label="新会员限制" prop="first_set">
  70. <el-radio v-model="form.first_set" :label="0">无限制</el-radio>
  71. <el-radio v-model="form.first_set" :label="1">必中</el-radio>
  72. <el-radio v-model="form.first_set" :label="2">必不中</el-radio>
  73. </el-form-item>
  74. <el-form-item label="中奖人数(不填写默认为1人)" prop="win_number">
  75. <el-input v-model="form.win_number" style="width:10%"></el-input>
  76. </el-form-item>
  77. <el-form-item label="" prop="">
  78. <div class="tip" style="color:red">新会员为未参加过拼团的用户!如果一个团除了团长其他都是新人,那么选择新人必不中,则团长中奖;</div>
  79. <div class="tip" style="color:red">如果设置了两个必不中的选项,则成团人数不能设置等于小于2人,否则会出问题。</div>
  80. </el-form-item>
  81. </div>
  82. </div>
  83. <div class="vue-head">
  84. <div class="vue-main-title">
  85. <div class="vue-main-title-left"></div>
  86. <div class="vue-main-title-content">奖励规则</div>
  87. </div>
  88. <div class="vue-main-form">
  89. <el-form-item label="抽中会员奖励" prop="">
  90. <template slot="label">
  91. <div style="font-weight:600">抽中会员奖励</div>
  92. </template>
  93. </el-form-item>
  94. <el-form-item label="积分" prop="winning_integral_percentage">
  95. <el-input v-model="form.winning_integral_percentage" style="width:70%">
  96. <template slot="append">%</template>
  97. </el-input>
  98. </el-form-item>
  99. <el-form-item label="余额" prop="winning_credit_percentage">
  100. <el-input v-model="form.winning_credit_percentage" style="width:70%">
  101. <template slot="append">%</template>
  102. </el-input>
  103. </el-form-item>
  104. <el-form-item label="爱心值" prop="winning_love_percentage" v-if="form.is_love">
  105. <el-input v-model="form.winning_love_percentage" style="width:70%">
  106. <template slot="append">%</template>
  107. </el-input>
  108. </el-form-item>
  109. <el-form-item label="消费积分" prop="winning_shop_integral_percentage" v-if="form.is_integral">
  110. <el-input v-model="form.winning_shop_integral_percentage" style="width:70%">
  111. <template slot="append">%</template>
  112. </el-input>
  113. </el-form-item>
  114. <el-form-item label="未抽中会员奖励" prop="">
  115. <template slot="label">
  116. <div style="font-weight:600">未抽中会员奖励(平分奖励)</div>
  117. </template>
  118. </el-form-item>
  119. <el-form-item label="积分" prop="loser_integral_percentage">
  120. <el-input v-model="form.loser_integral_percentage" style="width:70%">
  121. <template slot="append">%</template>
  122. </el-input>
  123. </el-form-item>
  124. <el-form-item label="" prop="loser_credit_type">
  125. <el-radio v-model="form.loser_credit_type" :label="0">平均分</el-radio>
  126. <el-radio v-model="form.loser_credit_type" :label="1">每人固定奖励</el-radio>
  127. <div class="tip" style="color:red">注:该选择只针对余额奖励设置</div>
  128. </el-form-item>
  129. <el-form-item label="余额" prop="loser_credit_percentage">
  130. <el-input v-model="form.loser_credit_percentage" style="width:35%">
  131. <template slot="append">%</template>
  132. </el-input>
  133. <el-input v-model="form.loser_credit" style="width:35%">
  134. <template slot="append">余额</template>
  135. </el-input>
  136. </el-form-item>
  137. <el-form-item label="爱心值" prop="loser_love_percentage" v-if="form.is_love">
  138. <el-input v-model="form.loser_love_percentage" style="width:70%">
  139. <template slot="append">%</template>
  140. </el-input>
  141. </el-form-item>
  142. <el-form-item label="消费积分" prop="loser_shop_integral_percentage" v-if="form.is_integral">
  143. <el-input v-model="form.loser_shop_integral_percentage" style="width:70%">
  144. <template slot="append">%</template>
  145. </el-input>
  146. </el-form-item>
  147. <el-form-item label="奖励到收入" prop="loser_income">
  148. <el-input v-model="form.loser_income_percentage" style="width:35%">
  149. <template slot="append">%</template>
  150. </el-input>
  151. <el-input v-model="form.loser_income" style="width:35%">
  152. <template slot="append">元</template>
  153. </el-input>
  154. <div class="tip" style="color:red">注:该设置只针对收入奖励设置</div>
  155. </el-form-item>
  156. <el-form-item label="未抽中会员上级奖励" prop="">
  157. <template slot="label">
  158. <div style="font-weight:600">未抽中会员上级奖励</div>
  159. </template>
  160. <el-radio v-model="form.parent_reward" :label="0">比例</el-radio>
  161. <el-radio v-model="form.parent_reward" :label="1">固定值</el-radio>
  162. </el-form-item>
  163. <el-form-item label="一级上级奖励积分" prop="parent_one_integral">
  164. <el-input v-model="form.parent_one_integral" style="width:70%">
  165. <!-- <template slot="append">%</template> -->
  166. </el-input>
  167. </el-form-item>
  168. <el-form-item label="二级上级奖励积分" prop="parent_two_integral">
  169. <el-input v-model="form.parent_two_integral" style="width:70%">
  170. <!-- <template slot="append">%</template> -->
  171. </el-input>
  172. </el-form-item>
  173. <el-form-item label="一级上级奖励余额" prop="parent_one_credit">
  174. <el-input v-model="form.parent_one_credit" style="width:70%">
  175. <!-- <template slot="append">%</template> -->
  176. </el-input>
  177. </el-form-item>
  178. <el-form-item label="二级上级奖励余额" prop="parent_two_credit">
  179. <el-input v-model="form.parent_two_credit" style="width:70%">
  180. <!-- <template slot="append">%</template> -->
  181. </el-input>
  182. </el-form-item>
  183. <el-form-item label="" prop="">
  184. <div class="tip" style="color:red">如果拼团活动中进行了独立设置,以拼团活动设置为准!</div>
  185. </el-form-item>
  186. </div>
  187. </div>
  188. <div class="vue-head">
  189. <div class="vue-main-title">
  190. <div class="vue-main-title-left"></div>
  191. <div class="vue-main-title-content">拼团抽奖规则</div>
  192. </div>
  193. <div class="vue-main-form">
  194. <el-form-item label="是否显示" prop="is_display">
  195. <el-switch v-model="form.is_display" :active-value="1" :inactive-value="0"></el-switch>
  196. </el-form-item>
  197. <el-form-item label="标题名称" prop="title">
  198. <el-input v-model="form.title" style="width:70%"></el-input>
  199. </el-form-item>
  200. <el-form-item label="规则设置" prop="desc">
  201. <tinymceee v-model="form.desc" style="width:70%"></tinymceee>
  202. </el-form-item>
  203. </div>
  204. </div>
  205. </el-form>
  206. <!-- 分页 -->
  207. <div class="vue-page">
  208. <div class="vue-center">
  209. <el-button type="primary" @click="submitForm('form')">保存设置</el-button>
  210. <el-button @click="goBack">返回</el-button>
  211. </div>
  212. </div>
  213. </div>
  214. </div>
  215. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  216. @include('public.admin.uploadImg')
  217. @include('public.admin.tinymceee')
  218. <script>
  219. let set={!!json_encode($set) !!}
  220. const notifiyTypes=JSON.parse('{!! json_encode($temp_list,true) !!}');
  221. var app = new Vue({
  222. el:"#app",
  223. delimiters: ['[[', ']]'],
  224. name: 'test',
  225. data() {
  226. return{
  227. form:{
  228. desc:set.desc?set.desc:'',
  229. join_number:'',
  230. winning_number:'',
  231. notifiyType : null
  232. },
  233. rules:{
  234. name:{ required: true, message: '请输入'}
  235. },
  236. notifiyTypes
  237. }
  238. },
  239. created() {
  240. },
  241. mounted() {
  242. this.getData();
  243. },
  244. methods: {
  245. // 添加关键词
  246. addContent_1(name) {
  247. let words = "";
  248. if(name=='join_number'){
  249. words = "[参与次数]";
  250. }
  251. this.insertInputTxt_1(name,words)
  252. },
  253. // 添加关键词
  254. addContent_2(name) {
  255. let words = "";
  256. if(name=='winning_number'){
  257. words = "[累积次数]";
  258. }
  259. this.insertInputTxt_2(name,words)
  260. },
  261. insertInputTxt_1(ref,words) {
  262. let name = this.$refs['join_number_custom'].$refs.input;
  263. var startPos = name.selectionStart;
  264. console.log(startPos);
  265. var endPos = name.selectionEnd;
  266. if (startPos === undefined || endPos === undefined) return
  267. var txt = name.value;
  268. var result = txt.substring(0, startPos) + words + txt.substring(endPos)
  269. name.value = result;
  270. name.focus();
  271. name.selectionStart = startPos + words.length;
  272. name.selectionEnd = startPos + words.length;
  273. console.log(name.value)
  274. this.form['join_number_custom'] = name.value;
  275. },
  276. insertInputTxt_2(ref,words) {
  277. let name = this.$refs['winning_number_custom'].$refs.input;
  278. var startPos = name.selectionStart;
  279. console.log(startPos);
  280. var endPos = name.selectionEnd;
  281. if (startPos === undefined || endPos === undefined) return
  282. var txt = name.value;
  283. var result = txt.substring(0, startPos) + words + txt.substring(endPos)
  284. name.value = result;
  285. name.focus();
  286. name.selectionStart = startPos + words.length;
  287. name.selectionEnd = startPos + words.length;
  288. console.log(name.value)
  289. this.form['winning_number_custom'] = name.value;
  290. },
  291. getData() {
  292. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  293. this.$http.post('{!! yzWebFullUrl('plugin.fight-groups-lottery.admin.set.set-info') !!}').then(function (response) {
  294. if (response.data.result){
  295. this.form = {
  296. ...response.data.data,
  297. };
  298. console.log(this.form);
  299. }
  300. else {
  301. this.$message({message: response.data.msg,type: 'error'});
  302. }
  303. loading.close();
  304. },function (response) {
  305. this.$message({message: response.data.msg,type: 'error'});
  306. loading.close();
  307. }
  308. );
  309. },
  310. submitForm(formName) {
  311. console.log(this.form)
  312. let that = this;
  313. let json = this.form;
  314. this.$refs[formName].validate((valid) => {
  315. if (valid) {
  316. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  317. this.$http.post('{!! yzWebFullUrl('plugin.fight-groups-lottery.admin.set.add-groups-lottery-set') !!}',json).then(response => {
  318. if (response.data.result) {
  319. this.$message({type: 'success',message: '操作成功!'});
  320. } else {
  321. this.$message({message: response.data.msg,type: 'error'});
  322. }
  323. loading.close();
  324. },response => {
  325. loading.close();
  326. });
  327. }
  328. else {
  329. console.log('error submit!!');
  330. return false;
  331. }
  332. });
  333. },
  334. goBack() {
  335. history.go(-1)
  336. },
  337. },
  338. })
  339. </script>
  340. @endsection