提交代码

This commit is contained in:
jiangzhe 2024-06-18 15:30:22 +08:00
parent 655de1de86
commit 94f6a0b87d
3 changed files with 86 additions and 89 deletions

View File

@ -76,7 +76,7 @@ export function pageTextbook(query: any): AxiosPromise<any[]> {
export function awaitTexbookList(query: any): AxiosPromise<any[]> {
return request({
url: '/file/textbook/awaitList',
url: '/file/textbook/await/pageList',
method: 'get',
params: query
});
@ -90,6 +90,14 @@ export const addTextbook = (data: any) => {
});
}
export const addResource = (data: any) => {
return request({
url: '/file/resource',
method: 'post',
data: data
});
}
export function pageResource(query: any): AxiosPromise<any[]> {
return request({
url: '/file/resource/pageList',
@ -122,9 +130,16 @@ export const move = (data: any) => {
});
}
export function delTextbook(ossId: string | number | Array<string | number>) {
export function delTextbook(id: string | number | Array<string | number>) {
return request({
url: '/file/textbook/' + ossId,
url: '/file/textbook/' + id,
method: 'delete'
});
}
export function delResource(id: string | number | Array<string | number>) {
return request({
url: '/file/resource/' + id,
method: 'delete'
});
}

View File

@ -61,12 +61,12 @@
</template>
<el-table v-if="showTable" v-loading="loading" :data="ossList" :header-cell-class-name="handleHeaderClass"
@selection-change="handleSelectionChange" @header-click="handleHeaderCLick">
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="课件名" align="center" prop="fileName" width="240" />
<el-table-column label="课件格式" align="center" prop="fileSuffix" />
<el-table-column label="课件大小" align="center" prop="fileSuffix" />
<el-table-column label="创建人" align="center" prop="createByName" />
<el-table-column label="课件大小" align="center" prop="volume" />
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column label="创建时间" align="center" prop="createTime">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
@ -76,11 +76,12 @@
<template #default="scope">
<el-tooltip v-if="isAudit" content="审核通过" placement="top">
<el-button link type="primary" icon="CopyDocument" @click="handleDownload(scope.row)">审核通过</el-button>
<el-button link type="primary" icon="CopyDocument"
@click="handleAuditBtn(scope.row, 1)">审核通过</el-button>
</el-tooltip>
<el-tooltip v-if="isAudit" content="审核不通过" placement="top">
<el-button link type="primary" icon="DocumentCopy"
@click="handleDownload(scope.row)">审核不通过</el-button>
@click="handleAuditBtn(scope.row, 0)">审核不通过</el-button>
</el-tooltip>
<el-tooltip content="预览" placement="top">
@ -180,12 +181,12 @@
</template>
<script setup name="Oss" lang="ts">
import { pageResource, preview, previewTxt, delOss, addTextbook } from '@/api/system/oss';
import { pageResource, awaitTexbookList, preview, previewTxt, delResource, addResource, review, copy, move } from '@/api/system/oss';
import ImagePreview from '@/components/ImagePreview/index.vue';
import FileMd5Upload from '@/components/FileMd5Upload/index.vue';
import { OssForm, OssQuery, OssVO } from '@/api/system/oss/types';
import { listCatalogTextbook } from "@/api/resource/catalogTextbook";
import { CatalogResourceVO } from '@/api/resource/catalogResource/types';
import { listCatalogResource } from "@/api/resource/catalogResource";
import { CatalogTextbookVO } from '@/api/resource/catalogTextbook/types';
//VueOfficeDocx
import VueOfficeDocx from '@vue-office/docx'
@ -239,7 +240,6 @@ const formatOptions = [
}
]
const catalogRadio = ref('1')
const defaultProps = {
children: 'children',
label: 'catalogName',
@ -247,7 +247,7 @@ const defaultProps = {
const isUpload = ref(false)
const currentNode = ref<any>({})
const treeData = ref<CatalogResourceVO[]>([])
const treeData = ref<CatalogTextbookVO[]>([])
const ossList = ref<OssVO[]>([]);
const showTable = ref(true);
@ -276,7 +276,7 @@ const treeMoveDialog = reactive<DialogOption>({
title: '移动'
});
const treeMoveFormRef = ref()
const treeMoveForm = ref<any>({ catalogId: '' });
const treeMoveForm = ref<any>({ id: '', catalogId: '' });
const treeMoveRules = ref({
catalogId: [{ required: true, message: '请选择', trigger: 'blur' }]
})
@ -286,7 +286,7 @@ const treeCopyDialog = reactive<DialogOption>({
title: '复制'
});
const treeCopyFormRef = ref()
const treeCopyForm = ref<any>({ catalogId: '' });
const treeCopyForm = ref<any>({ id: '', catalogId: '' });
const treeCopyRules = ref({
catalogId: [{ required: true, message: '请选择', trigger: 'blur' }]
})
@ -309,6 +309,7 @@ const data = reactive<PageData<OssForm, OssQuery>>({
fileSuffix: '',
createTime: '',
service: '',
catalogId: '',
},
rules: {
file: [{ required: true, message: '文件不能为空', trigger: 'blur' }]
@ -322,18 +323,18 @@ const getList = async () => {
loading.value = true;
const res = await proxy?.getConfigKey('sys.oss.previewListResource');
previewListResource.value = res?.data === undefined ? true : res.data === 'true';
const response = await pageResource(queryParams.value);
let response
if (isAudit.value) {
response = await awaitTexbookList(queryParams.value);
} else {
response = await pageResource(queryParams.value);
}
ossList.value = response.rows;
total.value = response.total;
loading.value = false;
showTable.value = true;
};
function checkFileSuffix(fileSuffix: string | string[]) {
const arr = [".png", ".jpg", ".jpeg"];
const suffixArray = Array.isArray(fileSuffix) ? fileSuffix : [fileSuffix];
return suffixArray.some(suffix => arr.includes(suffix.toLowerCase()));
}
/** 取消按钮 */
function cancel() {
dialog.visible = false;
@ -434,7 +435,7 @@ const handleFileName = (val) => {
const submitForm = async () => {
const ossId = form.value.file
const catalogId = currentNode.value.catalogId
await addTextbook({ ossId, catalogId, fileName: fileName.value, type: catalogRadio.value })
await addResource({ ossId, catalogId, fileName: fileName.value })
dialog.visible = false;
getList();
};
@ -443,6 +444,11 @@ const submitMoveForm = () => {
treeMoveFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
treeMoveDialog.visible = false;
const res = await move(treeMoveForm.value)
if (res.code === 200) {
proxy?.$modal.msgSuccess("移动成功")
await getList()
}
}
});
}
@ -455,6 +461,11 @@ const submitCopyForm = () => {
treeCopyFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
treeCopyDialog.visible = false
const res = await copy(treeCopyForm.value)
if (res.code === 200) {
proxy?.$modal.msgSuccess("复制成功")
await getList()
}
}
});
}
@ -463,37 +474,40 @@ const cancelCopy = () => {
treeCopyDialog.visible = false
}
// 0 1
const handleAuditBtn = async (row: any, status: number) => {
const id = row?.id
const fileName = row?.fileName
const title = status === 1 ? `是否审核通过${fileName}?` : `是否审核不通过${fileName}?`
await proxy?.$modal.confirm(title).finally(() => loading.value = false)
await review({ id, status })
proxy?.$modal.msgSuccess(status === 1 ? "审核通过" : '审核不通过');
await getList();
}
/** 下载按钮操作 */
const handleDownload = (row: OssVO) => {
proxy?.$download.oss(row.ossId);
};
const handleMove = (row: OssVO) => {
const handleMove = async (row: any) => {
treeMoveDialog.visible = true
treeMoveForm.value.id = row.id
treeMoveForm.value.catalogId = currentNode.value.catalogId
}
const handleCopy = (row: OssVO) => {
const handleCopy = (row: any) => {
treeCopyDialog.visible = true
treeCopyForm.value.id = row.id
treeCopyForm.value.catalogId = currentNode.value.catalogId
}
/** 用户状态修改 */
const handlePreviewListResource = async (preview: boolean) => {
let text = preview ? '启用' : '停用';
try {
await proxy?.$modal.confirm('确认要"' + text + '""预览列表图片"配置吗?');
await proxy?.updateConfigByKey('sys.oss.previewListResource', preview);
await getList();
proxy?.$modal.msgSuccess(text + '成功');
} catch {
return;
}
};
/** 删除按钮操作 */
const handleDelete = async (row?: OssVO) => {
const ossIds = row?.ossId || ids.value;
await proxy?.$modal.confirm('是否确认删除OSS对象存储编号为"' + ossIds + '"的数据项?');
const handleDelete = async (row?: any) => {
const delIds = row?.id || ids.value;
await proxy?.$modal.confirm('是否确认删除OSS对象存储编号为"' + delIds + '"的数据项?');
loading.value = true;
await delOss(ossIds).finally(() => (loading.value = false));
await delResource(delIds).finally(() => (loading.value = false));
await getList();
proxy?.$modal.msgSuccess('删除成功');
};
@ -511,6 +525,9 @@ const handleNode = (node: any) => {
isTree.value = true
isUpload.value = true
currentNode.value = node
queryParams.value.catalogId = node.catalogId
getList()
}
const options = ref({
@ -552,10 +569,10 @@ const handlePreview = async (row: OssVO) => {
const treeLoading = ref(false)
/** 查询目录-同步教材列表 */
const getListCatalogTextbook = async () => {
const getlistCatalogResource = async () => {
treeLoading.value = true;
const res = await listCatalogTextbook();
const data = proxy?.handleTree<CatalogResourceVO>(res.data, "catalogId", "parentId");
const res = await listCatalogResource();
const data = proxy?.handleTree<CatalogTextbookVO>(res.data, "catalogId", "parentId");
if (data) {
treeData.value = data;
treeLoading.value = false;
@ -564,7 +581,7 @@ const getListCatalogTextbook = async () => {
}
onMounted(() => {
getListCatalogTextbook()
getlistCatalogResource()
getList();
});
</script>
@ -591,11 +608,6 @@ onMounted(() => {
font-size: 18px;
}
.line {
border: 1px solid #ccc;
margin: 10px 0;
}
.btn-audit {
text-indent: 1em;
}

View File

@ -331,8 +331,8 @@ const getList = async () => {
loading.value = true;
const res = await proxy?.getConfigKey('sys.oss.previewListResource');
previewListResource.value = res?.data === undefined ? true : res.data === 'true';
let response
if(isAudit.value) {
let response
if (isAudit.value) {
response = await awaitTexbookList(queryParams.value);
} else {
response = await pageTextbook(queryParams.value);
@ -379,24 +379,7 @@ function handleSelectionChange(selection: OssVO[]) {
const handleHeaderClass = ({ column }: any): any => {
column.order = column.multiOrder;
};
/** 点击表头进行排序 */
const handleHeaderCLick = (column: any) => {
if (column.sortable !== 'custom') {
return;
}
switch (column.multiOrder) {
case 'descending':
column.multiOrder = 'ascending';
break;
case 'ascending':
column.multiOrder = '';
break;
default:
column.multiOrder = 'descending';
break;
}
handleOrderChange(column.property, column.multiOrder);
};
const handleOrderChange = (prop: string, order: string) => {
let orderByArr = queryParams.value.orderByColumn ? queryParams.value.orderByColumn.split(',') : [];
let isAscArr = queryParams.value.isAsc ? queryParams.value.isAsc.split(',') : [];
@ -420,10 +403,7 @@ const handleOrderChange = (prop: string, order: string) => {
queryParams.value.isAsc = isAscArr.join(',');
getList();
};
/** 任务日志列表查询 */
const handleOssConfig = () => {
router.push('/system/oss-config/index');
};
/** 文件按钮操作 */
const handleFile = () => {
reset();
@ -515,24 +495,12 @@ const handleCopy = (row: any) => {
treeCopyForm.value.catalogId = currentNode.value.catalogId
}
/** 用户状态修改 */
const handlePreviewListResource = async (preview: boolean) => {
let text = preview ? '启用' : '停用';
try {
await proxy?.$modal.confirm('确认要"' + text + '""预览列表图片"配置吗?');
await proxy?.updateConfigByKey('sys.oss.previewListResource', preview);
await getList();
proxy?.$modal.msgSuccess(text + '成功');
} catch {
return;
}
};
/** 删除按钮操作 */
const handleDelete = async (row?: OssVO) => {
const ossIds = row?.ossId || ids.value;
await proxy?.$modal.confirm('是否确认删除OSS对象存储编号为"' + ossIds + '"的数据项?');
const handleDelete = async (row?: any) => {
const delIds = row?.id || ids.value;
await proxy?.$modal.confirm('是否确认删除OSS对象存储编号为"' + delIds + '"的数据项?');
loading.value = true;
await delTextbook(ossIds).finally(() => (loading.value = false));
await delTextbook(delIds).finally(() => (loading.value = false));
await getList();
proxy?.$modal.msgSuccess('删除成功');
};
@ -542,6 +510,8 @@ const isTree = ref(false)
const handleAudit = () => {
isAudit.value = true
isTree.value = false
getList()
}
const handleNode = (node: any) => {