admin.blade.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. @extends('layouts.base')
  2. @section('title', '基础设置')
  3. @section('content')
  4. <link rel="stylesheet" href="{{resource_get('plugins/case-library/views/admin/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. <style>
  13. /*上传图片 */
  14. .addImg-box {
  15. /*width: 700px;*/
  16. display: flex;
  17. flex-wrap: wrap;
  18. cursor: pointer;
  19. }
  20. /* 点击事件添加 */
  21. .addLevel {
  22. margin-left: 65px;
  23. }
  24. .el-icon-plus {
  25. font-size: 40px;
  26. margin-top: 45px;
  27. }
  28. .itemImg_box {}
  29. .addImg-list {
  30. /*height: 150px;*/
  31. width: 150px;
  32. margin-right: 20px;
  33. margin-bottom: 60px;
  34. position: relative;
  35. }
  36. /* 商品图片添加 */
  37. .add-price-img {
  38. height: 150px;
  39. width: 150px;
  40. text-align: center;
  41. line-height: 20px;
  42. cursor: pointer;
  43. position: relative;
  44. border: 1px solid #ccc;
  45. }
  46. .anew {
  47. width: 100%;
  48. color: whitesmoke;
  49. text-align: center;
  50. background: rgba(0, 0, 0, .5) !important;
  51. padding: 5px 0 5px 0;
  52. position: absolute;
  53. bottom: 0;
  54. }
  55. .cancel-box {
  56. width: 16px;
  57. height: 16px;
  58. user-select: none;
  59. background: black;
  60. position: absolute;
  61. top: -9px;
  62. right: -9px;
  63. border-radius: 50%;
  64. }
  65. .cancel {
  66. color: white;
  67. font-size: 18px;
  68. line-height: 19px;
  69. text-indent: 0px;
  70. position: relative;
  71. left: 2px;
  72. top: -10px;
  73. }
  74. </style>
  75. <div class="all">
  76. <div id="app" v-cloak>
  77. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  78. <div class="vue-head">
  79. <el-radio-group v-model="order_type">
  80. <el-radio-button label="1" @click.native="gotoOther(1)">基础设置</el-radio-button>
  81. <el-radio-button label="2" @click.native="gotoOther(2)">幻灯片</el-radio-button>
  82. <el-radio-button label="3" @click.native="gotoOther(3)">广告位</el-radio-button>
  83. <el-radio-button label="4" @click.native="gotoOther(4)">顶部导航</el-radio-button>
  84. <el-radio-button label="5" @click.native="gotoOther(5)">底部导航</el-radio-button>
  85. <el-radio-button label="6" @click.native="gotoOther(6)">管理员设置</el-radio-button>
  86. </el-radio-group>
  87. </div>
  88. <div class="vue-head" style="margin-top:20px">
  89. <div class="vue-main-title">
  90. <div class="vue-main-title-left"></div>
  91. <div class="vue-main-title-content">管理员设置</div>
  92. </div>
  93. <div class="vue-main-form">
  94. <el-form-item label="管理员" prop="">
  95. <!-- 上传商品 -->
  96. <div class="addImg-box">
  97. <div class="addImg-list" v-for="(item,index) in form.admin" :key="index" >
  98. <div class="itemImg_box">
  99. <img style="width:100px;height:100px" :src="item.avatar" alt="">
  100. <div class="middenTitle" style="line-height: 22px;height:66px;overflow: hidden;text-overflow: ellipsis;">
  101. [[item.nickname]]
  102. </div>
  103. </div>
  104. <div class="cancel-box" @click.stop="clearMember('admin',index)"><i class="cancel">×</i></div>
  105. {{--<div class="anew">点击重新上传</div>--}}
  106. </div>
  107. <div @click.stop="openMember('admin')" class="add-price-img" style="margin-bottom: 50px">
  108. <i class="el-icon-plus"></i>
  109. <div class="select-price">选择会员</div>
  110. </div>
  111. </div>
  112. </el-form-item>
  113. </div>
  114. </div>
  115. <!-- 选择会员 -->
  116. <el-dialog title="选择会员" :visible.sync="member_show" width="50%">
  117. <div>
  118. <el-input v-model="member_keyword" style="width:80%;" placeholder="会员信息"></el-input>
  119. <el-button @click="getMember" >搜索</el-button>
  120. </div>
  121. <el-table :data="member_list" style="width: 100%;height:500px;overflow:auto" v-loading="loading">
  122. <el-table-column label="ID" prop="uid" align="center" ></el-table-column>
  123. <el-table-column label="会员" align="center" >
  124. <template slot-scope="scope">
  125. <div v-if="scope.row.nickname">
  126. <img :src="scope.row.avatar" style="width:30px;height:30px;padding:1px;border:1px solid #ccc;">
  127. <div>[[scope.row.nickname]]</div>
  128. </div>
  129. </template>
  130. </el-table-column>
  131. <el-table-column prop="refund_time" label="操作" align="center" width="320">
  132. <template slot-scope="scope">
  133. <el-button @click="chooseMember(scope.row)">
  134. 选择
  135. </el-button>
  136. </template>
  137. </el-table-column>
  138. </el-table>
  139. <span slot="footer" class="dialog-footer">
  140. <el-button @click="member_show = false">取 消</el-button>
  141. </span>
  142. </el-dialog>
  143. </el-form>
  144. <!-- 分页 -->
  145. <div class="vue-page">
  146. <div class="vue-center">
  147. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  148. <el-button @click="goBack">返回</el-button>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. <script>
  154. var app = new Vue({
  155. el:"#app",
  156. delimiters: ['[[', ']]'],
  157. name: 'test',
  158. data() {
  159. let set= {!!json_encode($set?:'{}') !!}
  160. return{
  161. form:{
  162. admin:set&&set.admin?set.admin:[],
  163. },
  164. order_type:'6',
  165. id:0,
  166. uploadShow:false,
  167. chooseImgName:'',
  168. submit_url:'',
  169. showVisible:false,
  170. loading: false,
  171. areaLoading:false,
  172. street:1,
  173. member_show:false,
  174. member_list:[],
  175. member_keyword:"",
  176. template_list:[],
  177. rules:{
  178. // name:{ required: true, message: '请输入品牌名称'}
  179. },
  180. }
  181. },
  182. created() {
  183. },
  184. mounted() {
  185. },
  186. methods: {
  187. submitForm(formName) {
  188. console.log(this.form)
  189. let that = this;
  190. let json = {
  191. admin:this.form.admin,
  192. };
  193. this.$refs[formName].validate((valid) => {
  194. if (valid) {
  195. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  196. this.$http.post('{!! yzWebFullUrl('plugin.case-library.admin.set.admin') !!}',{set:json}).then(response => {
  197. if (response.data.result) {
  198. this.$message({message: response.data.msg,type: 'success'});
  199. } else {
  200. this.$message({message: response.data.msg,type: 'error'});
  201. }
  202. loading.close();
  203. },response => {
  204. loading.close();
  205. });
  206. }
  207. else {
  208. console.log('error submit!!');
  209. return false;
  210. }
  211. });
  212. },
  213. goBack() {
  214. history.go(-1)
  215. },
  216. gotoOther(type) {
  217. let url = ""
  218. if(type==1) {
  219. // url = '{!! yzWebFullUrl('plugin.case-library.admin.set.basic') !!}'
  220. }
  221. else if(type==2) {
  222. url = '{!! yzWebFullUrl('plugin.case-library.admin.banner.banner-list') !!}'
  223. }
  224. else if(type==3) {
  225. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.advert') !!}'
  226. }
  227. else if(type==4) {
  228. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.nav-top') !!}'
  229. }
  230. else if(type==5) {
  231. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.nav-bottom') !!}'
  232. }
  233. else if(type==6) {
  234. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.admin-view') !!}'
  235. }
  236. if(url) {
  237. window.location.href=url
  238. }
  239. },
  240. openMember(type) {
  241. this.choose_member_type = type;
  242. this.member_show = true;
  243. },
  244. getMember(){
  245. this.$http.post("{!! yzWebUrl('plugin.case-library.admin.set.get-member') !!}",{search:{keyword:this.member_keyword}}).then(response => {
  246. if (response.data.result) {
  247. this.member_list=response.data.data.list;
  248. }else{
  249. this.$message({type: 'error',message: response.data.msg});
  250. }
  251. }, response => {
  252. this.$message({type: 'error',message: response.data.msg});
  253. console.log(response);
  254. });
  255. },
  256. chooseMember(row) {
  257. let that = this;
  258. let has = false;
  259. this.form[this.choose_member_type].forEach((item, index) => {
  260. if(row.uid == item.uid) {
  261. has = true;
  262. }
  263. });
  264. if (has) {
  265. this.$message.error("该会员已选择,请勿重复选择!");
  266. return;
  267. }
  268. that.form[this.choose_member_type].push(row);
  269. console.log(that.form[this.choose_member_type])
  270. },
  271. clearMember(type,index) {
  272. this.form[type].splice(index,1);
  273. this.$forceUpdate();
  274. },
  275. },
  276. })
  277. </script>
  278. @endsection