fix: 权限问题,文件管理页面,查询时TF问题

1.权限编辑提交时,值不变问题;
2.恢复文件管理页面;
3.查询时T/F后台报错问题;
This commit is contained in:
猿小天
2023-07-12 21:18:49 +08:00
parent 90557ea039
commit dcdc7bbe3b
4 changed files with 26 additions and 152 deletions

View File

@@ -24,12 +24,12 @@ function createService() {
serialize(params) { serialize(params) {
return qs.stringify(params, { return qs.stringify(params, {
indices: false, indices: false,
// encoder: (val: string) => { encoder: (val: string) => {
// if (typeof val === 'boolean') { if (typeof val === 'boolean') {
// return val ? 1 : 0; return val ? 'True' : 'False';
// } }
// return val; return val;
// }, },
}); });
}, },
}, },

View File

@@ -1,152 +1,26 @@
<template> <template>
<fs-page> <fs-page>
<el-row style="margin: 10px"> <fs-crud ref="crudRef" v-bind="crudBinding"> </fs-crud>
<el-col :span="6" :offset="18">
<el-input
class="w-60"
placeholder="请输入名称"
v-model="fileParams.name"
@keyup.enter="getData"
clearable
@blur="getData"
>
<template #append>
<el-button :icon="Search" @click="getData">
</el-button>
</template>
</el-input>
</el-col>
</el-row>
<el-row :gutter="10" style="height: 65vh;margin: 10px">
<el-col :span="3" v-for="(item,index) in fileList" :key="index">
<el-card>
<el-image
style="width: 150px; height: 150px"
:src="formatImgUrl(item.url)"
:zoom-rate="1.2"
:preview-src-list="[formatImgUrl(item.url)]"
:initial-index="4"
fit="fill"
/>
<div>
<el-text>{{ item.name }}</el-text>
</div>
<div>
<el-popover
placement="bottom"
:width="500"
trigger="click"
>
<template #reference>
<el-button type="text">详细</el-button>
</template>
<div>
<el-descriptions
:column="2"
border
>
<el-descriptions-item label="文件名称">{{ item.name }}</el-descriptions-item>
<el-descriptions-item label="创建人">{{ item.creator_name }}</el-descriptions-item>
<el-descriptions-item label="存储引擎">{{ item.engine }}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ item.create_datetime }}</el-descriptions-item>
</el-descriptions>
</div>
</el-popover>
<el-popconfirm title="您确定要删除?" @confirm="onDel(item)">
<template #reference>
<el-button type="text">删除</el-button>
</template>
</el-popconfirm>
</div>
</el-card>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row style="margin-left: 10px">
<el-col :span="12" >
<el-pagination
v-model:current-page="pageConfig.page"
v-model:page-size="pageConfig.limit"
background
:page-sizes="[5, 10, 20, 50]"
layout="total, sizes, prev, pager, next, jumper"
:total="pageConfig.total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</el-col>
</el-row>
</fs-page> </fs-page>
</template> </template>
<script lang="ts" setup name="fileList"> <script lang="ts" setup>
import {DelObj, GetList} from "./api"; import { ref, onMounted } from 'vue';
import {ref, onMounted,reactive} from "vue"; import { useExpose, useCrud } from '@fast-crud/fast-crud';
import {getBaseURL} from "/@/utils/baseUrl"; import { createCrudOptions } from './crud';
import {ElMessage} from "element-plus"; // crud组件的ref
import { Delete, Edit, Search, Share, Upload } from '@element-plus/icons-vue' const crudRef = ref();
const fileParams = reactive({name:''}) // crud 配置的ref
const fileList = ref([]) const crudBinding = ref();
const mimeType = ref([]) // 暴露的方法
const pageConfig = reactive({ const { crudExpose } = useExpose({ crudRef, crudBinding });
page:1, // 你的crud配置
limit:10, const { crudOptions } = createCrudOptions({ crudExpose });
total:0 // 初始化crud配置
}) const { resetCrudOptions } = useCrud({ crudExpose, crudOptions });
const getData = function () {
let params = {
page:pageConfig.page,
limit:pageConfig.limit,
name:fileParams.name
}
GetList(params).then((res: any) => {
const {data,page,limit,total} = res
pageConfig.page = page
pageConfig.limit=limit
pageConfig.total=total
fileList.value = data
})
}
const onDel = function (item: any) {
DelObj(item.id).then((res: any) => {
ElMessage.success("删除成功!");
getData()
})
}
const formatImgUrl = function (src: string) {
return getBaseURL() + src
}
const handleSizeChange = function (val: any) {
pageConfig.limit = val
getData()
}
const handleCurrentChange = function (val: any) {
pageConfig.page = val
getData()
}
// 页面打开后获取列表数据
onMounted(() => { onMounted(() => {
getData() crudExpose.doRefresh();
}) });
</script> </script>
<style scoped>
.demo-tabs > .el-tabs__content {
padding: 32px;
color: #6b778c;
font-size: 32px;
font-weight: 600;
}
.el-tabs--right .el-tabs__content,
.el-tabs--left .el-tabs__content {
height: 100%;
}
.el-tabs__nav-scroll {
border-right: 1px solid #efefef;
}
</style>

View File

@@ -24,7 +24,7 @@ export function AddObj(obj: AddReq) {
}); });
} }
export function UpdateObj(obj: EditReq) { export function UpdateObj(obj: any) {
return request({ return request({
url: apiPrefix + obj.id + '/', url: apiPrefix + obj.id + '/',
method: 'put', method: 'put',

View File

@@ -24,7 +24,7 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp
}; };
const editRequest = async ({ form, row }: EditReq) => { const editRequest = async ({ form, row }: EditReq) => {
return await api.UpdateObj(row); return await api.UpdateObj({ ...form, menu: row.menu });
}; };
const delRequest = async ({ row }: DelReq) => { const delRequest = async ({ row }: DelReq) => {
return await api.DelObj(row.id); return await api.DelObj(row.id);