add_vip.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. {extend name="public/container"}
  2. {block name='head_top'}
  3. <style>
  4. .layui-form-item .special-label i{display: inline-block;width: 18px;height: 18px;font-size: 18px;color: #fff;}
  5. .layui-form-item .label-box p{line-height: inherit;}
  6. .m-t-5{margin-top:5px;}
  7. #app .layui-barrage-box{margin-bottom: 10px;margin-top: 10px;margin-left: 10px;border: 1px solid #0092DC;border-radius: 5px;cursor: pointer;position: relative;}
  8. #app .layui-barrage-box.border-color{border-color: #0bb20c;}
  9. #app .layui-barrage-box .del-text{position: absolute;top: 0;left: 0;background-color: rgba(0,0,0,0.5);color: #ffffff;width: 92%;text-align: center;}
  10. #app .layui-barrage-box p{padding:5px 5px; }
  11. #app .layui-empty-text{text-align: center;font-size: 18px;}
  12. #app .layui-empty-text p{padding: 10px 10px;}
  13. [v-cloak]{
  14. display: none;
  15. }
  16. </style>
  17. {/block}
  18. {block name="content"}
  19. <div class="layui-fluid" style="background: #fff">
  20. <div class="layui-row layui-col-space15" id="app" v-cloak="">
  21. <div class="layui-col-md12">
  22. <div class="layui-card" v-cloak="">
  23. <div class="layui-card-header">添加会员</div>
  24. <div class="layui-card-body" style="padding: 10px 150px;">
  25. <form action="" class="layui-form">
  26. <div class="layui-form-item m-t-5" v-cloak="">
  27. <div class="layui-form-item submit">
  28. <label class="layui-form-label">会员名:</label>
  29. <div class="layui-input-block">
  30. <input type="text" name="title" style="width: 50%" v-model="formData.title" autocomplete="off" placeholder="请输入昵称" class="layui-input">
  31. </div>
  32. </div>
  33. <div class="layui-form-item submit">
  34. <label class="layui-form-label">有效时间:</label>
  35. <div class="layui-input-block">
  36. <input type="radio" name="vip_day" value="30" title="月" v-model="formData.vip_day" lay-filter="vip_day" >
  37. <input type="radio" name="vip_day" value="90" title="季" v-model="formData.vip_day" lay-filter="vip_day">
  38. <input type="radio" name="vip_day" value="365" title="年" v-model="formData.vip_day" lay-filter="vip_day" >
  39. <input type="radio" name="vip_day" value="-1" title="永久" v-model="formData.vip_day" lay-filter="vip_day">
  40. </div>
  41. </div>
  42. <div class="layui-form-item submit">
  43. <label class="layui-form-label">会员原价:</label>
  44. <div class="layui-input-block">
  45. <input type="number" name="original_price" style="width: 50%" v-model="formData.original_price" autocomplete="off" class="layui-input">
  46. </div>
  47. </div>
  48. <div class="layui-form-item submit">
  49. <label class="layui-form-label">优惠后价格:</label>
  50. <div class="layui-input-block">
  51. <input type="number" name="price" style="width: 50%" v-model="formData.price" autocomplete="off" class="layui-input">
  52. </div>
  53. </div>
  54. <div class="layui-form-item submit">
  55. <label class="layui-form-label">排序:</label>
  56. <div class="layui-input-block">
  57. <input type="number" name="sort" style="width: 50%" v-model="formData.sort" autocomplete="off" class="layui-input">
  58. </div>
  59. </div>
  60. <div class="layui-form-item" >
  61. <label class="layui-form-label">是否免费:</label>
  62. <div class="layui-input-block">
  63. <input type="radio" name="is_free" value="1" title="是" v-model="formData.is_free" lay-filter="is_free" >
  64. <input type="radio" name="is_free" value="0" title="否" v-model="formData.is_free" lay-filter="is_free">
  65. </div>
  66. </div>
  67. <div class="layui-form-item submit" v-show="free || formData.free_day>0">
  68. <label class="layui-form-label">免费使用时间:</label>
  69. <div class="layui-input-block">
  70. <input type="number" name="free_day" style="width: 50%" v-model="formData.free_day" autocomplete="off" class="layui-input">
  71. </div>
  72. </div>
  73. <div class="layui-form-item">
  74. <label class="layui-form-label">是否永久:</label>
  75. <div class="layui-input-block">
  76. <input type="radio" name="is_permanent" value="1" title="是" v-model="formData.is_permanent" lay-filter="is_permanent" >
  77. <input type="radio" name="is_permanent" value="0" title="否" v-model="formData.is_permanent" lay-filter="is_permanent">
  78. </div>
  79. </div>
  80. <div class="layui-form-item">
  81. <label class="layui-form-label">是否发布:</label>
  82. <div class="layui-input-block">
  83. <input type="radio" name="is_publish" value="1" title="是" v-model="formData.is_publish" lay-filter="is_publish">
  84. <input type="radio" name="is_publish" value="0" title="否" v-model="formData.is_publish" lay-filter="is_publish">
  85. </div>
  86. </div>
  87. <div class="layui-form-item submit">
  88. <div class="layui-input-block">
  89. <button class="layui-btn layui-btn-normal" type="button" @click="save">{{id ? '立即修改':'立即提交'}}</button>
  90. <button class="layui-btn layui-btn-primary clone" type="button" @click="clone_form">清空</button>
  91. </div>
  92. </div>
  93. </form>
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. </div>
  99. <script type="text/javascript" src="{__ADMIN_PATH}js/request.js"></script>
  100. <script type="text/javascript" src="{__ADMIN_PATH}js/layuiList.js"></script>
  101. <script type="text/javascript" src="{__MODULE_PATH}widget/OssUpload.js"></script>
  102. {/block}
  103. {block name='script'}
  104. <script>
  105. var id={$id},membership=<?=isset($membership) ? $membership : []?>;
  106. require(['vue'],function(Vue) {
  107. new Vue({
  108. el: "#app",
  109. data: {
  110. formData:{
  111. title:membership.title || '',
  112. vip_day:membership.vip_day || 30,
  113. free_day:membership.free_day || 0,
  114. original_price:membership.original_price || 0,
  115. price:membership.price || 0,
  116. sort:membership.sorts || 0,
  117. is_permanent:membership.is_permanent || 0,
  118. is_publish:membership.is_publish || 0,
  119. is_free:membership.is_free || 0,
  120. },
  121. free:false
  122. },
  123. watch: {
  124. 'formData.vip_day': function (v) {
  125. this.$nextTick(function () {
  126. layList.form.render();
  127. });
  128. }
  129. },
  130. methods:{
  131. clone_form: function () {
  132. var that = this;
  133. if (parseInt(id) == 0) {
  134. parent.layer.closeAll();
  135. }
  136. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  137. parent.layer.close(index); //再执行关闭
  138. },
  139. save:function () {
  140. var that=this;
  141. if(!that.formData.title) return layList.msg('请输入会员标题');
  142. if(that.formData.vip_day<0 && !that.formData.is_permanent) return layList.msg('会员有效时间有误');
  143. if(that.formData.free_day<=0 && that.formData.is_free) return layList.msg('免费会员有效时间有误');
  144. if(Number(that.formData.original_price)<0) return layList.msg('请输入会员原价');
  145. if(Number(that.formData.price) <0) return layList.msg('请输入会员优惠后价格');
  146. layList.loadFFF();
  147. layList.basePost(layList.U({a:'save_sytem_vip',q:{id:id}}),that.formData,function (res) {
  148. layList.loadClear();
  149. if(parseInt(id) == 0) {
  150. layList.layer.confirm('添加成功,您要继续添加会员设置吗?', {
  151. btn: ['继续添加', '立即提交'] //按钮
  152. }, function () {
  153. window.location.reload();
  154. }, function () {
  155. parent.layer.closeAll();
  156. });
  157. }else{
  158. layList.msg('修改成功',function () {
  159. parent.layer.closeAll();
  160. })
  161. }
  162. },function (res) {
  163. layList.msg(res.msg);
  164. layList.loadClear();
  165. });
  166. }
  167. },
  168. mounted:function () {
  169. var that=this;
  170. this.$nextTick(function () {
  171. layList.form.render();
  172. });
  173. layList.form.on('radio(is_permanent)',function (data) {
  174. that.formData.is_permanent=data.value;
  175. });
  176. layList.form.on('radio(vip_day)',function (data) {
  177. that.formData.vip_day=data.value;
  178. that.formData.is_free=0;
  179. that.free=false;
  180. });
  181. layList.form.on('radio(is_publish)',function (data) {
  182. that.formData.is_publish=data.value;
  183. });
  184. layList.form.on('radio(is_free)',function (data) {
  185. that.formData.is_free=data.value;
  186. if(data.value==1) {
  187. that.free=true;
  188. that.formData.vip_day= 0;
  189. }else{
  190. that.free=false;
  191. that.formData.vip_day=30;
  192. }
  193. layList.form.render();
  194. });
  195. }
  196. })
  197. })
  198. </script>
  199. {/block}