Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop-ui into dev-gl
@ -90,14 +90,14 @@
 | 
				
			|||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <div class="width_150">
 | 
					              <div class="width_150">
 | 
				
			||||||
                {{ goods.goodsSku.price | unitPrice("¥") }}
 | 
					                {{ goods.purchasePrice | unitPrice("¥") }}
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <div class="width_100">
 | 
					              <div class="width_100">
 | 
				
			||||||
                <InputNumber :min="1" size="small" v-model="goods.num" @on-change="changeNum(goods.num, goods.goodsSku.id)"></InputNumber>
 | 
					                <InputNumber :min="1" size="small" v-model="goods.num" @on-change="changeNum(goods.num, goods.goodsSku.id)"></InputNumber>
 | 
				
			||||||
                <div class="fontsize_12">{{goods.goodsSku.quantity > 0 ? '有货' : '无货'}}</div>
 | 
					                <div class="fontsize_12">{{goods.goodsSku.quantity > 0 ? '有货' : '无货'}}</div>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <div class="width_150">
 | 
					              <div class="width_150">
 | 
				
			||||||
                {{ goods.num * goods.goodsSku.price | unitPrice("¥") }}
 | 
					                {{ goods.subTotal | unitPrice("¥") }}
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <div class="width_100">
 | 
					              <div class="width_100">
 | 
				
			||||||
                <span class="handle-btn" v-if="!goods.errorMessage" @click="delGoods(goods.goodsSku.id)">删除</span>
 | 
					                <span class="handle-btn" v-if="!goods.errorMessage" @click="delGoods(goods.goodsSku.id)">删除</span>
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@
 | 
				
			|||||||
    <div class="width_1200 logo">
 | 
					    <div class="width_1200 logo">
 | 
				
			||||||
      <div>
 | 
					      <div>
 | 
				
			||||||
        <router-link to="/"
 | 
					        <router-link to="/"
 | 
				
			||||||
          ><img :src="$store.state.logoImg" alt="lili shop" title="lilishop"
 | 
					        ><img :src="$store.state.logoImg" alt="lili shop" title="lilishop"
 | 
				
			||||||
        /></router-link>
 | 
					        /></router-link>
 | 
				
			||||||
        <div>结算页</div>
 | 
					        <div>结算页</div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
@ -23,7 +23,7 @@
 | 
				
			|||||||
        <span :class="stepIndex == 2 ? 'active' : ''">3.成功提交订单</span>
 | 
					        <span :class="stepIndex == 2 ? 'active' : ''">3.成功提交订单</span>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <Divider />
 | 
					    <Divider/>
 | 
				
			||||||
    <div class="content width_1200">
 | 
					    <div class="content width_1200">
 | 
				
			||||||
      <!-- 收货地址 -->
 | 
					      <!-- 收货地址 -->
 | 
				
			||||||
      <div class="address">
 | 
					      <div class="address">
 | 
				
			||||||
@ -46,8 +46,9 @@
 | 
				
			|||||||
              <span>{{ item.name }}</span>
 | 
					              <span>{{ item.name }}</span>
 | 
				
			||||||
              <Tag class="ml_10" v-if="item.isDefault" color="red">默认</Tag>
 | 
					              <Tag class="ml_10" v-if="item.isDefault" color="red">默认</Tag>
 | 
				
			||||||
              <Tag class="ml_10" v-if="item.alias" color="warning">{{
 | 
					              <Tag class="ml_10" v-if="item.alias" color="warning">{{
 | 
				
			||||||
                item.alias
 | 
					                  item.alias
 | 
				
			||||||
              }}</Tag>
 | 
					                }}
 | 
				
			||||||
 | 
					              </Tag>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div>{{ item.mobile }}</div>
 | 
					            <div>{{ item.mobile }}</div>
 | 
				
			||||||
            <div>
 | 
					            <div>
 | 
				
			||||||
@ -59,16 +60,16 @@
 | 
				
			|||||||
                class="ml_10"
 | 
					                class="ml_10"
 | 
				
			||||||
                v-if="!item.isDefault"
 | 
					                v-if="!item.isDefault"
 | 
				
			||||||
                @click.stop="delAddress(item)"
 | 
					                @click.stop="delAddress(item)"
 | 
				
			||||||
                >删除</span
 | 
					              >删除</span
 | 
				
			||||||
              >
 | 
					              >
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="corner-icon" v-show="selectedAddress.id === item.id">
 | 
					            <div class="corner-icon" v-show="selectedAddress.id === item.id">
 | 
				
			||||||
              <div></div>
 | 
					              <div></div>
 | 
				
			||||||
              <Icon type="md-checkmark" />
 | 
					              <Icon type="md-checkmark"/>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="add-address" @click="editAddress('')">
 | 
					          <div class="add-address" @click="editAddress('')">
 | 
				
			||||||
            <Icon type="ios-add-circle-outline" />
 | 
					            <Icon type="ios-add-circle-outline"/>
 | 
				
			||||||
            <div>添加新地址</div>
 | 
					            <div>添加新地址</div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -79,8 +80,8 @@
 | 
				
			|||||||
          v-if="addressList.length > 3"
 | 
					          v-if="addressList.length > 3"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          {{ moreAddr ? "收起地址" : "更多地址" }}
 | 
					          {{ moreAddr ? "收起地址" : "更多地址" }}
 | 
				
			||||||
          <Icon v-show="!moreAddr" type="md-arrow-dropdown" />
 | 
					          <Icon v-show="!moreAddr" type="md-arrow-dropdown"/>
 | 
				
			||||||
          <Icon v-show="moreAddr" type="md-arrow-dropup" />
 | 
					          <Icon v-show="moreAddr" type="md-arrow-dropup"/>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <!-- 商品信息 -->
 | 
					      <!-- 商品信息 -->
 | 
				
			||||||
@ -97,8 +98,8 @@
 | 
				
			|||||||
          <div class="shop-name">
 | 
					          <div class="shop-name">
 | 
				
			||||||
            <span>
 | 
					            <span>
 | 
				
			||||||
              <span class="hover-color" @click="goShopPage(shop.storeId)">{{
 | 
					              <span class="hover-color" @click="goShopPage(shop.storeId)">{{
 | 
				
			||||||
                shop.storeName
 | 
					                  shop.storeName
 | 
				
			||||||
              }}</span
 | 
					                }}</span
 | 
				
			||||||
              >  
 | 
					              >  
 | 
				
			||||||
            </span>
 | 
					            </span>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
@ -114,19 +115,19 @@
 | 
				
			|||||||
                  goGoodsDetail(goods.goodsSku.id, goods.goodsSku.goodsId)
 | 
					                  goGoodsDetail(goods.goodsSku.id, goods.goodsSku.goodsId)
 | 
				
			||||||
                "
 | 
					                "
 | 
				
			||||||
              >
 | 
					              >
 | 
				
			||||||
                <img :src="goods.goodsSku.thumbnail" alt="" />
 | 
					                <img :src="goods.goodsSku.thumbnail" alt=""/>
 | 
				
			||||||
                <span style="vertical-align: top">{{
 | 
					                <span style="vertical-align: top">{{
 | 
				
			||||||
                  goods.goodsSku.goodsName
 | 
					                    goods.goodsSku.goodsName
 | 
				
			||||||
                }}</span>
 | 
					                  }}</span>
 | 
				
			||||||
              </span>
 | 
					              </span>
 | 
				
			||||||
              <span class="goods-price">{{
 | 
					              <span class="goods-price">{{
 | 
				
			||||||
                goods.goodsSku.price | unitPrice("¥")
 | 
					                  goods.purchasePrice | unitPrice("¥")
 | 
				
			||||||
              }}</span>
 | 
					                }}</span>
 | 
				
			||||||
              <span>x{{ goods.num }}</span>
 | 
					              <span>x{{ goods.num }}</span>
 | 
				
			||||||
              <span>{{ goods.goodsSku.quantity > 0 ? "有货" : "无货" }}</span>
 | 
					              <span>{{ goods.goodsSku.quantity > 0 ? "有货" : "无货" }}</span>
 | 
				
			||||||
              <span class="goods-price">{{
 | 
					              <span class="goods-price">{{
 | 
				
			||||||
                (goods.goodsSku.price * goods.num) | unitPrice("¥")
 | 
					                  goods.subTotal | unitPrice("¥")
 | 
				
			||||||
              }}</span>
 | 
					                }}</span>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="order-mark">
 | 
					          <div class="order-mark">
 | 
				
			||||||
@ -138,7 +139,7 @@
 | 
				
			|||||||
              placeholder="订单备注"
 | 
					              placeholder="订单备注"
 | 
				
			||||||
            />
 | 
					            />
 | 
				
			||||||
            <span style="font-size: 12px; color: #999"
 | 
					            <span style="font-size: 12px; color: #999"
 | 
				
			||||||
              >提示:请勿填写有关支付、收货、发票方面的信息</span
 | 
					            >提示:请勿填写有关支付、收货、发票方面的信息</span
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -147,7 +148,7 @@
 | 
				
			|||||||
      <div class="invoice">
 | 
					      <div class="invoice">
 | 
				
			||||||
        <div class="card-head mt_20 mb_20">
 | 
					        <div class="card-head mt_20 mb_20">
 | 
				
			||||||
          <span class="relative"
 | 
					          <span class="relative"
 | 
				
			||||||
            >发票信息<span class="inv-tips">
 | 
					          >发票信息<span class="inv-tips">
 | 
				
			||||||
              <Icon
 | 
					              <Icon
 | 
				
			||||||
                type="ios-alert-outline"
 | 
					                type="ios-alert-outline"
 | 
				
			||||||
              />开企业抬头发票须填写纳税人识别号,以免影响报销
 | 
					              />开企业抬头发票须填写纳税人识别号,以免影响报销
 | 
				
			||||||
@ -177,18 +178,18 @@
 | 
				
			|||||||
                <span
 | 
					                <span
 | 
				
			||||||
                  v-if="item.couponType === 'PRICE'"
 | 
					                  v-if="item.couponType === 'PRICE'"
 | 
				
			||||||
                  class="fontsize_12 global_color"
 | 
					                  class="fontsize_12 global_color"
 | 
				
			||||||
                  >¥<span class="price">{{
 | 
					                >¥<span class="price">{{
 | 
				
			||||||
                    item.price | unitPrice
 | 
					                    item.price | unitPrice
 | 
				
			||||||
                  }}</span></span
 | 
					                  }}</span></span
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
                <span
 | 
					                <span
 | 
				
			||||||
                  v-if="item.couponType === 'DISCOUNT'"
 | 
					                  v-if="item.couponType === 'DISCOUNT'"
 | 
				
			||||||
                  class="fontsize_12 global_color"
 | 
					                  class="fontsize_12 global_color"
 | 
				
			||||||
                  ><span class="price">{{ item.discount }}</span
 | 
					                ><span class="price">{{ item.discount }}</span
 | 
				
			||||||
                  >折</span
 | 
					                >折</span
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
                <span class="describe"
 | 
					                <span class="describe"
 | 
				
			||||||
                  >满{{ item.consumeThreshold }}元可用</span
 | 
					                >满{{ item.consumeThreshold }}元可用</span
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <p>使用范围:{{ useScope(item.scopeType) }}</p>
 | 
					              <p>使用范围:{{ useScope(item.scopeType) }}</p>
 | 
				
			||||||
@ -206,7 +207,7 @@
 | 
				
			|||||||
              class="c-right"
 | 
					              class="c-right"
 | 
				
			||||||
              v-if="usedCouponId.includes(item.id)"
 | 
					              v-if="usedCouponId.includes(item.id)"
 | 
				
			||||||
              @click="useCoupon(item.id, false)"
 | 
					              @click="useCoupon(item.id, false)"
 | 
				
			||||||
              >放弃优惠</a
 | 
					            >放弃优惠</a
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
            <i class="circle-top"></i>
 | 
					            <i class="circle-top"></i>
 | 
				
			||||||
            <i class="circle-bottom"></i>
 | 
					            <i class="circle-bottom"></i>
 | 
				
			||||||
@ -219,21 +220,27 @@
 | 
				
			|||||||
          <span>{{ totalNum }}件商品,总商品金额:</span
 | 
					          <span>{{ totalNum }}件商品,总商品金额:</span
 | 
				
			||||||
          ><span>{{ priceDetailDTO.goodsPrice | unitPrice("¥") }}</span>
 | 
					          ><span>{{ priceDetailDTO.goodsPrice | unitPrice("¥") }}</span>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div>
 | 
					        <div v-if="priceDetailDTO.freightPrice>0">
 | 
				
			||||||
          <span>运费:</span
 | 
					          <span>运费:</span
 | 
				
			||||||
          ><span>{{ priceDetailDTO.freightPrice | unitPrice("¥") }}</span>
 | 
					          ><span>{{ priceDetailDTO.freightPrice | unitPrice("¥") }}</span>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div>
 | 
					        <div v-if="priceDetailDTO.discountPrice>0">
 | 
				
			||||||
          <span>优惠金额:</span
 | 
					          <span>优惠金额:</span
 | 
				
			||||||
          ><span
 | 
					          ><span
 | 
				
			||||||
            >-{{
 | 
					        >-{{
 | 
				
			||||||
              (priceDetailDTO.discountPrice +
 | 
					            priceDetailDTO.discountPrice | unitPrice("¥")
 | 
				
			||||||
                priceDetailDTO.couponPrice +
 | 
					          }}</span
 | 
				
			||||||
                priceDetailDTO.updatePrice)
 | 
					        >
 | 
				
			||||||
                | unitPrice("¥")
 | 
					 | 
				
			||||||
            }}</span
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div v-if="priceDetailDTO.couponPrice>0">
 | 
				
			||||||
 | 
					          <span>优惠券金额:</span
 | 
				
			||||||
 | 
					          ><span
 | 
				
			||||||
 | 
					        >-{{
 | 
				
			||||||
 | 
					            priceDetailDTO.couponPrice | unitPrice("¥")
 | 
				
			||||||
 | 
					          }}</span
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <div v-if="$route.query.way === 'POINTS'">
 | 
					        <div v-if="$route.query.way === 'POINTS'">
 | 
				
			||||||
          <span>应付积分:</span
 | 
					          <span>应付积分:</span
 | 
				
			||||||
          ><span class="actrual-price">{{
 | 
					          ><span class="actrual-price">{{
 | 
				
			||||||
@ -277,7 +284,7 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
import invoiceModal from '@/components/invoiceModal';
 | 
					import invoiceModal from '@/components/invoiceModal';
 | 
				
			||||||
import addressManage from '@/components/addressManage';
 | 
					import addressManage from '@/components/addressManage';
 | 
				
			||||||
import { memberAddress, delMemberAddress } from '@/api/address';
 | 
					import {memberAddress, delMemberAddress} from '@/api/address';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  cartGoodsPay,
 | 
					  cartGoodsPay,
 | 
				
			||||||
  createTrade,
 | 
					  createTrade,
 | 
				
			||||||
@ -285,10 +292,11 @@ import {
 | 
				
			|||||||
  selectCoupon,
 | 
					  selectCoupon,
 | 
				
			||||||
  couponNum
 | 
					  couponNum
 | 
				
			||||||
} from '@/api/cart';
 | 
					} from '@/api/cart';
 | 
				
			||||||
import { canUseCouponList } from '@/api/member.js';
 | 
					import {canUseCouponList} from '@/api/member.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: 'Pay',
 | 
					  name: 'Pay',
 | 
				
			||||||
  components: { invoiceModal, addressManage },
 | 
					  components: {invoiceModal, addressManage},
 | 
				
			||||||
  data () {
 | 
					  data () {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      stepIndex: 1, // 顶部步骤条状态
 | 
					      stepIndex: 1, // 顶部步骤条状态
 | 
				
			||||||
@ -341,7 +349,7 @@ export default {
 | 
				
			|||||||
    getGoodsDetail () {
 | 
					    getGoodsDetail () {
 | 
				
			||||||
      // 订单商品详情
 | 
					      // 订单商品详情
 | 
				
			||||||
      this.$Spin.show();
 | 
					      this.$Spin.show();
 | 
				
			||||||
      cartGoodsPay({ way: this.$route.query.way })
 | 
					      cartGoodsPay({way: this.$route.query.way})
 | 
				
			||||||
        .then((res) => {
 | 
					        .then((res) => {
 | 
				
			||||||
          this.$Spin.hide();
 | 
					          this.$Spin.hide();
 | 
				
			||||||
          if (res.success) {
 | 
					          if (res.success) {
 | 
				
			||||||
@ -385,7 +393,7 @@ export default {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    getCouponNum () {
 | 
					    getCouponNum () {
 | 
				
			||||||
      // 获取可用优惠券数量
 | 
					      // 获取可用优惠券数量
 | 
				
			||||||
      couponNum({ way: this.$route.query.way }).then((res) => {
 | 
					      couponNum({way: this.$route.query.way}).then((res) => {
 | 
				
			||||||
        this.canUseCouponNum = res.result;
 | 
					        this.canUseCouponNum = res.result;
 | 
				
			||||||
        if (res.result) {
 | 
					        if (res.result) {
 | 
				
			||||||
          let storeArr = [];
 | 
					          let storeArr = [];
 | 
				
			||||||
@ -459,14 +467,15 @@ export default {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
          });
 | 
					          });
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        onCancel: () => {}
 | 
					        onCancel: () => {
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    goGoodsDetail (skuId, goodsId) {
 | 
					    goGoodsDetail (skuId, goodsId) {
 | 
				
			||||||
      // 跳转商品详情
 | 
					      // 跳转商品详情
 | 
				
			||||||
      let routeUrl = this.$router.resolve({
 | 
					      let routeUrl = this.$router.resolve({
 | 
				
			||||||
        path: '/goodsDetail',
 | 
					        path: '/goodsDetail',
 | 
				
			||||||
        query: { skuId, goodsId }
 | 
					        query: {skuId, goodsId}
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      window.open(routeUrl.href, '_blank');
 | 
					      window.open(routeUrl.href, '_blank');
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -474,7 +483,7 @@ export default {
 | 
				
			|||||||
    goShopPage (id) {
 | 
					    goShopPage (id) {
 | 
				
			||||||
      let routeUrl = this.$router.resolve({
 | 
					      let routeUrl = this.$router.resolve({
 | 
				
			||||||
        path: '/Merchant',
 | 
					        path: '/Merchant',
 | 
				
			||||||
        query: { id: id }
 | 
					        query: {id: id}
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      window.open(routeUrl.href, '_blank');
 | 
					      window.open(routeUrl.href, '_blank');
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -529,7 +538,7 @@ export default {
 | 
				
			|||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
              this.$router.push({
 | 
					              this.$router.push({
 | 
				
			||||||
                path: '/payment',
 | 
					                path: '/payment',
 | 
				
			||||||
                query: { orderType: 'TRADE', sn: res.result.sn }
 | 
					                query: {orderType: 'TRADE', sn: res.result.sn}
 | 
				
			||||||
              });
 | 
					              });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
@ -567,30 +576,36 @@ export default {
 | 
				
			|||||||
  justify-content: space-between;
 | 
					  justify-content: space-between;
 | 
				
			||||||
  align-items: center;
 | 
					  align-items: center;
 | 
				
			||||||
  margin: 20px auto 0;
 | 
					  margin: 20px auto 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  div:nth-child(1) {
 | 
					  div:nth-child(1) {
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    justify-content: space-between;
 | 
					    justify-content: space-between;
 | 
				
			||||||
    align-items: center;
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    img {
 | 
					    img {
 | 
				
			||||||
      width: 150px;
 | 
					      width: 150px;
 | 
				
			||||||
      height: auto;
 | 
					      height: auto;
 | 
				
			||||||
      cursor: pointer;
 | 
					      cursor: pointer;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    div:nth-child(2) {
 | 
					    div:nth-child(2) {
 | 
				
			||||||
      width: 200px;
 | 
					      width: 200px;
 | 
				
			||||||
      color: #999;
 | 
					      color: #999;
 | 
				
			||||||
      font-size: 16px;
 | 
					      font-size: 16px;
 | 
				
			||||||
      margin: 0 20px;
 | 
					      margin: 0 20px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      span {
 | 
					      span {
 | 
				
			||||||
        color: $theme_color;
 | 
					        color: $theme_color;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.cart-steps {
 | 
					.cart-steps {
 | 
				
			||||||
  height: 30px;
 | 
					  height: 30px;
 | 
				
			||||||
  display: flex;
 | 
					  display: flex;
 | 
				
			||||||
  align-items: center;
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  span {
 | 
					  span {
 | 
				
			||||||
    @include content_color($light_content_color);
 | 
					    @include content_color($light_content_color);
 | 
				
			||||||
    height: 30px;
 | 
					    height: 30px;
 | 
				
			||||||
@ -616,6 +631,7 @@ export default {
 | 
				
			|||||||
    color: #ff8f23;
 | 
					    color: #ff8f23;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** logo end */
 | 
					/** logo end */
 | 
				
			||||||
/** content start */
 | 
					/** content start */
 | 
				
			||||||
.content {
 | 
					.content {
 | 
				
			||||||
@ -624,10 +640,12 @@ export default {
 | 
				
			|||||||
  min-height: 200px;
 | 
					  min-height: 200px;
 | 
				
			||||||
  padding: 15px 25px;
 | 
					  padding: 15px 25px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 地址管理 */
 | 
					/** 地址管理 */
 | 
				
			||||||
.address-manage {
 | 
					.address-manage {
 | 
				
			||||||
  display: flex;
 | 
					  display: flex;
 | 
				
			||||||
  flex-wrap: wrap;
 | 
					  flex-wrap: wrap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  > div {
 | 
					  > div {
 | 
				
			||||||
    border: 1px dotted #949494;
 | 
					    border: 1px dotted #949494;
 | 
				
			||||||
    width: 265px;
 | 
					    width: 265px;
 | 
				
			||||||
@ -637,47 +655,58 @@ export default {
 | 
				
			|||||||
    cursor: pointer;
 | 
					    cursor: pointer;
 | 
				
			||||||
    color: #999;
 | 
					    color: #999;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .add-address {
 | 
					  .add-address {
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    align-items: center;
 | 
					    align-items: center;
 | 
				
			||||||
    justify-content: center;
 | 
					    justify-content: center;
 | 
				
			||||||
    flex-direction: column;
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .ivu-icon {
 | 
					    .ivu-icon {
 | 
				
			||||||
      font-size: 24px;
 | 
					      font-size: 24px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .address-item {
 | 
					  .address-item {
 | 
				
			||||||
    position: relative;
 | 
					    position: relative;
 | 
				
			||||||
    font-size: 12px;
 | 
					    font-size: 12px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    > div:nth-child(1) {
 | 
					    > div:nth-child(1) {
 | 
				
			||||||
      margin-bottom: 10px;
 | 
					      margin-bottom: 10px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      span {
 | 
					      span {
 | 
				
			||||||
        margin-right: 10px;
 | 
					        margin-right: 10px;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      > span:nth-child(1) {
 | 
					      > span:nth-child(1) {
 | 
				
			||||||
        color: #000000;
 | 
					        color: #000000;
 | 
				
			||||||
        font-size: 14px;
 | 
					        font-size: 14px;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .edit-btn {
 | 
					    .edit-btn {
 | 
				
			||||||
      font-size: 12px;
 | 
					      font-size: 12px;
 | 
				
			||||||
      position: absolute;
 | 
					      position: absolute;
 | 
				
			||||||
      top: 15px;
 | 
					      top: 15px;
 | 
				
			||||||
      right: 20px;
 | 
					      right: 20px;
 | 
				
			||||||
      color: $theme_color;
 | 
					      color: $theme_color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      span:hover {
 | 
					      span:hover {
 | 
				
			||||||
        border-bottom: 1px solid $theme_color;
 | 
					        border-bottom: 1px solid $theme_color;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .corner-icon {
 | 
					    .corner-icon {
 | 
				
			||||||
      position: absolute;
 | 
					      position: absolute;
 | 
				
			||||||
      right: -1px;
 | 
					      right: -1px;
 | 
				
			||||||
      bottom: -1px;
 | 
					      bottom: -1px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      div {
 | 
					      div {
 | 
				
			||||||
        width: 0;
 | 
					        width: 0;
 | 
				
			||||||
        border-top: 20px solid transparent;
 | 
					        border-top: 20px solid transparent;
 | 
				
			||||||
        border-right: 20px solid $theme_color;
 | 
					        border-right: 20px solid $theme_color;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      .ivu-icon {
 | 
					      .ivu-icon {
 | 
				
			||||||
        font-size: 12px;
 | 
					        font-size: 12px;
 | 
				
			||||||
        position: absolute;
 | 
					        position: absolute;
 | 
				
			||||||
@ -688,29 +717,36 @@ export default {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .border-red {
 | 
					  .border-red {
 | 
				
			||||||
    border-color: $theme_color;
 | 
					    border-color: $theme_color;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 购买商品列表 start */
 | 
					/** 购买商品列表 start */
 | 
				
			||||||
.shop-name {
 | 
					.shop-name {
 | 
				
			||||||
  display: flex;
 | 
					  display: flex;
 | 
				
			||||||
  justify-content: space-between;
 | 
					  justify-content: space-between;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  > span:nth-child(1) {
 | 
					  > span:nth-child(1) {
 | 
				
			||||||
    font-weight: bold;
 | 
					    font-weight: bold;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .ivu-icon {
 | 
					    .ivu-icon {
 | 
				
			||||||
      color: #ff8f23;
 | 
					      color: #ff8f23;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      &:hover {
 | 
					      &:hover {
 | 
				
			||||||
        color: $theme_color;
 | 
					        color: $theme_color;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  > span:nth-child(2) {
 | 
					  > span:nth-child(2) {
 | 
				
			||||||
    color: #999;
 | 
					    color: #999;
 | 
				
			||||||
    position: relative;
 | 
					    position: relative;
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    width: 200px;
 | 
					    width: 200px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .delivery-list {
 | 
					  .delivery-list {
 | 
				
			||||||
    position: absolute;
 | 
					    position: absolute;
 | 
				
			||||||
    right: 0;
 | 
					    right: 0;
 | 
				
			||||||
@ -722,19 +758,23 @@ export default {
 | 
				
			|||||||
    width: 200px;
 | 
					    width: 200px;
 | 
				
			||||||
    min-height: 100px;
 | 
					    min-height: 100px;
 | 
				
			||||||
    padding: 10px;
 | 
					    padding: 10px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    li {
 | 
					    li {
 | 
				
			||||||
      width: 90px;
 | 
					      width: 90px;
 | 
				
			||||||
      height: 30px;
 | 
					      height: 30px;
 | 
				
			||||||
      text-align: center;
 | 
					      text-align: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      &:hover {
 | 
					      &:hover {
 | 
				
			||||||
        cursor: pointer;
 | 
					        cursor: pointer;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.goods-list {
 | 
					.goods-list {
 | 
				
			||||||
  background-color: #f8f8f8;
 | 
					  background-color: #f8f8f8;
 | 
				
			||||||
  margin: 10px 0 20px 0;
 | 
					  margin: 10px 0 20px 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .goods-item {
 | 
					  .goods-item {
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    align-items: center;
 | 
					    align-items: center;
 | 
				
			||||||
@ -742,34 +782,42 @@ export default {
 | 
				
			|||||||
    padding: 20px 0;
 | 
					    padding: 20px 0;
 | 
				
			||||||
    margin: 0 20px;
 | 
					    margin: 0 20px;
 | 
				
			||||||
    border-bottom: 1px dotted #999;
 | 
					    border-bottom: 1px dotted #999;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    &:last-child {
 | 
					    &:last-child {
 | 
				
			||||||
      border: none;
 | 
					      border: none;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    img {
 | 
					    img {
 | 
				
			||||||
      width: 48px;
 | 
					      width: 48px;
 | 
				
			||||||
      height: 48px;
 | 
					      height: 48px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    > span {
 | 
					    > span {
 | 
				
			||||||
      text-align: center;
 | 
					      text-align: center;
 | 
				
			||||||
      width: 100px;
 | 
					      width: 100px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    > span:nth-child(1) {
 | 
					    > span:nth-child(1) {
 | 
				
			||||||
      font-size: 12px;
 | 
					      font-size: 12px;
 | 
				
			||||||
      flex: 1;
 | 
					      flex: 1;
 | 
				
			||||||
      text-align: left;
 | 
					      text-align: left;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    > span:last-child {
 | 
					    > span:last-child {
 | 
				
			||||||
      color: $theme_color;
 | 
					      color: $theme_color;
 | 
				
			||||||
      font-weight: bold;
 | 
					      font-weight: bold;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .goods-price {
 | 
					    .goods-price {
 | 
				
			||||||
      font-size: 16px;
 | 
					      font-size: 16px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.order-mark {
 | 
					.order-mark {
 | 
				
			||||||
  width: 500px;
 | 
					  width: 500px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 购买商品列表 end */
 | 
					/** 购买商品列表 end */
 | 
				
			||||||
/** 发票信息 start */
 | 
					/** 发票信息 start */
 | 
				
			||||||
.invoice {
 | 
					.invoice {
 | 
				
			||||||
@ -781,6 +829,7 @@ export default {
 | 
				
			|||||||
    margin: 0 0 0 10px;
 | 
					    margin: 0 0 0 10px;
 | 
				
			||||||
    font-size: 12px !important;
 | 
					    font-size: 12px !important;
 | 
				
			||||||
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
 | 
					    box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    &::before {
 | 
					    &::before {
 | 
				
			||||||
      content: "";
 | 
					      content: "";
 | 
				
			||||||
      display: inline-block;
 | 
					      display: inline-block;
 | 
				
			||||||
@ -791,6 +840,7 @@ export default {
 | 
				
			|||||||
      position: absolute;
 | 
					      position: absolute;
 | 
				
			||||||
      left: -9px;
 | 
					      left: -9px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .ivu-icon {
 | 
					    .ivu-icon {
 | 
				
			||||||
      color: #ff8f23;
 | 
					      color: #ff8f23;
 | 
				
			||||||
      margin-right: 3px;
 | 
					      margin-right: 3px;
 | 
				
			||||||
@ -798,19 +848,23 @@ export default {
 | 
				
			|||||||
      font-weight: bold;
 | 
					      font-weight: bold;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .inovice-content {
 | 
					  .inovice-content {
 | 
				
			||||||
    > span {
 | 
					    > span {
 | 
				
			||||||
      margin-right: 10px;
 | 
					      margin-right: 10px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    > span:last-child {
 | 
					    > span:last-child {
 | 
				
			||||||
      color: $theme_color;
 | 
					      color: $theme_color;
 | 
				
			||||||
      cursor: pointer;
 | 
					      cursor: pointer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      &:hover {
 | 
					      &:hover {
 | 
				
			||||||
        border-bottom: 1px solid $theme_color;
 | 
					        border-bottom: 1px solid $theme_color;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 发票信息 end */
 | 
					/** 发票信息 end */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 订单价格 */
 | 
					/** 订单价格 */
 | 
				
			||||||
@ -819,18 +873,21 @@ export default {
 | 
				
			|||||||
  margin-top: 30px;
 | 
					  margin-top: 30px;
 | 
				
			||||||
  font-size: 16px;
 | 
					  font-size: 16px;
 | 
				
			||||||
  color: #999;
 | 
					  color: #999;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  > div > span:nth-child(2) {
 | 
					  > div > span:nth-child(2) {
 | 
				
			||||||
    width: 130px;
 | 
					    width: 130px;
 | 
				
			||||||
    text-align: right;
 | 
					    text-align: right;
 | 
				
			||||||
    display: inline-block;
 | 
					    display: inline-block;
 | 
				
			||||||
    margin-top: 10px;
 | 
					    margin-top: 10px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .actrual-price {
 | 
					  .actrual-price {
 | 
				
			||||||
    color: $theme_color;
 | 
					    color: $theme_color;
 | 
				
			||||||
    font-weight: bold;
 | 
					    font-weight: bold;
 | 
				
			||||||
    font-size: 20px;
 | 
					    font-size: 20px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** content end */
 | 
					/** content end */
 | 
				
			||||||
/** 底部支付栏 */
 | 
					/** 底部支付栏 */
 | 
				
			||||||
.order-footer {
 | 
					.order-footer {
 | 
				
			||||||
@ -842,11 +899,14 @@ export default {
 | 
				
			|||||||
  flex-direction: row-reverse;
 | 
					  flex-direction: row-reverse;
 | 
				
			||||||
  border-top: 1px solid #ddd;
 | 
					  border-top: 1px solid #ddd;
 | 
				
			||||||
  margin: 10px auto;
 | 
					  margin: 10px auto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  div {
 | 
					  div {
 | 
				
			||||||
    text-align: center;
 | 
					    text-align: center;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  position: sticky;
 | 
					  position: sticky;
 | 
				
			||||||
  bottom: 0;
 | 
					  bottom: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .pay {
 | 
					  .pay {
 | 
				
			||||||
    background-color: $theme_color;
 | 
					    background-color: $theme_color;
 | 
				
			||||||
    width: 150px;
 | 
					    width: 150px;
 | 
				
			||||||
@ -857,6 +917,7 @@ export default {
 | 
				
			|||||||
    cursor: pointer;
 | 
					    cursor: pointer;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 公共表头 */
 | 
					/** 公共表头 */
 | 
				
			||||||
.card-head {
 | 
					.card-head {
 | 
				
			||||||
  display: flex;
 | 
					  display: flex;
 | 
				
			||||||
@ -868,44 +929,54 @@ export default {
 | 
				
			|||||||
  span:nth-child(1) {
 | 
					  span:nth-child(1) {
 | 
				
			||||||
    font-size: 18px;
 | 
					    font-size: 18px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  span:nth-child(2) {
 | 
					  span:nth-child(2) {
 | 
				
			||||||
    font-size: 12px;
 | 
					    font-size: 12px;
 | 
				
			||||||
    color: #438cde;
 | 
					    color: #438cde;
 | 
				
			||||||
    cursor: pointer;
 | 
					    cursor: pointer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    &:hover {
 | 
					    &:hover {
 | 
				
			||||||
      color: $theme_color;
 | 
					      color: $theme_color;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.ivu-divider {
 | 
					.ivu-divider {
 | 
				
			||||||
  background: $theme_color;
 | 
					  background: $theme_color;
 | 
				
			||||||
  height: 2px;
 | 
					  height: 2px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.pay-address {
 | 
					.pay-address {
 | 
				
			||||||
  font-size: 12px;
 | 
					  font-size: 12px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.more-addr {
 | 
					.more-addr {
 | 
				
			||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
  margin-top: 10px;
 | 
					  margin-top: 10px;
 | 
				
			||||||
  display: inline-block;
 | 
					  display: inline-block;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.coupon-item {
 | 
					.coupon-item {
 | 
				
			||||||
  width: 260px;
 | 
					  width: 260px;
 | 
				
			||||||
  height: 125px;
 | 
					  height: 125px;
 | 
				
			||||||
  margin-right: 10px;
 | 
					  margin-right: 10px;
 | 
				
			||||||
  margin-bottom: 10px;
 | 
					  margin-bottom: 10px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .c-right {
 | 
					  .c-right {
 | 
				
			||||||
    width: 30px;
 | 
					    width: 30px;
 | 
				
			||||||
    padding: 10px 7px;
 | 
					    padding: 10px 7px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  b {
 | 
					  b {
 | 
				
			||||||
    background: url("../../assets/images/small-circle.png") top left repeat-y;
 | 
					    background: url("../../assets/images/small-circle.png") top left repeat-y;
 | 
				
			||||||
    right: 28px;
 | 
					    right: 28px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .circle-top,
 | 
					  .circle-top,
 | 
				
			||||||
  .circle-bottom {
 | 
					  .circle-bottom {
 | 
				
			||||||
    right: 22px;
 | 
					    right: 22px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .used {
 | 
					  .used {
 | 
				
			||||||
    position: absolute;
 | 
					    position: absolute;
 | 
				
			||||||
    top: 60px;
 | 
					    top: 60px;
 | 
				
			||||||
@ -914,6 +985,7 @@ export default {
 | 
				
			|||||||
    height: 50px;
 | 
					    height: 50px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.coupon-list {
 | 
					.coupon-list {
 | 
				
			||||||
  max-height: 260px;
 | 
					  max-height: 260px;
 | 
				
			||||||
  overflow: scroll;
 | 
					  overflow: scroll;
 | 
				
			||||||
 | 
				
			|||||||
@ -67,6 +67,7 @@ $theme_color: #804ed1;
 | 
				
			|||||||
.mb_10{margin-bottom: 10px;}
 | 
					.mb_10{margin-bottom: 10px;}
 | 
				
			||||||
.mt_10{margin-top: 10px;}
 | 
					.mt_10{margin-top: 10px;}
 | 
				
			||||||
.ml_10{margin-left: 10px;}
 | 
					.ml_10{margin-left: 10px;}
 | 
				
			||||||
 | 
					.ml_5{margin-left: 10px;}
 | 
				
			||||||
.mr_10{margin-right: 10px;}
 | 
					.mr_10{margin-right: 10px;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.pb_20{padding-bottom: 20px;}
 | 
					.pb_20{padding-bottom: 20px;}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,79 +1,47 @@
 | 
				
			|||||||
.search {
 | 
					.search {
 | 
				
			||||||
    .operation {
 | 
					  .operation {
 | 
				
			||||||
        margin-bottom: 2vh;
 | 
					    margin-bottom: 2vh;
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .select-count {
 | 
					  .select-count {
 | 
				
			||||||
        font-weight: 600;
 | 
					    font-weight: 600;
 | 
				
			||||||
        color: #40a9ff;
 | 
					    color: #40a9ff;
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .select-clear {
 | 
					  .select-clear {
 | 
				
			||||||
        margin-left: 10px;
 | 
					    margin-left: 10px;
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    .page {
 | 
					 | 
				
			||||||
        margin-top: 2vh;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .drop-down {
 | 
					 | 
				
			||||||
        margin-left: 5px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.tree-list {
 | 
					.search-input {
 | 
				
			||||||
    position: relative;
 | 
					  width: 270px;
 | 
				
			||||||
    min-height: 80px;
 | 
					  margin-right: 20px;
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.drawer-footer {
 | 
					 | 
				
			||||||
    z-index: 10;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    bottom: 0;
 | 
					 | 
				
			||||||
    left: 0;
 | 
					 | 
				
			||||||
    border-top: 1px solid #e8e8e8;
 | 
					 | 
				
			||||||
    padding: 10px 16px;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    background: #fff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.block-tool .ivu-tooltip,
 | 
					 | 
				
			||||||
.block-tool .ivu-tooltip-rel {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.block-pop .ivu-poptip,
 | 
					 | 
				
			||||||
.block-pop .ivu-poptip-rel {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.search-form {
 | 
					.search-form {
 | 
				
			||||||
  width: 100% !important;
 | 
					  width: 100% !important;
 | 
				
			||||||
  display: flex;
 | 
					  display: flex;
 | 
				
			||||||
  align-items: center;
 | 
					  align-items: center;
 | 
				
			||||||
  background-color: #F0F0F0;
 | 
					  background-color: #f0f0f0;
 | 
				
			||||||
 | 
					  border-radius: 0.4em;
 | 
				
			||||||
  padding: 10px;
 | 
					  padding: 10px;
 | 
				
			||||||
  margin: 0;
 | 
					  margin: 0;
 | 
				
			||||||
  flex-wrap: wrap;
 | 
					  flex-wrap: wrap;
 | 
				
			||||||
  .ivu-form-item{
 | 
					  > .ivu-form-item {
 | 
				
			||||||
    margin:8px 10px !important;
 | 
					    margin: 8px 10px !important;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.padding-row{
 | 
					.padding-row {
 | 
				
			||||||
  margin-top: 15px;
 | 
					  margin-top: 15px;
 | 
				
			||||||
  margin-bottom: 15px;
 | 
					  margin-bottom: 15px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.search-btn{
 | 
					.search-btn {
 | 
				
			||||||
  margin-left: 20px;
 | 
					  margin-left: 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.div-zoom{
 | 
					.div-zoom {
 | 
				
			||||||
  display: -webkit-box;
 | 
					  display: -webkit-box;
 | 
				
			||||||
  -webkit-box-orient: vertical;
 | 
					  -webkit-box-orient: vertical;
 | 
				
			||||||
  -webkit-line-clamp: 4;
 | 
					  -webkit-line-clamp: 4;
 | 
				
			||||||
  overflow: hidden;
 | 
					  overflow: hidden;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -24,9 +24,11 @@
 | 
				
			|||||||
      </Row>
 | 
					      </Row>
 | 
				
			||||||
      <Table v-if="refreshTable" :loading="loading" border :columns="columns" :data="data" ref="table" class="mt_10" @on-selection-change="changeSelect">
 | 
					      <Table v-if="refreshTable" :loading="loading" border :columns="columns" :data="data" ref="table" class="mt_10" @on-selection-change="changeSelect">
 | 
				
			||||||
        <template slot-scope="{ row }" slot="action">
 | 
					        <template slot-scope="{ row }" slot="action">
 | 
				
			||||||
          <Button v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'" type="success" :class="{'mr_10' : row.promotionStatus === 'START' || row.promotionStatus === 'NEW'}" size="small" @click="edit(row)">编辑
 | 
					          <Button v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'" type="info"  size="small" @click="see(row)">编辑
 | 
				
			||||||
          </Button>
 | 
					          </Button>
 | 
				
			||||||
          <Button v-if="row.promotionStatus === 'START' || row.promotionStatus === 'NEW'" type="error" size="small" @click="remove(row)">下架
 | 
					          <Button v-else type="default"  size="small" @click="see(row,'onlyView')">查看
 | 
				
			||||||
 | 
					          </Button>
 | 
				
			||||||
 | 
					          <Button class="ml_5" v-if="row.promotionStatus === 'START' || row.promotionStatus === 'NEW'" type="error" size="small" @click="remove(row)">下架
 | 
				
			||||||
          </Button>
 | 
					          </Button>
 | 
				
			||||||
         
 | 
					         
 | 
				
			||||||
        </template>
 | 
					        </template>
 | 
				
			||||||
@ -313,8 +315,10 @@ export default {
 | 
				
			|||||||
      this.loading = false;
 | 
					      this.loading = false;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    edit(v) {  // 跳转编辑页面
 | 
					    see(v,only) {  // 跳转编辑页面
 | 
				
			||||||
      this.$router.push({ name: "edit-platform-coupon", query: { id: v.id } });
 | 
					     let data 
 | 
				
			||||||
 | 
					      only ? data = { onlyView : true,id: v.id } : data  = { id: v.id } 
 | 
				
			||||||
 | 
					      this.$router.push({ name: "edit-platform-coupon", query:data });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    remove(v) { // 下架优惠券
 | 
					    remove(v) { // 下架优惠券
 | 
				
			||||||
      this.$Modal.confirm({
 | 
					      this.$Modal.confirm({
 | 
				
			||||||
 | 
				
			|||||||
@ -6,68 +6,68 @@
 | 
				
			|||||||
          <h4>基本信息</h4>
 | 
					          <h4>基本信息</h4>
 | 
				
			||||||
          <div class="form-item-view">
 | 
					          <div class="form-item-view">
 | 
				
			||||||
            <FormItem label="活动名称" prop="promotionName">
 | 
					            <FormItem label="活动名称" prop="promotionName">
 | 
				
			||||||
              <Input type="text" v-model="form.promotionName" placeholder="活动名称" clearable style="width: 260px"/>
 | 
					              <Input :disabled="disabled" type="text" v-model="form.promotionName" placeholder="活动名称" clearable style="width: 260px"/>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="优惠券名称" prop="couponName">
 | 
					            <FormItem label="优惠券名称" prop="couponName">
 | 
				
			||||||
              <Input type="text" v-model="form.couponName" placeholder="优惠券名称" clearable style="width: 260px"/>
 | 
					              <Input :disabled="disabled" type="text" v-model="form.couponName" placeholder="优惠券名称" clearable style="width: 260px"/>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="优惠券类型" prop="couponType">
 | 
					            <FormItem label="优惠券类型" prop="couponType">
 | 
				
			||||||
              <Select v-model="form.couponType" style="width: 260px">
 | 
					              <Select :disabled="disabled" v-model="form.couponType" style="width: 260px">
 | 
				
			||||||
                <Option value="DISCOUNT">打折</Option>
 | 
					                <Option value="DISCOUNT">打折</Option>
 | 
				
			||||||
                <Option value="PRICE">减免现金</Option>
 | 
					                <Option value="PRICE">减免现金</Option>
 | 
				
			||||||
              </Select>
 | 
					              </Select>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="折扣" prop="couponDiscount" v-if="form.couponType == 'DISCOUNT'">
 | 
					            <FormItem label="折扣" prop="couponDiscount" v-if="form.couponType == 'DISCOUNT'">
 | 
				
			||||||
              <Input type="number" v-model="form.couponDiscount" placeholder="折扣" clearable style="width: 260px"/>
 | 
					              <Input :disabled="disabled" type="number" v-model="form.couponDiscount" placeholder="折扣" clearable style="width: 260px"/>
 | 
				
			||||||
              <span class="describe">请输入0-10之间数字,可以输入一位小数</span>
 | 
					              <span class="describe">请输入0-10之间数字,可以输入一位小数</span>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="面额" prop="price" v-if="form.couponType == 'PRICE'">
 | 
					            <FormItem label="面额" prop="price" v-if="form.couponType == 'PRICE'">
 | 
				
			||||||
              <Input type="text" v-model="form.price" placeholder="面额" clearable style="width: 260px"/>
 | 
					              <Input :disabled="disabled" type="text" v-model="form.price" placeholder="面额" clearable style="width: 260px"/>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="活动类型" prop="getType">
 | 
					            <FormItem label="活动类型" prop="getType">
 | 
				
			||||||
              <Select v-model="form.getType" style="width: 260px">
 | 
					              <Select :disabled="disabled" v-model="form.getType" style="width: 260px">
 | 
				
			||||||
                <Option value="FREE">免费领取</Option>
 | 
					                <Option value="FREE">免费领取</Option>
 | 
				
			||||||
                <Option value="ACTIVITY">活动赠送</Option>
 | 
					                <Option value="ACTIVITY">活动赠送</Option>
 | 
				
			||||||
              </Select>
 | 
					              </Select>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <FormItem label="店铺承担比例" prop="storeCommission">
 | 
					            <FormItem label="店铺承担比例" prop="storeCommission">
 | 
				
			||||||
              <Input v-model="form.storeCommission" placeholder="店铺承担比例" style="width: 260px">
 | 
					              <Input :disabled="disabled" v-model="form.storeCommission" placeholder="店铺承担比例" style="width: 260px">
 | 
				
			||||||
                <span slot="append">%</span>
 | 
					                <span slot="append">%</span>
 | 
				
			||||||
              </Input>
 | 
					              </Input>
 | 
				
			||||||
              <span class="describe">店铺承担比例,输入0-100之间数值</span>
 | 
					              <span class="describe">店铺承担比例,输入0-100之间数值</span>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="发放数量" prop="publishNum" v-if="form.getType==='FREE'">
 | 
					            <FormItem label="发放数量" prop="publishNum" v-if="form.getType==='FREE'">
 | 
				
			||||||
              <Input v-model="form.publishNum" placeholder="发放数量" style="width: 260px"/>
 | 
					              <Input :disabled="disabled" v-model="form.publishNum" placeholder="发放数量" style="width: 260px"/>
 | 
				
			||||||
              <div class="tips">如果发放数量为0时,则代表不限制发放数量</div>
 | 
					              <div class="tips">如果发放数量为0时,则代表不限制发放数量</div>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="领取数量限制" prop="couponLimitNum" v-if="form.getType==='FREE'">
 | 
					            <FormItem label="领取数量限制" prop="couponLimitNum" v-if="form.getType==='FREE'">
 | 
				
			||||||
              <Input v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px"/>
 | 
					              <Input :disabled="disabled" v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px"/>
 | 
				
			||||||
              <div class="tips">如果领取数量为0时,则代表不限制领取数量</div>
 | 
					              <div class="tips">如果领取数量为0时,则代表不限制领取数量</div>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="范围描述" prop="description">
 | 
					            <FormItem label="范围描述" prop="description">
 | 
				
			||||||
              <Input v-model="form.description" type="textarea" :rows="4" maxlength="50" show-word-limit clearable
 | 
					              <Input :disabled="disabled" v-model="form.description" type="textarea" :rows="4" maxlength="50" show-word-limit clearable
 | 
				
			||||||
                     style="width: 260px"/>
 | 
					                     style="width: 260px"/>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <h4>使用限制</h4>
 | 
					          <h4>使用限制</h4>
 | 
				
			||||||
          <div class="form-item-view">
 | 
					          <div class="form-item-view">
 | 
				
			||||||
            <FormItem label="消费门槛" prop="consumeThreshold">
 | 
					            <FormItem label="消费门槛" prop="consumeThreshold">
 | 
				
			||||||
              <Input type="text" v-model="form.consumeThreshold" placeholder="消费门槛" clearable style="width: 260px"/>
 | 
					              <Input :disabled="disabled" type="text" v-model="form.consumeThreshold" placeholder="消费门槛" clearable style="width: 260px"/>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="有效期" prop="rangeTime">
 | 
					            <FormItem label="有效期" prop="rangeTime">
 | 
				
			||||||
              <div v-if="form.getType == 'ACTIVITY'">
 | 
					              <div v-if="form.getType == 'ACTIVITY'">
 | 
				
			||||||
                <RadioGroup v-model="rangeTimeType">
 | 
					                <RadioGroup v-model="rangeTimeType">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                  <Radio :label="1">
 | 
					                  <Radio :disabled="disabled" :label="1">
 | 
				
			||||||
                    起止时间
 | 
					                    起止时间
 | 
				
			||||||
                  </Radio>
 | 
					                  </Radio>
 | 
				
			||||||
                  <Radio :label="0">固定时间</Radio>
 | 
					                  <Radio :disabled="disabled" :label="0">固定时间</Radio>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                </RadioGroup>
 | 
					                </RadioGroup>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <div v-if="rangeTimeType == 1">
 | 
					              <div v-if="rangeTimeType == 1">
 | 
				
			||||||
                <DatePicker type="datetimerange" v-model="form.rangeTime" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择"
 | 
					                <DatePicker :disabled="disabled" type="datetimerange" v-model="form.rangeTime" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择"
 | 
				
			||||||
                  :options="options" style="width: 260px">
 | 
					                  :options="options" style="width: 260px">
 | 
				
			||||||
                </DatePicker>
 | 
					                </DatePicker>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
@ -80,16 +80,16 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            <FormItem label="使用范围" prop="scopeType">
 | 
					            <FormItem label="使用范围" prop="scopeType">
 | 
				
			||||||
              <RadioGroup type="button" button-style="solid" v-model="form.scopeType">
 | 
					              <RadioGroup type="button" button-style="solid" v-model="form.scopeType">
 | 
				
			||||||
                <Radio label="ALL">全品类</Radio>
 | 
					                <Radio :disabled="disabled" label="ALL">全品类</Radio>
 | 
				
			||||||
                <Radio label="PORTION_GOODS">指定商品</Radio>
 | 
					                <Radio :disabled="disabled" label="PORTION_GOODS">指定商品</Radio>
 | 
				
			||||||
                <Radio label="PORTION_GOODS_CATEGORY">部分商品分类</Radio>
 | 
					                <Radio :disabled="disabled" label="PORTION_GOODS_CATEGORY">部分商品分类</Radio>
 | 
				
			||||||
              </RadioGroup>
 | 
					              </RadioGroup>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <FormItem style="width: 100%" v-if="form.scopeType == 'PORTION_GOODS'">
 | 
					            <FormItem style="width: 100%" v-if="form.scopeType == 'PORTION_GOODS'">
 | 
				
			||||||
              <div style="display: flex; margin-bottom: 10px">
 | 
					              <div style="display: flex; margin-bottom: 10px">
 | 
				
			||||||
                <Button type="primary" @click="openSkuList">选择商品</Button>
 | 
					                <Button :disabled="disabled" type="primary" @click="openSkuList">选择商品</Button>
 | 
				
			||||||
                <Button type="error" ghost style="margin-left: 10px" @click="delSelectGoods">批量删除</Button>
 | 
					                <Button :disabled="disabled" type="error" ghost style="margin-left: 10px" @click="delSelectGoods">批量删除</Button>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <Table border :columns="columns" :data="form.promotionGoodsList" @on-selection-change="changeSelect">
 | 
					              <Table border :columns="columns" :data="form.promotionGoodsList" @on-selection-change="changeSelect">
 | 
				
			||||||
                <template slot-scope="{ row }" slot="QRCode">
 | 
					                <template slot-scope="{ row }" slot="QRCode">
 | 
				
			||||||
@ -100,13 +100,13 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            <FormItem v-if="form.scopeType == 'PORTION_GOODS_CATEGORY'">
 | 
					            <FormItem v-if="form.scopeType == 'PORTION_GOODS_CATEGORY'">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              <Cascader :data="goodsCategoryList" style="width:260px;"
 | 
					              <Cascader :disabled="disabled" :data="goodsCategoryList" style="width:260px;"
 | 
				
			||||||
                v-model="form.scopeIdGoods"></Cascader>
 | 
					                v-model="form.scopeIdGoods"></Cascader>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <div>
 | 
					            <div>
 | 
				
			||||||
              <Button type="text" @click="closeCurrentPage">返回</Button>
 | 
					              <Button :disabled="disabled" type="text" @click="closeCurrentPage">返回</Button>
 | 
				
			||||||
              <Button type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
 | 
					              <Button :disabled="disabled" type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -173,6 +173,7 @@ export default {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
 | 
					      disabled: this.$route.query.onlyView,
 | 
				
			||||||
      rangeTimeType: 1, // 当前时间类型
 | 
					      rangeTimeType: 1, // 当前时间类型
 | 
				
			||||||
      modalType: 0, // 是否编辑
 | 
					      modalType: 0, // 是否编辑
 | 
				
			||||||
      form: {
 | 
					      form: {
 | 
				
			||||||
@ -307,12 +308,10 @@ export default {
 | 
				
			|||||||
        if (!data.promotionGoodsList) data.promotionGoodsList = [];
 | 
					        if (!data.promotionGoodsList) data.promotionGoodsList = [];
 | 
				
			||||||
        if (data.scopeType == "PORTION_GOODS_CATEGORY") {
 | 
					        if (data.scopeType == "PORTION_GOODS_CATEGORY") {
 | 
				
			||||||
          let prevCascader = data.scopeId.split(",");
 | 
					          let prevCascader = data.scopeId.split(",");
 | 
				
			||||||
 | 
					 | 
				
			||||||
          // console.log(prevCascader);
 | 
					 | 
				
			||||||
          function next(params, prev) {
 | 
					          function next(params, prev) {
 | 
				
			||||||
            for (let i = 0; i < params.length; i++) {
 | 
					            for (let i = 0; i < params.length; i++) {
 | 
				
			||||||
              const item = params[i];
 | 
					              const item = params[i];
 | 
				
			||||||
              console.log(item);
 | 
					            
 | 
				
			||||||
              if (item.children) {
 | 
					              if (item.children) {
 | 
				
			||||||
                next(item.children, [...prev, item]);
 | 
					                next(item.children, [...prev, item]);
 | 
				
			||||||
              } else {
 | 
					              } else {
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,6 @@ let externals = {
 | 
				
			|||||||
  "js-cookie": "Cookies",
 | 
					  "js-cookie": "Cookies",
 | 
				
			||||||
  wangeditor: "wangEditor",
 | 
					  wangeditor: "wangEditor",
 | 
				
			||||||
  "sockjs-client": "SockJS",
 | 
					  "sockjs-client": "SockJS",
 | 
				
			||||||
  vuedraggable: "vuedraggable",
 | 
					 | 
				
			||||||
  "@antv/g2": "G2",
 | 
					  "@antv/g2": "G2",
 | 
				
			||||||
  dplayer: "DPlayer"
 | 
					  dplayer: "DPlayer"
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -42,7 +41,6 @@ let cdn = {
 | 
				
			|||||||
    "https://cdn.jsdelivr.net/npm/dplayer@1.25.0/dist/DPlayer.min.js",
 | 
					    "https://cdn.jsdelivr.net/npm/dplayer@1.25.0/dist/DPlayer.min.js",
 | 
				
			||||||
    "https://cdn.jsdelivr.net/npm/wangeditor@latest/dist/wangEditor.min.js",
 | 
					    "https://cdn.jsdelivr.net/npm/wangeditor@latest/dist/wangEditor.min.js",
 | 
				
			||||||
    "https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js",
 | 
					    "https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js",
 | 
				
			||||||
    "https://cdn.jsdelivr.net/npm/vuedraggable@2.23.2/dist/vuedraggable.umd.min.js",
 | 
					 | 
				
			||||||
    "https://gw.alipayobjects.com/os/lib/antv/g2/4.1.24/dist/g2.min.js"
 | 
					    "https://gw.alipayobjects.com/os/lib/antv/g2/4.1.24/dist/g2.min.js"
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										29
									
								
								seller/public/config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					var BASE = {
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * @description api请求基础路径
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  API_DEV: {
 | 
				
			||||||
 | 
					    common: "https://common-api.pickmall.cn",
 | 
				
			||||||
 | 
					    buyer: "https://buyer-api.pickmall.cn",
 | 
				
			||||||
 | 
					    seller: "https://store-api.pickmall.cn",
 | 
				
			||||||
 | 
					    manager: "https://admin-api.pickmall.cn"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  API_PROD: {
 | 
				
			||||||
 | 
					    common: "https://common-api.pickmall.cn",
 | 
				
			||||||
 | 
					    buyer: "https://buyer-api.pickmall.cn",
 | 
				
			||||||
 | 
					    seller: "https://store-api.pickmall.cn",
 | 
				
			||||||
 | 
					    manager: "https://admin-api.pickmall.cn"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * @description // 跳转买家端地址 pc端
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  PC_URL: "https://pc-b2b2c.pickmall.cn",
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * @description  // 跳转买家端地址 wap端
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  WAP_URL: "https://m-b2b2c.pickmall.cn",
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   *  @description api请求基础路径前缀
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  PREFIX: "/store"
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -5,7 +5,7 @@
 | 
				
			|||||||
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 | 
					    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 | 
				
			||||||
    <!-- <meta name="viewport" content="width=device-width,initial-scale=1.0"> -->
 | 
					    <!-- <meta name="viewport" content="width=device-width,initial-scale=1.0"> -->
 | 
				
			||||||
    <link rel="icon" href="./logo.ico" type="image/x-icon" />
 | 
					    <link rel="icon" href="./logo.ico" type="image/x-icon" />
 | 
				
			||||||
    <title>lili store</title>
 | 
					    <title>store</title>
 | 
				
			||||||
    <meta name="keywords" content="keywords" />
 | 
					    <meta name="keywords" content="keywords" />
 | 
				
			||||||
    <meta name="description" content="description" />
 | 
					    <meta name="description" content="description" />
 | 
				
			||||||
    <!-- built files will be auto injected -->
 | 
					    <!-- built files will be auto injected -->
 | 
				
			||||||
@ -67,6 +67,7 @@
 | 
				
			|||||||
    <% for(var js of htmlWebpackPlugin.options.cdn.js) { %>
 | 
					    <% for(var js of htmlWebpackPlugin.options.cdn.js) { %>
 | 
				
			||||||
    <script src="<%=js%>"></script>
 | 
					    <script src="<%=js%>"></script>
 | 
				
			||||||
    <% } %>
 | 
					    <% } %>
 | 
				
			||||||
 | 
					    <script src="./config.js"></script>
 | 
				
			||||||
    <noscript>
 | 
					    <noscript>
 | 
				
			||||||
      <strong
 | 
					      <strong
 | 
				
			||||||
        >We're sorry but lili-admin doesn't work properly without JavaScript
 | 
					        >We're sorry but lili-admin doesn't work properly without JavaScript
 | 
				
			||||||
 | 
				
			|||||||
@ -1 +0,0 @@
 | 
				
			|||||||
<svg height="100%" width="100%" id="svg" viewBox="0 0 1440 400" xmlns="http://www.w3.org/2000/svg" class="transition duration-300 ease-in-out delay-150"><defs><linearGradient id="gradient"><stop offset="5%" stop-color="#fab741ff"></stop><stop offset="95%" stop-color="#f78da7ff"></stop></linearGradient></defs><path d="M 0,400 C 0,400 0,200 0,200 C 45.64618509382542,216.47686725610436 91.29237018765085,232.9537345122087 133,241 C 174.70762981234915,249.0462654877913 212.47670434322208,248.66192920726948 257,220 C 301.5232956567779,191.33807079273052 352.80081243946097,134.39854865871342 396,148 C 439.19918756053903,161.60145134128658 474.3200458989338,245.7438761578768 511,266 C 547.6799541010662,286.2561238421232 585.9190039648037,242.62594670977953 635,230 C 684.0809960351963,217.37405329022047 744.0039382418512,235.75233700300504 792,247 C 839.9960617581488,258.24766299699496 876.0652430677914,262.3647052782003 912,253 C 947.9347569322086,243.63529472179968 983.7350894869837,220.78884188419372 1025,189 C 1066.2649105130163,157.21115811580628 1112.9943989842734,116.47992718502479 1162,127 C 1211.0056010157266,137.5200728149752 1262.2873145759218,199.2914493757072 1309,220 C 1355.7126854240782,240.7085506242928 1397.8563427120391,220.3542753121464 1440,200 C 1440,200 1440,400 1440,400 Z" stroke="none" stroke-width="0" fill="url(#gradient)" class="transition-all duration-300 ease-in-out delay-150"></path></svg>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 2.3 KiB  | 
| 
		 Before Width: | Height: | Size: 6.4 KiB  | 
| 
		 Before Width: | Height: | Size: 6.2 KiB  | 
| 
		 Before Width: | Height: | Size: 6.1 KiB  | 
| 
		 Before Width: | Height: | Size: 5.5 KiB  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB  | 
| 
		 Before Width: | Height: | Size: 41 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
		 Before Width: | Height: | Size: 1.1 KiB  | 
| 
		 Before Width: | Height: | Size: 17 KiB  | 
| 
		 Before Width: | Height: | Size: 70 KiB  | 
| 
		 Before Width: | Height: | Size: 80 KiB  | 
| 
		 Before Width: | Height: | Size: 390 KiB After Width: | Height: | Size: 11 KiB  | 
| 
		 Before Width: | Height: | Size: 9.1 KiB  | 
| 
		 Before Width: | Height: | Size: 17 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
@ -3,7 +3,6 @@ export default {
 | 
				
			|||||||
   * @description 配置显示在浏览器标签的title
 | 
					   * @description 配置显示在浏览器标签的title
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  title: "lilishop",
 | 
					  title: "lilishop",
 | 
				
			||||||
 | 
					 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * @description token在Cookie中存储的天数,默认1天
 | 
					   * @description token在Cookie中存储的天数,默认1天
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,4 @@
 | 
				
			|||||||
import axios from "axios";
 | 
					import axios from "axios";
 | 
				
			||||||
import config from "@/config";
 | 
					 | 
				
			||||||
import { getStore, setStore } from "./storage";
 | 
					import { getStore, setStore } from "./storage";
 | 
				
			||||||
import { router } from "../router/index";
 | 
					import { router } from "../router/index";
 | 
				
			||||||
import { Message } from "view-design";
 | 
					import { Message } from "view-design";
 | 
				
			||||||
@ -9,12 +8,12 @@ import { handleRefreshToken } from "@/api/index";
 | 
				
			|||||||
// 统一请求路径前缀
 | 
					// 统一请求路径前缀
 | 
				
			||||||
export const baseUrl =
 | 
					export const baseUrl =
 | 
				
			||||||
  (process.env.NODE_ENV === "development"
 | 
					  (process.env.NODE_ENV === "development"
 | 
				
			||||||
    ? config.api_dev.seller
 | 
					    ?  BASE.API_DEV.seller
 | 
				
			||||||
    : config.api_prod.seller) + config.baseUrlPrefix;
 | 
					    : BASE.API_PROD.seller) + BASE.PREFIX;
 | 
				
			||||||
export const commonUrl =
 | 
					export const commonUrl =
 | 
				
			||||||
  process.env.NODE_ENV === "development"
 | 
					  process.env.NODE_ENV === "development"
 | 
				
			||||||
    ? config.api_dev.common
 | 
					    ? BASE.API_DEV.common
 | 
				
			||||||
    : config.api_prod.common;
 | 
					    : BASE.API_PROD.common;
 | 
				
			||||||
// 文件上传接口
 | 
					// 文件上传接口
 | 
				
			||||||
export const uploadFile = commonUrl + "/common/upload/file";
 | 
					export const uploadFile = commonUrl + "/common/upload/file";
 | 
				
			||||||
var isRefreshToken = 0;
 | 
					var isRefreshToken = 0;
 | 
				
			||||||
 | 
				
			|||||||
@ -446,7 +446,7 @@ util.initRouterNode = function (routers, data) {  // data为所有子菜单数
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        let meta = {};
 | 
					        let meta = {};
 | 
				
			||||||
        // 给页面添加标题
 | 
					        // 给页面添加标题
 | 
				
			||||||
        meta.title = menu.title ? menu.title + " - lilishop商家后台" : null;
 | 
					        meta.title = menu.title ? menu.title + " - "+config.title+"商家后台" : null;
 | 
				
			||||||
        meta.firstRouterName = menu.firstRouterName
 | 
					        meta.firstRouterName = menu.firstRouterName
 | 
				
			||||||
        meta.keepAlive = menu.keepAlive ? true : false
 | 
					        meta.keepAlive = menu.keepAlive ? true : false
 | 
				
			||||||
        menu.meta = meta;
 | 
					        menu.meta = meta;
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,7 @@ import vueQr from "vue-qr";
 | 
				
			|||||||
import App from "./App";
 | 
					import App from "./App";
 | 
				
			||||||
import { router } from "./router/index";
 | 
					import { router } from "./router/index";
 | 
				
			||||||
import store from "./store";
 | 
					import store from "./store";
 | 
				
			||||||
 | 
					import config from '@/config/index'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  getRequest,
 | 
					  getRequest,
 | 
				
			||||||
@ -49,18 +50,18 @@ Vue.prototype.setStore = setStore;
 | 
				
			|||||||
Vue.prototype.getStore = getStore;
 | 
					Vue.prototype.getStore = getStore;
 | 
				
			||||||
Vue.prototype.removeStore = removeStore;
 | 
					Vue.prototype.removeStore = removeStore;
 | 
				
			||||||
Vue.prototype.md5 = md5;
 | 
					Vue.prototype.md5 = md5;
 | 
				
			||||||
const buyerUrlPC = "https://pc-b2b2c.pickmall.cn"; // 跳转买家端地址 pc端
 | 
					const PC_URL = config.PC_URL; // 跳转买家端地址 pc端
 | 
				
			||||||
const buyerUrlWap = "https://m-b2b2c.pickmall.cn"; // 跳转买家端地址 wap端
 | 
					const WAP_URL = config.WAP_URL; // 跳转买家端地址 wap端
 | 
				
			||||||
Vue.prototype.linkTo = function(goodsId, skuId) {
 | 
					Vue.prototype.linkTo = function(goodsId, skuId) {
 | 
				
			||||||
  // 跳转买家端商品
 | 
					  // 跳转买家端商品
 | 
				
			||||||
  window.open(
 | 
					  window.open(
 | 
				
			||||||
    `${buyerUrlPC}/goodsDetail?skuId=${skuId}&goodsId=${goodsId}`,
 | 
					    `${PC_URL}/goodsDetail?skuId=${skuId}&goodsId=${goodsId}`,
 | 
				
			||||||
    "_blank"
 | 
					    "_blank"
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Vue.prototype.wapLinkTo = function(goodsId, skuId) {
 | 
					Vue.prototype.wapLinkTo = function(goodsId, skuId) {
 | 
				
			||||||
  // app端二维码
 | 
					  // app端二维码
 | 
				
			||||||
  return `${buyerUrlWap}/pages/product/goods?id=${skuId}&goodsId=${goodsId}`;
 | 
					  return `${WAP_URL}/pages/product/goods?id=${skuId}&goodsId=${goodsId}`;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Array.prototype.remove = function(from, to) {
 | 
					Array.prototype.remove = function(from, to) {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,110 +1,133 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//自动移滚动条样式
 | 
					//自动移滚动条样式
 | 
				
			||||||
::-webkit-scrollbar{
 | 
					::-webkit-scrollbar {
 | 
				
			||||||
  width: 1px;
 | 
					  width: 1px;
 | 
				
			||||||
  height: 5px;
 | 
					  height: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
::-webkit-scrollbar-thumb{
 | 
					::-webkit-scrollbar-thumb {
 | 
				
			||||||
  border-radius: 1em;
 | 
					  border-radius: 1em;
 | 
				
			||||||
  background-color: rgba(50,50,50,.3);
 | 
					  background-color: rgba(50, 50, 50, 0.3);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
::-webkit-scrollbar-track{
 | 
					::-webkit-scrollbar-track {
 | 
				
			||||||
  border-radius: 1em;
 | 
					  border-radius: 1em;
 | 
				
			||||||
  background-color: rgba(50,50,50,.1);
 | 
					  background-color: rgba(50, 50, 50, 0.1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.flex{
 | 
					.flex {
 | 
				
			||||||
  display: flex !important;
 | 
					  display: flex !important;
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.flex_justify_content{
 | 
					.flex-j-c {
 | 
				
			||||||
  justify-content: center;
 | 
					  justify-content: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.flex_align_item{
 | 
					.flex-a-c {
 | 
				
			||||||
  align-items: center;
 | 
					  align-items: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.global_text_left {
 | 
					.width_1200 {
 | 
				
			||||||
  text-align: left;
 | 
					  width: 1200px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.global_text_right {
 | 
					.width_800 {
 | 
				
			||||||
  text-align: right;
 | 
					  width: 800px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.global_float_left {
 | 
					.width_400 {
 | 
				
			||||||
  float: left;
 | 
					  width: 400px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.global_float_right {
 | 
					.width_300 {
 | 
				
			||||||
    float: right;
 | 
					  width: 300px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.clearfix::after{
 | 
					.width_200 {
 | 
				
			||||||
    content: '';
 | 
					  width: 200px;
 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    clear: both;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.width_1200{width: 1200px;}
 | 
					.width_100 {
 | 
				
			||||||
.width_800{width: 800px;}
 | 
					  width: 100px;
 | 
				
			||||||
.width_400{width: 400px;}
 | 
					 | 
				
			||||||
.width_300{width: 300px;}
 | 
					 | 
				
			||||||
.width_200{width: 200px;}
 | 
					 | 
				
			||||||
.width_100{width: 100px;}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.fz_12{font-size: 12px;}
 | 
					 | 
				
			||||||
.fz_14{font-size: 14px;}
 | 
					 | 
				
			||||||
.fz_16{font-size: 16px;}
 | 
					 | 
				
			||||||
.fz_18{font-size: 18px;}
 | 
					 | 
				
			||||||
.fw_bold{font-weight: bold;}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.mb_20{margin-bottom: 20px;}
 | 
					 | 
				
			||||||
.mt_20{margin-top: 20px;}
 | 
					 | 
				
			||||||
.ml_20{margin-left: 20px;}
 | 
					 | 
				
			||||||
.mr_20{margin-right: 20px;}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.mb_10{margin-bottom: 10px;}
 | 
					 | 
				
			||||||
.mt_10{margin-top: 10px;}
 | 
					 | 
				
			||||||
.ml_10{margin-left: 10px;}
 | 
					 | 
				
			||||||
.mr_10{margin-right: 10px;}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.pb_20{padding-bottom: 20px;}
 | 
					 | 
				
			||||||
.pt_20{padding-top: 20px;}
 | 
					 | 
				
			||||||
.pl_20{padding-left: 20px;}
 | 
					 | 
				
			||||||
.pr_20{padding-right: 20px;}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.pb_10{padding-bottom: 10px;}
 | 
					 | 
				
			||||||
.pt_10{padding-top: 10px;}
 | 
					 | 
				
			||||||
.pl_10{padding-left: 10px;}
 | 
					 | 
				
			||||||
.pr_10{padding-right: 10px;}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ul,li{
 | 
					 | 
				
			||||||
    list-style: none;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.ellipsis{
 | 
					.fz_12 {
 | 
				
			||||||
    overflow: hidden;
 | 
					  font-size: 12px;
 | 
				
			||||||
    text-overflow:ellipsis;
 | 
					}
 | 
				
			||||||
    white-space: nowrap;
 | 
					.fz_14 {
 | 
				
			||||||
 | 
					  font-size: 14px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.fz_16 {
 | 
				
			||||||
 | 
					  font-size: 16px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.fz_18 {
 | 
				
			||||||
 | 
					  font-size: 18px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.fw_bold {
 | 
				
			||||||
 | 
					  font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mb_20 {
 | 
				
			||||||
 | 
					  margin-bottom: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.mt_20 {
 | 
				
			||||||
 | 
					  margin-top: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.ml_20 {
 | 
				
			||||||
 | 
					  margin-left: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.mr_20 {
 | 
				
			||||||
 | 
					  margin-right: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mb_10 {
 | 
				
			||||||
 | 
					  margin-bottom: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.mt_10 {
 | 
				
			||||||
 | 
					  margin-top: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.ml_10 {
 | 
				
			||||||
 | 
					  margin-left: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.mr_10 {
 | 
				
			||||||
 | 
					  margin-right: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.pb_20 {
 | 
				
			||||||
 | 
					  padding-bottom: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.pt_20 {
 | 
				
			||||||
 | 
					  padding-top: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.pl_20 {
 | 
				
			||||||
 | 
					  padding-left: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.pr_20 {
 | 
				
			||||||
 | 
					  padding-right: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.pb_10 {
 | 
				
			||||||
 | 
					  padding-bottom: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.pt_10 {
 | 
				
			||||||
 | 
					  padding-top: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.pl_10 {
 | 
				
			||||||
 | 
					  padding-left: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.pr_10 {
 | 
				
			||||||
 | 
					  padding-right: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ul,
 | 
				
			||||||
 | 
					li {
 | 
				
			||||||
 | 
					  list-style: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ellipsis {
 | 
				
			||||||
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					  text-overflow: ellipsis;
 | 
				
			||||||
 | 
					  white-space: nowrap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.hover-pointer {
 | 
					.hover-pointer {
 | 
				
			||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * @Author: LMR
 | 
					 | 
				
			||||||
 * @Date: 2020-08-14 11:04:12
 | 
					 | 
				
			||||||
 * @Last Modified by: LMR
 | 
					 | 
				
			||||||
 * @Last Modified time: 2020-08-18 14:21:41
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 主题颜色
 | 
					// 主题颜色
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 明亮主题颜色
 | 
					 | 
				
			||||||
$primary_color: #2d8cf0;
 | 
					 | 
				
			||||||
$primary_light_color: #0f1011;
 | 
					 | 
				
			||||||
$primary_dark_color: #2b85e4;
 | 
					 | 
				
			||||||
$success_color: #19be6b;
 | 
					$success_color: #19be6b;
 | 
				
			||||||
$warning_color: #ff9900;
 | 
					$warning_color: #ff9900;
 | 
				
			||||||
$error_color: #ed3f14;
 | 
					$error_color: #ed3f14;
 | 
				
			||||||
$handle-btn-color: #438cde;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
$theme_color: #ed3f14;
 | 
					$theme_color: #ed3f14;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -119,78 +142,3 @@ $light_white_background_color: #fff;
 | 
				
			|||||||
$dark_background_color: #141414;
 | 
					$dark_background_color: #141414;
 | 
				
			||||||
$dark_sub_background_color: #1d1d1d; //稍微浅一点的
 | 
					$dark_sub_background_color: #1d1d1d; //稍微浅一点的
 | 
				
			||||||
$dark_content_color: #d5d5d5;
 | 
					$dark_content_color: #d5d5d5;
 | 
				
			||||||
 | 
					 | 
				
			||||||
/***** 封装一些方法可用于 黑暗主题 ,明亮主题 *****/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 背景颜色
 | 
					 | 
				
			||||||
@mixin background_color($color) {
 | 
					 | 
				
			||||||
  /*通过该函数设置字体颜色,后期方便统一管理;*/
 | 
					 | 
				
			||||||
  background-color: $color;
 | 
					 | 
				
			||||||
  transition: 0.35s;
 | 
					 | 
				
			||||||
  [data-theme="dark"] & {
 | 
					 | 
				
			||||||
    background-color: $dark_background_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  [data-theme="light"] & {
 | 
					 | 
				
			||||||
    background-color: $light_background_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
// 辅助背景颜色
 | 
					 | 
				
			||||||
@mixin sub_background_color($color) {
 | 
					 | 
				
			||||||
  /*通过该函数设置字体颜色,后期方便统一管理;*/
 | 
					 | 
				
			||||||
  background-color: $color;
 | 
					 | 
				
			||||||
  transition: 0.35s;
 | 
					 | 
				
			||||||
  [data-theme="dark"] & {
 | 
					 | 
				
			||||||
    background-color: $dark_sub_background_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  [data-theme="light"] & {
 | 
					 | 
				
			||||||
    background-color: $light_background_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@mixin white_background_color() {
 | 
					 | 
				
			||||||
  /*通过该函数设置字体颜色,后期方便统一管理;*/
 | 
					 | 
				
			||||||
  background-color: $light_white_background_color;
 | 
					 | 
				
			||||||
  transition: 0.35s;
 | 
					 | 
				
			||||||
  [data-theme="dark"] & {
 | 
					 | 
				
			||||||
    background-color: $dark_sub_background_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  [data-theme="light"] & {
 | 
					 | 
				
			||||||
    background-color: $light_white_background_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 正文颜色
 | 
					 | 
				
			||||||
@mixin content_color($color) {
 | 
					 | 
				
			||||||
  /*通过该函数设置字体颜色,后期方便统一管理;*/
 | 
					 | 
				
			||||||
  color: $color;
 | 
					 | 
				
			||||||
  [data-theme="dark"] & {
 | 
					 | 
				
			||||||
    color: $dark_content_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  [data-theme="light"] & {
 | 
					 | 
				
			||||||
    color: $light_content_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 辅助颜色
 | 
					 | 
				
			||||||
@mixin sub_color($color) {
 | 
					 | 
				
			||||||
  /*通过该函数设置字体颜色,后期方便统一管理;*/
 | 
					 | 
				
			||||||
  color: $color;
 | 
					 | 
				
			||||||
  [data-theme="dark"] & {
 | 
					 | 
				
			||||||
    color: $dark_content_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  [data-theme="light"] & {
 | 
					 | 
				
			||||||
    color: $light_sub_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 标题颜色
 | 
					 | 
				
			||||||
@mixin title_color($color) {
 | 
					 | 
				
			||||||
  /*通过该函数设置字体颜色,后期方便统一管理;*/
 | 
					 | 
				
			||||||
  color: $color;
 | 
					 | 
				
			||||||
  [data-theme="dark"] & {
 | 
					 | 
				
			||||||
    color: $dark_content_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  [data-theme="light"] & {
 | 
					 | 
				
			||||||
    color: $light_title_color;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,70 +1,45 @@
 | 
				
			|||||||
.search {
 | 
					.search {
 | 
				
			||||||
    .operation {
 | 
					  .operation {
 | 
				
			||||||
        margin-bottom: 2vh;
 | 
					    margin-bottom: 2vh;
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .select-count {
 | 
					  .select-count {
 | 
				
			||||||
        font-weight: 600;
 | 
					    font-weight: 600;
 | 
				
			||||||
        color: #40a9ff;
 | 
					    color: #40a9ff;
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .select-clear {
 | 
					  .select-clear {
 | 
				
			||||||
        margin-left: 10px;
 | 
					    margin-left: 10px;
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.tree-list {
 | 
					.search-input {
 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
    min-height: 80px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.drawer-footer {
 | 
					 | 
				
			||||||
    z-index: 10;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    bottom: 0;
 | 
					 | 
				
			||||||
    left: 0;
 | 
					 | 
				
			||||||
    border-top: 1px solid #e8e8e8;
 | 
					 | 
				
			||||||
    padding: 10px 16px;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    background: #fff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.block-tool .ivu-tooltip,
 | 
					 | 
				
			||||||
.block-tool .ivu-tooltip-rel {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.block-pop .ivu-poptip,
 | 
					 | 
				
			||||||
.block-pop .ivu-poptip-rel {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.search-input{
 | 
					 | 
				
			||||||
  width: 270px;
 | 
					  width: 270px;
 | 
				
			||||||
  margin-right: 20px;
 | 
					  margin-right: 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.ivu-form-item{
 | 
					
 | 
				
			||||||
  margin:8px 10px !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.search-form {
 | 
					.search-form {
 | 
				
			||||||
  width: 100% !important;
 | 
					  width: 100% !important;
 | 
				
			||||||
  display: flex;
 | 
					  display: flex;
 | 
				
			||||||
  align-items: center;
 | 
					  align-items: center;
 | 
				
			||||||
  background-color: #F0F0F0;
 | 
					  background-color: #f0f0f0;
 | 
				
			||||||
 | 
					  border-radius: 0.4em;
 | 
				
			||||||
  padding: 10px;
 | 
					  padding: 10px;
 | 
				
			||||||
  margin: 0;
 | 
					  margin: 0;
 | 
				
			||||||
  flex-wrap: wrap;
 | 
					  flex-wrap: wrap;
 | 
				
			||||||
 | 
					  > .ivu-form-item {
 | 
				
			||||||
 | 
					    margin: 8px 10px !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.padding-row{
 | 
					.padding-row {
 | 
				
			||||||
  margin-top: 15px;
 | 
					  margin-top: 15px;
 | 
				
			||||||
  margin-bottom: 15px;
 | 
					  margin-bottom: 15px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.search-btn{
 | 
					.search-btn {
 | 
				
			||||||
  margin-left: 20px;
 | 
					  margin-left: 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.div-zoom{
 | 
					.div-zoom {
 | 
				
			||||||
  display: -webkit-box;
 | 
					  display: -webkit-box;
 | 
				
			||||||
  -webkit-box-orient: vertical;
 | 
					  -webkit-box-orient: vertical;
 | 
				
			||||||
  -webkit-line-clamp: 4;
 | 
					  -webkit-line-clamp: 4;
 | 
				
			||||||
 | 
				
			|||||||
@ -3,10 +3,6 @@
 | 
				
			|||||||
    margin-bottom: 2vh;
 | 
					    margin-bottom: 2vh;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .select-title {
 | 
					 | 
				
			||||||
    font-weight: 600;
 | 
					 | 
				
			||||||
    color: #40a9ff;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .select-clear {
 | 
					  .select-clear {
 | 
				
			||||||
    margin-left: 10px;
 | 
					    margin-left: 10px;
 | 
				
			||||||
@ -30,13 +26,3 @@
 | 
				
			|||||||
  -webkit-box-shadow: inset 0 0 2px #d1d1d1;
 | 
					  -webkit-box-shadow: inset 0 0 2px #d1d1d1;
 | 
				
			||||||
  background: #e4e4e4;
 | 
					  background: #e4e4e4;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
.block-tool .ivu-tooltip,
 | 
					 | 
				
			||||||
.block-tool .ivu-tooltip-rel {
 | 
					 | 
				
			||||||
  display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.block-pop .ivu-poptip,
 | 
					 | 
				
			||||||
.block-pop .ivu-poptip-rel {
 | 
					 | 
				
			||||||
  display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -250,22 +250,4 @@ export default {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
<style lang="scss" scoped>
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
.article {
 | 
					 | 
				
			||||||
  font-size: 16px;
 | 
					 | 
				
			||||||
  font-weight: 400;
 | 
					 | 
				
			||||||
  margin: 12px 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.href-text {
 | 
					 | 
				
			||||||
  font-size: 12px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.operation {
 | 
					 | 
				
			||||||
  margin-bottom: 2vh;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.select-count {
 | 
					 | 
				
			||||||
  font-weight: 600;
 | 
					 | 
				
			||||||
  color: #40a9ff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,22 +1,24 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="foot">
 | 
					  <div class="foot">
 | 
				
			||||||
    <Row type="flex" justify="space-around" class="help">
 | 
					    <Row type="flex" justify="space-around" class="help">
 | 
				
			||||||
      <a class="item" href="https://pickmall.cn/" target="_blank">帮助</a>
 | 
					      <a class="item" :href="config.website" target="_blank">帮助</a>
 | 
				
			||||||
      <a class="item" href="https://pickmall.cn/" target="_blank">隐私</a>
 | 
					      <a class="item" :href="config.website" target="_blank">隐私</a>
 | 
				
			||||||
      <a class="item" href="https://pickmall.cn/" target="_blank">条款</a>
 | 
					      <a class="item" :href="config.website" target="_blank">条款</a>
 | 
				
			||||||
    </Row>
 | 
					    </Row>
 | 
				
			||||||
    <Row type="flex" justify="center" class="copyright">
 | 
					    <Row type="flex" justify="center" class="copyright">
 | 
				
			||||||
      Copyright © {{year}} - Present
 | 
					      Copyright © {{year}} - Present
 | 
				
			||||||
      <a href="https://pickmall.cn/" target="_blank" style="margin:0 5px;">lili-shop</a>
 | 
					      <a :href="config.website" target="_blank" style="margin:0 5px;">{{config.title}}</a>
 | 
				
			||||||
    </Row>
 | 
					    </Row>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
 | 
					import config from '@/config/index'
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: "footer",
 | 
					  name: "footer",
 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
 | 
					      config,
 | 
				
			||||||
      year: new Date().getFullYear(), // 年
 | 
					      year: new Date().getFullYear(), // 年
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div>
 | 
					  <div>
 | 
				
			||||||
    <Row class="header">
 | 
					    <Row class="header">
 | 
				
			||||||
      <img class="logo" src="../../assets/logo.png" >
 | 
					      <img class="logo" src="@/assets/logo.png" >
 | 
				
			||||||
    </Row>
 | 
					    </Row>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,3 @@
 | 
				
			|||||||
.lock-screen-back {
 | 
					 | 
				
			||||||
  border-radius: 50%;
 | 
					 | 
				
			||||||
  z-index: -1;
 | 
					 | 
				
			||||||
  box-shadow: 0 0 0 0 #667aa6 inset;
 | 
					 | 
				
			||||||
  position: fixed;
 | 
					 | 
				
			||||||
  left: 50%;
 | 
					 | 
				
			||||||
  top: 50%;
 | 
					 | 
				
			||||||
  transform: translate(-50%, -50%);
 | 
					 | 
				
			||||||
  transition: all 3s;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.main {
 | 
					.main {
 | 
				
			||||||
  position: absolute;
 | 
					  position: absolute;
 | 
				
			||||||
@ -277,9 +267,6 @@
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.taglist-moving-animation-move {
 | 
					 | 
				
			||||||
  transition: transform 0.3s;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.logo-con {
 | 
					.logo-con {
 | 
				
			||||||
  width: 100%;
 | 
					  width: 100%;
 | 
				
			||||||
@ -313,14 +300,6 @@
 | 
				
			|||||||
  background: #fff;
 | 
					  background: #fff;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.nav-item {
 | 
					 | 
				
			||||||
  font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.main-nav-menu {
 | 
					 | 
				
			||||||
  bottom: 10px;
 | 
					 | 
				
			||||||
  position: relative;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.loading-position {
 | 
					.loading-position {
 | 
				
			||||||
  position: absolute;
 | 
					  position: absolute;
 | 
				
			||||||
 | 
				
			|||||||
@ -35,7 +35,7 @@
 | 
				
			|||||||
          :fetch="exportOrder"
 | 
					          :fetch="exportOrder"
 | 
				
			||||||
          name="待发货订单.xls"
 | 
					          name="待发货订单.xls"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
          <Button type="success">导出待发货订单</Button>
 | 
					          <Button >导出待发货订单</Button>
 | 
				
			||||||
        </download-excel>
 | 
					        </download-excel>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <Table :loading="loading" border :columns="columns" :data="data" ref="table"></Table>
 | 
					      <Table :loading="loading" border :columns="columns" :data="data" ref="table"></Table>
 | 
				
			||||||
 | 
				
			|||||||
@ -27,8 +27,9 @@
 | 
				
			|||||||
      </Row>
 | 
					      </Row>
 | 
				
			||||||
      <Table class="mt_10" :loading="loading" border :columns="columns" :data="data" ref="table" @on-selection-change="changeSelect">
 | 
					      <Table class="mt_10" :loading="loading" border :columns="columns" :data="data" ref="table" @on-selection-change="changeSelect">
 | 
				
			||||||
        <template slot-scope="{ row }" slot="action">
 | 
					        <template slot-scope="{ row }" slot="action">
 | 
				
			||||||
          <Button v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'" type="info" size="small" :style="{'marginRight': row.promotionStatus !== 'CLOSE'?'5px':'0'}" @click="edit(row)">编辑</Button>
 | 
					          <Button v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'" type="info" size="small"  @click="see(row)">编辑</Button>
 | 
				
			||||||
          <Button v-if="row.promotionStatus !== 'CLOSE'" type="error" size="small" @click="remove(row)">下架</Button>
 | 
					          <Button v-else type="default" size="small"  @click="see(row,'only')">查看</Button>
 | 
				
			||||||
 | 
					          <Button v-if="row.promotionStatus !== 'END'" type="error" size="small" :style="{'marginLeft':'5px'}" @click="remove(row)">下架</Button>
 | 
				
			||||||
        </template>
 | 
					        </template>
 | 
				
			||||||
      </Table>
 | 
					      </Table>
 | 
				
			||||||
      <Row type="flex" justify="end" class="mt_10">
 | 
					      <Row type="flex" justify="end" class="mt_10">
 | 
				
			||||||
@ -255,9 +256,12 @@ export default {
 | 
				
			|||||||
      this.loading = false;
 | 
					      this.loading = false;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    // 跳转编辑优惠券页面
 | 
					    // 跳转编辑优惠券页面
 | 
				
			||||||
    edit(v) {
 | 
					    see(v,only) {
 | 
				
			||||||
      this.$router.push({ name: "add-coupon", query: { id: v.id } });
 | 
					      let data 
 | 
				
			||||||
 | 
					      only ? data = { onlyView : true,id: v.id } : data  = { id: v.id } 
 | 
				
			||||||
 | 
					      this.$router.push({ name: "add-coupon", query:data});
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    // 开启优惠券
 | 
					    // 开启优惠券
 | 
				
			||||||
    open(v) {
 | 
					    open(v) {
 | 
				
			||||||
      this.$Modal.confirm({
 | 
					      this.$Modal.confirm({
 | 
				
			||||||
 | 
				
			|||||||
@ -6,63 +6,63 @@
 | 
				
			|||||||
          <h4>基本信息</h4>
 | 
					          <h4>基本信息</h4>
 | 
				
			||||||
          <div class="form-item-view">
 | 
					          <div class="form-item-view">
 | 
				
			||||||
            <FormItem label="活动名称" prop="promotionName">
 | 
					            <FormItem label="活动名称" prop="promotionName">
 | 
				
			||||||
              <Input type="text" v-model="form.promotionName" placeholder="活动名称" clearable style="width: 260px" />
 | 
					              <Input :disabled="disabled" type="text" v-model="form.promotionName" placeholder="活动名称" clearable style="width: 260px" />
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="优惠券名称" prop="couponName">
 | 
					            <FormItem label="优惠券名称" prop="couponName">
 | 
				
			||||||
              <Input type="text" v-model="form.couponName" placeholder="优惠券名称" clearable style="width: 260px" />
 | 
					              <Input :disabled="disabled" type="text" v-model="form.couponName" placeholder="优惠券名称" clearable style="width: 260px" />
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="优惠券类型" prop="couponType">
 | 
					            <FormItem label="优惠券类型" prop="couponType">
 | 
				
			||||||
              <Select v-model="form.couponType" style="width: 260px">
 | 
					              <Select :disabled="disabled" v-model="form.couponType" style="width: 260px">
 | 
				
			||||||
                <Option value="DISCOUNT">打折</Option>
 | 
					                <Option value="DISCOUNT">打折</Option>
 | 
				
			||||||
                <Option value="PRICE">减免现金</Option>
 | 
					                <Option value="PRICE">减免现金</Option>
 | 
				
			||||||
              </Select>
 | 
					              </Select>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="折扣" prop="discount" v-if="form.couponType == 'DISCOUNT'">
 | 
					            <FormItem label="折扣" prop="discount" v-if="form.couponType == 'DISCOUNT'">
 | 
				
			||||||
              <Input type="number" v-model="form.couponDiscount" placeholder="折扣" clearable style="width: 260px" />
 | 
					              <Input :disabled="disabled" type="number" v-model="form.couponDiscount" placeholder="折扣" clearable style="width: 260px" />
 | 
				
			||||||
              <span class="describe">请输入0-10之间数字,可以输入一位小数</span>
 | 
					              <span class="describe">请输入0-10之间数字,可以输入一位小数</span>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="面额" prop="price" v-if="form.couponType == 'PRICE'">
 | 
					            <FormItem label="面额" prop="price" v-if="form.couponType == 'PRICE'">
 | 
				
			||||||
              <Input type="text" v-model="form.price" placeholder="面额" clearable style="width: 260px" />
 | 
					              <Input :disabled="disabled" type="text" v-model="form.price" placeholder="面额" clearable style="width: 260px" />
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="活动类型" prop="getType">
 | 
					            <FormItem label="活动类型" prop="getType">
 | 
				
			||||||
              <Select v-model="form.getType" style="width: 260px">
 | 
					              <Select :disabled="disabled" v-model="form.getType" style="width: 260px">
 | 
				
			||||||
                <Option value="FREE">免费领取</Option>
 | 
					                <Option value="FREE">免费领取</Option>
 | 
				
			||||||
                <Option value="ACTIVITY">活动赠送</Option>
 | 
					                <Option value="ACTIVITY">活动赠送</Option>
 | 
				
			||||||
              </Select>
 | 
					              </Select>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <FormItem label="发放数量" v-if="form.getType == 'FREE'" prop="publishNum">
 | 
					            <FormItem label="发放数量" v-if="form.getType == 'FREE'" prop="publishNum">
 | 
				
			||||||
              <Input v-model="form.publishNum" placeholder="发放数量" style="width: 260px" />
 | 
					              <Input :disabled="disabled" v-model="form.publishNum" placeholder="发放数量" style="width: 260px" />
 | 
				
			||||||
              <span class="tips ml_10">如果发放数量为0时,则代表不限制发放数量</span>
 | 
					              <span class="tips ml_10">如果发放数量为0时,则代表不限制发放数量</span>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <h4>使用限制</h4>
 | 
					          <h4>使用限制</h4>
 | 
				
			||||||
          <div class="form-item-view">
 | 
					          <div class="form-item-view">
 | 
				
			||||||
            <FormItem label="消费门槛" prop="consumeThreshold">
 | 
					            <FormItem label="消费门槛" prop="consumeThreshold">
 | 
				
			||||||
              <Input type="text" v-model="form.consumeThreshold" placeholder="消费门槛" clearable style="width: 260px" />
 | 
					              <Input :disabled="disabled" type="text" v-model="form.consumeThreshold" placeholder="消费门槛" clearable style="width: 260px" />
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="领取限制" v-if="form.getType == 'FREE'" prop="couponLimitNum">
 | 
					            <FormItem label="领取限制" v-if="form.getType == 'FREE'" prop="couponLimitNum">
 | 
				
			||||||
              <Input v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px" />
 | 
					              <Input :disabled="disabled" v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px" />
 | 
				
			||||||
              <span class="tips ml_10">如果领取限制为0时,则代表不限制领取数量</span>
 | 
					              <span class="tips ml_10">如果领取限制为0时,则代表不限制领取数量</span>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="有效期" prop="rangeTime">
 | 
					            <FormItem label="有效期" prop="rangeTime">
 | 
				
			||||||
              <DatePicker type="datetimerange" v-model="form.rangeTime" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择" :options="options" style="width: 260px">
 | 
					              <DatePicker :disabled="disabled" type="datetimerange" v-model="form.rangeTime" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择" :options="options" style="width: 260px">
 | 
				
			||||||
              </DatePicker>
 | 
					              </DatePicker>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <FormItem label="使用范围" prop="scopeType">
 | 
					            <FormItem label="使用范围" prop="scopeType">
 | 
				
			||||||
              <RadioGroup type="button" button-style="solid" v-model="form.scopeType">
 | 
					              <RadioGroup  type="button" button-style="solid" v-model="form.scopeType">
 | 
				
			||||||
                <Radio label="ALL">全品类</Radio>
 | 
					                <Radio :disabled="disabled" label="ALL">全品类</Radio>
 | 
				
			||||||
                <Radio label="PORTION_GOODS">指定商品</Radio>
 | 
					                <Radio :disabled="disabled" label="PORTION_GOODS">指定商品</Radio>
 | 
				
			||||||
                <Radio label="PORTION_GOODS_CATEGORY">部分商品分类</Radio>
 | 
					                <Radio :disabled="disabled" label="PORTION_GOODS_CATEGORY">部分商品分类</Radio>
 | 
				
			||||||
              </RadioGroup>
 | 
					              </RadioGroup>
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <FormItem style="width: 100%" v-if="form.scopeType == 'PORTION_GOODS'">
 | 
					            <FormItem style="width: 100%" v-if="form.scopeType == 'PORTION_GOODS'">
 | 
				
			||||||
              <div style="display: flex; margin-bottom: 10px">
 | 
					              <div style="display: flex; margin-bottom: 10px">
 | 
				
			||||||
                <Button type="primary" @click="openSkuList">选择商品</Button>
 | 
					                <Button :disabled="disabled" type="primary" @click="openSkuList">选择商品</Button>
 | 
				
			||||||
                <Button type="error" ghost style="margin-left: 10px" @click="delSelectGoods">批量删除</Button>
 | 
					                <Button :disabled="disabled" type="error" ghost style="margin-left: 10px" @click="delSelectGoods">批量删除</Button>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <Table class="mt_10" border :columns="columns" :data="form.promotionGoodsList" @on-selection-change="changeSelect">
 | 
					              <Table class="mt_10" :disabled="disabled" border :columns="columns" :data="form.promotionGoodsList" @on-selection-change="changeSelect">
 | 
				
			||||||
                <template slot-scope="{ row }" slot="QRCode">
 | 
					                <template slot-scope="{ row }" slot="QRCode">
 | 
				
			||||||
                  <img :src="row.QRCode || '../../../assets/lili.png'" width="50px" height="50px" alt="" />
 | 
					                  <img :src="row.QRCode || '../../../assets/lili.png'" width="50px" height="50px" alt="" />
 | 
				
			||||||
                </template>
 | 
					                </template>
 | 
				
			||||||
@ -70,16 +70,16 @@
 | 
				
			|||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <FormItem v-if="form.scopeType == 'PORTION_GOODS_CATEGORY'">
 | 
					            <FormItem v-if="form.scopeType == 'PORTION_GOODS_CATEGORY'">
 | 
				
			||||||
              <Cascader @on-change="getGoodsCategory" :data="goodsCategoryList" style="width:300px;" v-model="form.scopeIdGoods"></Cascader>
 | 
					              <Cascader :disabled="disabled" @on-change="getGoodsCategory" :data="goodsCategoryList" style="width:300px;" v-model="form.scopeIdGoods"></Cascader>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <FormItem label="范围描述" prop="description">
 | 
					            <FormItem label="范围描述" prop="description">
 | 
				
			||||||
              <Input v-model="form.description" type="textarea" :rows="4" maxlength="50" show-word-limit clearable style="width: 260px" />
 | 
					              <Input :disabled="disabled" v-model="form.description" type="textarea" :rows="4" maxlength="50" show-word-limit clearable style="width: 260px" />
 | 
				
			||||||
            </FormItem>
 | 
					            </FormItem>
 | 
				
			||||||
            <div>
 | 
					            <div>
 | 
				
			||||||
              <Button type="text" @click="$router.push({ name: 'coupon' })">返回</Button>
 | 
					              <Button :disabled="disabled" type="text" @click="$router.push({ name: 'coupon' })">返回</Button>
 | 
				
			||||||
              <Button type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
 | 
					              <Button :disabled="disabled" type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -125,6 +125,7 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      modalType: 0, // 判断是新增还是编辑优惠券 0 新增  1 编辑
 | 
					      modalType: 0, // 判断是新增还是编辑优惠券 0 新增  1 编辑
 | 
				
			||||||
 | 
					      disabled: this.$route.query.onlyView,
 | 
				
			||||||
      form: {
 | 
					      form: {
 | 
				
			||||||
        /** 店铺承担比例 */
 | 
					        /** 店铺承担比例 */
 | 
				
			||||||
        sellerCommission: 0,
 | 
					        sellerCommission: 0,
 | 
				
			||||||
 | 
				
			|||||||
@ -285,13 +285,6 @@ export default {
 | 
				
			|||||||
  mounted () {
 | 
					  mounted () {
 | 
				
			||||||
    this.init();
 | 
					    this.init();
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  // 如果是从详情页返回列表页,修改列表页keepAlive为true,确保不刷新页面
 | 
					 | 
				
			||||||
  beforeRouteLeave(to, from, next){
 | 
					 | 
				
			||||||
    if(to.name === 'pintuan') {
 | 
					 | 
				
			||||||
      to.meta.keepAlive = true
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    next()
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
<style lang="scss" scoped>
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
				
			|||||||
@ -67,7 +67,14 @@ externals = enableProduction ? externals : {};
 | 
				
			|||||||
jsPlugin = enableProduction ? jsPlugin : [];
 | 
					jsPlugin = enableProduction ? jsPlugin : [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = {
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  // 输出文件目录,当运行 vue-cli-service build 时生成的生产环境构建文件的目录。注意目标目录在构建之前会被清除
 | 
				
			||||||
 | 
					  outputDir:'dist',
 | 
				
			||||||
 | 
					  // 放置生成的静态资源 (js、css、img、fonts) 的目录。
 | 
				
			||||||
 | 
					  assetsDir:'static',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  css: {
 | 
					  css: {
 | 
				
			||||||
 | 
					    // 是否为 CSS 开启 source map。设置为 true 之后可能会影响构建的性能。
 | 
				
			||||||
 | 
					    sourceMap:false,
 | 
				
			||||||
    loaderOptions: {
 | 
					    loaderOptions: {
 | 
				
			||||||
      // 向 CSS 相关的 loader 传递选项
 | 
					      // 向 CSS 相关的 loader 传递选项
 | 
				
			||||||
      less: {
 | 
					      less: {
 | 
				
			||||||
 | 
				
			|||||||