修改功能
This commit is contained in:
parent
2109ebec48
commit
097a6f9ddc
|
@ -19,8 +19,9 @@ VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
|
|||
VITE_GLOB_API_URL=/jeecg-boot
|
||||
|
||||
#后台接口全路径地址(必填)
|
||||
VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/jeecg-boot
|
||||
# VITE_GLOB_DOMAIN_URL=https://kczxcs.nenu.edu.cn/jeecg-boot
|
||||
# VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/jeecg-boot
|
||||
# VITE_GLOB_DOMAIN_URL=https://smartedu.nenu.edu.cn/jeecg-boot
|
||||
VITE_GLOB_DOMAIN_URL=https://kczxcs.nenu.edu.cn/jeecg-boot
|
||||
# VITE_GLOB_DOMAIN_URL=http://210.47.29.100/jeecg-boot
|
||||
|
||||
#RTC服务器地址
|
||||
|
@ -39,5 +40,5 @@ VITE_USE_PWA = false
|
|||
VITE_LEGACY = false
|
||||
|
||||
# 是否开启单点登录
|
||||
VITE_GLOB_APP_OPEN_SSO = true
|
||||
VITE_GLOB_APP_OPEN_SSO = false
|
||||
|
||||
|
|
|
@ -15,25 +15,30 @@
|
|||
<div v-if="showType == 999">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<span class="title">教学大纲内容</span>
|
||||
<span class="title">{{jxdgInfo.fbName}}{{jxdgInfo.xqxn}}季学期执行教学大纲</span>
|
||||
<a-divider />
|
||||
</a-col>
|
||||
<a-col :span="23" v-for="(item, index) in zyJxdgMainTable.dataSource" :key="index" style="margin:8px auto; background:#fff;border:1px solid #eee;">
|
||||
<a-col
|
||||
:span="23"
|
||||
v-for="(item, index) in zyJxdgMainTable.dataSource"
|
||||
:key="index"
|
||||
style="margin: 8px auto; background: #fff; border: 1px solid #eee"
|
||||
>
|
||||
<a-row>
|
||||
<a-col :span="24" style="height: 40px; line-height:40px; background-color:#f6f6f6">
|
||||
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f6f6f6">
|
||||
<span class="title">{{ item.title }}</span>
|
||||
</a-col>
|
||||
<!-- 单行文本 1 -->
|
||||
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px; ">
|
||||
<span class="message-word" v-text="item.content"></span>
|
||||
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item.content"></span>
|
||||
</a-col>
|
||||
<!-- 多行文本 2 -->
|
||||
<a-col v-else-if="item.type === '2'" :span="24" style="margin: 10px; ">
|
||||
<span class="message-word" v-text="item.content"></span>
|
||||
<a-col v-else-if="item.type === '2'" :span="24" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item.content"></span>
|
||||
</a-col>
|
||||
<!-- 富文本 3 -->
|
||||
<a-col v-else-if="item.type === '3'" :span="24">
|
||||
<div class="message-word" v-html="item.content"></div>
|
||||
<div class="Text-Content" v-html="item.content"></div>
|
||||
</a-col>
|
||||
<!-- 固定表单(基础信息) 4 -->
|
||||
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24">
|
||||
|
@ -41,7 +46,7 @@
|
|||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
|
||||
<a-form-item :label="item2.title">
|
||||
<span class="Sheet-word" v-text="item2.content"></span>
|
||||
<span class="Text-Content" v-text="item2.content"></span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -58,8 +63,8 @@
|
|||
<!-- 自增单行文本 6 -->
|
||||
<a-col v-else-if="item.type === '6'" :span="24">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" >
|
||||
<span style="padding:20px; color:#888" v-text="item2.title"></span>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item2.title"></span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -67,42 +72,97 @@
|
|||
<a-col v-else-if="item.type === '7'" :span="24">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2">
|
||||
<div class="message-word" v-html="item2.title"></div>
|
||||
<div class="Text-Content" v-html="item2.title"></div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<!-- 自增多行文本 8 -->
|
||||
<a-col v-else-if="item.type === '8'" :span="24">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px; ">
|
||||
<span class="message-word" v-text="item2.title"></span>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item2.title"></span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 自增表格 9 -->
|
||||
<a-col v-else-if="item.type === '9'" :span="24">
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
</a-table>
|
||||
<a-col v-else-if="item.type === '9' || item.type === '15'" :span="24">
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
|
||||
</a-col>
|
||||
<!-- 自增表格(两列关联) 10 -->
|
||||
<a-col v-else-if="item.type === '10'" :span="24">
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
</a-table>
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
|
||||
</a-col>
|
||||
<!-- 自增表格(两列关联) 11 -->
|
||||
<a-col v-else-if="item.type === '11'" :span="24">
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
</a-table>
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
|
||||
</a-col>
|
||||
|
||||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
<!-- 课程目标 12 -->
|
||||
<a-col v-else-if="item.type === '12'" :span="24">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
|
||||
<!-- -{{ item2 }}- -->
|
||||
<a-row>
|
||||
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
|
||||
<!-- -{{ item3 }}- -->
|
||||
<span style="line-height: 40px; margin-left: 15px" v-if="index3 == 0"> {{ item3.title }} : </span>
|
||||
<span style="line-height: 40px" v-else>
|
||||
{{ item3.title }}
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 教学内容、重难点和课时安排 13 -->
|
||||
<a-col v-else-if="item.type === '13'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-row v-for="(item2, index2) in item.list" :key="index2" class="dhxg">
|
||||
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
|
||||
<a-row style="padding: 10px">
|
||||
<a-col style="text-align: left" :span="7"> {{ item3.title }}: </a-col>
|
||||
<a-col :span="15">
|
||||
{{ item3.content }}
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col style="height: 20px"> </a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<!-- 课程目标的评价方式 14 -->
|
||||
<!-- <a-col v-else-if="item.type === '14'" :span="24"> -->
|
||||
<a-col v-else-if="item.type === '14'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<!-- <template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input
|
||||
placeholder="请输入内容"
|
||||
v-model:value="record[column.key]"
|
||||
@blur="handleTwoGlxm(item)"
|
||||
style="width: 100%"
|
||||
></a-input>
|
||||
</template>
|
||||
</template> -->
|
||||
</a-table>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
|
||||
<a-col v-else> </a-col>
|
||||
|
||||
<!-- <a-col :span="24">
|
||||
<span class="tishi">
|
||||
<span>{{ item.tsy }}</span>
|
||||
</span>
|
||||
</a-col> -->
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -114,7 +174,14 @@
|
|||
import { ref, reactive, computed, unref, onMounted } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { queryZyJxdgMainListByMainId, queryDataById, saveOrUpdate2, queryZyJxdgMainListByMainId2 } from '/@/views/kc/zyJxdgBanben/ZyJxdgBanben.api';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import {
|
||||
queryZyJxdgMainListByMainId,
|
||||
queryDataById,
|
||||
saveOrUpdate2,
|
||||
queryZyJxdgMainListByMainId2,
|
||||
queryZyJxdgMainListByMainId3,
|
||||
} from '/@/views/kc/zyJxdgBanben/ZyJxdgBanben.api';
|
||||
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
|
||||
|
||||
//当前路由信息
|
||||
|
@ -125,6 +192,13 @@ const showType = ref<number>(0);
|
|||
const jxdgInfo = ref<any>({});
|
||||
const jxdgbbDataSource = ref<any>([]);
|
||||
const disabled = ref<boolean>(false);
|
||||
const { createMessage, createConfirm } = useMessage();
|
||||
|
||||
let kcmbDataSource = ref<{ title: any }[]>([]);
|
||||
const checkKcmb = ref<string>('');
|
||||
const checkKhfs = ref<any>([]);
|
||||
const khmbDataSource = ref<any>([]);
|
||||
const kcmbShow = ref<boolean>(false);
|
||||
|
||||
const zyJxdgMainTable = reactive<Record<string, any>>({
|
||||
loading: false,
|
||||
|
@ -161,7 +235,11 @@ function handleGlxm(item) {
|
|||
//判断当前项是否等于关联项
|
||||
var item3 = item2.zyJxdgPzxxList;
|
||||
if (item3 != null && item3.length > 0) {
|
||||
item2.list.push({ [item3[0].id]: title });
|
||||
if (item2.type == '11') {
|
||||
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
|
||||
} else {
|
||||
item2.list.push({ [item3[0].id]: title });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -169,11 +247,38 @@ function handleGlxm(item) {
|
|||
}
|
||||
}
|
||||
}
|
||||
function handleFabu(sffb){
|
||||
function handleFabu(sffb) {
|
||||
if(sffb=='1'){
|
||||
var par = jxdgInfo.value;
|
||||
var title = '《'+par.kcmc+'》教学大纲('+par.banbenName+')是否作为'+par.xqxn+'季学期的执行教学大纲';
|
||||
createConfirm({
|
||||
iconType: 'warning',
|
||||
title: '确认发布',
|
||||
content: title+',面向学生发布?',
|
||||
okText: '确认',
|
||||
cancelText: '取消',
|
||||
onOk: () => {
|
||||
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb, id: jxdgInfo.value.id,fbName:title } }).then((res) => {
|
||||
init();
|
||||
});
|
||||
},
|
||||
});
|
||||
}else{
|
||||
createConfirm({
|
||||
iconType: 'warning',
|
||||
title: '确认撤回',
|
||||
content: '确认撤回已发布的执行大纲吗?',
|
||||
okText: '确认',
|
||||
cancelText: '取消',
|
||||
onOk: () => {
|
||||
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb, id: jxdgInfo.value.id,fbName:title } }).then((res) => {
|
||||
init();
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb,id:jxdgInfo.value.id} }).then((res) => {
|
||||
init()
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
//两列关联项目计算方法
|
||||
function handleTwoGlxm(item) {
|
||||
|
@ -332,7 +437,16 @@ async function handleCheckBanben(record) {
|
|||
|
||||
//子表数据
|
||||
var id = record.id;
|
||||
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(id);
|
||||
|
||||
var params = {
|
||||
mainId: id,
|
||||
rwbh: rwbh,
|
||||
teacherNo: teano,
|
||||
};
|
||||
//子表数据
|
||||
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId3(params);
|
||||
|
||||
// const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(id);
|
||||
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
|
||||
}
|
||||
async function submitForm() {
|
||||
|
@ -354,16 +468,17 @@ async function submitForm() {
|
|||
}
|
||||
//切换显示模块
|
||||
function handleShowType(type) {
|
||||
console.log('🤛', type);
|
||||
if (type == 1) {
|
||||
jxdgInfo.value = {};
|
||||
zyJxdgMainTable.dataSource = [];
|
||||
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sffb: '1', pageNo: -1 } }).then((res) => {
|
||||
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
|
||||
jxdgbbDataSource.value = res.records;
|
||||
});
|
||||
}else if(type == 2){
|
||||
} else if (type == 2) {
|
||||
type = 1;
|
||||
|
||||
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sffb: '1', pageNo: -1 } }).then((res) => {
|
||||
|
||||
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
|
||||
jxdgbbDataSource.value = res.records;
|
||||
});
|
||||
|
||||
|
@ -371,6 +486,23 @@ function handleShowType(type) {
|
|||
zyJxdgMainTable.dataSource = [];
|
||||
defHttp.get({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/queryByRwbhList', params: { rwbh, teacherNo } }).then((res) => {
|
||||
zyJxdgMainTable.dataSource = [...res];
|
||||
console.log('👩💼', zyJxdgMainTable.dataSource);
|
||||
|
||||
for (var i = 0; i < zyJxdgMainTable.dataSource.length; i++) {
|
||||
var par = zyJxdgMainTable.dataSource[i];
|
||||
console.log('👅', par);
|
||||
if (par.type == '12') {
|
||||
var list = par.list2Map;
|
||||
console.log('🧔', list);
|
||||
var list1 = ref<{ title: any }[]>([]);
|
||||
for (var j = 0; j < list.length; j++) {
|
||||
var ppa = list[j][0].title;
|
||||
console.log('👧', ppa);
|
||||
list1.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = list1.value;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
showType.value = type;
|
||||
|
@ -391,8 +523,6 @@ async function init() {
|
|||
showType.value = 0;
|
||||
}
|
||||
});
|
||||
if (jxdgInfo.value.id) {
|
||||
}
|
||||
}
|
||||
|
||||
const jxdgbbColumns = [
|
||||
|
@ -413,15 +543,182 @@ const jxdgbbColumns = [
|
|||
},
|
||||
];
|
||||
|
||||
//--------------------------------------20240824------------------------------------------------------
|
||||
//新增课程目标自增表格
|
||||
function handleKcmbZzbg(item) {
|
||||
item.list2Map = item.list2Map || [];
|
||||
|
||||
var item3 = item.zyJxdgPzxxList;
|
||||
console.log('😁', item3);
|
||||
var oneId = '';
|
||||
var twoId = '';
|
||||
for (var i = 0; i < item3.length; i++) {
|
||||
if (i == 0) {
|
||||
oneId = item3[i].id;
|
||||
} else if (i == 1) {
|
||||
twoId = item3[i].id;
|
||||
}
|
||||
}
|
||||
|
||||
item.list2Map.push([
|
||||
{
|
||||
title: '课程目标' + (item.list2Map.length + 1),
|
||||
key: oneId,
|
||||
sort: item.list2Map.length,
|
||||
},
|
||||
{
|
||||
title: '',
|
||||
key: twoId,
|
||||
sort: item.list2Map.length,
|
||||
},
|
||||
]);
|
||||
var list1 = ref<{ title: any }[]>([]);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var ppa = item.list2Map[i][0].title;
|
||||
list1.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = list1.value;
|
||||
}
|
||||
//删除课程目标自增表格
|
||||
function handleKcmbZzbgDel(item, index) {
|
||||
item.list2Map.splice(index, 1);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var item2 = item.list2Map[i];
|
||||
item2.forEach((item3, index2) => {
|
||||
if (index2 == 0) {
|
||||
item3.title = '课程目标' + (i + 1);
|
||||
}
|
||||
item3.sort = i;
|
||||
});
|
||||
}
|
||||
}
|
||||
//关联项目计算方法
|
||||
function handle2Glxm(item) {
|
||||
var listtt = ref<{ title: any }[]>([]);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var ppa = item.list2Map[i][0].title;
|
||||
listtt.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = listtt.value;
|
||||
|
||||
console.log('👳♀️', item);
|
||||
var sfsglxm = item.sfsglxm;
|
||||
console.log('👱♀️', sfsglxm);
|
||||
if (sfsglxm == '1') {
|
||||
//判断是否是关联项目
|
||||
var list1 = item.list2Map; //课程目标集合
|
||||
console.log('👑', list1);
|
||||
if (list1 != null) {
|
||||
//关联项目是否有值
|
||||
var sort = item.sort; //第几个关联项目
|
||||
var alllist = zyJxdgMainTable.dataSource; //获取全部的数据
|
||||
for (var j = 0; j < alllist.length; j++) {
|
||||
for (var i = 0; i < list1.length; i++) {
|
||||
var item1 = list1[i][0];
|
||||
var title = item1.title; //具体信息
|
||||
var item2 = alllist[j]; //具体数据
|
||||
item2.list = item2.list || [];
|
||||
if (item2.guanlian == sort) {
|
||||
//关联项目等于当前数据
|
||||
if (i == 0) {
|
||||
//判断第一回将原来的清空重新赋值
|
||||
item2.list = [];
|
||||
}
|
||||
//判断当前项是否等于关联项
|
||||
var item3 = item2.zyJxdgPzxxList;
|
||||
console.log('👶', item3);
|
||||
if (item3 != null && item3.length > 0) {
|
||||
if (item2.type == '11') {
|
||||
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
|
||||
} else {
|
||||
item2.list.push({ [item3[0].id]: title });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// handleGlxm(item);
|
||||
}
|
||||
|
||||
function handle13Zzbg(record) {
|
||||
console.log('👎', record);
|
||||
var list2 = record.zyJxdgPzxxList; //课程目标集合
|
||||
var list3: { title: any; type: string; content: string; key: string }[] = [];
|
||||
for (var i = 0; i < list2.length; i++) {
|
||||
var par = list2[i];
|
||||
var type = '1';
|
||||
if (i == 1) {
|
||||
type = '2';
|
||||
}
|
||||
list3.push({
|
||||
title: par.title,
|
||||
type,
|
||||
content: '',
|
||||
key: par.id,
|
||||
});
|
||||
}
|
||||
console.log('🦹', list3);
|
||||
record.list.push({ list: list3 });
|
||||
console.log('👩🔧', record);
|
||||
}
|
||||
|
||||
//删除课程目标自增表格
|
||||
function handle13DelZzbg(item, index) {
|
||||
item.list.splice(index, 1);
|
||||
}
|
||||
|
||||
function handle14Zzbg(item) {
|
||||
console.log('🤧item', item);
|
||||
kcmbShow.value = true;
|
||||
khmbDataSource.value = [];
|
||||
var guanlian = item.guanlian.split(',');
|
||||
var khmbSort = guanlian[1];
|
||||
console.log('👱♀️khmbSort', khmbSort);
|
||||
var alllist = zyJxdgMainTable.dataSource[khmbSort - 1]; //获取全部的数据
|
||||
var item2 = alllist.list;
|
||||
var item3 = alllist.zyJxdgPzxxList[0];
|
||||
console.log('item2', item2);
|
||||
console.log('item3', item3);
|
||||
for (var i = 0; i < item2.length; i++) {
|
||||
var item1 = item2[i];
|
||||
console.log('👩👩👦item1', item1[item3.id]);
|
||||
khmbDataSource.value.push({ title: item1[item3.id] });
|
||||
}
|
||||
console.log('😒khmbDataSource', khmbDataSource.value);
|
||||
}
|
||||
|
||||
function handleKhmbqueren(record) {
|
||||
console.log('👩👦record', record);
|
||||
var a1 = checkKcmb.value; //选择的课程目标
|
||||
var a2 = checkKhfs.value; //选择的考核方式集合
|
||||
let columns = reactive<any>([]);
|
||||
var list2 = record.zyJxdgPzxxList;
|
||||
for (var i = 0; i < list2.length; i++) {
|
||||
var par = list2[i];
|
||||
columns.push(par.id);
|
||||
}
|
||||
for (var i = 0; i < a2.length; i++) {
|
||||
var khfsmc = a2[i]; //考核方式名称
|
||||
record.list.push({ [columns[0]]: a1, [columns[1]]: khfsmc });
|
||||
}
|
||||
handleTwoGlxm(record);
|
||||
kcmbShow.value = false;
|
||||
}
|
||||
|
||||
//--------------------------------------20240824------------------------------------------------------
|
||||
|
||||
onMounted(() => {
|
||||
init();
|
||||
});
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.title {
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
margin-left: 20px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.title2 {
|
||||
font-size: 16px;
|
||||
|
@ -434,15 +731,6 @@ onMounted(() => {
|
|||
min-width: 100%;
|
||||
margin: 3px 0 5px;
|
||||
}
|
||||
.tishi {
|
||||
width: 100%;
|
||||
font-size: 12px;
|
||||
color: #fd8f02;
|
||||
margin-top: -4px;
|
||||
background: #fffbf2;
|
||||
text-align: center;
|
||||
padding: 6px 0;
|
||||
}
|
||||
.cardClass {
|
||||
min-height: 200px;
|
||||
}
|
||||
|
@ -588,11 +876,54 @@ onMounted(() => {
|
|||
border-left: 5px solid #029c88;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.message-word{
|
||||
color: #888;
|
||||
padding:10px 20px;
|
||||
|
||||
.tishi {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-align: left;
|
||||
margin: 5px;
|
||||
background: #fff8ef;
|
||||
color: #fd8f02;
|
||||
}
|
||||
.Sheet-word{
|
||||
color: #888;
|
||||
.tishi span {
|
||||
font-size: 12px;
|
||||
color: #fd8f02;
|
||||
text-indent: 10px;
|
||||
padding: 8px;
|
||||
}
|
||||
.increase {
|
||||
position: absolute;
|
||||
right: 6px;
|
||||
top: -36px;
|
||||
}
|
||||
.place-dele {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.form-pattern {
|
||||
color: #666;
|
||||
}
|
||||
.Text-Content {
|
||||
padding: 10px;
|
||||
// color: #888;
|
||||
}
|
||||
.dhxg {
|
||||
padding: 15px;
|
||||
border: 1px solid #ccc;
|
||||
margin: 15px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.dhxg:before {
|
||||
border: 4px solid #fd8f02; /* 初始边框颜色 */
|
||||
padding: 15px;
|
||||
margin: 13px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.dhxg:after {
|
||||
border: 4px solid #000; /* 初始边框颜色 */
|
||||
padding: 15px;
|
||||
margin: 17px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
|
@ -3,7 +3,6 @@
|
|||
<div v-if="showType == 0">
|
||||
<a-row>
|
||||
<a-col :span="24"><span class="title">教学大纲设置</span><a-divider /></a-col>
|
||||
<div class="tishi">温馨提示:设置完成后,您也可以在课程教学过程中,随时根据实际情况进行调整。</div>
|
||||
<div class="work-img">
|
||||
<img class="work-img-img" src="../../../assets/images/homework.png" />
|
||||
</div>
|
||||
|
@ -16,17 +15,21 @@
|
|||
</div>
|
||||
<div v-if="showType == 1">
|
||||
<a-row>
|
||||
<a-col :span="24" >
|
||||
<a-col :span="24">
|
||||
<span class="title">填写教学大纲内容</span>
|
||||
<a-button type="primary" @click="init" style="float: right; margin-right: 8px;margin-top:-6px"> <Icon icon="ant-design:export-outlined" />返回 </a-button>
|
||||
<a-button type="primary" @click="init" style="float: right; margin-right: 8px; margin-top: -6px">
|
||||
<Icon icon="ant-design:export-outlined" />返回
|
||||
</a-button>
|
||||
<a-divider />
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div style="width:100%;padding:2px 20px;color:#666;font-size:14px;background:#f6f6f6;"><span>请选择填写的教学大纲版本</span></div>
|
||||
<div style="width: 100%; padding: 2px 20px; color: #666; font-size: 14px; background: #f6f6f6"
|
||||
><span>请选择填写的教学大纲版本</span></div
|
||||
>
|
||||
</a-col>
|
||||
<a-col :span="23" style="margin:0 auto;border:1px solid #eceff6;border-radius:4px;margin-top:8px">
|
||||
<a-col :span="23" style="margin: 0 auto; border: 1px solid #eceff6; border-radius: 4px; margin-top: 8px">
|
||||
<a-table :columns="jxdgbbColumns" :dataSource="jxdgbbDataSource" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
|
@ -39,13 +42,18 @@
|
|||
</a-col>
|
||||
<a-col>
|
||||
<a-row>
|
||||
<a-col :span="23" v-for="(item, index) in zyJxdgMainTable.dataSource" :key="index" style="margin:8px auto; background:#fff;border:1px solid #eee;">
|
||||
<a-col
|
||||
:span="23"
|
||||
v-for="(item, index) in zyJxdgMainTable.dataSource"
|
||||
:key="index"
|
||||
style="margin: 8px auto; background: #fff; border: 1px solid #eee"
|
||||
>
|
||||
<a-row>
|
||||
<a-col :span="24" style="height: 40px; line-height:40px; background-color:#f6f6f6">
|
||||
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f6f6f6">
|
||||
<span class="title">{{ item.title }}</span>
|
||||
</a-col>
|
||||
<!-- 单行文本 1 -->
|
||||
<a-col v-if="item.type === '1'" :span="24" >
|
||||
<a-col v-if="item.type === '1'" :span="24">
|
||||
<a-input placeholder="请输入内容" v-model:value="item.content" style="width: 100%" @blur="handleGlxm(item)"></a-input>
|
||||
</a-col>
|
||||
<!-- 多行文本 2 -->
|
||||
|
@ -57,7 +65,7 @@
|
|||
<j-editor placeholder="请输入内容" v-model:value="item.content" :disabled="disabled" />
|
||||
</a-col>
|
||||
<!-- 固定表单(基础信息) 4 -->
|
||||
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24" >
|
||||
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24">
|
||||
<a-form v-bind="formItemLayout">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
|
||||
|
@ -85,11 +93,12 @@
|
|||
<a-col v-for="(item2, index2) in item.list" :key="index2">
|
||||
<a-input
|
||||
placeholder="请输入内容"
|
||||
v-model:value="item2.title" class="form-pattern"
|
||||
v-model:value="item2.title"
|
||||
class="form-pattern"
|
||||
style="width: 80%; margin: 0 10px 5px 20px"
|
||||
@blur="handleGlxm(item)"
|
||||
></a-input>
|
||||
<button type="danger" @click="handleDhwbDel(item, index2)" class="ant-btn" style="margin:8px 0">删除</button>
|
||||
<button @click="handleDhwbDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -99,9 +108,9 @@
|
|||
<a-col>
|
||||
<a-button type="primary" @click="handleDhfwb(item)" class="increase" preIcon="ant-design:plus-outlined">添加</a-button>
|
||||
</a-col>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align:right">
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
|
||||
<j-editor placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" />
|
||||
<button type="danger" @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin:8px 0">删除</button>
|
||||
<button @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -113,18 +122,18 @@
|
|||
</a-col>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
|
||||
<a-textarea placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" />
|
||||
<button type="danger" @click="handleDhwbAreaDel(item, index2)" class="ant-btn" style="margin:8px 0">删除</button>
|
||||
<button @click="handleDhwbAreaDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 自增表格 9 -->
|
||||
<a-col v-else-if="item.type === '9'" :span="24">
|
||||
<a-col v-else-if="item.type === '9' || item.type === '15'" :span="24">
|
||||
<div><a-button type="primary" @click="handleZzbg(item)" class="increase" preIcon="ant-design:plus-outlined">新增</a-button> </div>
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input placeholder="请输入内容" v-model:value="record[column.key]" style="width: 100%"></a-input>
|
||||
|
@ -138,7 +147,7 @@
|
|||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input
|
||||
|
@ -157,7 +166,7 @@
|
|||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input
|
||||
|
@ -170,6 +179,130 @@
|
|||
</template>
|
||||
</a-table>
|
||||
</a-col>
|
||||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
<!-- 课程目标 12 -->
|
||||
<a-col v-else-if="item.type === '12'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-button type="primary" @click="handleKcmbZzbg(item)" class="increase">添加</a-button>
|
||||
</a-col>
|
||||
<a-col style="margin-bottom: 15px"></a-col>
|
||||
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
|
||||
<!-- -{{ item2 }}- -->
|
||||
<a-row>
|
||||
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
|
||||
<!-- -{{ item3 }}- -->
|
||||
<span>
|
||||
<a-input
|
||||
placeholder="请输入内容"
|
||||
v-model:value="item3.title"
|
||||
class="Sheet"
|
||||
style="width: 80%; margin: 0 10px 10px 15px"
|
||||
:disabled="index3 == 0"
|
||||
@blur="handle2Glxm(item)"
|
||||
></a-input>
|
||||
</span>
|
||||
</a-col>
|
||||
<a-col :span="2">
|
||||
<button @click="handleKcmbZzbgDel(item, index2)" class="ant-btn">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 教学内容、重难点和课时安排 13 -->
|
||||
<a-col v-else-if="item.type === '13'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-button type="primary" @click="handle13Zzbg(item)" class="increase">添加</a-button>
|
||||
</a-col>
|
||||
<a-col style="margin-bottom: 15px"></a-col>
|
||||
<a-col>
|
||||
<!-- -{{ item.list}}- -->
|
||||
<a-row v-for="(item2, index2) in item.list" :key="index2">
|
||||
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
|
||||
<a-row>
|
||||
<a-col style="text-align: left" :span="6"> {{ item3.title }}: </a-col>
|
||||
<a-col :span="18">
|
||||
<span v-if="item3.type === '1'">
|
||||
<a-input v-model:value="item3.content" style="width: 90%"></a-input>
|
||||
</span>
|
||||
<span v-if="item3.type === '2'">
|
||||
<a-select
|
||||
:placeholder="`请选择` + item3.title"
|
||||
v-model:value="item3.content"
|
||||
mode="tags"
|
||||
:disabled="disabled"
|
||||
style="width: 90%"
|
||||
>
|
||||
<a-select-option value="">{{ `请选择` + item3.title }}</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
|
||||
peizhi.title
|
||||
}}</a-select-option>
|
||||
</a-select>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col style="text-align: right">
|
||||
<button class="ant-btn" @click="handle13DelZzbg(item, index2)" style="margin-left: 10px">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<!-- 课程目标的评价方式 14 -->
|
||||
<!-- <a-col v-else-if="item.type === '14'" :span="24"> -->
|
||||
<a-col v-else-if="item.type === '14'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-button type="primary" @click="handle14Zzbg(item)" class="increase">添加</a-button>
|
||||
</a-col>
|
||||
<a-col v-if="kcmbShow">
|
||||
<a-row>
|
||||
<a-col :span="10">
|
||||
<a-select :placeholder="`请选择课程目标`" v-model:value="checkKcmb" :disabled="disabled" style="width: 90%">
|
||||
<a-select-option value="">请选择课程目标</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
|
||||
peizhi.title
|
||||
}}</a-select-option>
|
||||
</a-select>
|
||||
</a-col>
|
||||
<a-col :span="10">
|
||||
<a-select :placeholder="`请选择考核方式`" v-model:value="checkKhfs" :disabled="disabled" mode="tags" style="width: 90%">
|
||||
<a-select-option value="">请选择考核方式</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in khmbDataSource" :key="index2">{{
|
||||
peizhi.title
|
||||
}}</a-select-option>
|
||||
</a-select>
|
||||
</a-col>
|
||||
<a-col :span="4">
|
||||
<button class="ant-btn" @click="handleKhmbqueren(item)" style="margin-left: 10px">确认</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col>
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input
|
||||
placeholder="请输入内容"
|
||||
v-model:value="record[column.key]"
|
||||
@blur="handleTwoGlxm(item)"
|
||||
style="width: 100%"
|
||||
></a-input>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
|
||||
<a-col v-else> </a-col>
|
||||
|
||||
|
@ -191,22 +324,33 @@
|
|||
<a-row>
|
||||
<a-col :span="24">
|
||||
<span class="title">教学大纲内容</span>
|
||||
<a-button type="primary" @click="handleShowType(2)" style="float: right; margin-right: 8px"> <Icon icon="ant-design:form-outlined" />编辑 </a-button>
|
||||
<a-button type="primary" @click="handleFabu(1)" style="float: right; margin-right: 8px;" v-if="jxdgInfo.sffb == '0'"> <Icon icon="ant-design:check-outlined"/>发布 </a-button>
|
||||
<a-button type="primary" @click="handleFabu(0)" style="float: right; margin-right: 8px" v-if="jxdgInfo.sffb == '1'"> <Icon icon="ant-design:export-outlined"/>撤销</a-button>
|
||||
<a-button type="primary" @click="handleShowType(2)" style="float: right; margin-right: 8px">
|
||||
<Icon icon="ant-design:form-outlined" />编辑
|
||||
</a-button>
|
||||
<a-button type="primary" @click="handleFabu(1)" style="float: right; margin-right: 8px" v-if="jxdgInfo.sffb == '0'">
|
||||
<Icon icon="ant-design:check-outlined" />发布
|
||||
</a-button>
|
||||
<a-button type="primary" @click="handleFabu(0)" style="float: right; margin-right: 8px" v-if="jxdgInfo.sffb == '1'">
|
||||
<Icon icon="ant-design:export-outlined" />撤销</a-button
|
||||
>
|
||||
<a-divider />
|
||||
</a-col>
|
||||
<a-col :span="23" v-for="(item, index) in zyJxdgMainTable.dataSource" :key="index" style="margin:8px auto; background:#fff;border:1px solid #eee;">
|
||||
<a-col
|
||||
:span="23"
|
||||
v-for="(item, index) in zyJxdgMainTable.dataSource"
|
||||
:key="index"
|
||||
style="margin: 8px auto; background: #fff; border: 1px solid #eee"
|
||||
>
|
||||
<a-row>
|
||||
<a-col :span="24" style="height: 40px; line-height:40px; background-color:#f6f6f6">
|
||||
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f6f6f6">
|
||||
<span class="title">{{ item.title }}</span>
|
||||
</a-col>
|
||||
<!-- 单行文本 1 -->
|
||||
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px;">
|
||||
<span class="Text-Content" v-text="item.content"></span>
|
||||
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item.content"></span>
|
||||
</a-col>
|
||||
<!-- 多行文本 2 -->
|
||||
<a-col v-else-if="item.type === '2'" :span="24" style="margin: 10px; ">
|
||||
<a-col v-else-if="item.type === '2'" :span="24" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item.content"></span>
|
||||
</a-col>
|
||||
<!-- 富文本 3 -->
|
||||
|
@ -236,8 +380,8 @@
|
|||
<!-- 自增单行文本 6 -->
|
||||
<a-col v-else-if="item.type === '6'" :span="24">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px; ">
|
||||
<span class="Text-Content" v-text="item2.title"></span>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item2.title"></span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -252,28 +396,88 @@
|
|||
<!-- 自增多行文本 8 -->
|
||||
<a-col v-else-if="item.type === '8'" :span="24">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px; ">
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item2.title"></span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 自增表格 9 -->
|
||||
<a-col v-else-if="item.type === '9'" :span="24">
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
</a-table>
|
||||
<a-col v-else-if="item.type === '9' || item.type === '15'" :span="24">
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
|
||||
</a-col>
|
||||
<!-- 自增表格(两列关联) 10 -->
|
||||
<a-col v-else-if="item.type === '10'" :span="24">
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
</a-table>
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
|
||||
</a-col>
|
||||
<!-- 自增表格(两列关联) 11 -->
|
||||
<a-col v-else-if="item.type === '11'" :span="24">
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
</a-table>
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false"> </a-table>
|
||||
</a-col>
|
||||
|
||||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
<!-- 课程目标 12 -->
|
||||
<a-col v-else-if="item.type === '12'" :span="24">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
|
||||
<!-- -{{ item2 }}- -->
|
||||
<a-row>
|
||||
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
|
||||
<!-- -{{ item3 }}- -->
|
||||
<span style="line-height: 40px; margin-left: 15px" v-if="index3 == 0"> {{ item3.title }} : </span>
|
||||
<span style="line-height: 40px" v-else>
|
||||
{{ item3.title }}
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 教学内容、重难点和课时安排 13 -->
|
||||
<a-col v-else-if="item.type === '13'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-row v-for="(item2, index2) in item.list" :key="index2" class="dhxg">
|
||||
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
|
||||
<a-row style="padding: 10px">
|
||||
<a-col style="text-align: left" :span="7"> {{ item3.title }}: </a-col>
|
||||
<a-col :span="15">
|
||||
{{ item3.content }}
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col style="height: 20px"> </a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<!-- 课程目标的评价方式 14 -->
|
||||
<!-- <a-col v-else-if="item.type === '14'" :span="24"> -->
|
||||
<a-col v-else-if="item.type === '14'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<!-- <template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input
|
||||
placeholder="请输入内容"
|
||||
v-model:value="record[column.key]"
|
||||
@blur="handleTwoGlxm(item)"
|
||||
style="width: 100%"
|
||||
></a-input>
|
||||
</template>
|
||||
</template> -->
|
||||
</a-table>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
|
||||
<a-col v-else> </a-col>
|
||||
|
||||
<a-col :span="24" v-if="item.tsy">
|
||||
|
@ -292,8 +496,16 @@
|
|||
import { ref, reactive, computed, unref, onMounted } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { queryZyJxdgMainListByMainId, queryDataById, saveOrUpdate2, queryZyJxdgMainListByMainId2 } from '/@/views/kc/zyJxdgBanben/ZyJxdgBanben.api';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import {
|
||||
queryZyJxdgMainListByMainId,
|
||||
queryDataById,
|
||||
saveOrUpdate2,
|
||||
queryZyJxdgMainListByMainId2,
|
||||
queryZyJxdgMainListByMainId3,
|
||||
} from '/@/views/kc/zyJxdgBanben/ZyJxdgBanben.api';
|
||||
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
|
||||
import { Item } from 'ant-design-vue/lib/menu';
|
||||
|
||||
//当前路由信息
|
||||
const { currentRoute } = useRouter();
|
||||
|
@ -301,8 +513,16 @@ const { query } = unref(currentRoute);
|
|||
const { rwbh, xqxn, type, teano } = query; //获取传递参数
|
||||
const showType = ref<number>(0);
|
||||
const jxdgInfo = ref<any>({});
|
||||
const kechengInfo = ref<any>({});
|
||||
const jxdgbbDataSource = ref<any>([]);
|
||||
const disabled = ref<boolean>(false);
|
||||
const { createMessage, createConfirm } = useMessage();
|
||||
|
||||
let kcmbDataSource = ref<{ title: any }[]>([]);
|
||||
const checkKcmb = ref<string>('');
|
||||
const checkKhfs = ref<any>([]);
|
||||
const khmbDataSource = ref<any>([]);
|
||||
const kcmbShow = ref<boolean>(false);
|
||||
|
||||
const zyJxdgMainTable = reactive<Record<string, any>>({
|
||||
loading: false,
|
||||
|
@ -351,11 +571,36 @@ function handleGlxm(item) {
|
|||
}
|
||||
}
|
||||
}
|
||||
function handleFabu(sffb){
|
||||
|
||||
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb,id:jxdgInfo.value.id} }).then((res) => {
|
||||
init()
|
||||
});
|
||||
function handleFabu(sffb) {
|
||||
if (sffb == '1') {
|
||||
var par = jxdgInfo.value;
|
||||
var title = '《' + par.kcmc + '》教学大纲(' + par.banbenName + ')';
|
||||
createConfirm({
|
||||
iconType: 'warning',
|
||||
title: '确认发布',
|
||||
content: title + '是否作为' + par.xqxn + '季学期的执行教学大纲,面向学生发布?',
|
||||
okText: '确认',
|
||||
cancelText: '取消',
|
||||
onOk: () => {
|
||||
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb, id: jxdgInfo.value.id, fbName: title } }).then((res) => {
|
||||
init();
|
||||
});
|
||||
},
|
||||
});
|
||||
} else {
|
||||
createConfirm({
|
||||
iconType: 'warning',
|
||||
title: '确认撤回',
|
||||
content: '确认撤回已发布的执行大纲吗?',
|
||||
okText: '确认',
|
||||
cancelText: '取消',
|
||||
onOk: () => {
|
||||
defHttp.post({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/edit', params: { sffb, id: jxdgInfo.value.id, fbName: title } }).then((res) => {
|
||||
init();
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
//两列关联项目计算方法
|
||||
function handleTwoGlxm(item) {
|
||||
|
@ -400,9 +645,6 @@ function handleDhwb(item) {
|
|||
title: '',
|
||||
sort: item.list.length + 1,
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
//删除单行文本
|
||||
function handleDhwbDel(item, index) {
|
||||
|
@ -514,10 +756,45 @@ async function handleCheckBanben(record) {
|
|||
jxdgInfo.value.banbenId = record.id;
|
||||
jxdgInfo.value.rwbh = rwbh;
|
||||
jxdgInfo.value.teacherNo = teano;
|
||||
console.log('👨👧', jxdgInfo.value);
|
||||
|
||||
//子表数据
|
||||
var id = record.id;
|
||||
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(id);
|
||||
|
||||
var params = {
|
||||
mainId: id,
|
||||
rwbh: rwbh,
|
||||
teacherNo: teano,
|
||||
};
|
||||
//子表数据
|
||||
let zyJxdgMainDataList = await queryZyJxdgMainListByMainId3(params);
|
||||
|
||||
await defHttp.get({ url: '/ktgl/kcKechengbiao/getKcxxByRwbhXqxn', params: { rwbh, xqxn } }).then((res) => {
|
||||
console.log('🙅♀️', res);
|
||||
kechengInfo.value = res;
|
||||
});
|
||||
var list = zyJxdgMainDataList;
|
||||
console.log('👯♀️', list);
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var par = list[i];
|
||||
console.log('👕', par);
|
||||
if (par.type == '4') {
|
||||
var list1 = par.zyJxdgPzxxList;
|
||||
for (var j = 0; j < list1.length; j++) {
|
||||
var par2 = list1[j];
|
||||
if (par2.title == '课程编码') {
|
||||
par2.content = kechengInfo.value.kcbh;
|
||||
} else if (par2.title == '课程名称') {
|
||||
par2.content = kechengInfo.value.kcmc;
|
||||
} else if (par2.title == '学分') {
|
||||
par2.content = kechengInfo.value.xf;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
zyJxdgMainDataList = list;
|
||||
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
|
||||
}
|
||||
async function submitForm() {
|
||||
|
@ -539,15 +816,16 @@ async function submitForm() {
|
|||
}
|
||||
//切换显示模块
|
||||
function handleShowType(type) {
|
||||
console.log('🤛', type);
|
||||
if (type == 1) {
|
||||
jxdgInfo.value = {};
|
||||
zyJxdgMainTable.dataSource = [];
|
||||
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
|
||||
jxdgbbDataSource.value = res.records;
|
||||
});
|
||||
}else if(type == 2){
|
||||
} else if (type == 2) {
|
||||
type = 1;
|
||||
|
||||
|
||||
defHttp.get({ url: '/zyJxdgBanben/zyJxdgBanben/list', params: { sfsy: '1', pageNo: -1 } }).then((res) => {
|
||||
jxdgbbDataSource.value = res.records;
|
||||
});
|
||||
|
@ -556,6 +834,23 @@ function handleShowType(type) {
|
|||
zyJxdgMainTable.dataSource = [];
|
||||
defHttp.get({ url: '/zyJxdgTeacherMain/zyJxdgTeacherMain/queryByRwbhList', params: { rwbh, teacherNo } }).then((res) => {
|
||||
zyJxdgMainTable.dataSource = [...res];
|
||||
console.log('👩💼', zyJxdgMainTable.dataSource);
|
||||
|
||||
for (var i = 0; i < zyJxdgMainTable.dataSource.length; i++) {
|
||||
var par = zyJxdgMainTable.dataSource[i];
|
||||
console.log('👅', par);
|
||||
if (par.type == '12') {
|
||||
var list = par.list2Map;
|
||||
console.log('🧔', list);
|
||||
var list1 = ref<{ title: any }[]>([]);
|
||||
for (var j = 0; j < list.length; j++) {
|
||||
var ppa = list[j][0].title;
|
||||
console.log('👧', ppa);
|
||||
list1.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = list1.value;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
showType.value = type;
|
||||
|
@ -576,8 +871,6 @@ async function init() {
|
|||
showType.value = 0;
|
||||
}
|
||||
});
|
||||
if (jxdgInfo.value.id) {
|
||||
}
|
||||
}
|
||||
|
||||
const jxdgbbColumns = [
|
||||
|
@ -598,6 +891,172 @@ const jxdgbbColumns = [
|
|||
},
|
||||
];
|
||||
|
||||
//--------------------------------------20240824------------------------------------------------------
|
||||
//新增课程目标自增表格
|
||||
function handleKcmbZzbg(item) {
|
||||
item.list2Map = item.list2Map || [];
|
||||
|
||||
var item3 = item.zyJxdgPzxxList;
|
||||
console.log('😁', item3);
|
||||
var oneId = '';
|
||||
var twoId = '';
|
||||
for (var i = 0; i < item3.length; i++) {
|
||||
if (i == 0) {
|
||||
oneId = item3[i].id;
|
||||
} else if (i == 1) {
|
||||
twoId = item3[i].id;
|
||||
}
|
||||
}
|
||||
|
||||
item.list2Map.push([
|
||||
{
|
||||
title: '课程目标' + (item.list2Map.length + 1),
|
||||
key: oneId,
|
||||
sort: item.list2Map.length,
|
||||
},
|
||||
{
|
||||
title: '',
|
||||
key: twoId,
|
||||
sort: item.list2Map.length,
|
||||
},
|
||||
]);
|
||||
var list1 = ref<{ title: any }[]>([]);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var ppa = item.list2Map[i][0].title;
|
||||
list1.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = list1.value;
|
||||
}
|
||||
//删除课程目标自增表格
|
||||
function handleKcmbZzbgDel(item, index) {
|
||||
item.list2Map.splice(index, 1);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var item2 = item.list2Map[i];
|
||||
item2.forEach((item3, index2) => {
|
||||
if (index2 == 0) {
|
||||
item3.title = '课程目标' + (i + 1);
|
||||
}
|
||||
item3.sort = i;
|
||||
});
|
||||
}
|
||||
}
|
||||
//关联项目计算方法
|
||||
function handle2Glxm(item) {
|
||||
var listtt = ref<{ title: any }[]>([]);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var ppa = item.list2Map[i][0].title;
|
||||
listtt.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = listtt.value;
|
||||
|
||||
console.log('👳♀️', item);
|
||||
var sfsglxm = item.sfsglxm;
|
||||
console.log('👱♀️', sfsglxm);
|
||||
if (sfsglxm == '1') {
|
||||
//判断是否是关联项目
|
||||
var list1 = item.list2Map; //课程目标集合
|
||||
console.log('👑', list1);
|
||||
if (list1 != null) {
|
||||
//关联项目是否有值
|
||||
var sort = item.sort; //第几个关联项目
|
||||
var alllist = zyJxdgMainTable.dataSource; //获取全部的数据
|
||||
for (var j = 0; j < alllist.length; j++) {
|
||||
for (var i = 0; i < list1.length; i++) {
|
||||
var item1 = list1[i][0];
|
||||
var title = item1.title; //具体信息
|
||||
var item2 = alllist[j]; //具体数据
|
||||
item2.list = item2.list || [];
|
||||
if (item2.guanlian == sort) {
|
||||
//关联项目等于当前数据
|
||||
if (i == 0) {
|
||||
//判断第一回将原来的清空重新赋值
|
||||
item2.list = [];
|
||||
}
|
||||
//判断当前项是否等于关联项
|
||||
var item3 = item2.zyJxdgPzxxList;
|
||||
console.log('👶', item3);
|
||||
if (item3 != null && item3.length > 0) {
|
||||
if (item2.type == '11') {
|
||||
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
|
||||
} else {
|
||||
item2.list.push({ [item3[0].id]: title });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// handleGlxm(item);
|
||||
}
|
||||
|
||||
function handle13Zzbg(record) {
|
||||
console.log('👎', record);
|
||||
var list2 = record.zyJxdgPzxxList; //课程目标集合
|
||||
var list3: { title: any; type: string; content: string; key: string }[] = [];
|
||||
for (var i = 0; i < list2.length; i++) {
|
||||
var par = list2[i];
|
||||
var type = '1';
|
||||
if (i == 1) {
|
||||
type = '2';
|
||||
}
|
||||
list3.push({
|
||||
title: par.title,
|
||||
type,
|
||||
content: '',
|
||||
key: par.id,
|
||||
});
|
||||
}
|
||||
console.log('🦹', list3);
|
||||
record.list.push({ list: list3 });
|
||||
console.log('👩🔧', record);
|
||||
}
|
||||
|
||||
//删除课程目标自增表格
|
||||
function handle13DelZzbg(item, index) {
|
||||
item.list.splice(index, 1);
|
||||
}
|
||||
|
||||
function handle14Zzbg(item) {
|
||||
console.log('🤧item', item);
|
||||
kcmbShow.value = true;
|
||||
khmbDataSource.value = [];
|
||||
var guanlian = item.guanlian.split(',');
|
||||
var khmbSort = guanlian[1];
|
||||
console.log('👱♀️khmbSort', khmbSort);
|
||||
var alllist = zyJxdgMainTable.dataSource[khmbSort - 1]; //获取全部的数据
|
||||
var item2 = alllist.list;
|
||||
var item3 = alllist.zyJxdgPzxxList[0];
|
||||
console.log('item2', item2);
|
||||
console.log('item3', item3);
|
||||
for (var i = 0; i < item2.length; i++) {
|
||||
var item1 = item2[i];
|
||||
console.log('👩👩👦item1', item1[item3.id]);
|
||||
khmbDataSource.value.push({ title: item1[item3.id] });
|
||||
}
|
||||
console.log('😒khmbDataSource', khmbDataSource.value);
|
||||
}
|
||||
|
||||
function handleKhmbqueren(record) {
|
||||
console.log('👩👦record', record);
|
||||
var a1 = checkKcmb.value; //选择的课程目标
|
||||
var a2 = checkKhfs.value; //选择的考核方式集合
|
||||
let columns = reactive<any>([]);
|
||||
var list2 = record.zyJxdgPzxxList;
|
||||
for (var i = 0; i < list2.length; i++) {
|
||||
var par = list2[i];
|
||||
columns.push(par.id);
|
||||
}
|
||||
for (var i = 0; i < a2.length; i++) {
|
||||
var khfsmc = a2[i]; //考核方式名称
|
||||
record.list.push({ [columns[0]]: a1, [columns[1]]: khfsmc });
|
||||
}
|
||||
handleTwoGlxm(record);
|
||||
kcmbShow.value = false;
|
||||
}
|
||||
|
||||
//--------------------------------------20240824------------------------------------------------------
|
||||
|
||||
onMounted(() => {
|
||||
init();
|
||||
});
|
||||
|
@ -768,31 +1227,51 @@ onMounted(() => {
|
|||
|
||||
.tishi {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-direction: column;
|
||||
text-align: left;
|
||||
margin: 5px;
|
||||
background: #fff8ef;
|
||||
color: #fd8f02;
|
||||
}
|
||||
.tishi span{
|
||||
.tishi span {
|
||||
font-size: 12px;
|
||||
color: #fd8f02;
|
||||
text-indent: 10px;
|
||||
padding: 8px;
|
||||
}
|
||||
.increase{
|
||||
.increase {
|
||||
position: absolute;
|
||||
right:6px;
|
||||
top:-36px;
|
||||
right: 6px;
|
||||
top: -36px;
|
||||
}
|
||||
.place-dele{
|
||||
margin:10px 0;
|
||||
}
|
||||
.form-pattern{
|
||||
.place-dele {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.form-pattern {
|
||||
color: #666;
|
||||
}
|
||||
.Text-Content{
|
||||
.Text-Content {
|
||||
padding: 10px;
|
||||
color: #888;
|
||||
}
|
||||
.dhxg {
|
||||
padding: 15px;
|
||||
border: 1px solid #ccc;
|
||||
margin: 15px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.dhxg:before {
|
||||
border: 4px solid #fd8f02; /* 初始边框颜色 */
|
||||
padding: 15px;
|
||||
margin: 13px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.dhxg:after {
|
||||
border: 4px solid #000; /* 初始边框颜色 */
|
||||
padding: 15px;
|
||||
margin: 17px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
|
@ -13,15 +13,22 @@
|
|||
</a-row>
|
||||
</a-form> -->
|
||||
<!--
|
||||
单行文本 1
|
||||
单行文本 1
|
||||
多行文本 2
|
||||
富文本 3
|
||||
固定表单(基础信息) 4
|
||||
关联表格 5
|
||||
自增单行文本 6
|
||||
关联表格 5
|
||||
自增单行文本 6
|
||||
自增富文本 7
|
||||
自增多行文本 8
|
||||
自增表格 9
|
||||
自增多行文本 8
|
||||
自增表格 9
|
||||
自增表格(两列关联) 10
|
||||
自增表格(多专业) 11
|
||||
|
||||
课程目标 12
|
||||
教学内容、重难点和课时安排 13
|
||||
课程目标的评价方式 14
|
||||
考核方式 15
|
||||
-->
|
||||
<div style="width: 100%; text-align: center; font-weight: bold; font-size: 18px; line-height: 80px">
|
||||
{{ oldInfo.title }}({{ oldInfo.twoTitle_dictText }})教学大纲
|
||||
|
@ -31,9 +38,9 @@
|
|||
:span="23"
|
||||
v-for="(item, index) in zyJxdgMainTable.dataSource"
|
||||
:key="index"
|
||||
style="margin:8px auto;border:1px solid #f5f5f5;background:#fbfbfb;border-radius:5px;"
|
||||
style="margin: 8px auto; border: 1px solid #f5f5f5; background: #fbfbfb; border-radius: 5px"
|
||||
>
|
||||
<a-row c>
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div class="title">{{ item.title }}</div>
|
||||
</a-col>
|
||||
|
@ -51,7 +58,7 @@
|
|||
</a-col>
|
||||
<!-- 固定表单(基础信息) 4 -->
|
||||
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24">
|
||||
<a-col style="margin-bottom:15px;" ></a-col>
|
||||
<a-col style="margin-bottom: 15px"></a-col>
|
||||
<a-form v-bind="formItemLayout">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
|
||||
|
@ -73,12 +80,12 @@
|
|||
</a-col>
|
||||
<!-- 自增单行文本 6 -->
|
||||
<a-col v-else-if="item.type === '6'" :span="24">
|
||||
<a-row>
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-button type="primary" @click="handleDhwb(item)" class="increase" >添加</a-button>
|
||||
<a-button type="primary" @click="handleDhwb(item)" class="increase">添加</a-button>
|
||||
</a-col>
|
||||
<a-col style="margin-bottom:15px;" ></a-col>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" >
|
||||
<a-col style="margin-bottom: 15px"></a-col>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2">
|
||||
<a-input
|
||||
placeholder="请输入内容"
|
||||
v-model:value="item2.title"
|
||||
|
@ -86,7 +93,7 @@
|
|||
style="width: 80%; margin: 0 10px 10px 15px"
|
||||
@blur="handleGlxm(item)"
|
||||
></a-input>
|
||||
<button type="danger" @click="handleDhwbDel(item, index2)" class="ant-btn">删除</button>
|
||||
<button @click="handleDhwbDel(item, index2)" class="ant-btn">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -98,7 +105,7 @@
|
|||
</a-col>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
|
||||
<j-editor placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" style="width: 500px; height: 200px" />
|
||||
<button type="danger" @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin:8px 0">删除</button>
|
||||
<button @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -110,18 +117,18 @@
|
|||
</a-col>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
|
||||
<a-textarea placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" />
|
||||
<button type="danger" @click="handleDhwbAreaDel(item, index2)" class="ant-btn">删除</button>
|
||||
<button @click="handleDhwbAreaDel(item, index2)" class="ant-btn">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 自增表格 9 -->
|
||||
<a-col v-else-if="item.type === '9'" :span="24">
|
||||
<a-col v-else-if="item.type === '9' || item.type === '15'" :span="24">
|
||||
<div><a-button type="primary" @click="handleZzbg(item)" class="increase">新增</a-button> </div>
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn" >删除</button>
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input placeholder="请输入内容" v-model:value="record[column.key]" style="width: 100%"></a-input>
|
||||
|
@ -135,7 +142,7 @@
|
|||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button type="danger" @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input>
|
||||
|
@ -143,13 +150,13 @@
|
|||
</template>
|
||||
</a-table>
|
||||
</a-col>
|
||||
<!-- 自增表格(两列关联) 11 -->
|
||||
<!-- 自增表格(多专业) 11 -->
|
||||
<a-col v-else-if="item.type === '11'" :span="24">
|
||||
<div><a-button type="primary" @click="handleZzbg(item)" class="increase">新增</a-button> </div>
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<a-button type="danger" @click="handleZzbgDel(item.list, record.sort)">删除</a-button>
|
||||
<button @click="handleZzbgDel(item.list, record.sort)">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input>
|
||||
|
@ -158,6 +165,126 @@
|
|||
</a-table>
|
||||
</a-col>
|
||||
|
||||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
<!-- 课程目标 12 -->
|
||||
<a-col v-else-if="item.type === '12'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-button type="primary" @click="handleKcmbZzbg(item)" class="increase">添加</a-button>
|
||||
</a-col>
|
||||
<a-col style="margin-bottom: 15px"></a-col>
|
||||
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
|
||||
<!-- -{{ item2 }}- -->
|
||||
<a-row>
|
||||
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
|
||||
<!-- -{{ item3 }}- -->
|
||||
<span>
|
||||
<a-input
|
||||
placeholder="请输入内容"
|
||||
v-model:value="item3.title"
|
||||
class="Sheet"
|
||||
style="width: 80%; margin: 0 10px 10px 15px"
|
||||
:disabled="index3 == 0"
|
||||
@blur="handle2Glxm(item)"
|
||||
></a-input>
|
||||
</span>
|
||||
</a-col>
|
||||
<a-col :span="2">
|
||||
<button @click="handleKcmbZzbgDel(item, index2)" class="ant-btn">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 教学内容、重难点和课时安排 13 -->
|
||||
<a-col v-else-if="item.type === '13'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-button type="primary" @click="handle13Zzbg(item)" class="increase">添加</a-button>
|
||||
</a-col>
|
||||
<a-col style="margin-bottom: 15px"></a-col>
|
||||
<a-col>
|
||||
<!-- -{{ item.list}}- -->
|
||||
<a-row v-for="(item2, index2) in item.list" :key="index2">
|
||||
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
|
||||
<a-row>
|
||||
<a-col style="text-align: left" :span="6"> {{ item3.title }}: </a-col>
|
||||
<a-col :span="18">
|
||||
<span v-if="item3.type === '1'">
|
||||
<a-input v-model:value="item3.content" style="width: 90%"></a-input>
|
||||
</span>
|
||||
<span v-if="item3.type === '2'">
|
||||
<a-select
|
||||
:placeholder="`请选择` + item3.title"
|
||||
v-model:value="item3.content"
|
||||
mode="tags"
|
||||
:disabled="disabled"
|
||||
style="width: 90%"
|
||||
>
|
||||
<a-select-option value="">{{ `请选择` + item3.title }}</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
|
||||
peizhi.title
|
||||
}}</a-select-option>
|
||||
</a-select>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col style="text-align: right">
|
||||
<button class="ant-btn" @click="handle13DelZzbg(item, index2)" style="margin-left: 10px">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- 课程目标的评价方式 14 -->
|
||||
<a-col v-else-if="item.type === '14'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-button type="primary" @click="handle14Zzbg(item)" class="increase">添加</a-button>
|
||||
</a-col>
|
||||
<a-col v-if="kcmbShow">
|
||||
<a-row>
|
||||
<a-col :span="10">
|
||||
<a-select :placeholder="`请选择课程目标`" v-model:value="checkKcmb" :disabled="disabled" style="width: 90%">
|
||||
<a-select-option value="">请选择课程目标</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
|
||||
peizhi.title
|
||||
}}</a-select-option>
|
||||
</a-select>
|
||||
</a-col>
|
||||
<a-col :span="10">
|
||||
<a-select :placeholder="`请选择考核方式`" v-model:value="checkKhfs" :disabled="disabled" mode="tags" style="width: 90%">
|
||||
<a-select-option value="">请选择考核方式</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in khmbDataSource" :key="index2">{{
|
||||
peizhi.title
|
||||
}}</a-select-option>
|
||||
</a-select>
|
||||
</a-col>
|
||||
<a-col :span="4">
|
||||
<button class="ant-btn" @click="handleKhmbqueren(item)" style="margin-left: 10px">确认</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col>
|
||||
<a-table :columns="getTableZzColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-input placeholder="请输入内容" v-model:value="record[column.key]" @blur="handleTwoGlxm(item)" style="width: 100%"></a-input>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
|
||||
<a-col v-else> </a-col>
|
||||
|
||||
<a-col :span="24">
|
||||
|
@ -187,6 +314,7 @@ import { zyJxdgMainColumns } from '../ZyJxdgBanben.data';
|
|||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
import { Form } from 'ant-design-vue';
|
||||
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
|
||||
import { spanEnds } from '/@/components/jeecg/JVxeTable/src/componentMap';
|
||||
|
||||
const useForm = Form.useForm;
|
||||
|
||||
|
@ -210,6 +338,13 @@ export default defineComponent({
|
|||
const loading = ref(false);
|
||||
const zyJxdgMainTableRef = ref();
|
||||
const oldInfo = ref({});
|
||||
|
||||
let kcmbDataSource = ref<{ title: any }[]>([]);
|
||||
const checkKcmb = ref<string>('');
|
||||
const checkKhfs = ref<any>([]);
|
||||
const khmbDataSource = ref<any>([]);
|
||||
const kcmbShow = ref<boolean>(false);
|
||||
|
||||
const zyJxdgMainTable = reactive<Record<string, any>>({
|
||||
loading: false,
|
||||
columns: zyJxdgMainColumns,
|
||||
|
@ -266,6 +401,22 @@ export default defineComponent({
|
|||
};
|
||||
//子表数据
|
||||
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId3(params);
|
||||
|
||||
for(var i=0;i<zyJxdgMainDataList.length;i++){
|
||||
var par = zyJxdgMainDataList[i];
|
||||
if(par.type == '12'){
|
||||
var list = par.list2Map
|
||||
var list1 = ref<{ title: any }[]>([]);
|
||||
for (var j = 0; j < list.length; j++) {
|
||||
var ppa = list[j][0].title;
|
||||
list1.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = list1.value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
console.log('💁♀️', zyJxdgMainDataList);
|
||||
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
|
||||
}
|
||||
|
@ -290,6 +441,29 @@ export default defineComponent({
|
|||
|
||||
async function submitForm() {
|
||||
const alllist = zyJxdgMainTable.dataSource;
|
||||
|
||||
// for (var i = 0; i < alllist.length; i++) {
|
||||
// var item = alllist[i];
|
||||
// console.log('👨🎤', item);
|
||||
// console.log('👨🎤', item.type);
|
||||
// if (item.type == '13') {
|
||||
// var list = item.list;
|
||||
// for(var j=0;j<list.length;j++){
|
||||
// var item2 = list[j].list;
|
||||
// if(item2.length>0){
|
||||
// item2.forEach((element) => {
|
||||
// if (element.type == '2') {
|
||||
// console.log('--->',element);
|
||||
// if(element.content.indexOf(',')>-1){
|
||||
// element.content = element.split(",");
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
console.log('✋', alllist);
|
||||
|
||||
var values = {};
|
||||
|
@ -392,6 +566,172 @@ export default defineComponent({
|
|||
}
|
||||
}
|
||||
|
||||
//--------------------------------------20240824------------------------------------------------------
|
||||
//新增课程目标自增表格
|
||||
function handleKcmbZzbg(item) {
|
||||
item.list2Map = item.list2Map || [];
|
||||
|
||||
var item3 = item.zyJxdgPzxxList;
|
||||
console.log('😁', item3);
|
||||
var oneId = '';
|
||||
var twoId = '';
|
||||
for (var i = 0; i < item3.length; i++) {
|
||||
if (i == 0) {
|
||||
oneId = item3[i].id;
|
||||
} else if (i == 1) {
|
||||
twoId = item3[i].id;
|
||||
}
|
||||
}
|
||||
|
||||
item.list2Map.push([
|
||||
{
|
||||
title: '课程目标' + (item.list2Map.length + 1),
|
||||
key: oneId,
|
||||
sort: item.list2Map.length,
|
||||
},
|
||||
{
|
||||
title: '',
|
||||
key: twoId,
|
||||
sort: item.list2Map.length,
|
||||
},
|
||||
]);
|
||||
var list1 = ref<{ title: any }[]>([]);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var ppa = item.list2Map[i][0].title;
|
||||
list1.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = list1.value;
|
||||
}
|
||||
//删除课程目标自增表格
|
||||
function handleKcmbZzbgDel(item, index) {
|
||||
item.list2Map.splice(index, 1);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var item2 = item.list2Map[i];
|
||||
item2.forEach((item3, index2) => {
|
||||
if (index2 == 0) {
|
||||
item3.title = '课程目标' + (i + 1);
|
||||
}
|
||||
item3.sort = i;
|
||||
});
|
||||
}
|
||||
}
|
||||
//关联项目计算方法
|
||||
function handle2Glxm(item) {
|
||||
var listtt = ref<{ title: any }[]>([]);
|
||||
for (var i = 0; i < item.list2Map.length; i++) {
|
||||
var ppa = item.list2Map[i][0].title;
|
||||
listtt.value.push({ title: ppa });
|
||||
}
|
||||
kcmbDataSource.value = listtt.value;
|
||||
|
||||
console.log('👳♀️', item);
|
||||
var sfsglxm = item.sfsglxm;
|
||||
console.log('👱♀️', sfsglxm);
|
||||
if (sfsglxm == '1') {
|
||||
//判断是否是关联项目
|
||||
var list1 = item.list2Map; //课程目标集合
|
||||
console.log('👑', list1);
|
||||
if (list1 != null) {
|
||||
//关联项目是否有值
|
||||
var sort = item.sort; //第几个关联项目
|
||||
var alllist = zyJxdgMainTable.dataSource; //获取全部的数据
|
||||
for (var j = 0; j < alllist.length; j++) {
|
||||
for (var i = 0; i < list1.length; i++) {
|
||||
var item1 = list1[i][0];
|
||||
var title = item1.title; //具体信息
|
||||
var item2 = alllist[j]; //具体数据
|
||||
item2.list = item2.list || [];
|
||||
if (item2.guanlian == sort) {
|
||||
//关联项目等于当前数据
|
||||
if (i == 0) {
|
||||
//判断第一回将原来的清空重新赋值
|
||||
item2.list = [];
|
||||
}
|
||||
//判断当前项是否等于关联项
|
||||
var item3 = item2.zyJxdgPzxxList;
|
||||
console.log('👶', item3);
|
||||
if (item3 != null && item3.length > 0) {
|
||||
if (item2.type == '11') {
|
||||
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
|
||||
} else {
|
||||
item2.list.push({ [item3[0].id]: title });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// handleGlxm(item);
|
||||
}
|
||||
|
||||
function handle13Zzbg(record) {
|
||||
console.log('👎', record);
|
||||
var list2 = record.zyJxdgPzxxList; //课程目标集合
|
||||
var list3: { title: any; type: string; content: string; key: string }[] = [];
|
||||
for (var i = 0; i < list2.length; i++) {
|
||||
var par = list2[i];
|
||||
var type = '1';
|
||||
if (i == 1) {
|
||||
type = '2';
|
||||
}
|
||||
list3.push({
|
||||
title: par.title,
|
||||
type,
|
||||
content: '',
|
||||
key: par.id,
|
||||
});
|
||||
}
|
||||
console.log('🦹', list3);
|
||||
record.list.push({ list: list3 });
|
||||
console.log('👩🔧', record);
|
||||
}
|
||||
|
||||
//删除课程目标自增表格
|
||||
function handle13DelZzbg(item, index) {
|
||||
item.list.splice(index, 1);
|
||||
}
|
||||
|
||||
function handle14Zzbg(item) {
|
||||
console.log('🤧item', item);
|
||||
kcmbShow.value = true;
|
||||
khmbDataSource.value = [];
|
||||
var guanlian = item.guanlian.split(',');
|
||||
var khmbSort = guanlian[1];
|
||||
console.log('👱♀️khmbSort', khmbSort);
|
||||
var alllist = zyJxdgMainTable.dataSource[khmbSort - 1]; //获取全部的数据
|
||||
var item2 = alllist.list;
|
||||
var item3 = alllist.zyJxdgPzxxList[0];
|
||||
console.log('item2', item2);
|
||||
console.log('item3', item3);
|
||||
for (var i = 0; i < item2.length; i++) {
|
||||
var item1 = item2[i];
|
||||
console.log('👩👩👦item1', item1[item3.id]);
|
||||
khmbDataSource.value.push({ title: item1[item3.id] });
|
||||
}
|
||||
console.log('😒khmbDataSource', khmbDataSource.value);
|
||||
}
|
||||
|
||||
function handleKhmbqueren(record) {
|
||||
console.log('👩👦record', record);
|
||||
var a1 = checkKcmb.value; //选择的课程目标
|
||||
var a2 = checkKhfs.value; //选择的考核方式集合
|
||||
let columns = reactive<any>([]);
|
||||
var list2 = record.zyJxdgPzxxList;
|
||||
for (var i = 0; i < list2.length; i++) {
|
||||
var par = list2[i];
|
||||
columns.push(par.id);
|
||||
}
|
||||
for (var i = 0; i < a2.length; i++) {
|
||||
var khfsmc = a2[i]; //考核方式名称
|
||||
record.list.push({ [columns[0]]: a1, [columns[1]]: khfsmc });
|
||||
}
|
||||
handleTwoGlxm(record);
|
||||
kcmbShow.value = false;
|
||||
}
|
||||
|
||||
//--------------------------------------20240824------------------------------------------------------
|
||||
|
||||
//获取列表列表头
|
||||
function getTableColumns(list) {
|
||||
let columns = reactive<any>([]);
|
||||
|
@ -425,7 +765,6 @@ export default defineComponent({
|
|||
key: 'action',
|
||||
};
|
||||
columns.push(inePar2);
|
||||
console.log('👺11111111', columns);
|
||||
return columns;
|
||||
}
|
||||
//关联项目计算方法
|
||||
|
@ -445,7 +784,6 @@ export default defineComponent({
|
|||
var item2 = alllist[j]; //具体数据
|
||||
item2.list = item2.list || [];
|
||||
if (item2.guanlian == sort) {
|
||||
console.log('🧚♂️222222222222', item2);
|
||||
//关联项目等于当前数据
|
||||
if (i == 0) {
|
||||
//判断第一回将原来的清空重新赋值
|
||||
|
@ -455,7 +793,6 @@ export default defineComponent({
|
|||
var item3 = item2.zyJxdgPzxxList;
|
||||
console.log('👶', item3);
|
||||
if (item3 != null && item3.length > 0) {
|
||||
console.log('✊item2.type--->', item2.type);
|
||||
if (item2.type == '11') {
|
||||
item2.list.push({ [item3[0].id]: '', [item3[1].id]: title });
|
||||
} else {
|
||||
|
@ -468,15 +805,18 @@ export default defineComponent({
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//两列关联项目计算方法
|
||||
function handleTwoGlxm(item) {
|
||||
var sfsglxm = item.sfsglxm;
|
||||
if (sfsglxm == '1') {
|
||||
//判断是否是关联项目
|
||||
var list1 = item.list; //课程目标集合
|
||||
console.log('👄', list1);
|
||||
if (list1 != null) {
|
||||
//关联项目是否有值
|
||||
var sort = item.sort; //第几个关联项目
|
||||
console.log('👨🚒', sort);
|
||||
var alllist = zyJxdgMainTable.dataSource; //获取全部的数据
|
||||
for (var j = 0; j < alllist.length; j++) {
|
||||
for (var i = 0; i < list1.length; i++) {
|
||||
|
@ -540,6 +880,19 @@ export default defineComponent({
|
|||
handleZzbg,
|
||||
handleZzbgDel,
|
||||
handleTwoGlxm,
|
||||
|
||||
handleKcmbZzbg,
|
||||
handleKcmbZzbgDel,
|
||||
handle2Glxm,
|
||||
handle13Zzbg,
|
||||
handle13DelZzbg,
|
||||
kcmbDataSource,
|
||||
checkKcmb,
|
||||
kcmbShow,
|
||||
checkKhfs,
|
||||
handle14Zzbg,
|
||||
khmbDataSource,
|
||||
handleKhmbqueren,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
@ -550,7 +903,7 @@ export default defineComponent({
|
|||
height: 40px;
|
||||
line-height: 40px;
|
||||
background-color: rgb(246, 246, 246);
|
||||
padding:0 20px;
|
||||
padding: 0 20px;
|
||||
}
|
||||
.tishi {
|
||||
width: 100%;
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
<j-dict-select-tag type='list' v-model:value="item.type" dictCode="jxdglx" :disabled="disabled" style=" width: 100%;"/>
|
||||
</a-col>
|
||||
<a-col :span="6">
|
||||
<a-select placeholder="请选择关联第几个项目" v-model:value="item.guanlian" :disabled="disabled" style="margin-left:-12px;width: 100%;">
|
||||
<a-select placeholder="请选择关联第几个项目" v-model:value="item.guanlian" mode="tags" :disabled="disabled" style="margin-left:-12px;width: 100%;">
|
||||
<a-select-option value="">请选择关联第几个项目</a-select-option>
|
||||
<a-select-option :value="peizhi.sort" v-for="(peizhi,index2) in zyJxdgMainTable.dataSource" :key="index2">{{peizhi.title}}</a-select-option>
|
||||
</a-select>
|
||||
|
@ -51,21 +51,26 @@
|
|||
<a-input v-model:value="item.tsy" placeholder="请输入提示语" :disabled="disabled" class="Prompt-language" />
|
||||
</a-col>
|
||||
<a-col :span="3">
|
||||
<button type="danger" @click="handleOneDel(item,index)" class="ant-btn" style="margin-left:10px">删除</button>
|
||||
<button @click="handleOneDel(item,index)" class="ant-btn" style="margin-left:10px">删除</button>
|
||||
</a-col>
|
||||
<!--
|
||||
单行文本 1 a
|
||||
单行文本 1
|
||||
多行文本 2
|
||||
富文本 3
|
||||
固定表单(基础信息) 4
|
||||
关联表格 5 a
|
||||
自增单行文本 6 a
|
||||
关联表格 5
|
||||
自增单行文本 6
|
||||
自增富文本 7
|
||||
自增多行文本 8
|
||||
自增表格 9 a
|
||||
自增表格(两列关联) 10 a
|
||||
自增表格 9
|
||||
自增表格(两列关联) 10
|
||||
|
||||
自增表格(多专业) 11
|
||||
课程目标 12
|
||||
教学内容、重难点和课时安排 13
|
||||
课程目标的评价方式 14
|
||||
-->
|
||||
<a-col v-if="item.type==='4' || item.type==='5' || item.type==='9'|| item.type==='10'|| item.type==='11'">
|
||||
<a-col v-if="item.type==='4' || item.type==='5' || item.type==='9'|| item.type==='10'|| item.type==='11'|| item.type==='12'|| item.type==='13'|| item.type==='14'|| item.type==='15'">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<a-button type="primary" @click="handleTwoType(item)" class="margin10" preIcon="ant-design:plus-outlined">新增字段</a-button>
|
||||
|
@ -76,12 +81,13 @@
|
|||
<a-input v-model:value="twoItem.title" placeholder="请输入选项" :disabled="disabled" class="fields-add"/>
|
||||
</a-col>
|
||||
<a-col :span="3"><close-outlined />
|
||||
<button type="danger" @click="handleTwoDel(item,index2)" class="ant-btn" style="margin-left:10px">删除</button>
|
||||
<button @click="handleTwoDel(item,index2)" class="ant-btn" style="margin-left:10px">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -185,6 +191,13 @@
|
|||
await queryMainData(row.id);
|
||||
//子表数据
|
||||
const zyJxdgMainDataList = await queryZyJxdgMainListByMainId(row['id']);
|
||||
for(var i=0;i<zyJxdgMainDataList.length;i++){
|
||||
var par = zyJxdgMainDataList[i];
|
||||
var guanlian = par.guanlian;
|
||||
if(guanlian){
|
||||
zyJxdgMainDataList[i].guanlian = guanlian.split(",");
|
||||
}
|
||||
}
|
||||
zyJxdgMainTable.dataSource = [...zyJxdgMainDataList];
|
||||
}
|
||||
|
||||
|
@ -207,10 +220,15 @@
|
|||
async function submitForm() {
|
||||
const mainData = await getFormData();
|
||||
const subData = zyJxdgMainTable.dataSource;
|
||||
for(var i=0;i<subData.length;i++){
|
||||
var par = subData[i];
|
||||
var guanlian = par.guanlian;
|
||||
if(guanlian){
|
||||
subData[i].guanlian = guanlian +"";
|
||||
}
|
||||
}
|
||||
console.log('主表数据11111', subData)
|
||||
const values = Object.assign({}, dbData, mainData);
|
||||
console.log('主表数据22222222', subData.value)
|
||||
console.log('主表数据22222222', subData.target)
|
||||
values.zyJxdgMainList = subData;
|
||||
console.log('表单提交数据', values)
|
||||
const isUpdate = values.id ? true : false
|
||||
|
|
|
@ -1,116 +1,209 @@
|
|||
<template>
|
||||
<div>
|
||||
<a-row class="rowGutter" :gutter="[16, 16]">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item, index) in listData"
|
||||
:key="index" style="margin-bottom: 40px;">
|
||||
<div style="border: 2px #eef1f2 solid;">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item, index) in listData" :key="index" style="margin-bottom: 40px">
|
||||
<div style="border: 2px #eef1f2 solid">
|
||||
<div>
|
||||
<div style="width: 100%;height: 20px;background-color: #1c84c6;"></div>
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 10px;height: 70px;font-weight: 600;font-size: 16px;">
|
||||
<div style="width: 100%; height: 20px; background-color: #1c84c6"></div>
|
||||
<div
|
||||
style="
|
||||
width: 100%;
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
padding: 10px;
|
||||
height: 70px;
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
"
|
||||
>
|
||||
{{ item.kcmc }} <span v-if="item.szkc == '1'" title="思政课程">⭐</span>
|
||||
</div>
|
||||
</div>
|
||||
<a-divider style="margin: 0px;color: #eef1f2;" />
|
||||
<div style="padding: 20px;font-weight: 600;">
|
||||
<a-divider style="margin: 0px; color: #eef1f2" />
|
||||
<div style="padding: 20px; font-weight: 600">
|
||||
<a-row>
|
||||
<a-col :span="16">
|
||||
<div style="height: 38px;font-size: 16px;font-weight: 700;">{{ item.skjs }}</div>
|
||||
<div style="font-size: 14px;font-weight: 700;height: 50px;">{{ item.kkdw }}</div>
|
||||
<div style="height: 38px; font-size: 16px; font-weight: 700">{{ item.skjs }}</div>
|
||||
<div style="font-size: 14px; font-weight: 700; height: 50px">{{ item.kkdw }}</div>
|
||||
</a-col>
|
||||
<a-col :span="8" style="text-align: center;height: 70px;">
|
||||
<div style="color: #1c84c6;font-size: 24px;font-weight: 600;">{{ item.xkrs }}</div>
|
||||
<div style="font-size: 14px;font-weight: 700;">选课人数</div>
|
||||
<a-col :span="8" style="text-align: center; height: 70px">
|
||||
<div style="color: #1c84c6; font-size: 24px; font-weight: 600">{{ item.xkrs }}</div>
|
||||
<div style="font-size: 14px; font-weight: 700">选课人数</div>
|
||||
</a-col>
|
||||
<a-col :span="24" style="margin-top:0px;font-weight: 700;">
|
||||
<a-col :span="24" style="margin-top: 0px; font-weight: 700">
|
||||
<div>
|
||||
第<span>{{ item.hh }}</span>节
|
||||
第<span>{{ item.hh }}</span
|
||||
>节
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="width:100%;text-align: center;font-weight: 700;">
|
||||
———线下上课地点———
|
||||
</div>
|
||||
<div style="width: 100%; text-align: center; font-weight: 700"> ———线下上课地点——— </div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="height: 50px;font-weight: 700;">
|
||||
<div style="height: 50px; font-weight: 700">
|
||||
{{ item.skdd }}
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="listType == 1 || listType == '1'">
|
||||
<a-row style="text-align: center;" v-if="getSysConfig().flag9=='1'">
|
||||
<a-row style="text-align: center" v-if="getSysConfig().flag9 == '1'">
|
||||
<a-col :span="12">
|
||||
<a-button type="primary" :class="handleZhjs(item.sfyzhjs)" @click="toLivePage(item)" :disabled="item.sfyzhjs=='0' " v-if="item.sftkb!='1'" style="color: white;">听课</a-button>
|
||||
<a-button type="primary" class="yyyClass" @click="toLivePage(item)" :disabled="true" v-else style="color: white;" :title="`停课事由:`+item.tksy">停课</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
:class="handleZhjs(item.sfyzhjs)"
|
||||
@click="toLivePage(item)"
|
||||
:disabled="item.sfyzhjs == '0'"
|
||||
v-if="item.sftkb != '1'"
|
||||
style="color: white"
|
||||
>听课</a-button
|
||||
>
|
||||
<a-button
|
||||
type="primary"
|
||||
class="yyyClass"
|
||||
@click="toLivePage(item)"
|
||||
:disabled="true"
|
||||
v-else
|
||||
style="color: white"
|
||||
:title="`停课事由:` + item.tksy"
|
||||
>停课</a-button
|
||||
>
|
||||
</a-col>
|
||||
<a-col :span="12" v-if="item.sftkb=='1'">
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" :disabled="true" style="color: white;" :title="`停课事由:`+item.tksy">评价</a-button>
|
||||
<a-col :span="12" v-if="item.sftkb == '1'">
|
||||
<a-button
|
||||
type="primary"
|
||||
class="bcClass"
|
||||
@click="funpingjia(item)"
|
||||
:disabled="true"
|
||||
style="color: white"
|
||||
:title="`停课事由:` + item.tksy"
|
||||
>评价</a-button
|
||||
>
|
||||
</a-col>
|
||||
<a-col :span="12" v-else>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="color: white;">评价</a-button>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="color: white">评价</a-button>
|
||||
</a-col>
|
||||
<!-- <a-col :span="8">
|
||||
<a-button type="primary" class="bcClass" @click="handleBaocuo(item)">报错</a-button>
|
||||
</a-col> -->
|
||||
</a-row>
|
||||
<a-row style="text-align: center;" v-else>
|
||||
<a-col :span="24" v-if="item.sftkb=='1'">
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" :disabled="true" style="color: white;" :title="`停课事由:`+item.tksy">评价</a-button>
|
||||
<a-row style="text-align: center" v-else>
|
||||
<a-col :span="24" v-if="item.sftkb == '1'">
|
||||
<a-button
|
||||
type="primary"
|
||||
class="bcClass"
|
||||
@click="funpingjia(item)"
|
||||
:disabled="true"
|
||||
style="color: white"
|
||||
:title="`停课事由:` + item.tksy"
|
||||
>评价</a-button
|
||||
>
|
||||
</a-col>
|
||||
<a-col :span="24" v-else>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="color: white;">评价</a-button>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="color: white">评价</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<!-- <a-col :span="24" style="text-align: center;"> -->
|
||||
<a-col :span="24" v-else style="text-align: center;">
|
||||
<a-col :span="24" v-else style="text-align: center">
|
||||
<div v-show="!isNow(item)">
|
||||
<span v-if="props.type == 'zzsk'">
|
||||
<!-- 正在上课的,就给个评价 -->
|
||||
<!-- <a-button type="primary" class="bcClass" @click="funpingjia(item)" >评价</a-button> -->
|
||||
<span v-if="pjDisabled">
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="background-color: #dfdfdf;" disabled>评价</a-button>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="background-color: #dfdfdf" disabled>评价</a-button>
|
||||
</span>
|
||||
<span v-else>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-if="item.sftkb=='1'" style="color: white;" :disabled="true" :title="`停课事由:`+item.tksy">评价</a-button>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-else style="color: white;" >评价</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
class="bcClass"
|
||||
@click="funpingjia(item)"
|
||||
v-if="item.sftkb == '1'"
|
||||
style="color: white"
|
||||
:disabled="true"
|
||||
:title="`停课事由:` + item.tksy"
|
||||
>评价</a-button
|
||||
>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-else style="color: white">评价</a-button>
|
||||
</span>
|
||||
</span>
|
||||
<span v-else>
|
||||
<a-button type="primary" class="yyyClass" disabled v-if="item.sfyy==1 && item.isdeleted==0">已预约</a-button>
|
||||
<a-button type="primary" class="yyClass" @click="funYuyue(item)" v-if="item.sfyy==0 || (item.sfyy==1 && item.isdeleted==1)" :disabled="item.sftkb=='1'" style="color: white;">预约</a-button>
|
||||
<a-button type="primary" class="yyyClass" disabled v-if="item.sfyy == 1 && item.isdeleted == 0">已预约</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
class="yyClass"
|
||||
@click="funYuyue(item)"
|
||||
v-if="item.sfyy == 0 || (item.sfyy == 1 && item.isdeleted == 1)"
|
||||
:disabled="item.sftkb == '1'"
|
||||
style="color: white"
|
||||
>预约</a-button
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
<div v-show="isNow(item)">
|
||||
<span v-if="pjDisabled">
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="background-color: #dfdfdf;" disabled>评价</a-button>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" style="background-color: #dfdfdf" disabled>评价</a-button>
|
||||
</span>
|
||||
<span v-else>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-if="item.sftkb=='1'" :disabled="true" style="color: white;" :title="`停课事由:`+item.tksy">评价</a-button>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-else style="color: white;">评价</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
class="bcClass"
|
||||
@click="funpingjia(item)"
|
||||
v-if="item.sftkb == '1'"
|
||||
:disabled="true"
|
||||
style="color: white"
|
||||
:title="`停课事由:` + item.tksy"
|
||||
>评价</a-button
|
||||
>
|
||||
<a-button type="primary" class="bcClass" @click="funpingjia(item)" v-else style="color: white">评价</a-button>
|
||||
</span>
|
||||
</div>
|
||||
<!-- <a-col :span="24"> -->
|
||||
|
||||
<span style="margin-left: 10px;">
|
||||
<a-button type="primary" class="yyyClass" disabled v-if="item.sfyy == 1 && item.isdeleted == 0">已预约</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
class="yyClass"
|
||||
@click="funYuyue(item)"
|
||||
v-if="item.sfyy == 0 || (item.sfyy == 1 && item.isdeleted == 1)"
|
||||
:disabled="item.sftkb == '1'"
|
||||
style="color: white"
|
||||
>预约</a-button
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
<!-- <a-col :span="24"> -->
|
||||
<!-- <a-button type="primary" class="bcClass" @click="handleBaocuo(item)">报错</a-button> -->
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" style="line-height: 50px">
|
||||
<div v-show="1 == pageNo && current > 0 && total > 4">
|
||||
<div style="text-align: center"><a @click="funMore">更多...</a></div>
|
||||
</div>
|
||||
<div v-show="current == 0">
|
||||
<div style="text-align: center"><a @click="funMore">暂无课堂</a></div>
|
||||
</div>
|
||||
<div v-show="1 < pageNo && pageNo < current">
|
||||
<div style="text-align: center"><a @click="funMore">更多...</a></div>
|
||||
<div style="text-align: right; margin-top: -51px"><a @click="funShouqi">收起</a></div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 报错列表 -->
|
||||
<KcErrorreportIndexModal ref="kcErrorreportIndexModal"></KcErrorreportIndexModal>
|
||||
<addModalPage ref="tingKeZuJiAddModal"/>
|
||||
<addModalPage ref="tingKeZuJiAddModal" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref,watch,reactive,defineExpose, createVNode,h } from 'vue';
|
||||
import { ref, watch, reactive, defineExpose, createVNode, h } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue'
|
||||
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue';
|
||||
import { getUserId, addTingKeLog, getSysConfig } from '/@/views/site/utils/index';
|
||||
import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue';
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useRouter } from 'vue-router';
|
||||
import dayjs from 'dayjs';
|
||||
import { Modal } from 'ant-design-vue';
|
||||
import { CloseOutlined } from '@ant-design/icons-vue';
|
||||
|
@ -122,134 +215,170 @@ const kcErrorreportIndexModal = ref();
|
|||
const tingKeZuJiAddModal = ref();
|
||||
const route = useRouter();
|
||||
|
||||
const pageNo = ref<number>(1);
|
||||
const pageSize = ref<number>(1);
|
||||
const current = ref<number>(0);
|
||||
const total = ref<number>(0);
|
||||
|
||||
const emit = defineEmits(['setTotal']);
|
||||
|
||||
const { createMessage } = useMessage();
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
const pjDisabled = ref<boolean>(false);
|
||||
|
||||
|
||||
let listData = ref<any>([]);
|
||||
let listType = ref<any>(String);
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getKclblist', params });
|
||||
const listTkjlApi = (params) => defHttp.get({ url: '/kcTingke/kcTingke/findTingKeZuJiBytingketimeAndUserId', params });
|
||||
|
||||
const props = defineProps({
|
||||
queryParam:{ type:Object },
|
||||
queryParam: { type: Object },
|
||||
type: { type: String },
|
||||
});
|
||||
|
||||
//监听条件变化
|
||||
watch(() => props.queryParam, async (newRow, oldRow) => {
|
||||
var newRowa = ref<any>({});
|
||||
newRowa = newRow
|
||||
listType = newRowa.type
|
||||
},{ deep: true });
|
||||
watch(
|
||||
() => props.queryParam,
|
||||
async (newRow, oldRow) => {
|
||||
var newRowa = ref<any>({});
|
||||
newRowa = newRow;
|
||||
listType = newRowa.type;
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
//查询数据
|
||||
function rkbLoadData() {
|
||||
var newRow = ref<any>({});
|
||||
var newRow = ref<any>({});
|
||||
newRow = props.queryParam;
|
||||
newRow.userid = getUserId();
|
||||
if(!props.queryParam.pageSize){
|
||||
newRow.pageSize = -1
|
||||
}else{
|
||||
newRow.pageSize = 20
|
||||
if (!props.queryParam.pageSize) {
|
||||
newRow.pageSize = -1;
|
||||
} else {
|
||||
newRow.pageNo = pageNo.value;
|
||||
newRow.pageSize = 20;
|
||||
}
|
||||
newRow.sftkb = '1'
|
||||
console.log(`🚀 ~ file: kclbList.vue:109 ~ rkbLoadData ~ newRow:`, newRow)
|
||||
if(newRow.hh!=","){
|
||||
if(pageNo.value == 0){
|
||||
pageNo.value = 1;
|
||||
}
|
||||
newRow.sftkb = '1';
|
||||
console.log(`🚀 ~ file: kclbList.vue:109 ~ rkbLoadData ~ newRow:`, newRow);
|
||||
if (newRow.hh != ',') {
|
||||
// listType.value = newRow.type
|
||||
// console.log(`🚀 ~ file: kclbList.vue:111 ~ rkbLoadData ~ listType:`, listType)
|
||||
list(newRow).then(res => {
|
||||
console.log(`🚀 ~ list ~ res:`, res)
|
||||
listData.value = res.records;
|
||||
console.log(`🚀 ~ file: kclbList.vue:113 ~ list ~ listData.value:`, listData.value)
|
||||
list(newRow).then((res) => {
|
||||
console.log('🙅♀️', res);
|
||||
// listData.value = res.records;
|
||||
listData.value.push(...res.records)
|
||||
|
||||
var bxqkssj = new Date(getSysConfig().bxqkssj);
|
||||
var bxqjssj = new Date(getSysConfig().bxqjssj);
|
||||
var nowDate = new Date();
|
||||
console.log(`🚀 ~ file: kclbList.vue:143 ~ rkbLoadData ~ bxqkssj.getTime():`, bxqkssj.getTime())
|
||||
console.log(`🚀 ~ file: kclbList.vue:144 ~ rkbLoadData ~ nowDate.getTime():`, nowDate.getTime())
|
||||
console.log(`🚀 ~ file: kclbList.vue:145 ~ rkbLoadData ~ bxqjssj.getTime():`, bxqjssj.getTime())
|
||||
if(bxqkssj.getTime()>nowDate.getTime()||bxqjssj.getTime()<nowDate.getTime()){
|
||||
pjDisabled.value = true
|
||||
console.log(`🚀 ~ file: kclbList.vue:148 ~ rkbLoadData ~ pjDisabled:`, pjDisabled)
|
||||
}
|
||||
|
||||
var bxqjssj = new Date(getSysConfig().bxqjssj);
|
||||
var nowDate = new Date();
|
||||
if (bxqkssj.getTime() > nowDate.getTime() && bxqjssj.getTime() < nowDate.getTime()) {
|
||||
pjDisabled.value = true;
|
||||
console.log(`🚀 ~ file: kclbList.vue:148 ~ rkbLoadData ~ pjDisabled:`, pjDisabled);
|
||||
}
|
||||
// current.value = res.current;
|
||||
// total.value = res.total;
|
||||
current.value = res.pages
|
||||
total.value = res.total
|
||||
emit('setTotal', res.total);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function handleZhjs(sfyzhjs){
|
||||
if(sfyzhjs=='0'){
|
||||
function handleZhjs(sfyzhjs) {
|
||||
if (sfyzhjs == '0') {
|
||||
return 'yyyClass';
|
||||
}else{
|
||||
} else {
|
||||
return 'yyClass';
|
||||
}
|
||||
}
|
||||
|
||||
//预约事件
|
||||
async function funYuyue(record){
|
||||
var params = {ketangbiaoid:record.id,userid:getUserId(),username:userStore?.getUserInfo?.realname,skrq:record.skrq,hh:record.hh,zbpx:record.zbpx,link:'',isdeleted:0};
|
||||
async function funYuyue(record) {
|
||||
var params = {
|
||||
ketangbiaoid: record.id,
|
||||
userid: getUserId(),
|
||||
username: userStore?.getUserInfo?.realname,
|
||||
skrq: record.skrq,
|
||||
hh: record.hh,
|
||||
zbpx: record.zbpx,
|
||||
link: '',
|
||||
isdeleted: 0,
|
||||
};
|
||||
const isUpdate = ref<boolean>(false);
|
||||
await saveOrUpdate(params, isUpdate.value).then((res) => {
|
||||
if (res.success) {
|
||||
createMessage.success("预约成功");
|
||||
rkbLoadData();
|
||||
//加载数据
|
||||
} else {
|
||||
createMessage.warning(res.message);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
confirmLoading.value = false;
|
||||
});
|
||||
await saveOrUpdate(params, isUpdate.value)
|
||||
.then((res) => {
|
||||
if (res.success) {
|
||||
createMessage.success('预约成功');
|
||||
rkbLoadData();
|
||||
//加载数据
|
||||
} else {
|
||||
createMessage.warning(res.message);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
confirmLoading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
function isNow(item){
|
||||
const jssj = dayjs(item.skrq + " " +item.jssj, 'YYYY-MM-DD hh:mm:ss');
|
||||
|
||||
/**
|
||||
* 收起
|
||||
*/
|
||||
function funShouqi() {
|
||||
listData.value = [];
|
||||
pageNo.value = 1;
|
||||
rkbLoadData();
|
||||
}
|
||||
/**
|
||||
* 加载更多
|
||||
*/
|
||||
function funMore() {
|
||||
console.log(`🚀 ~ file: index.vue:83 ~ funMore ~ current>pageNo:`, current, pageNo);
|
||||
if (current.value > pageNo.value) {
|
||||
pageNo.value++;
|
||||
rkbLoadData();
|
||||
} else {
|
||||
createMessage.error('没有更多数据了!');
|
||||
}
|
||||
}
|
||||
function isNow(item) {
|
||||
const jssj = dayjs(item.skrq + ' ' + item.jssj, 'YYYY-MM-DD hh:mm:ss');
|
||||
|
||||
const dqsj = dayjs(new Date());
|
||||
|
||||
|
||||
if(jssj.unix() < dqsj.unix()){
|
||||
if (jssj.unix() < dqsj.unix()) {
|
||||
return true;
|
||||
}else{
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function funpingjia(record){
|
||||
var item = {ketangbiaoid:record.id}
|
||||
let userid = getUserId();
|
||||
listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
|
||||
var list = res
|
||||
console.log(`🚀 ~ file: list.vue:106 ~ listTkjlApi ~ list:`, list)
|
||||
if(list.length>0){
|
||||
var score = list[0].score
|
||||
if(score){
|
||||
Modal.error({
|
||||
function funpingjia(record) {
|
||||
var item = { ketangbiaoid: record.id };
|
||||
let userid = getUserId();
|
||||
listTkjlApi({ userid: userid, ketangbiaoid: item.ketangbiaoid }).then((res) => {
|
||||
var list = res;
|
||||
console.log(`🚀 ~ file: list.vue:106 ~ listTkjlApi ~ list:`, list);
|
||||
if (list.length > 0) {
|
||||
var score = list[0].score;
|
||||
if (score) {
|
||||
Modal.error({
|
||||
icon: createVNode({}),
|
||||
content: h('div', {style:'height:200px;text-align:center;'}, [
|
||||
h('icon', {style:'font-size:80px;font-weight:600;color:red;'}, createVNode(CloseOutlined)),
|
||||
h('p',{style:'font-size:22px;font-weight:600;color:black;'}, '已经对此课程进行评价,不可重复评价!'),
|
||||
content: h('div', { style: 'height:200px;text-align:center;' }, [
|
||||
h('icon', { style: 'font-size:80px;font-weight:600;color:red;' }, createVNode(CloseOutlined)),
|
||||
h('p', { style: 'font-size:22px;font-weight:600;color:black;' }, '已经对此课程进行评价,不可重复评价!'),
|
||||
]),
|
||||
okText: 'OK',
|
||||
width:'500px',
|
||||
width: '500px',
|
||||
});
|
||||
}else{
|
||||
tingKeZuJiAddModal.value.view(item)
|
||||
} else {
|
||||
tingKeZuJiAddModal.value.view(item);
|
||||
}
|
||||
} else {
|
||||
tingKeZuJiAddModal.value.view(item);
|
||||
}
|
||||
}else{
|
||||
tingKeZuJiAddModal.value.view(item)
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 报错事件
|
||||
|
@ -259,17 +388,17 @@ function handleBaocuo(item) {
|
|||
kcErrorreportIndexModal.value.add(item);
|
||||
}
|
||||
|
||||
function toLivePage(item){
|
||||
function toLivePage(item) {
|
||||
// route.push({ path:'/site/liveRoom',query:{ id: item.jsbh } })
|
||||
addTingKeLog(getUserId(),item.id);
|
||||
let routeData = route.resolve({ path:'/site/liveRoom',query:{ id: item.jsbh, ktId: item.id } });
|
||||
addTingKeLog(getUserId(), item.id);
|
||||
let routeData = route.resolve({ path: '/site/liveRoom', query: { id: item.jsbh, ktId: item.id } });
|
||||
window.open(routeData.href, '_blank');
|
||||
};
|
||||
}
|
||||
|
||||
enum Api {
|
||||
list = '/kcYuyue/kcYuyue/list',
|
||||
save='/kcYuyue/kcYuyue/add',
|
||||
edit='/kcYuyue/kcYuyue/edit',
|
||||
save = '/kcYuyue/kcYuyue/add',
|
||||
edit = '/kcYuyue/kcYuyue/edit',
|
||||
deleteOne = '/kcYuyue/kcYuyue/delete',
|
||||
deleteBatch = '/kcYuyue/kcYuyue/deleteBatch',
|
||||
importExcel = '/kcYuyue/kcYuyue/importExcel',
|
||||
|
@ -277,25 +406,35 @@ enum Api {
|
|||
}
|
||||
|
||||
defineExpose({
|
||||
rkbLoadData
|
||||
rkbLoadData,
|
||||
});
|
||||
//提交报错信息
|
||||
const saveOrUpdate = (params, isUpdate) => {
|
||||
let url = isUpdate ? Api.edit : Api.save;
|
||||
console.log(`🚀 ~ file: kclbList.vue:107 ~ saveOrUpdate ~ url:`, url)
|
||||
console.log(`🚀 ~ file: kclbList.vue:107 ~ saveOrUpdate ~ url:`, url);
|
||||
return defHttp.post({ url: url, params }, { isTransformResponse: false });
|
||||
}
|
||||
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.yyyClass{
|
||||
background: #6cafda;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
.yyyClass {
|
||||
background: #6cafda;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
border-radius: 5px;
|
||||
line-height: 23px;
|
||||
}
|
||||
.yyClass{
|
||||
background-color: #1c84c6;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
.yyClass {
|
||||
background-color: #1c84c6;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
border-radius: 5px;
|
||||
line-height: 23px;
|
||||
}
|
||||
.bcClass{
|
||||
background-color: #1c84c6;font-weight: 600;border-radius: 5px;line-height: 23px;
|
||||
.bcClass {
|
||||
background-color: #1c84c6;
|
||||
font-weight: 600;
|
||||
border-radius: 5px;
|
||||
line-height: 23px;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="请选择课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
|
||||
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
|
||||
|
@ -30,14 +30,18 @@
|
|||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
|
||||
<JDictSelectTag placeholder="是否可线上听课" v-model:value="queryParam.zhjs" dictCode="yn" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-input-search placeholder="课程或教师名称" v-model:value="queryParam.ywmc" enter-button="查询" @search="zbLoadData"></a-input-search>
|
||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||
<a-button type="primary" @click="zbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
|
||||
|
@ -49,7 +53,6 @@
|
|||
{{xxkcTotal}}</div>
|
||||
</div>
|
||||
</template>
|
||||
<div style="width: 100%; margin-top: -40px; text-align: right; margin-bottom: 30px; color: #9d9d9d;">说明:日课表默认展示20条数据,请根据自行的需求进行按条件检索</div>
|
||||
<kclbList ref="wqxxkcModeal" :queryParam="xxkcqueryParam" @setTotal="xxkcTotal = $event;jzzyload()"></kclbList>
|
||||
|
||||
</a-tab-pane>
|
||||
|
|
|
@ -16,6 +16,11 @@
|
|||
<JDictSelectTag placeholder="请选择教学楼" v-model:value="queryParam.jzwh" :dictCode="`jxl_now_hh_view,jzwmc,jzwh,hh='`+queryParam.jieci+`' order by sort asc`" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||
|
@ -23,7 +28,7 @@
|
|||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
|
||||
<JDictSelectTag placeholder="是否可线上听课" v-model:value="queryParam.zhjs" dictCode="yn" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||
|
|
|
@ -21,6 +21,11 @@
|
|||
<JDictSelectTag placeholder="请选择教学楼" v-model:value="queryParam.jzwh" :dictCode="`jxl_now_hh_view,jzwmc,jzwh,hh='`+queryParam.jieci+`' order by sort asc`" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||
|
@ -28,7 +33,7 @@
|
|||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="是否线上课" v-model:value="queryParam.zhjs" dictCode="yn" />
|
||||
<JDictSelectTag placeholder="是否可线上听课" v-model:value="queryParam.zhjs" dictCode="yn" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" :dictCode="`kc_kkdw_view,kkdw,kkdw`" v-if="getSysConfig().sfbmd=='n'" />
|
||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" :dictCode="`kc_kkdw_view,kkdw,kkdw`" v-if="getSysConfig().sfbmd=='n'"/>
|
||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw" :dictCode="`t_bmd_kkdw,kkdw,kkdw,jgh = '${userStore?.getUserInfo?.username}'`" v-else />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
@ -18,7 +18,7 @@
|
|||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="请选择课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
|
||||
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
|
|
|
@ -16,6 +16,11 @@
|
|||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||
|
|
|
@ -18,6 +18,11 @@
|
|||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="课程性质" v-model:value="queryParam.kcxz" dictCode="kcxz" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||
|
|
|
@ -45,12 +45,12 @@
|
|||
</template>
|
||||
<span @click="getGzt('kcjc')">课堂测验</span>
|
||||
</a-menu-item>
|
||||
<!-- <a-menu-item key="sub5">
|
||||
<a-menu-item key="sub6">
|
||||
<template #icon>
|
||||
<AppstoreAddOutlined />
|
||||
<BlockOutlined />
|
||||
</template>
|
||||
<span @click="getGzt('gongju')">到课识别率</span>
|
||||
</a-menu-item> -->
|
||||
</a-menu-item>
|
||||
<!-- <a-sub-menu key="sub3">
|
||||
<template #icon>
|
||||
<PieChartOutlined />
|
||||
|
@ -103,6 +103,9 @@
|
|||
<a-menu-item key="sub5">
|
||||
<span @click="getGzt('kcjc')">课堂测验</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="sub5">
|
||||
<span @click="getGzt('gongju')">到课识别率</span>
|
||||
</a-menu-item>
|
||||
<!-- <a-menu-item key="sub5">
|
||||
<span @click="getGzt('dcwj')">问卷调查</span>
|
||||
</a-menu-item> -->
|
||||
|
@ -131,7 +134,7 @@ import { ref, onMounted, unref,defineExpose } from 'vue';
|
|||
import { getUserSf, getSysConfig } from '/@/views/site/utils/index';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { MailOutlined, AppstoreOutlined, SettingOutlined, MenuUnfoldOutlined,PieChartOutlined,BarChartOutlined,SnippetsOutlined,AppstoreAddOutlined } from '@ant-design/icons-vue';
|
||||
import { MailOutlined, AppstoreOutlined, SettingOutlined, MenuUnfoldOutlined,PieChartOutlined,BarChartOutlined,SnippetsOutlined,AppstoreAddOutlined,BlockOutlined } from '@ant-design/icons-vue';
|
||||
|
||||
import headerPage from '/@/views/site/common/header.vue';
|
||||
import footerPage from '/@/views/site/common/footer.vue';
|
||||
|
|
|
@ -765,7 +765,7 @@ function searchQueryZyxq() {
|
|||
|
||||
//新增一次作业
|
||||
function handleAddOne() {
|
||||
defHttp.post({ url: '/zyInfo/zyInfo/addOne', params: { rwbh, xnxq: xqxn, teano } }).then((res) => {
|
||||
defHttp.post({ url: '/zyInfo/zyInfo/addOne', params: { rwbh, xnxq: xqxn, teano,zyLeixing: '0' } }).then((res) => {
|
||||
handleSuccess2();
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue