<template>
|
<basicContainer >
|
<avue-crud
|
:option="option"
|
:table-loading="pageF.loading"
|
:data="tableData"
|
:page="page"
|
:permission="permissionList"
|
:before-open="beforeOpen"
|
v-model="form"
|
ref="crudRef"
|
@row-update="rowUpdate"
|
@row-save="rowSave"
|
@row-del="rowDel"
|
@search-change="searchChange"
|
@search-reset="searchReset"
|
@refresh-change="refreshChange"
|
@selection-change="selectionChange"
|
@current-change="currentChange"
|
@size-change="sizeChange"
|
@on-load="onLoad"
|
>
|
<template #menu-left>
|
<el-button
|
type="success"
|
icon="Edit"
|
:disabled="pageF.single"
|
v-hasPermi="['system:type:edit']"
|
@click="handleUpdate">修改
|
</el-button>
|
<el-button
|
type="danger"
|
icon="Delete"
|
:disabled="pageF.multiple"
|
@click="handleDelete"
|
v-hasPermi="['system:type:remove']"
|
>删除
|
</el-button>
|
<el-button
|
type="warning"
|
plain
|
icon="Download"
|
@click="handleExport"
|
v-hasPermi="['system:type:export']"
|
>导出
|
</el-button>
|
<el-button
|
type="danger"
|
plain
|
icon="Refresh"
|
@click="handleRefreshCache"
|
v-hasPermi="['system:dict:remove']"
|
>刷新缓存</el-button>
|
</template>
|
<template #dictType="scope">
|
<router-link :to="'/system/dict-data/index/' + scope.row.dictId+'?dictType='+scope.row.dictType" class="link-type">
|
<span>{{ scope.row.dictType }}</span>
|
</router-link>
|
</template>
|
</avue-crud>
|
</basicContainer>
|
</template>
|
|
<script setup name="type" lang="ts">
|
import {TypeI,addType, delType, exportType, getType, listType, updateType,refreshCache} from "@/api/system/dict/type";
|
import useCurrentInstance from "@/utils/useCurrentInstance";
|
import {computed,reactive, ref, toRefs} from "vue";
|
import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
|
import {usePagePlus} from "@/hooks/usePagePlus";
|
import {hasPermission} from "@/utils/permissionUtils";
|
|
|
const { proxy } = useCurrentInstance();
|
const crudRef = ref();
|
|
const permissionList = computed(()=>{
|
return {
|
addBtn: hasPermission(["system:type:add"]),
|
delBtn: hasPermission(["system:type:remove"]),
|
editBtn: hasPermission(["system:type:edit"]),
|
viewBtn: hasPermission(["system:type:query"]),
|
}
|
})
|
|
const data = reactive({
|
form:<TypeI>{},
|
queryParams:<TypeI&PageQueryInterface>{},
|
page: <PagesInterface>{
|
pageSize: 10,
|
total: 0,
|
currentPage: 1,
|
},
|
selectionList:[],
|
})
|
const {queryParams,form,page,selectionList} = toRefs(data);
|
|
const option = ref({
|
pageKey: 'dict',
|
rowKey: 'dictId',
|
column: {
|
dictId: {
|
label: '字典主键',addDisplay:false,editDisplay:false,
|
},
|
dictName: {
|
label: '字典名称',search:true,
|
rules:[{required: true, message: "字典名称不能为空", trigger: "blur"}]
|
|
},
|
dictType: {
|
label: '字典类型',search:true,
|
rules:[{required: true, message: "字典类型不能为空", trigger: "blur"}]
|
},
|
status: {
|
label: '状态',search:true,value:'0',
|
type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
|
rules:[{required: true, message: "请选择状态", trigger: "change"}]
|
},
|
createBy: {
|
label: '创建者',addDisplay:false,editDisplay:false,
|
},
|
createTime: {
|
label: '创建时间',addDisplay:false,editDisplay:false,
|
},
|
updateBy: {
|
label: '更新者',hide: true,addDisplay:false,editDisplay:false,
|
},
|
updateTime: {
|
label: '更新时间',hide: true,addDisplay:false,editDisplay:false,
|
},
|
remark: {
|
label: '备注',row:true,span:24,
|
type: 'textarea', minRows: 3, maxRows: 5,
|
},
|
}
|
})
|
|
const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
|
searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
|
form:form,
|
option:option,
|
queryParams:queryParams,
|
idKey:'dictId',
|
page:page.value,
|
getListApi:listType,
|
getDetailApi:getType,
|
exportApi:exportType,
|
deleteApi:delType,
|
addApi:addType,
|
updateApi:updateType,
|
handleUpdateFunc:()=>{
|
crudRef.value.rowEdit(selectionList.value[0]);
|
},
|
handleSelectionChangeFunc:(selection:any)=>{
|
selectionList.value = selection;
|
}
|
})
|
|
|
|
/** 刷新缓存按钮操作 */
|
function handleRefreshCache() {
|
refreshCache().then(() => {
|
proxy.$modal.msgSuccess("刷新成功");
|
});
|
}
|
|
</script>
|