修改同步教材教务学校
This commit is contained in:
parent
d8c7a20228
commit
ceddefc6f2
|
@ -3,20 +3,27 @@
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<div class="tree-container">
|
<div class="tree-container">
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<!-- <el-button type="" text="plain">全部专题资源</el-button>
|
<el-radio-group v-model="queryParams.type" @change="handleTypeChange">
|
||||||
|
<el-radio-button label="课件" :value="1" />
|
||||||
|
<el-radio-button label="精品课堂" :value="2" />
|
||||||
|
<el-radio-button label="作业" :value="3" />
|
||||||
|
<el-radio-button label="试卷" :value="4" />
|
||||||
|
</el-radio-group>
|
||||||
|
<div class="line"></div>
|
||||||
|
<!-- <el-button type="" text="plain">全部文件</el-button>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<el-badge v-if="auditNum > 0" :value="auditNum" style="margin-left:10px;margin-top: 10px;">
|
<el-badge v-if="auditNum > 0" :value="auditNum" style="margin-left:10px;margin-top: 10px;">
|
||||||
<el-button v-hasPermi="['file:resource:awaitList']" :class="['btn-audit', isAudit && 'active']" type=""
|
<el-button v-hasPermi="['file:textbook:awaitList']" :class="['btn-audit', isAudit && 'active']" type=""
|
||||||
text="plain" @click="handleAudit">待审核</el-button>
|
text="plain" @click="handleAudit">待审核</el-button>
|
||||||
</el-badge>
|
</el-badge>
|
||||||
<el-button v-else v-hasPermi="['file:resource:awaitList']" :class="['btn-audit', isAudit && 'active']" type=""
|
<el-button v-else v-hasPermi="['file:textbook:awaitList']" :class="['btn-audit', isAudit && 'active']" type=""
|
||||||
text="plain" @click="handleAudit">待审核</el-button> -->
|
text="plain" @click="handleAudit">待审核</el-button> -->
|
||||||
|
|
||||||
<div class="tree-container-scroll">
|
<div class="tree-container-scroll">
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<el-tree ref="treeRef" v-loading="treeLoading" :data="treeData" :props="defaultProps" default-expand-all
|
<el-tree ref="treeRef" v-loading="treeLoading" :data="treeData" :props="defaultProps" default-expand-all
|
||||||
@node-click="handleNode" />
|
:expand-on-click-node="false" node-key="catalogId" @node-click="handleNode" />
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -57,11 +64,11 @@
|
||||||
<template #header>
|
<template #header>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col v-if="isUpload" :span="1.5">
|
<el-col v-if="isUpload" :span="1.5">
|
||||||
<el-button v-hasPermi="['file:resource:add']" type="primary" plain icon="Upload"
|
<el-button v-hasPermi="['file:textbook:add']" type="primary" plain icon="Upload"
|
||||||
@click="handleFile">上传文件</el-button>
|
@click="handleFile">上传文件</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button v-hasPermi="['file:resource:remove']" type="danger" plain icon="Delete" :disabled="multiple"
|
<el-button v-hasPermi="['file:textbook:remove']" type="danger" plain icon="Delete" :disabled="multiple"
|
||||||
@click="handleDelete()">
|
@click="handleDelete()">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -92,7 +99,7 @@
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="400">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="400">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
|
||||||
<span v-hasPermi="['file:resource:review']">
|
<span v-hasPermi="['file:textbook:review']">
|
||||||
<el-tooltip v-if="isAudit" content="审核通过" placement="top">
|
<el-tooltip v-if="isAudit" content="审核通过" placement="top">
|
||||||
<el-button link type="primary" icon="CopyDocument"
|
<el-button link type="primary" icon="CopyDocument"
|
||||||
@click="handleAuditBtn(scope.row, 1)">审核通过</el-button>
|
@click="handleAuditBtn(scope.row, 1)">审核通过</el-button>
|
||||||
|
@ -103,21 +110,21 @@
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<el-tooltip v-hasPermi="['file:resource:preview']" content="预览" placement="top">
|
<el-tooltip v-hasPermi="['file:textbook:preview']" content="预览" placement="top">
|
||||||
<el-button link type="primary" icon="View" @click="handlePreview(scope.row)">预览</el-button>
|
<el-button link type="primary" icon="View" @click="handlePreview(scope.row)">预览</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip v-hasPermi="['file:resource:download']" content="下载" placement="top">
|
<el-tooltip v-hasPermi="['file:textbook:download']" content="下载" placement="top">
|
||||||
<el-button link type="primary" icon="Download" @click="handleDownload(scope.row)">下载</el-button>
|
<el-button link type="primary" icon="Download" @click="handleDownload(scope.row)">下载</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
|
||||||
<el-tooltip v-hasPermi="['file:resource:move']" v-if="isTree" content="移动" placement="top">
|
<el-tooltip v-hasPermi="['file:textbook:move']" v-if="isTree" content="移动" placement="top">
|
||||||
<el-button link type="primary" icon="CopyDocument" @click="handleMove(scope.row)">移动</el-button>
|
<el-button link type="primary" icon="CopyDocument" @click="handleMove(scope.row)">移动</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip v-hasPermi="['file:resource:copy']" v-if="isTree" content="复制" placement="top">
|
<el-tooltip v-hasPermi="['file:textbook:copy']" v-if="isTree" content="复制" placement="top">
|
||||||
<el-button link type="primary" icon="DocumentCopy" @click="handleCopy(scope.row)">复制</el-button>
|
<el-button link type="primary" icon="DocumentCopy" @click="handleCopy(scope.row)">复制</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip content="删除" placement="top">
|
<el-tooltip content="删除" placement="top">
|
||||||
<el-button v-hasPermi="['file:resource:remove']" link type="primary" icon="Delete"
|
<el-button v-hasPermi="['file:textbook:remove']" link type="primary" icon="Delete"
|
||||||
@click="handleDelete(scope.row)">删除</el-button>
|
@click="handleDelete(scope.row)">删除</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
@ -181,9 +188,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Oss" lang="ts">
|
<script setup name="Oss" lang="ts">
|
||||||
import { pageResource, awaitResourceList, awaitResourceCount, previewResource, delResource, addResource, reviewResource, copyResource, moveResource } from '@/api/system/oss';
|
import { pageTextbook, awaitTexbookList, previewTextbook, awaitTextbookCount, delTextbook, addTextbook, reviewTextbook, copyTextbook, moveTextbook } from '@/api/system/oss';
|
||||||
import FileMd5Upload from '@/components/FileMd5Upload/index.vue';
|
import FileMd5Upload from '@/components/FileMd5Upload/index.vue';
|
||||||
import { listCatalogResource } from "@/api/resource/catalogResource";
|
import { listCatalogTextbook } from "@/api/resource/catalogTextbook";
|
||||||
import { CatalogTextbookVO } from '@/api/resource/catalogTextbook/types';
|
import { CatalogTextbookVO } from '@/api/resource/catalogTextbook/types';
|
||||||
import { Base64 } from 'js-base64'
|
import { Base64 } from 'js-base64'
|
||||||
import { useVolume } from "@/composables/useVolume";
|
import { useVolume } from "@/composables/useVolume";
|
||||||
|
@ -289,6 +296,7 @@ const data = reactive<PageData<any, any>>({
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
type: 1,
|
||||||
ossId: '',
|
ossId: '',
|
||||||
fileName: '',
|
fileName: '',
|
||||||
originalName: '',
|
originalName: '',
|
||||||
|
@ -296,6 +304,7 @@ const data = reactive<PageData<any, any>>({
|
||||||
createTime: '',
|
createTime: '',
|
||||||
service: '',
|
service: '',
|
||||||
catalogId: '',
|
catalogId: '',
|
||||||
|
ossType: 2
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
file: [{ required: true, message: '文件不能为空', trigger: 'blur' }]
|
file: [{ required: true, message: '文件不能为空', trigger: 'blur' }]
|
||||||
|
@ -304,14 +313,21 @@ const data = reactive<PageData<any, any>>({
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
const handleTypeChange = () => {
|
||||||
|
getList()
|
||||||
|
if (auth.hasPermi('file:textbook:review')) {
|
||||||
|
awaitTextbookCountData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** 查询OSS对象存储列表 */
|
/** 查询OSS对象存储列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
let response
|
let response
|
||||||
if (isAudit.value) {
|
if (isAudit.value) {
|
||||||
response = await awaitResourceList(queryParams.value);
|
response = await awaitTexbookList(queryParams.value);
|
||||||
} else {
|
} else {
|
||||||
response = await pageResource(queryParams.value);
|
response = await pageTextbook(queryParams.value);
|
||||||
}
|
}
|
||||||
ossList.value = response.rows;
|
ossList.value = response.rows;
|
||||||
total.value = response.total;
|
total.value = response.total;
|
||||||
|
@ -333,8 +349,8 @@ function reset() {
|
||||||
function handleQuery() {
|
function handleQuery() {
|
||||||
queryParams.value.pageNum = 1;
|
queryParams.value.pageNum = 1;
|
||||||
getList();
|
getList();
|
||||||
if (auth.hasPermi('file:resource:review')) {
|
if (auth.hasPermi('file:textbook:review')) {
|
||||||
awaitResourceCountData()
|
awaitTextbookCountData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
|
@ -354,33 +370,6 @@ const handleHeaderClass = ({ column }: any): any => {
|
||||||
column.order = column.multiOrder;
|
column.order = 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(',') : [];
|
|
||||||
let propIndex = orderByArr.indexOf(prop);
|
|
||||||
if (propIndex !== -1) {
|
|
||||||
if (order) {
|
|
||||||
//排序里已存在 只修改排序
|
|
||||||
isAscArr[propIndex] = order;
|
|
||||||
} else {
|
|
||||||
//如果order为null 则删除排序字段和属性
|
|
||||||
isAscArr.splice(propIndex, 1); //删除排序
|
|
||||||
orderByArr.splice(propIndex, 1); //删除属性
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//排序里不存在则新增排序
|
|
||||||
orderByArr.push(prop);
|
|
||||||
isAscArr.push(order);
|
|
||||||
}
|
|
||||||
//合并排序
|
|
||||||
queryParams.value.orderByColumn = orderByArr.join(',');
|
|
||||||
queryParams.value.isAsc = isAscArr.join(',');
|
|
||||||
getList();
|
|
||||||
if (auth.hasPermi('file:resource:review')) {
|
|
||||||
awaitResourceCountData()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/** 文件按钮操作 */
|
/** 文件按钮操作 */
|
||||||
const handleFile = () => {
|
const handleFile = () => {
|
||||||
reset();
|
reset();
|
||||||
|
@ -388,6 +377,13 @@ const handleFile = () => {
|
||||||
dialog.visible = true;
|
dialog.visible = true;
|
||||||
dialog.title = '上传文件';
|
dialog.title = '上传文件';
|
||||||
};
|
};
|
||||||
|
/** 图片按钮操作 */
|
||||||
|
const handleImage = () => {
|
||||||
|
reset();
|
||||||
|
type.value = 1;
|
||||||
|
dialog.visible = true;
|
||||||
|
dialog.title = '上传图片';
|
||||||
|
};
|
||||||
|
|
||||||
const fileName = ref('')
|
const fileName = ref('')
|
||||||
const handleFileName = (val) => {
|
const handleFileName = (val) => {
|
||||||
|
@ -398,11 +394,11 @@ const handleFileName = (val) => {
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
const ossId = form.value.file
|
const ossId = form.value.file
|
||||||
const catalogId = currentNode.value.catalogId
|
const catalogId = currentNode.value.catalogId
|
||||||
await addResource({ ossId, catalogId, fileName: fileName.value })
|
await addTextbook({ ossId, catalogId, fileName: fileName.value, type: queryParams.value.type, ossType: 2 })
|
||||||
dialog.visible = false;
|
dialog.visible = false;
|
||||||
getList();
|
getList();
|
||||||
if (auth.hasPermi('file:resource:review')) {
|
if (auth.hasPermi('file:textbook:review')) {
|
||||||
awaitResourceCountData()
|
awaitTextbookCountData()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -410,7 +406,7 @@ const submitMoveForm = () => {
|
||||||
treeMoveFormRef.value?.validate(async (valid: boolean) => {
|
treeMoveFormRef.value?.validate(async (valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
treeMoveDialog.visible = false;
|
treeMoveDialog.visible = false;
|
||||||
const res = await moveResource(treeMoveForm.value)
|
const res = await moveTextbook(treeMoveForm.value)
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
proxy?.$modal.msgSuccess("移动成功")
|
proxy?.$modal.msgSuccess("移动成功")
|
||||||
await getList()
|
await getList()
|
||||||
|
@ -427,7 +423,7 @@ const submitCopyForm = () => {
|
||||||
treeCopyFormRef.value?.validate(async (valid: boolean) => {
|
treeCopyFormRef.value?.validate(async (valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
treeCopyDialog.visible = false
|
treeCopyDialog.visible = false
|
||||||
const res = await copyResource(treeCopyForm.value)
|
const res = await copyTextbook(treeCopyForm.value)
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
proxy?.$modal.msgSuccess("复制成功")
|
proxy?.$modal.msgSuccess("复制成功")
|
||||||
await getList()
|
await getList()
|
||||||
|
@ -446,14 +442,14 @@ const handleAuditBtn = async (row: any, status: number) => {
|
||||||
const fileName = row?.fileName
|
const fileName = row?.fileName
|
||||||
const title = status === 1 ? `是否审核通过${fileName}?` : `是否审核不通过${fileName}?`
|
const title = status === 1 ? `是否审核通过${fileName}?` : `是否审核不通过${fileName}?`
|
||||||
await proxy?.$modal.confirm(title).finally(() => loading.value = false)
|
await proxy?.$modal.confirm(title).finally(() => loading.value = false)
|
||||||
await reviewResource({ id, status })
|
await reviewTextbook({ id, status })
|
||||||
proxy?.$modal.msgSuccess(status === 1 ? "审核通过" : '审核不通过');
|
proxy?.$modal.msgSuccess(status === 1 ? "审核通过" : '审核不通过');
|
||||||
await getList();
|
await getList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 下载按钮操作 */
|
/** 下载按钮操作 */
|
||||||
const handleDownload = (row: any) => {
|
const handleDownload = (row: any) => {
|
||||||
proxy?.download(`/file/resource/download/${row.id}`, {}, `${row.fileName}`);
|
proxy?.download(`/file/textbook/download/${row.id}`, {}, `${row.fileName}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMove = async (row: any) => {
|
const handleMove = async (row: any) => {
|
||||||
|
@ -473,7 +469,7 @@ const handleDelete = async (row?: any) => {
|
||||||
const delIds = row?.id || ids.value;
|
const delIds = row?.id || ids.value;
|
||||||
await proxy?.$modal.confirm('是否确认删除OSS对象存储编号为"' + delIds + '"的数据项?');
|
await proxy?.$modal.confirm('是否确认删除OSS对象存储编号为"' + delIds + '"的数据项?');
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
await delResource(delIds).finally(() => (loading.value = false));
|
await delTextbook(delIds).finally(() => (loading.value = false));
|
||||||
await getList();
|
await getList();
|
||||||
proxy?.$modal.msgSuccess('删除成功');
|
proxy?.$modal.msgSuccess('删除成功');
|
||||||
};
|
};
|
||||||
|
@ -485,8 +481,8 @@ const handleAudit = () => {
|
||||||
isTree.value = false
|
isTree.value = false
|
||||||
|
|
||||||
getList()
|
getList()
|
||||||
if (auth.hasPermi('file:resource:review')) {
|
if (auth.hasPermi('file:textbook:review')) {
|
||||||
awaitResourceCountData()
|
awaitTextbookCountData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,22 +495,22 @@ const handleNode = (node: any) => {
|
||||||
|
|
||||||
queryParams.value.catalogId = node.catalogId
|
queryParams.value.catalogId = node.catalogId
|
||||||
getList()
|
getList()
|
||||||
if (auth.hasPermi('file:resource:review')) {
|
if (auth.hasPermi('file:textbook:review')) {
|
||||||
awaitResourceCountData()
|
awaitTextbookCountData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const preViewUrl = import.meta.env.VITE_APP_PREVIEW
|
const preViewUrl = import.meta.env.VITE_APP_PREVIEW
|
||||||
const handlePreview = async (row: any) => {
|
const handlePreview = async (row: any) => {
|
||||||
const fileRes = await previewResource(row.id)
|
const fileRes = await previewTextbook(row.id)
|
||||||
window.open(`${preViewUrl}?url=${encodeURIComponent(Base64.encode(fileRes.data))}`, '__blank')
|
window.open(`${preViewUrl}?url=${encodeURIComponent(Base64.encode(fileRes.data))}`, '__blank')
|
||||||
}
|
}
|
||||||
|
|
||||||
const treeLoading = ref(false)
|
const treeLoading = ref(false)
|
||||||
/** 查询目录-同步教材列表 */
|
/** 查询目录-同步教材列表 */
|
||||||
const getlistCatalogResource = async () => {
|
const getListCatalogTextbook = async () => {
|
||||||
treeLoading.value = true;
|
treeLoading.value = true;
|
||||||
const res = await listCatalogResource();
|
const res = await listCatalogTextbook();
|
||||||
const data = proxy?.handleTree<CatalogTextbookVO>(res.data, "catalogId", "parentId");
|
const data = proxy?.handleTree<CatalogTextbookVO>(res.data, "catalogId", "parentId");
|
||||||
if (data) {
|
if (data) {
|
||||||
treeData.value = data;
|
treeData.value = data;
|
||||||
|
@ -522,21 +518,18 @@ const getlistCatalogResource = async () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const auditNum = ref(0)
|
const auditNum = ref(0)
|
||||||
const awaitResourceCountData = async () => {
|
const awaitTextbookCountData = async () => {
|
||||||
const res = await awaitResourceCount(queryParams.value)
|
const res = await awaitTextbookCount(queryParams.value)
|
||||||
auditNum.value = res.data
|
auditNum.value = res.data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getlistCatalogResource()
|
getListCatalogTextbook()
|
||||||
getList();
|
getList();
|
||||||
|
|
||||||
|
if (auth.hasPermi('file:textbook:review')) {
|
||||||
if (auth.hasPermi('file:resource:review')) {
|
awaitTextbookCountData()
|
||||||
awaitResourceCountData()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -568,6 +561,11 @@ onMounted(() => {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.line {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
.btn-audit {
|
.btn-audit {
|
||||||
text-indent: 1em;
|
text-indent: 1em;
|
||||||
}
|
}
|
||||||
|
|
|
@ -304,6 +304,7 @@ const data = reactive<PageData<any, any>>({
|
||||||
createTime: '',
|
createTime: '',
|
||||||
service: '',
|
service: '',
|
||||||
catalogId: '',
|
catalogId: '',
|
||||||
|
ossType: 1
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
file: [{ required: true, message: '文件不能为空', trigger: 'blur' }]
|
file: [{ required: true, message: '文件不能为空', trigger: 'blur' }]
|
||||||
|
@ -393,7 +394,7 @@ const handleFileName = (val) => {
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
const ossId = form.value.file
|
const ossId = form.value.file
|
||||||
const catalogId = currentNode.value.catalogId
|
const catalogId = currentNode.value.catalogId
|
||||||
await addTextbook({ ossId, catalogId, fileName: fileName.value, type: queryParams.value.type })
|
await addTextbook({ ossId, catalogId, fileName: fileName.value, type: queryParams.value.type, ossType: 1 })
|
||||||
dialog.visible = false;
|
dialog.visible = false;
|
||||||
getList();
|
getList();
|
||||||
if (auth.hasPermi('file:textbook:review')) {
|
if (auth.hasPermi('file:textbook:review')) {
|
||||||
|
|
|
@ -127,7 +127,7 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="管理员姓名" prop="nickName">
|
<el-form-item label="管理员姓名" prop="nickName">
|
||||||
<el-select v-model="form.teacherId" @change="handleTeacherChange" placeholder="请选择管理员姓名"
|
<el-select v-model="form.teacherId" :disabled="form.userId ? true : false" @change="handleTeacherChange" placeholder="请选择管理员姓名"
|
||||||
style="width: 100%">
|
style="width: 100%">
|
||||||
<el-option v-for="item in teacherOption" :key="item.teacherId" :label="item.teacherName"
|
<el-option v-for="item in teacherOption" :key="item.teacherId" :label="item.teacherName"
|
||||||
:value="item.teacherId" />
|
:value="item.teacherId" />
|
||||||
|
|
Loading…
Reference in New Issue