修改功能

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_API_URL=/jeecg-boot
#后台接口全路径地址(必填) #后台接口全路径地址(必填)
VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/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://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 # VITE_GLOB_DOMAIN_URL=http://210.47.29.100/jeecg-boot
#RTC服务器地址 #RTC服务器地址
@ -39,5 +40,5 @@ VITE_USE_PWA = false
VITE_LEGACY = 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"> <div v-if="showType == 999">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<span class="title">教学大纲内容</span> <span class="title">{{jxdgInfo.fbName}}{{jxdgInfo.xqxn}}季学期执行教学大纲</span>
<a-divider /> <a-divider />
</a-col> </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-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> <span class="title">{{ item.title }}</span>
</a-col> </a-col>
<!-- 单行文本 1 --> <!-- 单行文本 1 -->
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px; "> <a-col v-if="item.type === '1'" :span="24" style="margin: 10px">
<span class="message-word" v-text="item.content"></span> <span class="Text-Content" v-text="item.content"></span>
</a-col> </a-col>
<!-- 多行文本 2 --> <!-- 多行文本 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="message-word" v-text="item.content"></span> <span class="Text-Content" v-text="item.content"></span>
</a-col> </a-col>
<!-- 富文本 3 --> <!-- 富文本 3 -->
<a-col v-else-if="item.type === '3'" :span="24"> <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> </a-col>
<!-- 固定表单基础信息 4 --> <!-- 固定表单基础信息 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">
@ -41,7 +46,7 @@
<a-row> <a-row>
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12"> <a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
<a-form-item :label="item2.title"> <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-form-item>
</a-col> </a-col>
</a-row> </a-row>
@ -58,8 +63,8 @@
<!-- 自增单行文本 6 --> <!-- 自增单行文本 6 -->
<a-col v-else-if="item.type === '6'" :span="24"> <a-col v-else-if="item.type === '6'" :span="24">
<a-row> <a-row>
<a-col v-for="(item2, index2) in item.list" :key="index2" > <a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
<span style="padding:20px; color:#888" v-text="item2.title"></span> <span class="Text-Content" v-text="item2.title"></span>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
@ -67,42 +72,97 @@
<a-col v-else-if="item.type === '7'" :span="24"> <a-col v-else-if="item.type === '7'" :span="24">
<a-row> <a-row>
<a-col v-for="(item2, index2) in item.list" :key="index2"> <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-col>
</a-row> </a-row>
</a-col> </a-col>
<!-- 自增多行文本 8 --> <!-- 自增多行文本 8 -->
<a-col v-else-if="item.type === '8'" :span="24"> <a-col v-else-if="item.type === '8'" :span="24">
<a-row> <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="message-word" v-text="item2.title"></span> <span class="Text-Content" v-text="item2.title"></span>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
<!-- 自增表格 9 --> <!-- 自增表格 9 -->
<a-col v-else-if="item.type === '9'" :span="24"> <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 :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-table>
</a-col> </a-col>
<!-- 自增表格两列关联 10 --> <!-- 自增表格两列关联 10 -->
<a-col v-else-if="item.type === '10'" :span="24"> <a-col v-else-if="item.type === '10'" :span="24">
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> <a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-table>
</a-col> </a-col>
<!-- 自增表格两列关联 11 --> <!-- 自增表格两列关联 11 -->
<a-col v-else-if="item.type === '11'" :span="24"> <a-col v-else-if="item.type === '11'" :span="24">
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> <a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-table>
</a-col> </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 v-else> </a-col>
<!-- <a-col :span="24">
<span class="tishi">
<span>{{ item.tsy }}</span>
</span>
</a-col> -->
</a-row> </a-row>
</a-col> </a-col>
</a-row> </a-row>
@ -114,7 +174,14 @@
import { ref, reactive, computed, unref, onMounted } from 'vue'; import { ref, reactive, computed, unref, onMounted } from 'vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { defHttp } from '/@/utils/http/axios'; 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 JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
// //
@ -125,6 +192,13 @@ const showType = ref<number>(0);
const jxdgInfo = ref<any>({}); const jxdgInfo = ref<any>({});
const jxdgbbDataSource = ref<any>([]); const jxdgbbDataSource = ref<any>([]);
const disabled = ref<boolean>(false); 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>>({ const zyJxdgMainTable = reactive<Record<string, any>>({
loading: false, loading: false,
@ -161,7 +235,11 @@ function handleGlxm(item) {
// //
var item3 = item2.zyJxdgPzxxList; var item3 = item2.zyJxdgPzxxList;
if (item3 != null && item3.length > 0) { 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) { function handleTwoGlxm(item) {
@ -332,7 +437,16 @@ async function handleCheckBanben(record) {
// //
var id = record.id; 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]; zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
} }
async function submitForm() { async function submitForm() {
@ -354,16 +468,17 @@ async function submitForm() {
} }
// //
function handleShowType(type) { function handleShowType(type) {
console.log('🤛', type);
if (type == 1) { if (type == 1) {
jxdgInfo.value = {}; jxdgInfo.value = {};
zyJxdgMainTable.dataSource = []; 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; jxdgbbDataSource.value = res.records;
}); });
}else if(type == 2){ } else if (type == 2) {
type = 1; 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; jxdgbbDataSource.value = res.records;
}); });
@ -371,6 +486,23 @@ function handleShowType(type) {
zyJxdgMainTable.dataSource = []; zyJxdgMainTable.dataSource = [];
defHttp.get({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/queryByRwbhList', params: { rwbh, teacherNo } }).then((res) => { defHttp.get({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/queryByRwbhList', params: { rwbh, teacherNo } }).then((res) => {
zyJxdgMainTable.dataSource = [...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; showType.value = type;
@ -391,8 +523,6 @@ async function init() {
showType.value = 0; showType.value = 0;
} }
}); });
if (jxdgInfo.value.id) {
}
} }
const jxdgbbColumns = [ 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(() => { onMounted(() => {
init(); init();
}); });
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.title { .title {
height: 35px;
line-height: 35px;
margin-left: 20px; margin-left: 20px;
font-size: 16px; font-size: 16px;
font-weight: bold;
} }
.title2 { .title2 {
font-size: 16px; font-size: 16px;
@ -434,15 +731,6 @@ onMounted(() => {
min-width: 100%; min-width: 100%;
margin: 3px 0 5px; margin: 3px 0 5px;
} }
.tishi {
width: 100%;
font-size: 12px;
color: #fd8f02;
margin-top: -4px;
background: #fffbf2;
text-align: center;
padding: 6px 0;
}
.cardClass { .cardClass {
min-height: 200px; min-height: 200px;
} }
@ -588,11 +876,54 @@ onMounted(() => {
border-left: 5px solid #029c88; border-left: 5px solid #029c88;
margin-bottom: 20px; margin-bottom: 20px;
} }
.message-word{
color: #888; .tishi {
padding:10px 20px; display: flex;
flex-direction: column;
text-align: left;
margin: 5px;
background: #fff8ef;
color: #fd8f02;
} }
.Sheet-word{ .tishi span {
color: #888; 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> </style>

View File

@ -3,7 +3,6 @@
<div v-if="showType == 0"> <div v-if="showType == 0">
<a-row> <a-row>
<a-col :span="24"><span class="title">教学大纲设置</span><a-divider /></a-col> <a-col :span="24"><span class="title">教学大纲设置</span><a-divider /></a-col>
<div class="tishi">温馨提示设置完成后您也可以在课程教学过程中随时根据实际情况进行调整</div>
<div class="work-img"> <div class="work-img">
<img class="work-img-img" src="../../../assets/images/homework.png" /> <img class="work-img-img" src="../../../assets/images/homework.png" />
</div> </div>
@ -16,17 +15,21 @@
</div> </div>
<div v-if="showType == 1"> <div v-if="showType == 1">
<a-row> <a-row>
<a-col :span="24" > <a-col :span="24">
<span class="title">填写教学大纲内容</span> <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-divider />
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-row> <a-row>
<a-col :span="24"> <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>
<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"> <a-table :columns="jxdgbbColumns" :dataSource="jxdgbbDataSource" :pagination="false">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
@ -39,13 +42,18 @@
</a-col> </a-col>
<a-col> <a-col>
<a-row> <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-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> <span class="title">{{ item.title }}</span>
</a-col> </a-col>
<!-- 单行文本 1 --> <!-- 单行文本 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-input placeholder="请输入内容" v-model:value="item.content" style="width: 100%" @blur="handleGlxm(item)"></a-input>
</a-col> </a-col>
<!-- 多行文本 2 --> <!-- 多行文本 2 -->
@ -57,7 +65,7 @@
<j-editor placeholder="请输入内容" v-model:value="item.content" :disabled="disabled" /> <j-editor placeholder="请输入内容" v-model:value="item.content" :disabled="disabled" />
</a-col> </a-col>
<!-- 固定表单基础信息 4 --> <!-- 固定表单基础信息 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-form v-bind="formItemLayout">
<a-row> <a-row>
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12"> <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-col v-for="(item2, index2) in item.list" :key="index2">
<a-input <a-input
placeholder="请输入内容" 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" style="width: 80%; margin: 0 10px 5px 20px"
@blur="handleGlxm(item)" @blur="handleGlxm(item)"
></a-input> ></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-col>
</a-row> </a-row>
</a-col> </a-col>
@ -99,9 +108,9 @@
<a-col> <a-col>
<a-button type="primary" @click="handleDhfwb(item)" class="increase" preIcon="ant-design:plus-outlined">添加</a-button> <a-button type="primary" @click="handleDhfwb(item)" class="increase" preIcon="ant-design:plus-outlined">添加</a-button>
</a-col> </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" /> <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-col>
</a-row> </a-row>
</a-col> </a-col>
@ -113,18 +122,18 @@
</a-col> </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">
<a-textarea placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" /> <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-col>
</a-row> </a-row>
</a-col> </a-col>
<!-- 自增表格 9 --> <!-- 自增表格 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> <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"> <a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <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>
<template v-else> <template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" style="width: 100%"></a-input> <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"> <a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <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>
<template v-else> <template v-else>
<a-input <a-input
@ -157,7 +166,7 @@
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> <a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <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>
<template v-else> <template v-else>
<a-input <a-input
@ -170,6 +179,130 @@
</template> </template>
</a-table> </a-table>
</a-col> </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> <a-col v-else> </a-col>
@ -191,22 +324,33 @@
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<span class="title">教学大纲内容</span> <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="handleShowType(2)" style="float: right; margin-right: 8px">
<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> <Icon icon="ant-design:form-outlined" />编辑
<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>
<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-divider />
</a-col> </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-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> <span class="title">{{ item.title }}</span>
</a-col> </a-col>
<!-- 单行文本 1 --> <!-- 单行文本 1 -->
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px;"> <a-col v-if="item.type === '1'" :span="24" style="margin: 10px">
<span class="Text-Content" v-text="item.content"></span> <span class="Text-Content" v-text="item.content"></span>
</a-col> </a-col>
<!-- 多行文本 2 --> <!-- 多行文本 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> <span class="Text-Content" v-text="item.content"></span>
</a-col> </a-col>
<!-- 富文本 3 --> <!-- 富文本 3 -->
@ -236,8 +380,8 @@
<!-- 自增单行文本 6 --> <!-- 自增单行文本 6 -->
<a-col v-else-if="item.type === '6'" :span="24"> <a-col v-else-if="item.type === '6'" :span="24">
<a-row> <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> <span class="Text-Content" v-text="item2.title"></span>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
@ -252,28 +396,88 @@
<!-- 自增多行文本 8 --> <!-- 自增多行文本 8 -->
<a-col v-else-if="item.type === '8'" :span="24"> <a-col v-else-if="item.type === '8'" :span="24">
<a-row> <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> <span class="Text-Content" v-text="item2.title"></span>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
<!-- 自增表格 9 --> <!-- 自增表格 9 -->
<a-col v-else-if="item.type === '9'" :span="24"> <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 :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-table>
</a-col> </a-col>
<!-- 自增表格两列关联 10 --> <!-- 自增表格两列关联 10 -->
<a-col v-else-if="item.type === '10'" :span="24"> <a-col v-else-if="item.type === '10'" :span="24">
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> <a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-table>
</a-col> </a-col>
<!-- 自增表格两列关联 11 --> <!-- 自增表格两列关联 11 -->
<a-col v-else-if="item.type === '11'" :span="24"> <a-col v-else-if="item.type === '11'" :span="24">
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> <a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
</a-table>
</a-col> </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 v-else> </a-col>
<a-col :span="24" v-if="item.tsy"> <a-col :span="24" v-if="item.tsy">
@ -292,8 +496,16 @@
import { ref, reactive, computed, unref, onMounted } from 'vue'; import { ref, reactive, computed, unref, onMounted } from 'vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { defHttp } from '/@/utils/http/axios'; 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 JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
import { Item } from 'ant-design-vue/lib/menu';
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
@ -301,8 +513,16 @@ const { query } = unref(currentRoute);
const { rwbh, xqxn, type, teano } = query; // const { rwbh, xqxn, type, teano } = query; //
const showType = ref<number>(0); const showType = ref<number>(0);
const jxdgInfo = ref<any>({}); const jxdgInfo = ref<any>({});
const kechengInfo = ref<any>({});
const jxdgbbDataSource = ref<any>([]); const jxdgbbDataSource = ref<any>([]);
const disabled = ref<boolean>(false); 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>>({ const zyJxdgMainTable = reactive<Record<string, any>>({
loading: false, loading: false,
@ -351,11 +571,36 @@ function handleGlxm(item) {
} }
} }
} }
function handleFabu(sffb){ function handleFabu(sffb) {
if (sffb == '1') {
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb,id:jxdgInfo.value.id} }).then((res) => { var par = jxdgInfo.value;
init() 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) { function handleTwoGlxm(item) {
@ -400,9 +645,6 @@ function handleDhwb(item) {
title: '', title: '',
sort: item.list.length + 1, sort: item.list.length + 1,
}); });
} }
// //
function handleDhwbDel(item, index) { function handleDhwbDel(item, index) {
@ -514,10 +756,45 @@ async function handleCheckBanben(record) {
jxdgInfo.value.banbenId = record.id; jxdgInfo.value.banbenId = record.id;
jxdgInfo.value.rwbh = rwbh; jxdgInfo.value.rwbh = rwbh;
jxdgInfo.value.teacherNo = teano; jxdgInfo.value.teacherNo = teano;
console.log('👨‍👧', jxdgInfo.value);
// //
var id = record.id; 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]; zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
} }
async function submitForm() { async function submitForm() {
@ -539,15 +816,16 @@ async function submitForm() {
} }
// //
function handleShowType(type) { function handleShowType(type) {
console.log('🤛', type);
if (type == 1) { if (type == 1) {
jxdgInfo.value = {}; jxdgInfo.value = {};
zyJxdgMainTable.dataSource = []; zyJxdgMainTable.dataSource = [];
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => { defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
jxdgbbDataSource.value = res.records; jxdgbbDataSource.value = res.records;
}); });
}else if(type == 2){ } else if (type == 2) {
type = 1; type = 1;
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => { defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
jxdgbbDataSource.value = res.records; jxdgbbDataSource.value = res.records;
}); });
@ -556,6 +834,23 @@ function handleShowType(type) {
zyJxdgMainTable.dataSource = []; zyJxdgMainTable.dataSource = [];
defHttp.get({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/queryByRwbhList', params: { rwbh, teacherNo } }).then((res) => { defHttp.get({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/queryByRwbhList', params: { rwbh, teacherNo } }).then((res) => {
zyJxdgMainTable.dataSource = [...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; showType.value = type;
@ -576,8 +871,6 @@ async function init() {
showType.value = 0; showType.value = 0;
} }
}); });
if (jxdgInfo.value.id) {
}
} }
const jxdgbbColumns = [ 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(() => { onMounted(() => {
init(); init();
}); });
@ -768,31 +1227,51 @@ onMounted(() => {
.tishi { .tishi {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
text-align: left; text-align: left;
margin: 5px; margin: 5px;
background: #fff8ef; background: #fff8ef;
color: #fd8f02; color: #fd8f02;
} }
.tishi span{ .tishi span {
font-size: 12px; font-size: 12px;
color: #fd8f02; color: #fd8f02;
text-indent: 10px; text-indent: 10px;
padding: 8px; padding: 8px;
} }
.increase{ .increase {
position: absolute; position: absolute;
right:6px; right: 6px;
top:-36px; top: -36px;
} }
.place-dele{ .place-dele {
margin:10px 0; margin: 10px 0;
} }
.form-pattern{ .form-pattern {
color: #666; color: #666;
} }
.Text-Content{ .Text-Content {
padding: 10px; padding: 10px;
color: #888; 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> </style>

View File

@ -13,15 +13,22 @@
</a-row> </a-row>
</a-form> --> </a-form> -->
<!-- <!--
单行文本 1 单行文本 1
多行文本 2 多行文本 2
富文本 3 富文本 3
固定表单基础信息 4 固定表单基础信息 4
关联表格 5 关联表格 5
自增单行文本 6 自增单行文本 6
自增富文本 7 自增富文本 7
自增多行文本 8 自增多行文本 8
自增表格 9 自增表格 9
自增表格两列关联 10
自增表格多专业 11
课程目标 12
教学内容重难点和课时安排 13
课程目标的评价方式 14
考核方式 15
--> -->
<div style="width: 100%; text-align: center; font-weight: bold; font-size: 18px; line-height: 80px"> <div style="width: 100%; text-align: center; font-weight: bold; font-size: 18px; line-height: 80px">
{{ oldInfo.title }}{{ oldInfo.twoTitle_dictText }}教学大纲 {{ oldInfo.title }}{{ oldInfo.twoTitle_dictText }}教学大纲
@ -31,9 +38,9 @@
:span="23" :span="23"
v-for="(item, index) in zyJxdgMainTable.dataSource" v-for="(item, index) in zyJxdgMainTable.dataSource"
:key="index" :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"> <a-col :span="24">
<div class="title">{{ item.title }}</div> <div class="title">{{ item.title }}</div>
</a-col> </a-col>
@ -51,7 +58,7 @@
</a-col> </a-col>
<!-- 固定表单基础信息 4 --> <!-- 固定表单基础信息 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-col style="margin-bottom:15px;" ></a-col> <a-col style="margin-bottom: 15px"></a-col>
<a-form v-bind="formItemLayout"> <a-form v-bind="formItemLayout">
<a-row> <a-row>
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12"> <a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
@ -73,12 +80,12 @@
</a-col> </a-col>
<!-- 自增单行文本 6 --> <!-- 自增单行文本 6 -->
<a-col v-else-if="item.type === '6'" :span="24"> <a-col v-else-if="item.type === '6'" :span="24">
<a-row> <a-row>
<a-col> <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>
<a-col style="margin-bottom:15px;" ></a-col> <a-col style="margin-bottom: 15px"></a-col>
<a-col v-for="(item2, index2) in item.list" :key="index2" > <a-col v-for="(item2, index2) in item.list" :key="index2">
<a-input <a-input
placeholder="请输入内容" placeholder="请输入内容"
v-model:value="item2.title" v-model:value="item2.title"
@ -86,7 +93,7 @@
style="width: 80%; margin: 0 10px 10px 15px" style="width: 80%; margin: 0 10px 10px 15px"
@blur="handleGlxm(item)" @blur="handleGlxm(item)"
></a-input> ></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-col>
</a-row> </a-row>
</a-col> </a-col>
@ -98,7 +105,7 @@
</a-col> </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" style="width: 500px; height: 200px" /> <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-col>
</a-row> </a-row>
</a-col> </a-col>
@ -110,18 +117,18 @@
</a-col> </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">
<a-textarea placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" /> <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-col>
</a-row> </a-row>
</a-col> </a-col>
<!-- 自增表格 9 --> <!-- 自增表格 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> <div><a-button type="primary" @click="handleZzbg(item)" class="increase">新增</a-button> </div>
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> <a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <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>
<template v-else> <template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" style="width: 100%"></a-input> <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"> <a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <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>
<template v-else> <template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input> <a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input>
@ -143,13 +150,13 @@
</template> </template>
</a-table> </a-table>
</a-col> </a-col>
<!-- 自增表格两列关联 11 --> <!-- 自增表格多专业 11 -->
<a-col v-else-if="item.type === '11'" :span="24"> <a-col v-else-if="item.type === '11'" :span="24">
<div><a-button type="primary" @click="handleZzbg(item)" class="increase">新增</a-button> </div> <div><a-button type="primary" @click="handleZzbg(item)" class="increase">新增</a-button> </div>
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> <a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <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>
<template v-else> <template v-else>
<a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input> <a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input>
@ -158,6 +165,126 @@
</a-table> </a-table>
</a-col> </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 v-else> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -187,6 +314,7 @@ import { zyJxdgMainColumns } from '../ZyJxdgBanben.data';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { Form } from 'ant-design-vue'; import { Form } from 'ant-design-vue';
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue'; import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
import { spanEnds } from '/@/components/jeecg/JVxeTable/src/componentMap';
const useForm = Form.useForm; const useForm = Form.useForm;
@ -210,6 +338,13 @@ export default defineComponent({
const loading = ref(false); const loading = ref(false);
const zyJxdgMainTableRef = ref(); const zyJxdgMainTableRef = ref();
const oldInfo = 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>>({ const zyJxdgMainTable = reactive<Record<string, any>>({
loading: false, loading: false,
columns: zyJxdgMainColumns, columns: zyJxdgMainColumns,
@ -266,6 +401,22 @@ export default defineComponent({
}; };
// //
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId3(params); 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); console.log('💁‍♀️', zyJxdgMainDataList);
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList]; zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
} }
@ -290,6 +441,29 @@ export default defineComponent({
async function submitForm() { async function submitForm() {
const alllist = zyJxdgMainTable.dataSource; 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); console.log('✋', alllist);
var values = {}; 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) { function getTableColumns(list) {
let columns = reactive<any>([]); let columns = reactive<any>([]);
@ -425,7 +765,6 @@ export default defineComponent({
key: 'action', key: 'action',
}; };
columns.push(inePar2); columns.push(inePar2);
console.log('👺11111111', columns);
return columns; return columns;
} }
// //
@ -445,7 +784,6 @@ export default defineComponent({
var item2 = alllist[j]; // var item2 = alllist[j]; //
item2.list = item2.list || []; item2.list = item2.list || [];
if (item2.guanlian == sort) { if (item2.guanlian == sort) {
console.log('🧚222222222222', item2);
// //
if (i == 0) { if (i == 0) {
// //
@ -455,7 +793,6 @@ export default defineComponent({
var item3 = item2.zyJxdgPzxxList; var item3 = item2.zyJxdgPzxxList;
console.log('👶', item3); console.log('👶', item3);
if (item3 != null && item3.length > 0) { if (item3 != null && item3.length > 0) {
console.log('✊item2.type--->', item2.type);
if (item2.type == '11') { if (item2.type == '11') {
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title }); item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
} else { } else {
@ -468,15 +805,18 @@ export default defineComponent({
} }
} }
} }
// //
function handleTwoGlxm(item) { function handleTwoGlxm(item) {
var sfsglxm = item.sfsglxm; var sfsglxm = item.sfsglxm;
if (sfsglxm == '1') { if (sfsglxm == '1') {
// //
var list1 = item.list; // var list1 = item.list; //
console.log('👄', list1);
if (list1 != null) { if (list1 != null) {
// //
var sort = item.sort; // var sort = item.sort; //
console.log('👨‍🚒', sort);
var alllist = zyJxdgMainTable.dataSource; // var alllist = zyJxdgMainTable.dataSource; //
for (var j = 0; j < alllist.length; j++) { for (var j = 0; j < alllist.length; j++) {
for (var i = 0; i < list1.length; i++) { for (var i = 0; i < list1.length; i++) {
@ -540,6 +880,19 @@ export default defineComponent({
handleZzbg, handleZzbg,
handleZzbgDel, handleZzbgDel,
handleTwoGlxm, handleTwoGlxm,
handleKcmbZzbg,
handleKcmbZzbgDel,
handle2Glxm,
handle13Zzbg,
handle13DelZzbg,
kcmbDataSource,
checkKcmb,
kcmbShow,
checkKhfs,
handle14Zzbg,
khmbDataSource,
handleKhmbqueren,
}; };
}, },
}); });
@ -550,7 +903,7 @@ export default defineComponent({
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
background-color: rgb(246, 246, 246); background-color: rgb(246, 246, 246);
padding:0 20px; padding: 0 20px;
} }
.tishi { .tishi {
width: 100%; 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%;"/> <j-dict-select-tag type='list' v-model:value="item.type" dictCode="jxdglx" :disabled="disabled" style=" width: 100%;"/>
</a-col> </a-col>
<a-col :span="6"> <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="">请选择关联第几个项目</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-option :value="peizhi.sort" v-for="(peizhi,index2) in zyJxdgMainTable.dataSource" :key="index2">{{peizhi.title}}</a-select-option>
</a-select> </a-select>
@ -51,21 +51,26 @@
<a-input v-model:value="item.tsy" placeholder="请输入提示语" :disabled="disabled" class="Prompt-language" /> <a-input v-model:value="item.tsy" placeholder="请输入提示语" :disabled="disabled" class="Prompt-language" />
</a-col> </a-col>
<a-col :span="3"> <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> </a-col>
<!-- <!--
单行文本 1 a 单行文本 1
多行文本 2 多行文本 2
富文本 3 富文本 3
固定表单基础信息 4 固定表单基础信息 4
关联表格 5 a 关联表格 5
自增单行文本 6 a 自增单行文本 6
自增富文本 7 自增富文本 7
自增多行文本 8 自增多行文本 8
自增表格 9 a 自增表格 9
自增表格两列关联 10 a 自增表格两列关联 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-row>
<a-col :span="24"> <a-col :span="24">
<a-button type="primary" @click="handleTwoType(item)" class="margin10" preIcon="ant-design:plus-outlined">新增字段</a-button> <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-input v-model:value="twoItem.title" placeholder="请输入选项" :disabled="disabled" class="fields-add"/>
</a-col> </a-col>
<a-col :span="3"><close-outlined /> <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-col>
</a-row> </a-row>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
</a-row> </a-row>
</a-col> </a-col>
</a-row> </a-row>
@ -185,6 +191,13 @@
await queryMainData(row.id); await queryMainData(row.id);
// //
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(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]; zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
} }
@ -207,10 +220,15 @@
async function submitForm() { async function submitForm() {
const mainData = await getFormData(); const mainData = await getFormData();
const subData = zyJxdgMainTable.dataSource; 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) console.log('主表数据11111', subData)
const values = Object.assign({}, dbData, mainData); const values = Object.assign({}, dbData, mainData);
console.log('主表数据22222222', subData.value)
console.log('主表数据22222222', subData.target)
values.zyJxdgMainList = subData; values.zyJxdgMainList = subData;
console.log('表单提交数据', values) console.log('表单提交数据', values)
const isUpdate = values.id ? true : false const isUpdate = values.id ? true : false

View File

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

View File

@ -20,7 +20,7 @@
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
<a-form-item label="" style="padding: 10px;"> <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-form-item>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
@ -30,14 +30,18 @@
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
<a-form-item label="" style="padding: 10px;"> <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-form-item>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
<a-form-item label="" style="padding: 10px;"> <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-form-item>
</a-col> </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-row>
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard"> <a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
@ -49,7 +53,6 @@
{{xxkcTotal}}</div> {{xxkcTotal}}</div>
</div> </div>
</template> </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> <kclbList ref="wqxxkcModeal" :queryParam="xxkcqueryParam" @setTotal="xxkcTotal = $event;jzzyload()"></kclbList>
</a-tab-pane> </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`" /> <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-form-item>
</a-col> </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-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <a-form-item label="" style="padding: 10px;">
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input> <a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
@ -23,7 +28,7 @@
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <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-form-item>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;"> <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`" /> <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-form-item>
</a-col> </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-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <a-form-item label="" style="padding: 10px;">
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input> <a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
@ -28,7 +33,7 @@
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <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-form-item>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">

View File

@ -7,7 +7,7 @@
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <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 /> <JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" :dictCode="`t_bmd_kkdw,kkdw,kkdw,jgh = '${userStore?.getUserInfo?.username}'`" v-else />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -18,7 +18,7 @@
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
<a-form-item label="" style="padding: 10px;"> <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-form-item>
</a-col> </a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }"> <a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">

View File

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

View File

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

View File

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

View File

@ -765,7 +765,7 @@ function searchQueryZyxq() {
// //
function handleAddOne() { 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(); handleSuccess2();
}); });
} }