tabdetail.blade.php 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. @extends('layouts.base')
  2. @section('title', '创建活动')
  3. @section('content')
  4. <style>
  5. .rightlist #app .el-breadcrumb{padding:30px 0;font-size:16px;}
  6. .rightlist #app{margin-left:30px;}
  7. .rightlist-head-con{float:left;padding-right:20px;font-size:16px;color:#888;}
  8. .el-form-item__label{padding-right:30px;}
  9. .el-button{margin-right:30px;}
  10. .attribute-label{display:inline-block;padding:20px 20px 20px 7%;}
  11. /* .el-textarea__inner{height:400px;margin:30px 5%;width:80%;} */
  12. /* 上传图片 */
  13. .avatar-uploader .el-upload {margin-top:15px;border: 1px dashed #d9d9d9;border-radius: 6px;cursor: pointer;position: relative;overflow: hidden;}
  14. .avatar-uploader .el-upload:hover {border-color: #409EFF;}
  15. .avatar-uploader-icon {font-size: 28px;color: #8c939d;width: 178px;height: 178px;line-height: 178px;text-align: center;}
  16. .avatar {width: 178px;height: 178px;display: block;}
  17. .el-upload-tip{width:178px;margin:0;padding:0;color:#999;text-align:center;}
  18. input[type=file] {display: none;}
  19. .avatar-uploader-box{position:relative;width:200px;}
  20. .el-icon-circle-close{position:absolute;top:10px;right:0;color:#999;}
  21. /* 滑块选择小白点 */
  22. .el-switch.is-checked .el-switch__core::after {left: 100%;margin-left: -17px;}
  23. .el-switch__core::after {content: "";position: absolute;top: 1px;left: 1px;border-radius: 100%;transition: all .3s;width: 16px;height: 16px;background-color: #fff;}
  24. .tip{color:#999;font-size:12px;}
  25. .add-tip{font-size:14px;font-weight:600;}
  26. .add-tip span{margin:0 15px;cursor:pointer;color:#409EFF}
  27. .upload-box:hover {
  28. border-color: #29ba9c;
  29. color: #29ba9c;
  30. }
  31. .upload-box {
  32. width: 150px;
  33. height: 150px;
  34. display: flex;
  35. cursor: pointer;
  36. border: 1px dashed #dde2ee;
  37. justify-content: center;
  38. align-items: center;
  39. border-radius: 5px;
  40. flex-direction: column;
  41. }
  42. .upload-boxed {
  43. width: 150px;
  44. height: 150px;
  45. position: relative;
  46. border-radius: 5px;
  47. }
  48. .upload-boxed-text {
  49. position: absolute;
  50. bottom: 0;
  51. line-height: 32px;
  52. color: #fff;
  53. text-align: center;
  54. width: 100%;
  55. background: #000;
  56. opacity: 0.7;
  57. border-radius: 0px 0px 5px 5px;
  58. }
  59. .upload-boxed-list {
  60. display: flex;
  61. position: relative;
  62. border-radius: 5px;
  63. flex-wrap: wrap;
  64. }
  65. .upload-boxed-list-a {
  66. width:150px;
  67. height:150px;
  68. margin:0 10px 5px 0;
  69. position: relative;
  70. }
  71. .upload-boxed-list-a .el-icon-close {
  72. position: absolute;
  73. top: -5px;
  74. right: -5px;
  75. color: #fff;
  76. background: #333;
  77. border-radius: 50%;
  78. cursor: pointer;
  79. }
  80. </style>
  81. <div id="app-add">
  82. <template>
  83. <el-form ref="form" :model="form" :rules="rules" v-loading="loading" label-width="15%">
  84. <el-tabs type="card" v-model="activeName" style="padding: 20px">
  85. <el-tab-pane label="基础设置" name="base_set">@include('Yunshop\ShareActivity::base-set')</el-tab-pane>
  86. <el-tab-pane label="活动信息" name="activity_info">@include('Yunshop\ShareActivity::activity-info')</el-tab-pane>
  87. <el-tab-pane label="分享设置" name="share_set">@include('Yunshop\ShareActivity::share-set')</el-tab-pane>
  88. </el-tabs>
  89. <el-form-item>
  90. {{-- <a href="#">
  91. <el-button type="success" @click="submitForm('form')">提交</el-button>
  92. </a> --}}
  93. <a href="#">
  94. <el-button @click="goBack()">返回列表</el-button>
  95. </a>
  96. </el-form-item>
  97. </el-form>
  98. </template>
  99. <!--弹框上传图片-->
  100. <el-dialog :visible.sync="centerDialogVisible" width="65%" center>
  101. <el-tabs v-model="activeName2" type="card">
  102. <el-tab-pane label="上传图片" name="first">
  103. <div
  104. style="text-align: center"
  105. class="submit_Img"
  106. v-loading="submit_loading"
  107. >
  108. <el-upload
  109. class="avatar-uploader"
  110. action="{{ yzWebFullUrl('plugin.share-store-activity.admin.activity.upload') }}"
  111. accept="image/*"
  112. :show-file-list="false"
  113. :on-success="uploadSuccess"
  114. :before-upload="beforeUpload"
  115. >
  116. <div class="avatar_box" v-if="uploadImg">
  117. <img :src="uploadImg" class="avatar" />
  118. </div>
  119. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  120. </el-upload>
  121. </div>
  122. </el-tab-pane>
  123. <el-tab-pane label="提取网络图片" name="second">
  124. <el-input
  125. v-model="uploadImg"
  126. placeholder="请输入网络图片地址"
  127. style="width:90%"
  128. ></el-input>
  129. <!-- <el-button @click="transform(uploadImg)" v-loading="submit_loading">转换</el-button> -->
  130. </el-tab-pane>
  131. <el-tab-pane label="浏览图片" name="third">
  132. <div>
  133. <el-radio-group v-model="radio1" size="medium" @change="chooseYear">
  134. <el-radio-button label="不限"></el-radio-button>
  135. <el-radio-button label="2019">2019年</el-radio-button>
  136. <el-radio-button label="2018">2018年</el-radio-button>
  137. <el-radio-button label="2017">2017年</el-radio-button>
  138. <el-radio-button label="2016">2016年</el-radio-button>
  139. </el-radio-group>
  140. </div>
  141. <div style="margin-top: 10px;">
  142. <el-radio-group v-model="radio2" size="small" @change="chooseMonth">
  143. <el-radio-button label="不限"></el-radio-button>
  144. <el-radio-button label="1">1月</el-radio-button>
  145. <el-radio-button label="2">2月</el-radio-button>
  146. <el-radio-button label="3">3月</el-radio-button>
  147. <el-radio-button label="4">4月</el-radio-button>
  148. <el-radio-button label="5">5月</el-radio-button>
  149. <el-radio-button label="6">6月</el-radio-button>
  150. <el-radio-button label="7">7月</el-radio-button>
  151. <el-radio-button label="8">8月</el-radio-button>
  152. <el-radio-button label="9">9月</el-radio-button>
  153. <el-radio-button label="10">10月</el-radio-button>
  154. <el-radio-button label="11">11月</el-radio-button>
  155. <el-radio-button label="12">12月</el-radio-button>
  156. </el-radio-group>
  157. </div>
  158. <div id="upload-img" class="imgList" v-loading="submit_loading">
  159. <div class="avatar-uploader-box" v-for="img in ImgList">
  160. <img
  161. @click="chooseTheImg(img.thumb_url)"
  162. :src="img.thumb_url"
  163. class="avatar"
  164. />
  165. <i
  166. class="el-icon-circle-close"
  167. @click="deleteImg(img.id)"
  168. title="点击清除图片"
  169. ></i>
  170. </div>
  171. </div>
  172. <el-pagination
  173. style="margin-top: 10px;text-align: right"
  174. background
  175. @current-change="currentChange"
  176. :page-size="pageSize"
  177. :current-page.sync="current_page"
  178. :total="total"
  179. layout="prev, pager, next"
  180. >
  181. </el-pagination>
  182. </el-tab-pane>
  183. </el-tabs>
  184. <span slot="footer" class="dialog-footer">
  185. <el-button @click="centerDialogVisible = false">取 消</el-button>
  186. <el-button type="primary" @click="sureImg">确 定 </el-button>
  187. </span>
  188. </el-dialog>
  189. <!--end-->
  190. <!--弹框选择图片-->
  191. <el-dialog :visible.sync="goods_show" width="60%" center title="选择商品">
  192. <div>
  193. <div>
  194. <el-form :inline="true" :model="search_goods" class="demo-form-inline">
  195. <el-form-item label="">
  196. <el-input v-model="search_goods.goods_id" placeholder="商品ID"></el-input>
  197. </el-form-item>
  198. <el-form-item label="">
  199. <el-input v-model="search_goods.goods_name" placeholder="商品标题"></el-input>
  200. </el-form-item>
  201. <el-form-item label="">
  202. <el-button type="primary" @click="searchGoods(1)">搜索</el-button>
  203. </el-form-item>
  204. </el-form>
  205. </div>
  206. <el-table :data="goods_list" style="width: 100%;height:500px;overflow:auto" id="goods-list">
  207. <el-table-column label="ID" prop="id" align="center" width="150px">
  208. <template slot-scope="scope">
  209. <el-radio v-model="choosed_goods_id" :label="scope.row.id">&nbsp;</el-radio>
  210. </template>
  211. </el-table-column>
  212. <el-table-column label="商品ID" prop="id" align="center" width="150px"></el-table-column>
  213. <el-table-column label="商品">
  214. <template slot-scope="scope">
  215. <div style="display:flex;align-items: center">
  216. <div style="margin-right:10px">
  217. <el-image :src="scope.row.thumb" style="width:50px;height:50px"></el-image>
  218. </div>
  219. <div style="flex:1">
  220. <div style="color:#333;font-weight:500">[[scope.row.title]]</div>
  221. <div>
  222. <span style="color:red">¥[[scope.row.price]]</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  223. <span style="text-decoration:line-through;color:#888">¥[[scope.row.price]]</span>
  224. </div>
  225. </div>
  226. </div>
  227. </template>
  228. </el-table-column>
  229. </el-table>
  230. <!-- 分页 -->
  231. <div v-show="goods_total>1">
  232. <el-row>
  233. <el-col align="right">
  234. <el-pagination layout="prev, pager, next,jumper" @current-change="searchGoods" :total="total"
  235. :page-size="goods_per_size" :current-page="goods_current_page" background
  236. v-loading="loading"></el-pagination>
  237. </el-col>
  238. </el-row>
  239. </div>
  240. </div>
  241. <span slot="footer" class="dialog-footer">
  242. <el-button @click="goods_show = false">取 消</el-button>
  243. <el-button type="primary" @click="sureGoods">确 定 </el-button>
  244. </span>
  245. </el-dialog>
  246. <!--end-->
  247. </div>
  248. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  249. <script src="{{resource_get('static/yunshop/tinymceTemplate.js')}}"></script>
  250. <script>
  251. var app = new Vue({
  252. el: '#app-add',
  253. delimiters: ['[[', ']]'],
  254. data() {
  255. let set = {!! $set ?: '{}' !!};
  256. let isDiyForm = {!! $isDiyForm ?: '{}' !!};
  257. let activity_id = {!! $id ?: '{}' !!};
  258. console.log(set);
  259. if(set.countdown_time) {
  260. set.countdown_time[0] = set.countdown_time[0]*1000;
  261. set.countdown_time[1] = set.countdown_time[1]*1000;
  262. }
  263. console.log(set.countdown_time);
  264. let obj = {};
  265. if(set.goods_id) {
  266. obj.id = set.goods_id;
  267. }
  268. if(set.goods_title) {
  269. obj.title = set.goods_title;
  270. }
  271. if(set.goods_thumb) {
  272. obj.thumb = set.goods_thumb;
  273. }
  274. return {
  275. //是否显示弹框
  276. centerDialogVisible: false,
  277. content:'',
  278. ImgList: [],
  279. activeName2: "first",
  280. uploadImg: "",
  281. chooseImg: "",
  282. uploadImg1:"",//富文本框上传图片
  283. radio1: "不限", //年
  284. radio2: "不限", //月
  285. loading : false,
  286. pageSize: 0,
  287. current_page: 0,
  288. total: 0,
  289. submit_loading:"",
  290. form : {
  291. 'name' : '',
  292. 'color' : '#409EFF',
  293. 'status' : 0,
  294. 'is_background' : 1,
  295. 'button' : 0,
  296. 'audio_link' : '',
  297. 'service_qr' : '', // 客服二维码
  298. 'service_mobile' : '', // 客服电话
  299. 'order_list' : '', // 购买列表
  300. 'award_list' : '', // 奖励列表
  301. 'countdown_time' : [new Date().getTime(), new Date().getTime() + 7 * 24 * 3600 * 1000],
  302. 'thumb_url' : '',
  303. 'background_thumb' : '',
  304. 'background_thumb_url' : '',
  305. 'share_title' : '',
  306. 'share_content' : '',
  307. 'share_thumb' : '',
  308. 'agreement' : '',
  309. ...set
  310. },
  311. goods : [],
  312. isDiyForm : isDiyForm,
  313. diyform : [],
  314. diyform_info : set.diyform_id ? '[DiyID:' + set.diyform_id + '][名称:' + set.diyform_title + ']' : '',
  315. good : set.goods_id ? '[GID:' + set.goods_id + '][商品名称:' + set.goods_title + ']' : '',
  316. imageUrl : set.goods_thumb ? set.goods_thumb : '{}',
  317. id : activity_id,
  318. activeName : 'base_set',
  319. goods_show:false,
  320. goods_list:[],
  321. search_goods:{},
  322. choosed_goods:obj,
  323. choosed_goods_id:'',
  324. goods_total:1,
  325. goods_current_page:1,
  326. goods_per_size:1,
  327. rules: {
  328. name: [
  329. { required: true, message: '请输入活动名称', trigger: 'blur' },
  330. ],
  331. },
  332. }
  333. },
  334. mounted: function () {
  335. window.addEventListener('beforeunload', e => {
  336. window.onbeforeunload =null
  337. });
  338. },
  339. created(){
  340. this.currentChange(1);
  341. },
  342. methods:{
  343. addContent(name,index) {
  344. console.log(this.$refs[name]);
  345. let ref = this.$refs[name];
  346. let words = "";
  347. words ="(" + '会员昵称' + ")";
  348. console.log(words)
  349. this.insertInputTxt(name,words)
  350. },
  351. insertInputTxt(ref,words) {
  352. let name = "";
  353. name = this.$refs[ref].$refs.textarea;
  354. var startPos = name.selectionStart;
  355. console.log(startPos);
  356. var endPos = name.selectionEnd;
  357. if (startPos === undefined || endPos === undefined) return
  358. var txt = name.value;
  359. var result = txt.substring(0, startPos) + words + txt.substring(endPos)
  360. name.value = result;
  361. name.focus();
  362. name.selectionStart = startPos + words.length;
  363. name.selectionEnd = startPos + words.length;
  364. console.log(name.value)
  365. this.form[ref] = name.value;
  366. },
  367. loadGoods(query) {
  368. console.log(query)
  369. if (query !== '') {
  370. this.loading = true;
  371. this.$http.get("{!! yzWebUrl('plugin.share-store-activity.admin.activity.get-goods', ['keyword' => '']) !!}" + query).then(response => {
  372. this.goods = response.data.data,
  373. this.loading = false;
  374. }, response => {
  375. console.log(response);
  376. });
  377. } else {
  378. this.goods = [];
  379. }
  380. },
  381. loadDiyform(query) {
  382. console.log(query)
  383. if (query !== '') {
  384. this.loading = true;
  385. this.$http.get("{!! yzWebUrl('plugin.share-store-activity.admin.diy-form.getListByTitle', ['keyword' => '']) !!}" + query).then(response => {
  386. console.log(response.data.data);
  387. this.diyform = response.data.data,
  388. this.loading = false;
  389. }, response => {
  390. console.log(response);
  391. });
  392. } else {
  393. this.diyform = [];
  394. }
  395. },
  396. chooseTheImg(img) {
  397. this.form[this.chooseImg] = img;
  398. this.centerDialogVisible = false;
  399. },
  400. chooseYear(year) {
  401. this.currentChange(1);
  402. },
  403. chooseMonth(month) {
  404. this.currentChange(1);
  405. },
  406. openUpload(str) {
  407. this.chooseImg = str;
  408. console.log(this.chooseImg)
  409. this.uploadImg = "";
  410. this.centerDialogVisible = true;
  411. },
  412. sureImg() {
  413. this.form[this.chooseImg] = this.uploadImg;
  414. this.centerDialogVisible = false;
  415. },
  416. uploadSuccess(res, file) {
  417. if (res.result === 1) {
  418. this.uploadImg = res.data.thumb_url;
  419. this.$message.success("上传成功!");
  420. } else {
  421. this.$message.error(res.msg);
  422. }
  423. this.submit_loading = false;
  424. },
  425. // 富文本上传图片
  426. uploadSuccess1(res, file) {
  427. if (res.result === 1) {
  428. this.uploadImg1 = '';
  429. this.uploadImg1 = res.data.thumb_url;
  430. this.$message.success("上传成功!");
  431. // this.insert();
  432. } else {
  433. this.$message.error(res.msg);
  434. }
  435. this.submit_loading = false;
  436. },
  437. beforeUpload(file) {
  438. this.submit_loading = true;
  439. const isLt2M = file.size / 1024 / 1024 < 4;
  440. if (!isLt2M) {
  441. this.$message.error("上传图片大小不能超过 4MB!");
  442. this.submit_loading = false;
  443. }
  444. return isLt2M;
  445. },
  446. clearImg(str) {
  447. this.form[str] = "";
  448. },
  449. deleteImg(id) {
  450. this.submit_loading = true;
  451. this.$http
  452. .post("{!! yzWebFullUrl('plugin.share-store-activity.admin.activity.delLocalImg') !!}", { id: id })
  453. .then(response => {
  454. if (response.data.result === 1) {
  455. this.$message.success("系统删除成功");
  456. this.currentChange(1);
  457. this.submit_loading = false;
  458. } else {
  459. this.$message.error("删除出错");
  460. this.submit_loading = false;
  461. }
  462. })
  463. .catch(err => {
  464. console.error(err);
  465. this.submit_loading = false;
  466. });
  467. },
  468. currentChange(val) {
  469. this.submit_loading = true;
  470. this.$http.post("{!! yzWebFullUrl('plugin.share-store-activity.admin.activity.getLocalList') !!}",{ page: val, year: this.radio1, month: this.radio2 })
  471. .then(response => {
  472. if (response.data.result === 1) {
  473. this.total = response.data.data.list.total;
  474. this.ImgList = response.data.data.list.data;
  475. this.current_page = response.data.data.list.current_page;
  476. this.pageSize = response.data.data.list.per_page;
  477. } else {
  478. this.$message.error(response.data.msg);
  479. }
  480. this.submit_loading = false;
  481. })
  482. .catch(err => {
  483. console.error(err);
  484. this.submit_loading = false;
  485. });
  486. },
  487. // 转化网络地址
  488. transform(url) {
  489. this.submit_loading = true;
  490. this.$http.post("{!! yzWebFullUrl('plugin.share-store-activity.admin.activity.fetch') !!}",{ url:url })
  491. .then(response => {
  492. if (response.data.result === 1) {
  493. this.$message.success("转化成功!");
  494. this.uploadImg = response.data.thumb_url
  495. } else {
  496. this.$message.error(response.data.msg);
  497. this.uploadImg = "";
  498. }
  499. this.submit_loading = false;
  500. })
  501. .catch(err => {
  502. console.error(err);
  503. this.submit_loading = false;
  504. });
  505. },
  506. // 添加关键词
  507. addContent(name,index) {
  508. console.log(this.$refs[name]);
  509. let ref = this.$refs[name];
  510. let words = "";
  511. words ="(" + '会员昵称' + ")";
  512. console.log(words)
  513. this.insertInputTxt(name,words)
  514. },
  515. insertInputTxt(ref,words) {
  516. let name = "";
  517. name = this.$refs[ref].$refs.textarea;
  518. var startPos = name.selectionStart;
  519. console.log(startPos);
  520. var endPos = name.selectionEnd;
  521. if (startPos === undefined || endPos === undefined) return
  522. var txt = name.value;
  523. var result = txt.substring(0, startPos) + words + txt.substring(endPos)
  524. name.value = result;
  525. name.focus();
  526. name.selectionStart = startPos + words.length;
  527. name.selectionEnd = startPos + words.length;
  528. console.log(name.value)
  529. this.form[ref] = name.value;
  530. },
  531. // beforeUpload(file) {
  532. // this.loading = true;
  533. // const isLt2M = file.size / 1024 / 1024 < 2;
  534. // if (!isLt2M) {
  535. // this.$message.error('上传图片大小不能超过 2MB!');
  536. // this.loading = false;
  537. // }
  538. // return isLt2M;
  539. // },
  540. // uploadMainSuccess (res, file){
  541. // if (res.result == 1) {
  542. // this.form.thumb = res.data.thumb;
  543. // this.form.thumb_url = res.data.thumb_url;
  544. // this.$message.success("上传成功!");
  545. // } else {
  546. // this.$message.error(res.msg);
  547. // }
  548. // this.loading = false;
  549. // },
  550. // uploadMainSuccess2 (res, file){
  551. // if (res.result == 1) {
  552. // this.form.background_thumb = res.data.thumb;
  553. // this.form.background_thumb_url = res.data.thumb_url;
  554. // this.$message.success("上传成功!");
  555. // } else {
  556. // this.$message.error(res.msg);
  557. // }
  558. // this.loading = false;
  559. // },
  560. // clearImg () {
  561. // this.form.thumb = "";
  562. // this.form.thumb_url = "";
  563. // },
  564. // clearImg2 () {
  565. // this.form.background_thumb = "";
  566. // this.form.background_thumb_url = "";
  567. // },
  568. openGoods() {
  569. this.goods_show = true;
  570. this.choosed_goods_id = this.form.goods_id;
  571. },
  572. changeGoods(val,val1) {
  573. console.log(val,val1)
  574. },
  575. searchGoods(val) {
  576. let loading = this.$loading({target:document.querySelector("#goods-list"),background: 'rgba(0, 0, 0, 0)'});
  577. this.$http.post("{!! yzWebUrl('plugin.share-store-activity.admin.activity.get-goods') !!}",{page:val,keyword:this.search_goods.goods_name,goods_id:this.search_goods.goods_id}).then(response => {
  578. if(response.data.result == 1) {
  579. this.goods_list = response.data.data.data,
  580. this.goods_list.forEach((item,index) => {
  581. item.title = this.escapeHTML(item.title)
  582. });
  583. this.goods_total = response.data.data.total;
  584. this.goods_current_page = response.data.data.current_page;
  585. this.goods_per_size = response.data.data.per_page;
  586. this.loading = false;
  587. }
  588. else {
  589. this.$message.error(response.data.msg)
  590. }
  591. loading.close();
  592. }, response => {
  593. console.log(response);
  594. loading.close();
  595. });
  596. },
  597. sureGoods() {
  598. this.form.goods_id = this.choosed_goods_id;
  599. this.choosed_goods = {};
  600. let obj = this.goods_list.find((item,index) => {
  601. return item.id == this.choosed_goods_id;
  602. })
  603. this.choosed_goods = obj;
  604. console.log(this.choosed_goods);
  605. this.goods_show = false;
  606. },
  607. clearImg(name) {
  608. this.form[name] = "";
  609. this.choosed_goods = {};
  610. this.choosed_goods_id = "";
  611. this.$forceUpdate();
  612. },
  613. goBack() {
  614. history.back(-1);
  615. },
  616. submitForm(form) {
  617. if(this.form.countdown_time){
  618. this.form.countdown_time[0] = Math.round(this.form.countdown_time[0]/1000).valueOf();
  619. this.form.countdown_time[1] = Math.round(this.form.countdown_time[1]/1000).valueOf();
  620. }
  621. else{
  622. this.form.countdown_time = [];
  623. this.form.countdown_time.push(new Date().getTime()/1000,(new Date().getTime() + 7 * 24 * 3600 * 1000)/1000)
  624. }
  625. delete(this.form.goods)
  626. delete(this.form.browse_count)
  627. delete(this.form.end_time)
  628. delete(this.form.diy_form)
  629. delete(this.form.browse)
  630. delete(this.form.diyform_title)
  631. delete(this.form.goods_thumb)
  632. delete(this.form.goods_title)
  633. delete(this.form.created_at)
  634. delete(this.form.updated_at)
  635. delete(this.form.has_one_good)
  636. console.log(this.form);
  637. this.$refs[form].validate((valid) => {
  638. if (valid) {
  639. this.loading = true;
  640. this.$http.post("{!! yzWebFullUrl('plugin.share-store-activity.admin.activity.add') !!}",{'form':this.form, 'id':this.id}).then(response => {
  641. if (response.data.result) {
  642. this.$message({message: "操作成功",type: 'success'});
  643. window.location.href='{!! yzWebFullUrl('plugin.share-store-activity.admin.activity.index') !!}';
  644. }
  645. else {
  646. this.$message({message: response.data.msg,type: 'error'});
  647. this.loading = false;
  648. }
  649. },response => {
  650. this.$message({message: response.data.msg,type: 'error'});
  651. this.loading = false;
  652. });
  653. } else {
  654. console.log('error submit!!');
  655. return false;
  656. }
  657. });
  658. },
  659. // 字符转义
  660. escapeHTML(a) {
  661. a = "" + a;
  662. return a.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&apos;/g, "'");;
  663. },
  664. },
  665. });
  666. </script>
  667. <style>
  668. /*弹窗上传图片*/
  669. #upload-img .avatar {
  670. width: 100px;
  671. height: 100px;
  672. display: block;
  673. }
  674. #upload-img .avatar-uploader-box {
  675. position: relative;
  676. margin: 20px 0 0 10px;
  677. width: 110px;
  678. }
  679. #upload-img .el-icon-circle-close {
  680. position: absolute;
  681. top: -7px;
  682. right: 1px;
  683. color: #999;
  684. }
  685. .imgList {
  686. display: flex;
  687. flex-wrap: wrap;
  688. margin: 10px auto;
  689. }
  690. </style>
  691. @endsection