refactor: 自动导入修改和项目重构优化

Former-commit-id: 100ab2e0092d96b17146163759aef897e5c14fbd
This commit is contained in:
haoxr
2023-01-13 01:05:45 +08:00
parent 0ae7e0da92
commit 9522875198
36 changed files with 881 additions and 386 deletions

View File

@@ -15,7 +15,7 @@ import {
updateDictItem,
deleteDictItems
} from '@/api/dict';
import { Search, Plus, Edit, Refresh, Delete } from '@element-plus/icons-vue';
import { Search, Plus, Refresh, Delete } from '@element-plus/icons-vue';
import { DictItem, DictItemForm, DictItemQuery } from '@/api/dict/types';
const props = defineProps({

View File

@@ -29,7 +29,7 @@ const handleDictTypeClick = (row: any) => {
<el-col :span="10" :xs="24">
<el-card class="box-card">
<template #header>
<svg-icon icon-class="dict" />
<svg-icon icon-name="dict" />
字典类型
</template>
<dict-type @dictClick="handleDictTypeClick" />
@@ -39,7 +39,7 @@ const handleDictTypeClick = (row: any) => {
<el-col :span="14" :xs="24">
<el-card class="box-card">
<template #header>
<svg-icon icon-class="dict_item" />
<svg-icon icon-name="dict_item" />
<span style="margin: 0 5px">字典数据项</span>
<el-tag type="success" v-if="typeCode" size="small">{{
typeName

View File

@@ -40,7 +40,7 @@
<el-table-column label="菜单名称">
<template #default="scope">
<svg-icon
:icon-class="
:icon-name="
scope.row.type === 'BUTTON' ? 'button' : scope.row.icon
"
/>
@@ -121,6 +121,7 @@
</el-table-column>
</el-table>
</el-card>
<!-- dialog -->
<el-dialog
:title="dialog.title"
@@ -214,27 +215,8 @@
prop="icon"
v-if="formData.type !== 'BUTTON'"
>
<el-popover
ref="popoverRef"
placement="bottom-start"
:width="570"
trigger="click"
>
<template #reference>
<el-input
v-model="formData.icon"
placeholder="点击选择图标"
readonly
@click="iconSelectVisible = true"
>
<template #prefix>
<svg-icon :icon-class="formData.icon" />
</template>
</el-input>
</template>
<icon-select @selected="selected" />
</el-popover>
<!-- 图标选择器 -->
<icon-select v-model="formData.icon" />
</el-form-item>
<el-form-item label="跳转路由" v-if="formData.type == 'CATEGORY'">
@@ -271,8 +253,8 @@
<script setup lang="ts">
import { reactive, ref, onMounted, toRefs } from 'vue';
import { Search, Plus, Edit, Refresh, Delete } from '@element-plus/icons-vue';
import { ElForm, ElMessage, ElMessageBox, ElPopover } from 'element-plus';
import { Search, Plus, Refresh } from '@element-plus/icons-vue';
import { ElForm, ElMessage, ElMessageBox } from 'element-plus';
import { MenuQuery, MenuForm, Menu } from '@/api/menu/types';
// API 依赖
@@ -291,7 +273,6 @@ import IconSelect from '@/components/IconSelect/index.vue';
const emit = defineEmits(['menuClick']);
const queryFormRef = ref(ElForm);
const dataFormRef = ref(ElForm);
const popoverRef = ref(ElPopover);
const state = reactive({
loading: true,
@@ -339,7 +320,6 @@ const {
formData,
rules,
menuOptions,
iconSelectVisible,
cacheData
} = toRefs(state);

View File

@@ -292,7 +292,6 @@ onMounted(() => {
>
资源分配
</el-button>
<el-button
type="primary"
link

View File

@@ -23,7 +23,7 @@ import {
updateUser,
updateUserStatus,
updateUserPassword,
downloadTemplate,
downloadTemplateApi,
exportUser,
importUser
} from '@/api/user';
@@ -353,8 +353,8 @@ function getGenderOptions() {
/**
* 下载导入模板
*/
function handleDownloadTemplate() {
downloadTemplate().then((response: any) => {
function downloadTemplate() {
downloadTemplateApi().then((response: any) => {
const blob = new Blob([response.data], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
});
@@ -520,46 +520,43 @@ onMounted(() => {
<el-card shadow="never">
<template #header>
<el-form-item style="float: left">
<el-button
type="success"
:icon="Plus"
@click="handleAdd"
v-hasPerm="['sys:user:add']"
>新增</el-button
>
<el-button
type="danger"
:icon="Delete"
:disabled="ids.length === 0"
@click="handleDelete"
v-hasPerm="['sys:user:delete']"
>删除</el-button
>
</el-form-item>
<el-form-item style="float: right">
<el-dropdown split-button style="margin-left: 12px">
导入
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
:icon="Download"
@click="handleDownloadTemplate"
>下载模板</el-dropdown-item
>
<el-dropdown-item :icon="Top" @click="showImportDialog"
>导入数据</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
<el-button
:icon="Download"
style="margin-left: 12px"
@click="handleExport"
>导出</el-button
>
</el-form-item>
<div class="flex justify-between">
<div>
<el-button
type="success"
:icon="Plus"
@click="handleAdd"
v-hasPerm="['sys:user:add']"
>新增</el-button
>
<el-button
type="danger"
:icon="Delete"
:disabled="ids.length === 0"
@click="handleDelete"
v-hasPerm="['sys:user:delete']"
>删除</el-button
>
</div>
<div>
<el-dropdown split-button>
导入
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="downloadTemplate">
<i-ep-download />下载模板</el-dropdown-item
>
<el-dropdown-item @click="showImportDialog">
<i-ep-top />导入数据</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
<el-button class="ml-3" @click="handleExport"
><template #icon><i-ep-download /></template>导出</el-button
>
</div>
</div>
</template>
<el-table