dbsd_kczx/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcDetail.vue

226 lines
8.3 KiB
Vue
Raw Normal View History

2024-05-06 15:15:47 +08:00
<template>
2024-05-23 17:30:43 +08:00
<div style="margin-top:10px;background:#fff;height: calc(100vh - 225px);overflow:auto;">
2024-05-13 22:48:44 +08:00
<a-card>
<div>
<a-row>
2024-05-21 17:53:16 +08:00
<a-col :span="3" style="font-size: 18px;font-weight: bold;">课程简介</a-col>
2024-05-15 11:22:43 +08:00
<a-col :span="15"><a-textarea style="width: 100%;" v-model:value="jxdgInfo.kcjs"></a-textarea></a-col>
<a-col :span="6" style="text-align:right;"><a-button type="primary" @click="addKcjsHandle(1)">提交</a-button><a-button type="primary" style="margin-left:10px;" @click="handleYinyong">引用</a-button></a-col>
2024-05-13 22:48:44 +08:00
</a-row>
</div>
</a-card>
2024-05-13 09:03:02 +08:00
<a-card>
<div>
<span style="float: left;line-height: 30px; font-size: 18px; font-weight: bold;">教学大纲</span>
<span style="width:300px;float: left;">
2024-05-15 11:22:43 +08:00
<span style="float:left;"><j-upload v-model:value="jxdgInfo.filePath" maxCount="1" accept=".doc,.docx,.pdf" :forceAcceptVerify="true"></j-upload></span>
</span>
<span style="float: right;">
<a-button type="primary" @click="addKcjsHandle(2)">提交</a-button>
<a-button type="primary" style="margin-left:10px;" @click="openPdf(jxdgInfo)">预览</a-button>
2024-05-13 09:03:02 +08:00
</span>
</div>
2024-05-20 23:01:32 +08:00
</a-card>
<a-card>
<div>
<span style="float: left;line-height: 30px; font-size: 18px; font-weight: bold;">教学日历</span>
<span style="width:300px;float: left;">
<span style="float:left;"><j-upload v-model:value="jxdgInfo.jxrlFilePath" maxCount="1" accept=".doc,.docx,.pdf" :forceAcceptVerify="true"></j-upload></span>
</span>
<span style="float: right;">
<a-button type="primary" @click="addKcjsHandle(3)">提交</a-button>
<a-button type="primary" style="margin-left:10px;" @click="openJxrlPdf(jxdgInfo)">预览</a-button>
</span>
</div>
2024-05-13 09:03:02 +08:00
</a-card>
<a-card>
<div style="line-height: 30px; font-size: 18px; font-weight: bold;width:100%;">
<span style="float: left;">常见问题</span>
2024-05-13 16:29:57 +08:00
<span style="float: right;"><a-button type="primary" @click="addCjwtHanle">新增</a-button></span>
2024-05-13 09:03:02 +08:00
</div>
<a-row style="margin-top: 50px;width:100%;display: block;">
2024-05-13 16:29:57 +08:00
<a-col :span="24" v-for="(item,index) in cjwtSource" :key="index">
2024-05-13 09:03:02 +08:00
<a-row>
<a-col :span="24">
<span style="float: left;">{{(pageNo-1)*pageSize+index+1}}.{{item.question}}</span>
2024-05-13 09:03:02 +08:00
<span style="float: right;">
2024-05-13 16:29:57 +08:00
<a title="修改" @click="handleEdit(item)"><Icon icon="ant-design:form-outlined" /></a>
2024-05-13 09:03:02 +08:00
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" />
2024-05-13 16:29:57 +08:00
<a title="删除" @click="handleDelete(item)"><Icon icon="ant-design:delete-outlined" /></a>
2024-05-13 09:03:02 +08:00
</span>
</a-col>
2024-05-13 16:29:57 +08:00
<a-col :span="24"><span><Icon icon="ant-design:caret-right-outlined" />{{item.answer}}</span></a-col>
2024-05-13 09:03:02 +08:00
<a-col :span="24">
<a-divider />
</a-col>
</a-row>
</a-col>
2024-05-13 16:29:57 +08:00
<a-col :span="24" v-show="cjwtSource.length>0">
2024-05-13 09:03:02 +08:00
<a-pagination v-model="current" :total="total" @change="handlePageChange" :pageSize="pageSize" style="text-align: right;"/>
</a-col>
2024-05-13 16:29:57 +08:00
<a-col :span="24" v-show="cjwtSource.length==0">
2024-05-13 09:03:02 +08:00
<a-empty/>
</a-col>
</a-row>
</a-card>
<a-card>
<div style="line-height: 30px; font-size: 18px; font-weight: bold;width:100%;">
<span style="float: left;">往届学生评价</span>
</div>
2024-05-13 16:29:57 +08:00
<studentPjjgTeaList :queryParam="{ pageSize: 3, ...tkzjParam,kcbh:'' }" style="max-height: 106px;"/>
2024-05-13 09:03:02 +08:00
</a-card>
2024-05-13 16:29:57 +08:00
<ZyCjwtModal ref="ZyCjwtModalPage" @success="handleCjwtOk" />
2024-05-15 11:22:43 +08:00
<ZyJxdgListModal ref="ZyJxdgListModalPage" />
2024-05-06 15:15:47 +08:00
</div>
</template>
<script lang="ts" setup>
import { ref, onMounted, unref } from 'vue';
import { getUserSf,getSysConfig } from '/@/views/site/utils/index';
import { defHttp } from '/@/utils/http/axios';
import { useRouter } from 'vue-router';
2024-05-13 09:03:02 +08:00
import { Icon } from '/@/components/Icon';
import { Pagination, Empty } from 'ant-design-vue';
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
2024-05-13 16:29:57 +08:00
import { deleteOne } from '/@/views/zy/zyCjwt/ZyCjwt.api';
2024-05-06 15:15:47 +08:00
import headerPage from '/@/views/site/common/header.vue';
import footerPage from '/@/views/site/common/footer.vue';
2024-05-13 09:03:02 +08:00
import studentPjjgTeaList from '/@/views/site/pjjgPage/studentPjjgTeaList.vue';
2024-05-13 16:29:57 +08:00
import ZyCjwtModal from '/@/views/zy/zyCjwt/components/ZyCjwtModal.vue';
2024-05-15 11:22:43 +08:00
import { useMessage } from '/@/hooks/web/useMessage';
import ZyJxdgListModal from '/@/views/zy/zyJxdg/ZyJxdgListModal.vue';
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
import JeecgPdfView from '/@/views/demo/jeecg/JeecgPdfView.vue';
import { useGlobSetting } from '/@/hooks/setting';
2024-05-13 16:29:57 +08:00
2024-05-15 11:22:43 +08:00
const globSetting = useGlobSetting();
const baseApiUrl = globSetting.domainUrl;
2024-05-06 19:41:47 +08:00
//当前路由信息
const { currentRoute } = useRouter();
const { query } = unref(currentRoute);
2024-05-13 16:29:57 +08:00
const { rwbh,xqxn } = query;//获取传递参数
2024-05-13 09:03:02 +08:00
const APagination = Pagination;
const current = ref<number>(0);
const total = ref<number>(0);
const pageNo = ref<number>(0);
const pageSize = ref<number>(3);
2024-05-13 16:29:57 +08:00
const tkzjParam = ref({rwbh:rwbh});
const ZyCjwtModalPage = ref();
2024-05-15 11:22:43 +08:00
const ZyJxdgListModalPage = ref();
2024-05-13 16:29:57 +08:00
const cjwtSource = ref([]);
2024-05-06 19:41:47 +08:00
let router = useRouter();
2024-05-15 11:22:43 +08:00
const { createMessage } = useMessage();
2024-05-13 09:03:02 +08:00
const jxdgInfo = ref({
2024-05-15 11:22:43 +08:00
id:'',
2024-05-15 21:12:55 +08:00
filePath:null,
2024-05-20 23:01:32 +08:00
jxrlFilePath:null,
2024-05-15 11:22:43 +08:00
kcjs:''
2024-05-13 09:03:02 +08:00
});
2024-05-15 11:22:43 +08:00
//引用功能
function handleYinyong(){
var record = {xqxn,rwbh}
ZyJxdgListModalPage.value.disableSubmit = true;
ZyJxdgListModalPage.value.init(record);
}
2024-05-13 16:29:57 +08:00
//常见问题新增
function addCjwtHanle(){
var params = { rwbh:rwbh,xqxn:xqxn };
ZyCjwtModalPage.value.disableSubmit = false;
ZyCjwtModalPage.value.add(params);
}
/**
* 常见问题编辑事件
*/
function handleEdit(record: Recordable) {
ZyCjwtModalPage.value.disableSubmit = false;
ZyCjwtModalPage.value.edit(record);
}
/**
* 删除事件
*/
async function handleDelete(record) {
await deleteOne({ id: record.id }, handleCjwtOk);
}
2024-05-15 11:22:43 +08:00
function openPdf(record){
2024-05-15 21:12:55 +08:00
var url2 = getFileAccessHttpUrl(record.pdfPath)
// console.log(`🚀 ~ openPdf ~ url2:`, url2)
2024-05-15 11:22:43 +08:00
let url = baseApiUrl+"/generic/web/viewer.html?file="+encodeURIComponent(url2);
window.open(url,"_blank")
}
2024-05-20 23:01:32 +08:00
function openJxrlPdf(record){
var url2 = getFileAccessHttpUrl(record.jxrlPdfPath)
// console.log(`🚀 ~ openPdf ~ url2:`, url2)
2024-05-20 23:01:32 +08:00
let url = baseApiUrl+"/generic/web/viewer.html?file="+encodeURIComponent(url2);
window.open(url,"_blank")
}
2024-05-06 15:15:47 +08:00
2024-05-13 16:29:57 +08:00
//常见问题回调刷新
function handleCjwtOk() {
// console.log('--------cjwt ok -----------')
2024-05-13 16:29:57 +08:00
cjwtData(1);
}
2024-05-13 16:29:57 +08:00
//常见问题新增翻页
2024-05-13 09:03:02 +08:00
function handlePageChange(page: number) {
2024-05-13 16:29:57 +08:00
cjwtData(page);
}
function cjwtData(arg){
pageNo.value = arg;
2024-05-22 18:26:41 +08:00
defHttp.get({ url: '/zyCjwt/zyCjwt/list', params: { pageSize: 3,pageNo:arg, rwbh:rwbh,xqxn:xqxn,column:'createTime',order:'desc' } }).then((res) => {
// console.log(`🚀 ~ defHttp.get ~ res:`, res)
2024-05-13 16:29:57 +08:00
cjwtSource.value = res.records;
2024-05-22 18:26:41 +08:00
total.value = res.total;
// console.log(`🚀 ~ defHttp.get ~ cjwtSource:`, cjwtSource)
2024-05-13 16:29:57 +08:00
});
2024-05-13 09:03:02 +08:00
}
2024-05-21 17:53:16 +08:00
//获取课程简介和教学大纲内容
2024-05-15 11:22:43 +08:00
function getKcjsJxdg(){
defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh:rwbh} }).then((res) => {
if(res){
jxdgInfo.value = res;
}
});
}
function addKcjsHandle(type){
const isUpdate = true;
var model = jxdgInfo.value;
model.rwbh = rwbh;
model.xqxn = xqxn;
// console.log(`🚀 ~ addKcjsHandle ~ model:`, model)
2024-05-15 11:22:43 +08:00
if(model.id){
if(type=='1'){
model.filePath = '';
}
defHttp.post({ url: '/zyJxdg/zyJxdg/edit', params: model }).then((res) => {
// console.log(`🚀 ~ defHttp.post 111~ res:`, res)
2024-05-15 11:22:43 +08:00
getKcjsJxdg();
});
}else{
if(type=='1'){
model.filePath = '';
}
defHttp.post({ url: '/zyJxdg/zyJxdg/add', params: model }).then((res) => {
// console.log(`🚀 ~ defHttp.post 222~ res:`, res)
2024-05-15 11:22:43 +08:00
getKcjsJxdg();
});
}
}
2024-05-06 15:15:47 +08:00
//进入就加载
onMounted(() => {
2024-05-15 11:22:43 +08:00
getKcjsJxdg();
2024-05-13 16:29:57 +08:00
cjwtData(1);
2024-05-15 11:22:43 +08:00
2024-05-06 15:15:47 +08:00
});
2024-05-06 15:15:47 +08:00
</script>
<style lang="less" scoped>
</style>