advert.blade.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. @extends('layouts.base')
  2. @section('title', '广告位')
  3. @section('content')
  4. <link rel="stylesheet" href="{{resource_get('plugins/pc-terminal-two/views/backend/index.css')}}">
  5. <style>
  6. .vue-main{background: #eff3f6;}
  7. /* 导航 */
  8. .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;}
  9. .el-radio-button__inner{border:0;}
  10. .el-radio-button:last-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;}
  11. </style>
  12. <div class="all">
  13. <div id="app" v-cloak>
  14. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  15. <div class="vue-head">
  16. <el-radio-group v-model="order_type">
  17. <el-radio-button label="1" @click.native="gotoOther(1)">幻灯片</el-radio-button>
  18. <el-radio-button label="2" @click.native="gotoOther(2)">广告位</el-radio-button>
  19. </el-radio-group>
  20. </div>
  21. <div class="vue-head">
  22. <div class="vue-main-title">
  23. <div class="vue-main-title-left"></div>
  24. <div class="vue-main-title-content">广告位</div>
  25. </div>
  26. <div class="vue-main-form">
  27. <el-form-item label="广告位1" prop="">
  28. <div class="upload-box" @click="openUpload('advert1')" v-if="!form.advert1_src">
  29. <i class="el-icon-plus" style="font-size:32px"></i>
  30. </div>
  31. <div @click="openUpload('advert1')" class="upload-boxed" v-if="form.advert1_src" style="height:100px;">
  32. <img :src="form.advert1_src" alt="" style="width:150px;height:100px;border-radius: 5px;cursor: pointer;">
  33. <div class="upload-boxed-text">点击重新上传</div>
  34. </div>
  35. <div class="tip">建议尺寸220*95</div>
  36. </el-form-item>
  37. <el-form-item label="跳转链接" prop="advert1_url">
  38. <el-input v-model="form.advert1_url" style="width:70%;" placeholder=" 请填写指向的链接 (请以https://开头)"></el-input>
  39. </el-form-item>
  40. <el-form-item label="广告位2" prop="">
  41. <div class="upload-box" @click="openUpload('advert2')" v-if="!form.advert2_src">
  42. <i class="el-icon-plus" style="font-size:32px"></i>
  43. </div>
  44. <div @click="openUpload('advert2')" class="upload-boxed" v-if="form.advert2_src" style="height:100px;">
  45. <img :src="form.advert2_src" alt="" style="width:150px;height:100px;border-radius: 5px;cursor: pointer;">
  46. <div class="upload-boxed-text">点击重新上传</div>
  47. </div>
  48. <div class="tip">建议尺寸220*95</div>
  49. </el-form-item>
  50. <el-form-item label="跳转链接" prop="advert2_url">
  51. <el-input v-model="form.advert2_url" style="width:70%;" placeholder=" 请填写指向的链接 (请以https://开头)"></el-input>
  52. </el-form-item>
  53. <el-form-item label="广告位1" prop="">
  54. <div class="upload-box" @click="openUpload('advert3')" v-if="!form.advert3_src">
  55. <i class="el-icon-plus" style="font-size:32px"></i>
  56. </div>
  57. <div @click="openUpload('advert3')" class="upload-boxed" v-if="form.advert3_src" style="height:100px;">
  58. <img :src="form.advert3_src" alt="" style="width:150px;height:100px;border-radius: 5px;cursor: pointer;">
  59. <div class="upload-boxed-text">点击重新上传</div>
  60. </div>
  61. <div class="tip">建议尺寸220*95</div>
  62. </el-form-item>
  63. <el-form-item label="跳转链接" prop="advert3_url">
  64. <el-input v-model="form.advert3_url" style="width:70%;" placeholder=" 请填写指向的链接 (请以https://开头)"></el-input>
  65. </el-form-item>
  66. </div>
  67. </div>
  68. </el-form>
  69. <!-- 分页 -->
  70. <div class="vue-page">
  71. <div class="vue-center">
  72. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  73. <el-button @click="goBack">返回</el-button>
  74. </div>
  75. </div>
  76. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  77. </div>
  78. </div>
  79. @include('public.admin.uploadImg')
  80. <script>
  81. var app = new Vue({
  82. el:"#app",
  83. delimiters: ['[[', ']]'],
  84. name: 'test',
  85. data() {
  86. return{
  87. order_type:'2',
  88. form:{
  89. advert1 : '',
  90. advert1_src : '',
  91. advert1_url:'',
  92. advert2 : '',
  93. advert2_src : '',
  94. advert2_url:'',
  95. advert3 : '',
  96. advert3_src : '',
  97. advert3_url:'',
  98. },
  99. uploadShow:false,
  100. chooseImgName:'',
  101. submit_url:'',
  102. showVisible:false,
  103. loading: false,
  104. template_list:[],
  105. rules:{
  106. // name:{ required: true, message: '请输入品牌名称'}
  107. },
  108. }
  109. },
  110. created() {
  111. },
  112. mounted() {
  113. this.getData();
  114. },
  115. methods: {
  116. getData() {
  117. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  118. this.$http.post('{!! yzWebFullUrl('plugin.pc-terminal-two.backend.advert.advert-info') !!}').then(function(response) {
  119. if (response.data.result) {
  120. // console.log(response.data.data);
  121. this.form = response.data.data.advert;
  122. loading.close();
  123. } else {
  124. this.$message({
  125. message: response.data.msg,
  126. type: 'error'
  127. });
  128. }
  129. loading.close();
  130. }, function(response) {
  131. this.$message({
  132. message: response.data.msg,
  133. type: 'error'
  134. });
  135. loading.close();
  136. });
  137. },
  138. submitForm(formName) {
  139. console.log(this.form)
  140. let that = this;
  141. let json = this.form;
  142. this.$refs[formName].validate((valid) => {
  143. if (valid) {
  144. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  145. this.$http.post('{!! yzWebFullUrl('plugin.pc-terminal-two.backend.advert.set-advert') !!}',{advert:json}).then(response => {
  146. if (response.data.result) {
  147. this.$message({message: response.data.msg,type: 'success'});
  148. } else {
  149. this.$message({message: response.data.msg,type: 'error'});
  150. }
  151. loading.close();
  152. },response => {
  153. loading.close();
  154. });
  155. }
  156. else {
  157. console.log('error submit!!');
  158. return false;
  159. }
  160. });
  161. },
  162. goBack() {
  163. history.go(-1)
  164. },
  165. gotoOther(type) {
  166. let url = ""
  167. if(type==1) {
  168. url = '{!! yzWebFullUrl('plugin.pc-terminal-two.backend.banner.banner') !!}'
  169. }
  170. else if(type==2) {
  171. //url = '{!! yzWebFullUrl('plugin.pc-terminal-two.backend.advert.advert') !!}'
  172. }
  173. if(url) {
  174. window.location.href=url
  175. }
  176. },
  177. openUpload(str) {
  178. this.chooseImgName = str;
  179. this.uploadShow = true;
  180. },
  181. changeProp(val) {
  182. if(val == true) {
  183. this.uploadShow = false;
  184. }
  185. else {
  186. this.uploadShow = true;
  187. }
  188. },
  189. sureImg(name,image,image_url) {
  190. this.form[name] = image;
  191. this.form[name+'_src'] = image_url;
  192. },
  193. clearImg(str) {
  194. this.form[str] = "";
  195. this.form[str+'_src'] = "";
  196. this.$forceUpdate();
  197. },
  198. },
  199. })
  200. </script>
  201. @endsection