refactor: 自动导入修改和项目重构优化
Former-commit-id: 100ab2e0092d96b17146163759aef897e5c14fbd
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -292,7 +292,6 @@ onMounted(() => {
|
||||
>
|
||||
资源分配
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
type="primary"
|
||||
link
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user