功能测试与修改
This commit is contained in:
		
							parent
							
								
									ba91d7c26d
								
							
						
					
					
						commit
						a345586b25
					
				
							
								
								
									
										2107
									
								
								buyer/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2107
									
								
								buyer/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -3,10 +3,10 @@ var BASE = {
 | 
				
			|||||||
     * @description api请求基础路径
 | 
					     * @description api请求基础路径
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    API_DEV: {
 | 
					    API_DEV: {
 | 
				
			||||||
      common: "http://192.168.102:8890",
 | 
					      common: "http://localhost:8890",
 | 
				
			||||||
      buyer: "http://192.168.102:8888",
 | 
					      buyer: "http://localhost:8888",
 | 
				
			||||||
      seller: "https://store-api.pickmall.cn",
 | 
					      seller: "http://localhost:8889",
 | 
				
			||||||
      manager: "https://admin-api.pickmall.cn"
 | 
					      manager: "http://localhost:8887"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    API_PROD: {
 | 
					    API_PROD: {
 | 
				
			||||||
      common: "http://192.168.2.110:8890",
 | 
					      common: "http://192.168.2.110:8890",
 | 
				
			||||||
 | 
				
			|||||||
@ -45,3 +45,14 @@ export function handleRefreshToken(token) {
 | 
				
			|||||||
    needToken: false,
 | 
					    needToken: false,
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// /**
 | 
				
			||||||
 | 
					//  * 获取店铺楼层数据
 | 
				
			||||||
 | 
					//  */
 | 
				
			||||||
 | 
					// export function getFloorStoreData(params) {
 | 
				
			||||||
 | 
					//   return request({
 | 
				
			||||||
 | 
					//     url: `/buyer/other/pageData?pageClientType=PC`,
 | 
				
			||||||
 | 
					//     method: "get",
 | 
				
			||||||
 | 
					//     params,
 | 
				
			||||||
 | 
					//   });
 | 
				
			||||||
 | 
					// }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,14 +1,12 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="merchant">
 | 
					  <div class="merchant">
 | 
				
			||||||
    <!-- 普通店铺装修 -->
 | 
					      <BaseHeader/>
 | 
				
			||||||
    <div v-if="basePageData">
 | 
					 | 
				
			||||||
      <BaseHeader />
 | 
					 | 
				
			||||||
      <!-- 搜索栏 -->
 | 
					      <!-- 搜索栏 -->
 | 
				
			||||||
      <Search :store="true" @search="search"></Search>
 | 
					      <Search :store="true" @search="search"></Search>
 | 
				
			||||||
      <!-- 店铺logo -->
 | 
					      <!-- 店铺logo -->
 | 
				
			||||||
      <div class="shop-logo">
 | 
					      <div class="shop-logo">
 | 
				
			||||||
        <div>
 | 
					        <div>
 | 
				
			||||||
          <img :src="storeMsg.storeLogo" height="80" alt="" />
 | 
					          <img :src="storeMsg.storeLogo" height="80" alt=""/>
 | 
				
			||||||
          <div>
 | 
					          <div>
 | 
				
			||||||
            <p>{{ storeMsg.storeName || "xx店铺" }}</p>
 | 
					            <p>{{ storeMsg.storeName || "xx店铺" }}</p>
 | 
				
			||||||
            <p
 | 
					            <p
 | 
				
			||||||
@ -19,16 +17,16 @@
 | 
				
			|||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div>
 | 
					          <div>
 | 
				
			||||||
            <span class="hover-pointer" @click="collect"
 | 
					            <span class="hover-pointer" @click="collect"
 | 
				
			||||||
              ><Icon
 | 
					            ><Icon
 | 
				
			||||||
                type="ios-heart"
 | 
					              type="ios-heart"
 | 
				
			||||||
                :color="storeCollected ? '#ed3f14' : '#fff'"
 | 
					              :color="storeCollected ? '#ed3f14' : '#fff'"
 | 
				
			||||||
              />{{ storeCollected ? "已收藏店铺" : "收藏店铺" }}</span
 | 
					            />{{ storeCollected ? "已收藏店铺" : "收藏店铺" }}</span
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
            <span
 | 
					            <span
 | 
				
			||||||
              style="width: 80px"
 | 
					              style="width: 80px"
 | 
				
			||||||
              class="hover-pointer ml_10"
 | 
					              class="hover-pointer ml_10"
 | 
				
			||||||
              @click="connectCs(storeMsg.yzfSign)"
 | 
					              @click="connectCs(storeMsg.yzfSign)"
 | 
				
			||||||
              ><Icon custom="icomoon icon-customer-service" />联系客服</span
 | 
					            ><Icon custom="icomoon icon-customer-service"/>联系客服</span
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -44,7 +42,8 @@
 | 
				
			|||||||
          <li class="cate-item" v-for="(cate, index) in cateList" :key="index">
 | 
					          <li class="cate-item" v-for="(cate, index) in cateList" :key="index">
 | 
				
			||||||
            <Dropdown v-if="cate.children.length">
 | 
					            <Dropdown v-if="cate.children.length">
 | 
				
			||||||
              <div @click.self="searchByCate(cate)">
 | 
					              <div @click.self="searchByCate(cate)">
 | 
				
			||||||
                {{ cate.labelName }} <Icon type="ios-arrow-down"></Icon>
 | 
					                {{ cate.labelName }}
 | 
				
			||||||
 | 
					                <Icon type="ios-arrow-down"></Icon>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <DropdownMenu slot="list">
 | 
					              <DropdownMenu slot="list">
 | 
				
			||||||
                <DropdownItem
 | 
					                <DropdownItem
 | 
				
			||||||
@ -52,97 +51,79 @@
 | 
				
			|||||||
                  :name="sec.id"
 | 
					                  :name="sec.id"
 | 
				
			||||||
                  v-for="sec in cate.children"
 | 
					                  v-for="sec in cate.children"
 | 
				
			||||||
                  :key="sec.id"
 | 
					                  :key="sec.id"
 | 
				
			||||||
                  >{{ sec.labelName }}</DropdownItem
 | 
					                >{{ sec.labelName }}
 | 
				
			||||||
 | 
					                </DropdownItem
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
              </DropdownMenu>
 | 
					              </DropdownMenu>
 | 
				
			||||||
            </Dropdown>
 | 
					            </Dropdown>
 | 
				
			||||||
            <span v-else @click.self="searchByCate(cate)">{{
 | 
					            <span v-else @click.self="searchByCate(cate)">{{
 | 
				
			||||||
              cate.labelName
 | 
					                cate.labelName
 | 
				
			||||||
            }}</span>
 | 
					              }}</span>
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="promotion-decorate">{{ cateName }}</div>
 | 
					      <div class="promotion-decorate">{{ cateName }}</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="goods-list">
 | 
					<!--      <div class="goods-list">-->
 | 
				
			||||||
        <empty v-if="goodsList.length === 0" />
 | 
					<!--        <empty v-if="goodsList.length === 0"/>-->
 | 
				
			||||||
        <div
 | 
					<!--        <div-->
 | 
				
			||||||
          v-else
 | 
					<!--          v-else-->
 | 
				
			||||||
          class="goods-show-info"
 | 
					<!--          class="goods-show-info"-->
 | 
				
			||||||
          v-for="(item, index) in goodsList"
 | 
					<!--          v-for="(item, index) in goodsList"-->
 | 
				
			||||||
          :key="index"
 | 
					<!--          :key="index"-->
 | 
				
			||||||
          @click="goGoodsDetail(item.content.id, item.content.goodsId)"
 | 
					<!--          @click="goGoodsDetail(item.content.id, item.content.goodsId)"-->
 | 
				
			||||||
        >
 | 
					<!--        >-->
 | 
				
			||||||
          <div class="goods-show-img">
 | 
					<!--          <div class="goods-show-img">-->
 | 
				
			||||||
            <img width="220" height="220" :src="item.content.thumbnail" />
 | 
					<!--            <img width="220" height="220" :src="item.content.thumbnail"/>-->
 | 
				
			||||||
          </div>
 | 
					<!--          </div>-->
 | 
				
			||||||
          <div class="goods-show-price">
 | 
					<!--          <div class="goods-show-price">-->
 | 
				
			||||||
            <span>
 | 
					<!--            <span>-->
 | 
				
			||||||
              <span class="seckill-price text-danger">{{
 | 
					<!--              <span class="seckill-price text-danger">{{-->
 | 
				
			||||||
                item.content.price | unitPrice("¥")
 | 
					<!--                  item.content.price | unitPrice("¥")-->
 | 
				
			||||||
              }}</span>
 | 
					<!--                }}</span>-->
 | 
				
			||||||
            </span>
 | 
					<!--            </span>-->
 | 
				
			||||||
          </div>
 | 
					<!--          </div>-->
 | 
				
			||||||
          <div class="goods-show-detail">
 | 
					<!--          <div class="goods-show-detail">-->
 | 
				
			||||||
            <span>{{ item.content.goodsName }}</span>
 | 
					<!--            <span>{{ item.content.goodsName }}</span>-->
 | 
				
			||||||
          </div>
 | 
					<!--          </div>-->
 | 
				
			||||||
          <div class="goods-show-num">
 | 
					<!--          <div class="goods-show-num">-->
 | 
				
			||||||
            已有<span>{{ item.content.commentNum || 0 }}</span
 | 
					<!--            已有<span>{{ item.content.commentNum || 0 }}</span-->
 | 
				
			||||||
            >人评价
 | 
					<!--          >人评价-->
 | 
				
			||||||
          </div>
 | 
					<!--          </div>-->
 | 
				
			||||||
        </div>
 | 
					<!--        </div>-->
 | 
				
			||||||
      </div>
 | 
					<!--      </div>-->
 | 
				
			||||||
      <div class="goods-page">
 | 
					<!--      <div class="goods-page">-->
 | 
				
			||||||
        <Page
 | 
					<!--        <Page-->
 | 
				
			||||||
          show-sizer
 | 
					<!--          show-sizer-->
 | 
				
			||||||
          @on-change="changePageNum"
 | 
					<!--          @on-change="changePageNum"-->
 | 
				
			||||||
          @on-page-size-change="changePageSize"
 | 
					<!--          @on-page-size-change="changePageSize"-->
 | 
				
			||||||
          :total="total"
 | 
					<!--          :total="total"-->
 | 
				
			||||||
          :page-size="params.pageSize"
 | 
					<!--          :page-size="params.pageSize"-->
 | 
				
			||||||
        ></Page>
 | 
					<!--        ></Page>-->
 | 
				
			||||||
      </div>
 | 
					<!--      </div>-->
 | 
				
			||||||
      <BaseFooter />
 | 
					<!--      -->
 | 
				
			||||||
    </div>
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 楼层装修部分 -->
 | 
				
			||||||
 | 
					    <model-form ref="modelForm" :data="modelForm"></model-form>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <BaseFooter/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div v-if="enablePageData">
 | 
					 | 
				
			||||||
      <drawer></drawer>
 | 
					 | 
				
			||||||
      <!-- 固定头部 -->
 | 
					 | 
				
			||||||
      <hover-search
 | 
					 | 
				
			||||||
        class="hover-search"
 | 
					 | 
				
			||||||
        :class="{ show: topSearchShow }"
 | 
					 | 
				
			||||||
      ></hover-search>
 | 
					 | 
				
			||||||
      <!-- 顶部广告 -->
 | 
					 | 
				
			||||||
      <FixedTopPage :data="topAdvert"></FixedTopPage>
 | 
					 | 
				
			||||||
      <!-- 头部 包括登录,我的订单等 -->
 | 
					 | 
				
			||||||
      <BaseHeader></BaseHeader>
 | 
					 | 
				
			||||||
      <!-- 搜索框、logo -->
 | 
					 | 
				
			||||||
      <Search :store="true" @search="search"></Search>
 | 
					 | 
				
			||||||
      <!-- 商品分类 -->
 | 
					 | 
				
			||||||
      <cateNav
 | 
					 | 
				
			||||||
        :showAlways="true"
 | 
					 | 
				
			||||||
        v-if="showNav"
 | 
					 | 
				
			||||||
        :large="carouselLarge"
 | 
					 | 
				
			||||||
        :opacity="carouselOpacity"
 | 
					 | 
				
			||||||
      ></cateNav>
 | 
					 | 
				
			||||||
      <!-- 楼层装修部分 -->
 | 
					 | 
				
			||||||
      <model-form ref="modelForm" :data="modelForm"></model-form>
 | 
					 | 
				
			||||||
      <!-- 底部栏 -->
 | 
					 | 
				
			||||||
      <BaseFooter></BaseFooter>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import { getDetailById, getCateById } from "@/api/shopentry";
 | 
					import {getDetailById, getCateById} from "@/api/shopentry";
 | 
				
			||||||
import { cancelCollect, collectGoods, isCollection } from "@/api/member";
 | 
					import {cancelCollect, collectGoods, isCollection} from "@/api/member";
 | 
				
			||||||
import { goodsList } from "@/api/goods";
 | 
					import {goodsList} from "@/api/goods";
 | 
				
			||||||
import Search from "@/components/Search";
 | 
					import Search from "@/components/Search";
 | 
				
			||||||
import ModelForm from "@/components/indexDecorate/ModelForm";
 | 
					import ModelForm from "@/components/indexDecorate/ModelForm";
 | 
				
			||||||
import HoverSearch from "@/components/header/hoverSearch";
 | 
					import HoverSearch from "@/components/header/hoverSearch";
 | 
				
			||||||
import storage from "@/plugins/storage";
 | 
					import storage from "@/plugins/storage";
 | 
				
			||||||
import { getFloorStoreData } from "@/api/index.js";
 | 
					import {getFloorStoreData} from "@/api/index.js";
 | 
				
			||||||
import { seckillByDay } from "@/api/promotion";
 | 
					import {seckillByDay} from "@/api/promotion";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: "Merchant",
 | 
					  name: "Merchant",
 | 
				
			||||||
  components: {
 | 
					  components: {
 | 
				
			||||||
@ -153,13 +134,12 @@ export default {
 | 
				
			|||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      // 店铺装修的内容
 | 
					      // 店铺装修的内容
 | 
				
			||||||
      modelForm: { list: [] }, // 楼层装修数据
 | 
					      modelForm: {list: []}, // 楼层装修数据
 | 
				
			||||||
      topAdvert: {}, // 顶部广告
 | 
					      topAdvert: {}, // 顶部广告
 | 
				
			||||||
      showNav: false, // 是否展示分类栏
 | 
					      showNav: false, // 是否展示分类栏
 | 
				
			||||||
      topSearchShow: false, // 滚动后顶部搜索栏展示
 | 
					      topSearchShow: false, // 滚动后顶部搜索栏展示
 | 
				
			||||||
      carouselLarge: false, // 不同轮播分类尺寸
 | 
					      carouselLarge: false, // 不同轮播分类尺寸
 | 
				
			||||||
      carouselOpacity: false, // 不同轮播分类样式,
 | 
					      carouselOpacity: false, // 不同轮播分类样式,
 | 
				
			||||||
 | 
					 | 
				
			||||||
      enablePageData: false, //是否显示楼层装修内容
 | 
					      enablePageData: false, //是否显示楼层装修内容
 | 
				
			||||||
      basePageData: false, //基础店铺信息
 | 
					      basePageData: false, //基础店铺信息
 | 
				
			||||||
      storeMsg: {}, // 店铺信息
 | 
					      storeMsg: {}, // 店铺信息
 | 
				
			||||||
@ -184,7 +164,7 @@ export default {
 | 
				
			|||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    getIndexData() {
 | 
					    getIndexData() {
 | 
				
			||||||
      // 获取首页装修数据
 | 
					      // 获取首页装修数据
 | 
				
			||||||
      getFloorStoreData({ clientType: "PC", num: this.$route.query.id ,pageType:'STORE'}).then(
 | 
					      getFloorStoreData({clientType: "PC", num: this.$route.query.id, pageType: 'STORE'}).then(
 | 
				
			||||||
        (res) => {
 | 
					        (res) => {
 | 
				
			||||||
          if (res.success) {
 | 
					          if (res.success) {
 | 
				
			||||||
            let dataJson = JSON.parse(res.result.pageData);
 | 
					            let dataJson = JSON.parse(res.result.pageData);
 | 
				
			||||||
@ -226,35 +206,21 @@ export default {
 | 
				
			|||||||
      // 店铺信息
 | 
					      // 店铺信息
 | 
				
			||||||
      getDetailById(this.$route.query.id).then((res) => {
 | 
					      getDetailById(this.$route.query.id).then((res) => {
 | 
				
			||||||
        if (res.success) {
 | 
					        if (res.success) {
 | 
				
			||||||
          if (res.result.pageShow == "1") {
 | 
					 | 
				
			||||||
            this.getIndexData();
 | 
					 | 
				
			||||||
            let that = this;
 | 
					 | 
				
			||||||
            window.onscroll = function () {
 | 
					 | 
				
			||||||
              let top =
 | 
					 | 
				
			||||||
                document.documentElement.scrollTop || document.body.scrollTop;
 | 
					 | 
				
			||||||
              if (top > 300) {
 | 
					 | 
				
			||||||
                that.topSearchShow = true;
 | 
					 | 
				
			||||||
              } else {
 | 
					 | 
				
			||||||
                that.topSearchShow = false;
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
            // 楼层装修
 | 
					 | 
				
			||||||
            this.enablePageData = true;
 | 
					 | 
				
			||||||
          } else {
 | 
					 | 
				
			||||||
            this.storeMsg = res.result;
 | 
					 | 
				
			||||||
            document.title = this.storeMsg.storeName;
 | 
					 | 
				
			||||||
            if (this.Cookies.getItem("userInfo")) {
 | 
					 | 
				
			||||||
              isCollection("STORE", this.storeMsg.storeId).then((res) => {
 | 
					 | 
				
			||||||
                if (res.success && res.result) {
 | 
					 | 
				
			||||||
                  this.storeCollected = true;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
              });
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            this.basePageData = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            this.getCateList();
 | 
					          this.storeMsg = res.result;
 | 
				
			||||||
            this.getGoodsList();
 | 
					
 | 
				
			||||||
          }
 | 
					
 | 
				
			||||||
 | 
					          this.getIndexData();
 | 
				
			||||||
 | 
					          let that = this;
 | 
				
			||||||
 | 
					          window.onscroll = function () {
 | 
				
			||||||
 | 
					            let top =
 | 
				
			||||||
 | 
					              document.documentElement.scrollTop || document.body.scrollTop;
 | 
				
			||||||
 | 
					            if (top > 300) {
 | 
				
			||||||
 | 
					              that.topSearchShow = true;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              that.topSearchShow = false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -275,13 +241,14 @@ export default {
 | 
				
			|||||||
            this.total = res.result.totalElements;
 | 
					            this.total = res.result.totalElements;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
        .catch(() => {});
 | 
					        .catch(() => {
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    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");
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -330,15 +297,18 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<style scoped lang="scss">
 | 
					<style scoped lang="scss">
 | 
				
			||||||
@import "../assets/styles/goodsList.scss";
 | 
					@import "../assets/styles/goodsList.scss";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.merchant {
 | 
					.merchant {
 | 
				
			||||||
  margin: 0 auto;
 | 
					  margin: 0 auto;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.shop-logo {
 | 
					.shop-logo {
 | 
				
			||||||
  position: relative;
 | 
					  position: relative;
 | 
				
			||||||
  width: 100%;
 | 
					  width: 100%;
 | 
				
			||||||
  background-color: #666;
 | 
					  background-color: #666;
 | 
				
			||||||
  padding: 4px;
 | 
					  padding: 4px;
 | 
				
			||||||
  color: #fff;
 | 
					  color: #fff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  > div {
 | 
					  > div {
 | 
				
			||||||
    display: flex;
 | 
					    display: flex;
 | 
				
			||||||
    width: 1200px;
 | 
					    width: 1200px;
 | 
				
			||||||
@ -354,9 +324,11 @@ export default {
 | 
				
			|||||||
      width: 200px;
 | 
					      width: 200px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  p:nth-child(1) {
 | 
					  p:nth-child(1) {
 | 
				
			||||||
    font-size: 20px;
 | 
					    font-size: 20px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  p:nth-child(2) {
 | 
					  p:nth-child(2) {
 | 
				
			||||||
    font-size: 14px;
 | 
					    font-size: 14px;
 | 
				
			||||||
    max-height: 40px;
 | 
					    max-height: 40px;
 | 
				
			||||||
@ -367,21 +339,25 @@ export default {
 | 
				
			|||||||
.store-category {
 | 
					.store-category {
 | 
				
			||||||
  background-color: #005aa0;
 | 
					  background-color: #005aa0;
 | 
				
			||||||
  color: #fff;
 | 
					  color: #fff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .cate-list {
 | 
					  .cate-list {
 | 
				
			||||||
    width: 1200px;
 | 
					    width: 1200px;
 | 
				
			||||||
    margin: 0 auto;
 | 
					    margin: 0 auto;
 | 
				
			||||||
    clear: left;
 | 
					    clear: left;
 | 
				
			||||||
    height: 30px;
 | 
					    height: 30px;
 | 
				
			||||||
    line-height: 30px;
 | 
					    line-height: 30px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .cate-item {
 | 
					    .cate-item {
 | 
				
			||||||
      margin-right: 25px;
 | 
					      margin-right: 25px;
 | 
				
			||||||
      float: left;
 | 
					      float: left;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .cate-item:hover {
 | 
					    .cate-item:hover {
 | 
				
			||||||
      cursor: pointer;
 | 
					      cursor: pointer;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.promotion-decorate::before,
 | 
					.promotion-decorate::before,
 | 
				
			||||||
.promotion-decorate::after {
 | 
					.promotion-decorate::after {
 | 
				
			||||||
  background-image: url("/src/assets/images/sprite@2x.png");
 | 
					  background-image: url("/src/assets/images/sprite@2x.png");
 | 
				
			||||||
 | 
				
			|||||||
@ -10,12 +10,14 @@
 | 
				
			|||||||
    "dev": "vue-cli-service serve"
 | 
					    "dev": "vue-cli-service serve"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "-": "0.0.1",
 | 
				
			||||||
    "@amap/amap-jsapi-loader": "0.0.7",
 | 
					    "@amap/amap-jsapi-loader": "0.0.7",
 | 
				
			||||||
    "@antv/g2": "^4.1.14",
 | 
					    "@antv/g2": "^4.1.14",
 | 
				
			||||||
    "axios": "^0.21.1",
 | 
					    "axios": "^0.21.1",
 | 
				
			||||||
    "dplayer": "^1.26.0",
 | 
					    "dplayer": "^1.27.0",
 | 
				
			||||||
    "js-cookie": "^2.2.1",
 | 
					    "js-cookie": "^2.2.1",
 | 
				
			||||||
    "node-sass": "^4.14.1",
 | 
					    "node-sass": "^4.14.1",
 | 
				
			||||||
 | 
					    "s": "^1.0.0",
 | 
				
			||||||
    "sass-loader": "^8.0.2",
 | 
					    "sass-loader": "^8.0.2",
 | 
				
			||||||
    "sockjs-client": "^1.4.0",
 | 
					    "sockjs-client": "^1.4.0",
 | 
				
			||||||
    "swiper": "^6.3.5",
 | 
					    "swiper": "^6.3.5",
 | 
				
			||||||
 | 
				
			|||||||
@ -3,25 +3,16 @@ var BASE = {
 | 
				
			|||||||
   * @description api请求基础路径
 | 
					   * @description api请求基础路径
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  API_DEV: {
 | 
					  API_DEV: {
 | 
				
			||||||
<<<<<<< HEAD
 | 
					
 | 
				
			||||||
    common: "http://192.168.0.102:8890",
 | 
					    common: "http://localhost:8890",
 | 
				
			||||||
    buyer: "https://buyer-api.pickmall.cn",
 | 
					    buyer: "http://localhost:8888",
 | 
				
			||||||
    seller: "http://192.168.0.102:8889",
 | 
					    seller: "http://localhost:8889",
 | 
				
			||||||
    manager: "https://admin-api.pickmall.cn"
 | 
					    manager: "http://localhost:8887"
 | 
				
			||||||
=======
 | 
					    // common:"http://127.0.0.1:8890",
 | 
				
			||||||
    // common: "http://localhost:8890",
 | 
					    // buyer:"http://192.168.0.113:8888",
 | 
				
			||||||
    // buyer: "http://localhost:8888",
 | 
					    // manager:"http://192.168.0.113:8887",
 | 
				
			||||||
    // seller: "http://localhost:8889",
 | 
					    //
 | 
				
			||||||
    // manager: "http://localhost:8887"
 | 
					    // seller:"http://192.168.0.113:8889"
 | 
				
			||||||
    common:"http://127.0.0.1:8890",
 | 
					 | 
				
			||||||
    buyer:"http://192.168.0.113:8888",
 | 
					 | 
				
			||||||
    manager:"http://192.168.0.113:8887",
 | 
					 | 
				
			||||||
<<<<<<< HEAD
 | 
					 | 
				
			||||||
    seller:"http://192.168.0.113:8889"
 | 
					 | 
				
			||||||
>>>>>>> 32336decc6e9e0ae8a0e67033f8ca66a89bbd372
 | 
					 | 
				
			||||||
=======
 | 
					 | 
				
			||||||
    seller:"http://127.0.0.1:8889"
 | 
					 | 
				
			||||||
>>>>>>> 4ea142ea086a3f534419a31b595de80497e16d90
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  API_PROD: {
 | 
					  API_PROD: {
 | 
				
			||||||
    common: "https://common-api.pickmall.cn",
 | 
					    common: "https://common-api.pickmall.cn",
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,8 @@ import {
 | 
				
			|||||||
  deleteRequest,
 | 
					  deleteRequest,
 | 
				
			||||||
  importRequest,
 | 
					  importRequest,
 | 
				
			||||||
  getRequestWithNoToken,
 | 
					  getRequestWithNoToken,
 | 
				
			||||||
  commonUrl
 | 
					  commonUrl,
 | 
				
			||||||
 | 
					  postRequestWithNoForm
 | 
				
			||||||
} from "@/libs/axios";
 | 
					} from "@/libs/axios";
 | 
				
			||||||
// 获取数据字典
 | 
					// 获取数据字典
 | 
				
			||||||
export const getDictData = "/dictData/getByType/";
 | 
					export const getDictData = "/dictData/getByType/";
 | 
				
			||||||
@ -355,3 +356,13 @@ export const refundStatistics = params => {
 | 
				
			|||||||
export const refundPriceStatistics = params => {
 | 
					export const refundPriceStatistics = params => {
 | 
				
			||||||
  return getRequest(`/statistics/refund/order/getPrice`, params);
 | 
					  return getRequest(`/statistics/refund/order/getPrice`, params);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//下载结算单
 | 
				
			||||||
 | 
					export const downLoadGoods = () => {
 | 
				
			||||||
 | 
					  return getRequest(`/goods/import/downLoad/`, {}, 'blob')
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 上传待发货的订单列表
 | 
				
			||||||
 | 
					export const uploadGoodsExcel = params => {
 | 
				
			||||||
 | 
					  return postRequestWithNoForm(`/goods/import/import`, params );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,6 @@ export const getAllCity = (params) => {
 | 
				
			|||||||
export const getCurrentPermissionList = (params) => {
 | 
					export const getCurrentPermissionList = (params) => {
 | 
				
			||||||
  return getRequest("/menu/memberMenu", params);
 | 
					  return getRequest("/menu/memberMenu", params);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
// 登陆
 | 
					// 登陆
 | 
				
			||||||
export const getHomeNotice = params => {
 | 
					export const getHomeNotice = params => {
 | 
				
			||||||
  return getRequest("/other/article/getByPage?type=STORE_ARTICLE&pageSize=15");
 | 
					  return getRequest("/other/article/getByPage?type=STORE_ARTICLE&pageSize=15");
 | 
				
			||||||
@ -131,7 +130,6 @@ export const unRelate = params => {
 | 
				
			|||||||
export const getRelatedListData = params => {
 | 
					export const getRelatedListData = params => {
 | 
				
			||||||
  return getRequest("/relate/findByCondition", params);
 | 
					  return getRequest("/relate/findByCondition", params);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
// 获取用户数据 多条件
 | 
					// 获取用户数据 多条件
 | 
				
			||||||
export const getUserListData = params => {
 | 
					export const getUserListData = params => {
 | 
				
			||||||
  return getRequest("/clerk", params);
 | 
					  return getRequest("/clerk", params);
 | 
				
			||||||
 | 
				
			|||||||
@ -4,10 +4,6 @@ import {
 | 
				
			|||||||
  postRequest,
 | 
					  postRequest,
 | 
				
			||||||
  putRequest,
 | 
					  putRequest,
 | 
				
			||||||
  deleteRequest,
 | 
					  deleteRequest,
 | 
				
			||||||
  importRequest,
 | 
					 | 
				
			||||||
  getRequestWithNoToken,
 | 
					 | 
				
			||||||
  putRequestWithNoForm,
 | 
					 | 
				
			||||||
  postRequestWithNoForm,
 | 
					 | 
				
			||||||
} from "@/libs/axios";
 | 
					} from "@/libs/axios";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -15,8 +11,7 @@ import {
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export const setHomeSetup = params => {
 | 
					export const setHomeSetup = params => {
 | 
				
			||||||
 | 
					  return postRequest("/settings/pageData/save", params);
 | 
				
			||||||
  return postRequest("/other/pageData/add", params);
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -25,7 +20,7 @@ export const setHomeSetup = params => {
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
export const getHomeData = params => {
 | 
					export const getHomeData = params => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return getRequest(`/other/pageData/${params}`);
 | 
					  return getRequest(`/settings/pageData/${params}`);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -34,21 +29,8 @@ export const getHomeData = params => {
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export const getHomeList = params => {
 | 
					export const getHomeList = params => {
 | 
				
			||||||
 | 
					  return getRequest(`/settings/pageData/${params.pageClientType}/pageDataList`, params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return getRequest("/other/pageData/pageDataList", params);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 发布页面
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 export const releasePageHome = (id) => {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  return putRequest(`/other/pageData/release/${id}`);
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -57,8 +39,7 @@ export const getHomeList = params => {
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 export const updateHome = (id, params) => {
 | 
					 export const updateHome = (id, params) => {
 | 
				
			||||||
 | 
					  return putRequest(`/settings/pageData/update/${id}`, params);
 | 
				
			||||||
  return putRequest(`/other/pageData/update/${id}`, params);
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -66,7 +47,15 @@ export const getHomeList = params => {
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export const removePageHome = (id) => {
 | 
					export const removePageHome = (id) => {
 | 
				
			||||||
 | 
					  return deleteRequest(`/settings/pageData/removePageData/${id}`);
 | 
				
			||||||
  return deleteRequest(`/other/pageData/remove/${id}`);
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 发布页面
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export const releasePageHome = (id) => {
 | 
				
			||||||
 | 
					  return putRequest(`/settings/pageData/release/${id}`);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -491,14 +491,34 @@ export const result = [{
 | 
				
			|||||||
            children: null,
 | 
					            children: null,
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            name: "shopAddress",
 | 
					            name: "wapList",
 | 
				
			||||||
            level: 2,
 | 
					            level: 2,
 | 
				
			||||||
            type: 0,
 | 
					            type: 0,
 | 
				
			||||||
            title: "自提管理",
 | 
					            title: "移动楼层",
 | 
				
			||||||
            path: "shopAddress",
 | 
					            path: "wapList",
 | 
				
			||||||
            component: "shop/shopAddress",
 | 
					            component: "shop/wap/wapList",
 | 
				
			||||||
            children: null,
 | 
					            children: null
 | 
				
			||||||
          }
 | 
					
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            name: "pcList",
 | 
				
			||||||
 | 
					            level: 2,
 | 
				
			||||||
 | 
					            type: 0,
 | 
				
			||||||
 | 
					            title: "PC楼层",
 | 
				
			||||||
 | 
					            path: "pcList",
 | 
				
			||||||
 | 
					            component: "shop/floorList",
 | 
				
			||||||
 | 
					            children: null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          // {
 | 
				
			||||||
 | 
					          //   name: "shopAddress",
 | 
				
			||||||
 | 
					          //   level: 2,
 | 
				
			||||||
 | 
					          //   type: 0,
 | 
				
			||||||
 | 
					          //   title: "自提管理",
 | 
				
			||||||
 | 
					          //   path: "shopAddress",
 | 
				
			||||||
 | 
					          //   component: "shop/shopAddress",
 | 
				
			||||||
 | 
					          //   children: null,
 | 
				
			||||||
 | 
					          // }
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
import lazyLoading from './lazyLoading.js';
 | 
					import lazyLoading from './lazyLoading.js';
 | 
				
			||||||
import Cookies from "js-cookie";
 | 
					import Cookies from "js-cookie";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { result } from './routerJson.js';
 | 
					import { result } from './routerJson.js';
 | 
				
			||||||
import { getCurrentPermissionList } from "@/api/index";
 | 
					import { getCurrentPermissionList } from "@/api/index";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -10,447 +11,447 @@ let util = {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.title = function (title) {
 | 
					util.title = function (title) {
 | 
				
			||||||
    title = title || `${config.title} 商家后台`;
 | 
					  title = title || `${config.title} 商家后台`;
 | 
				
			||||||
    window.document.title = title;
 | 
					  window.document.title = title;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.millsToTime = function (mills) {
 | 
					util.millsToTime = function (mills) {
 | 
				
			||||||
    if (!mills) {
 | 
					  if (!mills) {
 | 
				
			||||||
        return "";
 | 
					    return "";
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
    let s = mills / 1000;
 | 
					  let s = mills / 1000;
 | 
				
			||||||
    if (s < 60) {
 | 
					  if (s < 60) {
 | 
				
			||||||
        return s.toFixed(0) + " 秒"
 | 
					    return s.toFixed(0) + " 秒"
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
    let m = s / 60;
 | 
					  let m = s / 60;
 | 
				
			||||||
    if (m < 60) {
 | 
					  if (m < 60) {
 | 
				
			||||||
        return m.toFixed(0) + " 分钟"
 | 
					    return m.toFixed(0) + " 分钟"
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
    let h = m / 60;
 | 
					  let h = m / 60;
 | 
				
			||||||
    if (h < 24) {
 | 
					  if (h < 24) {
 | 
				
			||||||
        return h.toFixed(0) + " 小时"
 | 
					    return h.toFixed(0) + " 小时"
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
    let d = h / 24;
 | 
					  let d = h / 24;
 | 
				
			||||||
    if (d < 30) {
 | 
					  if (d < 30) {
 | 
				
			||||||
        return d.toFixed(0) + " 天"
 | 
					    return d.toFixed(0) + " 天"
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
    let month = d / 30
 | 
					  let month = d / 30
 | 
				
			||||||
    if (month < 12) {
 | 
					  if (month < 12) {
 | 
				
			||||||
        return month.toFixed(0) + " 个月"
 | 
					    return month.toFixed(0) + " 个月"
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
    let year = month / 12
 | 
					  let year = month / 12
 | 
				
			||||||
    return year.toFixed(0) + " 年"
 | 
					  return year.toFixed(0) + " 年"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.inOf = function (arr, targetArr) {
 | 
					util.inOf = function (arr, targetArr) {
 | 
				
			||||||
    let res = true;
 | 
					  let res = true;
 | 
				
			||||||
    arr.forEach(item => {
 | 
					  arr.forEach(item => {
 | 
				
			||||||
        if (targetArr.indexOf(item) < 0) {
 | 
					    if (targetArr.indexOf(item) < 0) {
 | 
				
			||||||
            res = false;
 | 
					      res = false;
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
    });
 | 
					  });
 | 
				
			||||||
    return res;
 | 
					  return res;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.oneOf = function (ele, targetArr) {
 | 
					util.oneOf = function (ele, targetArr) {
 | 
				
			||||||
    if (targetArr.indexOf(ele) >= 0) {
 | 
					  if (targetArr.indexOf(ele) >= 0) {
 | 
				
			||||||
        return true;
 | 
					    return true;
 | 
				
			||||||
    } else {
 | 
					  } else {
 | 
				
			||||||
        return false;
 | 
					    return false;
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.getRouterObjByName = function (routers, name) {
 | 
					util.getRouterObjByName = function (routers, name) {
 | 
				
			||||||
    if (!name || !routers || !routers.length) {
 | 
					  if (!name || !routers || !routers.length) {
 | 
				
			||||||
        return null;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    let routerObj = null;
 | 
					 | 
				
			||||||
    for (let item of routers) {
 | 
					 | 
				
			||||||
        if (item.name == name) {
 | 
					 | 
				
			||||||
            return item;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        routerObj = util.getRouterObjByName(item.children, name);
 | 
					 | 
				
			||||||
        if (routerObj) {
 | 
					 | 
				
			||||||
            return routerObj;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  let routerObj = null;
 | 
				
			||||||
 | 
					  for (let item of routers) {
 | 
				
			||||||
 | 
					    if (item.name == name) {
 | 
				
			||||||
 | 
					      return item;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    routerObj = util.getRouterObjByName(item.children, name);
 | 
				
			||||||
 | 
					    if (routerObj) {
 | 
				
			||||||
 | 
					      return routerObj;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return null;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.handleTitle = function (vm, item) {
 | 
					util.handleTitle = function (vm, item) {
 | 
				
			||||||
    if (typeof item.title == 'object') {
 | 
					  if (typeof item.title == 'object') {
 | 
				
			||||||
        return item.title;
 | 
					    return item.title;
 | 
				
			||||||
    } else {
 | 
					  } else {
 | 
				
			||||||
        return item.title;
 | 
					    return item.title;
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.setCurrentPath = function (vm, name) {
 | 
					util.setCurrentPath = function (vm, name) {
 | 
				
			||||||
    let title = '';
 | 
					  let title = '';
 | 
				
			||||||
    let isOtherRouter = false;
 | 
					  let isOtherRouter = false;
 | 
				
			||||||
    vm.$store.state.app.routers.forEach(item => {
 | 
					  vm.$store.state.app.routers.forEach(item => {
 | 
				
			||||||
        if (item.children.length == 1) {
 | 
					    if (item.children.length == 1) {
 | 
				
			||||||
            if (item.children[0].name == name) {
 | 
					      if (item.children[0].name == name) {
 | 
				
			||||||
                title = util.handleTitle(vm, item);
 | 
					        title = util.handleTitle(vm, item);
 | 
				
			||||||
                if (item.name == 'otherRouter') {
 | 
					        if (item.name == 'otherRouter') {
 | 
				
			||||||
                    isOtherRouter = true;
 | 
					          isOtherRouter = true;
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            item.children.forEach(child => {
 | 
					 | 
				
			||||||
                if (child.name == name) {
 | 
					 | 
				
			||||||
                    title = util.handleTitle(vm, child);
 | 
					 | 
				
			||||||
                    if (item.name == 'otherRouter') {
 | 
					 | 
				
			||||||
                        isOtherRouter = true;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					      }
 | 
				
			||||||
    let currentPathArr = [];
 | 
					 | 
				
			||||||
    if (name == 'home_index') {
 | 
					 | 
				
			||||||
        currentPathArr = [
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                title: util.handleTitle(vm, util.getRouterObjByName(vm.$store.state.app.routers, 'home_index')),
 | 
					 | 
				
			||||||
                path: '',
 | 
					 | 
				
			||||||
                name: 'home_index'
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
    } else if ((name.indexOf('_index') >= 0 || isOtherRouter) && name !== 'home_index') {
 | 
					 | 
				
			||||||
        currentPathArr = [
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                title: util.handleTitle(vm, util.getRouterObjByName(vm.$store.state.app.routers, 'home_index')),
 | 
					 | 
				
			||||||
                path: '/home',
 | 
					 | 
				
			||||||
                name: 'home_index'
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                title: title,
 | 
					 | 
				
			||||||
                path: '',
 | 
					 | 
				
			||||||
                name: name
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        let currentPathObj = vm.$store.state.app.routers.filter(item => {
 | 
					      item.children.forEach(child => {
 | 
				
			||||||
            if (item.children.length <= 1) {
 | 
					        if (child.name == name) {
 | 
				
			||||||
                return item.children[0].name == name;
 | 
					          title = util.handleTitle(vm, child);
 | 
				
			||||||
            } else {
 | 
					          if (item.name == 'otherRouter') {
 | 
				
			||||||
                let i = 0;
 | 
					            isOtherRouter = true;
 | 
				
			||||||
                let childArr = item.children;
 | 
					          }
 | 
				
			||||||
                let len = childArr.length;
 | 
					 | 
				
			||||||
                while (i < len) {
 | 
					 | 
				
			||||||
                    if (childArr[i].name == name) {
 | 
					 | 
				
			||||||
                        return true;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    i++;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                return false;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        })[0];
 | 
					 | 
				
			||||||
        if (currentPathObj.children.length <= 1 && currentPathObj.name == 'home') {
 | 
					 | 
				
			||||||
            currentPathArr = [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    title: '首页',
 | 
					 | 
				
			||||||
                    path: '',
 | 
					 | 
				
			||||||
                    name: 'home_index'
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
        } else if (currentPathObj.children.length <= 1 && currentPathObj.name !== 'home') {
 | 
					 | 
				
			||||||
            currentPathArr = [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    title: '首页',
 | 
					 | 
				
			||||||
                    path: '/home',
 | 
					 | 
				
			||||||
                    name: 'home_index'
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    title: currentPathObj.title,
 | 
					 | 
				
			||||||
                    path: '',
 | 
					 | 
				
			||||||
                    name: name
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            let childObj = currentPathObj.children.filter((child) => {
 | 
					 | 
				
			||||||
                return child.name == name;
 | 
					 | 
				
			||||||
            })[0];
 | 
					 | 
				
			||||||
            currentPathArr = [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    title: '首页',
 | 
					 | 
				
			||||||
                    path: '/home',
 | 
					 | 
				
			||||||
                    name: 'home_index'
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    title: currentPathObj.title,
 | 
					 | 
				
			||||||
                    path: '',
 | 
					 | 
				
			||||||
                    name: currentPathObj.name
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    title: childObj.title,
 | 
					 | 
				
			||||||
                    path: currentPathObj.path + '/' + childObj.path,
 | 
					 | 
				
			||||||
                    name: name
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    vm.$store.commit('setCurrentPath', currentPathArr);
 | 
					  });
 | 
				
			||||||
 | 
					  let currentPathArr = [];
 | 
				
			||||||
 | 
					  if (name == 'home_index') {
 | 
				
			||||||
 | 
					    currentPathArr = [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        title: util.handleTitle(vm, util.getRouterObjByName(vm.$store.state.app.routers, 'home_index')),
 | 
				
			||||||
 | 
					        path: '',
 | 
				
			||||||
 | 
					        name: 'home_index'
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  } else if ((name.indexOf('_index') >= 0 || isOtherRouter) && name !== 'home_index') {
 | 
				
			||||||
 | 
					    currentPathArr = [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        title: util.handleTitle(vm, util.getRouterObjByName(vm.$store.state.app.routers, 'home_index')),
 | 
				
			||||||
 | 
					        path: '/home',
 | 
				
			||||||
 | 
					        name: 'home_index'
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        title: title,
 | 
				
			||||||
 | 
					        path: '',
 | 
				
			||||||
 | 
					        name: name
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    let currentPathObj = vm.$store.state.app.routers.filter(item => {
 | 
				
			||||||
 | 
					      if (item.children.length <= 1) {
 | 
				
			||||||
 | 
					        return item.children[0].name == name;
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        let i = 0;
 | 
				
			||||||
 | 
					        let childArr = item.children;
 | 
				
			||||||
 | 
					        let len = childArr.length;
 | 
				
			||||||
 | 
					        while (i < len) {
 | 
				
			||||||
 | 
					          if (childArr[i].name == name) {
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          i++;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    })[0];
 | 
				
			||||||
 | 
					    if (currentPathObj.children.length <= 1 && currentPathObj.name == 'home') {
 | 
				
			||||||
 | 
					      currentPathArr = [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: '首页',
 | 
				
			||||||
 | 
					          path: '',
 | 
				
			||||||
 | 
					          name: 'home_index'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    } else if (currentPathObj.children.length <= 1 && currentPathObj.name !== 'home') {
 | 
				
			||||||
 | 
					      currentPathArr = [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: '首页',
 | 
				
			||||||
 | 
					          path: '/home',
 | 
				
			||||||
 | 
					          name: 'home_index'
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: currentPathObj.title,
 | 
				
			||||||
 | 
					          path: '',
 | 
				
			||||||
 | 
					          name: name
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      let childObj = currentPathObj.children.filter((child) => {
 | 
				
			||||||
 | 
					        return child.name == name;
 | 
				
			||||||
 | 
					      })[0];
 | 
				
			||||||
 | 
					      currentPathArr = [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: '首页',
 | 
				
			||||||
 | 
					          path: '/home',
 | 
				
			||||||
 | 
					          name: 'home_index'
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: currentPathObj.title,
 | 
				
			||||||
 | 
					          path: '',
 | 
				
			||||||
 | 
					          name: currentPathObj.name
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          title: childObj.title,
 | 
				
			||||||
 | 
					          path: currentPathObj.path + '/' + childObj.path,
 | 
				
			||||||
 | 
					          name: name
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  vm.$store.commit('setCurrentPath', currentPathArr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return currentPathArr;
 | 
					  return currentPathArr;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.openNewPage = function (vm, name, argu, query) {
 | 
					util.openNewPage = function (vm, name, argu, query) {
 | 
				
			||||||
    if (!vm.$store) {
 | 
					  if (!vm.$store) {
 | 
				
			||||||
        return;
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  let storeOpenedList = vm.$store.state.app.storeOpenedList;
 | 
				
			||||||
 | 
					  let openedPageLen = storeOpenedList.length;
 | 
				
			||||||
 | 
					  let i = 0;
 | 
				
			||||||
 | 
					  let tagHasOpened = false;
 | 
				
			||||||
 | 
					  while (i < openedPageLen) {
 | 
				
			||||||
 | 
					    if (name == storeOpenedList[i].name) { // 页面已经打开
 | 
				
			||||||
 | 
					      vm.$store.commit('storeOpenedList', {
 | 
				
			||||||
 | 
					        index: i,
 | 
				
			||||||
 | 
					        argu: argu,
 | 
				
			||||||
 | 
					        query: query
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      tagHasOpened = true;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    let storeOpenedList = vm.$store.state.app.storeOpenedList;
 | 
					    i++;
 | 
				
			||||||
    let openedPageLen = storeOpenedList.length;
 | 
					  }
 | 
				
			||||||
    let i = 0;
 | 
					  if (!tagHasOpened) {
 | 
				
			||||||
    let tagHasOpened = false;
 | 
					    let tag = vm.$store.state.app.tagsList.filter((item) => {
 | 
				
			||||||
    while (i < openedPageLen) {
 | 
					      if (item.children) {
 | 
				
			||||||
        if (name == storeOpenedList[i].name) { // 页面已经打开
 | 
					        return name == item.children[0].name;
 | 
				
			||||||
            vm.$store.commit('storeOpenedList', {
 | 
					      } else {
 | 
				
			||||||
                index: i,
 | 
					        return name == item.name;
 | 
				
			||||||
                argu: argu,
 | 
					      }
 | 
				
			||||||
                query: query
 | 
					    });
 | 
				
			||||||
            });
 | 
					    tag = tag[0];
 | 
				
			||||||
            tagHasOpened = true;
 | 
					    if (tag) {
 | 
				
			||||||
            break;
 | 
					      tag = tag.children ? tag.children[0] : tag;
 | 
				
			||||||
        }
 | 
					      if (argu) {
 | 
				
			||||||
        i++;
 | 
					        tag.argu = argu;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (query) {
 | 
				
			||||||
 | 
					        tag.query = query;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      vm.$store.commit('increateTag', tag);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (!tagHasOpened) {
 | 
					  }
 | 
				
			||||||
        let tag = vm.$store.state.app.tagsList.filter((item) => {
 | 
					  vm.$store.commit('setCurrentPageName', name);
 | 
				
			||||||
            if (item.children) {
 | 
					 | 
				
			||||||
                return name == item.children[0].name;
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                return name == item.name;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        tag = tag[0];
 | 
					 | 
				
			||||||
        if (tag) {
 | 
					 | 
				
			||||||
            tag = tag.children ? tag.children[0] : tag;
 | 
					 | 
				
			||||||
            if (argu) {
 | 
					 | 
				
			||||||
                tag.argu = argu;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (query) {
 | 
					 | 
				
			||||||
                tag.query = query;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            vm.$store.commit('increateTag', tag);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    vm.$store.commit('setCurrentPageName', name);
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.toDefaultPage = function (routers, name, route, next) {
 | 
					util.toDefaultPage = function (routers, name, route, next) {
 | 
				
			||||||
    let len = routers.length;
 | 
					  let len = routers.length;
 | 
				
			||||||
    let i = 0;
 | 
					  let i = 0;
 | 
				
			||||||
    let notHandle = true;
 | 
					  let notHandle = true;
 | 
				
			||||||
    while (i < len) {
 | 
					  while (i < len) {
 | 
				
			||||||
        if (routers[i].name == name && routers[i].children && routers[i].redirect == undefined) {
 | 
					    if (routers[i].name == name && routers[i].children && routers[i].redirect == undefined) {
 | 
				
			||||||
            route.replace({
 | 
					      route.replace({
 | 
				
			||||||
                name: routers[i].children[0].name
 | 
					        name: routers[i].children[0].name
 | 
				
			||||||
            });
 | 
					      });
 | 
				
			||||||
            notHandle = false;
 | 
					      notHandle = false;
 | 
				
			||||||
            next();
 | 
					      next();
 | 
				
			||||||
            break;
 | 
					      break;
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        i++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (notHandle) {
 | 
					 | 
				
			||||||
        next();
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    i++;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (notHandle) {
 | 
				
			||||||
 | 
					    next();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 将Csv文件解析为二维数组
 | 
					// 将Csv文件解析为二维数组
 | 
				
			||||||
export const getArrayFromFile = (file) => {
 | 
					export const getArrayFromFile = (file) => {
 | 
				
			||||||
    let nameSplit = file.name.split('.')
 | 
					  let nameSplit = file.name.split('.')
 | 
				
			||||||
    let format = nameSplit[nameSplit.length - 1]
 | 
					  let format = nameSplit[nameSplit.length - 1]
 | 
				
			||||||
    return new Promise((resolve, reject) => {
 | 
					  return new Promise((resolve, reject) => {
 | 
				
			||||||
        let reader = new FileReader()
 | 
					    let reader = new FileReader()
 | 
				
			||||||
        reader.readAsText(file) // 以文本格式读取
 | 
					    reader.readAsText(file) // 以文本格式读取
 | 
				
			||||||
        let arr = []
 | 
					    let arr = []
 | 
				
			||||||
        reader.onload = function (evt) {
 | 
					    reader.onload = function (evt) {
 | 
				
			||||||
            let data = evt.target.result // 读到的数据
 | 
					      let data = evt.target.result // 读到的数据
 | 
				
			||||||
            let pasteData = data.trim()
 | 
					      let pasteData = data.trim()
 | 
				
			||||||
            arr = pasteData.split((/[\n\u0085\u2028\u2029]|\r\n?/g)).map(row => {
 | 
					      arr = pasteData.split((/[\n\u0085\u2028\u2029]|\r\n?/g)).map(row => {
 | 
				
			||||||
                return row.split('\t')
 | 
					        return row.split('\t')
 | 
				
			||||||
            }).map(item => {
 | 
					      }).map(item => {
 | 
				
			||||||
                return item[0].split(',')
 | 
					        return item[0].split(',')
 | 
				
			||||||
            })
 | 
					      })
 | 
				
			||||||
            if (format == 'csv') resolve(arr)
 | 
					      if (format == 'csv') resolve(arr)
 | 
				
			||||||
            else reject(new Error('[Format Error]:不是Csv文件'))
 | 
					      else reject(new Error('[Format Error]:不是Csv文件'))
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
    })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 将二维数组转为表格数据
 | 
					// 将二维数组转为表格数据
 | 
				
			||||||
export const getTableDataFromArray = (array) => {
 | 
					export const getTableDataFromArray = (array) => {
 | 
				
			||||||
    let columns = []
 | 
					  let columns = []
 | 
				
			||||||
    let tableData = []
 | 
					  let tableData = []
 | 
				
			||||||
    if (array.length > 1) {
 | 
					  if (array.length > 1) {
 | 
				
			||||||
        let titles = array.shift()
 | 
					    let titles = array.shift()
 | 
				
			||||||
        columns = titles.map(item => {
 | 
					    columns = titles.map(item => {
 | 
				
			||||||
            return {
 | 
					      return {
 | 
				
			||||||
                title: item,
 | 
					        title: item,
 | 
				
			||||||
                key: item
 | 
					        key: item
 | 
				
			||||||
            }
 | 
					      }
 | 
				
			||||||
        })
 | 
					    })
 | 
				
			||||||
        tableData = array.map(item => {
 | 
					    tableData = array.map(item => {
 | 
				
			||||||
            let res = {}
 | 
					      let res = {}
 | 
				
			||||||
            item.forEach((col, i) => {
 | 
					      item.forEach((col, i) => {
 | 
				
			||||||
                res[titles[i]] = col
 | 
					        res[titles[i]] = col
 | 
				
			||||||
            })
 | 
					      })
 | 
				
			||||||
            return res
 | 
					      return res
 | 
				
			||||||
        })
 | 
					    })
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
    return {
 | 
					  return {
 | 
				
			||||||
        columns,
 | 
					    columns,
 | 
				
			||||||
        tableData
 | 
					    tableData
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util.initRouter = function (vm) { // 初始化路由
 | 
					util.initRouter = function (vm) { // 初始化路由
 | 
				
			||||||
    const constRoutes = [];
 | 
					  const constRoutes = [];
 | 
				
			||||||
    const otherRoutes = [];
 | 
					  const otherRoutes = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 404路由需要和动态路由一起加载
 | 
					  // 404路由需要和动态路由一起加载
 | 
				
			||||||
    const otherRouter = [{
 | 
					  const otherRouter = [{
 | 
				
			||||||
        path: '/*',
 | 
					    path: '/*',
 | 
				
			||||||
        name: 'error-404',
 | 
					    name: 'error-404',
 | 
				
			||||||
        meta: {
 | 
					    meta: {
 | 
				
			||||||
            title: '404-页面不存在'
 | 
					      title: '404-页面不存在'
 | 
				
			||||||
        },
 | 
					    },
 | 
				
			||||||
        component: 'error-page/404'
 | 
					    component: 'error-page/404'
 | 
				
			||||||
    }];
 | 
					  }];
 | 
				
			||||||
    // 判断用户是否登录
 | 
					  // 判断用户是否登录
 | 
				
			||||||
    let userInfo = Cookies.get('userInfoSeller')
 | 
					  let userInfo = Cookies.get('userInfoSeller')
 | 
				
			||||||
    if (!userInfo) {
 | 
					  if (!userInfo) {
 | 
				
			||||||
        // 未登录
 | 
					    // 未登录
 | 
				
			||||||
        return;
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // 加载菜单
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  getCurrentPermissionList().then(res => {
 | 
				
			||||||
 | 
					    if (!res.success) return false;
 | 
				
			||||||
 | 
					    let menuData = res.result;
 | 
				
			||||||
 | 
					    // 格式化数据,设置 空children 为 null
 | 
				
			||||||
 | 
					    for (let i = 0; i < menuData.length; i++) {
 | 
				
			||||||
 | 
					      let t = menuData[i].children
 | 
				
			||||||
 | 
					      for (let k = 0; k < t.length; k++) {
 | 
				
			||||||
 | 
					        let tt = t[k].children;
 | 
				
			||||||
 | 
					        for (let z = 0; z < tt.length; z++) {
 | 
				
			||||||
 | 
					          tt[z].children = null
 | 
				
			||||||
 | 
					          // 给所有三级路由添加字段,显示一级菜单name,方便点击页签时的选中筛选
 | 
				
			||||||
 | 
					          tt[z].firstRouterName = menuData[i].name
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (!menuData) {
 | 
				
			||||||
  
 | 
					      return;
 | 
				
			||||||
        // 加载菜单
 | 
					    }
 | 
				
			||||||
 | 
					    util.initAllMenuData(constRoutes, menuData);
 | 
				
			||||||
        getCurrentPermissionList().then(res => {
 | 
					    util.initRouterNode(otherRoutes, otherRouter);
 | 
				
			||||||
            if (!res.success) return false;
 | 
					    // 添加所有主界面路由
 | 
				
			||||||
            let menuData = res.result;
 | 
					    vm.$store.commit('updateAppRouter', constRoutes.filter(item => item.children.length > 0));
 | 
				
			||||||
            // 格式化数据,设置 空children 为 null
 | 
					    // 添加全局路由
 | 
				
			||||||
            for (let i = 0; i < menuData.length; i++) {
 | 
					    vm.$store.commit('updateDefaultRouter', otherRoutes);
 | 
				
			||||||
                let t = menuData[i].children
 | 
					    // 添加菜单路由
 | 
				
			||||||
                for (let k = 0; k < t.length; k++) {
 | 
					    util.initMenuData(vm, menuData);
 | 
				
			||||||
                    let tt = t[k].children;
 | 
					    // 缓存数据 修改加载标识
 | 
				
			||||||
                    for (let z = 0; z < tt.length; z++) {
 | 
					    window.localStorage.setItem('menuData', JSON.stringify(menuData));
 | 
				
			||||||
                        tt[z].children = null
 | 
					    vm.$store.commit('setAdded', true);
 | 
				
			||||||
                        // 给所有三级路由添加字段,显示一级菜单name,方便点击页签时的选中筛选
 | 
					  })
 | 
				
			||||||
                        tt[z].firstRouterName = menuData[i].name
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (!menuData) {
 | 
					 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            util.initAllMenuData(constRoutes, menuData);
 | 
					 | 
				
			||||||
            util.initRouterNode(otherRoutes, otherRouter);
 | 
					 | 
				
			||||||
            // 添加所有主界面路由
 | 
					 | 
				
			||||||
            vm.$store.commit('updateAppRouter', constRoutes.filter(item => item.children.length > 0));
 | 
					 | 
				
			||||||
            // 添加全局路由
 | 
					 | 
				
			||||||
            vm.$store.commit('updateDefaultRouter', otherRoutes);
 | 
					 | 
				
			||||||
            // 添加菜单路由
 | 
					 | 
				
			||||||
            util.initMenuData(vm, menuData);
 | 
					 | 
				
			||||||
            // 缓存数据 修改加载标识
 | 
					 | 
				
			||||||
            window.localStorage.setItem('menuData', JSON.stringify(menuData));
 | 
					 | 
				
			||||||
            vm.$store.commit('setAdded', true);
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 添加所有顶部导航栏下的菜单路由
 | 
					// 添加所有顶部导航栏下的菜单路由
 | 
				
			||||||
util.initAllMenuData = function (constRoutes, data) {
 | 
					util.initAllMenuData = function (constRoutes, data) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let allMenuData = [];
 | 
					  let allMenuData = [];
 | 
				
			||||||
    data.forEach(e => {
 | 
					  data.forEach(e => {
 | 
				
			||||||
        if (e.level == 0) {
 | 
					    if (e.level == 0) {
 | 
				
			||||||
            e.children.forEach(item => {
 | 
					      e.children.forEach(item => {
 | 
				
			||||||
                allMenuData.push(item);
 | 
					        allMenuData.push(item);
 | 
				
			||||||
            })
 | 
					      })
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
    })
 | 
					  })
 | 
				
			||||||
    util.initRouterNode(constRoutes, allMenuData);
 | 
					  util.initRouterNode(constRoutes, allMenuData);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 生成菜单格式数据
 | 
					// 生成菜单格式数据
 | 
				
			||||||
util.initMenuData = function (vm, data) {
 | 
					util.initMenuData = function (vm, data) {
 | 
				
			||||||
    const menuRoutes = [];
 | 
					  const menuRoutes = [];
 | 
				
			||||||
    let menuData = data;
 | 
					  let menuData = data;
 | 
				
			||||||
    // 顶部菜单
 | 
					  // 顶部菜单
 | 
				
			||||||
    let navList = [];
 | 
					  let navList = [];
 | 
				
			||||||
    menuData.forEach(e => {
 | 
					  menuData.forEach(e => {
 | 
				
			||||||
        let nav = {
 | 
					    let nav = {
 | 
				
			||||||
            name: e.name,
 | 
					      name: e.name,
 | 
				
			||||||
            title: e.title,
 | 
					      title: e.title,
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        navList.push(nav);
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
    if (navList.length < 1) {
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    // 存入vuex
 | 
					    navList.push(nav);
 | 
				
			||||||
    vm.$store.commit('setNavList', navList);
 | 
					  })
 | 
				
			||||||
    let currNav = window.localStorage.getItem('currNav')
 | 
					  if (navList.length < 1) {
 | 
				
			||||||
    if (currNav) {
 | 
					    return;
 | 
				
			||||||
        // 读取缓存title
 | 
					  }
 | 
				
			||||||
        for (var item of navList) {
 | 
					  // 存入vuex
 | 
				
			||||||
            if (item.name == currNav) {
 | 
					  vm.$store.commit('setNavList', navList);
 | 
				
			||||||
                vm.$store.commit('setCurrNavTitle', item.title);
 | 
					  let currNav = window.localStorage.getItem('currNav')
 | 
				
			||||||
                break;
 | 
					  if (currNav) {
 | 
				
			||||||
            }
 | 
					    // 读取缓存title
 | 
				
			||||||
        }
 | 
					    for (var item of navList) {
 | 
				
			||||||
    } else {
 | 
					      if (item.name == currNav) {
 | 
				
			||||||
        // 默认第一个
 | 
					        vm.$store.commit('setCurrNavTitle', item.title);
 | 
				
			||||||
        currNav = navList[0].name;
 | 
					        break;
 | 
				
			||||||
        vm.$store.commit('setCurrNavTitle', navList[0].title);
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    vm.$store.commit('setCurrNav', currNav);
 | 
					  } else {
 | 
				
			||||||
    for (var item of menuData) {
 | 
					    // 默认第一个
 | 
				
			||||||
        if (item.name == currNav) {
 | 
					    currNav = navList[0].name;
 | 
				
			||||||
            // 过滤
 | 
					    vm.$store.commit('setCurrNavTitle', navList[0].title);
 | 
				
			||||||
            menuData = item.children;
 | 
					  }
 | 
				
			||||||
            break;
 | 
					  vm.$store.commit('setCurrNav', currNav);
 | 
				
			||||||
        }
 | 
					  for (var item of menuData) {
 | 
				
			||||||
 | 
					    if (item.name == currNav) {
 | 
				
			||||||
 | 
					      // 过滤
 | 
				
			||||||
 | 
					      menuData = item.children;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    util.initRouterNode(menuRoutes, menuData);
 | 
					  }
 | 
				
			||||||
    // 刷新界面菜单
 | 
					  util.initRouterNode(menuRoutes, menuData);
 | 
				
			||||||
    vm.$store.commit('updateMenulist', menuRoutes.filter(item => item.children.length > 0));
 | 
					  // 刷新界面菜单
 | 
				
			||||||
 | 
					  vm.$store.commit('updateMenulist', menuRoutes.filter(item => item.children.length > 0));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let tagsList = [];
 | 
					  let tagsList = [];
 | 
				
			||||||
    vm.$store.state.app.routers.map((item) => {
 | 
					  vm.$store.state.app.routers.map((item) => {
 | 
				
			||||||
        if (item.children.length <= 1) {
 | 
					    if (item.children.length <= 1) {
 | 
				
			||||||
            tagsList.push(item.children[0]);
 | 
					      tagsList.push(item.children[0]);
 | 
				
			||||||
        } else {
 | 
					    } else {
 | 
				
			||||||
            tagsList.push(...item.children);
 | 
					      tagsList.push(...item.children);
 | 
				
			||||||
        }
 | 
					    }
 | 
				
			||||||
    });
 | 
					  });
 | 
				
			||||||
    vm.$store.commit('setTagsList', tagsList);
 | 
					  vm.$store.commit('setTagsList', tagsList);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 生成路由节点
 | 
					// 生成路由节点
 | 
				
			||||||
util.initRouterNode = function (routers, data) {  // data为所有子菜单数据
 | 
					util.initRouterNode = function (routers, data) {  // data为所有子菜单数据
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (var item of data) {
 | 
					  for (var item of data) {
 | 
				
			||||||
        let menu = Object.assign({}, item);
 | 
					    let menu = Object.assign({}, item);
 | 
				
			||||||
        menu.component = lazyLoading(menu.frontRoute);
 | 
					    menu.component = lazyLoading(menu.frontRoute);
 | 
				
			||||||
        if (item.children && item.children.length > 0) {
 | 
					    if (item.children && item.children.length > 0) {
 | 
				
			||||||
            menu.children = [];
 | 
					      menu.children = [];
 | 
				
			||||||
            util.initRouterNode(menu.children, item.children);
 | 
					      util.initRouterNode(menu.children, item.children);
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        let meta = {};
 | 
					 | 
				
			||||||
        // 给页面添加标题
 | 
					 | 
				
			||||||
        meta.title = menu.title ? menu.title + " - " + config.title + "商家后台" : null;
 | 
					 | 
				
			||||||
        meta.firstRouterName = item.firstRouterName
 | 
					 | 
				
			||||||
        meta.keepAlive = menu.keepAlive ? true : false
 | 
					 | 
				
			||||||
        menu.meta = meta;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        routers.push(menu);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    let meta = {};
 | 
				
			||||||
 | 
					    // 给页面添加标题
 | 
				
			||||||
 | 
					    meta.title = menu.title ? menu.title + " - " + config.title + "商家后台" : null;
 | 
				
			||||||
 | 
					    meta.firstRouterName = item.firstRouterName
 | 
				
			||||||
 | 
					    meta.keepAlive = menu.keepAlive ? true : false
 | 
				
			||||||
 | 
					    menu.meta = meta;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    routers.push(menu);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default util;
 | 
					export default util;
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,7 @@ import "./styles/theme.less";
 | 
				
			|||||||
import "core-js/stable";
 | 
					import "core-js/stable";
 | 
				
			||||||
import vueQr from "vue-qr";
 | 
					import vueQr from "vue-qr";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import liliDialog from '@/views/lili-dialog'
 | 
				
			||||||
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";
 | 
				
			||||||
@ -21,7 +22,6 @@ import { setStore, getStore, removeStore } from "@/libs/storage";
 | 
				
			|||||||
import i18nBox from '@/views/lili-components/i18n-translate'
 | 
					import i18nBox from '@/views/lili-components/i18n-translate'
 | 
				
			||||||
import util from "@/libs/util";
 | 
					import util from "@/libs/util";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import liliDialog from '@/views/lili-dialog'
 | 
					 | 
				
			||||||
import VueLazyload from "vue-lazyload";
 | 
					import VueLazyload from "vue-lazyload";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import * as filters from "@/utils/filters"; // global filter
 | 
					import * as filters from "@/utils/filters"; // global filter
 | 
				
			||||||
@ -37,6 +37,7 @@ Vue.use(VueLazyload, {
 | 
				
			|||||||
Vue.use(ViewUI);
 | 
					Vue.use(ViewUI);
 | 
				
			||||||
Vue.component('liliDialog',liliDialog)
 | 
					Vue.component('liliDialog',liliDialog)
 | 
				
			||||||
Vue.component('i18nBox',i18nBox)
 | 
					Vue.component('i18nBox',i18nBox)
 | 
				
			||||||
 | 
					Vue.component('liliDialog',liliDialog)
 | 
				
			||||||
Vue.component("vue-qr", vueQr); //此处将vue-qr添加为全局组件
 | 
					Vue.component("vue-qr", vueQr); //此处将vue-qr添加为全局组件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 挂载全局使用的方法
 | 
					// 挂载全局使用的方法
 | 
				
			||||||
 | 
				
			|||||||
@ -102,6 +102,18 @@ export const otherRouter = {
 | 
				
			|||||||
      name: "order-detail",
 | 
					      name: "order-detail",
 | 
				
			||||||
      component: () => import("@/views/order/order/orderDetail.vue")
 | 
					      component: () => import("@/views/order/order/orderDetail.vue")
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      path: "/floorList/main",
 | 
				
			||||||
 | 
					      title: "编辑模板",
 | 
				
			||||||
 | 
					      name: "main",
 | 
				
			||||||
 | 
					      component: () => import("@/views/shop/wap/main.vue")
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      path: "/pcFloorList/main",
 | 
				
			||||||
 | 
					      title: "编辑模板",
 | 
				
			||||||
 | 
					      name: "renovation",
 | 
				
			||||||
 | 
					      component: () => import("@/views/shop/renovation.vue")
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      path: "order-complaint-detail",
 | 
					      path: "order-complaint-detail",
 | 
				
			||||||
      title: "投诉详情",
 | 
					      title: "投诉详情",
 | 
				
			||||||
 | 
				
			|||||||
@ -162,3 +162,60 @@ export function formatDate(date, fmt) {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  return fmt;
 | 
					  return fmt;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 楼层装修,选择链接处理跳转方式
 | 
				
			||||||
 | 
					export function formatLinkType (item) {
 | 
				
			||||||
 | 
					  const types = ['goods', 'category', 'shops', 'marketing', 'pages', 'other'] // 所有跳转的分类 依次为 商品、分类、店铺、活动、页面、其他
 | 
				
			||||||
 | 
					  let url = '';
 | 
				
			||||||
 | 
					  switch (item.___type) {
 | 
				
			||||||
 | 
					    case 'goods':
 | 
				
			||||||
 | 
					      url =  `/goodsDetail?skuId=${item.id}&goodsId=${item.goodsId}`;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case 'category':
 | 
				
			||||||
 | 
					      url = `/goodsList?categoryId=${item.allId}`;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case 'shops':
 | 
				
			||||||
 | 
					      url = `/merchant?id=${item.id}`;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case 'marketing': // 暂无数据,需要后续修改
 | 
				
			||||||
 | 
					      url = `/seckill?id=${item.id}`;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case 'pages': // 暂无数据,需要后续修改
 | 
				
			||||||
 | 
					      url = `/article?id=${item.id}`;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case 'other':
 | 
				
			||||||
 | 
					      switch (item.title) {
 | 
				
			||||||
 | 
					        case '首页':
 | 
				
			||||||
 | 
					          url = '/';
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case '购物车':
 | 
				
			||||||
 | 
					          url = '/cart';
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case '我的订单':
 | 
				
			||||||
 | 
					          url = '/home/MyOrder';
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case '收藏商品':
 | 
				
			||||||
 | 
					          url = '/home/Favorites';
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case '个人中心':
 | 
				
			||||||
 | 
					          url = '/home';
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case '外部链接':
 | 
				
			||||||
 | 
					          url = item.url;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case '秒杀频道':
 | 
				
			||||||
 | 
					          url = '/seckill';
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        case '领券中心':
 | 
				
			||||||
 | 
					          url = '/coupon';
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return url;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -181,7 +181,7 @@
 | 
				
			|||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </Modal>
 | 
					    </Modal>
 | 
				
			||||||
    <Modal title="导入商品信息" v-model="importModal" :mask-closable="false">
 | 
					    <Modal title="导入商品信息" v-model="importModal" :mask-closable="false">
 | 
				
			||||||
      <div>
 | 
					      <div style="text-align: center">
 | 
				
			||||||
        <Upload :before-upload="handleUpload" name="files" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
 | 
					        <Upload :before-upload="handleUpload" name="files" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
 | 
				
			||||||
                multiple type="drag" :action="action" :headers="accessToken">
 | 
					                multiple type="drag" :action="action" :headers="accessToken">
 | 
				
			||||||
          <div style="padding: 50px 0">
 | 
					          <div style="padding: 50px 0">
 | 
				
			||||||
@ -189,6 +189,7 @@
 | 
				
			|||||||
            <h2>选择或拖拽文件上传</h2>
 | 
					            <h2>选择或拖拽文件上传</h2>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </Upload>
 | 
					        </Upload>
 | 
				
			||||||
 | 
					        <Button @click="exportGoods" type="text" style="color: red">下载导入模板</Button>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div slot="footer">
 | 
					      <div slot="footer">
 | 
				
			||||||
        <Button type="text" @click="importModal = false">确定</Button>
 | 
					        <Button type="text" @click="importModal = false">确定</Button>
 | 
				
			||||||
@ -206,9 +207,12 @@ import {
 | 
				
			|||||||
  lowGoods,
 | 
					  lowGoods,
 | 
				
			||||||
  deleteGoods,
 | 
					  deleteGoods,
 | 
				
			||||||
  batchShipTemplate,
 | 
					  batchShipTemplate,
 | 
				
			||||||
 | 
					  downLoadGoods
 | 
				
			||||||
} from "@/api/goods";
 | 
					} from "@/api/goods";
 | 
				
			||||||
import { baseUrl } from "@/libs/axios.js";
 | 
					import { baseUrl } from "@/libs/axios.js";
 | 
				
			||||||
import * as API_Shop from "@/api/shops";
 | 
					import * as API_Shop from "@/api/shops";
 | 
				
			||||||
 | 
					import Cookies from "js-cookie";
 | 
				
			||||||
 | 
					import {uploadGoodsExcel} from "../../../api/goods";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: "goods",
 | 
					  name: "goods",
 | 
				
			||||||
@ -511,9 +515,51 @@ export default {
 | 
				
			|||||||
      this.upload();
 | 
					      this.upload();
 | 
				
			||||||
      return false;
 | 
					      return false;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 上传文件
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    async upload() {
 | 
				
			||||||
 | 
					      let fd = new FormData();
 | 
				
			||||||
 | 
					      fd.append("files", this.file);
 | 
				
			||||||
 | 
					      let res = await uploadGoodsExcel(fd);
 | 
				
			||||||
 | 
					      if (res.success) {
 | 
				
			||||||
 | 
					        this.stepList.map((item) => {
 | 
				
			||||||
 | 
					          item.checked = false;
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.stepList[2].checked = true;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    openImportGoods(){
 | 
					    openImportGoods(){
 | 
				
			||||||
      this.importModal = true
 | 
					      this.importModal = true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    async exportGoods(){
 | 
				
			||||||
 | 
					      downLoadGoods()
 | 
				
			||||||
 | 
					        .then((res) => {
 | 
				
			||||||
 | 
					          console.log(res)
 | 
				
			||||||
 | 
					          const blob = new Blob([res], {
 | 
				
			||||||
 | 
					            type: "application/vnd.ms-excel;charset=utf-8",
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					          //对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性
 | 
				
			||||||
 | 
					          //IE10以上支持blob但是依然不支持download
 | 
				
			||||||
 | 
					          if ("download" in document.createElement("a")) {
 | 
				
			||||||
 | 
					            //支持a标签download的浏览器
 | 
				
			||||||
 | 
					            const link = document.createElement("a"); //创建a标签
 | 
				
			||||||
 | 
					            link.download = "商品批量导入模板.xls"; //a标签添加属性
 | 
				
			||||||
 | 
					            link.style.display = "none";
 | 
				
			||||||
 | 
					            link.href = URL.createObjectURL(blob);
 | 
				
			||||||
 | 
					            document.body.appendChild(link);
 | 
				
			||||||
 | 
					            link.click(); //执行下载
 | 
				
			||||||
 | 
					            URL.revokeObjectURL(link.href); //释放url
 | 
				
			||||||
 | 
					            document.body.removeChild(link); //释放标签
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            navigator.msSaveBlob(blob, fileName);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        .catch((err) => {
 | 
				
			||||||
 | 
					          console.log(err);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    // 更新库存
 | 
					    // 更新库存
 | 
				
			||||||
    updateStock() {
 | 
					    updateStock() {
 | 
				
			||||||
      let updateStockList = this.stockList.map((i) => {
 | 
					      let updateStockList = this.stockList.map((i) => {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										0
									
								
								seller/src/views/lili-dialog/goods-dialog.vue
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								seller/src/views/lili-dialog/goods-dialog.vue
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								seller/src/views/lili-dialog/index.vue
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								seller/src/views/lili-dialog/index.vue
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								seller/src/views/lili-dialog/link-dialog.vue
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								seller/src/views/lili-dialog/link-dialog.vue
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										0
									
								
								seller/src/views/lili-dialog/style.scss
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								seller/src/views/lili-dialog/style.scss
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							@ -11,6 +11,17 @@ export default [
 | 
				
			|||||||
  //   name: "category"
 | 
					  //   name: "category"
 | 
				
			||||||
  // },
 | 
					  // },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // {
 | 
				
			||||||
 | 
					  //   title: "活动",
 | 
				
			||||||
 | 
					  //   url: "3",
 | 
				
			||||||
 | 
					  //   name: "marketing"
 | 
				
			||||||
 | 
					  // },
 | 
				
			||||||
 | 
					  // {
 | 
				
			||||||
 | 
					  //   title: "页面",
 | 
				
			||||||
 | 
					  //   url: "3",
 | 
				
			||||||
 | 
					  //   name: "pages"
 | 
				
			||||||
 | 
					  // },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // {
 | 
					  // {
 | 
				
			||||||
  //   title: "活动",
 | 
					  //   title: "活动",
 | 
				
			||||||
  //   url: "3",
 | 
					  //   url: "3",
 | 
				
			||||||
 | 
				
			|||||||
@ -126,7 +126,7 @@ export default {
 | 
				
			|||||||
          const data = this.formData;
 | 
					          const data = this.formData;
 | 
				
			||||||
          data.status ? (data.pageShow = "OPEN") : (data.pageShow = "CLOSE");
 | 
					          data.status ? (data.pageShow = "OPEN") : (data.pageShow = "CLOSE");
 | 
				
			||||||
          delete data.status;
 | 
					          delete data.status;
 | 
				
			||||||
          (data.pageType = "INDEX"), (data.pageClientType = "PC");
 | 
					          (data.pageType = "STORE"), (data.pageClientType = "PC");
 | 
				
			||||||
          if (data.id) {
 | 
					          if (data.id) {
 | 
				
			||||||
            API_floor.updateHome(data.id, data).then((res) => {
 | 
					            API_floor.updateHome(data.id, data).then((res) => {
 | 
				
			||||||
              this.$Message.success("编辑模板成功");
 | 
					              this.$Message.success("编辑模板成功");
 | 
				
			||||||
 | 
				
			|||||||
@ -1,98 +1,5 @@
 | 
				
			|||||||
export const modelData = [{
 | 
					
 | 
				
			||||||
    type: 'carousel',
 | 
					export const modelData = [
 | 
				
			||||||
    name: '图片轮播',
 | 
					 | 
				
			||||||
    icon: 'md-image',
 | 
					 | 
				
			||||||
    showName: '',
 | 
					 | 
				
			||||||
    size: "790*340",
 | 
					 | 
				
			||||||
    options: {
 | 
					 | 
				
			||||||
      list: [{
 | 
					 | 
				
			||||||
          img: require('@/assets/nav/1.jpg'),
 | 
					 | 
				
			||||||
          url: ''
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          img: require('@/assets/nav/2.jpg'),
 | 
					 | 
				
			||||||
          url: ''
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          img: require('@/assets/nav/3.jpg'),
 | 
					 | 
				
			||||||
          url: ''
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
//   {
 | 
					 | 
				
			||||||
//     type: 'carousel1',
 | 
					 | 
				
			||||||
//     name: '图片轮播1',
 | 
					 | 
				
			||||||
//     icon: 'md-image',
 | 
					 | 
				
			||||||
//     size: "1200*470",
 | 
					 | 
				
			||||||
//     options: {
 | 
					 | 
				
			||||||
//       list: [{
 | 
					 | 
				
			||||||
//           img: require('@/assets/nav/1.jpg'),
 | 
					 | 
				
			||||||
//           url: '',
 | 
					 | 
				
			||||||
//           bgColor: 'yellow'
 | 
					 | 
				
			||||||
//         },
 | 
					 | 
				
			||||||
//         {
 | 
					 | 
				
			||||||
//           img: require('@/assets/nav/2.jpg'),
 | 
					 | 
				
			||||||
//           url: '',
 | 
					 | 
				
			||||||
//           bgColor: 'purple'
 | 
					 | 
				
			||||||
//         },
 | 
					 | 
				
			||||||
//         {
 | 
					 | 
				
			||||||
//           img: require('@/assets/nav/3.jpg'),
 | 
					 | 
				
			||||||
//           url: '',
 | 
					 | 
				
			||||||
//           bgColor: 'blue'
 | 
					 | 
				
			||||||
//         }
 | 
					 | 
				
			||||||
//       ],
 | 
					 | 
				
			||||||
//     },
 | 
					 | 
				
			||||||
//   },
 | 
					 | 
				
			||||||
//   {
 | 
					 | 
				
			||||||
//     type: 'carousel2',
 | 
					 | 
				
			||||||
//     name: '图片轮播2',
 | 
					 | 
				
			||||||
//     icon: 'md-image',
 | 
					 | 
				
			||||||
//     size: "590*470",
 | 
					 | 
				
			||||||
//     options: {
 | 
					 | 
				
			||||||
//       list: [{
 | 
					 | 
				
			||||||
//           img: require('@/assets/nav/1.jpg'),
 | 
					 | 
				
			||||||
//           url: ''
 | 
					 | 
				
			||||||
//         },
 | 
					 | 
				
			||||||
//         {
 | 
					 | 
				
			||||||
//           img: require('@/assets/nav/2.jpg'),
 | 
					 | 
				
			||||||
//           url: ''
 | 
					 | 
				
			||||||
//         },
 | 
					 | 
				
			||||||
//         {
 | 
					 | 
				
			||||||
//           img: require('@/assets/nav/3.jpg'),
 | 
					 | 
				
			||||||
//           url: ''
 | 
					 | 
				
			||||||
//         }
 | 
					 | 
				
			||||||
//       ],
 | 
					 | 
				
			||||||
//       listRight: [
 | 
					 | 
				
			||||||
//         [{
 | 
					 | 
				
			||||||
//             img: require('@/assets/nav/1.jpg'),
 | 
					 | 
				
			||||||
//             url: ''
 | 
					 | 
				
			||||||
//           },
 | 
					 | 
				
			||||||
//           {
 | 
					 | 
				
			||||||
//             img: require('@/assets/nav/2.jpg'),
 | 
					 | 
				
			||||||
//             url: ''
 | 
					 | 
				
			||||||
//           },
 | 
					 | 
				
			||||||
//           {
 | 
					 | 
				
			||||||
//             img: require('@/assets/nav/3.jpg'),
 | 
					 | 
				
			||||||
//             url: ''
 | 
					 | 
				
			||||||
//           }
 | 
					 | 
				
			||||||
//         ],
 | 
					 | 
				
			||||||
//         [{
 | 
					 | 
				
			||||||
//             img: require('@/assets/nav/1.jpg'),
 | 
					 | 
				
			||||||
//             url: ''
 | 
					 | 
				
			||||||
//           },
 | 
					 | 
				
			||||||
//           {
 | 
					 | 
				
			||||||
//             img: require('@/assets/nav/2.jpg'),
 | 
					 | 
				
			||||||
//             url: ''
 | 
					 | 
				
			||||||
//           },
 | 
					 | 
				
			||||||
//           {
 | 
					 | 
				
			||||||
//             img: require('@/assets/nav/3.jpg'),
 | 
					 | 
				
			||||||
//             url: ''
 | 
					 | 
				
			||||||
//           }
 | 
					 | 
				
			||||||
//         ],
 | 
					 | 
				
			||||||
//       ]
 | 
					 | 
				
			||||||
//     },
 | 
					 | 
				
			||||||
//   },
 | 
					 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    type: 'hotAdvert',
 | 
					    type: 'hotAdvert',
 | 
				
			||||||
    name: '热门广告',
 | 
					    name: '热门广告',
 | 
				
			||||||
 | 
				
			|||||||
@ -61,7 +61,7 @@
 | 
				
			|||||||
            </ul>
 | 
					            </ul>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>)
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <!-- 左侧轮播装修 -->
 | 
					    <!-- 左侧轮播装修 -->
 | 
				
			||||||
    <Modal
 | 
					    <Modal
 | 
				
			||||||
@ -166,14 +166,12 @@
 | 
				
			|||||||
            </table>
 | 
					            </table>
 | 
				
			||||||
          </TabPane>
 | 
					          </TabPane>
 | 
				
			||||||
        </Tabs>
 | 
					        </Tabs>
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </Modal>
 | 
					    </Modal>
 | 
				
			||||||
    <!-- 选择商品。链接 -->
 | 
					    <!-- 选择商品。链接 -->
 | 
				
			||||||
    <liliDialog
 | 
					    <liliDialog
 | 
				
			||||||
      ref="liliDialog"
 | 
					      ref="liliDialog"
 | 
				
			||||||
      @selectedLink="selectedLink"
 | 
					      @selectedLink="selectedLink"
 | 
				
			||||||
     
 | 
					 | 
				
			||||||
    ></liliDialog>
 | 
					    ></liliDialog>
 | 
				
			||||||
    <!-- 选择图片 -->
 | 
					    <!-- 选择图片 -->
 | 
				
			||||||
    <Modal width="1200px" v-model="picModelFlag" footer-hide>
 | 
					    <Modal width="1200px" v-model="picModelFlag" footer-hide>
 | 
				
			||||||
 | 
				
			|||||||
@ -459,10 +459,9 @@ export default {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
<<<<<<< HEAD
 | 
					    pageShow(type) {
 | 
				
			||||||
    pageShow(type){
 | 
					 | 
				
			||||||
      this.form.pageShow = type
 | 
					      this.form.pageShow = type
 | 
				
			||||||
=======
 | 
					    },
 | 
				
			||||||
    getDeliverAddress(){
 | 
					    getDeliverAddress(){
 | 
				
			||||||
      API_Shop.getDeliverAddress().then(res=>{
 | 
					      API_Shop.getDeliverAddress().then(res=>{
 | 
				
			||||||
        if(res.success){
 | 
					        if(res.success){
 | 
				
			||||||
@ -474,7 +473,6 @@ export default {
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
>>>>>>> 4ea142ea086a3f534419a31b595de80497e16d90
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    //修改售后地址
 | 
					    //修改售后地址
 | 
				
			||||||
    regionClick() {
 | 
					    regionClick() {
 | 
				
			||||||
 | 
				
			|||||||
@ -116,7 +116,7 @@ export default {
 | 
				
			|||||||
        : (this.submitWay.pageShow = "CLOSE");
 | 
					        : (this.submitWay.pageShow = "CLOSE");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      this.submitWay.pageData = JSON.stringify(this.$store.state.styleStore);
 | 
					      this.submitWay.pageData = JSON.stringify(this.$store.state.styleStore);
 | 
				
			||||||
      this.submitWay.pageType = "INDEX";
 | 
					      this.submitWay.pageType = "STORE";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      this.$route.query.id ? this.update() : this.submit(this.submitWay);
 | 
					      this.$route.query.id ? this.update() : this.submit(this.submitWay);
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -128,7 +128,7 @@ export default {
 | 
				
			|||||||
        pageData: JSON.stringify(this.$store.state.styleStore),
 | 
					        pageData: JSON.stringify(this.$store.state.styleStore),
 | 
				
			||||||
        name: this.submitWay.name,
 | 
					        name: this.submitWay.name,
 | 
				
			||||||
        pageShow: this.submitWay.pageShow,
 | 
					        pageShow: this.submitWay.pageShow,
 | 
				
			||||||
        pageType: "INDEX",
 | 
					        pageType: "STORE",
 | 
				
			||||||
        pageClientType: "H5",
 | 
					        pageClientType: "H5",
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
        .then((res) => {
 | 
					        .then((res) => {
 | 
				
			||||||
 | 
				
			|||||||
@ -63,7 +63,7 @@ export default {
 | 
				
			|||||||
        pageSize: 10,
 | 
					        pageSize: 10,
 | 
				
			||||||
        sort: "createTime",
 | 
					        sort: "createTime",
 | 
				
			||||||
        order: "desc",
 | 
					        order: "desc",
 | 
				
			||||||
        pageType: "INDEX",
 | 
					        pageType: "STORE",
 | 
				
			||||||
        pageClientType: "H5",
 | 
					        pageClientType: "H5",
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      total: 0, // 页面数量
 | 
					      total: 0, // 页面数量
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user