| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134 |
- <?php
- use common\helpers\ComponentHelper;
- ComponentHelper::loadComponentView('goods/com-attr', __DIR__);
- ComponentHelper::loadComponentView('com-attr-select');
- ComponentHelper::loadComponentView('com-select-goods');
- ComponentHelper::loadComponentView('com-rich-text');
- ?>
- <style>
- .type_text {
- font-size: 16px;
- font-weight: 600;
- color: #333;
- margin-right: 20px;
- }
- .detail_top {
- flex-wrap: wrap;
- }
- .detail_box {
- margin-top: 10px;
- }
- .coupon_box {
- width: 600px;
- margin-right: 50px;
- }
- .detail_top .coupon_box:last-child {
- margin-right: 0px;
- }
- .coupon_list_box {
- padding: 20px 20px 0 0;
- flex-wrap: wrap;
- box-sizing: border-box;
- overflow: hidden;
- height: 125px;
- }
- .coupon_list_box_active {
- height: auto;
- }
- .coupon_list_item {
- background: #F4F4F4;
- width: 275px;
- border-radius: 5px;
- position: relative;
- margin-bottom: 15px;
- padding: 10px;
- }
- .add_coupon .el-button {
- padding: 6px 18px;
- margin: 20px 0;
- }
- .close_icon {
- font-size: 20px;
- font-weight: 700;
- position: absolute;
- right: 10px;
- top: 8px;
- cursor: pointer;
- }
- .coupon_list_title {
- font-size: 16px;
- margin-bottom: 5px;
- width: 180px;
- }
- .coupon_list_content {
- margin-bottom: 2px;
- font-size: 12px;
- }
- .more_btn {
- text-align: center;
- cursor: pointer;
- margin-top: 20px;
- }
- .more_icon {
- transform: rotate(0deg);
- transition: all 0.7s;
- }
- .show_more_icon {
- transform: rotate(180deg);
- }
- .show {
- height: auto;
- }
- .hide {
- height: 0;
- overflow: hidden;
- }
- .transform-hide {
- opacity: 0;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- -webkit-transition: .3s;
- transition: .3s;
- }
- .transform-show {
- opacity: 1 !important;
- -webkit-transform: translateY(0) !important;
- transform: translateY(0) !important;
- }
- .is_divider {
- display: block;
- }
- @media screen and (min-width: 1540px) {
- .is_divider {
- display: none;
- }
- }
- .red_envelope_box {
- width: 600px;
- margin-right: 50px;
- }
- .red_envelope_box:last-child {
- margin-right: 0px;
- }
- .red_envelope_box .el-input {
- width: 150px;
- }
- .red_envelope_box .el-textarea {
- width: 250px;
- }
- .el-input {
- flex: 1;
- }
- .el-textarea {
- flex: 1;
- }
- .types_box {
- padding: 20px 20px 30px;
- }
- .label_title {
- font-weight: 600;
- margin-bottom: 8px;
- font-size: 16px;
- }
- .checkt_select {
- width: 140px;
- }
- .check_input {
- width: 200px;
- margin-left: 10px;
- }
- .check_btn_list .el-button {
- padding: 6px 14px;
- margin-bottom: 20px;
- }
- .el-dialog__footer {
- text-align: center;
- }
- .check_pagination {
- justify-content: flex-end;
- margin-top: 20px;
- }
- /* 谷歌 */
- input::-webkit-outer-spin-button,
- input::-webkit-inner-spin-button {
- -webkit-appearance: none;
- appearance: none;
- margin: 0;
- }
- /* 火狐 */
- input {
- -moz-appearance: textfield;
- }
- /* 公共样式 */
- .flex {
- display: -webkit-box;
- display: -webkit-flex;
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- }
- .flex-x-center {
- display: -webkit-box;
- display: -webkit-flex;
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- -webkit-box-pack: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
- justify-content: center;
- }
- .flex-x-between {
- display: -webkit-box;
- display: -webkit-flex;
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- -webkit-box-pack: space-between;
- -webkit-justify-content: space-between;
- -ms-flex-pack: space-between;
- justify-content: space-between;
- }
- .flex-y-center {
- display: -webkit-box;
- display: -webkit-flex;
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- -webkit-box-align: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
- -ms-grid-row-align: center;
- align-items: center;
- }
- /* 溢出隐藏 */
- .over1 {
- text-overflow: -o-ellipsis-lastline;
- overflow: hidden;
- text-overflow: ellipsis;
- display: -webkit-box;
- -webkit-line-clamp: 1;
- -webkit-box-orient: vertical;
- }
- .over2 {
- text-overflow: -o-ellipsis-lastline;
- overflow: hidden;
- text-overflow: ellipsis;
- display: -webkit-box;
- -webkit-line-clamp: 2;
- -webkit-box-orient: vertical;
- }
- .huiyuanRadio {
- margin-bottom: 10px;
- }
- .header-require::after {
- content: '*';
- color: #F56C6C;
- margin-right: 2px;
- }
- </style>
- <template id="abc">
- <el-card shadow="never" style="border:0" body-style="background-color: #f3f3f3;padding: 10px 0 0;" class="com-goods" v-loading="cardLoading">
- <div>
- <el-form :model="cForm" :rules="cRule" ref="ruleForm" label-width="140px" size="small" class="demo-ruleForm">
- <el-tabs v-model="activeName">
- <el-tab-pane label="基础设置" name="first">
- <!-- 选择分类 -->
- <slot name="before_cats"></slot>
- <!-- 基本信息 -->
- <slot name="before_info"></slot>
- <el-card shadow="never" class="mt-24" style="margin-bottom: 20px;">
- <!-- <div slot="header">-->
- <!-- <span>基本信息</span>-->
- <!-- </div>-->
- <el-row>
- <el-col :xl="12" :lg="18">
- <template>
- <el-form-item>
- <label slot="label" class="header-require">活动名称</label>
- <el-col :span="16">
- <el-input v-model="presale_name">
- </el-input>
- </el-col>
- </el-form-item>
- <el-form-item label="活动商品" width="120">
- <label slot="label" class="header-require">
- 活动商品
- <el-tooltip class="item" effect="dark" content="只能从商城中获取商品信息,且基本信息与商城商品保持一致" placement="top">
- <i class="el-icon-info"></i>
- </el-tooltip>
- </label>
- <div>
- <el-row type="flex">
- <com-select-goods :multiple="false" :url="goodsIndexUrl" @selected="selectGoodsWarehouse">
- <el-button>选择商品</el-button>
- </com-select-goods>
- </el-row>
- </div>
- </el-form-item>
- <el-form-item v-if="formGoodsList.length>0" label="预售商品">
- <div class="table-body" style="padding-left: 0;padding-top: 0;">
- <template>
- <el-table :data="formGoodsList" border style="width: 100%">
- <el-table-column fixed type="index" label="编号" show-overflow-tooltip width="50">
- </el-table-column>
- <el-table-column prop="goods_name,cover_pic" label="商品名称">
- <template slot-scope="scope">
- <div flex="box:first">
- <div style="padding-right: 10px;">
- <com-image mode="aspectFill" :src="scope.row.cover_pic"></com-image>
- </div>
- <div flex="cross:top cross:center">
- {{scope.row.goods_name}}
- </div>
- </div>
- </template>
- </el-table-column>
- <el-table-column fixed="right" label="操作" width="100">
- <template slot-scope="scope">
- <el-button @click="delGoods(scope.$index)" type="primary" size="mini">删除</el-button>
- </template>
- </el-table-column>
- </el-table>
- </template>
- </div>
- <template v-if="is_attr > 0 && attrGroups.length > 0">
- <com-attr v-model="ruleForm.attr" :attr-groups="attrGroups" :goods-detail="ruleForm" :active-goods-attr="activeGoodsAttr" ref="comAttr"></com-attr>
- </template>
- </el-form-item>
- <!-- <el-form-item label="规格" v-if="is_attr == 0">
- <el-row type="flex">
- <com-ellipsis :line="1">
- <template v-for="item in ruleForm.select_attr_groups">
- <span style="margin: 0 5px;">
- {{item.attr_group_name}}:{{item.attr_name}}
- </span>
- </template>
- </com-ellipsis>
- </el-row>
- </el-form-item> -->
- <el-form-item prop="cate_id">
- <label slot="label" class="header-require">预售分类</label>
- <el-select v-model="cate_name" placeholder="请选择" @change="handleChange">
- <el-option v-for="item,k in cateList" :key="item.id" :label="item.name" :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item v-if="is_attr == 0" label="预售价" prop="presale_price">
- <el-col :span="8">
- <el-input v-model="presale_price">
- <template slot="append">元</template>
- </el-input>
- </el-col>
- <br />
- <p class="tips-text">预售活动价格,预售金额分为定金+尾款的方式支付。</p>
- </el-form-item>
- <el-form-item v-if="is_attr == 0" label="定金" prop="deposit_price">
- <el-col :span="8">
- <el-input v-model="deposit_price">
- <template slot="append">元</template>
- </el-input>
- </el-col>
- </br>
- </el-form-item>
- <el-form-item v-if="is_attr == 0" prop="goods_num">
- <label slot="label">
- <span>预售库存</span>
- </label>
- <el-col :span="8">
- <el-input type="number" min="0" :max="999999" @input="changeInput" v-model="goods_stock">
- <!--oninput="this.value = this.value.replace(/[^0-9\.]/, '');" :disabled="moreAttrs" -->
- </el-input>
- </el-col>
- <br />
- <p class="tips-text">商品预售数量,与普通商品库存独立。</p>
- </el-form-item>
- <el-form-item label="活动时间">
- <el-date-picker size="small" v-model="activityDateTime" @change="activityDatetimeChange" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" align="center">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="定金支付时间">
- <el-date-picker size="small" v-model="depositActiveTime" :picker-options="pickerOptions()" @change="depositDatetimeChange" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" align="center">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="尾款支付时间">
- <el-date-picker size="small" v-model="activityDateTime" @change="activityDatetimeChange" type="datetimerange" disabled range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" align="center">
- </el-date-picker>
- </el-form-item>
- <!-- <el-form-item label="尾款支付时间">
- <el-date-picker size="small" v-model="finalPaymentActiveTime" @change="finalPaymentDatetimeChange" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" align="center">
- </el-date-picker>
- </el-form-item> -->
- <el-form-item label="发货日期">
- <el-radio-group v-model="delivery_time_way">
- <el-radio :label="0" border>具体日期</el-radio>
- </el-date-picker>
- <el-radio :label="1" border style="margin-right:8px;">付尾款后</el-radio>
- <el-input style="width:100px;" v-model="shipping_days"><template slot="append">天</template></el-input>
- </el-form-item>
- <el-form-item v-if="delivery_time_way == 0">
- <el-date-picker size="small" v-model="sendGoodsTime" @change="sendGoodsDatetimeChange" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" align="center">
- </el-form-item>
- </el-radio-group>
- <!-- <el-form-item label="发货日期">
- <el-date-picker size="small" v-model="sendGoodsTime" @change="sendGoodsDatetimeChange" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" align="center">
- </el-date-picker>
- </el-form-item> -->
- <el-form-item label="虚拟付款人数:" prop="virtual_payment_num">
- <el-col :span="8">
- <el-input v-model="virtual_payment_num">
- <template slot="append">人</template>
- </el-input>
- </el-col>
- </el-form-item>
- <el-form-item label="虚拟已订人数:" prop="virtual_paid_num">
- <el-col :span="8">
- <el-input v-model="virtual_paid_num">
- <template slot="append">人</template>
- </el-input>
- </el-col>
- </el-form-item>
- <el-form-item label="限购" v-if="is_attr == 0" prop="purchase_limit_num">
- <el-col :span="8">
- <el-input v-model="purchase_limit_num">
- <template slot="append">件</template>
- </el-input>
- </el-col>
- <br />
- <p class="tips-text">本次活动该商品最多可购买多少件,0或空为不限购</p>
- </el-form-item>
- <el-form-item label="最低起购" prop="minimum_purchase">
- <el-col :span="8">
- <el-input v-model="minimum_purchase">
- <template slot="append">件</template>
- </el-input>
- </el-col>
- <br />
- <p class="tips-text">该商品最少购买多少件, 0或空为不限购</p>
- </el-form-item>
- <!-- <div style="padding-left:20px">
- <el-card class="edit-card" shadow="never">
- <div slot="header" class="clearfix">
- <div class="card-title">预售规则</div>
- </div>
- <com-rich-text v-model="presale_rules"></com-rich-text>
- </el-card>
- </div> -->
- </template>
- </el-col>
- </el-row>
- </el-card>
- </el-tabs>
- </el-form>
- <div class="bottom-div" flex="cross:center" v-if="is_save_btn == 1" style="margin-top: 10px;">
- <el-button class="button-item" :loading="btnLoading" type="primary" size="small" @click="store('ruleForm')" v-if="is_enable_edit == 1">保存
- </el-button>
- </div>
- </div>
- </el-card>
- </template>
- <script>
- Vue.component('group-com-goods', {
- template: '#abc',
- props: {
- // // 规格库存
- // is_attr: {
- // type: Number,
- // default: 1
- // },
- //todo 仅显示售价(抽奖) 秒杀3显示
- is_price: {
- type: Number,
- default: 0
- },
- // 添加数据接口
- store_url: {
- type: String,
- default: 'deposit-presale/default/add'
- },
- // 请求数据地址--获取详情
- get_goods_detail_url: {
- type: String,
- default: 'plugin/deposit_presale/mall/index/show'
- },
- // 保存之后返回地址
- referrer: {
- default: 'deposit-presale/default/index'
- },
- // 页面上数据
- form: Object,
- // 数据验证方式
- rule: Object,
- is_save_btn: {
- type: Number,
- default: 1
- }
- },
- data() {
- let ruleForm = {
- attr: [],
- use_attr: 0,
- deposit_presale_price: '',
- select_attr_groups: [], // 已选择的规格
- goodsWarehouse_attrGroups: [], // 商品库商品所有的规格
- share_level_type: 0,
- presale_rules: '',
- delivery_time_way: '',
- shipping_days: 0,
- goods_name: '',
- cover_pic: '',
- };
- let rules = {
- presale_name: [{
- required: true,
- message: '请输入预售活动名称',
- trigger: 'change'
- }],
- };
- return {
- id: 0,
- value1: '',
- goodsIndexUrl: 'deposit-presale/default/goods-list',
- formGoodsList: [], //选中的商品数组(最多只能选一个)
- moreAttrs: true, //默认选中多规格商品
- goods_stock: 0, //预售商品总库存
- groupGoodsId: '', //预售商品id
- valueDay: '', //添加预售商品开始日期
- valueTime: '', //添加预售具体时间
- groupStartDate: '', //预售活动开始时刻
- groupEndDate: '', //预售活动结束时间
- continuedHouse: '', //预售小时数
- continuedMinute: '', //预售分钟数
- continuedTime: '', //预售活动持续时间
- group_size: 0, //成团所需人数
- senior_setting: 0, //默认不开启虚拟成团
- virtual_group_size: 0, //虚拟成团人数
- is_virtual: 0, //是否虚拟成团
- sendStatus: 0,
- give_score: 0, //团长送积分
- give_balance: 0, //团长送余额
- send_red_packet: 0, //送红包
- limit_buy_num: '', //限制购买数量 0=不限制
- goods_id: 0,
- cardLoading: false,
- btnLoading: false,
- activeName: 'first',
- ruleForm: ruleForm,
- attrGroups: [], //规格组
- activeGoodsAttr: [],
- dialogCoupon: false,
- couponLoading: false,
- couponKeyword: '',
- coupon_delete: [], //删除了的优惠券数据
- coupon_total: 0, //优惠券发放总数
- cou_tableData: [],
- coupon_data: [],
- dialog_total_count: 0,
- page: 1,
- level_arr: [],
- level_index: 0,
- level_id: '',
- coupon_test: [],
- loading: false,
- is_coupon_more: false,
- staging_arr: [],
- activeTime: '',
- depositActiveTime: '',
- finalPaymentActiveTime: '',
- sendGoodsTime: '',
- purchase: 2, // 1限购 2不限购
- memberLevel: [], //会员等级列表
- cateList: [], //分类列表,
- cate_name: '',
- cate_id: 0,
- checkAll: true,
- checkAll_C: true,
- checkedCities: [],
- checkedCities_C: [],
- isIndeterminate: false,
- isIndeterminate_C: false,
- virtual_group_type: 1, //虚拟成团类型 1=全部 2=成团人数大于
- gt_group_size: 0, //预售人数大于N,则虚拟成团
- isAll: 1, //1指定全部会员购买 2指定等级购买
- isAll_C: 1, //1指定全部会员购买 2指定等级购买
- presale_name: '', //预售名称
- presale_price: 0,
- deposit_price: 0,
- virtual_payment_num: 0,
- virtual_paid_num: 0,
- purchase_limit_num: 0,
- presale_rules: '',
- delivery_time_way: 0,
- shipping_days: 0,
- is_attr: 0,
- minimum_purchase: 0,
- deposit_start_at: '',
- deposit_end_at: '',
- final_payment_start_at: '',
- final_payment_end_at: '',
- activity_start_at: '',
- activity_end_at: '',
- activityDateTime: '',
- // pickerOptions: {
- // disabledDate(time) {
- // console.log(this.activityDateTime);
- // let that = this
- // return time.getTime() < Date.parse(new Date(this.activity_start_at.replace(/-/g, '/')));
- // }
- // },
- is_enable_edit: 1,
- };
- },
- created() {
- if (getQuery('id')) {
- this.getGoodsList(getQuery('id'));
- this.goods_id = getQuery('id');
- }
- this.getGroupCateList();
- if (getQuery('activity_id')) {
- this.getActivityDetail(getQuery('activity_id'));
- }
- },
- watch: {
- 'ruleForm.detail'(newVal, oldVal) {
- this.cForm.detail = newVal
- },
- 'attrGroups'(newVal, oldVal) {
- this.ruleForm.use_attr = newVal.length === 0 ? 0 : 1;
- },
- 'ruleForm.is_level'(newVal, oldVal) {
- if (newVal === 0) {
- this.ruleForm.is_level_alone = 0;
- }
- },
- },
- // 这里有用到计算属性
- computed: {
- cForm() {
- let form = {};
- let ruleForm = JSON.parse(JSON.stringify(this.ruleForm));
- if (this.form) {
- form = Object.assign(ruleForm, JSON.parse(JSON.stringify(this.form)));
- } else {
- form = ruleForm;
- }
- if (getQuery('id')) {
- form.id = getQuery('id')
- }
- return form;
- },
- cRule() {
- return this.rules;
- },
- },
- methods: {
- pickerOptions() {
- let self = this;
- return {
- disabledDate(time) {
- let duration_result = time.getTime() < Date.parse(new Date(self.activity_start_at.replace(/-/g, '/')))
- || time.getTime() > Date.parse(new Date(self.activity_end_at.replace(/-/g, '/')));
- return duration_result;
- },
- }
- },
- changeInput() {
- var pattern = /^[1-9][0-9]*$/ // 正整数的正则表达式
- // 不符合正整数时
- if (!pattern.test(this.goods_stock)) {
- // input 框绑定的内容为空
- this.goods_stock = ''
- }
- },
- changeInput2() {
- var pattern = /^[0-9][0-9]*$/ // 正整数的正则表达式
- // 不符合正整数时
- if (!pattern.test(this.continuedHouse)) {
- // input 框绑定的内容为空
- this.continuedHouse = ''
- }
- },
- changeInput3() {
- var pattern = /^[0-9][0-9]*$/ // 正整数的正则表达式
- // 不符合正整数时
- if (!pattern.test(this.continuedMinute)) {
- // input 框绑定的内容为空
- this.continuedMinute = ''
- }
- },
- handleCheckAllChange(val) {
- let arr = [];
- this.memberLevel.forEach((item) => {
- arr.push(item.level)
- })
- this.checkedCities = val ? arr : [];
- this.isIndeterminate = false;
- },
- handleCheckAllChange_C(val) {
- let arr = [];
- this.memberLevel.forEach((item) => {
- arr.push(item.level)
- })
- this.checkedCities_C = val ? arr : [];
- this.isIndeterminate_C = false;
- },
- handleCheckedCitiesChange(value) {
- let checkedCount = value.length;
- this.checkAll = checkedCount === this.memberLevel.length;
- this.isIndeterminate = checkedCount > 0 && checkedCount < this.memberLevel.length;
- },
- handleCheckedCitiesChange_C(value) {
- let checkedCount = value.length;
- this.checkAll_C = checkedCount === this.memberLevel.length;
- this.isIndeterminate_C = checkedCount > 0 && checkedCount < this.memberLevel.length;
- },
-
- getGroupCateList() {
- let self = this;
- request({
- params: {
- r: 'deposit-presale/default/cate-list',
- page: 1,
- },
- method: 'get',
- }).then(e => {
- if (e.data.code === 0) {
- this.cateList = e.data.data.list;
- } else {
- self.$message.error(e.data.msg);
- }
- }).catch(e => {
- console.log(e);
- });
- },
- datetimeChange() {
- if (this.activeTime) {
- this.start_at = this.activeTime[0];
- this.end_at = this.activeTime[1];
- } else {
- this.start_at = '';
- this.end_at = '';
- }
- },
- depositDatetimeChange() {
- if (this.depositActiveTime) {
- this.deposit_start_at = this.depositActiveTime[0];
- this.deposit_end_at = this.depositActiveTime[1];
- } else {
- this.deposit_start_at = '';
- this.deposit_end_at = '';
- }
- },
- finalPaymentDatetimeChange() {
- if (this.finalPaymentActiveTime) {
- this.final_payment_start_at = this.finalPaymentActiveTime[0];
- this.final_payment_end_at = this.finalPaymentActiveTime[1];
- } else {
- this.final_payment_start_at = '';
- this.final_payment_end_at = '';
- }
- },
- activityDatetimeChange() {
- if (this.activityDateTime) {
- this.activity_start_at = this.activityDateTime[0];
- this.activity_end_at = this.activityDateTime[1];
- } else {
- this.activity_start_at = '';
- this.activity_end_at = '';
- }
- },
- sendGoodsDatetimeChange() {
- if (this.sendGoodsTime) {
- this.send_goods_start_at = this.sendGoodsTime;
- // this.send_goods_end_at = this.sendGoodsTime[1];
- } else {
- this.send_goods_start_at = '';
- // this.send_goods_end_at = '';
- }
- },
- //预售活动时间设置
- setActivityTime(params) {
- let begin = params[0];
- let end = params[1];
- self.groupStartDate = dateFormat('YYYY-mm-dd HH:MM:SS', begin);
- self.groupEndDate = dateFormat('YYYY-mm-dd HH:MM:SS', end);
- console.log(self.groupStartDate, self.groupEndDate)
- },
- // 0.0.1 删除选中商品
- delGoods() {
- this.formGoodsList = [];
- this.goods_warehouse = {};
- location.reload(); //刷新当前页
- },
- // 0.1 获取预售开始时间 2020-08-07 00:00:00
- getGroupStartDate(valueDay, valueTime) {
- let self = this;
- self.groupStartDate = valueDay + ' ' + valueTime;
- },
- // 0.2 获取预售持续分钟数 -''做乘法运算返回0
- getContinuedTime(continuedHouse, continuedMinute) {
- let self = this;
- self.continuedTime = continuedHouse * 60 + continuedMinute * 1;
- console.log(self.continuedTime);
- },
- store(formName) {
- self = this;
- let total_stock = 0
-
- // let deposit_start = new Date(self.deposit_start_at.replace(/-/g, '/'));
- // let deposit_start_time = Date.parse(deposit_start);
- // let deposit_end = new Date(self.deposit_end_at.replace(/-/g, '/'));
- // let deposit_end_time = Date.parse(deposit_end);
- // let final_payment_start = new Date(self.final_payment_start_at.replace(/-/g, '/'));
- // let final_payment_start_time = Date.parse(final_payment_start);
- // let final_payment_end = new Date(self.final_payment_end_at.replace(/-/g, '/'));
- // let final_payment_end_time = Date.parse(final_payment_end);
- // let activity_start = new Date(self.activity_start_at.replace(/-/g, '/'));
- // let activity_start_time = Date.parse(activity_start);
- // let activity_end = new Date(self.activity_end_at.replace(/-/g, '/'));
- // let activity_end_time = Date.parse(activity_end);
- // if (activity_start_time > deposit_start_time) {
- // self.$message.error("支付定金开始时间不能早于活动开始时间哦");
- // return false;
- // }
- // if (activity_start_time > final_payment_start_time) {
- // self.$message.error("支付尾款开始时间不能早于活动开始时间哦");
- // return false;
- // }
- // if (deposit_start_time > final_payment_start_time) {
- // self.$message.error("支付定金开始时间不能早于支付尾款开始时间哦");
- // return false;
- // }
- // if (final_payment_end_time > activity_end_time) {
- // self.$message.error("支付尾款结束时间不能晚于活动结束时间哦");
- // return false;
- // }
- // if (deposit_end_time > activity_end_time) {
- // self.$message.error("支付定金结束时间不能晚于活动结束时间哦");
- // return false;
- // }
- // if (!self.groupGoodsId) {
- // self.$message.error("请选择商品,好吗?");
- // return false;
- // }
-
- let commander_level_limit;
- let user_level_limit;
- if (this.isAll == 1) {
- user_level_limit = 'all';
- } else if (this.isAll == 2) {
- user_level_limit = this.checkedCities.join(',')
- }
- if (this.isAll_C == 1) {
- commander_level_limit = 'all';
- } else if (this.isAll_C == 2) {
- commander_level_limit = this.checkedCities_C.join(',')
- }
- if (self.is_attr == 1) {
- self.cForm.select_attr_groups = this.$refs.comAttr.value;
- }
- let deposit_presale_goods = {
- "id": self.id,
- "cate_id": self.cate_id,
- "start_at": self.start_at, //开始时间
- "end_at": self.end_at, //结束时间
- "deposit_start_at": self.deposit_start_at, //定金开始时间
- "deposit_end_at": self.deposit_end_at, //定金结束时间
- "final_payment_start_at": self.activity_start_at, //尾款开始时间
- "final_payment_end_at": self.activity_end_at, //尾款结束时间
- "send_goods_start_at": self.delivery_time_way == 0 ? self.send_goods_start_at : 0, //发货开始时间
- "send_goods_end_at": self.send_goods_end_at, //发货结束时间
- "effective_time": self.continuedTime, //有效时间分钟数
- "group_size": self.group_size, //成团人数
- "virtual_group_size": self.virtual_group_size, //虚拟成团人数
- "is_virtual": self.is_virtual, //是否虚拟成团
- "goods_id": self.groupGoodsId, //商品id
- "goods_stock": self.goods_stock, //预售商品总库存
- "limit_buy_num": self.purchase == 2 ? 0 : self.limit_buy_num, //购买数量限制 0=不限制
- 'commander_level_limit': commander_level_limit, //团长等级限制 或者全部用户all
- 'user_level_limit': user_level_limit, //团员等级限制 或者全部用户all
- "virtual_group_type": self.virtual_group_type, //虚拟成团类型 1=全部 2=成团人数大于
- "gt_group_size": self.gt_group_size, //预售人数大于N,则虚拟成团,
- "presale_name": self.presale_name, //活动名称
- "presale_price": self.presale_price, //预售价
- "deposit_price": self.deposit_price, //定金
- "virtual_payment_num": self.virtual_payment_num, //虚拟付款人数
- "virtual_paid_num": self.virtual_paid_num, //虚拟已付款人数
- "purchase_limit_num": self.purchase_limit_num, //限购
- "presale_rules": self.presale_rules, //限购
- "delivery_time_way": self.delivery_time_way,
- "shipping_days": self.shipping_days,
- "is_attr": self.is_attr,
- "minimum_purchase": self.minimum_purchase,
- "activity_start_at": self.activity_start_at,
- "activity_end_at": self.activity_end_at,
- };
- switch (self.sendStatus) {
- case 1:
- deposit_presale_goods['give_score'] = self.give_score;
- break;
- case 2:
- deposit_presale_goods['give_balance'] = self.give_balance
- break;
- case 3:
- deposit_presale_goods['send_red_packet'] = self.send_red_packet
- break;
- }
- // 如果是单规格商品
- request({
- params: {
- r: this.store_url
- },
- method: 'post',
- data: {
- deposit_presale_goods: deposit_presale_goods,
- form: self.cForm
- }
- }).then(e => {
- self.btnLoading = false;
- self.goods_stock = 0;
- if (e.data.code === 0) {
- //保存成功
- // console.log()
- self.$message.success(e.data.msg);
- navigateTo({
- r: this.referrer,
- })
- } else {
- self.$message.error(e.data.msg);
- }
- }).catch(e => {
- console.log(e);
- });
- },
- validate() {
- let self = this;
- try {
-
- return true;
- } catch (error) {
- self.$message.error(error.message);
- return false;
- }
- },
- // 设置获取到的预售商品信息
- setDepositPresaleGoodsData(groupBuyGoods) {
- let self = this;
- let timeArr = groupBuyGoods.start_at.trim().split(" ");
- self.valueDay = timeArr[0];
- self.valueTime = timeArr[1];
- // console.log(valueDay+'111'+valueTime);
- self.continuedHouse = parseInt(groupBuyGoods.vaild_time / 60);
- self.continuedMinute = groupBuyGoods.vaild_time % 60;
- self.group_size = groupBuyGoods.people;
- self.is_virtual = groupBuyGoods.is_virtual;
- self.virtual_group_size = groupBuyGoods.virtual_group_size;
- },
- // 获取详情数据
- getGoodsList(id, url = '') {
- let self = this;
- // 存一下商品的id
- self.groupGoodsId = id;
- self.cardLoading = true;
- request({
- params: {
- r: url ? url : this.get_goods_detail_url,
- id: id,
- },
- method: 'get',
- }).then(e => {
- self.cardLoading = false;
- if (e.data.code == 0) { //状态码判断是否请求成功
- let detail = e.data.data.detail;
- detail.attr.length > 1 ? self.moreAttrs = true : self.moreAttrs = false; //是否选中多规格商品
- console.log('detail:', detail);
- if (self.formGoodsList.length > 0) {
- this.goods_warehouse = {};
- }
- // 存一下商品的列表显示信息
- let formGoods = {};
- formGoods['goods_name'] = detail.goods_name;
- formGoods['cover_pic'] = detail.cover_pic;
- let formGoodsArr = [];
- formGoodsArr.push(formGoods);
- self.formGoodsList = formGoodsArr;
- if (e.data.data.deposit_presale_goods) {
- let groupBuyGoods = e.data.data.deposit_presale_goods;
- self.setDepositPresaleGoodsData(groupBuyGoods);
- }
- console.log(detail);
- if (detail['use_attr'] === 0) { //单规格
- detail['attr_groups'] = [];
- }
- if (this.form && this.form.extra) {
- for (let i in this.form.extra) {
- if (detail.use_attr == 1) {
- for (let j in detail.attr) {
- if (!detail.attr[j][i]) {
- detail.attr[j][i] = 0;
- }
- }
- }
- Vue.set(self.ruleForm, i, 0);
- }
- }
- if (detail.is_attr == 1) {
- this.is_attr = 1;
- } else {
- if (this.is_attr == 1) {
- this.is_attr = 0;
- }
- }
- self.ruleForm = Object.assign(self.ruleForm, detail);
- // 初始化一下规格
- self.attrGroups = e.data.data.detail.attr_groups;
- if (self.is_attr == 0) {
- self.ruleForm.deposit_presale_price = detail.attr[0].deposit_presale_price;
- }
- } else {
- self.$message.error(e.data.msg);
- }
- }).catch(e => {
- self.cardLoading = false;
- console.log(e);
- });
- },
- // 获取详情数据
- getActivityDetail(id) {
- let self = this;
- // 存一下商品的id
- // self.groupGoodsId = id;
- self.cardLoading = true;
- request({
- params: {
- r: 'deposit-presale/default/add',
- id: id,
- },
- method: 'get',
- }).then(e => {
- self.cardLoading = false;
- if (e.data.code == 0) { //状态码判断是否请求成功
- let activity = e.data.data;
- if(e.data.data.status == -1 || e.data.data.group_status == 2){
- this.is_enable_edit = 0;
- }
- if (activity) {
- for (let key in this.$data) {
- if (key in activity) {
- this.$data[key] = activity[key];
- }
- }
- this.getGoodsList(activity.goods_id, 'deposit-presale/default/goods-detail');
- console.log(this.$data);
- }
- } else {
- self.$message.error(e.data.msg);
- }
- }).catch(e => {
- self.cardLoading = false;
- console.log(e);
- });
- },
- handleChange(value) {
- this.cate_id = value;
- },
- // 选择商品(清空弹窗已有商品)
- selectGoodsWarehouse(goods_warehouse) {
- if (goods_warehouse.goods_stock <= 0) {
- this.$message.error('该商品的库存为0,请重新选择商品');
- return
- }
- this.ruleForm.select_attr_groups = [];
- this.getGoodsList(goods_warehouse.id, 'deposit-presale/default/goods-detail')
- },
- },
- });
- </script>
|