| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838 |
- @extends('layouts.base')
- @section('title', "活动创建")
- @section('content')
- <style>
- .rightlist #app .rightlist-head{line-height:50px;padding:15px 0;}
- .rightlist #app{margin-left:30px;}
- .rightlist #app .el-breadcrumb{padding:30px 0;font-size:16px;}
- .el-form-item__label{padding-right:30px;}
- .tip{font-size:12px;color:#999;font-weight:500}
- .rightlist-head-con{padding-right:20px;font-size:16px;color:#888;}
- /* .rightlist-head-con{float:left;padding-right:20px;font-size:16px;color:#888;} */
- .el-tag{font-weight:700;font-size:15px;margin-bottom:30px;}
- .el-icon-edit{font-size:16px;padding:0 15px;color:#409EFF;cursor: pointer;}
- /* 滑块选择小白点 */
- .el-switch.is-checked .el-switch__core::after {left: 100%;margin-left: -17px;}
- .el-switch__core::after {content: "";position: absolute;top: 1px;left: 1px;border-radius: 100%;transition: all .3s;width: 16px;height: 16px;background-color: #fff;}
- .tip1{font-size:12px;color:red;font-weight:500}
- [v-cloak]{
- display:none;
- }
- /* css */
- .goods-info{display:inline-block;line-height:18px;font-size:13px;padding-left:10px;font-weight:600}
- .end-time{display:inline-block;padding-right:30px;font-size: 14px;color: #333;font-weight:400}
- .level-box{padding:10px;background:#e9e9e9;width:70%;}
- .setting-display{display:inline-block;font-weight:500;font-size:14px;margin-left:30px;}
- .title-t{border-bottom:1px solid #e9e9e9;}
- .add-tip{font-size:14px;font-weight:600;}
- .add-tip span{margin:0 15px;cursor:pointer;color:#409EFF}
- .list-title{display:flex;width:100%;background:#f9f9f9;padding:15px 10px;font-weight:900;border:1px solid #e9e9e9;}
- .list-title-head{flex:1;display:flex;align-items:center;justify-content: center;}
- .list-con{display:flex;flex;align-items:center;justify-content: center;padding:10px 0;border-bottom:1px solid #e9e9e9;}
- .list-con-price{flex:1;display:flex;flex;align-items:center;justify-content: center;}
- .input1 .el-input-group__append, .el-input-group__prepend {padding: 0 5px;}
- .input1 .el-input-group__append {padding: 5;}
- </style>
- <div class="rightlist">
- <div id="app" v-cloak v-loading="loading">
- <el-breadcrumb separator-class="el-icon-arrow-right">
- <el-breadcrumb-item><a href="{{ yzWebFullUrl('plugin.fight-groups.admin.controllers.fight-groups.index') }}">活动列表</a></el-breadcrumb-item>
- <el-breadcrumb-item>添加修改</el-breadcrumb-item>
- </el-breadcrumb>
- <template>
- <el-form ref="form" :model="form" :rules="rules" label-width="15%">
- <div v-show="step==1">
- <div style="margin-left:15%;">
- <div class="tip1">注意:活动创建后,请勿对该商品进行修改规格、下架、删除等操作,否则影响下单购买,活动结束可正常编辑该商品!</div>
- </div>
- <el-form-item label="活动商品" prop="">
- <el-input v-model="has_one_goods.title?'【ID:'+has_one_goods.id+'】'+has_one_goods.title:has_one_goods.title" style="width:70%" disabled></el-input>
- <el-button @click="add" type="primary" :disabled="is_edit">选择商品</el-button>
- <div v-if="has_one_goods.title">
- <img :src="has_one_goods.thumb" style="width:70px;height:70px;">
- <div class="goods-info">
- <div>[[has_one_goods.title]]</div>
- <div>库存:[[has_one_goods.stock]]([[has_one_goods.sku]])</div>
- <div>价格:¥[[has_one_goods.price]]</div>
- </div>
- </div>
- </el-form-item>
- <el-form-item label="活动标题" prop="title">
- <el-input v-model="form.title" style="width:70%" ></el-input>
- </el-form-item>
- <el-form-item label="开始时间" prop="assessed_at">
- <el-row>
- <el-col :span="8">
- <el-date-picker v-model="form.start_time" type="datetime" format="yyyy-MM-dd HH:mm:ss"
- value-format="timestamp" placeholder="选择开始时间" style="width:90%" :disabled="is_edit"></el-date-picker>
- </el-col>
- <el-col :span="10">
- <div class="end-time">结束时间</div>
- <el-date-picker v-model="form.end_time" type="datetime" format="yyyy-MM-dd HH:mm:ss"
- value-format="timestamp" placeholder="选择结束时间" style="width:70%" :disabled="is_edit"></el-date-picker>
- </el-col>
- <el-col :span="24">
- <div class="tip1">说明:结束时间可不填,若不填商品详情页也不展示结束时间;不填则活动不会自动结束,需手动结束。</div>
- </el-col>
- </el-row>
- </el-form-item>
- <el-form-item label="拼团层级" prop="worth">
- <!-- 表格start -->
- <div class="level-box">
- <el-table :data="form.has_many_level" style="width: 100%">
- <el-table-column prop="level_num" label="层级" width="80" align="center"></el-table-column>
- <el-table-column prop="member_num" label="拼团人数" min-width="100">
- <template slot-scope="scope">
- <el-input v-model="scope.row.member_num" :disabled="is_edit">
- <template slot="append">人</template>
- </el-input>
- </template>
- </el-table-column>
- <el-table-column prop="" label="拼团时间(团长开团后,有多少小时可以召集团员参团购买。)" min-width="180" align="center">
- <template slot-scope="scope">
- <el-input v-model="scope.row.expire_in">
- <template slot="append">小时</template>
- </el-input>
- </template>
- </el-table-column>
- <el-table-column label="操作" min-width="80" align="center">
- <template slot-scope="scope">
- <el-button type="danger" @click="delTier(scope.$index)" :disabled="is_edit">删除</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <div>
- <el-button size="mini" type="primary" icon="el-icon-plus" @click="addTier" :disabled="is_edit">新增一个拼团层级 </el-button>
- <div class="tip" style="display:inline-block">最多可设置3个阶梯</div>
- </div>
- <!-- 表格end -->
- </el-form-item>
- <el-form-item label="展示设置" prop="menu_show">
- <el-checkbox v-model.number="form.menu_show" :true-label="1" :false-label="0">隐藏开关</el-checkbox>
- <div class="setting-display" v-show="form.menu_show">
- <span>
- 当可参的团数达到
- <input v-model="form.hide_num" style="height:25px;" />
- 时,不显示开团按钮
- </span>
- </div>
- <div class="tip">勾选此选项则手机端商品详情页底部仅展示“去参团”,不展示“一键开团”</div>
- </el-form-item>
- <el-form-item label="团长福利" prop="is_integral">
- <el-checkbox v-model.number="form.is_coupon" :true-label="1" :false-label="0" style="width:100px;margin-right: 30px">团长送优惠券</el-checkbox>
- <br>
- <div v-if="form.is_coupon">
- <div v-for="(item,index) in form.coupon" :key="index" style="display:flex;margin-bottom:5px">
- <el-input v-model="item.name" disabled style="width:300px" size="mini">
- <template slot="prepend">优惠券名称</template>
- </el-input>
- <el-input v-model="item.coupon_num" style="width:300px" size="mini">
- <template slot="prepend">赠送</template>
- <template slot="append">张</template>
- </el-input>
- <el-button @click="delCoupon(index)" icon="el-icon-close" type="danger" size="mini"></el-button>
- </div>
- </div>
- <el-button size="mini" v-if="form.is_coupon" @click="openCoupon">选择优惠券</el-button>
- </el-form-item>
- <el-form-item label="老拉新" prop="is_lead">
- <el-checkbox v-model.number="form.is_lead" :true-label="1" :false-label="0">开启老拉新</el-checkbox>
- <div class="tip1">参与过该活动一次的视为老用户,老用户只允许开团不允许参团。此场景适合设置特价商品,用于鼓励老用户开团,协助店铺拉新。</div>
- </el-form-item>
- <el-form-item label="拼团设置" prop="setting" v-if="!form.is_lead">
- <el-input v-model="form.setting" style="width:70%" ></el-input>
- <div class="tip">每人最多参与几次不同的团</div>
- </el-form-item>
- <h5 class="title-t">
- 活动分享
- </h5>
- <el-form-item label="标题" prop="share_title">
- <el-input v-model="form.share_title" style="width:70%" ref="share_title"></el-input>
- <div class="add-tip">
- 点击添加数据
- <span v-for="(item,index) in keywords.share_title" :key="index" @click="addContent('share_title',index,1)">[[item]]</span>
- </div>
- </el-form-item>
- <el-form-item label="商家说明" prop="share_content">
- <el-input v-model="form.share_content" type="textarea" rows="5" style="width:70%" ref="share_content"></el-input>
- <div class="add-tip">
- 点击添加数据
- <span v-for="(item,index) in keywords.share_content" :key="index" @click="addContent('share_content',index,2)">[[item]]</span>
- </div>
- </el-form-item>
- <h5 class="title-t">
- 活动详情分享
- </h5>
- <el-form-item label="标题" prop="desc_title">
- <el-input v-model="form.desc_title" style="width:70%" ref="desc_title"></el-input>
- <div class="add-tip">
- 点击添加数据
- <span v-for="(item,index) in keywords.desc_title" :key="index" @click="addContent('desc_title',index,3)">[[item]]</span>
- </div>
- </el-form-item>
- <el-form-item label="商家说明" prop="desc_content">
- <el-input v-model="form.desc_content" type="textarea" rows="5" ref="desc_content" style="width:70%" ></el-input>
- <div class="add-tip">
- 点击添加数据
- <span v-for="(item,index) in keywords.desc_content" :key="index" @click="addContent('desc_content',index,4)">[[item]]</span>
- </div>
- </el-form-item>
- <el-form-item>
- <a href="#">
- <el-button type="primary" @click="next">
- 下一步
- </el-button>
- </a>
- <el-button @click="goBack()">
- 返回列表
- </el-button>
- </el-form-item>
- </div>
- <!-- 第二页start -->
- <div v-show="step==2">
- <div class="list-title">
- <div class="list-title-head">规格</div>
- <div class="list-title-head">原价(元)</div>
- <div class="list-title-head">拼团价格</div>
- <div class="list-title-head">活动库存</div>
- <div class="list-title-head">
- 限购件数
- <span style="color:#999;font-weight:400;">(0为不限购)</span>
- </div>
- </div>
- <div class="list-con" v-for="(item,index) in form.has_many_options">
- <div class="list-con-price">
- [[item.option_title]]
- </div>
- <div class="list-con-price">
- [[item.option_price]]
- </div>
- <div class="list-title-head" style="flex-wrap: wrap;" class="input1">
- <!-- <el-input style="flex:0 0 90%;" v-model="form.stock"></el-input> -->
- <div v-for="(item1,index1) in item.has_many_option_level" :key="index1" >
- <div class="el-input el-input-group el-input-group--append el-input-group--prepend" style="flex: 0 0 90%; padding: 5px 0px;">
- <div class="el-input-group__prepend">[[item1.member_num]]人团:</div>
- <input type="text" autocomplete="off" class="el-input__inner" v-model="item1.group_price" :disabled="is_edit">
- <div class="el-input-group__append">元</div>
- </div>
- </div>
- </div>
- <div class="list-title-head">
- <el-input style="flex:0 0 90%;" v-model="item.stock"></el-input>
- </div>
- <div class="list-title-head">
- <input type="text" autocomplete="off" class="el-input__inner" v-model="item.buy_limit">
- <!-- <el-input style="flex:0 0 90%;" v-model="item.buy_limit"></el-input> -->
- </div>
- </div>
- <div style="text-align:center;margin-top:22px;">
- <el-button type="primary" @click="last">
- 上一步
- </el-button>
- <el-button @click="submitForm('form')">
- 保存
- </el-button>
- </div>
- </div>
- <!-- 第二页end -->
- </el-form>
- </template>
- <!-- 新增活动弹出框 -->
- <el-dialog title="选择商品" :visible.sync="new_url" width="60%">
- <div>
- <el-form :inline="true" :model="search_goods" ref="search_goods" style="padding:20px 0 0 0;">
- <el-form-item label="" prop="">
- <el-select v-model="search_goods.category" placeholder="请选择分类" clearable>
- <el-option v-for="item in category_list" :key="item.id" :label="item.name" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="" prop="">
- <el-input v-model="search_goods.goods_name" placeholder="请输入标题"></el-input>
- </el-form-item>
- <a href="#">
- <el-button type="success" icon="el-icon-search" @click="searchGoods()">搜索</el-button>
- </a>
- </el-form>
- <template>
- <!-- 表格start -->
- <el-table :data="goods_list" style="width: 100%;overflow-y:auto" max-height="600" v-loading="table_loading">
- <el-table-column prop="id" label="ID" align="center"></el-table-column>
- <el-table-column prop="id" label="" width="110" align="center">
- <template slot-scope="scope">
- <img :src="scope.row.thumb" alt="" style="width:50px;height:50px;">
- </template>
- </el-table-column>
- <el-table-column prop="title" label="商品" min-width="120"></el-table-column>
- <el-table-column prop="" label="价格" min-width="80" align="center">
- <template slot-scope="scope">
- <div style="color:red">¥[[scope.row.price]]</div>
- </template>
- </el-table-column>
- <el-table-column prop="stock" label="库存" min-width="80" align="center"></el-table-column>
- <el-table-column label="操作" min-width="80" align="center">
- <template slot-scope="scope">
- <el-button :type="scope.row.has_many_activity_goods_count>=1?'info':'primary'" @click="choose(scope.row,scope.$index)" :disabled="scope.row.has_many_activity_goods_count>=1">选取</el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- 表格end -->
- </template>
- <!-- 分页 -->
- <el-row>
- <el-col :span="24" align="right" style="padding:15px 5% 15px 0">
- <el-pagination layout="prev, pager, next" @current-change="currentChangeGoods" :current-page="goods_current_page" :total="goods_total" :page-size="goods_per_size" background v-loading="loading"></el-pagination>
- </el-col>
- </el-row>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="new_url = false">取 消</el-button>
- <!-- <el-button type="primary" @click="img_text_url = false">确 定</el-button> -->
- </span>
- </el-dialog>
- <!-- 选择优惠券弹窗 -->
- <el-dialog title="选择优惠券" :visible.sync="coupon_show" width="60%">
- <div>
- <el-input v-model="coupon_keyword" placeholder="请输入优惠券名称" style="width:70%"></el-input>
- <el-button type="success" icon="el-icon-search" @click="searchCoupon()">搜索</el-button>
- <template>
- <!-- 表格start -->
- <el-table :data="coupon_list" style="width: 100%;overflow-y:auto;height:450px" v-loading="table_loading">
- <el-table-column prop="id" label="ID" align="center"></el-table-column>
- <el-table-column prop="name" label="优惠券名称" align="center" min-width="120"></el-table-column>
- <el-table-column label="操作" min-width="80" align="center">
- <template slot-scope="scope">
- <el-button @click="chooseCoupon(scope.row,scope.$index)">选择</el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- 表格end -->
- </template>
- <!-- 分页 -->
- <el-row>
- <el-col :span="24" align="right" style="padding:15px 5% 15px 0">
- <el-pagination layout="prev, pager, next" @current-change="currentChangeGoods" :current-page="goods_current_page" :total="goods_total" :page-size="goods_per_size" background v-loading="loading"></el-pagination>
- </el-col>
- </el-row>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="coupon_show = false">取 消</el-button>
- <!-- <el-button type="primary" @click="img_text_url = false">确 定</el-button> -->
- </span>
- </el-dialog>
- <!-- 选择门店弹窗 -->
- <el-dialog :visible.sync="store_show" width="60%" center title="选择门店">
- <div>
- <div>
- <el-input v-model="store_keyword" style="width:70%"></el-input>
- <el-button type="primary" @click="searchStore()">搜索</el-button>
- </div>
- <el-table :data="store_list" style="width: 100%;height:500px;overflow:auto" v-loading="loading">
- <el-table-column label="ID" prop="id" align="center" width="100px"></el-table-column>
- <el-table-column label="门店名称">
- <template slot-scope="scope">
- <div v-if="scope.row" style="display:flex;align-items: center">
- <div style="margin-left:10px">[[scope.row.store_name]]</div>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="refund_time" label="操作" align="center" width="320">
- <template slot-scope="scope">
- <el-button @click="chooseStore(scope.row)">
- 选择
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="store_show = false">取 消</el-button>
- </span>
- </el-dialog>
- </div>
- <script>
- const store_url = '{!! yzWebFullUrl('plugin.fight-groups.admin.controllers.fight-groups.store') !!}';
- var app = new Vue({
- el:"#app",
- delimiters: ['[[', ']]'],
- data() {
- let data = {!! $data?:'{}' !!};
- let keywords = data.keywords;
- let love_name = data.love_name?data.love_name:'';
- let loves = data.loves?data.loves:false;
- let is_open_integral = data.is_open_integral?data.is_open_integral:false;
- let store_obj = data.has_one_store_cashier?data.has_one_store_cashier:{};
- let form = {
- goods_id:"",
- goods_name:"",
- is_lead:0,
- barrage:0,
- hide_num:"1",
- setting:"",
- share_title:'原价¥<<商品最高价>>,现价¥<<商品最低价>>起,参加<<拼团活动名称>>即可享受',
- share_content : "活动商品数量有限,先到先得。",
- desc_title : "我已经参加了<<团长名称>>发起的拼团。",
- desc_content : "凑足<<拼团人数>>人即可享受拼团优惠,我已经参加,你也来吧。",
- has_many_level:[],
- has_many_options:[],//规格
- is_love:0,
- love:'',
- is_balance:0,
- balance:'',
- is_coupon:0,
- coupon:[],//优惠券
- business_type:1,
- store_id:0,
- ...data,
- }
- let has_one_goods = {};
- let is_edit = false;
- if(form.id){
- if(form.start_time){
- form.start_time = form.start_time*1000;
- }
- if(form.end_time){
- form.end_time = form.end_time*1000;
- }
- has_one_goods = {
- ...form.has_one_goods
- }
- if(form.status == 1 || form.status == 0){
- is_edit = true;
- }
- }
- return{
- tab:"all",
- new_url:false,//新增活动弹出框
- step:1,//下一步
- has_option:0,//是否开启规格
- search_form:{},
- search_goods:{},
- category_list:[],
- goods_list:[],
- list:[],
- keywords:keywords,
- form:form,
- data:data,
- // has_many_options:has_many_options,//规格
- has_one_goods:has_one_goods,//回显商品信息
- is_edit:is_edit,//是否允许编辑
- //商品分页
- goods_total:0,
- goods_per_size:0,
- goods_current_page:0,
- // 优惠券
- coupon_show:false,
- coupon_keyword:"",
- coupon_list:[],
- // choose_coupon_list:[],
- // 爱心值
- love_name:love_name,
- loves:loves,
- is_open_integral:is_open_integral,
- //门店
- store_show:false,
- store_list:[],
- store_keyword:'',
- store_obj:store_obj,
- loading:false,
- table_loading:false,
- rules:{
- title:{required: true, message: '请输入活动标题',}
- },
- }
- },
- created () {
- if(this.has_one_goods&&this.has_one_goods.title){
- this.has_one_goods.title = this.escapeHTML(this.has_one_goods.title);
- }
- if(!this.form.coupon || this.form.coupon == 'Array') {
- this.form.coupon = [];
- }
- },
- methods: {
- add() {
- var that = this;
- that.new_url = true;
- if(that.category_list.length==0){
- that.getCategory();
- }
- if(that.goods_list.length==0){
- this.search_goods = {};
- let json = this.search_goods;
- that.getGoodsInfo(json);
- }
- },
- //获得分类
- getCategory(){
- var that = this;
- that.$http.get("{!! yzWebFullUrl('plugin.fight-groups.admin.controllers.fight-groups-store.get-category') !!}",{}).then(response => {
- console.log(response);
- if(response.data.result==1){
- that.category_list = response.data.data;
- that.category_list.unshift({id:0,name:'全部分类'})
- }
- else{
- that.$message.error(response.data);
- }
- }),function(res){
- console.log(res);
- };
- },
- //获得商品列表
- getGoodsInfo(json){
- var that = this;
- that.table_loading = true;
- console.log(json);
- that.$http.post("{!! yzWebFullUrl('plugin.fight-groups.admin.controllers.fight-groups-store.search-goods') !!}",json).then(response => {
- console.log(response);
- if(response.data.result==1){
- that.goods_total = response.data.data.total;
- that.goods_per_size = response.data.data.per_page;
- that.goods_current_page = response.data.data.current_page;
- that.goods_list = response.data.data.data;
- this.goods_list.forEach((item,index) => {
- item.title = this.escapeHTML(item.title)
- });
- }
- else{
- that.$message.error(response.data);
- }
- console.log(that.goods_list);
- that.table_loading = false;
- }),function(res){
- console.log(res);
- that.table_loading = false;
- };
- },
- //搜索商品
- searchGoods() {
- console.log(this.search_goods);
- this.getGoodsInfo(this.search_goods)
- },
- // 商品分页
- currentChangeGoods(page) {
- let json = {category:this.search_goods.category,goods_name:this.search_goods.goods_name,page:page}
- this.getGoodsInfo(json)
- },
- // 选择商品
- choose(row,index) {
- this.new_url = false,
- this.has_one_goods.title = this.goods_list[index].title;
- this.has_one_goods.id = this.goods_list[index].id;
- this.has_one_goods.thumb = this.goods_list[index].thumb;
- this.has_one_goods.price = this.goods_list[index].price;
- this.has_one_goods.stock = this.goods_list[index].stock;
- this.has_one_goods.sku = this.goods_list[index].sku;
- this.has_option = this.goods_list[index].has_option;//是否开启规格
- if(this.has_option){
- this.form.has_many_options = this.goods_list[index].has_many_options;//规格
- }
- else {
- this.form.has_many_options = [];
- }
- // 规格价格数据处理
- // if(this.form.has_many_options.length>0) {
- if(this.has_option) {
- this.form.has_many_options.forEach((item,index) => {
- this.form.has_many_options[index].option_price = item.product_price;
- this.form.has_many_options[index].option_id = item.id;
- this.form.has_many_options[index].option_title = item.title;
- this.form.has_many_options[index].has_many_option_level = []
- this.form.has_many_options[index].buy_limit = "0"
- this.form.has_many_options[index].stock = item.stock;
- })
- }
- else {
- this.form.has_many_options.push({option_title:'单规格',option_price:this.goods_list[index].price,stock:this.goods_list[index].stock,buy_limit:"0",has_many_option_level:[]})
- }
- console.log(this.form.has_many_options);
- this.form.goods_id = this.has_one_goods.id;
- this.form.goods_name = this.has_one_goods.title;
- },
- // 添加关键词
- addContent(name,index,x) {
- console.log(this.$refs[name]);
- let ref = this.$refs[name];
- let words = "";
- if(x==1){
- words ="<<" + this.keywords.share_title[index] + ">>";
- }
- if(x==2){
- words ="<<" + this.keywords.share_content[index] + ">>";
- }
- if(x==3){
- words ="<<" + this.keywords.desc_title[index] + ">>";
- }
- if(x==4){
- words ="<<" + this.keywords.desc_content[index] + ">>";
- }
- console.log(words)
- this.insertInputTxt(name,words,x)
- },
- insertInputTxt(ref,words,x) {
- let name = "";
- if(x==1||x==3){
- name = this.$refs[ref].$refs.input;
- }
- if(x==2||x==4){
- name = this.$refs[ref].$refs.textarea;
- }
- var startPos = name.selectionStart;
- console.log(startPos);
- var endPos = name.selectionEnd;
- if (startPos === undefined || endPos === undefined) return
- var txt = name.value;
- var result = txt.substring(0, startPos) + words + txt.substring(endPos)
- name.value = result;
- name.focus();
- name.selectionStart = startPos + words.length;
- name.selectionEnd = startPos + words.length;
- console.log(name.value)
- this.form[ref] = name.value;
- },
- // 下一步
- next() {
- console.log(this.form);
- if(!this.form.title) {
- this.$message.error("活动标题不能为空!")
- return false;
- }
- if(!this.has_one_goods.title) {
- this.$message.error("请选择活动商品!")
- return false;
- }
- if(this.form.has_many_level.length == 0) {
- this.$message.error("层级不能为空!")
- return false;
- }
- if(!this.form.start_time) {
- this.$message.error("开始时间不能为空!")
- return false;
- }
- if(this.form.end_time && this.form.start_time >= this.form.end_time) {
- this.$message.error("开始时间不能大于或者等于结束时间!")
- return false;
- }
- if(this.form.menu_show==1){
- if(this.form.hide_num<1) {
- this.$message.error("展示设置->可参的团数不能少于1")
- return false;
- }
- }
- this.form.has_many_level.some(item => {
- if(!item.member_num || !item.expire_in){
- this.$message.error("层级信息不完成!");
- return true;
- }
- else if(item.member_num == 1){
- this.$message.error("拼团人数不能为1");
- return true;
- }
- else {
- this.step = 2;
- }
- console.log(this.step)
- });
- // 添加层级价格
- if(!this.form.id){
- if(this.has_option){
- for(let i=0;i<this.form.has_many_options.length;i++) {
- this.form.has_many_options[i].has_many_option_level = [];
- }
- for(let i=0;i<this.form.has_many_options.length;i++) {
- for(let j=0;j<this.form.has_many_level.length;j++) {
- this.form.has_many_options[i].has_many_option_level.push({group_price:"",member_num:this.form.has_many_level[j].member_num})
- }
- }
- console.log(this.form);
- }
- else {
- this.form.has_many_options[0].has_many_option_level = [];
- for(let j=0;j<this.form.has_many_level.length;j++) {
- this.form.has_many_options[0].has_many_option_level.push({group_price:"0",member_num:this.form.has_many_level[j].member_num})
- }
- }
- }
- },
- last() {
- this.step = 1;
- },
- goBack() {
- history.go(-1);
- },
- // 新增层级
- addTier() {
- if(this.form.has_many_level.length>=3){
- this.$message.error("最多可设置3个阶梯");
- return;
- }
- this.form.has_many_level.push({
- level_num : this.form.has_many_level.length+1,
- member_num : "",
- expire_in : "",
- })
- },
- delTier(index) {
- this.form.has_many_level.splice(index,1);
- // 层级重新排序
- this.form.has_many_level.forEach((item,index1) => {
- item.level_num = index1+1;
- })
- },
- // 打开选择优惠券
- openCoupon() {
- this.coupon_show = true;
- },
- // 搜索优惠券
- searchCoupon() {
- var that = this;
- that.table_loading = true;
- that.$http.post("{!! yzWebFullUrl('plugin.fight-groups.admin.controllers.fight-groups-store.coupon') !!}",{keyword:that.coupon_keyword}).then(response => {
- console.log(response);
- if(response.data.result==1){
- that.coupon_list = response.data.data;
- }
- else{
- that.$message.error(response.data);
- }
- console.log(that.goods_list);
- that.table_loading = false;
- }),function(res){
- console.log(res);
- that.table_loading = false;
- };
- },
- chooseCoupon(item,index) {
- let is_true = true;
- this.form.coupon.some((item1,index1) => {
- if(item1.id == item.id) {
- is_true = false;
- this.$message.error("请勿重复选择优惠券!");
- return true;
- }
- })
- if(is_true) {
- this.form.coupon.push({id:item.id,name:item.name,coupon_num:'1'});
- }
- },
- // 删除优惠券
- delCoupon(index) {
- this.form.coupon.splice(index,1);
- },
- addStore(){
- this.store_show = true;
- },
- searchStore() {
- let that = this;
- this.loading = true;
- this.$http.post(store_url,{keyword:this.store_keyword}).then(response => {
- if (response.data.result) {
- console.log(response.data.data)
- this.store_list = response.data.data;
- } else {
- that.$message.error(response.data);
- }
- this.loading = false;
- },response => {
- this.loading = false;
- });
- },
- chooseStore(item) {
- this.store_obj = item;
- console.log(this.store_obj )
- // this.store_ids.push(item.id)
- // this.store_names.push(item.store_name)
- // console.log(this.store_names)
- },
- closeStore(index) {
- console.log(index)
- this.store_ids.splice(index,1)
- this.store_names.splice(index,1)
- },
- submitForm(){
- var that = this;
- that.loading = true;
- if(this.form.start_time) {
- this.form.start_time = this.form.start_time/1000;
- }
- if(this.form.end_time) {
- this.form.end_time = this.form.end_time/1000;
- }
- delete(this.form.goods_name)
- delete(this.form.loves)
- delete(this.form.love_name)
- let josn = that.form;
- josn.store_id = that.store_obj.id;
- that.$http.post("{!! yzWebFullUrl('plugin.fight-groups.admin.controllers.fight-groups-store.save') !!}",{form_data:josn}).then(response => {
- console.log(response);
- if(response.data.result==1){
- that.$message.success("保存成功!");
- window.location.href='{!! yzWebFullUrl('plugin.fight-groups.admin.controllers.fight-groups-store.index') !!}';
- }
- else{
- //that.$message.error(response.data.msg);
- if(this.form.start_time) {
- this.form.start_time = this.form.start_time*1000;
- }
- if(this.form.end_time) {
- this.form.end_time = this.form.end_time*1000;
- }
- }
- that.loading = false;
- }),function(res){
- that.loading = false;
- if(this.form.start_time) {
- this.form.start_time = this.form.start_time*1000;
- }
- if(this.form.end_time) {
- this.form.end_time = this.form.end_time*1000;
- }
- console.log(res);
- };
- },
- // 字符转义
- escapeHTML(a) {
- a = "" + a;
- return a.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, "\"").replace(/'/g, "'");;
- },
- },
- })
- </script>
- @endsection
|