Commit 58e4e95b authored by 郝聪敏's avatar 郝聪敏

feature: 优化

parent ba42d8e6
......@@ -47,147 +47,155 @@ export default {
// todo: 对外接口需提供x-auth-token
// 购物车-添加商品
addShopCart(params) {
return http.post(`${config.kdspHost}/api/kdsp/shop-cart/add-update`, params);
return http.post(`${config.kdspHost}/api/kdsp/shop-cart/add-update`, params, {
hideToken: true,
headers: {
'x-auth-token': '7386386a-3a78-41f9-8584-14933823bf20'
}
});
},
// 商品组或专题查询
getGoods(params) {
// return http.post(`${config.kdspHost}/api/kdsp/activity/activity-goods-special/skus`, params);
return {
skus: [
{
skuNo: '100014565800',
skuName: '【自营】【自营】小米手机 陶瓷黑 8GB+128GB 官方标配',
skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
salePrice: 2.85,
marketPrice: 293
},
{
skuNo: '100014565820',
skuName: '【自营】[自营][自营]0',
skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
salePrice: 264,
marketPrice: 300
},
{
skuNo: '100014565820',
skuName: '【自营】[自营][自营]0',
skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
salePrice: 264,
marketPrice: 300
},
{
skuNo: '100014565800',
skuName: '【自营】【自营】小米手机 陶瓷黑 8GB+128GB 官方标配',
skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
salePrice: 2.85,
marketPrice: 293
},
{
skuNo: '100014565820',
skuName: '【自营】[自营][自营]0',
skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
salePrice: 264,
marketPrice: 300
},
{
skuNo: '100014565820',
skuName: '【自营】[自营][自营]0',
skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
salePrice: 264,
marketPrice: 300
}
]
};
return http.post(`${config.kdspHost}/api/kdsp/activity/activity-goods-special/skus`, params);
// return {
// skus: [
// {
// skuNo: '100014565800',
// skuName: '【自营】【自营】小米手机 陶瓷黑 8GB+128GB 官方标配',
// skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
// salePrice: 2.85,
// marketPrice: 293
// },
// {
// skuNo: '100014565820',
// skuName: '【自营】[自营][自营]0',
// skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
// salePrice: 264,
// marketPrice: 300
// },
// {
// skuNo: '100014565820',
// skuName: '【自营】[自营][自营]0',
// skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
// salePrice: 264,
// marketPrice: 300
// },
// {
// skuNo: '100014565800',
// skuName: '【自营】【自营】小米手机 陶瓷黑 8GB+128GB 官方标配',
// skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
// salePrice: 2.85,
// marketPrice: 293
// },
// {
// skuNo: '100014565820',
// skuName: '【自营】[自营][自营]0',
// skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
// salePrice: 264,
// marketPrice: 300
// },
// {
// skuNo: '100014565820',
// skuName: '【自营】[自营][自营]0',
// skuUrl: 'https://img14.360buyimg.com/n0/jfs/t1/141986/32/5318/98164/5f3236baE713fd239/5f2746db41f3e9c0.jpg',
// salePrice: 264,
// marketPrice: 300
// }
// ]
// };
},
// 根据id查询优惠券列表
getCoupons(params) {
// return http.post(`${config.kdspHost}/api/kdsp/coupon/list`, params, {
// hideToken: true,
// headers: {
// 'x-auth-token': '97466ed6-ec03-452e-be8f-763a8ffafefe'
// }
// });
return {
coupons: [
{
id: 1,
pickupId: 1,
name: '3C数码会场',
startDate: '2021-02-22',
endDate: '2021-02-22',
faceValue: 100,
limitAmount: 300,
limitDesc: '满300减100',
couponCategory: 1,
iconUrl: 'in esse',
description: 'officia do',
status: 19667180,
navUrl: 'exercitation est',
pickupAble: false,
publishCountFinished: false
},
{
id: 2,
pickupId: 1,
name: '3C数码会场',
startDate: '2021-02-22',
endDate: '2021-02-22',
faceValue: 100,
limitAmount: 300,
limitDesc: '满300减100',
couponCategory: 1,
iconUrl: 'oc',
description: 'minim dolore tempor',
status: 63205995,
navUrl: 'cupidat',
pickupAble: true,
publishCountFinished: false
},
{
id: 3,
pickupId: 1,
name: '3C数码会场',
startDate: '2021-02-22',
endDate: '2021-02-22',
faceValue: 100,
limitAmount: 300,
limitDesc: '满300减100',
couponCategory: 1,
iconUrl: 'eu fugiat commodo voluptate exercitation',
description: 'nisi',
status: 43999314,
navUrl: 'commodo in reprehenderit',
pickupAble: false,
publishCountFinished: true
},
{
id: 4,
pickupId: 1,
name: '3C数码会场',
startDate: '2021-02-22',
endDate: '2021-02-22',
faceValue: 100,
limitAmount: 300,
limitDesc: '满300减100',
couponCategory: 1,
iconUrl: 'eu fugiat commodo voluptate exercitation',
description: 'nisi',
status: 43999314,
navUrl: 'commodo in reprehenderit',
pickupAble: false,
publishCountFinished: true
return http.get(`${config.kdspHost}/api/kdsp/coupon/list`, {
params,
hideToken: true,
headers: {
'x-auth-token': '7386386a-3a78-41f9-8584-14933823bf20'
}
]
};
});
// return {
// coupons: [
// {
// id: 1,
// pickupId: 1,
// name: '3C数码会场',
// startDate: '2021-02-22',
// endDate: '2021-02-22',
// faceValue: 100,
// limitAmount: 300,
// limitDesc: '满300减100',
// couponCategory: 1,
// iconUrl: 'in esse',
// description: 'officia do',
// status: 19667180,
// navUrl: 'exercitation est',
// pickupAble: false,
// publishCountFinished: false
// },
// {
// id: 2,
// pickupId: 1,
// name: '3C数码会场',
// startDate: '2021-02-22',
// endDate: '2021-02-22',
// faceValue: 100,
// limitAmount: 300,
// limitDesc: '满300减100',
// couponCategory: 1,
// iconUrl: 'oc',
// description: 'minim dolore tempor',
// status: 63205995,
// navUrl: 'cupidat',
// pickupAble: true,
// publishCountFinished: false
// },
// {
// id: 3,
// pickupId: 1,
// name: '3C数码会场',
// startDate: '2021-02-22',
// endDate: '2021-02-22',
// faceValue: 100,
// limitAmount: 300,
// limitDesc: '满300减100',
// couponCategory: 1,
// iconUrl: 'eu fugiat commodo voluptate exercitation',
// description: 'nisi',
// status: 43999314,
// navUrl: 'commodo in reprehenderit',
// pickupAble: false,
// publishCountFinished: true
// },
// {
// id: 4,
// pickupId: 1,
// name: '3C数码会场',
// startDate: '2021-02-22',
// endDate: '2021-02-22',
// faceValue: 100,
// limitAmount: 300,
// limitDesc: '满300减100',
// couponCategory: 1,
// iconUrl: 'eu fugiat commodo voluptate exercitation',
// description: 'nisi',
// status: 43999314,
// navUrl: 'commodo in reprehenderit',
// pickupAble: false,
// publishCountFinished: true
// }
// ]
// };
},
// 领取优惠券
pickupCoupon(params) {
return http.post(`${config.kdspHost}/api/kdsp/coupon/pickup`, params, {
hideToken: true,
// todo: header里二者参数需特殊处理
headers: {
'x-user-terminal': 'H5',
'vccChannel': '',
}
'x-auth-token': ''
},
});
},
};
\ No newline at end of file
......@@ -9,5 +9,6 @@ export default {
shenceUrl: `${protocol}//bn.xyqb.com/sa?project=default`,
opapiHost: `https://opapi-vcc2.liangkebang.net`,
qiniuUpHost: `${protocol}//up-z0.qiniup.com`,
kdspHost: 'https://kdsp-api-vcc2.liangkebang.net',
// kdspHost: 'https://kdsp-api-vcc2.liangkebang.net',
kdspHost: 'https://talos-vcc2.liangkebang.net'
};
<template>
<div class="coupon" v-if="column === 1">
<div class="coupon-item_one" :style="style" :key="coupon.id" v-for="coupon in couponList">
<div class="coupon-item_one" :style="style" :key="index" v-for="(coupon, index) in couponList">
<div class="Gi_one-left">
<p>¥<span>{{ coupon.faceValue || '-' }}</span></p>
<p>{{coupon.limitDesc}}</p>
</div>
<div class="Gi_one-middle">
<p>{{ coupon.name }}</p>
<p>{{`${coupon.startDate} - ${coupon.endDate}`}}</p>
<p>{{ coupon.couponValidTime }}</p>
</div>
<cr-button class="Gi_one-right" type="primary" @click="getCoupon(coupon)">{{btnText(coupon.pickupAble)}}</cr-button>
<cr-button class="Gi_one-right" type="primary" @click="pickupCoupon(coupon)">{{btnText(coupon.pickupAble)}}</cr-button>
<div class="coupon-item-mask" v-if="!coupon.pickupAble && coupon.publishCountFinished">
<p>已抢空</p>
</div>
</div>
</div>
<div v-else :class="['coupon', {'coupon_two': column === 2, 'coupon_multiple': column === 3}]">
<div class="coupon-item" :style="style" :key="coupon.id" v-for="coupon in couponList">
<div class="coupon-item" :style="style" :key="index" v-for="(coupon, index) in couponList">
<p class="coupon-item-title">{{ coupon.name }}</p>
<p class="coupon-item-amount">¥<span>{{ coupon.faceValue || '-' }}</span></p>
<p class="coupon-item-amount">{{coupon.limitDesc}}</p>
<cr-button shape="circle" type="primary" @click="getCoupon(coupon)">
<cr-button shape="circle" type="primary" @click="pickupCoupon(coupon)">
{{btnText(coupon.pickupAble)}}
</cr-button>
<div class="coupon-item-mask" v-if="!coupon.pickupAble && coupon.publishCountFinished">
......@@ -67,22 +67,25 @@
watch: {
couponsList: {
handler: async function (newVal) {
const { coupons } = await operationApi.getCoupons({ couponIds: newVal.join(',') });
if(coupons && coupons.length) this.list = coupons;
// console.log('coupons', this.list);
if(newVal) this.getCoupons(newVal);
},
immediate: true
}
},
methods: {
async getCoupon(coupon) {
async pickupCoupon(coupon) {
if (!coupon.pickupAble) {
await operationApi.pickupCoupon({ couponId: coupon.couponId });
await operationApi.pickupCoupon({ couponId: coupon.id });
this.$toast.success('领取成功');
await this.getCoupons([coupon.id]);
} else {
window.location.href = coupon.navUrl;
}
},
async getCoupons(ids) {
const { coupons } = await operationApi.getCoupons({ couponIds: ids.join(',') });
if(coupons && coupons.length) this.list = coupons;
},
btnText(pickupAble) {
return pickupAble ? '去使用' : '立即领取';
}
......
......@@ -108,9 +108,9 @@
}
},
async addShopCart(goods) {
const { skuId, skuNum, skuSource } = goods;
const params = { skuId, skuNum, skuSource, type: 1 }
await operationApi.addShopCart(params);
const { skuNo, skuSource } = goods;
const params = [{ skuId: skuNo, skuNum: 1, skuSource, type: 1 }];
await operationApi.addShopCart({ shopCartBaseList: params });
this.$toast.success('添加成功');
}
}
......
......@@ -8,13 +8,13 @@
</div>
</template>
<script>
import Goods from '../Goods/index.vue';
import Coupon from '../Coupon/index.vue';
import CsGoods from '../Goods/index.vue';
import CsCoupon from '../Coupon/index.vue';
export default {
name: 'goods-tabs',
components: {
Goods,
Coupon
CsGoods,
CsCoupon
},
props: {
list: {
......
// export const basicComponents = require('@qg/cherry-ui/md/index.json');
export const kaLoginForm = require('@qg/citrus-ui/md/index.json');
const crComponents = require('@qg/cherry-ui/md/index.json');
export const businessComponents = require('@qg/citrus-ui/md/index.json');
export const basicComponents = [
{
......@@ -23,638 +23,639 @@ export const basicComponents = [
},
commonStyle: {}
},
{
eleName: 'cr-button',
title: 'Button 按钮',
config: [
{
key: 'type',
name: '类型',
desc: '类型,可选值为',
options: [
'default',
'primary',
'info',
'danger',
'waring',
'success'
],
type: 'select'
},
{
key: 'size',
name: '尺寸',
desc: '尺寸,可选值为',
options: [
'normal',
'large',
'small',
'mini'
],
type: 'select'
},
{
key: 'color',
name: '颜色',
desc: '按钮颜色,支持传入',
type: 'ColorSelector'
},
{
key: 'icon',
name: '图标',
desc: '左侧',
type: 'text'
},
{
key: 'block',
name: '块级元素',
desc: '是否为块级元素',
type: 'checkbox'
},
{
key: 'shape',
name: '形状',
desc: '按钮形状,可选值为',
options: [
'square',
'circle'
],
type: 'select'
},
{
key: 'disabled',
name: '禁用',
desc: '是否禁用按钮',
type: 'checkbox'
},
{
key: 'plain',
name: '朴素按钮',
desc: '朴素按钮',
type: 'checkbox'
},
{
key: 'hairline',
name: '细边框',
desc: '细边框',
type: 'checkbox'
},
{
key: 'loading',
name: '加载中',
desc: '是否显示为加载状态',
type: 'checkbox'
},
{
key: 'loadingText',
name: '加载文字',
desc: '加载状态提示文字',
type: 'text'
},
{
key: 'loadingType',
name: '加载图标类型',
desc: '',
options: [
'circular',
'spinner'
],
type: 'select'
},
{
key: 'loadingSize',
name: '加载图标大小',
desc: '加载图标大小',
type: 'text'
}
],
value: {
type: 'default',
size: 'normal',
color: '',
icon: '',
block: false,
shape: 'square',
disabled: false,
plain: false,
hairline: false,
loading: false,
loadingText: '',
loadingType: 'circular',
loadingSize: '20px'
},
commonStyle: {}
},
{
eleName: 'cr-image',
title: '图片',
config: [
{
key: 'width',
name: '宽度',
type: 'text'
},
{
key: 'height',
name: '高度',
type: 'text'
},
{
key: 'src',
name: '图片',
type: 'Upload'
},
],
value: {
width: '5.067rem',
height: '3.733rem',
src: 'https://appsync.lkbang.net/Fs0qmUsMry39AjHDf_W-qgn8XEy6',
fit: 'contain',
},
commonStyle: {}
},
{
eleName: 'cr-nav-bar',
title: 'NavBar 导航栏',
config: [
{
key: 'title',
name: '标题',
desc: '标题',
propType: 'string',
options: [],
type: 'text'
},
{
key: 'leftText',
name: '左侧文案',
desc: '左侧文案',
propType: 'string',
options: [],
type: 'text'
},
{
key: 'rightText',
name: '右侧文案',
desc: '右侧文案',
default: '',
options: [
'info',
'danger',
'primary',
'warning'
],
type: 'text'
},
{
key: 'leftArrow',
name: '左侧箭头',
desc: '是否显示左侧箭头',
propType: 'boolean',
options: [],
type: 'checkbox'
},
{
key: 'border',
name: '边框',
desc: '是否显示下边框',
propType: 'boolean',
options: [],
type: 'checkbox'
},
{
key: 'fixed',
name: '固定导航栏',
desc: '是否固定导航栏',
propType: 'boolean',
options: [],
type: 'checkbox'
},
{
key: 'zIndex',
name: 'z-index',
desc: '元素z-index',
propType: [
'number',
'string'
],
options: [],
type: 'text'
}
],
value: {
title: '',
leftText: '返回',
rightText: '',
leftArrow: true,
border: true,
fixed: true,
zIndex: '9999'
},
commonStyle: {}
}
];
export const businessComponents = [
kaLoginForm,
...crComponents
// {
// eleName: 'cs-ka-login-form',
// title: 'KA登陆表单',
// h: 224,
// eleName: 'cr-button',
// title: 'Button 按钮',
// config: [
// {
// key: 'btnTxt',
// name: '按钮文案',
// type: 'text'
// key: 'type',
// name: '类型',
// desc: '类型,可选值为',
// options: [
// 'default',
// 'primary',
// 'info',
// 'danger',
// 'waring',
// 'success'
// ],
// type: 'select'
// },
// {
// key: 'size',
// name: '尺寸',
// desc: '尺寸,可选值为',
// options: [
// 'normal',
// 'large',
// 'small',
// 'mini'
// ],
// type: 'select'
// },
// {
// key: 'btnColor',
// name: '按钮颜色',
// key: 'color',
// name: '颜色',
// desc: '按钮颜色,支持传入',
// type: 'ColorSelector'
// },
// {
// key: 'btnImage',
// name: '按钮图片',
// type: 'Upload'
// key: 'icon',
// name: '图标',
// desc: '左侧',
// type: 'text'
// },
// {
// key: 'vcBgColor',
// name: '验证码背景色(可点击态)',
// type: 'ColorSelector'
// key: 'block',
// name: '块级元素',
// desc: '是否为块级元素',
// type: 'checkbox'
// },
// {
// key: 'registerFrom',
// name: '渠道号',
// key: 'shape',
// name: '形状',
// desc: '按钮形状,可选值为',
// options: [
// 'square',
// 'circle'
// ],
// type: 'select'
// },
// {
// key: 'disabled',
// name: '禁用',
// desc: '是否禁用按钮',
// type: 'checkbox'
// },
// {
// key: 'plain',
// name: '朴素按钮',
// desc: '朴素按钮',
// type: 'checkbox'
// },
// {
// key: 'hairline',
// name: '细边框',
// desc: '细边框',
// type: 'checkbox'
// },
// {
// key: 'loading',
// name: '加载中',
// desc: '是否显示为加载状态',
// type: 'checkbox'
// },
// {
// key: 'loadingText',
// name: '加载文字',
// desc: '加载状态提示文字',
// type: 'text'
// },
// {
// key: 'loadingType',
// name: '加载图标类型',
// desc: '',
// options: [
// 'circular',
// 'spinner'
// ],
// type: 'select'
// },
// {
// key: 'loadingSize',
// name: '加载图标大小',
// desc: '加载图标大小',
// type: 'text'
// }
// ],
// value: {
// btnTxt: '',
// btnColor: '#ee0a24',
// btnImage: 'http://activitystatic.q-gp.com/landing-submit.png',
// registerFrom: '',
// vcBgColor: '#97d5ff'
// type: 'default',
// size: 'normal',
// color: '',
// icon: '',
// block: false,
// shape: 'square',
// disabled: false,
// plain: false,
// hairline: false,
// loading: false,
// loadingText: '',
// loadingType: 'circular',
// loadingSize: '20px'
// },
// commonStyle: {}
// },
{
eleName: 'download-guide',
title: '下载引导',
h: 40,
config: [
{
key: 'href',
name: '跳转链接',
type: 'text'
},
{
key: 'leftImg',
name: 'logo',
type: 'Upload'
}
],
value: {
href: 'https://s.xyqb.com/4',
leftImg: 'http://activitystatic.q-gp.com/xyqb%402x.png'
},
commonStyle: {}
},
{
eleName: 'goods-tabs',
title: '商品导航',
config: [
{
title: '标签录入',
children: [
{
key: 'list',
name: '添加菜单',
type: 'FormList'
formControl: [
{
key: 'tabTitle',
name: '名称',
type: 'text'
},
{
key: 'componentId',
name: '组件',
type: 'ComponentSelect', // componentSelect
}
]
}
]
},
{
title: '标签样式',
children: [
{
key: 'activeColor',
name: '选中态文字颜色',
type: 'ColorSelector'
},
{
key: 'inactiveColor',
name: '默认态文字颜色',
type: 'ColorSelector'
},
{
key: 'underlineColor',
name: '下划线颜色',
type: 'ColorSelector'
},
]
}
],
value: {
list: [{
tabTitle: 'tab1',
componentId: '1'
}, {
tabTitle: 'tab2',
componentId: '2'
}],
activeColor: '#323233',
inactiveColor: '#646566',
underlineColor: '#1989fa',
},
commonStyle: {}
},
{
eleName: 'Goods',
title: '商品',
config: [
{
title: '商品录入',
children: [{
key: 'column',
name: '商品列数',
type: 'ColumnSelector'
},
{
key: 'goods',
name: '选择商品',
type: 'GoodsTableModal'
formControl: [
{
key: 'goodsNumber',
name: '商品数量',
type: 'number'
}
]
}]
},
{
title: '专题推荐',
children: [
{
key: 'showSpecial',
name: '显示专题',
type: 'checkbox'
},
{
key: 'specialUrl',
name: '专题图片',
type: 'Upload'
},
{
key: 'specialLink',
name: '专题链接',
type: 'text'
},
]
}
],
value: {
goods: {
type: 'goodsGroup',
ids: []
},
goodsNumber: 3,
column: 2,
showSpecial: true,
specialUrl: '',
specialLink: ''
},
commonStyle: {}
},
{
eleName: 'Coupon',
title: '优惠券',
config: [
{
title: '优惠券录入',
children: [
{
key: 'column',
name: '优惠券列数',
type: 'ColumnSelector'
},
{
key: 'couponsList',
name: '选择优惠券',
type: 'CouponTableModal'
formControl: [
{
key: 'couponsNumber',
name: '优惠券数量',
type: 'number'
}
]
},
],
},
{
title: '优惠券样式',
children: [
{
key: 'bgImage',
name: '优惠券背景图片',
type: 'Upload'
},
{
key: 'bgColor',
name: '优惠券背景颜色',
type: 'ColorSelector'
},
]
}
],
value: {
couponsList: [],
couponsNumber: 3,
column: 3,
bgColor: '',
bgImage: '',
},
commonStyle: {}
},
{
eleName: 'Advertisement',
title: '广告',
config: [
{
key: 'column',
name: '广告列数',
type: 'ColumnSelector'
},
{
key: 'list',
name: '添加广告',
type: 'FormList'
formControl: [
{
key: 'img',
name: '图片',
type: 'Upload'
},
{
key: 'link',
name: '链接',
type: 'text', // componentSelect
}
]
}
],
value: {
list: [{
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}],
column: 2
}
},
{
eleName: 'Placeholder',
title: '楼层间隔',
config: [
{
key: 'height',
name: '间隔高度',
type: 'Slider'
},
],
value: {
height: 10
}
},
{
eleName: 'GuideCube',
title: '导购魔方',
config: [
{
key: 'slidesPerColumn',
name: '行数',
type: 'InputNumber'
},
{
key: 'autoplay',
name: '自动播放',
type: 'checkbox'
},
{
key: 'animation',
name: '切换动画',
type: 'checkbox'
},
{
key: 'list',
name: '添加导购',
type: 'FormList'
formControl: [
{
key: 'img',
name: '图片',
type: 'Upload'
},
{
key: 'link',
name: '链接',
type: 'text', // componentSelect
}
]
}
],
value: {
list: [{
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}, {
img: 'http://activitystatic.q-gp.com/landing-bg.png',
link: 'http://activitystatic.q-gp.com'
}],
slidesPerColumn: 1,
autoplay: false,
animation: false
}
},
{
eleName: 'CustomMarquee',
title: '跑马灯',
config: [
{
key: 'fontColor',
name: '字体颜色',
type: 'ColorSelector',
},
{
key: 'list',
name: '添加数据',
type: 'FormList'
formControl: [
{
key: 'text',
name: '文案',
type: 'text'
},
{
key: 'link',
name: '链接',
type: 'text'
},
]
}
],
value: {
fontColor: '#666666',
list: [{
text: '请输入文案'
}, {
text: '请输入文案'
}]
}
},
// {
// eleName: 'cr-image',
// title: '图片',
// config: [
// {
// key: 'width',
// name: '宽度',
// type: 'text'
// },
// {
// key: 'height',
// name: '高度',
// type: 'text'
// },
// {
// key: 'src',
// name: '图片',
// type: 'Upload'
// },
// ],
// value: {
// width: '5.067rem',
// height: '3.733rem',
// src: 'https://appsync.lkbang.net/Fs0qmUsMry39AjHDf_W-qgn8XEy6',
// fit: 'contain',
// },
// commonStyle: {}
// },
// {
// eleName: 'cr-nav-bar',
// title: 'NavBar 导航栏',
// config: [
// {
// key: 'title',
// name: '标题',
// desc: '标题',
// propType: 'string',
// options: [],
// type: 'text'
// },
// {
// key: 'leftText',
// name: '左侧文案',
// desc: '左侧文案',
// propType: 'string',
// options: [],
// type: 'text'
// },
// {
// key: 'rightText',
// name: '右侧文案',
// desc: '右侧文案',
// default: '',
// options: [
// 'info',
// 'danger',
// 'primary',
// 'warning'
// ],
// type: 'text'
// },
// {
// key: 'leftArrow',
// name: '左侧箭头',
// desc: '是否显示左侧箭头',
// propType: 'boolean',
// options: [],
// type: 'checkbox'
// },
// {
// key: 'border',
// name: '边框',
// desc: '是否显示下边框',
// propType: 'boolean',
// options: [],
// type: 'checkbox'
// },
// {
// key: 'fixed',
// name: '固定导航栏',
// desc: '是否固定导航栏',
// propType: 'boolean',
// options: [],
// type: 'checkbox'
// },
// {
// key: 'zIndex',
// name: 'z-index',
// desc: '元素z-index',
// propType: [
// 'number',
// 'string'
// ],
// options: [],
// type: 'text'
// }
// ],
// value: {
// title: '',
// leftText: '返回',
// rightText: '',
// leftArrow: true,
// border: true,
// fixed: true,
// zIndex: '9999'
// },
// commonStyle: {}
// }
];
// export const businessComponents = [
// kaLoginForm,
// // {
// // eleName: 'cs-ka-login-form',
// // title: 'KA登陆表单',
// // h: 224,
// // config: [
// // {
// // key: 'btnTxt',
// // name: '按钮文案',
// // type: 'text'
// // },
// // {
// // key: 'btnColor',
// // name: '按钮颜色',
// // type: 'ColorSelector'
// // },
// // {
// // key: 'btnImage',
// // name: '按钮图片',
// // type: 'Upload'
// // },
// // {
// // key: 'vcBgColor',
// // name: '验证码背景色(可点击态)',
// // type: 'ColorSelector'
// // },
// // {
// // key: 'registerFrom',
// // name: '渠道号',
// // type: 'text'
// // },
// // ],
// // value: {
// // btnTxt: '',
// // btnColor: '#ee0a24',
// // btnImage: 'http://activitystatic.q-gp.com/landing-submit.png',
// // registerFrom: '',
// // vcBgColor: '#97d5ff'
// // },
// // commonStyle: {}
// // },
// // {
// // eleName: 'download-guide',
// // title: '下载引导',
// // h: 40,
// // config: [
// // {
// // key: 'href',
// // name: '跳转链接',
// // type: 'text'
// // },
// // {
// // key: 'leftImg',
// // name: 'logo',
// // type: 'Upload'
// // }
// // ],
// // value: {
// // href: 'https://s.xyqb.com/4',
// // leftImg: 'http://activitystatic.q-gp.com/xyqb%402x.png'
// // },
// // commonStyle: {}
// // },
// // {
// // eleName: 'goods-tabs',
// // title: '商品导航',
// // config: [
// // {
// // title: '标签录入',
// // children: [
// // {
// // key: 'list',
// // name: '添加菜单',
// // type: 'FormList',
// // formControl: [
// // {
// // key: 'tabTitle',
// // name: '名称',
// // type: 'text'
// // },
// // {
// // key: 'componentId',
// // name: '组件',
// // type: 'ComponentSelect', // componentSelect
// // }
// // ]
// // }
// // ]
// // },
// // {
// // title: '标签样式',
// // children: [
// // {
// // key: 'activeColor',
// // name: '选中态文字颜色',
// // type: 'ColorSelector'
// // },
// // {
// // key: 'inactiveColor',
// // name: '默认态文字颜色',
// // type: 'ColorSelector'
// // },
// // {
// // key: 'underlineColor',
// // name: '下划线颜色',
// // type: 'ColorSelector'
// // },
// // ]
// // }
// // ],
// // value: {
// // list: [{
// // tabTitle: 'tab1',
// // componentId: '1'
// // }, {
// // tabTitle: 'tab2',
// // componentId: '2'
// // }],
// // activeColor: '#323233',
// // inactiveColor: '#646566',
// // underlineColor: '#1989fa',
// // },
// // commonStyle: {}
// // },
// // {
// // eleName: 'Goods',
// // title: '商品',
// // config: [
// // {
// // title: '商品录入',
// // children: [{
// // key: 'column',
// // name: '商品列数',
// // type: 'ColumnSelector'
// // },
// // {
// // key: 'goods',
// // name: '选择商品',
// // type: 'GoodsTableModal',
// // formControl: [
// // {
// // key: 'goodsNumber',
// // name: '商品数量',
// // type: 'number'
// // }
// // ]
// // }]
// // },
// // {
// // title: '专题推荐',
// // children: [
// // {
// // key: 'showSpecial',
// // name: '显示专题',
// // type: 'checkbox'
// // },
// // {
// // key: 'specialUrl',
// // name: '专题图片',
// // type: 'Upload'
// // },
// // {
// // key: 'specialLink',
// // name: '专题链接',
// // type: 'text'
// // },
// // ]
// // }
// // ],
// // value: {
// // goods: {
// // type: 'goodsGroup',
// // ids: []
// // },
// // goodsNumber: 3,
// // column: 2,
// // showSpecial: true,
// // specialUrl: '',
// // specialLink: ''
// // },
// // commonStyle: {}
// // },
// // {
// // eleName: 'Coupon',
// // title: '优惠券',
// // config: [
// // {
// // title: '优惠券录入',
// // children: [
// // {
// // key: 'column',
// // name: '优惠券列数',
// // type: 'ColumnSelector'
// // },
// // {
// // key: 'couponsList',
// // name: '选择优惠券',
// // type: 'CouponTableModal',
// // formControl: [
// // {
// // key: 'couponsNumber',
// // name: '优惠券数量',
// // type: 'number'
// // }
// // ]
// // },
// // ],
// // },
// // {
// // title: '优惠券样式',
// // children: [
// // {
// // key: 'bgImage',
// // name: '优惠券背景图片',
// // type: 'Upload'
// // },
// // {
// // key: 'bgColor',
// // name: '优惠券背景颜色',
// // type: 'ColorSelector'
// // },
// // ]
// // }
// // ],
// // value: {
// // couponsList: [],
// // couponsNumber: 3,
// // column: 3,
// // bgColor: '',
// // bgImage: '',
// // },
// // commonStyle: {}
// // },
// // {
// // eleName: 'Advertisement',
// // title: '广告',
// // config: [
// // {
// // key: 'column',
// // name: '广告列数',
// // type: 'ColumnSelector'
// // },
// // {
// // key: 'list',
// // name: '添加广告',
// // type: 'FormList',
// // formControl: [
// // {
// // key: 'img',
// // name: '图片',
// // type: 'Upload'
// // },
// // {
// // key: 'link',
// // name: '链接',
// // type: 'text', // componentSelect
// // }
// // ]
// // }
// // ],
// // value: {
// // list: [{
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }],
// // column: 2
// // }
// // },
// // {
// // eleName: 'Placeholder',
// // title: '楼层间隔',
// // config: [
// // {
// // key: 'height',
// // name: '间隔高度',
// // type: 'Slider'
// // },
// // ],
// // value: {
// // height: 10
// // }
// // },
// // {
// // eleName: 'GuideCube',
// // title: '导购魔方',
// // config: [
// // {
// // key: 'slidesPerColumn',
// // name: '行数',
// // type: 'InputNumber'
// // },
// // {
// // key: 'autoplay',
// // name: '自动播放',
// // type: 'checkbox'
// // },
// // {
// // key: 'animation',
// // name: '切换动画',
// // type: 'checkbox'
// // },
// // {
// // key: 'list',
// // name: '添加导购',
// // type: 'FormList',
// // formControl: [
// // {
// // key: 'img',
// // name: '图片',
// // type: 'Upload'
// // },
// // {
// // key: 'link',
// // name: '链接',
// // type: 'text', // componentSelect
// // }
// // ]
// // }
// // ],
// // value: {
// // list: [{
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }, {
// // img: 'http://activitystatic.q-gp.com/landing-bg.png',
// // link: 'http://activitystatic.q-gp.com'
// // }],
// // slidesPerColumn: 1,
// // autoplay: false,
// // animation: false
// // }
// // },
// // {
// // eleName: 'CustomMarquee',
// // title: '跑马灯',
// // config: [
// // {
// // key: 'fontColor',
// // name: '字体颜色',
// // type: 'ColorSelector',
// // },
// // {
// // key: 'list',
// // name: '添加数据',
// // type: 'FormList',
// // formControl: [
// // {
// // key: 'text',
// // name: '文案',
// // type: 'text'
// // },
// // {
// // key: 'link',
// // name: '链接',
// // type: 'text'
// // },
// // ]
// // }
// // ],
// // value: {
// // fontColor: '#666666',
// // list: [{
// // text: '请输入文案'
// // }, {
// // text: '请输入文案'
// // }]
// // }
// // },
// ];
\ No newline at end of file
<template>
<div class="color-selector">
<Input class="color-selector-input" v-model="color" placeholder="请输入" @input="change"></Input>
<ColorPicker v-model="color" @on-change="change($event)" />
<ColorPicker placement="bottom-end" v-model="color" @on-change="change($event)" />
</div>
</template>
<script>
......
......@@ -110,8 +110,8 @@
}
&-button {
margin-top: 20px;
text-align: center;
// margin-top: 20px;
// text-align: center;
}
}
</style>
\ No newline at end of file
......@@ -40,7 +40,7 @@ export default class GoodsTableModal extends Vue {
async query(data) {
const { records, total } = await operationApi.skuInfo({ type: 'list', ...data });
records.forEach(record => {
records?.forEach(record => {
if (this.goods.ids.some(v => v === record.skuNo)) {
record._checked = true;
}
......@@ -64,8 +64,8 @@ export default class GoodsTableModal extends Vue {
},
async queryGroup(data) {
const { records, total } = await operationApi.specialPage(data);
records.forEach(record => {
if (this.goods.ids.some(v => v === record.skuNo)) {
records?.forEach(record => {
if (this.goods.ids.some(v => v === record.id)) {
record._checked = true;
}
});
......
......@@ -6,7 +6,7 @@
<template v-for="(item, index) in curElement.schame">
<div v-if="item.title">
<h3>{{ item.title }}</h3>
<FormItem :label="child.name" :key="child.key" v-for="child in item.children">
<FormItem :label="child.name" :key="curElement.id + child.key" v-for="child in item.children">
<component :is="getComponent(child.type)" :options="child.options" :formControl="child.formControl" v-model="form[child.key]" />
</FormItem>
</div>
......@@ -32,7 +32,7 @@
<ColorSelector v-else-if="item.label === '背景颜色'" v-model="commonStyle.backgroundColor" @input="updateStyle($event, 'backgroundColor')"></ColorSelector>
<template v-else>
<Tooltip placement="top" :content="child.content" v-for="child in item.list" :key="child.content">
<Button type="ghost" :icon="child.icon" @click="changeAlignType(...child.args)"></Button>
<Button type="ghost" :icon="child.icon" @click="changeAlignType(child.args)"></Button>
</Tooltip>
</template>
</FormItem>
......
import { Component, Prop, Mixins, Watch } from 'vue-property-decorator';
// import LoginForm from '@/lib/Form/index.vue';
import DownloadGuide from '@/lib/DownloadGuide/index.vue';
import CustomMarquee from '@/lib/Marquee/index.vue';
import ContextMenuMixin from '@editor/mixins/contextMenu.mixin';
import TransformStyleMixin from '@/page/mixins/transformStyle.mixin';
import { cloneDeep, pick, omit, throttle } from 'lodash';
import { Action, Mutation, State, Getter } from 'vuex-class';
import { convertPointStyle, getStyle } from '@/service/utils.service';
// import CsGuideCube from '@/lib/DownloadGuide/index.vue';
// import CsMarquee from '@/lib/Marquee/index.vue';
@Component({ components: { DownloadGuide, CustomMarquee }, name: 'FreedomContainer' })
@Component({ components: { }, name: 'FreedomContainer' })
export default class FreedomContainer extends Mixins(ContextMenuMixin, TransformStyleMixin) {
@Action('setDragable') setDragable;
@State(state => state.editor.curEleIndex) curEleIndex;
......@@ -76,7 +75,7 @@ export default class FreedomContainer extends Mixins(ContextMenuMixin, Transform
@Watch('commonStyle')
onCommonStyleChange(newVal) {
// console.log('onCommonStyleChange', newVal);
console.log('onCommonStyleChange', newVal);
if (newVal) {
this.setDotsStyle();
}
......@@ -96,10 +95,12 @@ export default class FreedomContainer extends Mixins(ContextMenuMixin, Transform
this.$nextTick(() => {
const points = ['lt', 'rt', 'lb', 'rb', 'l', 'r', 't', 'b'];
const [height, width] = this.getHW(this.curChildIndex);
this.dots[this.curChildIndex] = points.reduce((pre, cur) => {
const dots = points.reduce((pre, cur) => {
pre[cur] = convertPointStyle(cur, {height, width});
return pre;
}, {});
this.$set(this.dots, this.curChildIndex, dots);
console.log('setDotsStyle', this.dots[this.curChildIndex]);
});
}
......
......@@ -12,7 +12,7 @@ export default class GoodsTabsMixin extends Vue {
const goodsTabs = {};
const pageData = cloneDeep(this.pageData);
pageData.elements.forEach((element, idx) => {
if (element.name === 'goods-tabs' && element?.props?.list.length) {
if (element.name === 'cs-goods-tabs' && element?.props?.list.length) {
const childs = [];
const childIndexs = [];
element.props.list.forEach((data, index) => {
......@@ -40,7 +40,7 @@ export default class GoodsTabsMixin extends Vue {
parseGoodsTabs() {
const goodsTabs = {};
this.pageData.elements.forEach((element, idx) => {
if (element.name === 'goods-tabs' && element.child.length) {
if (element.name === 'cs-goods-tabs' && element?.child?.length) {
goodsTabs[idx] = cloneDeep(element.child);
// 逆向循环
for (let i = element.child.length - 1; i >= 0; i--) {
......
......@@ -6,26 +6,26 @@ import VueGridLayout from 'vue-grid-layout';
import FreedomContainer from '../../component/FreedomContainer/index.vue';
import DynamicForm from '../../component/DynamicForm/index.vue';
import DynamicPageForm from '../../component/DynamicPageForm/index.vue';
// import LoginForm from '@/lib/Form/index.vue';
import DownloadGuide from '@/lib/DownloadGuide/index.vue';
import GoodsTabs from '@/lib/GoodsTabs/index.vue';
import Goods from '@/lib/Goods/index.vue';
import Advertisement from '@/lib/Advertisement/index.vue';
import Coupon from '@/lib/Coupon/index.vue';
import Placeholder from '@/lib/Placeholder/index.vue';
import GuideCube from '@/lib/GuideCube/index.vue';
import Marquee from '@/lib/Marquee/index.vue';
import { basicComponents, businessComponents } from '@/lib/config';
import ContextMenuMixin from '@editor/mixins/contextMenu.mixin';
import GoodsTabsMixin from '@editor/mixins/goodsTabs.mixin';
import TransformStyleMixin from '@/page/mixins/transformStyle.mixin';
import BasicPageForm from '@editor/component/BasicPageForm/index.vue';
import { basicComponents, businessComponents } from '@/lib/config';
import config from '@/config/index';
import localStorage from '@/service/localStorage.service';
import EventBus from '@/service/eventBus.service';
// import CsLoginForm from '@/lib/Form/index.vue';
// import CsDownloadGuide from '@/lib/DownloadGuide/index.vue';
// import CsGoodsTabs from '@/lib/GoodsTabs/index.vue';
// import CsGoods from '@/lib/Goods/index.vue';
// import CsAdvertisement from '@/lib/Advertisement/index.vue';
// import CsCoupon from '@/lib/Coupon/index.vue';
// import CsPlaceholder from '@/lib/Placeholder/index.vue';
// import CsGuideCube from '@/lib/GuideCube/index.vue';
// import CsMarquee from '@/lib/Marquee/index.vue';
// CsLoginForm, CsDownloadGuide, CsGuideCube, CsGoodsTabs, CsCoupon, CsMarquee, CsAdvertisement, CsGoods, CsPlaceholder
@Component({components: { DynamicComponent, FreedomContainer, DynamicForm, GridLayout: VueGridLayout.GridLayout,
GridItem: VueGridLayout.GridItem, DownloadGuide, BasicPageForm, DynamicPageForm, GoodsTabs, Goods, Coupon, Advertisement, Placeholder, GuideCube, Marquee }, name: 'DashBoard'})
GridItem: VueGridLayout.GridItem, BasicPageForm, DynamicPageForm }, name: 'DashBoard'})
export default class DashBoard extends Mixins(ContextMenuMixin, GoodsTabsMixin, TransformStyleMixin) {
@Mutation('ADD_ELEMENTS') addElements;
@Mutation('SET_CUR_ELE_INDEX') setCurEleIndex;
......
......@@ -37,7 +37,7 @@ import Tabs from '@qg/cherry-ui/src/tabs';
import BackTop from '@qg/cherry-ui/src/back-top';
import Notify from '@qg/cherry-ui/src/notify';
import Toast from '@qg/cherry-ui/src/toast';
import { KaLoginForm } from '@qg/citrus-ui';
import citrusUi from '@qg/citrus-ui';
Vue.use(Button);
Vue.use(Image);
......@@ -66,7 +66,7 @@ Vue.use(Tabs);
// Vue.use(Swipe);
Vue.use(BackTop);
Vue.use(KaLoginForm);
Vue.use(citrusUi);
Vue.prototype.$notify = Notify;
Vue.prototype.$toast = Toast;
<!DOCTYPE html>
<html lang="en">
<html lang="en" >
<head>
<title>低代码平台</title>
<meta name="keywords">
......@@ -11,7 +11,7 @@
<link href="https://cdn.bootcss.com/iview/2.9.0/styles/iview.css" rel="stylesheet">
<style>
html {
font-size: 37.5Px;
font-size: 37.5Px !important;
}
html, body {
......
......@@ -1464,14 +1464,14 @@
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="
},
"@popperjs/core": {
"version": "2.8.4",
"resolved": "http://npmprivate.quantgroups.com/@popperjs%2fcore/-/core-2.8.4.tgz",
"integrity": "sha512-h0lY7g36rhjNV8KVHKS3/BEOgfsxu0AiRI8+ry5IFBGEsQFkpjxtcpVc9ndN8zrKUeMZXAWMc7eQMepfgykpxQ=="
"version": "2.9.0",
"resolved": "http://npmprivate.quantgroups.com/@popperjs%2fcore/-/core-2.9.0.tgz",
"integrity": "sha512-wjtKehFAIARq2OxK8j3JrggNlEslJfNuSm2ArteIbKyRMts2g0a7KzTxfRVNUM+O0gnBJ2hNV8nWPOYBgI1sew=="
},
"@qg/cherry-ui": {
"version": "2.18.66",
"resolved": "http://npmprivate.quantgroups.com/@qg%2fcherry-ui/-/cherry-ui-2.18.66.tgz",
"integrity": "sha512-JnpL3zuCeUzb11ji70KZ6fmt/XpjGwcxhHZsafQo7tiKpU9uAxZCJgUfiY0+XuyyBBqoBi/CRrWg7fvIFLewLA==",
"version": "2.18.75",
"resolved": "http://npmprivate.quantgroups.com/@qg%2fcherry-ui/-/cherry-ui-2.18.75.tgz",
"integrity": "sha512-F5a1iySaJ70IZ9/kdY7DoijR+Wa5nzJjhaGtv4n9wrujxwrIPJPJ7k+sgAmujJXWgzGoSVYqPT6AFhg4JJ1GCQ==",
"requires": {
"@popperjs/core": "^2.5.4",
"vue-lazyload": "^1.3.3",
......@@ -1479,16 +1479,17 @@
}
},
"@qg/citrus-ui": {
"version": "0.0.1-alpha.2",
"resolved": "http://npmprivate.quantgroups.com/@qg%2fcitrus-ui/-/citrus-ui-0.0.1-alpha.2.tgz",
"integrity": "sha512-lp8JAPaAdVtVq+jEnoRx/y64Usz4GM/IvYlvtGlxt3/d9/BBgYqhjwxW8diGy0zZ9QztAJXoC+4WEDbWZk0JMw==",
"version": "0.0.14",
"resolved": "http://npmprivate.quantgroups.com/@qg%2fcitrus-ui/-/citrus-ui-0.0.14.tgz",
"integrity": "sha512-DtffXRTjxtKebZ0ZsjDR8tQUZn57eMDZ/YkmUvUgs6qlEKulxiWQCVeCmQ8wWJtYcKE/qlp55R/XaJJ+BqY20Q==",
"requires": {
"@better-scroll/core": "^2.1.1",
"@qg/cherry-ui": "^2.18.66",
"@qg/cherry-ui": "^2.18.72",
"@qg/js-bridge": "^1.1.9",
"axios": "^0.21.1",
"js-cookie": "^2.2.1",
"sa-sdk-javascript": "^1.16.1",
"swiper": "^4.5.1",
"vuex": "^3.6.0"
}
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment