优化代码
This commit is contained in:
parent
6c40c8c1ec
commit
08a7e57728
|
|
@ -13,6 +13,8 @@
|
|||
"dependencies": {
|
||||
"@better-scroll/core": "^2.4.2",
|
||||
"@vueuse/core": "^9.1.1",
|
||||
"@wangeditor/editor": "^5.1.14",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
"clipboard": "^2.0.10",
|
||||
"core-js": "^3.6.5",
|
||||
"dayjs": "^1.11.4",
|
||||
|
|
@ -43,7 +45,6 @@
|
|||
"vue-splitpane": "^1.0.6",
|
||||
"vuedraggable": "^4.1.0",
|
||||
"vuex": "^4.0.0-0",
|
||||
"wangeditor": "^4.7.12",
|
||||
"xlsx": "^0.18.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,305 @@
|
|||
<template>
|
||||
<div class="m-edit-table">
|
||||
<div style="margin-top: 15px; margin-bottom: 15px" v-if="mode !== 'hide' && mode !== 'bottom'">
|
||||
<el-button style="width: 100%" @click="add">
|
||||
<el-icon style="margin-right: 4px"><plus /></el-icon> 添加一行数据</el-button
|
||||
>
|
||||
</div>
|
||||
<el-table :data="transData" style="width: 100%" row-key="id" border>
|
||||
<template v-for="item in columns">
|
||||
<el-table-column
|
||||
v-if="item.type"
|
||||
:type="item.type"
|
||||
:width="item.width"
|
||||
:align="item.align"
|
||||
:fixed="item.fixed"
|
||||
:label="item.label"
|
||||
/>
|
||||
<el-table-column
|
||||
v-else
|
||||
:prop="item.name"
|
||||
:width="item.width"
|
||||
:align="item.align"
|
||||
:fixed="item.fixed"
|
||||
:label="item.label"
|
||||
>
|
||||
<template #default="scope">
|
||||
<template v-if="!item.slot">
|
||||
<template v-if="item.readonly">
|
||||
{{ scope.row[item.name] }}
|
||||
</template>
|
||||
<template v-else-if="item.valueType === 'select'">
|
||||
<el-select
|
||||
clearable
|
||||
:placeholder="`请选择`"
|
||||
v-model="scope.row[item.name]"
|
||||
v-if="scope.row.edit"
|
||||
>
|
||||
<el-option
|
||||
v-for="ite in item.options"
|
||||
:key="ite.value"
|
||||
:label="ite.label"
|
||||
:value="ite.value"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
<span v-else>{{ filterOption(item, scope) }}</span>
|
||||
</template>
|
||||
|
||||
<template v-else-if="item.valueType === 'date'">
|
||||
<el-date-picker
|
||||
v-model="scope.row[item.name]"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
v-if="scope.row.edit"
|
||||
/>
|
||||
<span v-else>{{ scope.row[item.name] || '--' }}</span>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="请输入"
|
||||
v-model="scope.row[item.name]"
|
||||
v-if="scope.row.edit"
|
||||
></el-input>
|
||||
<span v-else>{{ scope.row[item.name] || '--' }}</span>
|
||||
</template>
|
||||
</template>
|
||||
<slot v-else :name="item.name" :item="item" :row="scope.row"></slot>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<el-table-column prop="operator" label="操作" width="250px" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
v-if="scope.row.edit"
|
||||
type="success"
|
||||
size="small"
|
||||
icon="CircleCheckFilled"
|
||||
@click="confirmEdit(scope.row)"
|
||||
>
|
||||
保存
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
type="primary"
|
||||
size="small"
|
||||
icon="Edit"
|
||||
@click="scope.row.edit = !scope.row.edit"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-popover
|
||||
trigger="click"
|
||||
v-model:visible="scope.row.visible"
|
||||
placement="top"
|
||||
:width="160"
|
||||
>
|
||||
<p style="display: flex; align-items: center; margin-bottom: 10px">
|
||||
<el-icon color="#faad14" style="margin-right: 10px"><warning-filled /></el-icon>
|
||||
删除此行?</p
|
||||
>
|
||||
<div style="text-align: right; margin: 0">
|
||||
<el-button size="small" @click="scope.row.visible = false">取消</el-button>
|
||||
<el-button size="small" type="primary" @click="deleteAction(scope.row)"
|
||||
>确定</el-button
|
||||
>
|
||||
</div>
|
||||
<template #reference>
|
||||
<el-button icon="Delete" @click="deleteCurrent(scope.row)" type="danger" size="small"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-popover>
|
||||
<el-button
|
||||
v-if="scope.row.edit"
|
||||
type="primary"
|
||||
size="small"
|
||||
icon="Edit"
|
||||
@click="cancelEdit(scope.row)"
|
||||
>
|
||||
取消
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="margin-top: 15px" v-if="mode !== 'hide' && mode !== 'top'">
|
||||
<el-button style="width: 100%" @click="add">
|
||||
<el-icon style="margin-right: 4px"><plus /></el-icon> 添加一行数据</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted, ref, watch } from 'vue'
|
||||
import { deepObjClone } from '@/utils/index'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { reactive } from 'vue'
|
||||
const emit = defineEmits(['del', 'add', 'onChange'])
|
||||
let transData = ref([])
|
||||
|
||||
let props = defineProps({
|
||||
columns: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
editableKeys: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
mode: {
|
||||
type: String,
|
||||
default: 'bottom',
|
||||
},
|
||||
})
|
||||
|
||||
// 删除当前此行
|
||||
const deleteCurrent = (row)=>{
|
||||
// console.log('----------',row)
|
||||
// row.visible = true
|
||||
}
|
||||
|
||||
const getData = () => {
|
||||
let arr = deepObjClone(transData.value)
|
||||
for (let item of arr) {
|
||||
for (let attr in item) {
|
||||
if (attr.includes('te__mp')) {
|
||||
delete item[attr]
|
||||
}
|
||||
}
|
||||
}
|
||||
emit('onChange', arr)
|
||||
}
|
||||
|
||||
let obj = {}
|
||||
for (let item of props.columns) {
|
||||
props.data.forEach((it) => {
|
||||
if (!obj[item.name]) {
|
||||
obj[item.name] = null
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 重置数据
|
||||
const reset = () => {
|
||||
transData.value = props.data
|
||||
for (let item of transData.value) {
|
||||
if (props.editableKeys.includes(item.id)) {
|
||||
item.edit = true
|
||||
}
|
||||
}
|
||||
getData()
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
watch(
|
||||
() => props.data,
|
||||
(val) => {
|
||||
// // 转换数据
|
||||
transData.value = deepObjClone(val)
|
||||
// 存储一个临时变量
|
||||
for (let item of transData.value) {
|
||||
if (props.editableKeys.includes(item.id)) {
|
||||
item.edit = true
|
||||
}
|
||||
for (let attr in item) {
|
||||
let temp = `${attr}te__mp`
|
||||
item[temp] = item[attr]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
deep: true,
|
||||
},
|
||||
)
|
||||
})
|
||||
|
||||
const visible = ref(false)
|
||||
|
||||
const handleSizeChange = (val: number) => {
|
||||
console.log(`${val} items per page`)
|
||||
}
|
||||
|
||||
const listLoading = ref(false)
|
||||
|
||||
// 保存
|
||||
const confirmEdit = (row) => {
|
||||
row.edit = false
|
||||
for (let attr in row) {
|
||||
if (attr.includes('te__mp')) {
|
||||
row[attr] = row[attr.replace('te__mp', '')]
|
||||
}
|
||||
}
|
||||
getData()
|
||||
}
|
||||
// 取消
|
||||
const cancelEdit = (row) => {
|
||||
row.edit = !row.edit
|
||||
for (let attr in row) {
|
||||
if (attr !== 'edit') {
|
||||
if (!attr.includes('te__mp')) {
|
||||
row[attr] = row[attr + 'te__mp']
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const deleteAction = (row) => {
|
||||
row.visible = false
|
||||
transData.value = transData.value.filter((item) => item.id !== row.id)
|
||||
emit('del', row)
|
||||
}
|
||||
|
||||
// 添加
|
||||
const add = () => {
|
||||
let id = ~~(Math.random() * 1000000).toFixed(0)
|
||||
let obj1 = Object.assign({}, obj, {
|
||||
id: id,
|
||||
edit: true,
|
||||
visible: false,
|
||||
})
|
||||
for (let attr in obj1) {
|
||||
let temp = `${attr}te__mp`
|
||||
obj1[temp] = obj1[attr]
|
||||
}
|
||||
|
||||
if (props.mode === 'bottom') {
|
||||
transData.value.push(obj1)
|
||||
}
|
||||
if (props.mode === 'top') {
|
||||
transData.value.unshift(obj1)
|
||||
}
|
||||
}
|
||||
|
||||
const filterOption = (item, scope) => {
|
||||
let obj = item.options.find((ite) => ite.value === scope.row[item.name])
|
||||
if (obj) {
|
||||
return obj.label
|
||||
}
|
||||
return '--'
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
reset,
|
||||
})
|
||||
</script>
|
||||
<style scoped>
|
||||
.edit-input {
|
||||
padding-right: 100px;
|
||||
}
|
||||
.cancel-btn {
|
||||
position: absolute;
|
||||
right: 15px;
|
||||
top: 10px;
|
||||
}
|
||||
.inline-edit-table {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -10,12 +10,12 @@
|
|||
|
||||
<style lang="scss" scoped>
|
||||
.m-container-layout {
|
||||
//margin: 20px;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.m-container-layout-inner {
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
background: white;
|
||||
padding: 20px;
|
||||
width: 100%;
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@
|
|||
position: fixed;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
z-index: 1997;
|
||||
z-index: 99999;
|
||||
padding: 10px 0 0 0;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,34 @@
|
|||
<template>
|
||||
<div class="u-wangEditor">
|
||||
<div id="wangEditor"></div>
|
||||
<div class="m-wangEditor">
|
||||
<Toolbar
|
||||
style="border-bottom: 1px solid #ccc"
|
||||
:editor="editorRef"
|
||||
:defaultConfig="toolbarConfig"
|
||||
:mode="mode"
|
||||
/>
|
||||
<Editor
|
||||
class="editor-content'"
|
||||
style="height: 300px; overflow-y: hidden;"
|
||||
v-model="valueHtml"
|
||||
:defaultConfig="editorConfig"
|
||||
:mode="mode"
|
||||
@onCreated="handleCreated"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
// 引入 wangEditor
|
||||
import wangEditor from 'wangeditor'
|
||||
import { onBeforeUnmount, onMounted, watch } from 'vue'
|
||||
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
|
||||
import '@wangeditor/editor/dist/css/style.css' // 引入 css
|
||||
import {onBeforeUnmount, onMounted, watch, shallowRef, ref, computed} from 'vue'
|
||||
let editors = null
|
||||
// 编辑器实例,必须用 shallowRef
|
||||
const editorRef = shallowRef()
|
||||
const toolbarConfig = {}
|
||||
const editorConfig = { placeholder: '请输入内容...' }
|
||||
|
||||
// 内容 HTML
|
||||
const mode = ref('default')
|
||||
let emit = defineEmits(['update:modelValue'])
|
||||
let props = defineProps({
|
||||
modelValue: String,
|
||||
|
|
@ -20,28 +40,41 @@
|
|||
alert(data)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
watch(
|
||||
() => props.modelValue,
|
||||
(value) => {
|
||||
editors.txt.html(value)
|
||||
},
|
||||
)
|
||||
const editor = new wangEditor(`#wangEditor`)
|
||||
// 配置 onchange 回调函数,将数据同步到 vue 中
|
||||
editor.config.onchange = (newHtml) => {
|
||||
emit('update:modelValue', newHtml)
|
||||
}
|
||||
// 创建编辑器
|
||||
editor.create()
|
||||
const handleCreated = (editor) => {
|
||||
editorRef.value = editor // 记录 editor 实例,重要!
|
||||
}
|
||||
|
||||
editors = editor
|
||||
const valueHtml = computed({
|
||||
get(){
|
||||
return props.modelValue
|
||||
},
|
||||
set(val){
|
||||
// 防止富文本内容为空时,校验失败
|
||||
if (editorRef.value.isEmpty()) val = "";
|
||||
emit('update:modelValue', val)
|
||||
}
|
||||
})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
// 组件销毁时,也及时销毁编辑器
|
||||
onBeforeUnmount(()=>{
|
||||
// 调用销毁 API 对当前编辑器实例进行销毁
|
||||
editors.destroy()
|
||||
editors = null
|
||||
const editor = editorRef.value
|
||||
if (editor == null) {
|
||||
return
|
||||
}
|
||||
editor.destroy()
|
||||
})
|
||||
</script>
|
||||
<style></style>
|
||||
<style lang="scss" scoped>
|
||||
.m-wangEditor{
|
||||
z-index: 99;
|
||||
width: 100%;
|
||||
border: 1px solid #cccccc;
|
||||
.editor-toolbar {
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
.editor-content {
|
||||
overflow-y: hidden;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import Vue from 'vue'
|
||||
import SvgIcon from '@/components/SvgIcon' // svg component
|
||||
console.log(11111111)
|
||||
|
||||
|
||||
// const req = require.context('./svg', false, /\.svg$/)
|
||||
const req = import.meta.globEager('./svg/*.svg')
|
||||
consoole.log('req', req)
|
||||
|
||||
const requireAll = (requireContext) => requireContext.keys().map(requireContext)
|
||||
requireAll(req)
|
||||
|
||||
|
|
|
|||
|
|
@ -14,13 +14,13 @@ const othersRouter = {
|
|||
children: [
|
||||
{
|
||||
path: 'editor',
|
||||
component: () => import('@/views/other/editor.vue'),
|
||||
component: () => import('@/views/other/editor/index.vue'),
|
||||
name: 'editor',
|
||||
meta: { title: '富文本编辑器', roles: ['other'] , icon: 'MenuIcon'}
|
||||
},
|
||||
{
|
||||
path: 'mark-down',
|
||||
component: () => import('@/views/other/mark-down.vue'),
|
||||
component: () => import('@/views/other/markDown/index.vue'),
|
||||
name: 'mark-down',
|
||||
meta: { title: 'markDown', roles: ['other'] , icon: 'MenuIcon'}
|
||||
},
|
||||
|
|
@ -60,6 +60,12 @@ const othersRouter = {
|
|||
name: 'qrcode',
|
||||
meta: { title: '生成二维码', icon: 'MenuIcon' }
|
||||
},
|
||||
{
|
||||
path: 'svgIcon',
|
||||
component: () => import('@/views/other/svgIcon/index.vue'),
|
||||
name: 'svgIcon',
|
||||
meta: { title: 'svg图标', icon: 'MenuIcon' }
|
||||
},
|
||||
{
|
||||
path: 'water-marker',
|
||||
component: () => import('@/views/other/water-marker.vue'),
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ const tableRouter = {
|
|||
redirect: 'noRedirect',
|
||||
name: 'table',
|
||||
meta: {
|
||||
title: '表格',
|
||||
title: '超级表格',
|
||||
icon: 'School'
|
||||
},
|
||||
children: [
|
||||
|
|
@ -26,8 +26,8 @@ const tableRouter = {
|
|||
meta: { title: '行内编辑', keepAlive: true , icon: 'MenuIcon'}
|
||||
},
|
||||
{
|
||||
path: 'edit-table',
|
||||
component: () => import('@/views/table/edit.vue'),
|
||||
path: 'editableProTable',
|
||||
component: () => import('@/views/table/EditableProTable.vue'),
|
||||
name: 'edit-table',
|
||||
meta: { title: '可编辑表格', keepAlive: true , icon: 'MenuIcon'}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
/* 常用 flex */
|
||||
.flex-center {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.flex-justify-between {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.flex-align-center {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
@import "./common.scss";
|
||||
@import './variables.scss';
|
||||
@import './sidebar.scss';
|
||||
@import './transition.scss';
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1001;
|
||||
z-index: 98;
|
||||
overflow: hidden;
|
||||
// reset element-ui css
|
||||
.horizontal-collapse-transition {
|
||||
|
|
|
|||
|
|
@ -46,10 +46,10 @@ function watermark (options) {
|
|||
watermarkDiv.classList.add('__wm') // 为元素添加“__wm”类名
|
||||
|
||||
container.style.position = 'relative'
|
||||
if (!__wm) {
|
||||
container.appendChild(watermarkDiv) // 添加元素
|
||||
}
|
||||
container.appendChild(watermarkDiv) // 添加元素
|
||||
|
||||
|
||||
// 监听删除 防止用户去手动删除,如果手动删除 ,在重新添加
|
||||
// const MutationObserver = window.MutationObserver || window.WebKitMutationObserver
|
||||
// // 检查浏览器是否支持这个API
|
||||
// if (MutationObserver) {
|
||||
|
|
|
|||
|
|
@ -1,61 +0,0 @@
|
|||
<template>
|
||||
<u-container-layout>
|
||||
<el-form ref="formRef" :model="dynamicValidateForm" label-width="80px" class="demo-dynamic">
|
||||
<el-form-item
|
||||
prop="title"
|
||||
label="标题"
|
||||
:rules="[{ required: true, message: '请输入标题', trigger: 'blur' }]"
|
||||
>
|
||||
<el-input v-model="dynamicValidateForm.title" />
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
prop="content"
|
||||
label="标题"
|
||||
:rules="[{ required: true, message: '请输入内容', trigger: 'blur' }]"
|
||||
>
|
||||
<u-wang-edior v-model="dynamicValidateForm.content" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm(formRef)">保存</el-button>
|
||||
<!-- <el-button @click="preview">预览</el-button>-->
|
||||
<el-button @click="resetForm(formRef)">取消</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</u-container-layout>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import UWangEdior from '@/components/u-wangEdior/index.vue'
|
||||
import { reactive, ref } from 'vue'
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
const formRef = ref<FormInstance>()
|
||||
const dynamicValidateForm = reactive<{
|
||||
title: string
|
||||
content: string
|
||||
}>({
|
||||
title: '',
|
||||
content: '',
|
||||
})
|
||||
|
||||
const submitForm = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
formEl.validate((valid) => {
|
||||
console.log('valid', valid)
|
||||
if (valid) {
|
||||
ElMessage.success('保存成功')
|
||||
} else {
|
||||
console.log('error submit!')
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const preview = () => {}
|
||||
|
||||
const resetForm = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
formEl.resetFields()
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
<template>
|
||||
<u-container-layout>
|
||||
<el-form ref="formRef" :model="dynamicValidateForm" label-width="80px" class="demo-dynamic">
|
||||
<el-form-item
|
||||
prop="title"
|
||||
label="标题"
|
||||
:rules="[{ required: true, message: '请输入标题', trigger: 'blur' }]"
|
||||
>
|
||||
<el-input v-model="dynamicValidateForm.title" />
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
prop="content"
|
||||
label="标题"
|
||||
:rules="[{ required: true, message: '请输入内容', trigger: 'blur' }]"
|
||||
>
|
||||
<u-wang-edior v-model="dynamicValidateForm.content" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm(formRef)">保存</el-button>
|
||||
<el-button type="primary" @click="preview(formRef)">预览</el-button>
|
||||
<el-button @click="resetForm(formRef)">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-descriptions title="配置项 " :column="1" border class="descriptions">
|
||||
<el-descriptions-item label="value"> 双向绑定的 value 值,使用示例:v-model='content' </el-descriptions-item>
|
||||
<el-descriptions-item label="参考文档"> <a href="https://www.wangeditor.com/v5/for-frame.html"> https://www.wangeditor.com/v5/for-frame.html </a> </el-descriptions-item>
|
||||
|
||||
</el-descriptions>
|
||||
|
||||
|
||||
|
||||
<el-dialog
|
||||
v-model="dialogVisible"
|
||||
title="预览"
|
||||
width="60%"
|
||||
>
|
||||
<div style="display: flex;align-items: center;margin-bottom: 20px">
|
||||
<span style="width: 50px;font-weight: bold">标题:</span>
|
||||
<div>{{dynamicValidateForm.title}}</div>
|
||||
</div>
|
||||
<div style="display: flex;align-items: center;margin-bottom: 20px">
|
||||
<span style="width: 50px;font-weight: bold">内容</span>
|
||||
<div v-html="dynamicValidateForm.content"></div>
|
||||
</div>
|
||||
<template #footer>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</u-container-layout>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import UWangEdior from '@/components/u-wangEdior/index.vue'
|
||||
import { reactive, ref } from 'vue'
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
const formRef = ref<FormInstance>()
|
||||
const dialogVisible = ref<boolean>(false)
|
||||
const dynamicValidateForm = reactive<{
|
||||
title: string
|
||||
content: string
|
||||
}>({
|
||||
title: '',
|
||||
content: '',
|
||||
})
|
||||
|
||||
const submitForm = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
formEl.validate((valid) => {
|
||||
console.log('valid', valid)
|
||||
if (valid) {
|
||||
ElMessage.success('保存成功')
|
||||
} else {
|
||||
console.log('error submit!')
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const preview = (formEl) => {
|
||||
if (!formEl) return
|
||||
formEl.validate((valid) => {
|
||||
console.log('valid', valid)
|
||||
if (valid) {
|
||||
dialogVisible.value = true
|
||||
} else {
|
||||
console.log('error submit!')
|
||||
return false
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const resetForm = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
formEl.resetFields()
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<template>
|
||||
<u-container-layout class="mark-down">
|
||||
<el-alert
|
||||
title="Markdown 是基于 md-editor-v3"
|
||||
type="success"
|
||||
style="margin-bottom: 20px"
|
||||
:closable="false"
|
||||
effect="dark"
|
||||
/>
|
||||
<div class="" style="flex: 1">
|
||||
<md-editor v-model="text" />
|
||||
</div>
|
||||
<div style="margin-top: 20px; flex-shrink: 0">
|
||||
<el-button type="primary" @click="submit">提交</el-button>
|
||||
</div>
|
||||
</u-container-layout>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
// https://imzbf.github.io/md-editor-v3/index
|
||||
// https://www.jianshu.com/p/0b06128a6117
|
||||
import { defineComponent } from 'vue'
|
||||
import MdEditor from 'md-editor-v3'
|
||||
import 'md-editor-v3/lib/style.css'
|
||||
|
||||
export default defineComponent({
|
||||
components: { MdEditor },
|
||||
data() {
|
||||
return { text: '## 你好呀,欢迎!' }
|
||||
},
|
||||
methods: {
|
||||
submit() {
|
||||
console.log('this.text', this.text)
|
||||
},
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.mark-down {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.md {
|
||||
height: 600px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<template>
|
||||
<u-container-layout class="mark-down">
|
||||
<el-alert
|
||||
title="Markdown 是基于 md-editor-v3 插件完成, 官方文档请查看 :https://imzbf.github.io/md-editor-v3/index"
|
||||
type="warning"
|
||||
:closable="false"
|
||||
/>
|
||||
<div class="" style="flex: 1">
|
||||
<md-editor v-model="text" />
|
||||
</div>
|
||||
<div style="margin-top: 20px; flex-shrink: 0">
|
||||
<el-button type="primary" @click="submit">提交</el-button>
|
||||
</div>
|
||||
</u-container-layout>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
//
|
||||
// https://www.jianshu.com/p/0b06128a6117
|
||||
import { defineComponent } from 'vue'
|
||||
import MdEditor from 'md-editor-v3'
|
||||
import 'md-editor-v3/lib/style.css'
|
||||
|
||||
export default defineComponent({
|
||||
components: { MdEditor },
|
||||
data() {
|
||||
return { text: '## 你好呀,欢迎!' }
|
||||
},
|
||||
methods: {
|
||||
submit() {
|
||||
console.log('this.text', this.text)
|
||||
},
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.mark-down {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.md {
|
||||
height: 600px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
.icon-list{
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
padding: 40px 100px 0;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.icon{
|
||||
font-size: 50px;
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<template>
|
||||
<u-container-layout class="components-container">
|
||||
<div class="content-box">
|
||||
<el-alert
|
||||
title="SVG 图标目前使用 vite-plugin-svg-icons 插件完成,官方文档请查看 :https://github.com/vbenjs/vite-plugin-svg-icons"
|
||||
type="warning"
|
||||
:closable="false"
|
||||
/>
|
||||
<br />
|
||||
<div class="icon-list">
|
||||
<SvgIcon icon-class="borrow" class-name="icon"/>
|
||||
<SvgIcon icon-class="compass" class-name="icon"/>
|
||||
<SvgIcon icon-class="dashboard" class-name="icon"/>
|
||||
<SvgIcon icon-class="entrust" class-name="icon"/>
|
||||
<SvgIcon icon-class="example" class-name="icon"/>
|
||||
<SvgIcon icon-class="exit-fullscreen" class-name="icon"/>
|
||||
<SvgIcon icon-class="eye" class-name="icon"/>
|
||||
<SvgIcon icon-class="eye-open" class-name="icon"/>
|
||||
<SvgIcon icon-class="form" class-name="icon"/>
|
||||
<SvgIcon icon-class="fullscreen" class-name="icon"/>
|
||||
<SvgIcon icon-class="go-out" class-name="icon"/>
|
||||
</div>
|
||||
<el-descriptions title="配置项" :column="1" border>
|
||||
<el-descriptions-item label="name"> 图标的名称,svg 图标必须存储在 src/icons 目录下 </el-descriptions-item>
|
||||
<el-descriptions-item label="prefix"> 图标的前缀,默认为 "icon-class" </el-descriptions-item>
|
||||
<el-descriptions-item label="iconStyle"> 图标的样式,默认样式为 { width: "1em", height: " 1em" } </el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</u-container-layout>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="svgIcon">
|
||||
import SvgIcon from "@/components/SvgIcon/index.vue";
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "./index.scss";
|
||||
</style>
|
||||
|
|
@ -1,10 +1,25 @@
|
|||
<template>
|
||||
<div class="m-water-marker">
|
||||
<el-button @click="addWaterMarker(1)" type="primary">生成默认颜色水印</el-button>
|
||||
<el-button @click="addWaterMarker(2)" type="primary">生成随机颜色水印</el-button>
|
||||
<el-button @click="setWaterMarker(-1)" type="primary">默认局部水印</el-button>
|
||||
<el-button @click="setWaterMarker(0)" type="primary">生成全局水印</el-button>
|
||||
<el-button @click="setWaterMarker(1)" type="primary">生成默认颜色水印</el-button>
|
||||
<el-button @click="setWaterMarker(2)" type="primary">生成随机颜色水印</el-button>
|
||||
<el-input v-model="opacity" style="width: 100px; margin-left: 20px"></el-input>
|
||||
<el-button @click="addWaterMarker(3)" type="primary">设置透明度</el-button>
|
||||
<el-button @click="addWaterMarker(4)" type="primary">取消水印</el-button>
|
||||
<el-button @click="setWaterMarker(3)" type="primary">设置透明度</el-button>
|
||||
<el-button @click="setWaterMarker(4)" type="primary">取消水印</el-button>
|
||||
|
||||
<el-descriptions title="配置项 " :column="1" border class="descriptions">
|
||||
<el-descriptions-item label="content"> 水印内容,默认为 'Vue Admin Perfect' </el-descriptions-item>
|
||||
<el-descriptions-item label="container"> 水印容器,默认生成在 document.body 下面 </el-descriptions-item>
|
||||
<el-descriptions-item label="globalAlpha"> 设置图形和图像透明度的值,默认为 0.3 </el-descriptions-item>
|
||||
<el-descriptions-item label="height"> 水印高度,默认为 240 </el-descriptions-item>
|
||||
<el-descriptions-item label="width"> 水印宽度,默认为 100 </el-descriptions-item>
|
||||
<el-descriptions-item label="fillStyle"> 水印颜色,默认为 '#000' </el-descriptions-item>
|
||||
<el-descriptions-item label="textAlign"> 文字对齐,默认为 'left' </el-descriptions-item>
|
||||
<el-descriptions-item label="textBaseline"> 基准线,默认为 'bottom' </el-descriptions-item>
|
||||
<el-descriptions-item label="rotate"> 文字旋转角度,默认为 '16' 计算方式为 (Math.PI * rotate) / 180 </el-descriptions-item>
|
||||
<el-descriptions-item label="iconStyle"> 图标的样式,默认样式为 { width: "1em", height: " 1em" } </el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
@ -12,8 +27,8 @@
|
|||
import { nextTick, onMounted, ref } from 'vue'
|
||||
import watermark from '@/utils/waterMarker'
|
||||
import { getColor } from '@/utils/index'
|
||||
|
||||
const opacity = ref(0.2)
|
||||
let selectType = ref(-1)
|
||||
const options = {
|
||||
rotate: -10,
|
||||
globalAlpha: opacity.value,
|
||||
|
|
@ -28,36 +43,62 @@
|
|||
for (let i = 0; i < 30; i++) {
|
||||
message.push(getColor())
|
||||
}
|
||||
const addWaterMarker = (type) => {
|
||||
if (type === 1) {
|
||||
options.fillStyle = '#000'
|
||||
watermark(options)
|
||||
} else if (type === 2) {
|
||||
options.fillStyle = message[getRandom(0, 30)]
|
||||
watermark(options)
|
||||
} else if (type === 3) {
|
||||
options.globalAlpha = opacity.value
|
||||
watermark(options)
|
||||
} else if (type === 4) {
|
||||
nextTick(() => {
|
||||
const wm = document.getElementsByClassName('__wm')[0]
|
||||
if (wm) {
|
||||
document.body.removeChild(wm)
|
||||
}
|
||||
})
|
||||
|
||||
const setWaterMarker = (type) => {
|
||||
switch (type) {
|
||||
case -1:
|
||||
selectType.value = type
|
||||
options.container = document.getElementsByClassName('m-water-marker')[0]
|
||||
watermark(options)
|
||||
return;
|
||||
case 0:
|
||||
selectType.value = type
|
||||
delete options.container
|
||||
watermark(options)
|
||||
return;
|
||||
case 1:
|
||||
options.fillStyle = '#000'
|
||||
watermark(options)
|
||||
return;
|
||||
case 2:
|
||||
options.fillStyle = message[getRandom(0, 30)]
|
||||
watermark(options)
|
||||
return;
|
||||
case 3:
|
||||
options.globalAlpha = opacity.value
|
||||
watermark(options)
|
||||
return;
|
||||
case 4:
|
||||
nextTick(() => {
|
||||
const wm = document.getElementsByClassName('__wm')[0]
|
||||
if (wm) {
|
||||
if(selectType.value===-1){
|
||||
wm.remove()
|
||||
}else {
|
||||
document.body.removeChild(wm)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
nextTick(() => {})
|
||||
nextTick(() => {
|
||||
setWaterMarker(-1)
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
<style>
|
||||
<style lang="scss">
|
||||
.m-water-marker {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
padding: 20px;
|
||||
.descriptions{
|
||||
margin-top: 50px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,152 @@
|
|||
<template>
|
||||
<u-container-layout>
|
||||
<div style="margin-bottom: 20px">
|
||||
<div style="display: flex; justify-content: flex-end">
|
||||
<el-radio-group v-model="radio">
|
||||
<el-radio label="top" >添加到顶部</el-radio>
|
||||
<el-radio label="bottom">添加到底部</el-radio>
|
||||
<el-radio label="hide">隐藏</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<el-divider />
|
||||
<EditableProTable
|
||||
:mode="radio"
|
||||
:columns="column"
|
||||
:data="list"
|
||||
@add="add"
|
||||
ref="table"
|
||||
:editableKeys="editableKeys"
|
||||
@onChange="onChange"
|
||||
@del="deleteAction"
|
||||
/>
|
||||
<div style="margin-top: 20px">
|
||||
<el-button @click="reset">重置</el-button>
|
||||
<el-button type="primary" @click="config">提交</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-descriptions title="配置项 " :column="1" border class="descriptions">
|
||||
<el-descriptions-item label="组件名"> EditableProTable </el-descriptions-item>
|
||||
<el-descriptions-item label="columns"> 显示的列数据 </el-descriptions-item>
|
||||
<el-descriptions-item label="data"> 源数据 </el-descriptions-item>
|
||||
<el-descriptions-item label="editableKeys"> 显示可编辑输入框的key集合 </el-descriptions-item>
|
||||
<el-descriptions-item label="mode"> 操作按钮显示的地方,默认显示在底部'bottom', 'top bottom hide' </el-descriptions-item>
|
||||
<el-descriptions-item label="del"> 删除当前行触发的事件 </el-descriptions-item>
|
||||
<el-descriptions-item label="add"> 添加一行触发的事件 </el-descriptions-item>
|
||||
<el-descriptions-item label="onChange"> 数据实时改变 </el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
</u-container-layout>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import EditableProTable from '@/components/Table/EditableProTable/index.vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { ref } from 'vue'
|
||||
const table = ref()
|
||||
const column = [
|
||||
{ name: 'title', label: '活动名称', width: 160 },
|
||||
{
|
||||
name: 'state',
|
||||
label: '状态',
|
||||
options: [
|
||||
{
|
||||
value: -1,
|
||||
label: '全部',
|
||||
},
|
||||
{
|
||||
value: 1,
|
||||
label: '未解决',
|
||||
},
|
||||
{
|
||||
value: 0,
|
||||
label: '已解决',
|
||||
},
|
||||
],
|
||||
valueType: 'select',
|
||||
},
|
||||
{
|
||||
name: 'decs',
|
||||
label: '描述',
|
||||
valueType: 'input',
|
||||
},
|
||||
{
|
||||
name: 'created_at',
|
||||
label: '活动时间',
|
||||
valueType: 'date',
|
||||
},
|
||||
]
|
||||
|
||||
let data = [
|
||||
{
|
||||
id: 6247418504,
|
||||
title: '活动名称一',
|
||||
readonly: '活动名称一',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-26',
|
||||
update_at: '2020-05-26',
|
||||
},
|
||||
{
|
||||
id: 6246921229,
|
||||
title: '活动名称二',
|
||||
readonly: '活动名称二',
|
||||
decs: '这个活动真好玩',
|
||||
state: 0,
|
||||
created_at: '2020-05-26',
|
||||
update_at: '2020-05-26',
|
||||
},
|
||||
{
|
||||
id: 6242991229,
|
||||
title: '活动名称三',
|
||||
readonly: '活动名称三',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-26',
|
||||
update_at: '2020-05-26',
|
||||
},
|
||||
{
|
||||
id: 6242981229,
|
||||
title: '活动名称四',
|
||||
readonly: '活动名称四',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-26',
|
||||
update_at: '2020-05-26',
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
let arrKeys = data
|
||||
.map((item) => item.id)
|
||||
.filter((item) => ![6247418504, 6246921229].includes(item))
|
||||
const radio = ref('bottom')
|
||||
const list = ref(data)
|
||||
let editableKeys = ref(arrKeys)
|
||||
const dataSource = ref(data)
|
||||
const deleteAction = (row) => {
|
||||
console.log('删除', row)
|
||||
ElMessage.success('点击删除')
|
||||
}
|
||||
const onChange = (val) => {
|
||||
dataSource.value = val
|
||||
}
|
||||
const add = (row) => {}
|
||||
|
||||
// 重置
|
||||
const reset = (val) => {
|
||||
ElMessage.success('重置成功')
|
||||
table.value.reset()
|
||||
}
|
||||
const config = () => {
|
||||
list.value = dataSource.value
|
||||
console.log('点击提交=========', dataSource.value)
|
||||
ElMessage.success('点击提交数据')
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep(.el-divider--horizontal) {
|
||||
margin: 10px 0;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,174 +0,0 @@
|
|||
<template>
|
||||
<u-container-layout>
|
||||
<div>
|
||||
<div style="display: flex; justify-content: flex-end">
|
||||
<el-radio-group v-model="radio">
|
||||
<el-radio label="top">添加到顶部</el-radio>
|
||||
<el-radio label="bottom">添加到底部</el-radio>
|
||||
<el-radio label="hide">隐藏</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<el-divider />
|
||||
<edit-table
|
||||
:mode="radio"
|
||||
:columns="column"
|
||||
:data="list"
|
||||
@add="add"
|
||||
ref="table"
|
||||
:editableKeys="editableKeys"
|
||||
@onChange="onChange"
|
||||
@del="deleteAction"
|
||||
/>
|
||||
<div style="margin-top: 20px">
|
||||
<el-button @click="reset">重置</el-button>
|
||||
<el-button type="primary" @click="config">提交</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</u-container-layout>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import EditTable from './components/edit.vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { ref } from 'vue'
|
||||
const table = ref()
|
||||
const column = [
|
||||
{ name: 'title', label: '活动名称', width: 160 },
|
||||
{
|
||||
name: 'state',
|
||||
label: '状态',
|
||||
options: [
|
||||
{
|
||||
value: -1,
|
||||
label: '全部',
|
||||
},
|
||||
{
|
||||
value: 1,
|
||||
label: '未解决',
|
||||
},
|
||||
{
|
||||
value: 0,
|
||||
label: '已解决',
|
||||
},
|
||||
],
|
||||
valueType: 'select',
|
||||
},
|
||||
{
|
||||
name: 'decs',
|
||||
label: '描述',
|
||||
valueType: 'input',
|
||||
},
|
||||
{
|
||||
name: 'created_at',
|
||||
label: '活动时间',
|
||||
valueType: 'date',
|
||||
},
|
||||
]
|
||||
|
||||
let data = [
|
||||
{
|
||||
id: 6247418504,
|
||||
title: '活动名称一',
|
||||
readonly: '活动名称一',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-26T09:42:56Z',
|
||||
update_at: '2020-05-26T09:42:56Z',
|
||||
},
|
||||
{
|
||||
id: 6246921229,
|
||||
title: '活动名称二',
|
||||
readonly: '活动名称二',
|
||||
decs: '这个活动真好玩',
|
||||
state: 0,
|
||||
created_at: '2020-05-27T08:19:22Z',
|
||||
update_at: '2020-05-27T08:19:22Z',
|
||||
},
|
||||
{
|
||||
id: 6242991229,
|
||||
title: '活动名称三',
|
||||
readonly: '活动名称三',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-27T08:19:22Z',
|
||||
update_at: '2020-05-27T08:19:22Z',
|
||||
},
|
||||
{
|
||||
id: 6242981229,
|
||||
title: '活动名称四',
|
||||
readonly: '活动名称四',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-27T08:19:22Z',
|
||||
update_at: '2020-05-27T08:19:22Z',
|
||||
},
|
||||
{
|
||||
id: 62429122229,
|
||||
title: '活动名称五',
|
||||
readonly: '活动名称五',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-27T08:19:22Z',
|
||||
update_at: '2020-05-27T08:19:22Z',
|
||||
},
|
||||
{
|
||||
id: 62423391229,
|
||||
title: '活动名称六',
|
||||
readonly: '活动名称六',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-27T08:19:22Z',
|
||||
update_at: '2020-05-27T08:19:22Z',
|
||||
},
|
||||
{
|
||||
id: 623291229,
|
||||
title: '活动名称七',
|
||||
readonly: '活动名称五',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-27T08:19:22Z',
|
||||
update_at: '2020-05-27T08:19:22Z',
|
||||
},
|
||||
{
|
||||
id: 624291219,
|
||||
title: '活动名称八',
|
||||
readonly: '活动名称六',
|
||||
decs: '这个活动真好玩',
|
||||
state: 1,
|
||||
created_at: '2020-05-27T08:19:22Z',
|
||||
update_at: '2020-05-27T08:19:22Z',
|
||||
},
|
||||
]
|
||||
|
||||
let arrKeys = data
|
||||
.map((item) => item.id)
|
||||
.filter((item) => ![6247418504, 6246921229].includes(item))
|
||||
const radio = ref('bottom')
|
||||
const list = ref(data)
|
||||
let editableKeys = ref(arrKeys)
|
||||
const dataSource = ref(data)
|
||||
const deleteAction = (row) => {
|
||||
console.log('删除', row)
|
||||
ElMessage.success('点击删除')
|
||||
}
|
||||
const onChange = (val) => {
|
||||
dataSource.value = val
|
||||
}
|
||||
const add = (row) => {}
|
||||
const reset = (val) => {
|
||||
ElMessage.success('重置成功')
|
||||
table.value.reset()
|
||||
}
|
||||
|
||||
const config = () => {
|
||||
list.value = dataSource.value
|
||||
console.log('点击提交=========', dataSource.value)
|
||||
ElMessage.success('点击提交数据')
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep(.el-divider--horizontal) {
|
||||
margin: 10px 0;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -73,11 +73,12 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
|
|||
// }
|
||||
}
|
||||
},
|
||||
// 生产环境打包配置
|
||||
//去除 console debugger
|
||||
esbuild: {
|
||||
pure:mode==='production' ? ["console.log", "debugger"] : []
|
||||
},
|
||||
// 生产环境打包配置
|
||||
//去除 console debugger
|
||||
|
||||
// build: {
|
||||
// terserOptions: {
|
||||
// compress: {
|
||||
|
|
|
|||
365
yarn.lock
365
yarn.lock
|
|
@ -12,15 +12,7 @@
|
|||
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.10.tgz#94b5f8522356e69e8277276adf67ed280c90ecc1"
|
||||
integrity sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==
|
||||
|
||||
"@babel/runtime-corejs3@^7.11.2":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz#7bacecd1cb2dd694eacd32a91fcf7021c20770ae"
|
||||
integrity sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==
|
||||
dependencies:
|
||||
core-js-pure "^3.20.2"
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.11.2":
|
||||
"@babel/runtime@^7.12.0":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a"
|
||||
integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
|
||||
|
|
@ -159,11 +151,21 @@
|
|||
estree-walker "^2.0.1"
|
||||
picomatch "^2.2.2"
|
||||
|
||||
"@transloadit/prettier-bytes@0.0.7":
|
||||
version "0.0.7"
|
||||
resolved "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz#cdb5399f445fdd606ed833872fa0cabdbc51686b"
|
||||
integrity sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==
|
||||
|
||||
"@trysound/sax@0.2.0":
|
||||
version "0.2.0"
|
||||
resolved "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
||||
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
|
||||
|
||||
"@types/event-emitter@^0.3.3":
|
||||
version "0.3.3"
|
||||
resolved "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.3.tgz#727032a9fc67565f96bbd78b2e2809275c97d7e7"
|
||||
integrity sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==
|
||||
|
||||
"@types/json-schema@^7.0.9":
|
||||
version "7.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
|
||||
|
|
@ -283,6 +285,49 @@
|
|||
"@typescript-eslint/types" "5.32.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@uppy/companion-client@^2.2.2":
|
||||
version "2.2.2"
|
||||
resolved "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz#c70b42fdcca728ef88b3eebf7ee3e2fa04b4923b"
|
||||
integrity sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==
|
||||
dependencies:
|
||||
"@uppy/utils" "^4.1.2"
|
||||
namespace-emitter "^2.0.1"
|
||||
|
||||
"@uppy/core@^2.1.1":
|
||||
version "2.3.3"
|
||||
resolved "https://registry.npmmirror.com/@uppy/core/-/core-2.3.3.tgz#c2dc50a9a3dce6d565490780b2fc35b32367e047"
|
||||
integrity sha512-oTFYZT02dIoUGm8Ar6+Tg/xbL8MliwiPQdiuoCimPBmY19ZhuJm/K4wEYZ6nOFeYsgBWYi1yWfsmdx8LvFVx4g==
|
||||
dependencies:
|
||||
"@transloadit/prettier-bytes" "0.0.7"
|
||||
"@uppy/store-default" "^2.1.1"
|
||||
"@uppy/utils" "^4.1.2"
|
||||
lodash.throttle "^4.1.1"
|
||||
mime-match "^1.0.2"
|
||||
namespace-emitter "^2.0.1"
|
||||
nanoid "^3.1.25"
|
||||
preact "^10.5.13"
|
||||
|
||||
"@uppy/store-default@^2.1.1":
|
||||
version "2.1.1"
|
||||
resolved "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz#62a656a099bdaa012306e054d093754cb2d36e3e"
|
||||
integrity sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==
|
||||
|
||||
"@uppy/utils@^4.1.2":
|
||||
version "4.1.2"
|
||||
resolved "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.2.tgz#7b7bec41625764b563e9635f09e81e6907bb640f"
|
||||
integrity sha512-rl9aKRE4o2mRKVAhYHHf8uV7BoUOQkvDH6yOaJ4tuHJ6HgPkvxVxqUY8L+yKV1hx4mw6OF9hLIzpW/+TLSfyfQ==
|
||||
dependencies:
|
||||
lodash.throttle "^4.1.1"
|
||||
|
||||
"@uppy/xhr-upload@^2.0.3":
|
||||
version "2.1.3"
|
||||
resolved "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz#0d4e355332fe0c6eb372d7731315e04d02aeeb18"
|
||||
integrity sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==
|
||||
dependencies:
|
||||
"@uppy/companion-client" "^2.2.2"
|
||||
"@uppy/utils" "^4.1.2"
|
||||
nanoid "^3.1.25"
|
||||
|
||||
"@vitejs/plugin-vue@^3.0.0":
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.0.1.tgz#b6af8f782485374bbb5fe09edf067a845bf4caae"
|
||||
|
|
@ -439,6 +484,84 @@
|
|||
dependencies:
|
||||
vue-demi "*"
|
||||
|
||||
"@wangeditor/basic-modules@^1.1.3":
|
||||
version "1.1.3"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.3.tgz#57884ae60947613324e94acde5abae7f00d59e2a"
|
||||
integrity sha512-TGJix4UelO46yAgwI946ctx4lSIJbYBwNvjSJ9Tf8mKr0WMCeLVBV+MV85rXPsfcmWtR4wBNwSg648Z+RbqRUg==
|
||||
dependencies:
|
||||
is-url "^1.2.4"
|
||||
|
||||
"@wangeditor/code-highlight@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.2.tgz#df6bf7ac8d232c6afb0cb8189baa9f8d52feeded"
|
||||
integrity sha512-SCtOcUxjKqIso/LSxGSOaYr3G6MC2En0gNTyHIMCG928T0fo0ufaqp/vIXKQzVL2Y+X/CSAOB2EbrFlgGvr0AQ==
|
||||
dependencies:
|
||||
prismjs "^1.23.0"
|
||||
|
||||
"@wangeditor/core@^1.1.11":
|
||||
version "1.1.11"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.11.tgz#1525a7cddd2c41ceee7a4f9ef6a794b6bacf779b"
|
||||
integrity sha512-BwHVRJzESnkjKikTc2U2zsbd06l1pSo7qKy5+SpZLudYWrFxmd85VN+5GxM57FodogkNw/k04DFHcFSUfXcaKA==
|
||||
dependencies:
|
||||
"@types/event-emitter" "^0.3.3"
|
||||
event-emitter "^0.3.5"
|
||||
html-void-elements "^2.0.0"
|
||||
i18next "^20.4.0"
|
||||
scroll-into-view-if-needed "^2.2.28"
|
||||
slate-history "^0.66.0"
|
||||
|
||||
"@wangeditor/editor-for-vue@^5.1.12":
|
||||
version "5.1.12"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz#f7d5f239b39cdfc01d31151488de8443fe6edc64"
|
||||
integrity sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==
|
||||
|
||||
"@wangeditor/editor@^5.1.14":
|
||||
version "5.1.14"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.14.tgz#863cef775ead194503d5636232e96b04ecc34040"
|
||||
integrity sha512-erILPAkpKldyGi4cEwrOW65v12GhZy2qj2A8kPlypU46lE72Y3XowZxWogN1TI/mqMDR84AHr0QWOvygOV1xwQ==
|
||||
dependencies:
|
||||
"@uppy/core" "^2.1.1"
|
||||
"@uppy/xhr-upload" "^2.0.3"
|
||||
"@wangeditor/basic-modules" "^1.1.3"
|
||||
"@wangeditor/code-highlight" "^1.0.2"
|
||||
"@wangeditor/core" "^1.1.11"
|
||||
"@wangeditor/list-module" "^1.0.2"
|
||||
"@wangeditor/table-module" "^1.1.1"
|
||||
"@wangeditor/upload-image-module" "^1.0.1"
|
||||
"@wangeditor/video-module" "^1.1.1"
|
||||
dom7 "^3.0.0"
|
||||
is-hotkey "^0.2.0"
|
||||
lodash.camelcase "^4.3.0"
|
||||
lodash.clonedeep "^4.5.0"
|
||||
lodash.debounce "^4.0.8"
|
||||
lodash.foreach "^4.5.0"
|
||||
lodash.isequal "^4.5.0"
|
||||
lodash.throttle "^4.1.1"
|
||||
lodash.toarray "^4.4.0"
|
||||
nanoid "^3.2.0"
|
||||
slate "^0.72.0"
|
||||
snabbdom "^3.1.0"
|
||||
|
||||
"@wangeditor/list-module@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.2.tgz#c9e57c4c34bbcc32df3a9030df2fda0bb4f77a39"
|
||||
integrity sha512-VfENZEFvsLTiLxN/cj8cibFGy9NVV+/cfATTiLiH9ef+8lgKv8apttXYVlqIAfnlJLLuCk0cIm8c/zH+hbtrZg==
|
||||
|
||||
"@wangeditor/table-module@^1.1.1":
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.1.tgz#cc88f2d566a3f314801cda4ab7ffceeb3c21c251"
|
||||
integrity sha512-VPjEWQtncS2DsXYXiHUxPSxn2Xhc8GdhG3la7N5YhvxQde1+4N0SZLXeWsYvbGzOq4um5XToq5pktLLbE8G+EA==
|
||||
|
||||
"@wangeditor/upload-image-module@^1.0.1":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.1.tgz#a074518d73ce9c5cfd3e8ee56d1adf831996f142"
|
||||
integrity sha512-vgUV4ENttTITblqtVuzleIq732OmzmzzgrIvX6b3GRGPSw5u8glJ/87tOEhvHjHECc4oFo18B7xzJ1GpBj79/w==
|
||||
|
||||
"@wangeditor/video-module@^1.1.1":
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.1.tgz#67f24a8a64bd94baf2116d26da042faf5e8a5eb8"
|
||||
integrity sha512-6gzpS5cnJihW2T0HFjqmbv6v8ouyaeMUjdM2X8BPohwD74p1ov00dCmRt5QekNTyYSmRHK0ASkUMOvRGqaDxMg==
|
||||
|
||||
acorn-jsx@^5.3.2:
|
||||
version "5.3.2"
|
||||
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
||||
|
|
@ -847,6 +970,11 @@ compress-commons@^4.1.0:
|
|||
normalize-path "^3.0.0"
|
||||
readable-stream "^3.6.0"
|
||||
|
||||
compute-scroll-into-view@^1.0.17:
|
||||
version "1.0.17"
|
||||
resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab"
|
||||
integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==
|
||||
|
||||
concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
|
|
@ -857,11 +985,6 @@ copy-descriptor@^0.1.0:
|
|||
resolved "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
|
||||
integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==
|
||||
|
||||
core-js-pure@^3.20.2:
|
||||
version "3.24.1"
|
||||
resolved "https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.24.1.tgz#8839dde5da545521bf282feb7dc6d0b425f39fd3"
|
||||
integrity sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==
|
||||
|
||||
core-js@^3.6.5:
|
||||
version "3.24.1"
|
||||
resolved "https://registry.npmmirror.com/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f"
|
||||
|
|
@ -953,6 +1076,14 @@ csstype@^2.6.8:
|
|||
resolved "https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda"
|
||||
integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==
|
||||
|
||||
d@1, d@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
|
||||
integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
|
||||
dependencies:
|
||||
es5-ext "^0.10.50"
|
||||
type "^1.0.1"
|
||||
|
||||
dart-sass@^1.25.0:
|
||||
version "1.25.0"
|
||||
resolved "https://registry.npmmirror.com/dart-sass/-/dart-sass-1.25.0.tgz#e00c0348118916e9d81cb485297184c131af1dad"
|
||||
|
|
@ -1064,6 +1195,13 @@ dom-serializer@^1.0.1:
|
|||
domhandler "^4.2.0"
|
||||
entities "^2.0.0"
|
||||
|
||||
dom7@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz#b861ce5d67a6becd7aaa3ad02942ff14b1240331"
|
||||
integrity sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==
|
||||
dependencies:
|
||||
ssr-window "^3.0.0-alpha.1"
|
||||
|
||||
domelementtype@1, domelementtype@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
|
||||
|
|
@ -1178,6 +1316,32 @@ entities@^2.0.0:
|
|||
resolved "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
|
||||
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
|
||||
|
||||
es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14:
|
||||
version "0.10.62"
|
||||
resolved "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5"
|
||||
integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==
|
||||
dependencies:
|
||||
es6-iterator "^2.0.3"
|
||||
es6-symbol "^3.1.3"
|
||||
next-tick "^1.1.0"
|
||||
|
||||
es6-iterator@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
|
||||
integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "^0.10.35"
|
||||
es6-symbol "^3.1.1"
|
||||
|
||||
es6-symbol@^3.1.1, es6-symbol@^3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
|
||||
integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
|
||||
dependencies:
|
||||
d "^1.0.1"
|
||||
ext "^1.1.2"
|
||||
|
||||
esbuild-android-64@0.14.53:
|
||||
version "0.14.53"
|
||||
resolved "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz#259bc3ef1399a3cad8f4f67c40ee20779c4de675"
|
||||
|
|
@ -1476,6 +1640,14 @@ etag@^1.8.1:
|
|||
resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
||||
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
|
||||
|
||||
event-emitter@^0.3.5:
|
||||
version "0.3.5"
|
||||
resolved "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
|
||||
integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
|
||||
exceljs@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.npmmirror.com/exceljs/-/exceljs-4.3.0.tgz#939bc0d4c59c200acadb7051be34d25c109853c4"
|
||||
|
|
@ -1504,6 +1676,13 @@ expand-brackets@^2.1.4:
|
|||
snapdragon "^0.8.1"
|
||||
to-regex "^3.0.1"
|
||||
|
||||
ext@^1.1.2:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmmirror.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52"
|
||||
integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==
|
||||
dependencies:
|
||||
type "^2.5.0"
|
||||
|
||||
extend-shallow@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
|
||||
|
|
@ -1833,6 +2012,11 @@ he@^1.1.1:
|
|||
resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
|
||||
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
|
||||
|
||||
html-void-elements@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f"
|
||||
integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==
|
||||
|
||||
htmlparser2@^3.8.3:
|
||||
version "3.10.1"
|
||||
resolved "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
|
||||
|
|
@ -1845,6 +2029,13 @@ htmlparser2@^3.8.3:
|
|||
inherits "^2.0.1"
|
||||
readable-stream "^3.1.1"
|
||||
|
||||
i18next@^20.4.0:
|
||||
version "20.6.1"
|
||||
resolved "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz#535e5f6e5baeb685c7d25df70db63bf3cc0aa345"
|
||||
integrity sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.12.0"
|
||||
|
||||
ieee754@^1.1.13:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
||||
|
|
@ -1865,6 +2056,11 @@ immediate@~3.0.5:
|
|||
resolved "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
|
||||
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
|
||||
|
||||
immer@^9.0.6:
|
||||
version "9.0.15"
|
||||
resolved "https://registry.npmmirror.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc"
|
||||
integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.npmmirror.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef"
|
||||
|
|
@ -1985,6 +2181,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
|
|||
dependencies:
|
||||
is-extglob "^2.1.1"
|
||||
|
||||
is-hotkey@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef"
|
||||
integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==
|
||||
|
||||
is-number@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
|
||||
|
|
@ -2009,6 +2210,16 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
|
|||
dependencies:
|
||||
isobject "^3.0.1"
|
||||
|
||||
is-plain-object@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
|
||||
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
|
||||
|
||||
is-url@^1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
|
||||
integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
|
||||
|
||||
is-windows@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
|
||||
|
|
@ -2176,6 +2387,21 @@ lodash-unified@^1.0.2:
|
|||
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz#bb2694db3533781e5cce984af60cfaea318b83c1"
|
||||
integrity sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==
|
||||
|
||||
lodash.camelcase@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
|
||||
integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
|
||||
|
||||
lodash.clonedeep@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
|
||||
integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==
|
||||
|
||||
lodash.debounce@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
||||
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
|
||||
|
||||
lodash.defaults@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
|
||||
|
|
@ -2196,6 +2422,11 @@ lodash.flatten@^4.4.0:
|
|||
resolved "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
|
||||
integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
|
||||
|
||||
lodash.foreach@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
|
||||
integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==
|
||||
|
||||
lodash.groupby@^4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.npmmirror.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1"
|
||||
|
|
@ -2236,6 +2467,16 @@ lodash.merge@^4.6.2:
|
|||
resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
|
||||
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
|
||||
|
||||
lodash.throttle@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
|
||||
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
|
||||
|
||||
lodash.toarray@^4.4.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
|
||||
integrity sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==
|
||||
|
||||
lodash.union@^4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
|
||||
|
|
@ -2345,6 +2586,13 @@ micromatch@^4.0.4:
|
|||
braces "^3.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime-match@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz#3f87c31e9af1a5fd485fb9db134428b23bbb7ba8"
|
||||
integrity sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==
|
||||
dependencies:
|
||||
wildcard "^1.1.0"
|
||||
|
||||
mimic-response@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
|
||||
|
|
@ -2407,7 +2655,12 @@ ms@2.1.2:
|
|||
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
|
||||
nanoid@^3.3.4:
|
||||
namespace-emitter@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz#978d51361c61313b4e6b8cf6f3853d08dfa2b17c"
|
||||
integrity sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==
|
||||
|
||||
nanoid@^3.1.25, nanoid@^3.2.0, nanoid@^3.3.4:
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
|
||||
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
|
||||
|
|
@ -2434,6 +2687,11 @@ natural-compare@^1.4.0:
|
|||
resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
|
||||
|
||||
next-tick@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
|
||||
integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
|
||||
|
||||
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||
|
|
@ -2678,6 +2936,11 @@ posthtml@^0.9.2:
|
|||
posthtml-parser "^0.2.0"
|
||||
posthtml-render "^1.0.5"
|
||||
|
||||
preact@^10.5.13:
|
||||
version "10.10.6"
|
||||
resolved "https://registry.npmmirror.com/preact/-/preact-10.10.6.tgz#1fe62aecf93974b64e6a42e09ba1f00f93207d14"
|
||||
integrity sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog==
|
||||
|
||||
prelude-ls@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||
|
|
@ -2700,6 +2963,11 @@ print-js@^1.6.0:
|
|||
resolved "https://registry.npmmirror.com/print-js/-/print-js-1.6.0.tgz#692b046cf31992b46afa6c6d8a9db1c69d431d1f"
|
||||
integrity sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg==
|
||||
|
||||
prismjs@^1.23.0:
|
||||
version "1.29.0"
|
||||
resolved "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12"
|
||||
integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==
|
||||
|
||||
process-nextick-args@~2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
||||
|
|
@ -2877,6 +3145,13 @@ saxes@^5.0.1:
|
|||
dependencies:
|
||||
xmlchars "^2.2.0"
|
||||
|
||||
scroll-into-view-if-needed@^2.2.28:
|
||||
version "2.2.29"
|
||||
resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz#551791a84b7e2287706511f8c68161e4990ab885"
|
||||
integrity sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==
|
||||
dependencies:
|
||||
compute-scroll-into-view "^1.0.17"
|
||||
|
||||
scule@^0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.npmmirror.com/scule/-/scule-0.3.2.tgz#472445cecd8357165a94a067f78cee40e700b596"
|
||||
|
|
@ -2940,6 +3215,27 @@ slash@^3.0.0:
|
|||
resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
||||
|
||||
slate-history@^0.66.0:
|
||||
version "0.66.0"
|
||||
resolved "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz#ac63fddb903098ceb4c944433e3f75fe63acf940"
|
||||
integrity sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==
|
||||
dependencies:
|
||||
is-plain-object "^5.0.0"
|
||||
|
||||
slate@^0.72.0:
|
||||
version "0.72.8"
|
||||
resolved "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz#5a018edf24e45448655293a68bfbcf563aa5ba81"
|
||||
integrity sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==
|
||||
dependencies:
|
||||
immer "^9.0.6"
|
||||
is-plain-object "^5.0.0"
|
||||
tiny-warning "^1.0.3"
|
||||
|
||||
snabbdom@^3.1.0:
|
||||
version "3.5.1"
|
||||
resolved "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz#25f80ef15b194baea703d9d5441892e369de18e1"
|
||||
integrity sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==
|
||||
|
||||
snapdragon-node@^2.0.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
|
||||
|
|
@ -3030,6 +3326,11 @@ ssf@~0.11.2:
|
|||
dependencies:
|
||||
frac "~1.1.2"
|
||||
|
||||
ssr-window@^3.0.0-alpha.1:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz#fd5b82801638943e0cc704c4691801435af7ac37"
|
||||
integrity sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==
|
||||
|
||||
stable@^0.1.8:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
|
||||
|
|
@ -3200,6 +3501,11 @@ tiny-emitter@^2.0.0:
|
|||
resolved "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
|
||||
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
|
||||
|
||||
tiny-warning@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
|
||||
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
|
||||
|
||||
tmp@^0.2.0:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.npmmirror.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
|
||||
|
|
@ -3259,11 +3565,6 @@ tslib@^1.8.1:
|
|||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tslib@^2.1.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
|
||||
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
|
||||
|
||||
tsutils@^3.21.0:
|
||||
version "3.21.0"
|
||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
|
||||
|
|
@ -3283,6 +3584,16 @@ type-fest@^0.20.2:
|
|||
resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
|
||||
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
|
||||
|
||||
type@^1.0.1:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmmirror.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
|
||||
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
|
||||
|
||||
type@^2.5.0:
|
||||
version "2.7.2"
|
||||
resolved "https://registry.npmmirror.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
|
||||
integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
|
||||
|
||||
typescript@^4.6.4:
|
||||
version "4.7.4"
|
||||
resolved "https://registry.npmmirror.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235"
|
||||
|
|
@ -3596,15 +3907,6 @@ vuex@^4.0.0-0:
|
|||
dependencies:
|
||||
"@vue/devtools-api" "^6.0.0-beta.11"
|
||||
|
||||
wangeditor@^4.7.12:
|
||||
version "4.7.15"
|
||||
resolved "https://registry.npmmirror.com/wangeditor/-/wangeditor-4.7.15.tgz#38c5e279a79d0428e4fd77ae5be46367e9c819e5"
|
||||
integrity sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.11.2"
|
||||
"@babel/runtime-corejs3" "^7.11.2"
|
||||
tslib "^2.1.0"
|
||||
|
||||
webpack-sources@^3.2.3:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|
||||
|
|
@ -3622,6 +3924,11 @@ which@^2.0.1:
|
|||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
wildcard@^1.1.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5"
|
||||
integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==
|
||||
|
||||
wmf@~1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da"
|
||||
|
|
|
|||
Loading…
Reference in New Issue