提交 0c0f4867 authored 作者: lihuihui's avatar lihuihui

教案开发

上级 b39cd786
...@@ -2,10 +2,13 @@ import { getProjectList } from '@/api/base' ...@@ -2,10 +2,13 @@ import { getProjectList } from '@/api/base'
export function useProjectList(id?: string) { export function useProjectList(id?: string) {
const list = ref([]) const list = ref([])
onMounted(() => { const members = ref([])
getProjectList({ organization_id: id || '' }).then((res: any) => { // onMounted(() => {
list.value = res.data.departments getProjectList({ organization_id: id || '' }).then((res: any) => {
}) list.value = res.data.departments
console.log(res.data, 'res.data')
members.value = res.data.members
}) })
return { list } // })
return { list, members }
} }
\ No newline at end of file
...@@ -101,16 +101,16 @@ const form = reactive({ ...@@ -101,16 +101,16 @@ const form = reactive({
members: '' members: ''
}) })
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
// 人员列表 // 人员列表
let members: any = ref([]) let members: any = ref([])
const getMembers = () => {
members.value = useProjectList(props.data.organ_id)
}
// 点击更改负责人按钮弹窗 // 点击更改负责人按钮弹窗
const handleMembers = () => { const handleMembers = () => {
getMembers()
dialogFormVisible.value = true dialogFormVisible.value = true
members.value = useProjectList(props.data.organ_id).members
} }
// 更改负责人确定 // 更改负责人确定
const handlesetBelong = () => { const handlesetBelong = () => {
setBelong({ id: id, belong_operator: form.members }).then((res: any) => { setBelong({ id: id, belong_operator: form.members }).then((res: any) => {
...@@ -169,7 +169,7 @@ const handlesetBelong = () => { ...@@ -169,7 +169,7 @@ const handlesetBelong = () => {
</el-row> </el-row>
</div> </div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人"> <el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members" :label="item.name" :value="item.id" :key="item.id" /> <el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
......
...@@ -17,13 +17,28 @@ export function createLessonPlan(data: { ...@@ -17,13 +17,28 @@ export function createLessonPlan(data: {
name: string name: string
source: string source: string
classification: string classification: string
knowledge_points: string knowledge_points?: string
url: string url: string
type: string type: string
size: string size: string
}) { }) {
return httpRequest.post('/api/resource/v1/resource/lesson-plan/create', data) return httpRequest.post('/api/resource/v1/resource/lesson-plan/create', data)
} }
// 更新教案
export function updateLessonPlan(data: {
id: string,
name: string
source: string
classification: string
knowledge_points?: string
url: string
type: string
size: string
}) {
return httpRequest.post('/api/resource/v1/resource/lesson-plan/update', data)
}
// 获取教案详情 // 获取教案详情
export function getLessonDetails(params: { id: string }) { export function getLessonDetails(params: { id: string }) {
return httpRequest.get('/api/resource/v1/resource/lesson-plan/view', { params }) return httpRequest.get('/api/resource/v1/resource/lesson-plan/view', { params })
...@@ -46,4 +61,4 @@ export function setStatus(data: { id: string }) { ...@@ -46,4 +61,4 @@ export function setStatus(data: { id: string }) {
// 更改负责人 // 更改负责人
export function setBelong(data: { id: string; belong_operator: string }) { export function setBelong(data: { id: string; belong_operator: string }) {
return httpRequest.post('/api/resource/v1/resource/lesson-plan/set-belong', data) return httpRequest.post('/api/resource/v1/resource/lesson-plan/set-belong', data)
} }
\ No newline at end of file
...@@ -100,16 +100,16 @@ const form = reactive({ ...@@ -100,16 +100,16 @@ const form = reactive({
members: '' members: ''
}) })
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
// 人员列表 // 人员列表
let members: any = ref([]) let members: any = ref([])
const getMembers = () => {
members.value = useProjectList(props.data.organ_id)
}
// 点击更改负责人按钮弹窗 // 点击更改负责人按钮弹窗
const handleMembers = () => { const handleMembers = () => {
getMembers()
dialogFormVisible.value = true dialogFormVisible.value = true
members.value = useProjectList(props.data.organ_id).members
} }
// 更改负责人确定 // 更改负责人确定
const handlesetBelong = () => { const handlesetBelong = () => {
setBelong({ id: id, belong_operator: form.members }).then((res: any) => { setBelong({ id: id, belong_operator: form.members }).then((res: any) => {
...@@ -165,7 +165,7 @@ const handlesetBelong = () => { ...@@ -165,7 +165,7 @@ const handlesetBelong = () => {
</el-row> </el-row>
</div> </div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人"> <el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members" :label="item.name" :value="item.id" :key="item.id" /> <el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
......
...@@ -92,7 +92,7 @@ const listOptions = $computed(() => { ...@@ -92,7 +92,7 @@ const listOptions = $computed(() => {
<router-link :to="`/resource/lessonplan/update/?id=${row.id}`"> <router-link :to="`/resource/lessonplan/update/?id=${row.id}`">
<el-button plain>编辑</el-button> <el-button plain>编辑</el-button>
</router-link> </router-link>
<router-link :to="`/resource/lessonplan/view/?id=${row.id}`"> <router-link :to="`/resource/lessonplan/view?id=${row.id}`">
<el-button type="primary" plain>查看</el-button> <el-button type="primary" plain>查看</el-button>
</router-link> </router-link>
</el-space> </el-space>
......
...@@ -2,12 +2,15 @@ ...@@ -2,12 +2,15 @@
import AppUpload from '@/components/base/AppUpload.vue' import AppUpload from '@/components/base/AppUpload.vue'
import type { FormInstance } from 'element-plus' import type { FormInstance } from 'element-plus'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { createLessonPlan } from '../api' import { createLessonPlan, getLessonDetails, updateLessonPlan } from '../api'
import { useGetCategoryList } from '@/composables/useGetCategoryList' import { useGetCategoryList } from '@/composables/useGetCategoryList'
import Operation from '../components/Operation.vue'
// 路由 // 路由
const router = useRouter() const router = useRouter()
const id = router.currentRoute.value.query.id as string
// 下拉选择tree 视频分类 // 下拉选择tree 视频分类
let { list: selectTree } = useGetCategoryList() let { list: selectTree } = useGetCategoryList()
const defaultProps = { const defaultProps = {
...@@ -52,17 +55,18 @@ const submitForm = async (formEl: FormInstance | undefined) => { ...@@ -52,17 +55,18 @@ const submitForm = async (formEl: FormInstance | undefined) => {
const params = Object.assign({}, form) const params = Object.assign({}, form)
delete params.file delete params.file
if (id !== '' && id) { if (id !== '' && id) {
// const params = Object.assign({ id: id }, form) params.id = id
// updateVideo(params).then((res: any) => { console.log(params, 'paramsparams')
// if (res.code === 0) { updateLessonPlan(params).then((res: any) => {
// ElMessage({ message: '更新成功', type: 'success' }) if (res.code === 0) {
// setTimeout(() => { ElMessage({ message: '更新成功', type: 'success' })
// router.push({ setTimeout(() => {
// path: '/resource/video' router.push({
// }) path: '/resource/lessonplan'
// }, 1000) })
// } }, 1000)
// }) }
})
} else { } else {
createLessonPlan(params).then((res: any) => { createLessonPlan(params).then((res: any) => {
if (res.code === 0) { if (res.code === 0) {
...@@ -83,16 +87,68 @@ const submitForm = async (formEl: FormInstance | undefined) => { ...@@ -83,16 +87,68 @@ const submitForm = async (formEl: FormInstance | undefined) => {
} }
// 协议 // 协议
const protocol = ref(false) const protocol = ref(false)
// 判断编辑还是新建
const statusData = reactive<{
department_public: string
platform_public: string
status: string
organ_id_name: string
organ_id: string
created_operator_name: string
belong_operator_name: string
created_time: string
updated_time: string
}>({
department_public: '0',
platform_public: '0',
status: '0',
organ_id_name: '',
organ_id: '',
created_operator_name: '',
belong_operator_name: '',
created_time: '',
updated_time: ''
})
if (id !== '' && id) {
getLessonDetails({ id: id }).then(res => {
const key = ['name', 'classification', 'knowledge_points', 'url', 'size', 'type']
key.forEach(item => {
form[item] = res.data[item]
})
form.file = [
{
name: res.data.name,
url: res.data.url
}
]
const {
department_public,
platform_public,
status,
organ_id_name,
organ_id,
created_operator_name,
belong_operator_name,
created_time,
updated_time
} = res.data
statusData.department_public = department_public
statusData.platform_public = platform_public
statusData.status = status
statusData.organ_id_name = organ_id_name
statusData.organ_id = organ_id
statusData.created_operator_name = created_operator_name
statusData.belong_operator_name = belong_operator_name
statusData.created_time = created_time
statusData.updated_time = updated_time
})
}
</script> </script>
<template> <template>
<AppCard title="新建教案资源"> <AppCard title="新建教案资源">
<div class="tool-btn-box" v-if="$route.query.id"> <Operation :data="statusData" style="margin-bottom: 20px"></Operation>
<div class="btn-item">部门共享</div>
<div class="btn-item">平台共享</div>
<div class="btn-item">资源下线</div>
<div class="btn-item">更改负责人</div>
</div>
<el-form ref="ruleFormRef" :model="form" :rules="rules" style="width: 70%"> <el-form ref="ruleFormRef" :model="form" :rules="rules" style="width: 70%">
<el-form-item label="教案文件:" prop="file"> <el-form-item label="教案文件:" prop="file">
<div> <div>
......
...@@ -100,16 +100,16 @@ const form = reactive({ ...@@ -100,16 +100,16 @@ const form = reactive({
members: '' members: ''
}) })
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
// 人员列表 // 人员列表
let members: any = ref([]) let members: any = ref([])
const getMembers = () => {
members.value = useProjectList(props.data.organ_id)
}
// 点击更改负责人按钮弹窗 // 点击更改负责人按钮弹窗
const handleMembers = () => { const handleMembers = () => {
getMembers()
dialogFormVisible.value = true dialogFormVisible.value = true
members.value = useProjectList(props.data.organ_id).members
} }
// 更改负责人确定 // 更改负责人确定
const handlesetBelong = () => { const handlesetBelong = () => {
setBelong({ id: id, belong_operator: form.members }).then((res: any) => { setBelong({ id: id, belong_operator: form.members }).then((res: any) => {
...@@ -168,7 +168,7 @@ const handlesetBelong = () => { ...@@ -168,7 +168,7 @@ const handlesetBelong = () => {
</el-row> </el-row>
</div> </div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人"> <el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members" :label="item.name" :value="item.id" :key="item.id" /> <el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
......
...@@ -104,14 +104,11 @@ const dialogFormVisible = ref(false) ...@@ -104,14 +104,11 @@ const dialogFormVisible = ref(false)
// 人员列表 // 人员列表
let members: any = ref([]) let members: any = ref([])
const getMembers = () => {
members.value = useProjectList(props.data.organ_id)
}
// 点击更改负责人按钮弹窗 // 点击更改负责人按钮弹窗
const handleMembers = () => { const handleMembers = () => {
getMembers()
dialogFormVisible.value = true dialogFormVisible.value = true
members.value = useProjectList(props.data.organ_id).members
} }
// 更改负责人确定 // 更改负责人确定
const handlesetBelong = () => { const handlesetBelong = () => {
...@@ -171,7 +168,7 @@ const handlesetBelong = () => { ...@@ -171,7 +168,7 @@ const handlesetBelong = () => {
</el-row> </el-row>
</div> </div>
<el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人"> <el-select style="width: 500px; margin-top: 20px" v-model="form.members" placeholder="请选择新的资源负责人">
<el-option v-for="item in members" :label="item.name" :value="item.id" :key="item.id" /> <el-option v-for="item in members.value" :label="item.name" :value="item.id" :key="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论