case-add.blade.php 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663
  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. <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. <div class="vue-crumbs">
  14. <a @click="goParent(1)">案例库</a>
  15. > 编辑案例
  16. </div>
  17. <el-form ref="form" :model="form" :rules="rules" 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="case_name">
  25. <el-input v-model="form.case_name" style="width:70%;" maxlength="15" show-word-limit></el-input>
  26. </el-form-item>
  27. <el-form-item label="案例图标/二维码" prop="thumb">
  28. <div style="display:flex;width:70%">
  29. <div style="flex:1">
  30. <div class="upload-box" @click="openUpload('img')" v-if="!form.img_src">
  31. <i class="el-icon-plus" style="font-size:32px"></i>
  32. </div>
  33. <div @click="openUpload('img')" class="upload-boxed" v-if="form.img_src" style="height:150px">
  34. <img :src="form.img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  35. <i class="el-icon-close" @click.stop="clearImg('img')" title="点击清除图片"></i>
  36. <div class="upload-boxed-text">点击重新上传</div>
  37. </div>
  38. <div style="width:150px;text-align:center;color:#000">图标</div>
  39. </div>
  40. <div style="flex:1">
  41. <div class="upload-box" @click="openUpload('img_h5')" v-if="!form.img_h5_src">
  42. <i class="el-icon-plus" style="font-size:32px"></i>
  43. </div>
  44. <div @click="openUpload('img_h5')" class="upload-boxed" v-if="form.img_h5_src" style="height:150px">
  45. <img :src="form.img_h5_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  46. <i class="el-icon-close" @click.stop="clearImg('img_h5')" title="点击清除图片"></i>
  47. <div class="upload-boxed-text">点击重新上传</div>
  48. </div>
  49. <div style="width:150px;text-align:center;color:#000">公众号/H5</div>
  50. </div>
  51. <div style="flex:1">
  52. <div class="upload-box" @click="openUpload('img_mini')" v-if="!form.img_mini_src">
  53. <i class="el-icon-plus" style="font-size:32px"></i>
  54. </div>
  55. <div @click="openUpload('img_mini')" class="upload-boxed" v-if="form.img_mini_src" style="height:150px">
  56. <img :src="form.img_mini_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  57. <i class="el-icon-close" @click.stop="clearImg('img_mini')" title="点击清除图片"></i>
  58. <div class="upload-boxed-text">点击重新上传</div>
  59. </div>
  60. <div style="width:150px;text-align:center;color:#000">微信小程序</div>
  61. </div>
  62. </div>
  63. <div class="tip">请上传正方形图片</div>
  64. </el-form-item>
  65. <el-form-item label="案例发布者" prop="member_id">
  66. <div class="upload-box" @click="openMember('member_id')" v-if="!form.member_id">
  67. <div class="upload-box-member">
  68. <i class="el-icon-plus" style="font-size:32px"></i><br>
  69. 选 择
  70. </div>
  71. </div>
  72. <div class="upload-boxed" v-if="form.member_id">
  73. <img @click="openMember('member_id')" :src="form.member.avatar" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;" />
  74. <div @click="openMember('member_id')" class="upload-boxed-text">重新选择</div>
  75. <div class="upload-boxed-text-clear" @click="clearMember('member_id')">清除选择</div>
  76. <div style="text-align:center;line-height: 20px;">[[form.member.nickname]]</div>
  77. </div>
  78. </el-form-item>
  79. <el-form-item label="案例分类" prop="category">
  80. <div style="margin:10px 0" v-for="(item,index) in form.category" :key="item.id" >
  81. <el-select v-model="item.category_first" placeholder="请选择一级分类" clearable @change="changeCategory(index)" style="width:35%">
  82. <el-option v-for="(item2,index2) in allCategory" :key="item2.id" :label="item2.category_name" :value="item2.id"></el-option>
  83. </el-select>
  84. {{--<el-select v-model="item.category_second" placeholder="请选择二级分类" clearable style="width:35%">--}}
  85. {{--<el-option v-for="item in city_list" :key="item.id" :label="item.areaname" :value="item.id"></el-option>--}}
  86. {{--</el-select>--}}
  87. <template v-for="(item3,index3) in allCategory" v-if="item3.id == item.category_first">
  88. <el-select v-model="item.category_second" placeholder="请选择二级分类" clearable style="width:35%">
  89. <el-option v-for="item4 in item3.sub_category" :key="item4.id" :label="item4.category_name" :value="item4.id"></el-option>
  90. </el-select>
  91. </template>
  92. <el-button type="danger" @click="delCategory(index)">删除</el-button>
  93. </div>
  94. <el-button type="primary" @click="addCategory">添加分类</el-button>
  95. </el-form-item>
  96. <el-form-item label="案例描述" prop="desc">
  97. <el-input type="textarea" rows="5" v-model="form.desc" style="width:70%;"></el-input>
  98. </el-form-item>
  99. <el-form-item label="案例介绍" prop="content">
  100. <tinymceee v-model="form.content" style="width:70%"></tinymceee>
  101. </el-form-item>
  102. <el-form-item label="标签" prop="label">
  103. <!-- 回显选择标签-->
  104. <div v-if="form.label">
  105. {{--<el-tag closable :disable-transitions="false" @close="handleClose(tag)">--}}
  106. {{--[[form.label]]--}}
  107. {{--</el-tag>--}}
  108. <el-tag closable :disable-transitions="false" @close="handleClose(index)" v-for="(item,index) in form.label" :key="item.id" >
  109. [[item.label_name]]
  110. </el-tag>
  111. </div>
  112. <el-popover placement="top" width="200" v-model="label_show">
  113. <el-input v-model="label_word" size="mini" placeholder="请输入标签名"></el-input>
  114. <div style="text-align: right; margin: 10px 0">
  115. <el-button size="mini" type="text" @click="label_show = false">取消</el-button>
  116. <el-button type="primary" size="mini" @click="sureAddLabel">确定</el-button>
  117. </div>
  118. <el-button plain type="primary" slot="reference" icon="el-icon-plus" size="small">添加标签</el-button>
  119. </el-popover>
  120. <el-popover placement="right" width="400" v-model="history_show">
  121. <div>
  122. <el-input v-model="label_word1" size="mini" placeholder="请输入标签名" style="width:70%"></el-input>
  123. <el-button type="primary" size="mini" @click="getLabel()">搜索</el-button>
  124. </div>
  125. <div class="label-history" style="min-height:200px;overflow:auto;margin:10px 0;">
  126. <!-- 循环标签 -->
  127. <div style="display:flex;flex-wrap:wrap">
  128. <div v-for="(item,index) in label_list" :key="index" :style="{color:item.label_name==form.label?'#29BA9C':''}" style="margin:5px 10px;font-weight: 400;cursor: pointer;">
  129. <span @click="chooseLabel(item)">
  130. [[item.label_name]]
  131. </span>
  132. <el-button size="mini" type="info" icon="el-icon-delete" circle @click="delLabel(item,index)"></el-button>
  133. </div>
  134. </div>
  135. </div>
  136. <el-row>
  137. <el-col align="right">
  138. <el-pagination layout="prev, pager, next,jumper" @current-change="getLabel" :total="label_total"
  139. :page-size="label_per_page" :current-page="label_current_page" background
  140. ></el-pagination>
  141. </el-col>
  142. </el-row>
  143. <el-button type="text" slot="reference" @click="getLabel()" size="small" style="color:#ff9b19;margin-left:20px">历史标签</el-button>
  144. </el-popover>
  145. </el-form-item>
  146. <el-form-item label="案例所在省市">
  147. <el-select v-model="form.province_id" placeholder="请选择省" clearable @change="changeProvince" style="width:35%">
  148. <el-option v-for="item in province_list" :key="item.id" :label="item.areaname" :value="item.id"></el-option>
  149. </el-select>
  150. <el-select v-model="form.city_id" placeholder="请选择市" clearable style="width:35%">
  151. <el-option v-for="item in city_list" :key="item.id" :label="item.areaname" :value="item.id"></el-option>
  152. </el-select>
  153. </el-form-item>
  154. <el-form-item label="是否启用" prop="is_open">
  155. <el-switch v-model="form.is_open" :active-value="1" :inactive-value="0"></el-switch>
  156. </el-form-item>
  157. <el-form-item label="首页推荐" prop="is_recommend">
  158. <el-switch v-model="form.is_recommend" :active-value="1" :inactive-value="0"></el-switch>
  159. </el-form-item>
  160. <el-form-item label="热门推荐" prop="is_hot">
  161. <el-switch v-model="form.is_hot" :active-value="1" :inactive-value="0"></el-switch>
  162. </el-form-item>
  163. <el-form-item label="案例截图" prop="thumb">
  164. <div class="upload-boxed-list">
  165. <div class="upload-boxed-list-a" style="" v-for="(item,index) in form.screen_shot_src" :key="index">
  166. <img :src="item" alt="" style="width:150px;height:150px;border-radius: 5px;">
  167. <i class="el-icon-close" @click="clearImgList('screen_shot',index)" title="点击清除图片"></i>
  168. </div>
  169. <div class="upload-box" @click="openListUpload('screen_shot')">
  170. <i class="el-icon-plus" style="font-size:32px"></i>
  171. </div>
  172. <!-- <div class="upload-boxed-text">点击重新上传</div> -->
  173. </div>
  174. <div class="tip">建议尺寸: 640*1136px</div>
  175. </el-form-item>
  176. <el-form-item label="PC模板2首页推荐" prop="pc_temp">
  177. <el-switch v-model="form.pc_temp" :active-value="1" :inactive-value="0"></el-switch>
  178. </el-form-item>
  179. <el-form-item label="banner图" prop="" v-if="form.pc_temp">
  180. <div style="flex:1">
  181. <div class="upload-box" @click="openUpload('pc_temp_img')" v-if="!form.pc_temp_img_src">
  182. <i class="el-icon-plus" style="font-size:32px"></i>
  183. </div>
  184. <div @click="openUpload('pc_temp_img')" class="upload-boxed" v-if="form.pc_temp_img_src" style="height:150px">
  185. <img :src="form.pc_temp_img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  186. <i class="el-icon-close" @click.stop="clearImg('pc_temp_img')" title="点击清除图片"></i>
  187. <div class="upload-boxed-text">点击重新上传</div>
  188. </div>
  189. </div>
  190. <div class="tip">建议尺寸: 1200*312<br>在pc端模板2首页显示</div>
  191. </el-form-item>
  192. </div>
  193. </div>
  194. </el-form>
  195. <!-- 分页 -->
  196. <div class="vue-page">
  197. <div class="vue-center">
  198. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  199. <el-button @click="goBack">返回</el-button>
  200. </div>
  201. </div>
  202. <!-- 选择会员 -->
  203. <el-dialog title="选择会员" :visible.sync="member_show" width="60%">
  204. <div>
  205. <el-input v-model="member_keyword" style="width:60%;" placeholder="会员信息"></el-input>
  206. <el-button @click="getMember" >搜索</el-button>
  207. </div>
  208. <el-table :data="member_list" style="width: 100%;height:500px;overflow:auto" v-loading="loading">
  209. <el-table-column label="ID" prop="uid" align="center" width="100px"></el-table-column>
  210. <el-table-column label="会员信息">
  211. <template slot-scope="scope">
  212. <div style="display:flex;align-items: center;">
  213. <div v-if="scope.row.avatar_image" style="width:40px;">
  214. <el-image :src="scope.row.avatar_image" alt="" style="width:40px;height:40px;border-radius:50%"></el-image>
  215. </div>
  216. <div style="flex:1;">【id:[[scope.row.uid]]】[[scope.row.nickname]]</div>
  217. </div>
  218. </template>
  219. </el-table-column>
  220. <el-table-column prop="refund_time" label="操作" align="center" width="320">
  221. <template slot-scope="scope">
  222. <el-button @click="chooseMember(scope.row)">
  223. 选择
  224. </el-button>
  225. </template>
  226. </el-table-column>
  227. </el-table>
  228. <span slot="footer" class="dialog-footer">
  229. <el-button @click="member_show = false">取 消</el-button>
  230. </span>
  231. </el-dialog>
  232. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  233. <upload-img-list :upload-list-show="uploadListShow" :name="chooseImgListName" @replace="changeListProp" @sure="sureImgList"></upload-img-list>
  234. <pop :show="show" @replace="changeLink" @add="parHref"></pop>
  235. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  236. </div>
  237. </div>
  238. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  239. <!-- <script src="{{resource_get('static/yunshop/tinymceTemplate.js')}}"></script> -->
  240. @include('public.admin.tinymceee')
  241. @include('public.admin.uploadImg')
  242. @include('public.admin.uploadImgList')
  243. @include('public.admin.pop')
  244. @include('public.admin.program')
  245. <script>
  246. var app = new Vue({
  247. el:"#app",
  248. delimiters: ['[[', ']]'],
  249. name: 'test',
  250. data() {
  251. let allCategory = {!! json_encode($allCategory) !!};
  252. return{
  253. member_show:false,
  254. label_show:false,
  255. member_keyword:"",
  256. label_word:"",
  257. label_word1:'',
  258. member_list:[],
  259. show:false,//是否开启公众号弹窗
  260. pro:false ,//是否开启小程序弹窗
  261. chooseLink:'',
  262. chooseMiniLink:'',
  263. id:0,
  264. allCategory:allCategory,
  265. province_list:{},
  266. city_list:{},
  267. form:{
  268. case_name:'',
  269. img:'',
  270. img_src:'',
  271. img_h5:'',
  272. img_h5_src:'',
  273. img_mini:'',
  274. img_mini_src:'',
  275. member_id:0,
  276. member:{},
  277. desc:'',
  278. content:'',
  279. is_open:0,
  280. is_recommend:0,
  281. is_hot:0,
  282. province_id:"",
  283. city_id:"",
  284. screen_shot:[],
  285. screen_shot_src:[],
  286. category:[],
  287. label:[],
  288. pc_temp:0,
  289. pc_temp_img:'',
  290. pc_temp_img_src:'',
  291. },
  292. uploadShow:false,
  293. chooseImgName:'',
  294. uploadListShow:false,
  295. chooseImgListName:'',
  296. submit_url:'',
  297. showVisible:false,
  298. areaLoading:false,
  299. history_show:false,
  300. label_list:[],
  301. label_total:0,
  302. label_per_page:0,
  303. label_current_page:0,
  304. loading: false,
  305. uploadImg1:'',
  306. rules:{
  307. // display_order:{ required: true, message: '请输入排序'},
  308. // name:{ required: true, message: '请输入幻灯片标题'},
  309. // thumb:{ required: true, message: '请选择幻灯片图片'},
  310. // link:{ required: true, message: '请选择幻灯片链接'},
  311. // min_link:{ required: true, message: '请选择小程序链接'},
  312. },
  313. }
  314. },
  315. created() {
  316. },
  317. mounted() {
  318. this.initProvince();
  319. this.initCity(this.form.province_id);
  320. },
  321. methods: {
  322. getParam(name) {
  323. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  324. var r = window.location.search.substr(1).match(reg);
  325. if (r != null) return unescape(r[2]);
  326. return null;
  327. },
  328. goParent(level) {
  329. if(level==1) {
  330. window.location.href = `{!! yzWebFullUrl('plugin.case-library.admin.set.basic') !!}`;
  331. }
  332. else if(level==2) {
  333. window.location.href = ``;
  334. }
  335. else if(level==3) {
  336. window.location.href = ``;
  337. }
  338. },
  339. openMember(type) {
  340. this.member_show = true;
  341. this.choose_member_type = type;
  342. },
  343. getMember(){
  344. this.$http.post("{!! yzWebUrl('plugin.case-library.admin.case.get-member') !!}",{member :this.member_keyword}).then(response => {
  345. if (response.data.result) {
  346. this.member_list=response.data.data
  347. }else{
  348. this.$message({type: 'error',message: response.data.msg});
  349. }
  350. }, response => {
  351. this.$message({type: 'error',message: response.data.msg});
  352. console.log(response);
  353. });
  354. },
  355. chooseMember(row) {
  356. let that = this;
  357. if(this.choose_member_type !="salers") {
  358. if(this.choose_member_type == "boss_uid") {
  359. this.choosed_boss = row;
  360. }
  361. else if(this.choose_member_type == "uid") {
  362. this.choosed_store = row;
  363. }
  364. this.form[this.choose_member_type] = row.uid;
  365. this.form.member['nickname'] = row.nickname;
  366. this.form.member['avatar'] = row.avatar;
  367. this.member_show = false;
  368. console.log(this.form)
  369. }
  370. // 多选
  371. else {
  372. for(let i in this.form.salers) {
  373. if(row.uid == i) {
  374. this.$message.error("该会员已选择,请勿重复选择!");
  375. return;
  376. }
  377. }
  378. that.form.salers[row.uid] = row;
  379. console.log(this.form.salers)
  380. }
  381. },
  382. clearMember(type) {
  383. if(this.choose_member_type == "boss_uid") {
  384. this.choosed_boss = {};
  385. }
  386. else if(this.choose_member_type == "uid") {
  387. this.choosed_store = {};
  388. }
  389. this.form[type] = "";
  390. this.$forceUpdate();
  391. },
  392. submitForm(formName) {
  393. let json = {
  394. case:{
  395. case_name:this.form.case_name,
  396. img:this.form.img,
  397. img_mini:this.form.img_mini,
  398. img_h5:this.form.img_h5,
  399. member_id:this.form.member_id,
  400. desc:this.form.desc,
  401. content:this.form.content,
  402. is_open:this.form.is_open || 0,
  403. is_recommend:this.form.is_recommend || 0,
  404. is_hot:this.form.is_hot || 0,
  405. province_id:this.form.province_id,
  406. city_id:this.form.city_id,
  407. screen_shot:this.form.screen_shot,
  408. pc_temp:this.form.pc_temp,
  409. pc_temp_img:this.form.pc_temp_img,
  410. },
  411. label:[],
  412. category:[]
  413. };
  414. this.form.label.forEach((item,index) => {
  415. json.label.push(item.id);
  416. });
  417. this.form.category.forEach((item,index) => {
  418. json.category.push({category_first:item.category_first,category_second:item.category_second});
  419. });
  420. this.$refs[formName].validate((valid) => {
  421. if (valid) {
  422. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  423. this.$http.post('{!! yzWebFullUrl('plugin.case-library.admin.case.case-add') !!}',json).then(response => {
  424. if (response.data.result) {
  425. this.$message({type: 'success',message: '操作成功!'});
  426. // this.goBack();
  427. } else {
  428. this.$message({message: response.data.msg,type: 'error'});
  429. }
  430. loading.close();
  431. },response => {
  432. loading.close();
  433. });
  434. }
  435. else {
  436. console.log('error submit!!');
  437. return false;
  438. }
  439. });
  440. },
  441. goBack() {
  442. history.go(-1)
  443. },
  444. openUpload(str) {
  445. this.chooseImgName = str;
  446. this.uploadShow = true;
  447. },
  448. changeProp(val) {
  449. if(val == true) {
  450. this.uploadShow = false;
  451. }
  452. else {
  453. this.uploadShow = true;
  454. }
  455. },
  456. sureImg(name,image,image_url) {
  457. this.form[name] = image;
  458. this.form[name+'_src'] = image_url;
  459. },
  460. clearImg(str) {
  461. this.form[str] = "";
  462. this.form[str+'_src'] = "";
  463. this.$forceUpdate();
  464. },
  465. //弹窗显示与隐藏的控制
  466. changeLink(item){
  467. this.show=item;
  468. },
  469. //当前链接的增加
  470. parHref(child,confirm){
  471. this.show=confirm;
  472. // this.form.link=child;
  473. this.form[this.chooseLink] = child;
  474. },
  475. changeprogram(item){
  476. this.pro=item;
  477. },
  478. parpro(child,confirm){
  479. this.pro=confirm;
  480. // this.form.prolink=child;
  481. this.form[this.chooseMiniLink] = child;
  482. },
  483. showLink(type,name) {
  484. if(type=="link") {
  485. this.chooseLink = name;
  486. this.show = true;
  487. }
  488. else {
  489. this.chooseMiniLink = name;
  490. this.pro = true;
  491. }
  492. },
  493. getLabel() {
  494. let url = "{!! yzWebFullUrl('plugin.case-library.admin.case.get-label') !!}";
  495. let loading = this.$loading({target:document.querySelector(".label-history"),background: 'rgba(0, 0, 0, 0)'});
  496. this.$http.post(url,{label_kwd:this.label_word1}).then(function (response) {
  497. if (response.data.result){
  498. console.log(response.data.data);
  499. this.label_list = response.data.data.list.data;
  500. this.label_total = response.data.data.list.total;
  501. this.label_per_page = response.data.data.list.per_page;
  502. this.label_current_page = response.data.data.list.current_page;
  503. }
  504. else {
  505. this.$message({message: response.data.msg,type: 'error'});
  506. }
  507. loading.close();
  508. },function (response) {
  509. this.$message({message: response.data.msg,type: 'error'});
  510. loading.close();
  511. }
  512. );
  513. },
  514. sureAddLabel() {
  515. if(this.label_word == "") {
  516. this.$message.error("请输入标签")
  517. return;
  518. }
  519. this.$http.post("{!! yzWebFullUrl('plugin.case-library.admin.case.add-label') !!}",{label_name:this.label_word}).then(response => {
  520. if (response.data.result) {
  521. this.$message({type: 'success',message: '操作成功!'});
  522. this.form.label.push({id:response.data.data.id,label_name:this.label_word});
  523. } else {
  524. this.$message({message: response.data.msg,type: 'error'});
  525. }
  526. },response => {
  527. });
  528. },
  529. handleClose(index) {
  530. this.form.label.splice(index,1);
  531. },
  532. chooseLabel(item) {
  533. console.log(item);
  534. this.history_show = false;
  535. this.form.label.push({id:item.id,label_name:item.label_name});
  536. },
  537. delLabel(item,index) {
  538. this.$http.post("{!! yzWebFullUrl('plugin.case-library.admin.case.del-label') !!}",{id:item.id}).then(response => {
  539. if (response.data.result) {
  540. this.$message({type: 'success',message: '操作成功!'});
  541. this.label_list.splice(index,1);
  542. let del_index = null;
  543. this.form.label.forEach((item1,index1) => {
  544. if (item1.id == item.id) {
  545. del_index = index1;
  546. }
  547. });
  548. if (del_index != null) {
  549. this.form.label.splice(del_index,1);
  550. }
  551. } else {
  552. this.$message({message: response.data.msg,type: 'error'});
  553. }
  554. },response => {
  555. });
  556. },
  557. initProvince(val) {
  558. // console.log(val);
  559. this.areaLoading = true;
  560. this.$http.get("{!! yzWebUrl('area.list.init', ['area_ids'=>'']) !!}"+val).then(response => {
  561. this.province_list = response.data.data;
  562. this.areaLoading = false;
  563. }, response => {
  564. this.areaLoading = false;
  565. });
  566. },
  567. initCity(val) {
  568. // console.log(val);
  569. this.areaLoading = true;
  570. this.$http.get("{!! yzWebUrl('area.list', ['parent_id'=>'']) !!}"+val).then(response => {
  571. this.city_list = response.data.data;
  572. this.areaLoading = false;
  573. }, response => {
  574. this.areaLoading = false;
  575. });
  576. },
  577. changeProvince(val) {
  578. this.city_list = [];
  579. this.district_list = [];
  580. this.street_list = [];
  581. this.form.city_id = "";
  582. this.areaLoading = true;
  583. let url = "<?php echo yzWebUrl('area.list', ['parent_id'=> '']); ?>" + val;
  584. this.$http.get(url).then(response => {
  585. if (response.data.data.length) {
  586. this.city_list = response.data.data;
  587. } else {
  588. this.city_list = null;
  589. }
  590. this.areaLoading = false;
  591. }, response => {
  592. this.areaLoading = false;
  593. });
  594. },
  595. addCategory(){
  596. this.form.category.push({category_first:"",category_second:""});
  597. },
  598. changeCategory(index) {
  599. this.form.category[index].category_second = "";
  600. },
  601. delCategory(index) {
  602. this.form.category.splice(index,1);
  603. },
  604. openListUpload(str) {
  605. this.chooseImgListName = str;
  606. this.uploadListShow = true;
  607. },
  608. changeListProp(val) {
  609. if(val == true) {
  610. this.uploadListShow = false;
  611. }
  612. else {
  613. this.uploadListShow = true;
  614. }
  615. },
  616. sureImgList(name,image,image_url) {
  617. console.log(name)
  618. console.log(image)
  619. console.log(image_url)
  620. if(!this.form[name] || !this.form[name+'_src']) {
  621. this.form[name] = [];
  622. this.form[name+'_src'] = [];
  623. }
  624. image.forEach((item,index) => {
  625. this.form[name].push(item);
  626. this.form[name+'_src'].push(image_url[index]);
  627. })
  628. console.log(this.form)
  629. },
  630. clearImgList(str,index) {
  631. this.form[str].splice(index,1);
  632. this.form[str+'_src'].splice(index,1);
  633. this.$forceUpdate();
  634. },
  635. },
  636. })
  637. </script>
  638. @endsection