修改功能

This commit is contained in:
yangjun 2024-08-26 09:13:15 +08:00
parent 2109ebec48
commit 097a6f9ddc
14 changed files with 1648 additions and 301 deletions

View File

@ -19,8 +19,9 @@ VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
VITE_GLOB_API_URL=/jeecg-boot
#后台接口全路径地址(必填)
VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/jeecg-boot
# VITE_GLOB_DOMAIN_URL=https://kczxcs.nenu.edu.cn/jeecg-boot
# VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/jeecg-boot
# VITE_GLOB_DOMAIN_URL=https://smartedu.nenu.edu.cn/jeecg-boot
VITE_GLOB_DOMAIN_URL=https://kczxcs.nenu.edu.cn/jeecg-boot
# VITE_GLOB_DOMAIN_URL=http://210.47.29.100/jeecg-boot
#RTC服务器地址
@ -39,5 +40,5 @@ VITE_USE_PWA = false
VITE_LEGACY = false
# 是否开启单点登录
VITE_GLOB_APP_OPEN_SSO = true
VITE_GLOB_APP_OPEN_SSO = false

View File

@ -15,25 +15,30 @@
<div v-if="showType == 999">
<a-row>
<a-col :span="24">
<span class="title">教学大纲内容</span>
<span class="title">{{jxdgInfo.fbName}}{{jxdgInfo.xqxn}}季学期执行教学大纲</span>
<a-divider />
</a-col>
<a-col :span="23" v-for="(item, index) in zyJxdgMainTable.dataSource" :key="index" style="margin:8px auto; background:#fff;border:1px solid #eee;">
<a-col
:span="23"
v-for="(item, index) in zyJxdgMainTable.dataSource"
:key="index"
style="margin: 8px auto; background: #fff; border: 1px solid #eee"
>
<a-row>
<a-col :span="24" style="height: 40px; line-height:40px; background-color:#f6f6f6">
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f6f6f6">
<span class="title">{{ item.title }}</span>
</a-col>
<!-- 单行文本 1 -->
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px; ">
<span class="message-word" v-text="item.content"></span>
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px">
<span class="Text-Content" v-text="item.content"></span>
</a-col>
<!-- 多行文本 2 -->
<a-col v-else-if="item.type === '2'" :span="24" style="margin: 10px; ">
<span class="message-word" v-text="item.content"></span>
<a-col v-else-if="item.type === '2'" :span="24" style="margin: 10px">
<span class="Text-Content" v-text="item.content"></span>
</a-col>
<!-- 富文本 3 -->
<a-col v-else-if="item.type === '3'" :span="24">
<div class="message-word" v-html="item.content"></div>
<div class="Text-Content" v-html="item.content"></div>
</a-col>
<!-- 固定表单基础信息 4 -->
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24">
@ -41,7 +46,7 @@
<a-row>
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
<a-form-item :label="item2.title">
<span class="Sheet-word" v-text="item2.content"></span>
<span class="Text-Content" v-text="item2.content"></span>
</a-form-item>
</a-col>
</a-row>
@ -58,8 +63,8 @@
<!-- 自增单行文本 6 -->
<a-col v-else-if="item.type === '6'" :span="24">
<a-row>
<a-col v-for="(item2, index2) in item.list" :key="index2" >
<span style="padding:20px; color:#888" v-text="item2.title"></span>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
<span class="Text-Content" v-text="item2.title"></span>
</a-col>
</a-row>
</a-col>
@ -67,42 +72,97 @@
<a-col v-else-if="item.type === '7'" :span="24">
<a-row>
<a-col v-for="(item2, index2) in item.list" :key="index2">
<div class="message-word" v-html="item2.title"></div>
<div class="Text-Content" v-html="item2.title"></div>
</a-col>
</a-row>
</a-col>
<!-- 自增多行文本 8 -->
<a-col v-else-if="item.type === '8'" :span="24">
<a-row>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px; ">
<span class="message-word" v-text="item2.title"></span>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
<span class="Text-Content" v-text="item2.title"></span>
</a-col>
</a-row>
</a-col>
<!-- 自增表格 9 -->
<a-col v-else-if="item.type === '9'" :span="24">
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
</a-table>
<a-col v-else-if="item.type === '9' || item.type === '15'" :span="24">
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-col>
<!-- 自增表格两列关联 10 -->
<a-col v-else-if="item.type === '10'" :span="24">
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
</a-table>
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-col>
<!-- 自增表格两列关联 11 -->
<a-col v-else-if="item.type === '11'" :span="24">
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
</a-table>
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-col>
<!-- --------------------------------------20240824------------------------------------------------------ -->
<!-- 课程目标 12 -->
<a-col v-else-if="item.type === '12'" :span="24">
<a-row>
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
<!-- -{{ item2 }}- -->
<a-row>
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
<!-- -{{ item3 }}- -->
<span style="line-height: 40px; margin-left: 15px" v-if="index3 == 0"> {{ item3.title }} </span>
<span style="line-height: 40px" v-else>
{{ item3.title }}
</span>
</a-col>
</a-row>
</a-col>
</a-row>
</a-col>
<!-- 教学内容重难点和课时安排 13 -->
<a-col v-else-if="item.type === '13'" :span="24">
<a-row>
<a-col>
<a-row v-for="(item2, index2) in item.list" :key="index2" class="dhxg">
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
<a-row style="padding: 10px">
<a-col style="text-align: left" :span="7"> {{ item3.title }} </a-col>
<a-col :span="15">
{{ item3.content }}
</a-col>
</a-row>
</a-col>
<a-col style="height: 20px"> &nbsp; </a-col>
</a-row>
</a-col>
</a-row>
</a-col>
<!-- 课程目标的评价方式 14 -->
<!-- <a-col v-else-if="item.type === '14'" :span="24"> -->
<a-col v-else-if="item.type === '14'" :span="24">
<a-row>
<a-col>
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<!-- <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input
placeholder="请输入内容"
v-model:value="record[column.key]"
@blur="handleTwoGlxm(item)"
style="width: 100%"
></a-input>
</template>
</template> -->
</a-table>
</a-col>
</a-row>
</a-col>
<!-- --------------------------------------20240824------------------------------------------------------ -->
<a-col v-else> </a-col>
<!-- <a-col :span="24">
<span class="tishi">
<span>{{ item.tsy }}</span>
</span>
</a-col> -->
</a-row>
</a-col>
</a-row>
@ -114,7 +174,14 @@
import { ref, reactive, computed, unref, onMounted } from 'vue';
import { useRouter } from 'vue-router';
import { defHttp } from '/@/utils/http/axios';
import { queryZyJxdgMainListByMainId, queryDataById, saveOrUpdate2, queryZyJxdgMainListByMainId2 } from '/@/views/kc/zyJxdgBanben/ZyJxdgBanben.api';
import { useMessage } from '/@/hooks/web/useMessage';
import {
queryZyJxdgMainListByMainId,
queryDataById,
saveOrUpdate2,
queryZyJxdgMainListByMainId2,
queryZyJxdgMainListByMainId3,
} from '/@/views/kc/zyJxdgBanben/ZyJxdgBanben.api';
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
//
@ -125,6 +192,13 @@ const showType = ref<number>(0);
const jxdgInfo = ref<any>({});
const jxdgbbDataSource = ref<any>([]);
const disabled = ref<boolean>(false);
const { createMessage, createConfirm } = useMessage();
let kcmbDataSource = ref<{ title: any }[]>([]);
const checkKcmb = ref<string>('');
const checkKhfs = ref<any>([]);
const khmbDataSource = ref<any>([]);
const kcmbShow = ref<boolean>(false);
const zyJxdgMainTable = reactive<Record<string, any>>({
loading: false,
@ -161,7 +235,11 @@ function handleGlxm(item) {
//
var item3 = item2.zyJxdgPzxxList;
if (item3 != null && item3.length > 0) {
item2.list.push({ [item3[0].id]: title });
if (item2.type == '11') {
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
} else {
item2.list.push({ [item3[0].id]: title });
}
}
}
}
@ -169,11 +247,38 @@ function handleGlxm(item) {
}
}
}
function handleFabu(sffb){
function handleFabu(sffb) {
if(sffb=='1'){
var par = jxdgInfo.value;
var title = '《'+par.kcmc+'》教学大纲('+par.banbenName+')是否作为'+par.xqxn+'季学期的执行教学大纲';
createConfirm({
iconType: 'warning',
title: '确认发布',
content: title+',面向学生发布?',
okText: '确认',
cancelText: '取消',
onOk: () => {
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb, id: jxdgInfo.value.id,fbName:title } }).then((res) => {
init();
});
},
});
}else{
createConfirm({
iconType: 'warning',
title: '确认撤回',
content: '确认撤回已发布的执行大纲吗?',
okText: '确认',
cancelText: '取消',
onOk: () => {
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb, id: jxdgInfo.value.id,fbName:title } }).then((res) => {
init();
});
},
});
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb,id:jxdgInfo.value.id} }).then((res) => {
init()
});
}
}
//
function handleTwoGlxm(item) {
@ -332,7 +437,16 @@ async function handleCheckBanben(record) {
//
var id = record.id;
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(id);
var params = {
mainId: id,
rwbh: rwbh,
teacherNo: teano,
};
//
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId3(params);
// const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(id);
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
}
async function submitForm() {
@ -354,16 +468,17 @@ async function submitForm() {
}
//
function handleShowType(type) {
console.log('🤛', type);
if (type == 1) {
jxdgInfo.value = {};
zyJxdgMainTable.dataSource = [];
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sffb: '1', pageNo: -1 } }).then((res) => {
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
jxdgbbDataSource.value = res.records;
});
}else if(type == 2){
} else if (type == 2) {
type = 1;
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sffb: '1', pageNo: -1 } }).then((res) => {
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
jxdgbbDataSource.value = res.records;
});
@ -371,6 +486,23 @@ function handleShowType(type) {
zyJxdgMainTable.dataSource = [];
defHttp.get({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/queryByRwbhList', params: { rwbh, teacherNo } }).then((res) => {
zyJxdgMainTable.dataSource = [...res];
console.log('👩‍💼', zyJxdgMainTable.dataSource);
for (var i = 0; i < zyJxdgMainTable.dataSource.length; i++) {
var par = zyJxdgMainTable.dataSource[i];
console.log('👅', par);
if (par.type == '12') {
var list = par.list2Map;
console.log('🧔', list);
var list1 = ref<{ title: any }[]>([]);
for (var j = 0; j < list.length; j++) {
var ppa = list[j][0].title;
console.log('👧', ppa);
list1.value.push({ title: ppa });
}
kcmbDataSource.value = list1.value;
}
}
});
}
showType.value = type;
@ -391,8 +523,6 @@ async function init() {
showType.value = 0;
}
});
if (jxdgInfo.value.id) {
}
}
const jxdgbbColumns = [
@ -413,15 +543,182 @@ const jxdgbbColumns = [
},
];
//--------------------------------------20240824------------------------------------------------------
//
function handleKcmbZzbg(item) {
item.list2Map = item.list2Map || [];
var item3 = item.zyJxdgPzxxList;
console.log('😁', item3);
var oneId = '';
var twoId = '';
for (var i = 0; i < item3.length; i++) {
if (i == 0) {
oneId = item3[i].id;
} else if (i == 1) {
twoId = item3[i].id;
}
}
item.list2Map.push([
{
title: '课程目标' + (item.list2Map.length + 1),
key: oneId,
sort: item.list2Map.length,
},
{
title: '',
key: twoId,
sort: item.list2Map.length,
},
]);
var list1 = ref<{ title: any }[]>([]);
for (var i = 0; i < item.list2Map.length; i++) {
var ppa = item.list2Map[i][0].title;
list1.value.push({ title: ppa });
}
kcmbDataSource.value = list1.value;
}
//
function handleKcmbZzbgDel(item, index) {
item.list2Map.splice(index, 1);
for (var i = 0; i < item.list2Map.length; i++) {
var item2 = item.list2Map[i];
item2.forEach((item3, index2) => {
if (index2 == 0) {
item3.title = '课程目标' + (i + 1);
}
item3.sort = i;
});
}
}
//
function handle2Glxm(item) {
var listtt = ref<{ title: any }[]>([]);
for (var i = 0; i < item.list2Map.length; i++) {
var ppa = item.list2Map[i][0].title;
listtt.value.push({ title: ppa });
}
kcmbDataSource.value = listtt.value;
console.log('👳‍♀️', item);
var sfsglxm = item.sfsglxm;
console.log('👱‍♀️', sfsglxm);
if (sfsglxm == '1') {
//
var list1 = item.list2Map; //
console.log('👑', list1);
if (list1 != null) {
//
var sort = item.sort; //
var alllist = zyJxdgMainTable.dataSource; //
for (var j = 0; j < alllist.length; j++) {
for (var i = 0; i < list1.length; i++) {
var item1 = list1[i][0];
var title = item1.title; //
var item2 = alllist[j]; //
item2.list = item2.list || [];
if (item2.guanlian == sort) {
//
if (i == 0) {
//
item2.list = [];
}
//
var item3 = item2.zyJxdgPzxxList;
console.log('👶', item3);
if (item3 != null && item3.length > 0) {
if (item2.type == '11') {
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
} else {
item2.list.push({ [item3[0].id]: title });
}
}
}
}
}
}
}
// handleGlxm(item);
}
function handle13Zzbg(record) {
console.log('👎', record);
var list2 = record.zyJxdgPzxxList; //
var list3: { title: any; type: string; content: string; key: string }[] = [];
for (var i = 0; i < list2.length; i++) {
var par = list2[i];
var type = '1';
if (i == 1) {
type = '2';
}
list3.push({
title: par.title,
type,
content: '',
key: par.id,
});
}
console.log('🦹', list3);
record.list.push({ list: list3 });
console.log('👩‍🔧', record);
}
//
function handle13DelZzbg(item, index) {
item.list.splice(index, 1);
}
function handle14Zzbg(item) {
console.log('🤧item', item);
kcmbShow.value = true;
khmbDataSource.value = [];
var guanlian = item.guanlian.split(',');
var khmbSort = guanlian[1];
console.log('👱khmbSort', khmbSort);
var alllist = zyJxdgMainTable.dataSource[khmbSort - 1]; //
var item2 = alllist.list;
var item3 = alllist.zyJxdgPzxxList[0];
console.log('item2', item2);
console.log('item3', item3);
for (var i = 0; i < item2.length; i++) {
var item1 = item2[i];
console.log('👩👩👦item1', item1[item3.id]);
khmbDataSource.value.push({ title: item1[item3.id] });
}
console.log('😒khmbDataSource', khmbDataSource.value);
}
function handleKhmbqueren(record) {
console.log('👩👦record', record);
var a1 = checkKcmb.value; //
var a2 = checkKhfs.value; //
let columns = reactive<any>([]);
var list2 = record.zyJxdgPzxxList;
for (var i = 0; i < list2.length; i++) {
var par = list2[i];
columns.push(par.id);
}
for (var i = 0; i < a2.length; i++) {
var khfsmc = a2[i]; //
record.list.push({ [columns[0]]: a1, [columns[1]]: khfsmc });
}
handleTwoGlxm(record);
kcmbShow.value = false;
}
//--------------------------------------20240824------------------------------------------------------
onMounted(() => {
init();
});
</script>
<style lang="less" scoped>
.title {
height: 35px;
line-height: 35px;
margin-left: 20px;
font-size: 16px;
font-weight: bold;
}
.title2 {
font-size: 16px;
@ -434,15 +731,6 @@ onMounted(() => {
min-width: 100%;
margin: 3px 0 5px;
}
.tishi {
width: 100%;
font-size: 12px;
color: #fd8f02;
margin-top: -4px;
background: #fffbf2;
text-align: center;
padding: 6px 0;
}
.cardClass {
min-height: 200px;
}
@ -588,11 +876,54 @@ onMounted(() => {
border-left: 5px solid #029c88;
margin-bottom: 20px;
}
.message-word{
color: #888;
padding:10px 20px;
.tishi {
display: flex;
flex-direction: column;
text-align: left;
margin: 5px;
background: #fff8ef;
color: #fd8f02;
}
.Sheet-word{
color: #888;
.tishi span {
font-size: 12px;
color: #fd8f02;
text-indent: 10px;
padding: 8px;
}
.increase {
position: absolute;
right: 6px;
top: -36px;
}
.place-dele {
margin: 10px 0;
}
.form-pattern {
color: #666;
}
.Text-Content {
padding: 10px;
// color: #888;
}
.dhxg {
padding: 15px;
border: 1px solid #ccc;
margin: 15px;
border-radius: 10px;
}
.dhxg:before {
border: 4px solid #fd8f02; /* 初始边框颜色 */
padding: 15px;
margin: 13px;
border-radius: 10px;
}
.dhxg:after {
border: 4px solid #000; /* 初始边框颜色 */
padding: 15px;
margin: 17px;
border-radius: 10px;
}
</style>

View File

@ -3,7 +3,6 @@
<div v-if="showType == 0">
<a-row>
<a-col :span="24"><span class="title">教学大纲设置</span><a-divider /></a-col>
<div class="tishi">温馨提示设置完成后您也可以在课程教学过程中随时根据实际情况进行调整</div>
<div class="work-img">
<img class="work-img-img" src="../../../assets/images/homework.png" />
</div>
@ -16,17 +15,21 @@
</div>
<div v-if="showType == 1">
<a-row>
<a-col :span="24" >
<a-col :span="24">
<span class="title">填写教学大纲内容</span>
<a-button type="primary" @click="init" style="float: right; margin-right: 8px;margin-top:-6px"> <Icon icon="ant-design:export-outlined" />返回 </a-button>
<a-button type="primary" @click="init" style="float: right; margin-right: 8px; margin-top: -6px">
<Icon icon="ant-design:export-outlined" />返回
</a-button>
<a-divider />
</a-col>
<a-col :span="24">
<a-row>
<a-col :span="24">
<div style="width:100%;padding:2px 20px;color:#666;font-size:14px;background:#f6f6f6;"><span>请选择填写的教学大纲版本</span></div>
<div style="width: 100%; padding: 2px 20px; color: #666; font-size: 14px; background: #f6f6f6"
><span>请选择填写的教学大纲版本</span></div
>
</a-col>
<a-col :span="23" style="margin:0 auto;border:1px solid #eceff6;border-radius:4px;margin-top:8px">
<a-col :span="23" style="margin: 0 auto; border: 1px solid #eceff6; border-radius: 4px; margin-top: 8px">
<a-table :columns="jxdgbbColumns" :dataSource="jxdgbbDataSource" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
@ -39,13 +42,18 @@
</a-col>
<a-col>
<a-row>
<a-col :span="23" v-for="(item, index) in zyJxdgMainTable.dataSource" :key="index" style="margin:8px auto; background:#fff;border:1px solid #eee;">
<a-col
:span="23"
v-for="(item, index) in zyJxdgMainTable.dataSource"
:key="index"
style="margin: 8px auto; background: #fff; border: 1px solid #eee"
>
<a-row>
<a-col :span="24" style="height: 40px; line-height:40px; background-color:#f6f6f6">
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f6f6f6">
<span class="title">{{ item.title }}</span>
</a-col>
<!-- 单行文本 1 -->
<a-col v-if="item.type === '1'" :span="24" >
<a-col v-if="item.type === '1'" :span="24">
<a-input placeholder="请输入内容" v-model:value="item.content" style="width: 100%" @blur="handleGlxm(item)"></a-input>
</a-col>
<!-- 多行文本 2 -->
@ -57,7 +65,7 @@
<j-editor placeholder="请输入内容" v-model:value="item.content" :disabled="disabled" />
</a-col>
<!-- 固定表单基础信息 4 -->
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24" >
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24">
<a-form v-bind="formItemLayout">
<a-row>
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
@ -85,11 +93,12 @@
<a-col v-for="(item2, index2) in item.list" :key="index2">
<a-input
placeholder="请输入内容"
v-model:value="item2.title" class="form-pattern"
v-model:value="item2.title"
class="form-pattern"
style="width: 80%; margin: 0 10px 5px 20px"
@blur="handleGlxm(item)"
></a-input>
<button type="danger" @click="handleDhwbDel(item, index2)" class="ant-btn" style="margin:8px 0">删除</button>
<button @click="handleDhwbDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
</a-col>
</a-row>
</a-col>
@ -99,9 +108,9 @@
<a-col>
<a-button type="primary" @click="handleDhfwb(item)" class="increase" preIcon="ant-design:plus-outlined">添加</a-button>
</a-col>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align:right">
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
<j-editor placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" />
<button type="danger" @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin:8px 0">删除</button>
<button @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
</a-col>
</a-row>
</a-col>
@ -113,18 +122,18 @@
</a-col>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
<a-textarea placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" />
<button type="danger" @click="handleDhwbAreaDel(item, index2)" class="ant-btn" style="margin:8px 0">删除</button>
<button @click="handleDhwbAreaDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
</a-col>
</a-row>
</a-col>
<!-- 自增表格 9 -->
<a-col v-else-if="item.type === '9'" :span="24">
<a-col v-else-if="item.type === '9' || item.type === '15'" :span="24">
<div><a-button type="primary" @click="handleZzbg(item)" class="increase" preIcon="ant-design:plus-outlined">新增</a-button> </div>
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" style="width: 100%"></a-input>
@ -138,7 +147,7 @@
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input
@ -157,7 +166,7 @@
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input
@ -170,6 +179,130 @@
</template>
</a-table>
</a-col>
<!-- --------------------------------------20240824------------------------------------------------------ -->
<!-- 课程目标 12 -->
<a-col v-else-if="item.type === '12'" :span="24">
<a-row>
<a-col>
<a-button type="primary" @click="handleKcmbZzbg(item)" class="increase">添加</a-button>
</a-col>
<a-col style="margin-bottom: 15px"></a-col>
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
<!-- -{{ item2 }}- -->
<a-row>
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
<!-- -{{ item3 }}- -->
<span>
<a-input
placeholder="请输入内容"
v-model:value="item3.title"
class="Sheet"
style="width: 80%; margin: 0 10px 10px 15px"
:disabled="index3 == 0"
@blur="handle2Glxm(item)"
></a-input>
</span>
</a-col>
<a-col :span="2">
<button @click="handleKcmbZzbgDel(item, index2)" class="ant-btn">删除</button>
</a-col>
</a-row>
</a-col>
</a-row>
</a-col>
<!-- 教学内容重难点和课时安排 13 -->
<a-col v-else-if="item.type === '13'" :span="24">
<a-row>
<a-col>
<a-button type="primary" @click="handle13Zzbg(item)" class="increase">添加</a-button>
</a-col>
<a-col style="margin-bottom: 15px"></a-col>
<a-col>
<!-- -{{ item.list}}- -->
<a-row v-for="(item2, index2) in item.list" :key="index2">
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
<a-row>
<a-col style="text-align: left" :span="6"> {{ item3.title }} </a-col>
<a-col :span="18">
<span v-if="item3.type === '1'">
<a-input v-model:value="item3.content" style="width: 90%"></a-input>
</span>
<span v-if="item3.type === '2'">
<a-select
:placeholder="`请选择` + item3.title"
v-model:value="item3.content"
mode="tags"
:disabled="disabled"
style="width: 90%"
>
<a-select-option value="">{{ `请选择` + item3.title }}</a-select-option>
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
peizhi.title
}}</a-select-option>
</a-select>
</span>
</a-col>
</a-row>
</a-col>
<a-col style="text-align: right">
<button class="ant-btn" @click="handle13DelZzbg(item, index2)" style="margin-left: 10px">删除</button>
</a-col>
</a-row>
</a-col>
</a-row>
</a-col>
<!-- 课程目标的评价方式 14 -->
<!-- <a-col v-else-if="item.type === '14'" :span="24"> -->
<a-col v-else-if="item.type === '14'" :span="24">
<a-row>
<a-col>
<a-button type="primary" @click="handle14Zzbg(item)" class="increase">添加</a-button>
</a-col>
<a-col v-if="kcmbShow">
<a-row>
<a-col :span="10">
<a-select :placeholder="`请选择课程目标`" v-model:value="checkKcmb" :disabled="disabled" style="width: 90%">
<a-select-option value="">请选择课程目标</a-select-option>
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
peizhi.title
}}</a-select-option>
</a-select>
</a-col>
<a-col :span="10">
<a-select :placeholder="`请选择考核方式`" v-model:value="checkKhfs" :disabled="disabled" mode="tags" style="width: 90%">
<a-select-option value="">请选择考核方式</a-select-option>
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in khmbDataSource" :key="index2">{{
peizhi.title
}}</a-select-option>
</a-select>
</a-col>
<a-col :span="4">
<button class="ant-btn" @click="handleKhmbqueren(item)" style="margin-left: 10px">确认</button>
</a-col>
</a-row>
</a-col>
<a-col>
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input
placeholder="请输入内容"
v-model:value="record[column.key]"
@blur="handleTwoGlxm(item)"
style="width: 100%"
></a-input>
</template>
</template>
</a-table>
</a-col>
</a-row>
</a-col>
<!-- --------------------------------------20240824------------------------------------------------------ -->
<a-col v-else> </a-col>
@ -191,22 +324,33 @@
<a-row>
<a-col :span="24">
<span class="title">教学大纲内容</span>
<a-button type="primary" @click="handleShowType(2)" style="float: right; margin-right: 8px"> <Icon icon="ant-design:form-outlined" />编辑 </a-button>
<a-button type="primary" @click="handleFabu(1)" style="float: right; margin-right: 8px;" v-if="jxdgInfo.sffb == '0'"> <Icon icon="ant-design:check-outlined"/>发布 </a-button>
<a-button type="primary" @click="handleFabu(0)" style="float: right; margin-right: 8px" v-if="jxdgInfo.sffb == '1'"> <Icon icon="ant-design:export-outlined"/>撤销</a-button>
<a-button type="primary" @click="handleShowType(2)" style="float: right; margin-right: 8px">
<Icon icon="ant-design:form-outlined" />编辑
</a-button>
<a-button type="primary" @click="handleFabu(1)" style="float: right; margin-right: 8px" v-if="jxdgInfo.sffb == '0'">
<Icon icon="ant-design:check-outlined" />发布
</a-button>
<a-button type="primary" @click="handleFabu(0)" style="float: right; margin-right: 8px" v-if="jxdgInfo.sffb == '1'">
<Icon icon="ant-design:export-outlined" />撤销</a-button
>
<a-divider />
</a-col>
<a-col :span="23" v-for="(item, index) in zyJxdgMainTable.dataSource" :key="index" style="margin:8px auto; background:#fff;border:1px solid #eee;">
<a-col
:span="23"
v-for="(item, index) in zyJxdgMainTable.dataSource"
:key="index"
style="margin: 8px auto; background: #fff; border: 1px solid #eee"
>
<a-row>
<a-col :span="24" style="height: 40px; line-height:40px; background-color:#f6f6f6">
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f6f6f6">
<span class="title">{{ item.title }}</span>
</a-col>
<!-- 单行文本 1 -->
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px;">
<span class="Text-Content" v-text="item.content"></span>
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px">
<span class="Text-Content" v-text="item.content"></span>
</a-col>
<!-- 多行文本 2 -->
<a-col v-else-if="item.type === '2'" :span="24" style="margin: 10px; ">
<a-col v-else-if="item.type === '2'" :span="24" style="margin: 10px">
<span class="Text-Content" v-text="item.content"></span>
</a-col>
<!-- 富文本 3 -->
@ -236,8 +380,8 @@
<!-- 自增单行文本 6 -->
<a-col v-else-if="item.type === '6'" :span="24">
<a-row>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px; ">
<span class="Text-Content" v-text="item2.title"></span>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
<span class="Text-Content" v-text="item2.title"></span>
</a-col>
</a-row>
</a-col>
@ -252,28 +396,88 @@
<!-- 自增多行文本 8 -->
<a-col v-else-if="item.type === '8'" :span="24">
<a-row>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px; ">
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
<span class="Text-Content" v-text="item2.title"></span>
</a-col>
</a-row>
</a-col>
<!-- 自增表格 9 -->
<a-col v-else-if="item.type === '9'" :span="24">
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
</a-table>
<a-col v-else-if="item.type === '9' || item.type === '15'" :span="24">
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-col>
<!-- 自增表格两列关联 10 -->
<a-col v-else-if="item.type === '10'" :span="24">
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
</a-table>
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-col>
<!-- 自增表格两列关联 11 -->
<a-col v-else-if="item.type === '11'" :span="24">
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
</a-table>
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-col>
<!-- --------------------------------------20240824------------------------------------------------------ -->
<!-- 课程目标 12 -->
<a-col v-else-if="item.type === '12'" :span="24">
<a-row>
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
<!-- -{{ item2 }}- -->
<a-row>
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
<!-- -{{ item3 }}- -->
<span style="line-height: 40px; margin-left: 15px" v-if="index3 == 0"> {{ item3.title }} </span>
<span style="line-height: 40px" v-else>
{{ item3.title }}
</span>
</a-col>
</a-row>
</a-col>
</a-row>
</a-col>
<!-- 教学内容重难点和课时安排 13 -->
<a-col v-else-if="item.type === '13'" :span="24">
<a-row>
<a-col>
<a-row v-for="(item2, index2) in item.list" :key="index2" class="dhxg">
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
<a-row style="padding: 10px">
<a-col style="text-align: left" :span="7"> {{ item3.title }} </a-col>
<a-col :span="15">
{{ item3.content }}
</a-col>
</a-row>
</a-col>
<a-col style="height: 20px"> &nbsp; </a-col>
</a-row>
</a-col>
</a-row>
</a-col>
<!-- 课程目标的评价方式 14 -->
<!-- <a-col v-else-if="item.type === '14'" :span="24"> -->
<a-col v-else-if="item.type === '14'" :span="24">
<a-row>
<a-col>
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<!-- <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input
placeholder="请输入内容"
v-model:value="record[column.key]"
@blur="handleTwoGlxm(item)"
style="width: 100%"
></a-input>
</template>
</template> -->
</a-table>
</a-col>
</a-row>
</a-col>
<!-- --------------------------------------20240824------------------------------------------------------ -->
<a-col v-else> </a-col>
<a-col :span="24" v-if="item.tsy">
@ -292,8 +496,16 @@
import { ref, reactive, computed, unref, onMounted } from 'vue';
import { useRouter } from 'vue-router';
import { defHttp } from '/@/utils/http/axios';
import { queryZyJxdgMainListByMainId, queryDataById, saveOrUpdate2, queryZyJxdgMainListByMainId2 } from '/@/views/kc/zyJxdgBanben/ZyJxdgBanben.api';
import { useMessage } from '/@/hooks/web/useMessage';
import {
queryZyJxdgMainListByMainId,
queryDataById,
saveOrUpdate2,
queryZyJxdgMainListByMainId2,
queryZyJxdgMainListByMainId3,
} from '/@/views/kc/zyJxdgBanben/ZyJxdgBanben.api';
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
import { Item } from 'ant-design-vue/lib/menu';
//
const { currentRoute } = useRouter();
@ -301,8 +513,16 @@ const { query } = unref(currentRoute);
const { rwbh, xqxn, type, teano } = query; //
const showType = ref<number>(0);
const jxdgInfo = ref<any>({});
const kechengInfo = ref<any>({});
const jxdgbbDataSource = ref<any>([]);
const disabled = ref<boolean>(false);
const { createMessage, createConfirm } = useMessage();
let kcmbDataSource = ref<{ title: any }[]>([]);
const checkKcmb = ref<string>('');
const checkKhfs = ref<any>([]);
const khmbDataSource = ref<any>([]);
const kcmbShow = ref<boolean>(false);
const zyJxdgMainTable = reactive<Record<string, any>>({
loading: false,
@ -351,11 +571,36 @@ function handleGlxm(item) {
}
}
}
function handleFabu(sffb){
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb,id:jxdgInfo.value.id} }).then((res) => {
init()
});
function handleFabu(sffb) {
if (sffb == '1') {
var par = jxdgInfo.value;
var title = '《' + par.kcmc + '》教学大纲(' + par.banbenName + '';
createConfirm({
iconType: 'warning',
title: '确认发布',
content: title + '是否作为' + par.xqxn + '季学期的执行教学大纲,面向学生发布?',
okText: '确认',
cancelText: '取消',
onOk: () => {
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb, id: jxdgInfo.value.id, fbName: title } }).then((res) => {
init();
});
},
});
} else {
createConfirm({
iconType: 'warning',
title: '确认撤回',
content: '确认撤回已发布的执行大纲吗?',
okText: '确认',
cancelText: '取消',
onOk: () => {
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb, id: jxdgInfo.value.id, fbName: title } }).then((res) => {
init();
});
},
});
}
}
//
function handleTwoGlxm(item) {
@ -400,9 +645,6 @@ function handleDhwb(item) {
title: '',
sort: item.list.length + 1,
});
}
//
function handleDhwbDel(item, index) {
@ -514,10 +756,45 @@ async function handleCheckBanben(record) {
jxdgInfo.value.banbenId = record.id;
jxdgInfo.value.rwbh = rwbh;
jxdgInfo.value.teacherNo = teano;
console.log('👨‍👧', jxdgInfo.value);
//
var id = record.id;
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(id);
var params = {
mainId: id,
rwbh: rwbh,
teacherNo: teano,
};
//
let zyJxdgMainDataList = await queryZyJxdgMainListByMainId3(params);
await defHttp.get({ url: '/ktgl/kcKechengbiao/getKcxxByRwbhXqxn', params: { rwbh, xqxn } }).then((res) => {
console.log('🙅‍♀️', res);
kechengInfo.value = res;
});
var list = zyJxdgMainDataList;
console.log('👯‍♀️', list);
for (var i = 0; i < list.length; i++) {
var par = list[i];
console.log('👕', par);
if (par.type == '4') {
var list1 = par.zyJxdgPzxxList;
for (var j = 0; j < list1.length; j++) {
var par2 = list1[j];
if (par2.title == '课程编码') {
par2.content = kechengInfo.value.kcbh;
} else if (par2.title == '课程名称') {
par2.content = kechengInfo.value.kcmc;
} else if (par2.title == '学分') {
par2.content = kechengInfo.value.xf;
}
}
break;
}
}
zyJxdgMainDataList = list;
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
}
async function submitForm() {
@ -539,15 +816,16 @@ async function submitForm() {
}
//
function handleShowType(type) {
console.log('🤛', type);
if (type == 1) {
jxdgInfo.value = {};
zyJxdgMainTable.dataSource = [];
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
jxdgbbDataSource.value = res.records;
});
}else if(type == 2){
} else if (type == 2) {
type = 1;
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
jxdgbbDataSource.value = res.records;
});
@ -556,6 +834,23 @@ function handleShowType(type) {
zyJxdgMainTable.dataSource = [];
defHttp.get({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/queryByRwbhList', params: { rwbh, teacherNo } }).then((res) => {
zyJxdgMainTable.dataSource = [...res];
console.log('👩‍💼', zyJxdgMainTable.dataSource);
for (var i = 0; i < zyJxdgMainTable.dataSource.length; i++) {
var par = zyJxdgMainTable.dataSource[i];
console.log('👅', par);
if (par.type == '12') {
var list = par.list2Map;
console.log('🧔', list);
var list1 = ref<{ title: any }[]>([]);
for (var j = 0; j < list.length; j++) {
var ppa = list[j][0].title;
console.log('👧', ppa);
list1.value.push({ title: ppa });
}
kcmbDataSource.value = list1.value;
}
}
});
}
showType.value = type;
@ -576,8 +871,6 @@ async function init() {
showType.value = 0;
}
});
if (jxdgInfo.value.id) {
}
}
const jxdgbbColumns = [
@ -598,6 +891,172 @@ const jxdgbbColumns = [
},
];
//--------------------------------------20240824------------------------------------------------------
//
function handleKcmbZzbg(item) {
item.list2Map = item.list2Map || [];
var item3 = item.zyJxdgPzxxList;
console.log('😁', item3);
var oneId = '';
var twoId = '';
for (var i = 0; i < item3.length; i++) {
if (i == 0) {
oneId = item3[i].id;
} else if (i == 1) {
twoId = item3[i].id;
}
}
item.list2Map.push([
{
title: '课程目标' + (item.list2Map.length + 1),
key: oneId,
sort: item.list2Map.length,
},
{
title: '',
key: twoId,
sort: item.list2Map.length,
},
]);
var list1 = ref<{ title: any }[]>([]);
for (var i = 0; i < item.list2Map.length; i++) {
var ppa = item.list2Map[i][0].title;
list1.value.push({ title: ppa });
}
kcmbDataSource.value = list1.value;
}
//
function handleKcmbZzbgDel(item, index) {
item.list2Map.splice(index, 1);
for (var i = 0; i < item.list2Map.length; i++) {
var item2 = item.list2Map[i];
item2.forEach((item3, index2) => {
if (index2 == 0) {
item3.title = '课程目标' + (i + 1);
}
item3.sort = i;
});
}
}
//
function handle2Glxm(item) {
var listtt = ref<{ title: any }[]>([]);
for (var i = 0; i < item.list2Map.length; i++) {
var ppa = item.list2Map[i][0].title;
listtt.value.push({ title: ppa });
}
kcmbDataSource.value = listtt.value;
console.log('👳‍♀️', item);
var sfsglxm = item.sfsglxm;
console.log('👱‍♀️', sfsglxm);
if (sfsglxm == '1') {
//
var list1 = item.list2Map; //
console.log('👑', list1);
if (list1 != null) {
//
var sort = item.sort; //
var alllist = zyJxdgMainTable.dataSource; //
for (var j = 0; j < alllist.length; j++) {
for (var i = 0; i < list1.length; i++) {
var item1 = list1[i][0];
var title = item1.title; //
var item2 = alllist[j]; //
item2.list = item2.list || [];
if (item2.guanlian == sort) {
//
if (i == 0) {
//
item2.list = [];
}
//
var item3 = item2.zyJxdgPzxxList;
console.log('👶', item3);
if (item3 != null && item3.length > 0) {
if (item2.type == '11') {
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
} else {
item2.list.push({ [item3[0].id]: title });
}
}
}
}
}
}
}
// handleGlxm(item);
}
function handle13Zzbg(record) {
console.log('👎', record);
var list2 = record.zyJxdgPzxxList; //
var list3: { title: any; type: string; content: string; key: string }[] = [];
for (var i = 0; i < list2.length; i++) {
var par = list2[i];
var type = '1';
if (i == 1) {
type = '2';
}
list3.push({
title: par.title,
type,
content: '',
key: par.id,
});
}
console.log('🦹', list3);
record.list.push({ list: list3 });
console.log('👩‍🔧', record);
}
//
function handle13DelZzbg(item, index) {
item.list.splice(index, 1);
}
function handle14Zzbg(item) {
console.log('🤧item', item);
kcmbShow.value = true;
khmbDataSource.value = [];
var guanlian = item.guanlian.split(',');
var khmbSort = guanlian[1];
console.log('👱khmbSort', khmbSort);
var alllist = zyJxdgMainTable.dataSource[khmbSort - 1]; //
var item2 = alllist.list;
var item3 = alllist.zyJxdgPzxxList[0];
console.log('item2', item2);
console.log('item3', item3);
for (var i = 0; i < item2.length; i++) {
var item1 = item2[i];
console.log('👩👩👦item1', item1[item3.id]);
khmbDataSource.value.push({ title: item1[item3.id] });
}
console.log('😒khmbDataSource', khmbDataSource.value);
}
function handleKhmbqueren(record) {
console.log('👩👦record', record);
var a1 = checkKcmb.value; //
var a2 = checkKhfs.value; //
let columns = reactive<any>([]);
var list2 = record.zyJxdgPzxxList;
for (var i = 0; i < list2.length; i++) {
var par = list2[i];
columns.push(par.id);
}
for (var i = 0; i < a2.length; i++) {
var khfsmc = a2[i]; //
record.list.push({ [columns[0]]: a1, [columns[1]]: khfsmc });
}
handleTwoGlxm(record);
kcmbShow.value = false;
}
//--------------------------------------20240824------------------------------------------------------
onMounted(() => {
init();
});
@ -768,31 +1227,51 @@ onMounted(() => {
.tishi {
display: flex;
flex-direction: column;
flex-direction: column;
text-align: left;
margin: 5px;
background: #fff8ef;
color: #fd8f02;
}
.tishi span{
.tishi span {
font-size: 12px;
color: #fd8f02;
text-indent: 10px;
padding: 8px;
}
.increase{
.increase {
position: absolute;
right:6px;
top:-36px;
right: 6px;
top: -36px;
}
.place-dele{
margin:10px 0;
}
.form-pattern{
.place-dele {
margin: 10px 0;
}
.form-pattern {
color: #666;
}
.Text-Content{
.Text-Content {
padding: 10px;
color: #888;
}
.dhxg {
padding: 15px;
border: 1px solid #ccc;
margin: 15px;
border-radius: 10px;
}
.dhxg:before {
border: 4px solid #fd8f02; /* 初始边框颜色 */
padding: 15px;
margin: 13px;
border-radius: 10px;
}
.dhxg:after {
border: 4px solid #000; /* 初始边框颜色 */
padding: 15px;
margin: 17px;
border-radius: 10px;
}
</style>

View File

@ -13,15 +13,22 @@
</a-row>
</a-form> -->
<!--
单行文本 1
单行文本 1
多行文本 2
富文本 3
固定表单基础信息 4
关联表格 5
自增单行文本 6
关联表格 5
自增单行文本 6
自增富文本 7
自增多行文本 8
自增表格 9
自增多行文本 8
自增表格 9
自增表格两列关联 10
自增表格多专业 11
课程目标 12
教学内容重难点和课时安排 13
课程目标的评价方式 14
考核方式 15
-->
<div style="width: 100%; text-align: center; font-weight: bold; font-size: 18px; line-height: 80px">
{{ oldInfo.title }}{{ oldInfo.twoTitle_dictText }}教学大纲
@ -31,9 +38,9 @@
:span="23"
v-for="(item, index) in zyJxdgMainTable.dataSource"
:key="index"
style="margin:8px auto;border:1px solid #f5f5f5;background:#fbfbfb;border-radius:5px;"
style="margin: 8px auto; border: 1px solid #f5f5f5; background: #fbfbfb; border-radius: 5px"
>
<a-row c>
<a-row>
<a-col :span="24">
<div class="title">{{ item.title }}</div>
</a-col>
@ -51,7 +58,7 @@
</a-col>
<!-- 固定表单基础信息 4 -->
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24">
<a-col style="margin-bottom:15px;" ></a-col>
<a-col style="margin-bottom: 15px"></a-col>
<a-form v-bind="formItemLayout">
<a-row>
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
@ -73,12 +80,12 @@
</a-col>
<!-- 自增单行文本 6 -->
<a-col v-else-if="item.type === '6'" :span="24">
<a-row>
<a-row>
<a-col>
<a-button type="primary" @click="handleDhwb(item)" class="increase" >添加</a-button>
<a-button type="primary" @click="handleDhwb(item)" class="increase">添加</a-button>
</a-col>
<a-col style="margin-bottom:15px;" ></a-col>
<a-col v-for="(item2, index2) in item.list" :key="index2" >
<a-col style="margin-bottom: 15px"></a-col>
<a-col v-for="(item2, index2) in item.list" :key="index2">
<a-input
placeholder="请输入内容"
v-model:value="item2.title"
@ -86,7 +93,7 @@
style="width: 80%; margin: 0 10px 10px 15px"
@blur="handleGlxm(item)"
></a-input>
<button type="danger" @click="handleDhwbDel(item, index2)" class="ant-btn">删除</button>
<button @click="handleDhwbDel(item, index2)" class="ant-btn">删除</button>
</a-col>
</a-row>
</a-col>
@ -98,7 +105,7 @@
</a-col>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
<j-editor placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" style="width: 500px; height: 200px" />
<button type="danger" @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin:8px 0">删除</button>
<button @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
</a-col>
</a-row>
</a-col>
@ -110,18 +117,18 @@
</a-col>
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
<a-textarea placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" />
<button type="danger" @click="handleDhwbAreaDel(item, index2)" class="ant-btn">删除</button>
<button @click="handleDhwbAreaDel(item, index2)" class="ant-btn">删除</button>
</a-col>
</a-row>
</a-col>
<!-- 自增表格 9 -->
<a-col v-else-if="item.type === '9'" :span="24">
<a-col v-else-if="item.type === '9' || item.type === '15'" :span="24">
<div><a-button type="primary" @click="handleZzbg(item)" class="increase">新增</a-button> </div>
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn" >删除</button>
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" style="width: 100%"></a-input>
@ -135,7 +142,7 @@
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input>
@ -143,13 +150,13 @@
</template>
</a-table>
</a-col>
<!-- 自增表格两列关联 11 -->
<!-- 自增表格多专业 11 -->
<a-col v-else-if="item.type === '11'" :span="24">
<div><a-button type="primary" @click="handleZzbg(item)" class="increase">新增</a-button> </div>
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<a-button type="danger" @click="handleZzbgDel(item.list, record.sort)">删除</a-button>
<button @click="handleZzbgDel(item.list, record.sort)">删除</button>
</template>
<template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input>
@ -158,6 +165,126 @@
</a-table>
</a-col>
<!-- --------------------------------------20240824------------------------------------------------------ -->
<!-- 课程目标 12 -->
<a-col v-else-if="item.type === '12'" :span="24">
<a-row>
<a-col>
<a-button type="primary" @click="handleKcmbZzbg(item)" class="increase">添加</a-button>
</a-col>
<a-col style="margin-bottom: 15px"></a-col>
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
<!-- -{{ item2 }}- -->
<a-row>
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
<!-- -{{ item3 }}- -->
<span>
<a-input
placeholder="请输入内容"
v-model:value="item3.title"
class="Sheet"
style="width: 80%; margin: 0 10px 10px 15px"
:disabled="index3 == 0"
@blur="handle2Glxm(item)"
></a-input>
</span>
</a-col>
<a-col :span="2">
<button @click="handleKcmbZzbgDel(item, index2)" class="ant-btn">删除</button>
</a-col>
</a-row>
</a-col>
</a-row>
</a-col>
<!-- 教学内容重难点和课时安排 13 -->
<a-col v-else-if="item.type === '13'" :span="24">
<a-row>
<a-col>
<a-button type="primary" @click="handle13Zzbg(item)" class="increase">添加</a-button>
</a-col>
<a-col style="margin-bottom: 15px"></a-col>
<a-col>
<!-- -{{ item.list}}- -->
<a-row v-for="(item2, index2) in item.list" :key="index2">
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
<a-row>
<a-col style="text-align: left" :span="6"> {{ item3.title }} </a-col>
<a-col :span="18">
<span v-if="item3.type === '1'">
<a-input v-model:value="item3.content" style="width: 90%"></a-input>
</span>
<span v-if="item3.type === '2'">
<a-select
:placeholder="`请选择` + item3.title"
v-model:value="item3.content"
mode="tags"
:disabled="disabled"
style="width: 90%"
>
<a-select-option value="">{{ `请选择` + item3.title }}</a-select-option>
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
peizhi.title
}}</a-select-option>
</a-select>
</span>
</a-col>
</a-row>
</a-col>
<a-col style="text-align: right">
<button class="ant-btn" @click="handle13DelZzbg(item, index2)" style="margin-left: 10px">删除</button>
</a-col>
</a-row>
</a-col>
</a-row>
</a-col>
<!-- 课程目标的评价方式 14 -->
<a-col v-else-if="item.type === '14'" :span="24">
<a-row>
<a-col>
<a-button type="primary" @click="handle14Zzbg(item)" class="increase">添加</a-button>
</a-col>
<a-col v-if="kcmbShow">
<a-row>
<a-col :span="10">
<a-select :placeholder="`请选择课程目标`" v-model:value="checkKcmb" :disabled="disabled" style="width: 90%">
<a-select-option value="">请选择课程目标</a-select-option>
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
peizhi.title
}}</a-select-option>
</a-select>
</a-col>
<a-col :span="10">
<a-select :placeholder="`请选择考核方式`" v-model:value="checkKhfs" :disabled="disabled" mode="tags" style="width: 90%">
<a-select-option value="">请选择考核方式</a-select-option>
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in khmbDataSource" :key="index2">{{
peizhi.title
}}</a-select-option>
</a-select>
</a-col>
<a-col :span="4">
<button class="ant-btn" @click="handleKhmbqueren(item)" style="margin-left: 10px">确认</button>
</a-col>
</a-row>
</a-col>
<a-col>
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
</template>
<template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input>
</template>
</template>
</a-table>
</a-col>
</a-row>
</a-col>
<!-- --------------------------------------20240824------------------------------------------------------ -->
<a-col v-else> </a-col>
<a-col :span="24">
@ -187,6 +314,7 @@ import { zyJxdgMainColumns } from '../ZyJxdgBanben.data';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { Form } from 'ant-design-vue';
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
import { spanEnds } from '/@/components/jeecg/JVxeTable/src/componentMap';
const useForm = Form.useForm;
@ -210,6 +338,13 @@ export default defineComponent({
const loading = ref(false);
const zyJxdgMainTableRef = ref();
const oldInfo = ref({});
let kcmbDataSource = ref<{ title: any }[]>([]);
const checkKcmb = ref<string>('');
const checkKhfs = ref<any>([]);
const khmbDataSource = ref<any>([]);
const kcmbShow = ref<boolean>(false);
const zyJxdgMainTable = reactive<Record<string, any>>({
loading: false,
columns: zyJxdgMainColumns,
@ -266,6 +401,22 @@ export default defineComponent({
};
//
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId3(params);
for(var i=0;i<zyJxdgMainDataList.length;i++){
var par = zyJxdgMainDataList[i];
if(par.type == '12'){
var list = par.list2Map
var list1 = ref<{ title: any }[]>([]);
for (var j = 0; j < list.length; j++) {
var ppa = list[j][0].title;
list1.value.push({ title: ppa });
}
kcmbDataSource.value = list1.value;
}
}
console.log('💁‍♀️', zyJxdgMainDataList);
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
}
@ -290,6 +441,29 @@ export default defineComponent({
async function submitForm() {
const alllist = zyJxdgMainTable.dataSource;
// for (var i = 0; i < alllist.length; i++) {
// var item = alllist[i];
// console.log('👨🎤', item);
// console.log('👨🎤', item.type);
// if (item.type == '13') {
// var list = item.list;
// for(var j=0;j<list.length;j++){
// var item2 = list[j].list;
// if(item2.length>0){
// item2.forEach((element) => {
// if (element.type == '2') {
// console.log('--->',element);
// if(element.content.indexOf(',')>-1){
// element.content = element.split(",");
// }
// }
// });
// }
// }
// }
// }
console.log('✋', alllist);
var values = {};
@ -392,6 +566,172 @@ export default defineComponent({
}
}
//--------------------------------------20240824------------------------------------------------------
//
function handleKcmbZzbg(item) {
item.list2Map = item.list2Map || [];
var item3 = item.zyJxdgPzxxList;
console.log('😁', item3);
var oneId = '';
var twoId = '';
for (var i = 0; i < item3.length; i++) {
if (i == 0) {
oneId = item3[i].id;
} else if (i == 1) {
twoId = item3[i].id;
}
}
item.list2Map.push([
{
title: '课程目标' + (item.list2Map.length + 1),
key: oneId,
sort: item.list2Map.length,
},
{
title: '',
key: twoId,
sort: item.list2Map.length,
},
]);
var list1 = ref<{ title: any }[]>([]);
for (var i = 0; i < item.list2Map.length; i++) {
var ppa = item.list2Map[i][0].title;
list1.value.push({ title: ppa });
}
kcmbDataSource.value = list1.value;
}
//
function handleKcmbZzbgDel(item, index) {
item.list2Map.splice(index, 1);
for (var i = 0; i < item.list2Map.length; i++) {
var item2 = item.list2Map[i];
item2.forEach((item3, index2) => {
if (index2 == 0) {
item3.title = '课程目标' + (i + 1);
}
item3.sort = i;
});
}
}
//
function handle2Glxm(item) {
var listtt = ref<{ title: any }[]>([]);
for (var i = 0; i < item.list2Map.length; i++) {
var ppa = item.list2Map[i][0].title;
listtt.value.push({ title: ppa });
}
kcmbDataSource.value = listtt.value;
console.log('👳‍♀️', item);
var sfsglxm = item.sfsglxm;
console.log('👱‍♀️', sfsglxm);
if (sfsglxm == '1') {
//
var list1 = item.list2Map; //
console.log('👑', list1);
if (list1 != null) {
//
var sort = item.sort; //
var alllist = zyJxdgMainTable.dataSource; //
for (var j = 0; j < alllist.length; j++) {
for (var i = 0; i < list1.length; i++) {
var item1 = list1[i][0];
var title = item1.title; //
var item2 = alllist[j]; //
item2.list = item2.list || [];
if (item2.guanlian == sort) {
//
if (i == 0) {
//
item2.list = [];
}
//
var item3 = item2.zyJxdgPzxxList;
console.log('👶', item3);
if (item3 != null && item3.length > 0) {
if (item2.type == '11') {
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
} else {
item2.list.push({ [item3[0].id]: title });
}
}
}
}
}
}
}
// handleGlxm(item);
}
function handle13Zzbg(record) {
console.log('👎', record);
var list2 = record.zyJxdgPzxxList; //
var list3: { title: any; type: string; content: string; key: string }[] = [];
for (var i = 0; i < list2.length; i++) {
var par = list2[i];
var type = '1';
if (i == 1) {
type = '2';
}
list3.push({
title: par.title,
type,
content: '',
key: par.id,
});
}
console.log('🦹', list3);
record.list.push({ list: list3 });
console.log('👩‍🔧', record);
}
//
function handle13DelZzbg(item, index) {
item.list.splice(index, 1);
}
function handle14Zzbg(item) {
console.log('🤧item', item);
kcmbShow.value = true;
khmbDataSource.value = [];
var guanlian = item.guanlian.split(',');
var khmbSort = guanlian[1];
console.log('👱khmbSort', khmbSort);
var alllist = zyJxdgMainTable.dataSource[khmbSort - 1]; //
var item2 = alllist.list;
var item3 = alllist.zyJxdgPzxxList[0];
console.log('item2', item2);
console.log('item3', item3);
for (var i = 0; i < item2.length; i++) {
var item1 = item2[i];
console.log('👩👩👦item1', item1[item3.id]);
khmbDataSource.value.push({ title: item1[item3.id] });
}
console.log('😒khmbDataSource', khmbDataSource.value);
}
function handleKhmbqueren(record) {
console.log('👩👦record', record);
var a1 = checkKcmb.value; //
var a2 = checkKhfs.value; //
let columns = reactive<any>([]);
var list2 = record.zyJxdgPzxxList;
for (var i = 0; i < list2.length; i++) {
var par = list2[i];
columns.push(par.id);
}
for (var i = 0; i < a2.length; i++) {
var khfsmc = a2[i]; //
record.list.push({ [columns[0]]: a1, [columns[1]]: khfsmc });
}
handleTwoGlxm(record);
kcmbShow.value = false;
}
//--------------------------------------20240824------------------------------------------------------
//
function getTableColumns(list) {
let columns = reactive<any>([]);
@ -425,7 +765,6 @@ export default defineComponent({
key: 'action',
};
columns.push(inePar2);
console.log('👺11111111', columns);
return columns;
}
//
@ -445,7 +784,6 @@ export default defineComponent({
var item2 = alllist[j]; //
item2.list = item2.list || [];
if (item2.guanlian == sort) {
console.log('🧚222222222222', item2);
//
if (i == 0) {
//
@ -455,7 +793,6 @@ export default defineComponent({
var item3 = item2.zyJxdgPzxxList;
console.log('👶', item3);
if (item3 != null && item3.length > 0) {
console.log('✊item2.type--->', item2.type);
if (item2.type == '11') {
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
} else {
@ -468,15 +805,18 @@ export default defineComponent({
}
}
}
//
function handleTwoGlxm(item) {
var sfsglxm = item.sfsglxm;
if (sfsglxm == '1') {
//
var list1 = item.list; //
console.log('👄', list1);
if (list1 != null) {
//
var sort = item.sort; //
console.log('👨‍🚒', sort);
var alllist = zyJxdgMainTable.dataSource; //
for (var j = 0; j < alllist.length; j++) {
for (var i = 0; i < list1.length; i++) {
@ -540,6 +880,19 @@ export default defineComponent({
handleZzbg,
handleZzbgDel,
handleTwoGlxm,
handleKcmbZzbg,
handleKcmbZzbgDel,
handle2Glxm,
handle13Zzbg,
handle13DelZzbg,
kcmbDataSource,
checkKcmb,
kcmbShow,
checkKhfs,
handle14Zzbg,
khmbDataSource,
handleKhmbqueren,
};
},
});
@ -550,7 +903,7 @@ export default defineComponent({
height: 40px;
line-height: 40px;
background-color: rgb(246, 246, 246);
padding:0 20px;
padding: 0 20px;
}
.tishi {
width: 100%;

View File

@ -39,7 +39,7 @@
<j-dict-select-tag type='list' v-model:value="item.type" dictCode="jxdglx" :disabled="disabled" style=" width: 100%;"/>
</a-col>
<a-col :span="6">
<a-select placeholder="请选择关联第几个项目" v-model:value="item.guanlian" :disabled="disabled" style="margin-left:-12px;width: 100%;">
<a-select placeholder="请选择关联第几个项目" v-model:value="item.guanlian" mode="tags" :disabled="disabled" style="margin-left:-12px;width: 100%;">
<a-select-option value="">请选择关联第几个项目</a-select-option>
<a-select-option :value="peizhi.sort" v-for="(peizhi,index2) in zyJxdgMainTable.dataSource" :key="index2">{{peizhi.title}}</a-select-option>
</a-select>
@ -51,21 +51,26 @@
<a-input v-model:value="item.tsy" placeholder="请输入提示语" :disabled="disabled" class="Prompt-language" />
</a-col>
<a-col :span="3">
<button type="danger" @click="handleOneDel(item,index)" class="ant-btn" style="margin-left:10px">删除</button>
<button @click="handleOneDel(item,index)" class="ant-btn" style="margin-left:10px">删除</button>
</a-col>
<!--
单行文本 1 a
单行文本 1
多行文本 2
富文本 3
固定表单基础信息 4
关联表格 5 a
自增单行文本 6 a
关联表格 5
自增单行文本 6
自增富文本 7
自增多行文本 8
自增表格 9 a
自增表格两列关联 10 a
自增表格 9
自增表格两列关联 10
自增表格多专业 11
课程目标 12
教学内容重难点和课时安排 13
课程目标的评价方式 14
-->
<a-col v-if="item.type==='4' || item.type==='5' || item.type==='9'|| item.type==='10'|| item.type==='11'">
<a-col v-if="item.type==='4' || item.type==='5' || item.type==='9'|| item.type==='10'|| item.type==='11'|| item.type==='12'|| item.type==='13'|| item.type==='14'|| item.type==='15'">
<a-row>
<a-col :span="24">
<a-button type="primary" @click="handleTwoType(item)" class="margin10" preIcon="ant-design:plus-outlined">新增字段</a-button>
@ -76,12 +81,13 @@
<a-input v-model:value="twoItem.title" placeholder="请输入选项" :disabled="disabled" class="fields-add"/>
</a-col>
<a-col :span="3"><close-outlined />
<button type="danger" @click="handleTwoDel(item,index2)" class="ant-btn" style="margin-left:10px">删除</button>
<button @click="handleTwoDel(item,index2)" class="ant-btn" style="margin-left:10px">删除</button>
</a-col>
</a-row>
</a-col>
</a-row>
</a-col>
</a-row>
</a-col>
</a-row>
@ -185,6 +191,13 @@
await queryMainData(row.id);
//
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(row['id']);
for(var i=0;i<zyJxdgMainDataList.length;i++){
var par = zyJxdgMainDataList[i];
var guanlian = par.guanlian;
if(guanlian){
zyJxdgMainDataList[i].guanlian = guanlian.split(",");
}
}
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
}
@ -207,10 +220,15 @@
async function submitForm() {
const mainData = await getFormData();
const subData = zyJxdgMainTable.dataSource;
for(var i=0;i<subData.length;i++){
var par = subData[i];
var guanlian = par.guanlian;
if(guanlian){
subData[i].guanlian = guanlian +"";
}
}
console.log('主表数据11111', subData)
const values = Object.assign({}, dbData, mainData);
console.log('主表数据22222222', subData.value)
console.log('主表数据22222222', subData.target)
values.zyJxdgMainList = subData;
console.log('表单提交数据', values)
const isUpdate = values.id ? true : false

View File

@ -1,116 +1,209 @@
<template>
<div>
<a-row class="rowGutter" :gutter="[16, 16]">
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item, index) in listData"
:key="index" style="margin-bottom: 40px;">
<div style="border: 2px #eef1f2 solid;">
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item, index) in listData" :key="index" style="margin-bottom: 40px">
<div style="border: 2px #eef1f2 solid">
<div>
<div style="width: 100%;height: 20px;background-color: #1c84c6;"></div>
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 10px;height: 70px;font-weight: 600;font-size: 16px;">
<div style="width: 100%; height: 20px; background-color: #1c84c6"></div>
<div
style="
width: 100%;
white-space: normal;
word-break: break-all;
overflow: hidden;
padding: 10px;
height: 70px;
font-weight: 600;
font-size: 16px;
"
>
{{ item.kcmc }} <span v-if="item.szkc == '1'" title="思政课程"></span>
</div>
</div>
<a-divider style="margin: 0px;color: #eef1f2;" />
<div style="padding: 20px;font-weight: 600;">
<a-divider style="margin: 0px; color: #eef1f2" />
<div style="padding: 20px; font-weight: 600">
<a-row>
<a-col :span="16">
<div style="height: 38px;font-size: 16px;font-weight: 700;">{{ item.skjs }}</div>
<div style="font-size: 14px;font-weight: 700;height: 50px;">{{ item.kkdw }}</div>
<div style="height: 38px; font-size: 16px; font-weight: 700">{{ item.skjs }}</div>
<div style="font-size: 14px; font-weight: 700; height: 50px">{{ item.kkdw }}</div>
</a-col>
<a-col :span="8" style="text-align: center;height: 70px;">
<div style="color: #1c84c6;font-size: 24px;font-weight: 600;">{{ item.xkrs }}</div>
<div style="font-size: 14px;font-weight: 700;">选课人数</div>
<a-col :span="8" style="text-align: center; height: 70px">
<div style="color: #1c84c6; font-size: 24px; font-weight: 600">{{ item.xkrs }}</div>
<div style="font-size: 14px; font-weight: 700">选课人数</div>
</a-col>
<a-col :span="24" style="margin-top:0px;font-weight: 700;">
<a-col :span="24" style="margin-top: 0px; font-weight: 700">
<div>
<span>{{ item.hh }}</span>
<span>{{ item.hh }}</span
>
</div>
</a-col>
<a-col :span="24">
<div style="width:100%;text-align: center;font-weight: 700;">
线下上课地点
</div>
<div style="width: 100%; text-align: center; font-weight: 700"> 线下上课地点 </div>
</a-col>
<a-col :span="24">
<div style="height: 50px;font-weight: 700;">
<div style="height: 50px; font-weight: 700">
{{ item.skdd }}
</div>
</a-col>
<a-col :span="24" v-if="listType == 1 || listType == '1'">
<a-row style="text-align: center;" v-if="getSysConfig().flag9=='1'">
<a-row style="text-align: center" v-if="getSysConfig().flag9 == '1'">
<a-col :span="12">
<a-button type="primary" :class="handleZhjs(item.sfyzhjs)" @click="toLivePage(item)" :disabled="item.sfyzhjs=='0' " v-if="item.sftkb!='1'" style="color: white;">听课</a-button>
<a-button type="primary" class="yyyClass" @click="toLivePage(item)" :disabled="true" v-else style="color: white;" :title="`停课事由:`+item.tksy">停课</a-button>
<a-button
type="primary"
:class="handleZhjs(item.sfyzhjs)"
@click="toLivePage(item)"
:disabled="item.sfyzhjs == '0'"
v-if="item.sftkb != '1'"
style="color: white"
>听课</a-button
>
<a-button
type="primary"
class="yyyClass"
@click="toLivePage(item)"
:disabled="true"
v-else
style="color: white"
:title="`停课事由:` + item.tksy"
>停课</a-button
>
</a-col>
<a-col :span="12" v-if="item.sftkb=='1'">
<a-button type="primary" class="bcClass" @click="funpingjia(item)" :disabled="true" style="color: white;" :title="`停课事由:`+item.tksy">评价</a-button>
<a-col :span="12" v-if="item.sftkb == '1'">
<a-button
type="primary"
class="bcClass"
@click="funpingjia(item)"
:disabled="true"
style="color: white"
:title="`停课事由:` + item.tksy"
>评价</a-button
>
</a-col>
<a-col :span="12" v-else>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="color: white;">评价</a-button>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="color: white">评价</a-button>
</a-col>
<!-- <a-col :span="8">
<a-button type="primary" class="bcClass" @click="handleBaocuo(item)">报错</a-button>
</a-col> -->
</a-row>
<a-row style="text-align: center;" v-else>
<a-col :span="24" v-if="item.sftkb=='1'">
<a-button type="primary" class="bcClass" @click="funpingjia(item)" :disabled="true" style="color: white;" :title="`停课事由:`+item.tksy">评价</a-button>
<a-row style="text-align: center" v-else>
<a-col :span="24" v-if="item.sftkb == '1'">
<a-button
type="primary"
class="bcClass"
@click="funpingjia(item)"
:disabled="true"
style="color: white"
:title="`停课事由:` + item.tksy"
>评价</a-button
>
</a-col>
<a-col :span="24" v-else>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="color: white;">评价</a-button>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="color: white">评价</a-button>
</a-col>
</a-row>
</a-col>
<!-- <a-col :span="24" style="text-align: center;"> -->
<a-col :span="24" v-else style="text-align: center;">
<a-col :span="24" v-else style="text-align: center">
<div v-show="!isNow(item)">
<span v-if="props.type == 'zzsk'">
<!-- 正在上课的就给个评价 -->
<!-- <a-button type="primary" class="bcClass" @click="funpingjia(item)" >评价</a-button> -->
<span v-if="pjDisabled">
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="background-color: #dfdfdf;" disabled>评价</a-button>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="background-color: #dfdfdf" disabled>评价</a-button>
</span>
<span v-else>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-if="item.sftkb=='1'" style="color: white;" :disabled="true" :title="`停课事由:`+item.tksy">评价</a-button>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-else style="color: white;" >评价</a-button>
<a-button
type="primary"
class="bcClass"
@click="funpingjia(item)"
v-if="item.sftkb == '1'"
style="color: white"
:disabled="true"
:title="`停课事由:` + item.tksy"
>评价</a-button
>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-else style="color: white">评价</a-button>
</span>
</span>
<span v-else>
<a-button type="primary" class="yyyClass" disabled v-if="item.sfyy==1 && item.isdeleted==0">已预约</a-button>
<a-button type="primary" class="yyClass" @click="funYuyue(item)" v-if="item.sfyy==0 || (item.sfyy==1 && item.isdeleted==1)" :disabled="item.sftkb=='1'" style="color: white;">预约</a-button>
<a-button type="primary" class="yyyClass" disabled v-if="item.sfyy == 1 && item.isdeleted == 0">已预约</a-button>
<a-button
type="primary"
class="yyClass"
@click="funYuyue(item)"
v-if="item.sfyy == 0 || (item.sfyy == 1 && item.isdeleted == 1)"
:disabled="item.sftkb == '1'"
style="color: white"
>预约</a-button
>
</span>
</div>
<div v-show="isNow(item)">
<span v-if="pjDisabled">
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="background-color: #dfdfdf;" disabled>评价</a-button>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="background-color: #dfdfdf" disabled>评价</a-button>
</span>
<span v-else>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-if="item.sftkb=='1'" :disabled="true" style="color: white;" :title="`停课事由:`+item.tksy">评价</a-button>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-else style="color: white;">评价</a-button>
<a-button
type="primary"
class="bcClass"
@click="funpingjia(item)"
v-if="item.sftkb == '1'"
:disabled="true"
style="color: white"
:title="`停课事由:` + item.tksy"
>评价</a-button
>
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-else style="color: white">评价</a-button>
</span>
</div>
<!-- <a-col :span="24"> -->
<span style="margin-left: 10px;">
<a-button type="primary" class="yyyClass" disabled v-if="item.sfyy == 1 && item.isdeleted == 0">已预约</a-button>
<a-button
type="primary"
class="yyClass"
@click="funYuyue(item)"
v-if="item.sfyy == 0 || (item.sfyy == 1 && item.isdeleted == 1)"
:disabled="item.sftkb == '1'"
style="color: white"
>预约</a-button
>
</span>
</div>
<!-- <a-col :span="24"> -->
<!-- <a-button type="primary" class="bcClass" @click="handleBaocuo(item)">报错</a-button> -->
</a-col>
</a-row>
</div>
</div>
</a-col>
<a-col :span="24" style="line-height: 50px">
<div v-show="1 == pageNo && current > 0 && total > 4">
<div style="text-align: center"><a @click="funMore">更多...</a></div>
</div>
<div v-show="current == 0">
<div style="text-align: center"><a @click="funMore">暂无课堂</a></div>
</div>
<div v-show="1 < pageNo && pageNo < current">
<div style="text-align: center"><a @click="funMore">更多...</a></div>
<div style="text-align: right; margin-top: -51px"><a @click="funShouqi">收起</a></div>
</div>
</a-col>
</a-row>
<!-- 报错列表 -->
<KcErrorreportIndexModal ref="kcErrorreportIndexModal"></KcErrorreportIndexModal>
<addModalPage ref="tingKeZuJiAddModal"/>
<addModalPage ref="tingKeZuJiAddModal" />
</div>
</template>
<script lang="ts" setup>
import { ref,watch,reactive,defineExpose, createVNode,h } from 'vue';
import { ref, watch, reactive, defineExpose, createVNode, h } from 'vue';
import { defHttp } from '/@/utils/http/axios';
import { useMessage } from '/@/hooks/web/useMessage';
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue'
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue';
import { getUserId, addTingKeLog, getSysConfig } from '/@/views/site/utils/index';
import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue';
import { useRouter } from 'vue-router'
import { useRouter } from 'vue-router';
import dayjs from 'dayjs';
import { Modal } from 'ant-design-vue';
import { CloseOutlined } from '@ant-design/icons-vue';
@ -122,134 +215,170 @@ const kcErrorreportIndexModal = ref();
const tingKeZuJiAddModal = ref();
const route = useRouter();
const pageNo = ref<number>(1);
const pageSize = ref<number>(1);
const current = ref<number>(0);
const total = ref<number>(0);
const emit = defineEmits(['setTotal']);
const { createMessage } = useMessage();
const confirmLoading = ref<boolean>(false);
const pjDisabled = ref<boolean>(false);
let listData = ref<any>([]);
let listType = ref<any>(String);
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getKclblist', params });
const listTkjlApi = (params) => defHttp.get({ url: '/kcTingke/kcTingke/findTingKeZuJiBytingketimeAndUserId', params });
const props = defineProps({
queryParam:{ type:Object },
queryParam: { type: Object },
type: { type: String },
});
//
watch(() => props.queryParam, async (newRow, oldRow) => {
var newRowa = ref<any>({});
newRowa = newRow
listType = newRowa.type
},{ deep: true });
watch(
() => props.queryParam,
async (newRow, oldRow) => {
var newRowa = ref<any>({});
newRowa = newRow;
listType = newRowa.type;
},
{ deep: true }
);
//
function rkbLoadData() {
var newRow = ref<any>({});
var newRow = ref<any>({});
newRow = props.queryParam;
newRow.userid = getUserId();
if(!props.queryParam.pageSize){
newRow.pageSize = -1
}else{
newRow.pageSize = 20
if (!props.queryParam.pageSize) {
newRow.pageSize = -1;
} else {
newRow.pageNo = pageNo.value;
newRow.pageSize = 20;
}
newRow.sftkb = '1'
console.log(`🚀 ~ file: kclbList.vue:109 ~ rkbLoadData ~ newRow:`, newRow)
if(newRow.hh!=","){
if(pageNo.value == 0){
pageNo.value = 1;
}
newRow.sftkb = '1';
console.log(`🚀 ~ file: kclbList.vue:109 ~ rkbLoadData ~ newRow:`, newRow);
if (newRow.hh != ',') {
// listType.value = newRow.type
// console.log(`🚀 ~ file: kclbList.vue:111 ~ rkbLoadData ~ listType:`, listType)
list(newRow).then(res => {
console.log(`🚀 ~ list ~ res:`, res)
listData.value = res.records;
console.log(`🚀 ~ file: kclbList.vue:113 ~ list ~ listData.value:`, listData.value)
list(newRow).then((res) => {
console.log('🙅‍♀️', res);
// listData.value = res.records;
listData.value.push(...res.records)
var bxqkssj = new Date(getSysConfig().bxqkssj);
var bxqjssj = new Date(getSysConfig().bxqjssj);
var nowDate = new Date();
console.log(`🚀 ~ file: kclbList.vue:143 ~ rkbLoadData ~ bxqkssj.getTime():`, bxqkssj.getTime())
console.log(`🚀 ~ file: kclbList.vue:144 ~ rkbLoadData ~ nowDate.getTime():`, nowDate.getTime())
console.log(`🚀 ~ file: kclbList.vue:145 ~ rkbLoadData ~ bxqjssj.getTime():`, bxqjssj.getTime())
if(bxqkssj.getTime()>nowDate.getTime()||bxqjssj.getTime()<nowDate.getTime()){
pjDisabled.value = true
console.log(`🚀 ~ file: kclbList.vue:148 ~ rkbLoadData ~ pjDisabled:`, pjDisabled)
}
var bxqjssj = new Date(getSysConfig().bxqjssj);
var nowDate = new Date();
if (bxqkssj.getTime() > nowDate.getTime() && bxqjssj.getTime() < nowDate.getTime()) {
pjDisabled.value = true;
console.log(`🚀 ~ file: kclbList.vue:148 ~ rkbLoadData ~ pjDisabled:`, pjDisabled);
}
// current.value = res.current;
// total.value = res.total;
current.value = res.pages
total.value = res.total
emit('setTotal', res.total);
})
});
}
}
function handleZhjs(sfyzhjs){
if(sfyzhjs=='0'){
function handleZhjs(sfyzhjs) {
if (sfyzhjs == '0') {
return 'yyyClass';
}else{
} else {
return 'yyClass';
}
}
//
async function funYuyue(record){
var params = {ketangbiaoid:record.id,userid:getUserId(),username:userStore?.getUserInfo?.realname,skrq:record.skrq,hh:record.hh,zbpx:record.zbpx,link:'',isdeleted:0};
async function funYuyue(record) {
var params = {
ketangbiaoid: record.id,
userid: getUserId(),
username: userStore?.getUserInfo?.realname,
skrq: record.skrq,
hh: record.hh,
zbpx: record.zbpx,
link: '',
isdeleted: 0,
};
const isUpdate = ref<boolean>(false);
await saveOrUpdate(params, isUpdate.value).then((res) => {
if (res.success) {
createMessage.success("预约成功");
rkbLoadData();
//
} else {
createMessage.warning(res.message);
}
})
.finally(() => {
confirmLoading.value = false;
});
await saveOrUpdate(params, isUpdate.value)
.then((res) => {
if (res.success) {
createMessage.success('预约成功');
rkbLoadData();
//
} else {
createMessage.warning(res.message);
}
})
.finally(() => {
confirmLoading.value = false;
});
}
function isNow(item){
const jssj = dayjs(item.skrq + " " +item.jssj, 'YYYY-MM-DD hh:mm:ss');
/**
* 收起
*/
function funShouqi() {
listData.value = [];
pageNo.value = 1;
rkbLoadData();
}
/**
* 加载更多
*/
function funMore() {
console.log(`🚀 ~ file: index.vue:83 ~ funMore ~ current>pageNo:`, current, pageNo);
if (current.value > pageNo.value) {
pageNo.value++;
rkbLoadData();
} else {
createMessage.error('没有更多数据了!');
}
}
function isNow(item) {
const jssj = dayjs(item.skrq + ' ' + item.jssj, 'YYYY-MM-DD hh:mm:ss');
const dqsj = dayjs(new Date());
if(jssj.unix() < dqsj.unix()){
if (jssj.unix() < dqsj.unix()) {
return true;
}else{
} else {
return false;
}
}
function funpingjia(record){
var item = {ketangbiaoid:record.id}
let userid = getUserId();
listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
var list = res
console.log(`🚀 ~ file: list.vue:106 ~ listTkjlApi ~ list:`, list)
if(list.length>0){
var score = list[0].score
if(score){
Modal.error({
function funpingjia(record) {
var item = { ketangbiaoid: record.id };
let userid = getUserId();
listTkjlApi({ userid: userid, ketangbiaoid: item.ketangbiaoid }).then((res) => {
var list = res;
console.log(`🚀 ~ file: list.vue:106 ~ listTkjlApi ~ list:`, list);
if (list.length > 0) {
var score = list[0].score;
if (score) {
Modal.error({
icon: createVNode({}),
content: h('div', {style:'height:200px;text-align:center;'}, [
h('icon', {style:'font-size:80px;font-weight:600;color:red;'}, createVNode(CloseOutlined)),
h('p',{style:'font-size:22px;font-weight:600;color:black;'}, '已经对此课程进行评价,不可重复评价!'),
content: h('div', { style: 'height:200px;text-align:center;' }, [
h('icon', { style: 'font-size:80px;font-weight:600;color:red;' }, createVNode(CloseOutlined)),
h('p', { style: 'font-size:22px;font-weight:600;color:black;' }, '已经对此课程进行评价,不可重复评价!'),
]),
okText: 'OK',
width:'500px',
width: '500px',
});
}else{
tingKeZuJiAddModal.value.view(item)
} else {
tingKeZuJiAddModal.value.view(item);
}
} else {
tingKeZuJiAddModal.value.view(item);
}
}else{
tingKeZuJiAddModal.value.view(item)
}
});
});
}
/**
* 报错事件
@ -259,17 +388,17 @@ function handleBaocuo(item) {
kcErrorreportIndexModal.value.add(item);
}
function toLivePage(item){
function toLivePage(item) {
// route.push({ path:'/site/liveRoom',query:{ id: item.jsbh } })
addTingKeLog(getUserId(),item.id);
let routeData = route.resolve({ path:'/site/liveRoom',query:{ id: item.jsbh, ktId: item.id } });
addTingKeLog(getUserId(), item.id);
let routeData = route.resolve({ path: '/site/liveRoom', query: { id: item.jsbh, ktId: item.id } });
window.open(routeData.href, '_blank');
};
}
enum Api {
list = '/kcYuyue/kcYuyue/list',
save='/kcYuyue/kcYuyue/add',
edit='/kcYuyue/kcYuyue/edit',
save = '/kcYuyue/kcYuyue/add',
edit = '/kcYuyue/kcYuyue/edit',
deleteOne = '/kcYuyue/kcYuyue/delete',
deleteBatch = '/kcYuyue/kcYuyue/deleteBatch',
importExcel = '/kcYuyue/kcYuyue/importExcel',
@ -277,25 +406,35 @@ enum Api {
}
defineExpose({
rkbLoadData
rkbLoadData,
});
//
const saveOrUpdate = (params, isUpdate) => {
let url = isUpdate ? Api.edit : Api.save;
console.log(`🚀 ~ file: kclbList.vue:107 ~ saveOrUpdate ~ url:`, url)
console.log(`🚀 ~ file: kclbList.vue:107 ~ saveOrUpdate ~ url:`, url);
return defHttp.post({ url: url, params }, { isTransformResponse: false });
}
};
</script>
<style lang="less" scoped>
.yyyClass{
background: #6cafda;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
.yyyClass {
background: #6cafda;
font-weight: 600;
color: #fff;
border-radius: 5px;
line-height: 23px;
}
.yyClass{
background-color: #1c84c6;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
.yyClass {
background-color: #1c84c6;
font-weight: 600;
color: #fff;
border-radius: 5px;
line-height: 23px;
}
.bcClass{
background-color: #1c84c6;font-weight: 600;border-radius: 5px;line-height: 23px;
.bcClass {
background-color: #1c84c6;
font-weight: 600;
border-radius: 5px;
line-height: 23px;
}
</style>

View File

@ -20,7 +20,7 @@
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="请选择课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
@ -30,14 +30,18 @@
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
<a-form-item label="" style="padding: 10px;">
<a-input-search placeholder="课程或教师名称" v-model:value="queryParam.ywmc" enter-button="查询" @search="zbLoadData"></a-input-search>
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
<a-button type="primary" @click="zbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
</a-col>
</a-row>
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
@ -49,7 +53,6 @@
{{xxkcTotal}}</div>
</div>
</template>
<div style="width: 100%; margin-top: -40px; text-align: right; margin-bottom: 30px; color: #9d9d9d;">说明日课表默认展示20条数据请根据自行的需求进行按条件检索</div>
<kclbList ref="wqxxkcModeal" :queryParam="xxkcqueryParam" @setTotal="xxkcTotal = $event;jzzyload()"></kclbList>
</a-tab-pane>

View File

@ -16,6 +16,11 @@
<JDictSelectTag placeholder="请选择教学楼" v-model:value="queryParam.jzwh" :dictCode="`jxl_now_hh_view,jzwmc,jzwh,hh='`+queryParam.jieci+`' order by sort asc`" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
@ -23,7 +28,7 @@
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">

View File

@ -21,6 +21,11 @@
<JDictSelectTag placeholder="请选择教学楼" v-model:value="queryParam.jzwh" :dictCode="`jxl_now_hh_view,jzwmc,jzwh,hh='`+queryParam.jieci+`' order by sort asc`" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
@ -28,7 +33,7 @@
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">

View File

@ -7,7 +7,7 @@
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" :dictCode="`kc_kkdw_view,kkdw,kkdw`" v-if="getSysConfig().sfbmd=='n'" />
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" :dictCode="`kc_kkdw_view,kkdw,kkdw`" v-if="getSysConfig().sfbmd=='n'"/>
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" :dictCode="`t_bmd_kkdw,kkdw,kkdw,jgh = '${userStore?.getUserInfo?.username}'`" v-else />
</a-form-item>
</a-col>
@ -18,7 +18,7 @@
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="请选择课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">

View File

@ -16,6 +16,11 @@
</a-select>
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>

View File

@ -18,6 +18,11 @@
</a-select>
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;">
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>

View File

@ -45,12 +45,12 @@
</template>
<span @click="getGzt('kcjc')">课堂测验</span>
</a-menu-item>
<!-- <a-menu-item key="sub5">
<a-menu-item key="sub6">
<template #icon>
<AppstoreAddOutlined />
<BlockOutlined />
</template>
<span @click="getGzt('gongju')">到课识别率</span>
</a-menu-item> -->
</a-menu-item>
<!-- <a-sub-menu key="sub3">
<template #icon>
<PieChartOutlined />
@ -103,6 +103,9 @@
<a-menu-item key="sub5">
<span @click="getGzt('kcjc')">课堂测验</span>
</a-menu-item>
<a-menu-item key="sub5">
<span @click="getGzt('gongju')">到课识别率</span>
</a-menu-item>
<!-- <a-menu-item key="sub5">
<span @click="getGzt('dcwj')">问卷调查</span>
</a-menu-item> -->
@ -131,7 +134,7 @@ import { ref, onMounted, unref,defineExpose } from 'vue';
import { getUserSf, getSysConfig } from '/@/views/site/utils/index';
import { defHttp } from '/@/utils/http/axios';
import { useRouter } from 'vue-router';
import { MailOutlined, AppstoreOutlined, SettingOutlined, MenuUnfoldOutlined,PieChartOutlined,BarChartOutlined,SnippetsOutlined,AppstoreAddOutlined } from '@ant-design/icons-vue';
import { MailOutlined, AppstoreOutlined, SettingOutlined, MenuUnfoldOutlined,PieChartOutlined,BarChartOutlined,SnippetsOutlined,AppstoreAddOutlined,BlockOutlined } from '@ant-design/icons-vue';
import headerPage from '/@/views/site/common/header.vue';
import footerPage from '/@/views/site/common/footer.vue';

View File

@ -765,7 +765,7 @@ function searchQueryZyxq() {
//
function handleAddOne() {
defHttp.post({ url: '/zyInfo/zyInfo/addOne', params: { rwbh, xnxq: xqxn, teano } }).then((res) => {
defHttp.post({ url: '/zyInfo/zyInfo/addOne', params: { rwbh, xnxq: xqxn, teano,zyLeixing: '0' } }).then((res) => {
handleSuccess2();
});
}