提交 1c4c3af1 authored 作者: 刘旭's avatar 刘旭

页面基本完成,修改bug

上级 e40a287e
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
"@wangeditor/editor": "^5.1.22", "@wangeditor/editor": "^5.1.22",
"@wangeditor/editor-for-vue": "^5.1.12", "@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^0.24.0", "axios": "^0.24.0",
"echarts": "^5.3.0", "echarts": "^5.4.0",
"element-plus": "^2.2.12", "element-plus": "^2.2.12",
"eslint": "^8.4.1", "eslint": "^8.4.1",
"eslint-plugin-vue": "^8.2.0", "eslint-plugin-vue": "^8.2.0",
......
src/assets/logo.png

72.3 KB | W: | H:

src/assets/logo.png

114.2 KB | W: | H:

src/assets/logo.png
src/assets/logo.png
src/assets/logo.png
src/assets/logo.png
  • 2-up
  • Swipe
  • Onion skin
<template> <template>
<div style="border: 1px solid #ccc"> <div style="border: 1px solid #ccc">
<Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig" :mode="mode" /> <Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig" :mode="mode" />
<Editor style="height: 400px; overflow-y: hidden;" v-model="valueHtml" :defaultConfig="editorConfig" :mode="mode" <Editor style="height: 300px; overflow-y: hidden;" v-model="valueHtml" :defaultConfig="editorConfig" :mode="mode"
@onCreated="handleCreated" @onChange="handleChange"/> @onCreated="handleCreated" @onChange="handleChange" />
</div> </div>
</template> </template>
......
...@@ -21,6 +21,7 @@ const { global } = useInstance() ...@@ -21,6 +21,7 @@ const { global } = useInstance()
const avatar = store.state.user.userAvatar const avatar = store.state.user.userAvatar
//退出登录 //退出登录
const loginOut = async () => { const loginOut = async () => {
window.location.href = "/#/login"; window.location.href = "/#/login";
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
padding-left: 15px; padding-left: 15px;
color: #fff; color: #fff;
img { img {
width: 32px; width: 64px;
height: 32px; height: 32px;
margin-right: 12px; margin-right: 12px;
} }
......
...@@ -15,8 +15,7 @@ import ElementPlus from 'element-plus' ...@@ -15,8 +15,7 @@ import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css' import 'element-plus/dist/index.css'
import { CopyData, resetForm } from './utils/common'; import { CopyData, resetForm } from './utils/common';
import LqConfirm from './utils/LqConfirm' import LqConfirm from './utils/LqConfirm'
//引入echarts
import * as echarts from 'echarts'
//引入按钮权限 //引入按钮权限
import { permission } from './directives/permission' import { permission } from './directives/permission'
//引入socket //引入socket
......
import { request } from '../config'
export function listMall() {
return request({
url: '/config/mall',
method: 'get'
})
}
export function updateMall(data: any) {
return request({
url: '/config/mall',
method: 'post',
data
})
}
export function listExpress() {
return request({
url: '/config/express',
method: 'get'
})
}
export function updateExpress(data: any) {
return request({
url: '/config/express',
method: 'post',
data
})
}
export function listOrder() {
return request({
url: '/config/order',
method: 'get'
})
}
export function updateOrder(data: any) {
return request({
url: '/config/order',
method: 'post',
data
})
}
export function listWx() {
return request({
url: '/config/wx',
method: 'get'
})
}
export function updateWx(data: any) {
return request({
url: '/config/wx',
method: 'post',
data
})
}
import { request } from '../config'
export function statUser(params?: any) {
return request({
url: '/stat/user',
method: 'get',
params
})
}
export function statOrder(params?: any) {
return request({
url: '/stat/order',
method: 'get',
params
})
}
export function statGoods(params?: any) {
return request({
url: '/stat/goods',
method: 'get',
params
})
}
\ No newline at end of file
...@@ -294,7 +294,6 @@ let init = (id: number) => { ...@@ -294,7 +294,6 @@ let init = (id: number) => {
detailGoods(id).then((res) => { detailGoods(id).then((res) => {
goods.value = res.data.goods; goods.value = res.data.goods;
for (let s in res.data.parts) { for (let s in res.data.parts) {
console.log(s, '////');
goodsParts.value.push(res.data.parts[s].partGoodsId) goodsParts.value.push(res.data.parts[s].partGoodsId)
} }
// partsList.value = res.data.parts // partsList.value = res.data.parts
......
...@@ -178,7 +178,6 @@ let handleFilter = () => { ...@@ -178,7 +178,6 @@ let handleFilter = () => {
}; };
let handleCreate = () => { let handleCreate = () => {
shelvesRef.value.shelvesDrawer = true shelvesRef.value.shelvesDrawer = true
// router.push({ path: "/commodity/shelves" });
}; };
let handleUpdate = (row: any) => { let handleUpdate = (row: any) => {
editRef.value.init(row.id) editRef.value.init(row.id)
......
<template>
<div class="app-container">
<el-form ref="dataFormRef" :rules="rules" :model="dataForm" status-icon label-width="300px">
<el-form-item label="运费满减所需最低消费" prop="litemall_express_freight_min">
<el-input v-model="dataForm.litemall_express_freight_min" />
</el-form-item>
<el-form-item label="运费满减不足所需运费" prop="litemall_express_freight_value">
<el-input v-model="dataForm.litemall_express_freight_value" />
</el-form-item>
<el-form-item>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="update">确定</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { ElMessage } from 'element-plus'
import { listExpress, updateExpress } from '@/services/api/config/index'
let dataFormRef = ref()
let dataForm = ref({
litemall_express_freight_min: 0,
litemall_express_freight_value: 0
})
let rules = ref({
litemall_express_freight_min: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
litemall_express_freight_value: [
{ required: true, message: '不能为空', trigger: 'blur' }
]
})
let init = () => {
listExpress().then((res: any) => {
if (res.code === 200)
dataForm.value = res.data
})
}
init()
let cancel = () => {
init()
}
let update = () => {
dataFormRef.value?.validate((valid: any) => {
if (!valid) return false
doUpdate()
})
}
let doUpdate = () => {
updateExpress(dataForm.value).then((res: any) => {
if (res.code === 200)
ElMessage({
type: 'success',
message: '运费配置修改成功'
})
}).catch(res => {
ElMessage({
type: 'error',
message: res.msg
})
})
}
</script>
<template>
<div class="app-container">
<el-form ref="dataFormRef" :rules="rules" :model="dataForm" status-icon label-width="300px">
<el-form-item label="商场名称" prop="litemall_mall_name">
<el-input v-model="dataForm.litemall_mall_name" />
</el-form-item>
<el-form-item label="商场地址" prop="litemall_mall_address">
<el-input v-model="dataForm.litemall_mall_address" />
</el-form-item>
<el-form-item label="地理坐标">
<el-col :span="11">
<el-input v-model="dataForm.litemall_mall_longitude" placeholder="经度" />
</el-col>
<el-col :span="2" style="text-align: center;">-</el-col>
<el-col :span="11">
<el-input v-model="dataForm.litemall_mall_latitude" placeholder="纬度" />
</el-col>
</el-form-item>
<el-form-item label="联系电话" prop="litemall_mall_phone">
<el-input v-model="dataForm.litemall_mall_phone" />
</el-form-item>
<el-form-item label="联系QQ" prop="litemall_mall_qq">
<el-input v-model="dataForm.litemall_mall_qq" />
</el-form-item>
<el-form-item>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="update">确定</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { ElMessage } from 'element-plus'
import { listMall, updateMall } from '@/services/api/config/index'
let dataFormRef = ref()
let dataForm = ref({
litemall_mall_name: '',
litemall_mall_address: '',
litemall_mall_phone: '',
litemall_mall_qq: '',
litemall_mall_longitude: '',
litemall_mall_latitude: ''
})
let rules = ref({
litemall_mall_name: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
litemall_mall_address: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
litemall_mall_phone: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
litemall_mall_qq: [
{ required: true, message: '不能为空', trigger: 'blur' }
]
})
let init = () => {
listMall().then((res: any) => {
if (res.code === 200)
dataForm.value = res.data
})
}
init()
let cancel = () => {
init()
}
let update = () => {
dataFormRef.value?.validate((valid: any) => {
if (!valid) return false
doUpdate()
})
}
let doUpdate = () => {
updateMall(dataForm.value)
.then((res: any) => {
if (res.code === 200) ElMessage({
type: 'success',
message: '商场配置成功'
})
})
.catch(res => {
ElMessage({
type: 'error',
message: res.msg
})
})
}
</script>
<template>
<div class="app-container">
<el-form ref="dataFormRef" :rules="rules" :model="dataForm" status-icon label-width="300px">
<el-form-item label="用户下单后超时" prop="litemall_order_unpaid">
<el-input v-model="dataForm.litemall_order_unpaid" class="input-width">
<template slot="append">分钟</template>
</el-input>
<span class="info">用户未付款,则订单自动取消</span>
</el-form-item>
<el-form-item label="订单发货后超期" prop="litemall_order_unconfirm">
<el-input v-model="dataForm.litemall_order_unconfirm" class="input-width">
<template slot="append"></template>
</el-input>
<span class="info">未确认收货,则订单自动确认收货</span>
</el-form-item>
<el-form-item label="确认收货后超期" prop="litemall_order_comment">
<el-input v-model="dataForm.litemall_order_comment" class="input-width">
<template slot="append"></template>
</el-input>
<span class="info">未评价商品,则取消评价资格</span>
</el-form-item>
<el-form-item>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="update">确定</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { ElMessage } from 'element-plus'
import { listOrder, updateOrder } from '@/services/api/config/index'
let dataFormRef = ref()
let dataForm = ref({
litemall_order_unpaid: 0,
litemall_order_unconfirm: 0,
litemall_order_comment: 0
})
let rules = ref({
litemall_order_unpaid: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
litemall_order_unconfirm: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
litemall_order_comment: [
{ required: true, message: '不能为空', trigger: 'blur' }
]
})
let init = () => {
listOrder().then((res: any) => {
if (res.code === 200)
dataForm.value = res.data
})
}
init()
let update = () => {
dataFormRef.value?.validate((valid: any) => {
if (!valid) return false
doUpdate()
})
}
let doUpdate = () => {
updateOrder(dataForm.value)
.then((res: any) => {
if (res.code === 200)
ElMessage({
type: 'success',
message: '订单参数配置成功'
})
})
.catch(res => {
ElMessage({
type: 'error',
message: res.data.errmsg
})
})
}
let cancel = () => {
init()
}
</script>
<style scoped>
.input-width {
width: 50%;
}
.info {
margin-left: 15px;
}
</style>
...@@ -59,9 +59,10 @@ ...@@ -59,9 +59,10 @@
@current-change="currentChange" /> @current-change="currentChange" />
<!-- 查看详情 --> <!-- 查看详情 -->
<html-details :html-data="htmlData"/> <html-details :html-data="htmlData" />
<topic-create ref="topicCreateRef" /> <topic-create ref="topicCreateRef" @init="getList"/>
<topic-edit ref="topicEditRef" @init="getList"/>
</div> </div>
</template> </template>
...@@ -73,12 +74,14 @@ import _ from 'lodash' ...@@ -73,12 +74,14 @@ import _ from 'lodash'
import LitemallPage from "@/components/pagination/litemallPage.vue"; import LitemallPage from "@/components/pagination/litemallPage.vue";
import htmlDetails from '@/components/htmlDetails.vue' import htmlDetails from '@/components/htmlDetails.vue'
import topicCreate from './topicCreate.vue' import topicCreate from './topicCreate.vue'
import topicEdit from './topicEdit.vue'
let list = ref([] as any) let list = ref([] as any)
let total = ref(0) let total = ref(0)
let listLoading = ref(true) let listLoading = ref(true)
let srcList = ref([] as any) let srcList = ref([] as any)
let topicCreateRef = ref() let topicCreateRef = ref()
let topicEditRef = ref()
let listQuery = ref({ let listQuery = ref({
page: 1, page: 1,
limit: 10, limit: 10,
...@@ -142,10 +145,10 @@ let handleFilter = () => { ...@@ -142,10 +145,10 @@ let handleFilter = () => {
} }
let handleCreate = () => { let handleCreate = () => {
topicCreateRef.value.createDrawer = true topicCreateRef.value.createDrawer = true
// $router.push({ path: '/promotion/topic-create' })
} }
let handleUpdate = (row: any) => { let handleUpdate = (row: any) => {
// $router.push({ path: '/promotion/topic-edit', query: { id: row.id } }) topicEditRef.value.editDrawer = true
topicEditRef.value.getTopic(row.id)
} }
let handleDelete = (row: any) => { let handleDelete = (row: any) => {
ElMessageBox.confirm( ElMessageBox.confirm(
......
<template> <template>
<el-drawer v-model="createDrawer" title="新增专题" size="50%" @before-close="handleCancel"> <el-drawer v-model="createDrawer" title="新增专题" size="50%" @before-close="handleCancel">
<el-form ref="topic" :rules="rules" :model="topic" status-icon label-position="left" label-width="100px" <el-form ref="topicRef" :rules="rules" :model="topic" status-icon label-position="left" label-width="100px"
style="width: 800px; margin-left:50px;"> style="width: 800px; margin-left:50px;">
<el-form-item label="专题标题" prop="title"> <el-form-item label="专题标题" prop="title">
<el-input v-model="topic.title" /> <el-input v-model="topic.title" />
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="专题内容" prop="content"> <el-form-item label="专题内容" prop="content">
<!-- <editor :init="editorInit" v-model="topic.content" /> --> <richTextEditor :valueHtml='topic.content' @htmlChange="htmlChange" />
</el-form-item> </el-form-item>
<el-form-item label="商品低价" prop="price"> <el-form-item label="商品低价" prop="price">
<el-input v-model="topic.price" /> <el-input v-model="topic.price" />
...@@ -97,7 +97,9 @@ import { listGoods } from '@/services/api/commodityManage/list' ...@@ -97,7 +97,9 @@ import { listGoods } from '@/services/api/commodityManage/list'
import { uploadPath } from '@/services/api/storage' import { uploadPath } from '@/services/api/storage'
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import LitemallPage from "@/components/pagination/litemallPage.vue"; import LitemallPage from "@/components/pagination/litemallPage.vue";
import richTextEditor from '@/components/richTextEditor.vue'
let emits = defineEmits(['init'])
let topic = ref({ let topic = ref({
goods: [], goods: [],
title: '', title: '',
...@@ -143,19 +145,23 @@ let headers = computed(() => { ...@@ -143,19 +145,23 @@ let headers = computed(() => {
} }
}) })
let htmlChange = (value: any) => topic.value.content = value
let getList = () => { let getList = () => {
listLoading.value = true listLoading.value = true
listGoods(listQuery.value).then(res => { listGoods(listQuery.value).then((res: any) => {
if (res.code === 200) {
list.value = res.data.list list.value = res.data.list
console.log(list.value);
total.value = res.data.total total.value = res.data.total
listLoading.value = false listLoading.value = false
}
}).catch(() => { }).catch(() => {
list.value = [] list.value = []
total.value = 0 total.value = 0
listLoading.value = false listLoading.value = false
}) })
} }
let currentChange = (val: number) => { let currentChange = (val: number) => {
listQuery.value.page = val listQuery.value.page = val
getList() getList()
...@@ -195,18 +201,16 @@ let handleCreate = () => { ...@@ -195,18 +201,16 @@ let handleCreate = () => {
let confirmAdd = () => { let confirmAdd = () => {
const newGoodsIds = [] as any const newGoodsIds = [] as any
const newGoodsList = [] as any const newGoodsList = [] as any
selectedlist.value.forEach((item: any) => { selectedlist.value.forEach((item: any) => {
const id = item.id const id = item.id
let found = false let found = false
console.log(topic.value.goods);
if (topic.value.goods) { topic.value.goods?.forEach((goodsId: any) => {
topic.value.goods.forEach((goodsId: any) => {
if (id === goodsId) { if (id === goodsId) {
found = true found = true
} }
}) })
}
if (!found) { if (!found) {
newGoodsIds.push(id) newGoodsIds.push(id)
newGoodsList.push(item) newGoodsList.push(item)
...@@ -214,8 +218,8 @@ let confirmAdd = () => { ...@@ -214,8 +218,8 @@ let confirmAdd = () => {
}) })
if (newGoodsIds.length > 0) { if (newGoodsIds.length > 0) {
topic.value.goods = topic.value.goods.concat(newGoodsIds) topic.value.goods = topic.value.goods?.concat(newGoodsIds)
goodsList.value = goodsList.value.concat(newGoodsList) goodsList.value = goodsList.value?.concat(newGoodsList)
} }
addVisiable.value = false addVisiable.value = false
} }
...@@ -232,18 +236,21 @@ let handleDelete = (row: any) => { ...@@ -232,18 +236,21 @@ let handleDelete = (row: any) => {
} }
} }
let handleCancel = () => { let handleCancel = () => {
// $router.push({ path: '/promotion/topic' }) createDrawer.value = false
} }
let handleConfirm = () => { let handleConfirm = () => {
topicRef.value?.validate((valid: any) => { topicRef.value?.validate((valid: any) => {
if (valid) { if (valid) {
createTopic(topic.value).then(res => { createTopic(topic.value).then((res: any) => {
// $router.push({ path: '/promotion/topic' }) if (res.code === 200) {
createDrawer.value = false
emits('init')
}
}) })
.catch(res => { .catch(res => {
ElMessage({ ElMessage({
type: 'error', type: 'error',
message: res.data.errmsg message: res.msg
}) })
}) })
} }
......
<template>
<div class='app-container'>
<div ref="echartsRef" id="main" style="width: 100%;height:400px;"></div>
</div>
</template>
<script setup lang='ts'>
import { onMounted } from 'vue'
import { statGoods } from '@/services/api/statistics/index'
import * as echarts from 'echarts';
onMounted(() => {
let myChart = echarts.init(document.getElementById('main') as any);
var option: any;
var xData: any = []
var yData: any = []
var yData1: any = []
var yData2: any = []
statGoods().then((res: any) => {
if (res.code === 200) {
res.data.rows.forEach((item: any) => {
xData.push(item.day)
yData.push(item.amount)
yData1.push(item.orders)
yData2.push(item.products)
})
console.log(xData, yData);
}
})
option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
xAxis: {
type: 'category',
data: xData
},
yAxis: {
type: 'value'
},
series: [
{
data: yData,
type: 'line',
name: '下单货品总额',
label: {
show: true,
position: 'inside'
},
},
{
data: yData1,
type: 'line',
name: '订单量',
label: {
show: true,
position: 'inside'
},
show: false
},
{
data: yData2,
type: 'line',
name: '下单货品总额',
label: {
show: true,
position: 'inside'
},
show: false
}
],
legend: {
show: true
}
};
setTimeout(() => {
option && myChart.setOption(option);
}, 50)
})
</script>
<style lang = "scss" scoped>
</style>
\ No newline at end of file
<template>
<div class='app-container'>
<div ref="echartsRef" id="main" style="width: 100%;height:400px;"></div>
</div>
</template>
<script setup lang='ts'>
import { onMounted } from 'vue'
import { statOrder } from '@/services/api/statistics/index'
import * as echarts from 'echarts';
onMounted(() => {
let myChart = echarts.init(document.getElementById('main') as any);
var option: any;
var xData: any = []
var yData: any = []
var yData1: any = []
var yData2: any = []
var yData3: any = []
statOrder().then((res: any) => {
if (res.code === 200) {
res.data.rows.forEach((item: any) => {
xData.push(item.day)
yData.push(item.amount)
yData1.push(item.orders)
yData2.push(item.pcr)
yData3.push(item.customers)
})
}
})
option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
xAxis: {
type: 'category',
data: xData
},
yAxis: {},
series: [
{
data: yData,
type: 'line',
name: '订单总额',
label: {
show: true,
position: 'inside'
},
},
{
data: yData1,
type: 'line',
name: '订单量',
label: {
show: false,
position: 'inside'
},
},
{
data: yData2,
type: 'line',
name: '客单价',
label: {
show: false,
position: 'inside'
},
},
{
data: yData3,
type: 'line',
name: '下单用户',
label: {
show: false,
position: 'inside'
},
}
],
legend: {
show: true
}
};
setTimeout(() => {
option && myChart.setOption(option);
}, 50)
})
</script>
<style lang = "scss" scoped>
</style>
\ No newline at end of file
<template>
<div class='app-container'>
<div ref="echartsRef" id="main" style="width: 100%;height:400px;"></div>
</div>
</template>
<script setup lang='ts'>
import { onMounted } from 'vue'
import { statUser } from '@/services/api/statistics/index'
import * as echarts from 'echarts';
onMounted(() => {
let myChart = echarts.init(document.getElementById('main') as any);
var option: any;
var xData: any = []
var yData: any = []
statUser().then((res: any) => {
if (res.code === 200) {
res.data.rows.forEach((item: any) => {
xData.push(item.day)
yData.push(item.users)
})
}
})
option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
xAxis: {
type: 'category',
data: xData
},
yAxis: {},
series: [
{
data: yData,
type: 'bar',
name: '用户增长量',
label: {
show: true,
position: 'inside'
},
}
],
legend: {
show: true
}
};
setTimeout(() => {
option && myChart.setOption(option);
}, 50)
})
</script>
<style lang = "scss" scoped>
</style>
\ No newline at end of file
...@@ -1395,13 +1395,13 @@ ecc-jsbn@~0.1.1: ...@@ -1395,13 +1395,13 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0" jsbn "~0.1.0"
safer-buffer "^2.1.0" safer-buffer "^2.1.0"
echarts@^5.3.0: echarts@^5.4.0:
version "5.3.2" version "5.4.0"
resolved "https://registry.npmmirror.com/echarts/-/echarts-5.3.2.tgz" resolved "https://registry.npmmirror.com/echarts/-/echarts-5.4.0.tgz#a9a8e5367293a397408d3bf3e2638b869249ce04"
integrity sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ== integrity sha512-uPsO9VRUIKAdFOoH3B0aNg7NRVdN7aM39/OjovjO9MwmWsAkfGyeXJhK+dbRi51iDrQWliXV60/XwLA7kg3z0w==
dependencies: dependencies:
tslib "2.3.0" tslib "2.3.0"
zrender "5.3.1" zrender "5.4.0"
element-plus@^2.2.12: element-plus@^2.2.12:
version "2.2.12" version "2.2.12"
...@@ -4400,7 +4400,7 @@ trim-newlines@^3.0.0: ...@@ -4400,7 +4400,7 @@ trim-newlines@^3.0.0:
tslib@2.3.0: tslib@2.3.0:
version "2.3.0" version "2.3.0"
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz" resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
tunnel-agent@^0.6.0: tunnel-agent@^0.6.0:
...@@ -4979,9 +4979,9 @@ yocto-queue@^0.1.0: ...@@ -4979,9 +4979,9 @@ yocto-queue@^0.1.0:
resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz" resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zrender@5.3.1: zrender@5.4.0:
version "5.3.1" version "5.4.0"
resolved "https://registry.npmmirror.com/zrender/-/zrender-5.3.1.tgz" resolved "https://registry.npmmirror.com/zrender/-/zrender-5.4.0.tgz#d4f76e527b2e3bbd7add2bdaf27a16af85785576"
integrity sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw== integrity sha512-rOS09Z2HSVGFs2dn/TuYk5BlCaZcVe8UDLLjj1ySYF828LATKKdxuakSZMvrDz54yiKPDYVfjdKqcX8Jky3BIA==
dependencies: dependencies:
tslib "2.3.0" tslib "2.3.0"
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论