add_content.blade.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. @extends('layouts.base')
  2. @section('title', trans('添加内容'))
  3. @section('content')
  4. <link rel="stylesheet" href="{{resource_get('plugins/aggregation-cps/static/index.css')}}">
  5. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/>
  6. <link rel="stylesheet" href="{{static_url('css/public-number.css')}}">
  7. <style>
  8. .el-tag1{line-height:60px !important;height: 60px !important;font-size:16px;}
  9. .el-form-item1 .el-form-item__label{line-height: 28px;}
  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. <el-form ref="form" :model="form" label-width="15%">
  18. <div class="vue-main" >
  19. <div class="vue-main-title">
  20. <div class="vue-main-title-left"></div>
  21. <div class="vue-main-title-content">添加内容</div>
  22. </div>
  23. <div class="vue-main-form">
  24. <el-form-item label="排序" prop="sort">
  25. <el-input v-model="form.sort" style="width:70%;">
  26. </el-input>
  27. </el-form-item>
  28. <el-form-item label="内容名称" prop="title">
  29. <el-input v-model="form.title" style="width:70%;">
  30. </el-input>
  31. </el-form-item>
  32. <el-form-item label="内容封面" prop="img_url">
  33. <div class="upload-box" @click="openUpload('img_url')" v-if="!form.img_url">
  34. <i class="el-icon-plus" style="font-size:32px"></i>
  35. </div>
  36. <div @click="openUpload('img_url')" class="upload-boxed" v-if="form.img_url">
  37. <img :src="form.img_url_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  38. <div class="upload-boxed-text">点击重新上传</div>
  39. <i class="el-icon-close" @click.stop="clearImg('img_url')" title="点击清除图片"></i>
  40. </div>
  41. <div class="tip">建议尺寸: 130*90,或长方型图片</div>
  42. </el-form-item>
  43. <el-form-item label="链接" prop="url" :rules="[{ required: true, message: '链接不能为空'}]">
  44. <el-input v-model="form.url" style="width:70%;"></el-input>
  45. <div class="tip">请以https://开头</div>
  46. </el-form-item>
  47. <el-form-item label="是否显示" prop="is_show">
  48. <el-switch v-model="form.is_show" :active-value="1" :inactive-value="0"></el-switch>
  49. </el-form-item>
  50. </div>
  51. </div>
  52. </el-form>
  53. <!-- 分页 -->
  54. <div class="vue-page">
  55. <div class="vue-center">
  56. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  57. <el-button @click="goBack">返回</el-button>
  58. </div>
  59. </div>
  60. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  61. </div>
  62. </div>
  63. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  64. @include('public.admin.uploadImg')
  65. @include('public.admin.pop')
  66. @include('public.admin.program')
  67. <script>
  68. let academy_id = {!! $academy_id ?:0 !!};
  69. let id = {!! $id?:0 !!};
  70. var app = new Vue({
  71. el:"#app",
  72. delimiters: ['[[', ']]'],
  73. name: 'test',
  74. data() {
  75. return{
  76. order_type:1,
  77. list:[],
  78. award_list:[],
  79. id:id,
  80. academy_id:academy_id,
  81. table_loading:false,
  82. form:{
  83. sort:'',
  84. title:'',
  85. url:'',
  86. is_show:1,
  87. img_url:'',
  88. },
  89. uploadShow:false,
  90. chooseImgName:'',
  91. loading: false,
  92. }
  93. },
  94. created() {
  95. if(this.id) {
  96. this.submit_url = '{!! yzWebFullUrl('plugin.aggregation-cps.admin.commerce-academy.edit-content') !!}'
  97. }
  98. else {
  99. this.submit_url = '{!! yzWebFullUrl('plugin.aggregation-cps.admin.commerce-academy.created-content') !!}'
  100. }
  101. console.log(this.academy_id)
  102. this.getData();
  103. },
  104. mounted() {
  105. },
  106. methods: {
  107. getParam(name) {
  108. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  109. var r = window.location.search.substr(1).match(reg);
  110. if (r != null) return unescape(r[2]);
  111. return null;
  112. },
  113. getData() {
  114. let json = {};
  115. if(this.id) {
  116. json.id = this.id
  117. }
  118. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  119. this.$http.post(this.submit_url,json).then(function (response) {
  120. if (response.data.result){
  121. if(this.id) {
  122. this.form.sort = response.data.data.sort;
  123. this.form.title = response.data.data.title;
  124. this.form.img_url = response.data.data.img_url;
  125. this.form.img_url_url = response.data.data.img_url;
  126. this.form.url = response.data.data.url;
  127. this.form.is_show = response.data.data.is_show;
  128. }
  129. console.log(this.form)
  130. }
  131. else {
  132. this.$message({message: response.data.msg,type: 'error'});
  133. }
  134. loading.close();
  135. },function (response) {
  136. this.$message({message: response.data.msg,type: 'error'});
  137. loading.close();
  138. }
  139. );
  140. },
  141. submitForm(formName) {
  142. console.log(this.form)
  143. console.log(this.academy_id)
  144. let json = {
  145. sort:this.form.sort,
  146. title:this.form.title,
  147. url:this.form.url,
  148. img_url:this.form.img_url,
  149. is_show:this.form.is_show,
  150. is_submit:1,
  151. };
  152. if (this.id) {
  153. json.id = this.id;
  154. }
  155. if (this.academy_id) {
  156. json.academy_id =this.academy_id;
  157. }
  158. console.log(json)
  159. this.$refs[formName].validate((valid) => {
  160. if (valid) {
  161. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  162. this.$http.post(this.submit_url,json).then(response => {
  163. if (response.data.result) {
  164. this.$message({type: 'success',message: '操作成功!'});
  165. this.goBack();
  166. } else {
  167. this.$message({message: response.data.msg,type: 'error'});
  168. }
  169. loading.close();
  170. },response => {
  171. loading.close();
  172. });
  173. }
  174. else {
  175. console.log('error submit!!');
  176. return false;
  177. }
  178. });
  179. },
  180. openUpload(str) {
  181. this.chooseImgName = str;
  182. this.uploadShow = true;
  183. },
  184. changeProp(val) {
  185. if(val == true) {
  186. this.uploadShow = false;
  187. }
  188. else {
  189. this.uploadShow = true;
  190. }
  191. },
  192. sureImg(name,image,image_url) {
  193. this.form[name] = image;
  194. this.form[name+'_url'] = image_url;
  195. },
  196. clearImg(str) {
  197. this.form[str] = "";
  198. this.form[str+'_url'] = "";
  199. this.$forceUpdate();
  200. },
  201. goBack() {
  202. history.go(-1)
  203. },
  204. },
  205. })
  206. </script>
  207. @endsection