refactor: ♻️ 框架代码同步 (#181)

Co-authored-by: tk <fiyne1a@dingtalk.com>
This commit is contained in:
2024-10-30 14:40:52 +08:00
committed by GitHub
parent f0c3ec109f
commit bac4a39544
54 changed files with 256 additions and 111 deletions

View File

@ -10,15 +10,15 @@
},
"dependencies": {
"@element-plus/icons-vue": "2.3.1",
"ace-builds": "1.36.2",
"aieditor": "1.1.7",
"ace-builds": "1.36.3",
"aieditor": "1.2.3",
"axios": "1.7.7",
"clipboard": "2.0.11",
"core-js": "3.38.1",
"cropperjs": "1.6.2",
"crypto-js": "4.2.0",
"echarts": "5.5.1",
"element-plus": "2.8.5",
"element-plus": "2.8.6",
"json-bigint": "1.0.0",
"json5-to-table": "0.1.8",
"markdown-it": "14.1.0",
@ -40,9 +40,9 @@
"@vitejs/plugin-vue": "5.1.4",
"prettier": "3.3.3",
"prettier-plugin-organize-attributes": "1.0.0",
"sass": "1.79.5",
"terser": "5.34.1",
"vite": "5.4.8"
"sass": "1.80.5",
"terser": "5.36.0",
"vite": "5.4.10"
},
"browserslist": [
"> 1%",

View File

@ -95,5 +95,5 @@ export default {
</script>
<style lang="scss">
@import '@/style/style.scss';
@use '@/style/style.scss' as *;
</style>

View File

@ -0,0 +1,33 @@
<template>
<el-table-column v-bind="$attrs" :prop="prop">
<template #default="{ row }">
<el-tag
v-if="row[prop]"
:type="['success', 'danger', 'info', 'primary', 'warning'][$TOOL.crypto.hashCode(row[prop]) % 5]"
@click="$emit('click', row)">
{{ row[prop] }}
</el-tag>
</template>
</el-table-column>
</template>
<script>
export default {
emits: ['click'],
props: {
prop: { type: String },
},
data() {
return {}
},
mounted() {},
created() {},
components: {},
computed: {},
methods: {},
}
</script>
<style scoped>
.el-tag {
cursor: pointer;
}
</style>

View File

@ -30,7 +30,7 @@
</template>
</el-input>
<el-dialog v-model="dialogVisible" :title="$t('Cron 规则生成器')" :width="800" append-to-body destroy-on-close>
<el-dialog v-model="dialogVisible" :title="$t('Cron 规则生成器')" append-to-body destroy-on-close>
<div class="sc-cron">
<el-tabs>
<el-tab-pane>

View File

@ -10,7 +10,7 @@
<template>
<div class="sc-select-filter">
<div v-if="data.length <= 0" class="sc-select-filter__no-data">{{ $t('暂无数据') }}</div>
<div v-for="item in data" :key="item.key" class="sc-select-filter__item">
<div v-for="item in data" :class="`sc-select-filter__item${item.w100p ? ' sc-select-filter__item-w100p' : ''}`" :key="item.key">
<div :style="{ width: labelWidth + 'rem' }" class="sc-select-filter__item-title">
<label>{{ item.title }}</label>
</div>
@ -196,4 +196,7 @@ export default {
.sc-select-filter__no-data {
color: #999;
}
.sc-select-filter__item-w100p {
width: 100%;
}
</style>

View File

@ -31,6 +31,9 @@
</template>
</span>
<span v-if="suffix" class="sc-statistic-content-suffix">{{ suffix }}</span>
<span class="sc-statistic-icon">
<slot v-if="$slots.icon" name="icon"></slot>
</span>
</div>
<div v-if="description || $slots.default" class="sc-statistic-description">
<slot>
@ -102,4 +105,8 @@ export default {
.dark .sc-statistic-content {
color: #c0c0c0;
}
.sc-statistic-icon {
float: right;
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<sc-dialog v-model="visible" :title="$t('高级筛选')" :width="800" destroy-on-close>
<sc-dialog v-model="visible" :title="$t('高级筛选')" destroy-on-close>
<el-form :model="form" :rules="rules" label-width="10rem" ref="form">
<el-form-item :label="$t('字段名')" prop="field">
<el-input v-model="form.field" :placeholder="$t('字段名')" clearable />

View File

@ -51,6 +51,7 @@ import naColAvatar from '@/components/naColAvatar'
import naColId from '@/components/naColId/index.vue'
import naColIndicator from '@/components/naColIndicator/index.vue'
import naColOperation from '@/components/naColOperation'
import naColTag from '@/components/naColTag/index.vue'
import naColTags from '@/components/naColTags/index.vue'
import naColTime from '@/components/naColTime/index.vue'
import naColUser from '@/components/naColUser/index.vue'
@ -93,6 +94,7 @@ export default {
app.component('naColId', naColId)
app.component('naColIndicator', naColIndicator)
app.component('naColOperation', naColOperation)
app.component('naColTag', naColTag)
app.component('naColTags', naColTags)
app.component('naColTime', naColTime)
app.component('naColUser', naColUser)

View File

@ -466,7 +466,6 @@ export default {
用户列表: 'User list',
: 'Yes',
: 'No',
资源复用: 'Resource reuse',
手机: 'Mobile',
'您已退出登录或无权限访问当前资源,请重新登录后再操作':
'You have logged out or do not have permission to access the current resource, please log in again before operating',

View File

@ -464,7 +464,6 @@ export default {
用户列表: '用户列表',
: '是',
: '否',
资源复用: '资源复用',
手机: '手机',
'您已退出登录或无权限访问当前资源,请重新登录后再操作': '您已退出登录或无权限访问当前资源,请重新登录后再操作',
访问受限: '访问受限',

View File

@ -1,4 +1,4 @@
@import 'element-plus/theme-chalk/src/dark/css-vars.scss';
@use 'element-plus/theme-chalk/src/dark/css-vars.scss' as *;
html.dark {
//变量

View File

@ -293,6 +293,32 @@
.el-dialog__body {
flex: 1;
> * {
height: 100%;
}
.el-tabs,
.el-tab-pane,
.el-form {
height: 100%;
}
.el-tabs__content,
.el-tabs__content > * {
height: 100%;
}
.el-tab-pane {
overflow-y: scroll;
overflow-x: hidden;
scrollbar-width: none;
&::-webkit-scrollbar {
width: 0; /* 隐藏纵向滚动条 */
background: transparent; /* 隐藏背景 */
}
}
}
}

View File

@ -1,5 +1,5 @@
@import 'app.scss';
@import 'fix.scss';
@import 'pages.scss';
@import 'media.scss';
@import 'dark.scss';
@use 'app.scss' as *;
@use 'fix.scss' as *;
@use 'pages.scss' as *;
@use 'media.scss' as *;
@use 'dark.scss' as *;

View File

@ -43,7 +43,7 @@ export default {
}),
)
this.loading = false
this.option.xAxis.data = res[0].data.map((x) => {
this.option.xAxis.data = res[res.length - 1].data.map((x) => {
return x.timestamp
})
let i = 0

View File

@ -1,5 +1,5 @@
<template>
<el-dialog v-model="visible" :title="$t('设置邮箱')" :width="800" @closed="$emit('closed')" destroy-on-close>
<el-dialog v-model="visible" :title="$t('设置邮箱')" @closed="$emit('closed')" destroy-on-close>
<el-form :model="form" :rules="rules" label-position="top" ref="form">
<el-row class="is-justify-space-evenly">
<el-col v-if="$GLOBAL.user.mobile" :lg="10">

View File

@ -1,5 +1,5 @@
<template>
<el-dialog v-model="visible" :title="`${titleMap[mode]}`" :width="800" @closed="$emit('closed')" destroy-on-close>
<el-dialog v-model="visible" :title="`${titleMap[mode]}`" @closed="$emit('closed')" destroy-on-close>
<el-form :model="form" :rules="rules" label-position="top" ref="form">
<el-row class="items-center justify-content-center">
<el-col v-if="mode === 'edit'" :lg="10">

View File

@ -1,5 +1,5 @@
<template>
<el-dialog v-model="visible" :title="$t('修改密码')" :width="800" @closed="$emit('closed')" destroy-on-close>
<el-dialog v-model="visible" :title="$t('修改密码')" @closed="$emit('closed')" destroy-on-close>
<el-form :model="form" :rules="rules" label-width="15rem" ref="form">
<el-form-item :label="$t('旧密码')" prop="oldPassword">
<el-input

View File

@ -59,16 +59,7 @@
</el-header>
<el-main class="nopadding">
<sc-table
:context-menus="[
'id',
'userRegisterConfirm',
'userRegisterDept.name',
'userRegisterRole.name',
'enabled',
'createdTime',
'phoneReuseTimes',
'emailReuseTimes',
]"
:context-menus="['id', 'userRegisterConfirm', 'userRegisterDept.name', 'userRegisterRole.name', 'enabled', 'createdTime']"
:export-api="$API.sys_config.export"
:on-command="this.getStatistics"
:params="query"
@ -93,7 +84,7 @@
</template>
</el-table-column>
</el-table-column>
<el-table-column :label="$t('启用')" align="center" prop="enabled" width="100">
<el-table-column :label="$t('启用')" align="center" prop="enabled" sortable="custom" width="100">
<template #default="{ row }">
<el-switch v-model="row.enabled" @change="changeSwitch($event, row)"></el-switch>
</template>

View File

@ -25,7 +25,6 @@
</el-form-item>
</div>
</el-collapse-item>
<el-collapse-item :title="$t('其他设置')" name="2"></el-collapse-item>
</el-collapse>
<el-form-item :label="$t('启用')" prop="enabled">

View File

@ -1,5 +1,5 @@
<template>
<sc-dialog v-model="visible" :title="`${titleMap[mode]}${form?.id ?? '...'}`" :width="800" @closed="$emit('closed')" destroy-on-close>
<sc-dialog v-model="visible" :title="`${titleMap[mode]}${form?.id ?? '...'}`" @closed="$emit('closed')" destroy-on-close>
<div v-loading="loading">
<el-tabs tab-position="top">
<el-tab-pane :label="$t('基本信息')">

View File

@ -1,5 +1,5 @@
<template>
<sc-dialog v-model="visible" :title="$t('批量修改')" :width="800" @closed="$emit('closed')" destroy-on-close>
<sc-dialog v-model="visible" :title="$t('批量修改')" @closed="$emit('closed')" destroy-on-close>
<div v-loading="loading">
<el-tabs tab-position="top">
<el-tab-pane :label="$t('基本信息')">

View File

@ -1,5 +1,5 @@
<template>
<sc-dialog v-model="visible" :title="`${titleMap[mode]}${form?.id ?? '...'}`" :width="800" @closed="$emit('closed')" destroy-on-close>
<sc-dialog v-model="visible" :title="`${titleMap[mode]}${form?.id ?? '...'}`" @closed="$emit('closed')" destroy-on-close>
<el-form v-loading="loading" :model="form" :rules="rules" label-width="10rem" ref="dialogForm">
<el-form-item :label="$t('字典名称')" prop="name">
<el-input v-model="form.name" :placeholder="$t('字典名称')" clearable></el-input>

View File

@ -7,13 +7,13 @@
destroy-on-close
full-screen>
<el-form
v-loading="loading"
:disabled="mode === 'view' && tabId !== 'log'"
:model="form"
:rules="rules"
label-position="right"
label-width="12rem"
ref="dialogForm">
ref="dialogForm"
style="height: 100%">
<el-tabs v-model="tabId" tab-position="top">
<el-tab-pane :label="$t('基本信息')">
<el-form-item prop="avatar">