Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop-ui

master
paulGao 2021-12-21 18:59:57 +08:00
commit 0d5c60ed8c
24 changed files with 208 additions and 156 deletions

5
buyer/.npmrc Normal file
View File

@ -0,0 +1,5 @@
# 默认依赖包指定淘宝源
registry=https://registry.npm.taobao.org/
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
electron_mirror=https://npm.taobao.org/mirrors/electron/

5
buyer/.yarnrc Normal file
View File

@ -0,0 +1,5 @@
registry "https://registry.npmmirror.com"
sass_binary_site "https://npmmirror.com/mirrors/node-sass"
phantomjs_cdnurl "https://npmmirror.com/mirrors/phantomjs"
electron_mirror "https://npmmirror.com/mirrors/electron"

View File

@ -81,3 +81,14 @@ export function articleDetail (id) {
method: Method.GET
});
}
// 获取IM接口前缀
export function getIMDetail () {
return request({
url: `${commonUrl}/common/IM`,
method: Method.GET
});
}

View File

@ -224,7 +224,7 @@ export default {
count: 1, //
imgIndex: 0, //
currentSelceted: [], // sku
imgList: [{}], //
imgList: [{url:''}], //
skuDetail: this.detail.data, // sku
goodsSpecList: this.detail.specs, // spec
promotionMap: {

View File

@ -1,30 +1,12 @@
module.exports = {
/**
* @description 配置显示在浏览器标签的title底部信息部分信息展示的值
*/
title: "lili-shop",
/**
* @description icp证
*/
icpCard: "",
company:{
href:"https://pickmall.cn",
name:"北京宏业汇成科技有限公司"
},
/**
* @description icp备案号
*/
icpMessage: "京ICP备20009696号-1",
/**
* @description 是否使用国际化默认为false
* 如果不使用则需要在路由中给需要在菜单中展示的路由设置meta: {title: 'xxx'}
* 用来在菜单中显示文字
*/
useI18n: false,
/**
* @description 高德web端申请的api key
*/
aMapKey: "b440952723253aa9fe483e698057bf7d",
title: "lili-shop", //配置显示在浏览器标签的title、底部信息、部分信息展示的值
icpCard: "", // icp证
company: {
href: "https://pickmall.cn",
name: "北京宏业汇成科技有限公司",
}, //公司信息
icpMessage: "京ICP备20009696号-1", //icp备案
aMapKey: "b440952723253aa9fe483e698057bf7d", //高德web端申请的api key
enableCDN: true, //生产环境 是否启用cdn加载 vue等js
port:10000, //端口
};

View File

@ -13,14 +13,24 @@
</BreadcrumbItem>
</Breadcrumb>
<div class="store-collect">
<span class="mr_10" v-if="goodsMsg.data"><router-link
:to="'Merchant?id=' + goodsMsg.data.storeId">{{ goodsMsg.data.storeName }}</router-link></span>
<span @click="collect"><Icon type="ios-heart"
:color="storeCollected ? '#ed3f14' : '#666'"/>
{{storeCollected ? '已收藏店铺' : '收藏店铺'}}
</span>
<span @click="connectCs(storeMsg.yzfSign)" class="ml_10"><Icon
custom="icomoon icon-customer-service"/>联系客服</span>
<span class="mr_10" v-if="goodsMsg.data">
<router-link :to="'Merchant?id=' + goodsMsg.data.storeId">{{ goodsMsg.data.storeName }}</router-link>
</span>
<span @click="collect">
<Icon type="ios-heart" :color="storeCollected ? '#ed3f14' : '#666'" />
{{storeCollected ? '已收藏店铺' : '收藏店铺'}}
</span>
<!--
先看下udesk merchantEuid 是否有值
有的话 链接udesk
没有的话 显示云智服
-->
<span class="ml_10" v-if="storeMsg.merchantEuid" @click="IMService()"></span>
<span v-else @click="connectCs(storeMsg.yzfSign)" class="ml_10">
<Icon custom="icomoon icon-customer-service" />联系客服
</span>
</div>
</div>
</div>
@ -35,128 +45,158 @@
</template>
<script>
import Search from '@/components/Search';
import ShopHeader from '@/components/header/ShopHeader';
import ShowGoods from '@/components/goodsDetail/ShowGoods';
import ShowGoodsDetail from '@/components/goodsDetail/ShowGoodsDetail';
import {goodsSkuDetail} from '@/api/goods';
import {cancelCollect, collectGoods, isCollection, getGoodsDistribution} from '@/api/member';
import {getDetailById} from '@/api/shopentry'
import Search from "@/components/Search";
import ShopHeader from "@/components/header/ShopHeader";
import ShowGoods from "@/components/goodsDetail/ShowGoods";
import ShowGoodsDetail from "@/components/goodsDetail/ShowGoodsDetail";
import { goodsSkuDetail } from "@/api/goods";
import {
cancelCollect,
collectGoods,
isCollection,
getGoodsDistribution,
} from "@/api/member";
import { getDetailById } from "@/api/shopentry";
import { getIMDetail } from "@/api/common";
export default {
name: 'GoodsDetail',
beforeRouteEnter (to, from, next) {
name: "GoodsDetail",
beforeRouteEnter(to, from, next) {
window.scrollTo(0, 0);
next();
},
created () {
created() {
this.getGoodsDetail();
// this.getIMDetailMethods();
},
data () {
data() {
return {
goodsMsg: {}, //
isLoading: false, //
categoryBar: [], //
storeCollected: false, //
storeMsg: {} //
storeMsg: {}, //
IMLink: "",
};
},
methods: {
// im
IMService() {
window.open(this.IM);
},
// im
async getIMDetailMethods() {
let res = await getIMDetail();
if (res.success) {
this.IMLink = res.result;
}
},
//
getGoodsDetail () {
getGoodsDetail() {
this.isLoading = true;
const params = this.$route.query;
// id
let distributionId = (params && params.distributionId) ? params.distributionId : this.Cookies.getItem('distributionId');
let distributionId =
params && params.distributionId
? params.distributionId
: this.Cookies.getItem("distributionId");
//
if (distributionId) {
console.log(distributionId)
console.log(distributionId);
//
this.Cookies.setItem('distributionId', params.distributionId)
this.Cookies.setItem("distributionId", params.distributionId);
let _this = this;
//
getGoodsDistribution(params.distributionId).then(res => {
getGoodsDistribution(params.distributionId).then((res) => {
//
if (res.success) {
_this.Cookies.removeItem('distributionId');
_this.Cookies.removeItem("distributionId");
}
})
});
}
goodsSkuDetail(params).then((res) => {
this.isLoading = false;
if (res.success) {
const result = res.result;
const cateName = res.result.categoryName;
const cateId = result.data.categoryPath.split(',');
const cateArr = [];
cateId.forEach((e, index) => { // idname
cateArr.push({
id: e,
name: cateName[index]
goodsSkuDetail(params)
.then((res) => {
this.isLoading = false;
if (res.success) {
const result = res.result;
const cateName = res.result.categoryName;
const cateId = result.data.categoryPath.split(",");
const cateArr = [];
cateId.forEach((e, index) => {
// idname
cateArr.push({
id: e,
name: cateName[index],
});
});
});
this.categoryBar = cateArr;
this.goodsMsg = res.result;
//
if (this.Cookies.getItem('userInfo')) {
isCollection('STORE', this.goodsMsg.data.storeId).then(res => {
if (res.success && res.result) {
this.storeCollected = true;
}
})
}
//
getDetailById(this.goodsMsg.data.storeId).then(res => {
if (res.success) {
this.storeMsg = res.result
this.categoryBar = cateArr;
this.goodsMsg = res.result;
//
if (this.Cookies.getItem("userInfo")) {
isCollection("STORE", this.goodsMsg.data.storeId).then((res) => {
if (res.success && res.result) {
this.storeCollected = true;
}
});
}
})
} else {
this.$Message.error(res.message)
this.$router.push('/')
}
}).catch(() => {
this.$router.push('/')
});
//
getDetailById(this.goodsMsg.data.storeId).then((res) => {
if (res.success) {
this.storeMsg = res.result;
}
});
} else {
this.$Message.error(res.message);
this.$router.push("/");
}
})
.catch(() => {
this.$router.push("/");
});
},
goGoodsList (currIndex) { //
const arr = []
goGoodsList(currIndex) {
//
const arr = [];
this.categoryBar.forEach((e, index) => {
if (index <= currIndex) {
arr.push(e.id)
arr.push(e.id);
}
})
return location.origin + '/goodsList?categoryId=' + arr.toString()
});
return location.origin + "/goodsList?categoryId=" + arr.toString();
},
async collect () { //
async collect() {
//
if (this.storeCollected) {
let cancel = await cancelCollect('STORE', this.goodsMsg.data.storeId)
let cancel = await cancelCollect("STORE", this.goodsMsg.data.storeId);
if (cancel.success) {
this.$Message.success('已取消收藏')
this.$Message.success("已取消收藏");
this.storeCollected = false;
}
} else {
let collect = await collectGoods('STORE', this.goodsMsg.data.storeId);
let collect = await collectGoods("STORE", this.goodsMsg.data.storeId);
if (collect.code === 200) {
this.storeCollected = true;
this.$Message.success('收藏店铺成功,可以前往个人中心我的收藏查看');
this.$Message.success("收藏店铺成功,可以前往个人中心我的收藏查看");
}
}
}
},
},
watch: {
'$route.query.skuId': function (val) {
"$route.query.skuId": function (val) {
location.reload();
}
},
},
computed: {
IM() {
return this.IMLink + this.storeMsg.merchantEuid;
},
},
computed: {},
components: {
Search,
ShopHeader,
ShowGoods,
ShowGoodsDetail
}
ShowGoodsDetail,
},
};
</script>
<style scoped lang="scss">

View File

@ -13,6 +13,7 @@ const configs = require('./src/config')
*/
const enableProduction = process.env.NODE_ENV === "production"; // 是否生产环境
let externals = {
vue: "Vue",
axios: "axios",
@ -53,8 +54,8 @@ let jsPlugin = [
})
];
// 判断是否需要加载CDN
cdn = enableProduction ? cdn : { css: [], js: [] };
externals = enableProduction ? externals : {};
cdn = enableProduction && configs.enableCDN ? cdn : { css: [], js: [] };
externals = enableProduction && configs.enableCDN ? externals : {};
jsPlugin = enableProduction ? jsPlugin : [];
module.exports = {
@ -80,7 +81,7 @@ module.exports = {
}
},
devServer: {
port: 10000
port: configs.port
},
// 打包时不生成.map文件 避免看到源码

5
manager/.npmrc Normal file
View File

@ -0,0 +1,5 @@
# 默认依赖包指定淘宝源
registry=https://registry.npm.taobao.org/
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
electron_mirror=https://npm.taobao.org/mirrors/electron/

5
manager/.yarnrc Normal file
View File

@ -0,0 +1,5 @@
registry "https://registry.npmmirror.com"
sass_binary_site "https://npmmirror.com/mirrors/node-sass"
phantomjs_cdnurl "https://npmmirror.com/mirrors/phantomjs"
electron_mirror "https://npmmirror.com/mirrors/electron"

View File

@ -1,14 +1,7 @@
export default {
/**
* @description 配置显示在浏览器标签的title
*/
title: "lilishop",
/**
* @description 高德web端申请的api key
*/
aMapKey: "b440952723253aa9fe483e698057bf7d",
/**
* @description 官网地址
*/
website: "https://www.pickmall.cn",
module.exports = {
title: "lilishop", //配置显示在浏览器标签的title
aMapKey: "b440952723253aa9fe483e698057bf7d", //高德web端申请的api key
website: "https://www.pickmall.cn", //官网地址
enableCDN: true, //生产环境 是否启用cdn加载 vue等js
port:10003, //端口
};

View File

@ -1,7 +1,5 @@
import config from '@/config/index'
export default {
lili: config.title,
usernameLogin: 'UsernameLogin',
mobileLogin: 'MobileLogin',
autoLogin: 'Auto Login',

View File

@ -1,6 +1,5 @@
import config from '@/config/index'
export default {
lili: config.title,
usernameLogin: '账户密码登录',
mobileLogin: '手机号登录',
autoLogin: '自动登录',

View File

@ -1,5 +1,6 @@
import Main from "@/views/Main.vue";
import config from '@/config/index'
const config = require('@/config/index')
// 不作为Main组件的子页面展示的页面单独写如下
export const loginRouter = {
path: "/login",

View File

@ -13,7 +13,8 @@
</template>
<script>
import config from '@/config/index'
const config = require('@/config/index')
export default {
name: "footer",
data() {

View File

@ -31,7 +31,8 @@
<script>
import AMapLoader from "@amap/amap-jsapi-loader";
import { getRegion } from "@/api/common.js";
import config from '@/config'
const config = require('@/config/index')
export default {
data() {
return {

View File

@ -255,8 +255,8 @@ import {
deleteFile,
} from "@/api/index";
import DPlayer from "dplayer";
import config from "@/config";
const config = require('@/config/index')
import { commonUrl } from "@/libs/axios";
var dp;
export default {

View File

@ -1,4 +1,5 @@
const path = require("path");
const configs = require('./src/config')
const CompressionPlugin = require("compression-webpack-plugin");
const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
const resolve = dir => {
@ -12,6 +13,7 @@ const resolve = dir => {
*/
const enableProduction = process.env.NODE_ENV === "production"; // 是否生产环境
let externals = {
vue: "Vue",
axios: "axios",
@ -63,8 +65,9 @@ let jsPlugin = [
];
// 判断是否需要加载CDN线上删除注释
cdn = enableProduction ? cdn : { css: [], js: [] };
externals = enableProduction ? externals : {};
cdn = enableProduction && configs.enableCDN ? cdn : { css: [], js: [] };
externals = enableProduction && configs.enableCDN ? externals : {};
jsPlugin = enableProduction ? jsPlugin : [];
module.exports = {
css: {
@ -78,7 +81,7 @@ module.exports = {
}
},
devServer: {
port: 10003
port: configs.port
},
// 打包时不生成.map文件 避免看到源码

View File

@ -0,0 +1,5 @@
registry "https://registry.npmmirror.com"
sass_binary_site "https://npmmirror.com/mirrors/node-sass"
phantomjs_cdnurl "https://npmmirror.com/mirrors/phantomjs"
electron_mirror "https://npmmirror.com/mirrors/electron"

View File

@ -1,16 +1,7 @@
export default {
/**
* @description 配置显示在浏览器标签的title
*/
title: "lilishop",
/**
* @description 高德web端申请的api key
*/
aMapKey: "b440952723253aa9fe483e698057bf7d",
/**
* @description 官网地址
*/
website: "https://www.pickmall.cn",
module.exports = {
title: "lilishop", //配置显示在浏览器标签的title
aMapKey: "b440952723253aa9fe483e698057bf7d", //高德web端申请的api key
website: "https://www.pickmall.cn", //官网地址
enableCDN: true, //生产环境 是否启用cdn加载 vue等js
port:10002, //端口
};

View File

@ -2,7 +2,8 @@ import lazyLoading from './lazyLoading.js';
import Cookies from "js-cookie";
import { result } from './routerJson.js';
import config from '@/config/index'
const config = require('@/config/index')
let util = {
};

View File

@ -1,5 +1,6 @@
import Main from "@/views/Main.vue";
import config from '@/config/index'
const config = require('@/config/index')
// 不作为Main组件的子页面展示的页面单独写如下
export const loginRouter = {
path: "/login",

View File

@ -13,7 +13,8 @@
</template>
<script>
import config from '@/config/index'
const config = require('@/config/index')
export default {
name: "footer",
data() {

View File

@ -31,7 +31,8 @@
<script>
import AMapLoader from "@amap/amap-jsapi-loader";
import { getRegion } from "@/api/common.js";
import config from '@/config'
const config = require('@/config/index')
export default {
name: "map",
data() {

View File

@ -1,4 +1,5 @@
const path = require("path");
const configs = require('./src/config')
const CompressionPlugin = require("compression-webpack-plugin");
const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
const resolve = dir => {
@ -11,6 +12,7 @@ const resolve = dir => {
* 我们可以根据环境变量进行相应的处理只有在产品的时候才让插件去自动注入相应的资源文件到html页面
*/
const enableProduction = process.env.NODE_ENV === "production"; // 是否生产环境
// const enableProduction = false // 统一取消cdn加载 目前cdn链接的https请求挂了
let externals = {
vue: "Vue",
@ -60,8 +62,8 @@ let jsPlugin = [
})
];
// 判断是否需要加载CDN
cdn = enableProduction ? cdn : { css: [], js: [] };
externals = enableProduction ? externals : {};
cdn = enableProduction && configs.enableCDN ? cdn : { css: [], js: [] };
externals = enableProduction && configs.enableCDN ? externals : {};
jsPlugin = enableProduction ? jsPlugin : [];
module.exports = {
@ -83,7 +85,7 @@ module.exports = {
}
},
devServer: {
port: 10002
port: configs.port
},
// 打包时不生成.map文件 避免看到源码