style: code style

pull/4/head
bqy_fe 4 years ago
parent 2f3f619c47
commit 2077481d89
  1. 16
      .eslintrc.js
  2. 61
      .vscode/settings.json
  3. 18
      package.json
  4. 2
      src/visual-editor/components/left-aside/components/page-tree/index.vue
  5. 40
      src/visual-editor/components/right-attribute-panel/index.tsx
  6. 8
      src/visual-editor/components/simulator-editor/simulator-editor.vue
  7. 15
      src/visual-editor/hooks/useVisualData.ts
  8. 41
      src/visual-editor/index.vue
  9. 2
      stylelint.config.js
  10. 114
      yarn.lock

@ -22,26 +22,14 @@ module.exports = {
'plugin:prettier/recommended' 'plugin:prettier/recommended'
], ],
rules: { rules: {
'@typescript-eslint/no-unused-vars': 'off',
'no-unused-vars': 'off',
'vue/require-default-prop': 'off', 'vue/require-default-prop': 'off',
'@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/ban-types': 'off', '@typescript-eslint/ban-types': 'off',
'@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_'
}
],
'no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_'
}
],
'vue/html-self-closing': [ 'vue/html-self-closing': [
'error', 'error',
{ {

@ -1,4 +1,5 @@
{ {
"cSpell.words": ["windi"],
"typescript.tsdk": "./node_modules/typescript/lib", "typescript.tsdk": "./node_modules/typescript/lib",
"volar.tsPlugin": true, "volar.tsPlugin": true,
"volar.tsPluginStatus": false, "volar.tsPluginStatus": false,
@ -7,23 +8,9 @@
//=========================================== //===========================================
"explorer.openEditors.visible": 0, "explorer.openEditors.visible": 0,
"editor.tabSize": 2, "editor.tabSize": 2,
"editor.renderControlCharacters": true,
"editor.minimap.renderCharacters": false,
"editor.minimap.maxColumn": 300,
"editor.minimap.showSlider": "always",
"editor.cursorBlinking": "phase",
"editor.cursorSmoothCaretAnimation": true,
"editor.detectIndentation": false,
"editor.defaultFormatter": "esbenp.prettier-vscode", "editor.defaultFormatter": "esbenp.prettier-vscode",
"diffEditor.ignoreTrimWhitespace": false, "diffEditor.ignoreTrimWhitespace": false,
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
"editor.suggestSelection": "first",
"editor.trimAutoWhitespace": true, "editor.trimAutoWhitespace": true,
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true
},
//=========================================== //===========================================
//============= Other ======================= //============= Other =======================
//=========================================== //===========================================
@ -34,17 +21,6 @@
//=========================================== //===========================================
"emmet.triggerExpansionOnTab": true, "emmet.triggerExpansionOnTab": true,
"emmet.showAbbreviationSuggestions": true, "emmet.showAbbreviationSuggestions": true,
"emmet.showExpandedAbbreviation": "always",
"emmet.syntaxProfiles": {
"vue-html": "html",
"vue": "html",
"xml": {
"attr_quotes": "single"
}
},
"emmet.includeLanguages": {
"jsx-sublime-babel-tags": "javascriptreact"
},
//=========================================== //===========================================
//============= files ======================= //============= files =======================
//=========================================== //===========================================
@ -97,52 +73,22 @@
}, },
"stylelint.enable": true, "stylelint.enable": true,
"stylelint.packageManager": "yarn", "stylelint.packageManager": "yarn",
//
// ===========================================
// ================ Eslint ===================
// ===========================================
"eslint.alwaysShowStatus": true,
"eslint.options": {
"plugins": ["html", "vue", "javascript", "jsx", "typescript"],
"extensions": [".js", ".jsx", ".ts", ".tsx", ".vue"]
},
"eslint.validate": [
"javascript",
"typescript",
"reacttypescript",
"reactjavascript",
"html",
"vue"
],
// =========================================== // ===========================================
// ================ Vetur ==================== // ================ Vetur ====================
// =========================================== // ===========================================
"vetur.experimental.templateInterpolationService": true, "vetur.experimental.templateInterpolationService": true,
"vetur.format.options.tabSize": 2, "vetur.format.options.tabSize": 2,
"vetur.format.defaultFormatter.html": "js-beautify-html",
"vetur.format.defaultFormatter.scss": "prettier",
"vetur.format.defaultFormatter.css": "prettier",
"vetur.format.defaultFormatter.ts": "prettier-tslint",
"vetur.format.defaultFormatter.js": "prettier",
"vetur.languageFeatures.codeActions": false, "vetur.languageFeatures.codeActions": false,
"vetur.format.defaultFormatterOptions": { "vetur.format.defaultFormatterOptions": {
"js-beautify-html": { "js-beautify-html": {
"wrap_attributes": "force-expand-multiline" "wrap_attributes": "force-expand-multiline"
},
"prettier": {
"eslintIntegration": true,
"arrowParens": "always",
"semi": false,
"singleQuote": true
} }
}, },
"liveServer.settings.donotShowInfoMsg": true, "liveServer.settings.donotShowInfoMsg": true,
"terminal.integrated.rendererType": "dom",
"telemetry.enableCrashReporter": false, "telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false,
"workbench.settings.enableNaturalLanguageSearch": false, "workbench.settings.enableNaturalLanguageSearch": false,
"path-intellisense.mappings": { "path-intellisense.mappings": {
"/@/": "${workspaceRoot}/src" "@/": "${workspaceRoot}/src"
}, },
"prettier.requireConfig": true, "prettier.requireConfig": true,
"typescript.updateImportsOnFileMove.enabled": "always", "typescript.updateImportsOnFileMove.enabled": "always",
@ -177,8 +123,7 @@
}, },
"[vue]": { "[vue]": {
"editor.codeActionsOnSave": { "editor.codeActionsOnSave": {
"source.fixAll.eslint": false, "source.fixAll.eslint": false
"source.fixAll.stylelint": true
} }
}, },
"i18n-ally.localesPaths": ["src/locales/lang"], "i18n-ally.localesPaths": ["src/locales/lang"],

@ -26,13 +26,13 @@
"axios": "^0.21.1", "axios": "^0.21.1",
"dayjs": "^1.10.5", "dayjs": "^1.10.5",
"dexie": "^3.0.3", "dexie": "^3.0.3",
"element-plus": "^1.0.2-beta.45", "element-plus": "^1.0.2-beta.46",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"monaco-editor": "^0.24.0", "monaco-editor": "^0.24.0",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"nprogress": "^1.0.0-1", "nprogress": "^1.0.0-1",
"qrcode": "^1.4.4", "qrcode": "^1.4.4",
"vant": "^3.0.17", "vant": "^3.0.18",
"vue": "3.0.11", "vue": "3.0.11",
"vue-router": "^4.0.8", "vue-router": "^4.0.8",
"vuedraggable": "^4.0.1", "vuedraggable": "^4.0.1",
@ -41,7 +41,7 @@
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^12.1.4", "@commitlint/cli": "^12.1.4",
"@commitlint/config-conventional": "^12.1.4", "@commitlint/config-conventional": "^12.1.4",
"@types/node": "^15.6.1", "@types/node": "^15.12.1",
"@typescript-eslint/eslint-plugin": "^4.26.0", "@typescript-eslint/eslint-plugin": "^4.26.0",
"@typescript-eslint/parser": "^4.26.0", "@typescript-eslint/parser": "^4.26.0",
"@vitejs/plugin-legacy": "^1.4.1", "@vitejs/plugin-legacy": "^1.4.1",
@ -51,7 +51,7 @@
"commitizen": "^4.2.4", "commitizen": "^4.2.4",
"cz-conventional-changelog": "^3.3.0", "cz-conventional-changelog": "^3.3.0",
"cz-customizable": "^6.3.0", "cz-customizable": "^6.3.0",
"eslint": "^7.27.0", "eslint": "^7.28.0",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.23.4", "eslint-plugin-import": "^2.23.4",
"eslint-plugin-prettier": "^3.4.0", "eslint-plugin-prettier": "^3.4.0",
@ -59,21 +59,21 @@
"gh-pages": "^3.2.0", "gh-pages": "^3.2.0",
"husky": "^6.0.0", "husky": "^6.0.0",
"lint-staged": "^11.0.0", "lint-staged": "^11.0.0",
"prettier": "^2.3.0", "prettier": "^2.3.1",
"pretty-quick": "^3.1.0", "pretty-quick": "^3.1.0",
"sass": "1.34.0", "sass": "1.34.1",
"stylelint": "^13.13.1", "stylelint": "^13.13.1",
"stylelint-config-prettier": "^8.0.2", "stylelint-config-prettier": "^8.0.2",
"stylelint-config-standard": "^22.0.0", "stylelint-config-standard": "^22.0.0",
"stylelint-order": "^4.1.0", "stylelint-order": "^4.1.0",
"typescript": "^4.3.2", "typescript": "^4.3.2",
"vite": "2.3.5", "vite": "2.3.6",
"vite-plugin-components": "^0.10.4", "vite-plugin-components": "^0.10.4",
"vite-plugin-style-import": "^0.10.1", "vite-plugin-style-import": "^0.10.1",
"vite-plugin-windicss": "^0.16.7", "vite-plugin-windicss": "^1.0.1",
"vue-eslint-parser": "^7.6.0", "vue-eslint-parser": "^7.6.0",
"vue-tsc": "^0.1.7", "vue-tsc": "^0.1.7",
"windicss": "^3.0.12" "windicss": "^3.1.1"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

@ -153,8 +153,8 @@ export default defineComponent({
return { return {
...toRefs(state), ...toRefs(state),
setCurrentPage,
pages, pages,
setCurrentPage,
onSubmit, onSubmit,
setDefaultPage, setDefaultPage,
handleNodeClick, handleNodeClick,

@ -5,7 +5,7 @@
* @description * @description
* @update: 2021/4/28 16:59 * @update: 2021/4/28 16:59
*/ */
import { defineComponent, PropType, reactive } from 'vue' import { defineComponent, reactive } from 'vue'
import styles from './index.module.scss' import styles from './index.module.scss'
import './index.common.scss' import './index.common.scss'
import { import {
@ -23,28 +23,22 @@ import {
} from 'element-plus' } from 'element-plus'
import { VisualEditorProps, VisualEditorPropsType } from '@/visual-editor/visual-editor.props' import { VisualEditorProps, VisualEditorPropsType } from '@/visual-editor/visual-editor.props'
import { TablePropEditor } from './components/' import { TablePropEditor } from './components/'
import { VisualEditorBlockData } from '@/visual-editor/visual-editor.utils'
import MonacoEditor from '../common/monaco-editor/MonacoEditor' import MonacoEditor from '../common/monaco-editor/MonacoEditor'
import { useVModel } from '@vueuse/core'
import { useDotProp } from '@/visual-editor/hooks/useDotProp' import { useDotProp } from '@/visual-editor/hooks/useDotProp'
import { useVisualData } from '@/visual-editor/hooks/useVisualData' import { useVisualData } from '@/visual-editor/hooks/useVisualData'
export default defineComponent({ export default defineComponent({
name: 'RightAttributePanel', name: 'RightAttributePanel',
props: { setup() {
block: { type: Object as PropType<VisualEditorBlockData>, default: () => ({}) } const { visualConfig, currentBlock } = useVisualData()
},
setup(props, { emit }) {
const { visualConfig } = useVisualData()
const state = reactive({ const state = reactive({
activeName: 'attr', activeName: 'attr',
isOpen: true, isOpen: true
editData: useVModel(props, 'block', emit)
}) })
const renderEditor = (propName: string, propConfig: VisualEditorProps) => { const renderEditor = (propName: string, propConfig: VisualEditorProps) => {
const { propObj, prop } = useDotProp(state.editData.props, propName) const { propObj, prop } = useDotProp(currentBlock.value.props, propName)
return { return {
[VisualEditorPropsType.input]: () => ( [VisualEditorPropsType.input]: () => (
@ -71,28 +65,28 @@ export default defineComponent({
return () => { return () => {
const content: JSX.Element[] = [] const content: JSX.Element[] = []
if (!props.block) { if (!currentBlock.value) {
content.push( content.push(
<> <>
<ElFormItem label="容器宽度"> <ElFormItem label="容器宽度">
<ElInputNumber v-model={state.editData.width} {...({ step: 100 } as any)} /> <ElInputNumber v-model={currentBlock.value.width} {...({ step: 100 } as any)} />
</ElFormItem> </ElFormItem>
<ElFormItem label="容器高度"> <ElFormItem label="容器高度">
<ElInputNumber v-model={state.editData.height} {...({ step: 100 } as any)} /> <ElInputNumber v-model={currentBlock.value.height} {...({ step: 100 } as any)} />
</ElFormItem> </ElFormItem>
</> </>
) )
} else { } else {
const { componentKey } = props.block const { componentKey } = currentBlock.value
const component = visualConfig.componentMap[componentKey] const component = visualConfig.componentMap[componentKey]
console.log('props.block:', props.block) console.log('props.block:', currentBlock.value)
content.push( content.push(
<ElFormItem label="组件ID" labelWidth={'76px'}> <ElFormItem label="组件ID" labelWidth={'76px'}>
{props.block._vid} {currentBlock.value._vid}
<ElPopover <ElPopover
width={200} width={200}
trigger="hover" trigger="hover"
content={`你可以利用该组件ID。对该组件进行获取和设置其属性,组件可用属性可在控制台输入:$$refs.${props.block._vid} 进行查看`} content={`你可以利用该组件ID。对该组件进行获取和设置其属性,组件可用属性可在控制台输入:$$refs.${currentBlock.value._vid} 进行查看`}
> >
{{ {{
reference: () => ( reference: () => (
@ -105,9 +99,9 @@ export default defineComponent({
if (!!component) { if (!!component) {
if (!!component.props) { if (!!component.props) {
content.push( content.push(
Object.entries(component.props || {}).map(([propName, propConfig]) => ( ...Object.entries(component.props || {}).map(([propName, propConfig]) => (
<ElFormItem <ElFormItem
key={props.block._vid + propName} key={currentBlock.value._vid + propName}
v-slots={{ v-slots={{
label: () => label: () =>
propConfig.tips ? ( propConfig.tips ? (
@ -135,7 +129,7 @@ export default defineComponent({
const handleSchemaChange = (val) => { const handleSchemaChange = (val) => {
try { try {
const newObj = JSON.parse(val) const newObj = JSON.parse(val)
Object.assign(state.editData, newObj) Object.assign(currentBlock.value, newObj)
} catch (e) { } catch (e) {
console.log('JSON格式有误:', e) console.log('JSON格式有误:', e)
} }
@ -156,9 +150,9 @@ export default defineComponent({
</ElTabPane> </ElTabPane>
<ElTabPane label="JSON" name="json" lazy> <ElTabPane label="JSON" name="json" lazy>
<MonacoEditor <MonacoEditor
code={JSON.stringify(props.block)} code={JSON.stringify(currentBlock.value)}
layout={{ width: 300, height: 800 }} layout={{ width: 300, height: 800 }}
vid={state.activeName == 'json' ? props.block._vid : -1} vid={state.activeName == 'json' ? currentBlock.value._vid : -1}
onChange={handleSchemaChange} onChange={handleSchemaChange}
title="" title=""
/> />

@ -36,7 +36,7 @@
</template> </template>
<script lang="tsx"> <script lang="tsx">
import { defineComponent, reactive, toRefs, SetupContext } from 'vue' import { defineComponent, reactive, toRefs } from 'vue'
import { VisualEditorBlockData } from '@/visual-editor/visual-editor.utils' import { VisualEditorBlockData } from '@/visual-editor/visual-editor.utils'
import DraggableTransitionGroup from './draggable-transition-group.vue' import DraggableTransitionGroup from './draggable-transition-group.vue'
import { $$dropdown, DropdownOption } from '@/visual-editor/utils/dropdown-service' import { $$dropdown, DropdownOption } from '@/visual-editor/utils/dropdown-service'
@ -54,10 +54,10 @@ export default defineComponent({
SlotItem SlotItem
}, },
emits: ['on-selected'], emits: ['on-selected'],
setup(_, { emit }: SetupContext) { setup() {
const { globalProperties } = useGlobalProperties() const { globalProperties } = useGlobalProperties()
const { currentPage, visualConfig } = useVisualData() const { currentPage, visualConfig, setCurrentBlock } = useVisualData()
const state = reactive({ const state = reactive({
drag: false drag: false
@ -112,7 +112,7 @@ export default defineComponent({
} }
const selectComp = (element) => { const selectComp = (element) => {
emit('on-selected', element) setCurrentBlock(element)
currentPage.value.blocks.forEach((block) => { currentPage.value.blocks.forEach((block) => {
block.focus = element._vid == block._vid block.focus = element._vid == block._vid
block.focusWithChild = false block.focusWithChild = false

@ -24,6 +24,7 @@ export const localKey = CacheEnum.PAGE_DATA_KEY
export const injectKey = Symbol('injectKey') export const injectKey = Symbol('injectKey')
interface IState { interface IState {
currentBlock: VisualEditorBlockData // 当前正在操作的组件
currentPage: VisualEditorPage // 当前正在操作的页面 currentPage: VisualEditorPage // 当前正在操作的页面
jsonData: VisualEditorModelValue // 整颗JSON树 jsonData: VisualEditorModelValue // 整颗JSON树
} }
@ -31,6 +32,7 @@ interface IState {
export interface VisualData { export interface VisualData {
jsonData: DeepReadonly<VisualEditorModelValue> // 保护JSONData避免直接修改 jsonData: DeepReadonly<VisualEditorModelValue> // 保护JSONData避免直接修改
currentPage: ComputedRef<VisualEditorPage> // 当前正在操作的页面 currentPage: ComputedRef<VisualEditorPage> // 当前正在操作的页面
currentBlock: ComputedRef<VisualEditorBlockData> // 当前正在操作的组件
visualConfig: VisualEditorConfig // 组件配置 visualConfig: VisualEditorConfig // 组件配置
overrideProject: (jsonData: VisualEditorModelValue) => void // 使用JSON覆盖整个项目 overrideProject: (jsonData: VisualEditorModelValue) => void // 使用JSON覆盖整个项目
updatePage: (data: { newPath?: string; oldPath: string; page: Partial<VisualEditorPage> }) => void // 更新某个页面 updatePage: (data: { newPath?: string; oldPath: string; page: Partial<VisualEditorPage> }) => void // 更新某个页面
@ -38,6 +40,7 @@ export interface VisualData {
deletePage: (path: string, redirect?: string) => void // 删除页面 deletePage: (path: string, redirect?: string) => void // 删除页面
updatePageBlock: (path: string, blocks: VisualEditorBlockData[]) => void // 更新某页面下的所有组件 updatePageBlock: (path: string, blocks: VisualEditorBlockData[]) => void // 更新某页面下的所有组件
setCurrentPage: (path: string) => void // 设置当前正在操作的页面 setCurrentPage: (path: string) => void // 设置当前正在操作的页面
setCurrentBlock: (block: VisualEditorBlockData) => void // 设置当前正在操作的组件
} }
const defaultValue: VisualEditorModelValue = { const defaultValue: VisualEditorModelValue = {
@ -67,9 +70,12 @@ export const initVisualData = (): VisualData => {
// 所有页面的path都必须以 / 开发 // 所有页面的path都必须以 / 开发
const getPrefixPath = (path: string) => (path.startsWith('/') ? path : `/${path}`) const getPrefixPath = (path: string) => (path.startsWith('/') ? path : `/${path}`)
const currentPage = jsonData.pages[route.path]
const state: IState = reactive({ const state: IState = reactive({
jsonData, jsonData,
currentPage: jsonData.pages[route.path] currentPage,
currentBlock: currentPage?.blocks?.find((item) => item.focus) ?? ({} as VisualEditorBlockData)
}) })
const paths = Object.keys(jsonData.pages) const paths = Object.keys(jsonData.pages)
@ -118,6 +124,11 @@ export const initVisualData = (): VisualData => {
} }
} }
// 设置当前被操作的组件
const setCurrentBlock = (block: VisualEditorBlockData) => {
state.currentBlock = block
}
// 更新pages下面的blocks // 更新pages下面的blocks
const updatePageBlock = (path = '', blocks: VisualEditorBlockData[] = []) => { const updatePageBlock = (path = '', blocks: VisualEditorBlockData[] = []) => {
state.jsonData.pages[path].blocks = blocks state.jsonData.pages[path].blocks = blocks
@ -131,8 +142,10 @@ export const initVisualData = (): VisualData => {
visualConfig, visualConfig,
jsonData: readonly(state.jsonData), // 保护JSONData避免直接修改 jsonData: readonly(state.jsonData), // 保护JSONData避免直接修改
currentPage: computed(() => state.currentPage), currentPage: computed(() => state.currentPage),
currentBlock: computed(() => state.currentBlock),
overrideProject, overrideProject,
setCurrentPage, setCurrentPage,
setCurrentBlock,
updatePage, updatePage,
incrementPage, incrementPage,
deletePage, deletePage,

@ -13,68 +13,43 @@
</el-aside> </el-aside>
<el-main> <el-main>
<!-- 中间编辑区域start --> <!-- 中间编辑区域start -->
<simulator> <Simulator>
<simulator-editor @on-selected="onSelected" /> <simulator-editor />
</simulator> </Simulator>
<!-- 中间编辑区域end --> <!-- 中间编辑区域end -->
<!-- 右侧属性面板start --> <!-- 右侧属性面板start -->
<right-attribute-panel v-model:block="currentBlock" /> <right-attribute-panel />
<!-- 右侧属性面板end --> <!-- 右侧属性面板end -->
</el-main> </el-main>
</el-container> </el-container>
</el-container> </el-container>
</template> </template>
<script lang="ts"> <script setup lang="ts">
import { defineComponent, reactive, toRefs } from 'vue'
import Header from './components/header/index.vue' import Header from './components/header/index.vue'
import LeftAside from './components/left-aside/index.vue' import LeftAside from './components/left-aside/index.vue'
import RightAttributePanel from './components/right-attribute-panel' import RightAttributePanel from './components/right-attribute-panel'
import SimulatorEditor from './components/simulator-editor/simulator-editor.vue' import SimulatorEditor from './components/simulator-editor/simulator-editor.vue'
import Simulator from './components/common/simulator.vue' import Simulator from './components/common/simulator.vue'
import { VisualEditorComponent } from '@/visual-editor/visual-editor.utils'
interface IState {
currentBlock: VisualEditorComponent
}
export default defineComponent({
name: 'Layout',
components: { Header, LeftAside, RightAttributePanel, SimulatorEditor, Simulator },
setup() {
const state: IState = reactive({
currentBlock: {} as VisualEditorComponent
})
//
const onSelected = (comp) => {
state.currentBlock = comp
console.log('currentBlock:', state.currentBlock)
}
return {
...toRefs(state),
onSelected
}
}
})
</script> </script>
<style lang="scss"> <style lang="scss">
.el-header, .el-header,
.el-footer { .el-footer {
position: relative; position: relative;
background-color: white;
z-index: 99; z-index: 99;
background-color: white;
} }
.el-aside { .el-aside {
background-color: white; background-color: white;
} }
.layout-container { .layout-container {
height: calc(100vh - 80px); height: calc(100vh - 80px);
} }
.el-main { .el-main {
position: relative; position: relative;
padding: 12px; padding: 12px;

@ -28,7 +28,7 @@ module.exports = {
'font-family-no-missing-generic-family-keyword': null, 'font-family-no-missing-generic-family-keyword': null,
'declaration-colon-space-after': 'always-single-line', 'declaration-colon-space-after': 'always-single-line',
'declaration-colon-space-before': 'never', 'declaration-colon-space-before': 'never',
'declaration-block-trailing-semicolon': 'always', 'declaration-block-trailing-semicolon': ['always', { ignore: ['single-declaration'] }],
'rule-empty-line-before': [ 'rule-empty-line-before': [
'always', 'always',
{ {

@ -420,15 +420,15 @@
resolved "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f" resolved "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f"
integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA== integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==
"@eslint/eslintrc@^0.4.1": "@eslint/eslintrc@^0.4.2":
version "0.4.1" version "0.4.2"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"
integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==
dependencies: dependencies:
ajv "^6.12.4" ajv "^6.12.4"
debug "^4.1.1" debug "^4.1.1"
espree "^7.3.0" espree "^7.3.0"
globals "^12.1.0" globals "^13.9.0"
ignore "^4.0.6" ignore "^4.0.6"
import-fresh "^3.2.1" import-fresh "^3.2.1"
js-yaml "^3.13.1" js-yaml "^3.13.1"
@ -652,11 +652,16 @@
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256"
integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==
"@types/node@*", "@types/node@^15.6.1": "@types/node@*":
version "15.6.1" version "15.6.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08" resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08"
integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA== integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==
"@types/node@^15.12.1":
version "15.12.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.1.tgz#9b60797dee1895383a725f828a869c86c6caa5c2"
integrity sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw==
"@types/normalize-package-data@^2.4.0": "@types/normalize-package-data@^2.4.0":
version "2.4.0" version "2.4.0"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
@ -986,18 +991,18 @@
dependencies: dependencies:
vue-demi "*" vue-demi "*"
"@windicss/plugin-utils@0.16.7": "@windicss/plugin-utils@1.0.1":
version "0.16.7" version "1.0.1"
resolved "https://registry.yarnpkg.com/@windicss/plugin-utils/-/plugin-utils-0.16.7.tgz#54cd31841515e849f116a6d89e625da368f7de23" resolved "https://registry.yarnpkg.com/@windicss/plugin-utils/-/plugin-utils-1.0.1.tgz#f6281c91a37be5ea48eb4573cb511ccb82cce16a"
integrity sha512-mxgTj/MkemN8JlyfaS20OAJ0BqTUoUlDT9wD/m5U+nUa5SN/r0kPlg1IW9SbmRTrYjNXWEENf9F0Fjb/X4zn6g== integrity sha512-EHsGC9LGHC/3rWNiOHzkgkexwgmxfHsqvxBoh0hLJv1MPPhEsKv8dQbt34pVZgRsS/rAjiVe4bRRM5NLTy8cWA==
dependencies: dependencies:
"@antfu/utils" "^0.1.6" "@antfu/utils" "^0.1.6"
debug "^4.3.2" debug "^4.3.2"
fast-glob "^3.2.5" fast-glob "^3.2.5"
jiti "^1.9.2" jiti "^1.10.1"
magic-string "^0.25.7" magic-string "^0.25.7"
micromatch "^4.0.4" micromatch "^4.0.4"
windicss "^3.0.12" windicss "^3.1.0"
JSONStream@^1.0.4: JSONStream@^1.0.4:
version "1.3.5" version "1.3.5"
@ -2107,10 +2112,10 @@ electron-to-chromium@^1.3.723:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.742.tgz#7223215acbbd3a5284962ebcb6df85d88b95f200" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.742.tgz#7223215acbbd3a5284962ebcb6df85d88b95f200"
integrity sha512-ihL14knI9FikJmH2XUIDdZFWJxvr14rPSdOhJ7PpS27xbz8qmaRwCwyg/bmFwjWKmWK9QyamiCZVCvXm5CH//Q== integrity sha512-ihL14knI9FikJmH2XUIDdZFWJxvr14rPSdOhJ7PpS27xbz8qmaRwCwyg/bmFwjWKmWK9QyamiCZVCvXm5CH//Q==
element-plus@^1.0.2-beta.45: element-plus@^1.0.2-beta.46:
version "1.0.2-beta.45" version "1.0.2-beta.46"
resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-1.0.2-beta.45.tgz#d7d84d284ead4f9de5aa7289b9a2af4b7f109a1e" resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-1.0.2-beta.46.tgz#2423dcc56ce4285d7f2365ebd5622b8b3c7d053b"
integrity sha512-F5U+fx3Lg7fvUPVSxrDQ02HKQbD9Az0fd7SYoqUOZhTuC9PPYlLezs7Pzpme0893cki18Dh7BS1mBcWcUg9ZWQ== integrity sha512-GevU3xNiIp+p9ZGnGRtFaJPnofsMXKwqV+cTXC266vUWw08Hbt1ronTsss/eJJ1OIHLoaFq4febv1MMTBSSjlQ==
dependencies: dependencies:
"@popperjs/core" "^2.4.4" "@popperjs/core" "^2.4.4"
"@types/lodash" "^4.14.161" "@types/lodash" "^4.14.161"
@ -2327,13 +2332,13 @@ eslint-visitor-keys@^2.0.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
eslint@^7.27.0: eslint@^7.28.0:
version "7.27.0" version "7.28.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.27.0.tgz#665a1506d8f95655c9274d84bd78f7166b07e9c7" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820"
integrity sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA== integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==
dependencies: dependencies:
"@babel/code-frame" "7.12.11" "@babel/code-frame" "7.12.11"
"@eslint/eslintrc" "^0.4.1" "@eslint/eslintrc" "^0.4.2"
ajv "^6.10.0" ajv "^6.10.0"
chalk "^4.0.0" chalk "^4.0.0"
cross-spawn "^7.0.2" cross-spawn "^7.0.2"
@ -2350,7 +2355,7 @@ eslint@^7.27.0:
fast-deep-equal "^3.1.3" fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1" file-entry-cache "^6.0.1"
functional-red-black-tree "^1.0.1" functional-red-black-tree "^1.0.1"
glob-parent "^5.0.0" glob-parent "^5.1.2"
globals "^13.6.0" globals "^13.6.0"
ignore "^4.0.6" ignore "^4.0.6"
import-fresh "^3.0.0" import-fresh "^3.0.0"
@ -2821,7 +2826,7 @@ git-raw-commits@^2.0.0:
split2 "^3.0.0" split2 "^3.0.0"
through2 "^4.0.0" through2 "^4.0.0"
glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.0:
version "5.1.2" version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@ -2900,14 +2905,7 @@ globals@^11.1.0:
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
globals@^12.1.0: globals@^13.6.0, globals@^13.9.0:
version "12.4.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
dependencies:
type-fest "^0.8.1"
globals@^13.6.0:
version "13.9.0" version "13.9.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb"
integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==
@ -3520,7 +3518,7 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
jiti@^1.9.2: jiti@^1.10.1:
version "1.10.1" version "1.10.1"
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.10.1.tgz#bc2a175b9435274dc8659d3d9a121a91c6b3a1af" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.10.1.tgz#bc2a175b9435274dc8659d3d9a121a91c6b3a1af"
integrity sha512-qux9juDtAC8HlZxAk/fku73ak4TWNLigRFTNzFShE/kw4bXVFsVu538vLXAxvNyPszXgpX4YxkXfwTYEi+zf5A== integrity sha512-qux9juDtAC8HlZxAk/fku73ak4TWNLigRFTNzFShE/kw4bXVFsVu538vLXAxvNyPszXgpX4YxkXfwTYEi+zf5A==
@ -4749,10 +4747,10 @@ prettier@^1.16.4, prettier@^1.18.2:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
prettier@^2.3.0: prettier@^2.3.1:
version "2.3.0" version "2.3.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6"
integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==
pretty-quick@^3.1.0: pretty-quick@^3.1.0:
version "3.1.0" version "3.1.0"
@ -5250,10 +5248,10 @@ safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sass@1.34.0: sass@1.34.1:
version "1.34.0" version "1.34.1"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.34.0.tgz#e46d5932d8b0ecc4feb846d861f26a578f7f7172" resolved "https://registry.yarnpkg.com/sass/-/sass-1.34.1.tgz#30f45c606c483d47b634f1e7371e13ff773c96ef"
integrity sha512-rHEN0BscqjUYuomUEaqq3BMgsXqQfkcMVR7UhscsAVub0/spUrZGBMxQXFS2kfiDsPLZw5yuU9iJEFNC2x38Qw== integrity sha512-scLA7EIZM+MmYlej6sdVr0HRbZX5caX5ofDT9asWnUJj21oqgsC+1LuNfm0eg+vM0fCTZHhwImTiCU0sx9h9CQ==
dependencies: dependencies:
chokidar ">=3.0.0 <4.0.0" chokidar ">=3.0.0 <4.0.0"
@ -6197,10 +6195,10 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0" spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0" spdx-expression-parse "^3.0.0"
vant@^3.0.17: vant@^3.0.18:
version "3.0.17" version "3.0.18"
resolved "https://registry.yarnpkg.com/vant/-/vant-3.0.17.tgz#c8466a1fe24966dd67aff4fbff7ecdd43129e7bc" resolved "https://registry.yarnpkg.com/vant/-/vant-3.0.18.tgz#5fbce67b22d86455a9dffb9dc66af8e43170d818"
integrity sha512-KhNhQhej2sXu1Juu2Nu/Kvetx9k8SCTIfVJD9RC4ZLBCyHi8rOTpMk8N/6unPShC6ZEPNbPa/F4x2d8zvve05A== integrity sha512-4DsUaCx1XH+NAQGQ2VCm1WsP4O0VhUoh7CDKTXLZuYwwyXNu6+Zv2HrdQzDsnimETTtd1Iff6J3svvrPS86d/A==
dependencies: dependencies:
"@vant/icons" "^1.6.0" "@vant/icons" "^1.6.0"
"@vant/lazyload" "^1.2.0" "@vant/lazyload" "^1.2.0"
@ -6306,20 +6304,20 @@ vite-plugin-style-import@^0.10.1:
es-module-lexer "^0.4.1" es-module-lexer "^0.4.1"
magic-string "^0.25.7" magic-string "^0.25.7"
vite-plugin-windicss@^0.16.7: vite-plugin-windicss@^1.0.1:
version "0.16.7" version "1.0.1"
resolved "https://registry.yarnpkg.com/vite-plugin-windicss/-/vite-plugin-windicss-0.16.7.tgz#5e6b849a607139ce769f7a757cc3b56b9d5349df" resolved "https://registry.yarnpkg.com/vite-plugin-windicss/-/vite-plugin-windicss-1.0.1.tgz#6e455228b6c1cb7ad52ed8fb9408b39888d572c0"
integrity sha512-fNBLO2EBdQsJNU3IyehSmqPdrHc6Ve+hPYDaf5SrW8nGd9Wbd8ZVh6cX/1blRcjMw0qOjgcx7GM8pRWBjhzt3Q== integrity sha512-+6iFKUC00G9xkR967xqbbAquaWAmgYT1rlBP7Bp6XCd9ire3b7tJTETtwSPAPAIp38OA/Xbp1MSaHhbl2LRxJg==
dependencies: dependencies:
"@windicss/plugin-utils" "0.16.7" "@windicss/plugin-utils" "1.0.1"
chalk "^4.1.1" chalk "^4.1.1"
debug "^4.3.2" debug "^4.3.2"
windicss "^3.0.12" windicss "^3.1.0"
vite@2.3.5: vite@2.3.6:
version "2.3.5" version "2.3.6"
resolved "https://registry.yarnpkg.com/vite/-/vite-2.3.5.tgz#0f5e750317e6f00e5343dd8272f64c2261f026b3" resolved "https://registry.yarnpkg.com/vite/-/vite-2.3.6.tgz#1f7cfde88a51a802d69000c7bac85d481c2e871c"
integrity sha512-Jh3uySLlofx+t+uqznnzJFTNgeqYQLhR6xMx61VYN5KTlVirJXBPkFW2+aigHN6d1mOo6rM7DWnU6gjnudVozw== integrity sha512-fsEpNKDHgh3Sn66JH06ZnUBnIgUVUtw6ucDhlOj1CEqxIkymU25yv1/kWDPlIjyYHnalr0cN6V+zzUJ+fmWHYw==
dependencies: dependencies:
esbuild "^0.12.5" esbuild "^0.12.5"
postcss "^8.2.10" postcss "^8.2.10"
@ -6570,10 +6568,10 @@ widest-line@^2.0.0:
dependencies: dependencies:
string-width "^2.1.1" string-width "^2.1.1"
windicss@^3.0.12: windicss@^3.1.0, windicss@^3.1.1:
version "3.0.12" version "3.1.1"
resolved "https://registry.yarnpkg.com/windicss/-/windicss-3.0.12.tgz#4354aaa48faaac6fd02f3119a62587da2c46b018" resolved "https://registry.yarnpkg.com/windicss/-/windicss-3.1.1.tgz#f879661df4f3db92cc45c6214779f6c5efa4f95c"
integrity sha512-pDxtFLN0xmL7bnGtnEfu9z7B5279UM2EP8wWlPH+FYb5gjHyONxRtyWtR5QIn1FRx6h1UXpm+I19GgTx5Y4TyA== integrity sha512-vLtydYOqqLwb3Jg02QYqCnna1jONLt6GuDyAtRokQY81uA8BiOyN2y3ED9QGX28CIL5Zi7bpnkBL1f1g4CHuXQ==
with@^7.0.0: with@^7.0.0:
version "7.0.2" version "7.0.2"

Loading…
Cancel
Save