circle-edit.blade.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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. <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. </style>
  11. <div class="all">
  12. <div id="app" v-cloak>
  13. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  14. <div class="vue-main">
  15. <div class="vue-main-title">
  16. <div class="vue-main-title-left"></div>
  17. <div class="vue-main-title-content">查看详情</div>
  18. </div>
  19. <div class="vue-main-form">
  20. <el-form-item label="分类" prop="">
  21. <el-select v-model="form.category_id" clearable placeholder="分类名称" style="width:70%;" :disabled="type==2">
  22. <el-option v-for="(item,index) in category_list" :key="index" :label="item.name" :value="item.id"></el-option>
  23. </el-select>
  24. </el-form-item>
  25. <el-form-item label="圈主" prop="">
  26. <div>
  27. <img :src="form.avatar" alt="" style="width:50px;height:50pxmargin-right:10px">
  28. <div>[[form.nickname]]</div>
  29. <el-button type="primary" @click="selectMemberVisible = true">更换圈主</el-button>
  30. <el-dialog title="选择会员" :visible.sync="selectMemberVisible">
  31. <el-input v-model="form.keyword" placeholder="会员ID/昵称/手机号码" clearable style="width: 40%; margin-bottom: 30px;"></el-input>
  32. <el-button plain @click="searchMember(form.keyword)">搜索会员</el-button>
  33. <el-table :data="memberData">
  34. <el-table-column property="uid" label="会员ID" width="80"></el-table-column>
  35. <el-table-column property="nickname" label="昵称"></el-table-column>
  36. <el-table-column property="mobile" label="手机号码"></el-table-column>
  37. <el-table-column property="avatar_image" label="头像">
  38. <template slot-scope="scope">
  39. <img :src="scope.row.avatar_image" min-width="40" height="40"/>
  40. </template>
  41. </el-table-column>
  42. <el-table-column label="操作">
  43. <template slot-scope="scope">
  44. <el-button type="text" @click.native="getUid(scope.$index, memberData)">选择</el-button>
  45. </template>
  46. </el-table-column>
  47. </el-table>
  48. </el-dialog>
  49. </div>
  50. </el-form-item>
  51. <el-form-item label="创建时间" prop="">
  52. <div>[[form.created_at]]</div>
  53. </el-form-item>
  54. <el-form-item label="圈子名称" prop="name">
  55. <el-input v-model="form.name" style="width:70%;" :disabled="type==2"></el-input>
  56. </el-form-item>
  57. <el-form-item label="背景图" prop="bg_img">
  58. <div class="upload-box" @click="openUpload('bg_img')" v-if="!form.tomedia_bg_img">
  59. <i class="el-icon-plus" style="font-size:32px"></i>
  60. </div>
  61. <div @click="openUpload('bg_img')" class="upload-boxed" v-if="form.tomedia_bg_img" style="height:150px">
  62. <img :src="form.tomedia_bg_img" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  63. <div class="upload-boxed-text">点击重新上传</div>
  64. </div>
  65. <!-- <div class="tip">建议尺寸: 640*350,请将所有轮播图图片尺寸保持一致</div> -->
  66. </el-form-item>
  67. <el-form-item label="圈子图片" prop="circle_img">
  68. <div class="upload-box" @click="openUpload('circle_img')" v-if="!form.tomedia_circle_img">
  69. <i class="el-icon-plus" style="font-size:32px"></i>
  70. </div>
  71. <div @click="openUpload('circle_img')" class="upload-boxed" v-if="form.tomedia_circle_img" style="height:150px">
  72. <img :src="form.tomedia_circle_img" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  73. <div class="upload-boxed-text">点击重新上传</div>
  74. </div>
  75. <!-- <div class="tip">建议尺寸: 640*350,请将所有轮播图图片尺寸保持一致</div> -->
  76. </el-form-item>
  77. <el-form-item label="圈子简介" prop="synopsis">
  78. <el-input type="textarea" rows="5" v-model="form.synopsis" style="width:70%;" :disabled="type==2"></el-input>
  79. </el-form-item>
  80. <el-form-item label="圈子类型" prop="is_toll">
  81. <el-radio v-model.number="form.is_toll" :label="0" :disabled="type==2">免费</el-radio>
  82. <el-radio v-model.number="form.is_toll" :label="1" :disabled="type==2">付费</el-radio>
  83. </el-form-item>
  84. <el-form-item label="费用" prop="price">
  85. <el-input v-model="form.price" style="width:70%;" :disabled="type==2">
  86. <template slot="append">%</template>
  87. </el-input>
  88. </el-form-item>
  89. </div>
  90. </div>
  91. </el-form>
  92. <!-- 分页 -->
  93. <div class="vue-page">
  94. <div class="vue-center">
  95. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  96. <el-button @click="goBack">返回</el-button>
  97. </div>
  98. </div>
  99. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  100. </div>
  101. </div>
  102. @include('public.admin.uploadImg')
  103. <script>
  104. let data = {!! json_encode($data) !!}
  105. console.log(data)
  106. var app = new Vue({
  107. el:"#app",
  108. delimiters: ['[[', ']]'],
  109. name: 'test',
  110. data() {
  111. return{
  112. id:0,
  113. type:'',
  114. category_list:data.cat,
  115. form:{
  116. ...data.circle,
  117. keyword: ''
  118. },
  119. uploadShow:false,
  120. chooseImgName:'',
  121. submit_url:'',
  122. showVisible:false,
  123. loading: false,
  124. uploadImg1:'',
  125. rules:{
  126. name:{ required: true, message: '请输入轮播图标题'},
  127. },
  128. selectMemberVisible: false,
  129. memberData: []
  130. }
  131. },
  132. created() {
  133. },
  134. mounted() {
  135. this.id = this.getParam("circle_id");
  136. this.type = this.getParam("type");
  137. this.submit_url = `{!! yzWebFullUrl('plugin.circle.admin.circle.save') !!}`
  138. },
  139. methods: {
  140. getParam(name) {
  141. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  142. var r = window.location.search.substr(1).match(reg);
  143. if (r != null) return unescape(r[2]);
  144. return null;
  145. },
  146. submitForm(formName) {
  147. if(this.type==2) {
  148. this.$message.error('审核页面不支持修改')
  149. return false;
  150. }
  151. let that = this;
  152. let json = {
  153. circle_id:this.id,
  154. name:this.form.name,
  155. circle_img:this.form.circle_img,
  156. bg_img:this.form.bg_img,
  157. synopsis:this.form.synopsis,
  158. is_toll:this.form.is_toll,
  159. price:this.form.price,
  160. member_id:this.form.member_id,
  161. category_id:this.form.category_id,
  162. };
  163. this.$refs[formName].validate((valid) => {
  164. if (valid) {
  165. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  166. this.$http.post(this.submit_url,json).then(response => {
  167. if (response.data.result) {
  168. this.$message({type: 'success',message: '操作成功!'});
  169. this.goBack();
  170. } else {
  171. this.$message({message: response.data.msg,type: 'error'});
  172. }
  173. loading.close();
  174. },response => {
  175. loading.close();
  176. });
  177. }
  178. else {
  179. console.log('error submit!!');
  180. return false;
  181. }
  182. });
  183. },
  184. goBack() {
  185. history.go(-1)
  186. },
  187. openUpload(str) {
  188. if(this.type==2) {
  189. this.$message.error('审核页面不支持修改')
  190. return false;
  191. }
  192. this.chooseImgName = str;
  193. this.uploadShow = true;
  194. },
  195. changeProp(val) {
  196. if(val == true) {
  197. this.uploadShow = false;
  198. }
  199. else {
  200. this.uploadShow = true;
  201. }
  202. },
  203. sureImg(name,image,image_url) {
  204. this.form[name] = image;
  205. this.form['tomedia_'+name] = image_url;
  206. },
  207. clearImg(str) {
  208. this.form[str] = "";
  209. this.form['tomedia_'+str] = "";
  210. this.$forceUpdate();
  211. },
  212. getUid(index, memberData) {
  213. this.form.member_id = memberData[index].uid
  214. this.form.nickname = memberData[index].nickname
  215. this.form.avatar = memberData[index].avatar
  216. this.selectMemberVisible = false
  217. },
  218. searchMember(keyword) {
  219. const params = {
  220. params:{
  221. keyword: keyword
  222. }
  223. }
  224. const url = "{!! yzWebUrl('member.member.search-member-list') !!}"
  225. this.$http.get(url, params).then(response => {
  226. if (response.body.result === 1) {
  227. this.memberData = response.body.data.data
  228. } else {
  229. this.$message.error('获取失败,请重试')
  230. }
  231. }).catch(err => {
  232. console.log(err);
  233. });
  234. },
  235. },
  236. })
  237. </script>
  238. @endsection