修改bug

This commit is contained in:
yangjun 2024-07-05 10:37:21 +08:00
parent dc26c0cbd6
commit f6fe5a2105
32 changed files with 592 additions and 418 deletions

View File

@ -3,11 +3,11 @@
<div class="jeecg-basic-table-form-container"> <div class="jeecg-basic-table-form-container">
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="8"> <!-- <a-col :lg="8">
<a-form-item label="课程名称"> <a-form-item label="课程名称">
<j-input placeholder="请输入课程名称" v-model:value="queryParam.kcmc"></j-input> <j-input placeholder="请输入课程名称" v-model:value="queryParam.kcmc"></j-input>
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :lg="8"> <a-col :lg="8">
<a-form-item label="授课日期"> <a-form-item label="授课日期">
<a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择授课日期'" style="width:100%;" v-model:value="queryParam.searchSkrq"></a-date-picker> <a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择授课日期'" style="width:100%;" v-model:value="queryParam.searchSkrq"></a-date-picker>
@ -69,11 +69,14 @@ import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './KcDe
import { downloadFile } from '/@/utils/common/renderUtils'; import { downloadFile } from '/@/utils/common/renderUtils';
import { JDictSelectTag, JInput } from '/@/components/Form'; import { JDictSelectTag, JInput } from '/@/components/Form';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
//
import { useUserStore } from '/@/store/modules/user';
const userStore = useUserStore();
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn } = query;// const { rwbh,xqxn } = query;//
const checkedKeys = ref<Array<string | number>>([]); const checkedKeys = ref<Array<string | number>>([]);
const queryParam = ref<any>({ rwbh }); const queryParam = ref<any>({ rwbh,skjs:userStore?.getUserInfo?.realname });
const labelCol = reactive({ const labelCol = reactive({
xs: { span: 24 }, xs: { span: 24 },

View File

@ -60,10 +60,10 @@
</a-row> </a-row>
</a-col> </a-col>
<a-col :span="24" style="text-align:center;margin-top:8px;"> <a-col :span="24" style="text-align:center;margin-top:8px;">
<a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">设置试卷</a-button> <a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">设置测验</a-button>
<a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">发布试卷</a-button> <a-button type="primary" @click="handlePeizhi(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">修改题目</a-button>
<a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">删除试卷</a-button> <a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">发布测验</a-button>
<a-button type="primary" @click="handlePeizhi(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">编辑题目</a-button> <a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">删除测验</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">预览题目</a-button> <a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">预览题目</a-button>
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">测验详情</a-button> <a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">测验详情</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">预览题目</a-button> <a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">预览题目</a-button>

View File

@ -1,7 +1,7 @@
<template> <template>
<div style="background: #fff;height: 97%;margin: 10px 0;"> <div style="background: #fff;height: 97%;margin: 10px 0;">
<div style="text-align:right;width:100%;"> <div style="text-align:right;width:100%;">
<a-switch v-model:checked="checked1" @change="onChange1"/> <a-switch v-model:checked="checked1" checkedChildren="卡片" unCheckedChildren="列表" @change="onChange1"/>
</div> </div>
<div v-if="checked1"> <div v-if="checked1">
<WjxCswjList/> <WjxCswjList/>

View File

@ -51,9 +51,9 @@
</a-row> </a-row>
</a-col> </a-col>
<a-col :span="24" style="text-align:center;margin-top:20px;"> <a-col :span="24" style="text-align:center;margin-top:20px;">
<a-button type="primary" @click="handleDj(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.flag=='-1'">答卷</a-button> <a-button type="primary" @click="handleDj(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.flag=='-1'">开始测验</a-button>
<a-button type="primary" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);color:#ffffff" v-if="item.flag=='0'" disabled>正在批卷</a-button> <a-button type="primary" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);color:#ffffff" v-if="item.flag=='0'" disabled>正在批卷</a-button>
<a-button type="primary" @click="handleDjjg(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.flag=='1'">查看答卷</a-button> <a-button type="primary" @click="handleDjjg(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.flag=='1'">查看结果</a-button>
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>

View File

@ -24,7 +24,7 @@
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button> <!-- <a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button> -->
<a-button type="primary" preIcon="ant-design:plus-outlined" @click="handleAdd" style="margin-left: 8px"> 新增</a-button> <a-button type="primary" preIcon="ant-design:plus-outlined" @click="handleAdd" style="margin-left: 8px"> 新增</a-button>
</a-col> </a-col>
</span> </span>

View File

@ -139,7 +139,7 @@ import {ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted,
<style lang="less" scoped> <style lang="less" scoped>
.antd-modal-form { .antd-modal-form {
min-height: 500px !important; min-height: 300px !important;
overflow-y: auto; overflow-y: auto;
padding: 24px 24px 24px 24px; padding: 24px 24px 24px 24px;
} }

View File

@ -60,9 +60,9 @@
</a-col> </a-col>
<a-col :span="24" style="text-align:center;margin-top:8px;"> <a-col :span="24" style="text-align:center;margin-top:8px;">
<a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">基本信息</a-button> <a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">基本信息</a-button>
<a-button type="primary" @click="handlePeizhi(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">添加试题</a-button>
<a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">发布问卷</a-button> <a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">发布问卷</a-button>
<a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">删除问卷</a-button> <a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">删除问卷</a-button>
<a-button type="primary" @click="handlePeizhi(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">添加试题</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">预览问卷</a-button> <a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">预览问卷</a-button>
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷详情</a-button> <a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷详情</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">预览问卷</a-button> <a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">预览问卷</a-button>

View File

@ -1,7 +1,7 @@
<template> <template>
<div style="background: #fff;height: 97%;margin: 10px 0;"> <div style="background: #fff;height: 97%;margin: 10px 0;">
<div style="text-align:right;width:100%;"> <div style="text-align:right;width:100%;">
<a-switch v-model:checked="checked1" @change="onChange1"/> <a-switch v-model:checked="checked1" checkedChildren="卡片" unCheckedChildren="列表" @change="onChange1"/>
</div> </div>
<div v-if="checked1"> <div v-if="checked1">
<WjxDcwjList/> <WjxDcwjList/>

View File

@ -51,7 +51,7 @@
</a-row> </a-row>
</a-col> </a-col>
<a-col :span="24" style="text-align:center;margin-top:20px;"> <a-col :span="24" style="text-align:center;margin-top:20px;">
<a-button type="primary" @click="handleDj(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.flag=='-1'">答卷</a-button> <a-button type="primary" @click="handleDj(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.flag=='-1'">开始答卷</a-button>
<a-button type="primary" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);color:#ffffff;" v-if="item.flag=='0'" disabled>正在批卷</a-button> <a-button type="primary" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);color:#ffffff;" v-if="item.flag=='0'" disabled>正在批卷</a-button>
<a-button type="primary" @click="handleDjjg(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.flag=='1'">查看答卷</a-button> <a-button type="primary" @click="handleDjjg(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.flag=='1'">查看答卷</a-button>
</a-col> </a-col>

View File

@ -24,7 +24,6 @@
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
<a-button type="primary" preIcon="ant-design:plus-outlined" @click="handleAdd" style="margin-left: 8px"> 新增</a-button> <a-button type="primary" preIcon="ant-design:plus-outlined" @click="handleAdd" style="margin-left: 8px"> 新增</a-button>
</a-col> </a-col>
</span> </span>

View File

@ -26,7 +26,8 @@
<a-radio-group v-model:value="item.itemSelected" style="width: 100%" size="default" disabled> <a-radio-group v-model:value="item.itemSelected" style="width: 100%" size="default" disabled>
<div style="width: 100%" v-for="(tmxx,index) in item.wjxWjxxTmxxList"> <div style="width: 100%" v-for="(tmxx,index) in item.wjxWjxxTmxxList">
<a-radio :value="tmxx.itemIndex+``" style="width: 100%;margin-bottom: 5px;"> <a-radio :value="tmxx.itemIndex+``" style="width: 100%;margin-bottom: 5px;">
<span v-html:value="tmxx.itemTitle" style="width:80%;font-size: 16px;"></span> <span v-html:value="tmxx.itemTitle" style="width:80%;font-size: 16px;color:#000;"></span>
<span v-if="tmxx.itemSelected == 'true'" style="color:#9e9e9e;margin-left:30px;font-size:12px;">(此选项是正确答案)</span>
</a-radio> </a-radio>
</div> </div>
</a-radio-group> </a-radio-group>
@ -49,7 +50,8 @@
<a-col :span="24" v-for="(tmxx,index) in item.wjxWjxxTmxxList"> <a-col :span="24" v-for="(tmxx,index) in item.wjxWjxxTmxxList">
<!-- -{{tmxx}}- --> <!-- -{{tmxx}}- -->
<a-checkbox :value="tmxx.itemIndex" style="width: 100%;margin-bottom: 5px;"> <a-checkbox :value="tmxx.itemIndex" style="width: 100%;margin-bottom: 5px;">
<span v-html:value="tmxx.itemTitle" style="width:80%;font-size: 16px;"></span> <span v-html:value="tmxx.itemTitle" style="width:80%;font-size: 16px;color:#000;"></span>
<span v-if="tmxx.itemSelected == 'true'" style="color:#9e9e9e;margin-left:30px;font-size:12px;">(此选项是正确答案)</span>
</a-checkbox> </a-checkbox>
</a-col> </a-col>
</a-row> </a-row>
@ -61,7 +63,8 @@
<div style="text-align: left;width: 100%;font-weight: bold;font-size: 18px;padding: 20px;">填空题</div> <div style="text-align: left;width: 100%;font-weight: bold;font-size: 18px;padding: 20px;">填空题</div>
<a-card > <a-card >
<template #title> <template #title>
<span>{{index+1}}</span><span v-html:value="item.wjTitle" style="white-space:pre-wrap;word-wrap : break-word"/> <span>{{index+1}}</span><span v-html:value="item.wjTitle" style="white-space:pre-wrap;word-wrap : break-word" />
<span v-if="item.tktda" style="color:#9e9e9e;margin-left:30px;font-size:12px;">(正确答案:{{item.tktda}})</span>
</template> </template>
<template #extra v-if="djxxData.atype == 6"> <template #extra v-if="djxxData.atype == 6">
<div style="margin-left: 40px;">题目分值 {{item.wjScore}} </div> <div style="margin-left: 40px;">题目分值 {{item.wjScore}} </div>
@ -69,7 +72,8 @@
</template> </template>
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-textarea v-model:value="item.answerText" style="width:100%;" :auto-size="{ minRows: 2, maxRows: 5 }" disabled/> <span v-html="item.answerText"></span>
<!-- <a-textarea v-model:value="item.answerText" style="width:100%;" :auto-size="{ minRows: 2, maxRows: 5 }" disabled/> -->
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
@ -162,4 +166,8 @@ async function submitForm(){
padding-left: 8px; padding-left: 8px;
width: 100%; width: 100%;
} }
.ant-checkbox-wrapper[aria-disabled='true'] {
color: rgb(2, 2, 2); /* 例如,将文本颜色设置为灰色 */
cursor: not-allowed; /* 将鼠标指针设置为禁用状态 */
}
</style> </style>

View File

@ -27,14 +27,17 @@
<span style="color: #c2bfbf;">[单选]</span> <span style="color: #c2bfbf;">[单选]</span>
</template> </template>
<template #extra> <template #extra>
<a-tooltip placement="topRight" title="题目分数" v-if="isShow"> <a-tooltip placement="topLeft" title="题目分数" v-if="isShow">
<a-select style="width: 120px" v-model:value="item.wjScore" placeholder="请选择分数"> <a-select style="width: 120px" v-model:value="item.wjScore" placeholder="请选择分数" v-if="item.wjSfqh=='0'">
<a-select-option value="5">5</a-select-option> <a-select-option value="5">5</a-select-option>
<a-select-option value="4">4</a-select-option> <a-select-option value="4">4</a-select-option>
<a-select-option value="3">3</a-select-option> <a-select-option value="3">3</a-select-option>
<a-select-option value="2">2</a-select-option> <a-select-option value="2">2</a-select-option>
<a-select-option value="1">1</a-select-option> <a-select-option value="1">1</a-select-option>
</a-select> </a-select>
<span v-if="item.wjSfqh=='0'" @click="handleQiehuan(item,'1')" style="color:#9e9e9e;">自定义分数</span>
<a-input v-model:value="item.wjScore" style="width:120px;" v-if="item.wjSfqh=='1'"></a-input>
<span v-if="item.wjSfqh=='1'" @click="handleQiehuan(item,'0')" style="color:#9e9e9e;">返回</span>
</a-tooltip > </a-tooltip >
<a-tooltip placement="topRight" title="删除此题"><Icon icon="ant-design:delete-outlined" style="cursor: pointer;font-size: 20px;margin: 10px" @click="handleDelTigan(item,index)" /></a-tooltip > <a-tooltip placement="topRight" title="删除此题"><Icon icon="ant-design:delete-outlined" style="cursor: pointer;font-size: 20px;margin: 10px" @click="handleDelTigan(item,index)" /></a-tooltip >
</template> </template>
@ -63,14 +66,17 @@
<span style="color: #c2bfbf;">[多选]</span> <span style="color: #c2bfbf;">[多选]</span>
</template> </template>
<template #extra> <template #extra>
<a-tooltip placement="topRight" title="题目分数" v-if="isShow"> <a-tooltip placement="topLeft" title="题目分数" v-if="isShow">
<a-select style="width: 120px" v-model:value="item.wjScore" placeholder="请选择分数"> <a-select style="width: 120px" v-model:value="item.wjScore" placeholder="请选择分数" v-if="item.wjSfqh=='0'">
<a-select-option value="5">5</a-select-option> <a-select-option value="5">5</a-select-option>
<a-select-option value="4">4</a-select-option> <a-select-option value="4">4</a-select-option>
<a-select-option value="3">3</a-select-option> <a-select-option value="3">3</a-select-option>
<a-select-option value="2">2</a-select-option> <a-select-option value="2">2</a-select-option>
<a-select-option value="1">1</a-select-option> <a-select-option value="1">1</a-select-option>
</a-select> </a-select>
<span v-if="item.wjSfqh=='0'" @click="handleQiehuan(item,'1')" style="color:#9e9e9e;">自定义分数</span>
<a-input v-model:value="item.wjScore" style="width:120px;" v-if="item.wjSfqh=='1'"></a-input>
<span v-if="item.wjSfqh=='1'" @click="handleQiehuan(item,'0')" style="color:#9e9e9e;">返回</span>
</a-tooltip > </a-tooltip >
<a-tooltip placement="topRight" title="删除此题"><Icon icon="ant-design:delete-outlined" style="cursor: pointer;font-size: 20px;margin: 10px" @click="handleDelTigan(item,index)" /></a-tooltip > <a-tooltip placement="topRight" title="删除此题"><Icon icon="ant-design:delete-outlined" style="cursor: pointer;font-size: 20px;margin: 10px" @click="handleDelTigan(item,index)" /></a-tooltip >
</template> </template>
@ -100,14 +106,17 @@
<span style="color: #c2bfbf;">[填空]</span> <span style="color: #c2bfbf;">[填空]</span>
</template> </template>
<template #extra> <template #extra>
<a-tooltip placement="topRight" title="题目分数" v-if="isShow"> <a-tooltip placement="topLeft" title="题目分数" v-if="isShow">
<a-select style="width: 120px" v-model:value="item.wjScore" placeholder="请选择分数"> <a-select style="width: 120px" v-model:value="item.wjScore" placeholder="请选择分数" v-if="item.wjSfqh=='0'">
<a-select-option value="5">5</a-select-option> <a-select-option value="5">5</a-select-option>
<a-select-option value="4">4</a-select-option> <a-select-option value="4">4</a-select-option>
<a-select-option value="3">3</a-select-option> <a-select-option value="3">3</a-select-option>
<a-select-option value="2">2</a-select-option> <a-select-option value="2">2</a-select-option>
<a-select-option value="1">1</a-select-option> <a-select-option value="1">1</a-select-option>
</a-select> </a-select>
<span v-if="item.wjSfqh=='0'" @click="handleQiehuan(item,'1')" style="color:#9e9e9e;">自定义分数</span>
<a-input v-model:value="item.wjScore" style="width:120px;" v-if="item.wjSfqh=='1'"></a-input>
<span v-if="item.wjSfqh=='1'" @click="handleQiehuan(item,'0')" style="color:#9e9e9e;">返回</span>
</a-tooltip > </a-tooltip >
<a-tooltip placement="topRight" title="删除此题"><Icon icon="ant-design:delete-outlined" style="cursor: pointer;font-size: 20px;margin: 10px" @click="handleDelTigan(item,index)" /></a-tooltip > <a-tooltip placement="topRight" title="删除此题"><Icon icon="ant-design:delete-outlined" style="cursor: pointer;font-size: 20px;margin: 10px" @click="handleDelTigan(item,index)" /></a-tooltip >
</template> </template>
@ -160,7 +169,6 @@ function addTigan(type){
var list = tiganData.value; var list = tiganData.value;
if(type==3){ if(type==3){
var chk = ""; var chk = "";
console.log(`🚀 ~ addTigan ~ isShow:`, isShow)
if(isShow.value){ if(isShow.value){
chk = "1"; chk = "1";
} }
@ -172,6 +180,7 @@ function addTigan(type){
wjScore:null, wjScore:null,
wjLeixing, wjLeixing,
itemSelected:chk, itemSelected:chk,
wjSfqh:'0',
wjxWjxxTmxxList:[{itemTitle:null,itemIndex:'1'},{itemTitle:null,itemIndex:'2'}], wjxWjxxTmxxList:[{itemTitle:null,itemIndex:'1'},{itemTitle:null,itemIndex:'2'}],
} }
list.push(params); list.push(params);
@ -190,6 +199,7 @@ function addTigan(type){
wjScore:null, wjScore:null,
wjLeixing, wjLeixing,
itemSelected:chk, itemSelected:chk,
wjSfqh:'0',
wjxWjxxTmxxList:[{itemTitle:null,itemIndex:'1'},{itemTitle:null,itemIndex:'2'}], wjxWjxxTmxxList:[{itemTitle:null,itemIndex:'1'},{itemTitle:null,itemIndex:'2'}],
} }
list.push(params); list.push(params);
@ -203,12 +213,18 @@ function addTigan(type){
wjScore:null, wjScore:null,
wjLeixing, wjLeixing,
wjAnswer:null, wjAnswer:null,
wjSfqh:'0',
} }
list.push(params); list.push(params);
tiganData.value = [...list]; tiganData.value = [...list];
} }
} }
function handleQiehuan(record,type){
console.log(`🚀 ~ handleQiehuan ~ type:`, type)
console.log(`🚀 ~ handleQiehuan ~ record:`, record)
record.wjSfqh=type
}
function cheGrp(a,b){ function cheGrp(a,b){
var retChe = false; var retChe = false;
@ -260,7 +276,6 @@ function handleYylx(sylx){
} }
// //
function handleYytkSuccess(record){ function handleYytkSuccess(record){
console.log(`🚀 ~ handleYytkSuccess ~ record:`, record)
for(var i=0;i<record.length;i++){ for(var i=0;i<record.length;i++){
var type = record[i].wjType; var type = record[i].wjType;
@ -268,7 +283,6 @@ for(var i=0;i<record.length;i++){
var wjxWjxxTmxxList = record[i].wjxWjxxTmxxList; var wjxWjxxTmxxList = record[i].wjxWjxxTmxxList;
console.log(`🚀 ~ handleYytkSuccess ~ addwjxWjxxTmxxList:`, addwjxWjxxTmxxList)
if(type==3){ if(type==3){
var addwjxWjxxTmxxList = [] var addwjxWjxxTmxxList = []
var sfxz = ""; var sfxz = "";
@ -281,7 +295,6 @@ for(var i=0;i<record.length;i++){
if(wjLeixing=='1'){ if(wjLeixing=='1'){
sfxz = ""; sfxz = "";
} }
console.log(`🚀 ~ handleYytkSuccess ~ sfxz:`, sfxz)
let params = { let params = {
wjType:parseInt(type), wjType:parseInt(type),
wjIndex:list.length+1, wjIndex:list.length+1,
@ -290,6 +303,7 @@ for(var i=0;i<record.length;i++){
wjScore:record[i].wjScore, wjScore:record[i].wjScore,
wjLeixing, wjLeixing,
itemSelected:sfxz+"", itemSelected:sfxz+"",
wjSfqh:'0',
wjxWjxxTmxxList:addwjxWjxxTmxxList, wjxWjxxTmxxList:addwjxWjxxTmxxList,
} }
list.push(params); list.push(params);
@ -314,13 +328,13 @@ for(var i=0;i<record.length;i++){
wjScore:record[i].wjScore, wjScore:record[i].wjScore,
wjLeixing, wjLeixing,
itemSelected:sfxz, itemSelected:sfxz,
wjSfqh:'0',
wjxWjxxTmxxList:addwjxWjxxTmxxList, wjxWjxxTmxxList:addwjxWjxxTmxxList,
} }
list.push(params); list.push(params);
tiganData.value = [...list]; tiganData.value = [...list];
}else if(type==5){ }else if(type==5){
var huida = record[i].wjAnswer var huida = record[i].wjAnswer
console.log(`🚀 ~ handleYytkSuccess ~ wjLeixing:`, wjLeixing)
if(wjLeixing=='1'){ if(wjLeixing=='1'){
huida = ""; huida = "";
} }
@ -332,6 +346,7 @@ for(var i=0;i<record.length;i++){
wjScore:record[i].wjScore, wjScore:record[i].wjScore,
wjLeixing, wjLeixing,
wjAnswer:huida, wjAnswer:huida,
wjSfqh:'0',
} }
list.push(params); list.push(params);
tiganData.value = [...list]; tiganData.value = [...list];
@ -435,7 +450,6 @@ async function submitForm(){
if(isShow.value){ if(isShow.value){
var zqda = values[i].itemSelected; var zqda = values[i].itemSelected;
console.log(`🚀 ~ submitForm ~ zqda:`, zqda)
if(!zqda||zqda=='NaN'||zqda=='undefined'){ if(!zqda||zqda=='NaN'||zqda=='undefined'){
createMessage.error('请选择正确答案'); createMessage.error('请选择正确答案');
sfjx = "0"; sfjx = "0";
@ -447,7 +461,6 @@ async function submitForm(){
if(isShow.value){ if(isShow.value){
var wjAnswer = values[i].wjAnswer; var wjAnswer = values[i].wjAnswer;
console.log(`🚀 ~ submitForm ~ wjAnswer:`, wjAnswer)
if(!wjAnswer||wjAnswer=='NaN'||wjAnswer=='undefined'){ if(!wjAnswer||wjAnswer=='NaN'||wjAnswer=='undefined'){
createMessage.error('请选择正确答案'); createMessage.error('请选择正确答案');
sfjx = "0"; sfjx = "0";
@ -460,6 +473,7 @@ async function submitForm(){
return; return;
} }
const isUpdate = false const isUpdate = false
console.log(`🚀 ~ submitForm ~ values:`, values)
await saveOrUpdate(values, isUpdate); await saveOrUpdate(values, isUpdate);
// //
emit('ok'); emit('ok');

View File

@ -5,11 +5,11 @@
<!-- 页头 --> <!-- 页头 -->
<headerPage showRightButton/> <headerPage showRightButton/>
<!-- 主体部分 --> <!-- 主体部分 -->
<a-layout-content> <a-layout-content v-if="getUserSf()=='T'">
<!-- 白名单说明文字 --> <!-- 白名单说明文字 -->
<div class="bmdTitle" v-if="getSysConfig().sfbmd=='y'&&getSysConfig().bmdTitle">{{getSysConfig().bmdTitle}}</div> <div class="bmdTitle" v-if="getSysConfig().sfbmd=='y'&&getSysConfig().bmdTitle">{{getSysConfig().bmdTitle}}</div>
<!-- 统计 --> <!-- 统计 -->
<tongjiPage v-if="getUserSf()=='T'&&getSysConfig().flag7=='1'&&getSysConfig().sfbmd=='n'"/> <tongjiPage v-if="getUserSf()=='T'&&getSysConfig().flag7=='1'&&getSysConfig().sfbmd=='n'&&sfxx=='1'"/>
<!-- 轮播图 --> <!-- 轮播图 -->
<lunboPage v-if="getSysConfig().sfbmd=='n'"/> <lunboPage v-if="getSysConfig().sfbmd=='n'"/>
<!-- 通知公告 --> <!-- 通知公告 -->
@ -103,7 +103,7 @@
import pjjgPage from '/@/views/site/pjjgPage/index.vue'; import pjjgPage from '/@/views/site/pjjgPage/index.vue';
import { getUserSf,getSysConfig } from '/@/views/site/utils/index'; import { getUserSf,getSysConfig,getUserInfo } from '/@/views/site/utils/index';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
// const headerPage = () => import('/@/views/site/common/header.vue'); // const headerPage = () => import('/@/views/site/common/header.vue');
@ -135,6 +135,8 @@
const maxClassName = ref<any>({}); const maxClassName = ref<any>({});
const zzskTitle = ref('正在上课'); const zzskTitle = ref('正在上课');
const queryParam = ref<any>({}); const queryParam = ref<any>({});
const sfxx = ref<string>('0');
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam }); const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam });
// //
@ -166,6 +168,19 @@
// maxClassName.value = {width:width+"px"} // maxClassName.value = {width:width+"px"}
// } // }
let roleList = getUserInfo().roleList;
if(roleList){
for(var i=0;i<roleList.length;i++){
var roleCode = roleList[i].roleCode
console.log(`🚀 ~ onMounted ~ roleCode:`, roleCode)
if(roleCode == 'admin' || roleCode == 'jwms'){
sfxx.value = "1";
}
}
}
jclist(queryParam.value).then(res=>{ jclist(queryParam.value).then(res=>{
var list = res var list = res
let sjsksj = list[0].sjsksj let sjsksj = list[0].sjsksj

View File

@ -1,269 +1,378 @@
<template> <template>
<div style="margin-top:10px;background:#fff;height: calc(100vh - 225px);overflow:auto;"> <div style="margin-top: 10px; background: #fff; height: calc(100vh - 225px); overflow: auto">
<div style="width:100%;text-align:right;"> <div v-if="showYl">
<a-button type="primary" style="margin-left:10px;" @click="handleZtyl(jxdgInfo)">预览</a-button> <div style="width: 100%; text-align: right">
<a-button type="primary" style="margin-left: 10px" @click="handleYulan(0)">学生预览页面</a-button>
</div> </div>
<a-card> <a-card>
<div> <div>
<a-row>
<a-col :lg="3" style="font-size: 18px;font-weight: bold;">课程简介</a-col>
<a-col :lg="15"><a-textarea style="width: 100%;" v-model:value="jxdgInfo.kcjs"></a-textarea></a-col>
<a-col :lg="6" style="text-align:right;"><a-button type="primary" @click="addKcjsHandle(1)">提交</a-button><a-button type="primary" style="margin-left:10px;" @click="handleYinyong(jxdgInfo)">引用</a-button></a-col>
</a-row>
</div>
</a-card>
<a-card>
<div>
<span style="float: left;line-height: 30px; font-size: 18px; font-weight: bold;">教学大纲</span>
<span style="width:300px;float: left;">
<span style="float:left;"><j-upload v-model:value="jxdgInfo.filePath" maxCount="1" accept=".doc,.docx,.pdf" @change="jxdgChange" :forceAcceptVerify="true"></j-upload></span>
</span>
<span style="float: right;">
<!-- <a-button type="primary" @click="addKcjsHandle(2)">提交</a-button> -->
<a-button type="primary" style="margin-left:10px;" @click="openPdf(jxdgInfo)">预览</a-button>
</span>
</div>
</a-card>
<a-card>
<div>
<span style="float: left;line-height: 30px; font-size: 18px; font-weight: bold;">教学日历</span>
<span style="width:300px;float: left;">
<span style="float:left;"><j-upload v-model:value="jxdgInfo.jxrlFilePath" maxCount="1" accept=".doc,.docx,.pdf" @change="jxrlChange" :forceAcceptVerify="true"></j-upload></span>
</span>
<span style="float: right;">
<!-- <a-button type="primary" @click="addKcjsHandle(3)">提交</a-button> -->
<a-button type="primary" style="margin-left:10px;" @click="openJxrlPdf(jxdgInfo)">预览</a-button>
</span>
</div>
</a-card>
<a-card>
<div style="line-height: 30px; font-size: 18px; font-weight: bold;width:100%;">
<span style="float: left;">常见问题</span>
<span style="float: right;"><a-button type="primary" @click="addCjwtHanle">新增</a-button></span>
</div>
<a-row style="margin-top: 50px;width:100%;display: block;">
<a-col :span="24" v-for="(item,index) in cjwtSource" :key="index">
<a-row> <a-row>
<a-col :span="24"> <a-col :lg="3" style="font-size: 18px; font-weight: bold">课程简介</a-col>
<span style="float: left;">{{(current-1)*pageSize+index+1}}.{{item.question}}</span> <a-col :lg="15" v-show="kcjsShow">
<span style="float: right;"> <j-editor v-model:value="jxdgInfo.kcjs" />
<a title="修改" @click="handleEdit(item)"><Icon icon="ant-design:form-outlined" /></a> <!-- <a-textarea style="width: 100%;min-height: 200px;" v-model:value="jxdgInfo.kcjs" @blur="handleEditKcjs(0)"></a-textarea> -->
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" />
<a title="删除" @click="handleDelete(item)"><Icon icon="ant-design:delete-outlined" /></a>
</span>
</a-col> </a-col>
<a-col :span="24"><span><Icon icon="ant-design:caret-right-outlined" />{{item.answer}}</span></a-col> <a-col :lg="15" v-show="!kcjsShow">
<a-col :span="24"> <div
<a-divider /> style="width: 100%; min-height: 50px; margin-top: 10px; color: #cfcfcf; font-size: 13px"
v-if="!jxdgInfo.kcjs"
@click="handleEditKcjs(1)"
>暂无内容,点击进行编辑</div
>
<div style="width: 100%; min-height: 50px" v-else @click="handleEditKcjs(1)">
<div v-html="jxdgInfo.kcjs"></div>
<div style="color: #cfcfcf; font-size: 13px">说明点击进行编辑</div>
</div>
</a-col> </a-col>
<a-col :lg="6" style="text-align: right"
><a-button type="primary" @click="addKcjsHandle(1)">提交</a-button
><a-button type="primary" style="margin-left: 10px" @click="handleYinyong(jxdgInfo)">引用</a-button></a-col
>
</a-row> </a-row>
</a-col> </div>
<a-col :span="24" v-show="cjwtSource.length>0"> </a-card>
<a-pagination v-model="current" :total="total" @change="handlePageChange" :pageSize="pageSize" style="text-align: right;"/> <a-card>
</a-col> <div>
<a-col :span="24" v-show="cjwtSource.length==0"> <span style="float: left; line-height: 30px; font-size: 18px; font-weight: bold">教学大纲</span>
<a-empty/> <span style="width: 300px; float: left">
</a-col> <span style="float: left"
</a-row> ><j-upload
</a-card> v-model:value="jxdgInfo.filePath"
<a-card> maxCount="1"
<div style="line-height: 30px; font-size: 18px; font-weight: bold;width:100%;"> accept=".doc,.docx,.pdf"
<span style="float: left;">往届学生评价</span> @change="jxdgChange"
:forceAcceptVerify="true"
></j-upload
></span>
</span>
<span style="float: right">
<a-button type="primary" style="margin-left: 10px" @click="downLoad(jxdgInfo.filePath)">下载</a-button>
<a-button type="danger" style="margin-left: 10px" @click="fileRemove(jxdgInfo, 1)">删除</a-button>
<a-button type="primary" style="margin-left: 10px" @click="openPdf(jxdgInfo)">预览大纲</a-button>
</span>
</div>
</a-card>
<a-card>
<div>
<span style="float: left; line-height: 30px; font-size: 18px; font-weight: bold">教学日历</span>
<span style="width: 300px; float: left">
<span style="float: left"
><j-upload
v-model:value="jxdgInfo.jxrlFilePath"
maxCount="1"
accept=".doc,.docx,.pdf"
@change="jxrlChange"
:forceAcceptVerify="true"
></j-upload
></span>
</span>
<span style="float: right">
<a-button type="primary" style="margin-left: 10px" @click="downLoad(jxdgInfo.jxrlFilePath)">下载</a-button>
<a-button type="danger" style="margin-left: 10px" @click="fileRemove(jxdgInfo, 2)">删除</a-button>
<a-button type="primary" style="margin-left: 10px" @click="openJxrlPdf(jxdgInfo)">预览日历</a-button>
</span>
</div>
</a-card>
<a-card>
<div style="line-height: 30px; font-size: 18px; font-weight: bold; width: 100%">
<span style="float: left">常见问题</span>
<span style="float: right"><a-button type="primary" @click="addCjwtHanle">新增</a-button></span>
</div>
<a-row style="margin-top: 50px; width: 100%; display: block">
<a-col :span="24" v-for="(item, index) in cjwtSource" :key="index">
<a-row>
<a-col :span="24">
<span style="float: left">{{ (current - 1) * pageSize + index + 1 }}.{{ item.question }}</span>
<span style="float: left; margin-left: 10px" v-if="item.sffb == '0'">
<a title="修改" @click="handleEdit(item)"><Icon icon="ant-design:form-outlined" /></a>
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" />
<a title="删除" @click="handleDelete(item)"><Icon icon="ant-design:delete-outlined" /></a>
</span>
<span style="float: right; " v-if="item.sffb == '0'">
<a-button type="primary" @click="handleFabu(item, '1')">发布</a-button>
</span>
<span style="float: left" v-if="item.sffb == '1'">
<a @click="handleFabu(item, '0')" style="margin-left: 5px; padding: 0px 8px" title="撤回"
><Icon icon="ant-design:rollback-outlined"
/></a>
</span>
</a-col>
<a-col :span="24"
><span><Icon icon="ant-design:caret-right-outlined" /><div v-html="item.answer"></div> </span
></a-col>
<a-col :span="24">
<a-divider />
</a-col>
</a-row>
</a-col>
<a-col :span="24" v-show="cjwtSource.length > 0">
<a-pagination v-model="current" :total="total" @change="handlePageChange" :pageSize="pageSize" style="text-align: right" />
</a-col>
<a-col :span="24" v-show="cjwtSource.length == 0">
<a-empty />
</a-col>
</a-row>
</a-card>
<a-card>
<div style="line-height: 30px; font-size: 18px; font-weight: bold; width: 100%">
<span style="float: left">往届学生评价</span>
</div>
<studentPjjgTeaList :queryParam="{ pageSize: 3, ...tkzjParam, kcbh: '' }" style="max-height: 106px" />
</a-card>
</div>
<div v-if="!showYl">
<div>
<a-button type="primary" @click="handleYulan(1)" preIcon="ant-design:plus-outlined" style="margin-left: 8px"> 返回</a-button>
<studentZyxx/>
</div> </div>
<studentPjjgTeaList :queryParam="{ pageSize: 3, ...tkzjParam,kcbh:'' }" style="max-height: 106px;"/> </div>
</a-card>
<ZyCjwtModal ref="ZyCjwtModalPage" @success="handleCjwtOk" /> <ZyCjwtModal ref="ZyCjwtModalPage" @success="handleCjwtOk" />
<ZyJxdgListModal ref="ZyJxdgListModalPage" @success="getKcjsJxdg" /> <ZyJxdgListModal ref="ZyJxdgListModalPage" @success="getKcjsJxdg" />
<studentZyxxModal ref="studentZyxxModalPage" /> <studentZyxxModal ref="studentZyxxModalPage" />
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, unref } from 'vue'; import { ref, onMounted, unref } from 'vue';
import { getUserSf,getSysConfig } from '/@/views/site/utils/index'; import { getUserSf, getSysConfig } from '/@/views/site/utils/index';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { Icon } from '/@/components/Icon'; import { Icon } from '/@/components/Icon';
import { Pagination, Empty } from 'ant-design-vue'; import { Pagination, Empty } from 'ant-design-vue';
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue'; import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
import { deleteOne } from '/@/views/zy/zyCjwt/ZyCjwt.api'; import { deleteOne } from '/@/views/zy/zyCjwt/ZyCjwt.api';
import headerPage from '/@/views/site/common/header.vue'; import headerPage from '/@/views/site/common/header.vue';
import footerPage from '/@/views/site/common/footer.vue'; import footerPage from '/@/views/site/common/footer.vue';
import studentPjjgTeaList from '/@/views/site/pjjgPage/studentPjjgTeaList.vue'; import studentPjjgTeaList from '/@/views/site/pjjgPage/studentPjjgTeaList.vue';
import ZyCjwtModal from '/@/views/zy/zyCjwt/components/ZyCjwtModal.vue'; import ZyCjwtModal from '/@/views/zy/zyCjwt/components/ZyCjwtModal.vue';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import ZyJxdgListModal from '/@/views/zy/zyJxdg/ZyJxdgListModal.vue'; import ZyJxdgListModal from '/@/views/zy/zyJxdg/ZyJxdgListModal.vue';
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils'; import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
import JeecgPdfView from '/@/views/demo/jeecg/JeecgPdfView.vue'; import JeecgPdfView from '/@/views/demo/jeecg/JeecgPdfView.vue';
import { useGlobSetting } from '/@/hooks/setting'; import { useGlobSetting } from '/@/hooks/setting';
import studentZyxxModal from '/@/views/site/studentWdkc/studentZyxxModal.vue'; import studentZyxxModal from '/@/views/site/studentWdkc/studentZyxxModal.vue';
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
import studentZyxx from '/@/views/site/studentWdkc/studentZyxx.vue';
const globSetting = useGlobSetting(); const globSetting = useGlobSetting();
const baseApiUrl = globSetting.domainUrl; const baseApiUrl = globSetting.domainUrl;
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn,teano } = query;// const { rwbh, xqxn, teano } = query; //
const APagination = Pagination; const APagination = Pagination;
const current = ref<number>(1); const current = ref<number>(1);
const total = ref<number>(0); const total = ref<number>(0);
const pageNo = ref<number>(0); const pageNo = ref<number>(0);
const pageSize = ref<number>(3); const pageSize = ref<number>(3);
const tkzjParam = ref({rwbh:rwbh}); const tkzjParam = ref({ rwbh: rwbh });
const ZyCjwtModalPage = ref(); const ZyCjwtModalPage = ref();
const ZyJxdgListModalPage = ref(); const ZyJxdgListModalPage = ref();
const studentZyxxModalPage = ref(); const studentZyxxModalPage = ref();
const cjwtSource = ref([]); const cjwtSource = ref([]);
let router = useRouter(); let kcjsShow = ref<boolean>(false);
const { createMessage } = useMessage(); const showYl = ref<boolean>(true);
const jxdgInfo = ref({ let router = useRouter();
id:'', const { createMessage } = useMessage();
filePath:null, const jxdgInfo = ref({
jxrlFilePath:null, id: '',
kcjs:'', filePath: null,
pdfPath:null, jxrlFilePath: null,
jxrlPdfPath:null, kcjs: '',
pdfPath: null,
jxrlPdfPath: null,
});
function handleEditKcjs(type) {
console.log(`🚀 ~ handleEditKcjs ~ type:`, type);
if (type == 1) {
kcjsShow.value = true;
} else {
kcjsShow.value = false;
}
}
//
function handleYulan(type) {
if (type == 1) {
showYl.value = true;
} else if (type == 0) {
showYl.value = false;
}
}
//
function jxdgChange(record) {
console.log(`🚀 ~ jxdgChange ~ record:`, record);
var model = { id: jxdgInfo.value.id, filePath: record, rwbh, xqxn };
defHttp.post({ url: '/zyJxdg/zyJxdg/jxdgScfj', params: model }).then((res) => {
getKcjsJxdg();
}); });
}
// function downLoad(file) {
function jxdgChange(record){ if (file) {
console.log(`🚀 ~ jxdgChange ~ record:`, record) let url = getFileAccessHttpUrl(file);
var model = {id:jxdgInfo.value.id,filePath:record,rwbh,xqxn} if (url) {
defHttp.post({ url: '/zyJxdg/zyJxdg/jxdgScfj', params: model }).then((res) => { window.open(url);
getKcjsJxdg();
});
}
function jxrlChange(record){
console.log(`🚀 ~ jxdgChange ~ record:`, record)
var model = {id:jxdgInfo.value.id,jxrlFilePath:record,rwbh,xqxn}
defHttp.post({ url: '/zyJxdg/zyJxdg/jxrlScfj', params: model }).then((res) => {
getKcjsJxdg();
});
}
function handleZtyl(record){
studentZyxxModalPage.value.disableSubmit = true;
studentZyxxModalPage.value.edit(record);
}
//
function handleYinyong(record){
ZyJxdgListModalPage.value.disableSubmit = true;
ZyJxdgListModalPage.value.init(record);
}
//
function addCjwtHanle(){
var params = { rwbh:rwbh,xqxn:xqxn };
ZyCjwtModalPage.value.disableSubmit = false;
ZyCjwtModalPage.value.add(params);
}
/**
* 常见问题编辑事件
*/
function handleEdit(record: Recordable) {
ZyCjwtModalPage.value.disableSubmit = false;
ZyCjwtModalPage.value.edit(record);
}
/**
* 删除事件
*/
async function handleDelete(record) {
await deleteOne({ id: record.id }, handleCjwtOk2);
}
function openPdf(record){
if(record.pdfPath){
var url2 = getFileAccessHttpUrl(record.pdfPath)
let url = baseApiUrl+"/generic/web/viewer.html?file="+encodeURIComponent(url2);
window.open(url,"_blank")
}else{
createMessage.warning("暂无文件或文件上传中")
} }
} else {
createMessage.warning('暂无文件或文件上传中');
} }
}
//
function fileRemove(record, type) {
var model = { id: record.id, type: type };
console.log(`🚀 ~ fileRemove ~ model:`, model);
defHttp.post({ url: '/zyJxdg/zyJxdg/deleteJxdgJxrl', params: model }).then((res) => {
getKcjsJxdg();
});
}
function jxrlChange(record) {
console.log(`🚀 ~ jxdgChange ~ record:`, record);
var model = { id: jxdgInfo.value.id, jxrlFilePath: record, rwbh, xqxn };
defHttp.post({ url: '/zyJxdg/zyJxdg/jxrlScfj', params: model }).then((res) => {
getKcjsJxdg();
});
}
function openJxrlPdf(record){ function handleZtyl(record) {
if(record.jxrlPdfPath){ studentZyxxModalPage.value.disableSubmit = true;
var url2 = getFileAccessHttpUrl(record.jxrlPdfPath) studentZyxxModalPage.value.edit(record);
let url = baseApiUrl+"/generic/web/viewer.html?file="+encodeURIComponent(url2); }
window.open(url,"_blank")
}else{
createMessage.warning("暂无文件或文件上传中")
}
}
// //
function handleCjwtOk() { function handleYinyong(record) {
// console.log('--------cjwt ok -----------') ZyJxdgListModalPage.value.disableSubmit = true;
ZyJxdgListModalPage.value.init(record);
}
//
function addCjwtHanle() {
var params = { rwbh: rwbh, xqxn: xqxn };
ZyCjwtModalPage.value.disableSubmit = false;
ZyCjwtModalPage.value.add(params);
}
/**
* 常见问题编辑事件
*/
function handleEdit(record: Recordable) {
ZyCjwtModalPage.value.disableSubmit = false;
ZyCjwtModalPage.value.edit(record);
}
/**
* 常见问题发布
*/
function handleFabu(record, type) {
var model = { id: record.id, sffb: type };
console.log(`🚀 ~ fileRemove ~ model:`, model);
defHttp.post({ url: '/zyCjwt/zyCjwt/edit', params: model }).then((res) => {
cjwtData(); cjwtData();
} });
}
// /**
function handleCjwtOk2() { * 删除事件
total.value = 1; */
handlePageChange(1); async function handleDelete(record) {
} await deleteOne({ id: record.id }, handleCjwtOk2);
}
// function openPdf(record) {
function handlePageChange(page: number) { if (record.pdfPath) {
current.value = page; var url2 = getFileAccessHttpUrl(record.pdfPath);
cjwtData(); let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
window.open(url, '_blank');
} else {
createMessage.warning('暂无文件或文件上传中');
} }
}
function cjwtData(){ function openJxrlPdf(record) {
defHttp.get({ url: '/zyCjwt/zyCjwt/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,teano:teano,column:'createTime',order:'desc' } }).then((res) => { if (record.jxrlPdfPath) {
// console.log(`🚀 ~ defHttp.get ~ res:`, res) var url2 = getFileAccessHttpUrl(record.jxrlPdfPath);
let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
window.open(url, '_blank');
} else {
createMessage.warning('暂无文件或文件上传中');
}
}
//
function handleCjwtOk() {
// console.log('--------cjwt ok -----------')
cjwtData();
}
//
function handleCjwtOk2() {
total.value = 1;
handlePageChange(1);
}
//
function handlePageChange(page: number) {
current.value = page;
cjwtData();
}
function cjwtData() {
defHttp
.get({
url: '/zyCjwt/zyCjwt/list',
params: { pageSize: 3, pageNo: current.value, rwbh: rwbh, xqxn: xqxn, teano: teano, column: 'createTime', order: 'desc' },
})
.then((res) => {
// console.log(`🚀 ~ defHttp.get ~ res:`, res)
cjwtSource.value = res.records; cjwtSource.value = res.records;
total.value = res.total; total.value = res.total;
pageNo.value = res.pages; pageNo.value = res.pages;
current.value = res.current; current.value = res.current;
// console.log(`🚀 ~ defHttp.get ~ cjwtSource:`, cjwtSource) // console.log(`🚀 ~ defHttp.get ~ cjwtSource:`, cjwtSource)
}); });
} }
// //
function getKcjsJxdg(){ function getKcjsJxdg() {
console.log(`🚀 ~111111111111111:`) console.log(`🚀 ~111111111111111:`);
defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh:rwbh,xqxn:xqxn,teano:teano } }).then((res) => { defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh: rwbh, xqxn: xqxn, teano: teano } }).then((res) => {
console.log(`🚀 ~2222222222222222:`,res) console.log(`🚀 ~2222222222222222:`, res);
if(res){ if (res) {
jxdgInfo.value = res; jxdgInfo.value = res;
} }
});
}
function addKcjsHandle(type) {
const isUpdate = true;
var model = jxdgInfo.value;
model.rwbh = rwbh;
model.xqxn = xqxn;
model.teano = teano;
console.log(`🚀 ~ addKcjsHandle ~ model:`, model);
if (model.id) {
if (type == '1') {
model.filePath = '';
}
defHttp.post({ url: '/zyJxdg/zyJxdg/edit', params: model }).then((res) => {
console.log(`🚀 ~ defHttp.post 111~ res:`, res);
kcjsShow.value = false;
getKcjsJxdg();
});
} else {
if (type == '1') {
model.filePath = '';
}
defHttp.post({ url: '/zyJxdg/zyJxdg/add', params: model }).then((res) => {
console.log(`🚀 ~ defHttp.post 222~ res:`, res);
kcjsShow.value = false;
getKcjsJxdg();
}); });
} }
function addKcjsHandle(type){ }
const isUpdate = true; //
var model = jxdgInfo.value; onMounted(() => {
model.rwbh = rwbh; getKcjsJxdg();
model.xqxn = xqxn; cjwtData();
model.teano = teano; });
console.log(`🚀 ~ addKcjsHandle ~ model:`, model)
if(model.id){
if(type=='1'){
model.filePath = '';
}
defHttp.post({ url: '/zyJxdg/zyJxdg/edit', params: model }).then((res) => {
console.log(`🚀 ~ defHttp.post 111~ res:`, res)
getKcjsJxdg();
});
}else{
if(type=='1'){
model.filePath = '';
}
defHttp.post({ url: '/zyJxdg/zyJxdg/add', params: model }).then((res) => {
console.log(`🚀 ~ defHttp.post 222~ res:`, res)
getKcjsJxdg();
});
}
}
//
onMounted(() => {
getKcjsJxdg();
cjwtData();
});
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
</style> </style>

View File

@ -113,8 +113,8 @@
import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue'; import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue';
const maxClassName = ref<any>({}); const maxClassName = ref<any>({});
const selectedKeys = ref<string[]>(['1']); const selectedKeys = ref<string[]>(['sub0']);
const openKeys = ref<string[]>(['sub1']); const openKeys = ref<string[]>(['sub0']);
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);

View File

@ -4,7 +4,7 @@
<div> <div>
<a-row> <a-row>
<a-col :lg="3" style="font-size: 18px;font-weight: bold;">课程简介</a-col> <a-col :lg="3" style="font-size: 18px;font-weight: bold;">课程简介</a-col>
<a-col :lg="20">{{jxdgInfo.kcjs}}</a-col> <a-col :lg="20"><div v-html="jxdgInfo.kcjs"></div></a-col>
</a-row> </a-row>
</div> </div>
</a-card> </a-card>
@ -46,7 +46,7 @@
<a-col :span="24"> <a-col :span="24">
<span style="float: left;">{{(current-1)*pageSize+index+1}}.{{item.question}}</span> <span style="float: left;">{{(current-1)*pageSize+index+1}}.{{item.question}}</span>
</a-col> </a-col>
<a-col :span="24"><span><Icon icon="ant-design:caret-right-outlined" />{{item.answer}}</span></a-col> <a-col :span="24"><span><Icon icon="ant-design:caret-right-outlined" /><div v-html="item.answer"></div></span></a-col>
<a-col :span="24"> <a-col :span="24">
<a-divider /> <a-divider />
</a-col> </a-col>
@ -72,7 +72,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, unref } from 'vue'; import { ref, onMounted, unref,defineExpose } from 'vue';
import { getUserSf,getSysConfig } from '/@/views/site/utils/index'; import { getUserSf,getSysConfig } from '/@/views/site/utils/index';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
@ -168,7 +168,7 @@ function openJxrlPdf(record){
} }
function cjwtData(){ function cjwtData(){
defHttp.get({ url: '/zyCjwt/zyCjwt/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,teano:teano,column:'createTime',order:'desc' } }).then((res) => { defHttp.get({ url: '/zyCjwt/zyCjwt/list', params: { sffb: 1,pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,teano:teano,column:'createTime',order:'desc' } }).then((res) => {
// console.log(`🚀 ~ defHttp.get ~ res:`, res) // console.log(`🚀 ~ defHttp.get ~ res:`, res)
cjwtSource.value = res.records; cjwtSource.value = res.records;
total.value = res.total; total.value = res.total;
@ -180,7 +180,7 @@ function openJxrlPdf(record){
// //
function getKcjsJxdg(){ function getKcjsJxdg(){
defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh:rwbh,xqxn:xqxn,teano:teano} }).then((res) => { defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh:rwbh,xqxn:xqxn,teano:teano} }).then((res) => {
// console.log(`🚀 1111111111111~ getKcjsJxdg ~ res:`, res) console.log(`🚀 1111111111111~ getKcjsJxdg ~ res:`, res)
if(res){ if(res){
jxdgInfo.value = res; jxdgInfo.value = res;
} }
@ -217,7 +217,14 @@ function openJxrlPdf(record){
cjwtData(); cjwtData();
}); });
function edit(record){
getKcjsJxdg();
cjwtData();
console.log(1111);
}
defineExpose({
edit,
});
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
</style> </style>

View File

@ -23,9 +23,9 @@
function edit(record) { function edit(record) {
title.value = '预览'; title.value = '预览';
visible.value = true; visible.value = true;
// nextTick(() => { nextTick(() => {
// registerForm.value.edit(record); registerForm.value.edit(record);
// }); });
} }
/** /**

View File

@ -33,7 +33,7 @@
>{{ t('sys.login.mobileSignInFormTitle') }} >{{ t('sys.login.mobileSignInFormTitle') }}
</div> --> </div> -->
</div> </div>
<div class="aui-form-box" style="height: 180px"> <div class="aui-form-box" style="height: 120px">
<a-form ref="loginRef" :model="formData" v-if="activeIndex === 'accountLogin'" @keyup.enter.native="loginHandleClick"> <a-form ref="loginRef" :model="formData" v-if="activeIndex === 'accountLogin'" @keyup.enter.native="loginHandleClick">
<div class="aui-account"> <div class="aui-account">
<div class="aui-inputClear"> <div class="aui-inputClear">
@ -48,7 +48,7 @@
<a-input class="fix-auto-fill" type="password" :placeholder="t('sys.login.password')" v-model:value="formData.password" /> <a-input class="fix-auto-fill" type="password" :placeholder="t('sys.login.password')" v-model:value="formData.password" />
</a-form-item> </a-form-item>
</div> </div>
<div class="aui-inputClear"> <!-- <div class="aui-inputClear">
<i class="icon icon-code"></i> <i class="icon icon-code"></i>
<a-form-item> <a-form-item>
<a-input class="fix-auto-fill" type="text" :placeholder="t('sys.login.inputCode')" v-model:value="formData.inputCode" /> <a-input class="fix-auto-fill" type="text" :placeholder="t('sys.login.inputCode')" v-model:value="formData.inputCode" />
@ -57,7 +57,7 @@
<img v-if="randCodeData.requestCodeSuccess" :src="randCodeData.randCodeImage" @click="handleChangeCheckCode" /> <img v-if="randCodeData.requestCodeSuccess" :src="randCodeData.randCodeImage" @click="handleChangeCheckCode" />
<img v-else style="margin-top: 2px; max-width: initial" :src="codeImg" @click="handleChangeCheckCode" /> <img v-else style="margin-top: 2px; max-width: initial" :src="codeImg" @click="handleChangeCheckCode" />
</div> </div>
</div> </div> -->
<!-- <div class="aui-flex"> <!-- <div class="aui-flex">
<div class="aui-flex-box"> <div class="aui-flex-box">
<div class="aui-choice"> <div class="aui-choice">

View File

@ -8,13 +8,13 @@
<a-space v-if="!isPreview"> <a-space v-if="!isPreview">
<!-- <a-button type="primary" @click="save" :loading="saveLoading" title="保存"><Icon icon="ant-design:save-outlined"/>保存</a-button> --> <!-- <a-button type="primary" @click="save" :loading="saveLoading" title="保存"><Icon icon="ant-design:save-outlined"/>保存</a-button> -->
<a-button type="primary" @click="addOne()" class="addBtn" title="新增章节"><Icon icon="ant-design:plus-outlined"/>新增章节</a-button> <a-button type="primary" @click="addOne()" class="addBtn" title="新增章节"><Icon icon="ant-design:plus-outlined"/>新增章节</a-button>
<a-button type="" v-if="!isPreview" @click="() => { isPreview = true; reloadStn(); }" class="addBtn" title="预览"><Icon icon="ant-design:fund-view-outlined"/>预览</a-button> <a-button type="primary" v-if="!isPreview" @click="() => { isPreview = true; reloadStn(); }" class="addBtn" title="预览"><Icon icon="ant-design:fund-view-outlined"/>预览</a-button>
<a-button @click="reload"><Icon icon="ant-design:reload-outlined"/>刷新</a-button> <!-- <a-button @click="reload"><Icon icon="ant-design:reload-outlined"/>刷新</a-button> -->
</a-space> </a-space>
<template v-else> <template v-else>
<a-space> <a-space>
<a-button @click="reloadStn"><Icon icon="ant-design:reload-outlined"/>刷新</a-button> <!-- <a-button @click="reloadStn"><Icon icon="ant-design:reload-outlined"/>刷新</a-button> -->
<a-button type="" @click="() => { isPreview = false }" class="addBtn" title="返回"><Icon icon="ant-design:fund-view-outlined"/>返回</a-button> <a-button type="primary" @click="() => { isPreview = false }" class="addBtn" title="返回"><Icon icon="ant-design:fund-view-outlined"/>返回</a-button>
</a-space> </a-space>
</template> </template>
</div> </div>
@ -35,18 +35,24 @@
<Icon icon="ant-design:holder-outlined"/> <Icon icon="ant-design:holder-outlined"/>
<div>{{ one.sort }}</div> <div>{{ one.sort }}</div>
<div class="inputd"> <div class="inputd">
<a-input v-if="one.isEdit" :value="one.title" @change="changeInput($event, one, 'title')" @blur="() => { one.isEdit = false; editOne(one) }" @click="stop" class="ainput inputpad"/> <a-input v-if="one.isEdit" :value="one.title" style="border:0;" @change="changeInput($event, one, 'title')" @blur="() => { one.isEdit = false; editOne(one) }" @click="stop" class="ainput inputpad"/>
<div v-else class="ainput ainputpad ainputNoEdit" @click="(e) => { stop(e);one.isEdit = true }" >&nbsp;{{ one.title }}</div> <div v-else class="ainput ainputpad ainputNoEdit" @click="(e) => { stop(e);one.isEdit = true }" >&nbsp;{{ one.title }}</div>
</div> </div>
</div> </div>
</template> </template>
<template #extra> <template #extra>
<span v-show="!one.showBtn">
<div v-show="one.fabu=='0'" style="color:#b2b2b2;width: 3rem;">未发布</div>
<div v-show="one.fabu=='1'" style="color:#b2b2b2;width: 3rem">已发布</div>
</span>
<span v-show="one.showBtn"> <span v-show="one.showBtn">
<a-space> <a-space>
<div v-show="one.fabu=='0'||!one.fabu"><a-button type="primary" size="small" @click="handleFabu(one,'1')" class="addBtn" title="发布"><Icon icon="ant-design:check-outlined"/></a-button></div> <div v-show="one.fabu=='0'" style="color:#b2b2b2;width: 3rem;">未发布</div>
<div v-show="one.fabu=='1'"><a-button type="primary" size="small" @click="handleFabu(one,'0')" class="addBtn" title="取消发布"><Icon icon="ant-design:rollback-outlined"/></a-button></div> <div v-show="one.fabu=='1'" style="color:#b2b2b2;width: 3rem">已发布</div>
<div><a-button type="primary" size="small" @click="addTwo($event, one)" class="twoBtn addBtn" title="新增节次"><Icon icon="ant-design:plus-outlined"/></a-button></div> <div><a-button type="primary" size="small" @click="addTwo($event, one)" class="twoBtn addBtn" title="新增节次"><Icon icon="ant-design:plus-outlined"/></a-button></div>
<div><a-button type="primary" size="small" danger @click="delOne($event, one)" class="addBtn" title="删除"><Icon icon="ant-design:delete"/></a-button></div> <div><a-button type="primary" size="small" danger @click="delOne($event, one)" class="addBtn" title="删除"><Icon icon="ant-design:delete"/></a-button></div>
<div v-show="one.fabu=='0'||!one.fabu"><a-button type="primary" size="small" @click="handleFabu(one,'1')" class="addBtn" title="发布">发布</a-button></div>
<div v-show="one.fabu=='1'"><a-button type="primary" size="small" @click="handleFabu(one,'0')" class="addBtn" title="取消发布">取消发布</a-button></div>
</a-space> </a-space>
</span> </span>
</template> </template>
@ -72,7 +78,7 @@
<template #extra> <template #extra>
<span v-show="two.showBtn"> <span v-show="two.showBtn">
<a-space> <a-space>
<a-button type="primary" size="small" class="addBtn" title="上传资源"><Icon icon="ant-design:plus-outlined"/></a-button> <a-button type="primary" size="small" class="addBtn" title="上传资源"><Icon icon="ant-design:swap-outlined" style="transform: rotate(90deg)"/></a-button>
<a-button type="primary" size="small" danger @click="delTwo($event, one, two)" class="addBtn" title="删除"><Icon icon="ant-design:delete"/></a-button> <a-button type="primary" size="small" danger @click="delTwo($event, one, two)" class="addBtn" title="删除"><Icon icon="ant-design:delete"/></a-button>
</a-space> </a-space>
</span> </span>
@ -97,7 +103,7 @@
<template v-if="three.type == 'richText'"><Icon icon="ant-design:file-text-outlined" />富文本</template> <template v-if="three.type == 'richText'"><Icon icon="ant-design:file-text-outlined" />富文本</template>
</a-tag> </a-tag>
<span class="hand" @click="viewThreePage(three)">{{ three.title }}</span> <span class="hand" @click="viewThreePage(three)">{{ three.title }}</span>
<span v-show="three.showBtn"> <span v-show="three.showBtn" style="margin-left: 10px;">
<a-space> <a-space>
<a-button type="primary" size="small" title="下载" v-if="three.type == 'video' || three.type == 'document'" @click="downloadFile(three)" class="addBtn"><Icon icon="ant-design:vertical-align-bottom-outlined"/></a-button> <a-button type="primary" size="small" title="下载" v-if="three.type == 'video' || three.type == 'document'" @click="downloadFile(three)" class="addBtn"><Icon icon="ant-design:vertical-align-bottom-outlined"/></a-button>
<a-button type="primary" size="small" title="查看" v-if="three.type == 'richText'" @click="viewThreePage(three)" class="addBtn"><Icon icon="ant-design:fund-view-outlined"/></a-button> <a-button type="primary" size="small" title="查看" v-if="three.type == 'richText'" @click="viewThreePage(three)" class="addBtn"><Icon icon="ant-design:fund-view-outlined"/></a-button>
@ -681,12 +687,12 @@
cursor:pointer; cursor:pointer;
} }
.max { .max {
height: calc(100vh - 225px); height: calc(100vh - 216px);
//height: calc(-132px + 100vh); //height: calc(-132px + 100vh);
// min-height: calc(-132px + 100vh); // min-height: calc(-132px + 100vh);
// max-height: calc(-132px + 100vh); // max-height: calc(-132px + 100vh);
overflow: auto; // overflow: auto;
//overflow: hidden; overflow: hidden;
.maxDiv { .maxDiv {
height: calc(100% - 94px); height: calc(100% - 94px);
overflow-y: auto; overflow-y: auto;
@ -706,6 +712,7 @@
.ainput { .ainput {
width: 100%; width: 100%;
border:0px;
} }
.ainputpad { .ainputpad {
padding: 3px 0; padding: 3px 0;
@ -713,7 +720,6 @@
} }
.ainputNoEdit { .ainputNoEdit {
border: #d9d9d9 solid 1px;
} }
.inputd { .inputd {

View File

@ -2,13 +2,11 @@
<div class="max"> <div class="max">
<!-- <a-affix :offset-top="0" :target="() => doctomen"> --> <!-- <a-affix :offset-top="0" :target="() => doctomen"> -->
<div class="topButton" v-if="!props.hiddenBtn"> <!-- <div class="topButton" v-if="!props.hiddenBtn">
<a-space> <a-space>
<!-- <a-button type="primary" @click="save" :loading="saveLoading">保存</a-button> -->
<a-button @click="reload"><Icon icon="ant-design:reload-outlined"/>刷新</a-button> <a-button @click="reload"><Icon icon="ant-design:reload-outlined"/>刷新</a-button>
<!-- <a-button type="primary" @click="addOne()" class="addBtn" title="新增一级"><Icon icon="ant-design:plus-outlined"/>新增标题</a-button> -->
</a-space> </a-space>
</div> </div> -->
<!-- </a-affix> --> <!-- </a-affix> -->
<div class="maxDiv"> <div class="maxDiv">
@ -73,7 +71,7 @@
<template v-if="three.type == 'richText'"><Icon icon="ant-design:file-text-outlined" />富文本</template> <template v-if="three.type == 'richText'"><Icon icon="ant-design:file-text-outlined" />富文本</template>
</a-tag> </a-tag>
<span class="hand" @click="viewThreePage(three)">{{ three.title }}</span> <span class="hand" @click="viewThreePage(three)">{{ three.title }}</span>
<span v-show="three.showBtn"> <span v-show="three.showBtn" style="margin-left:10px;">
<a-space> <a-space>
<a-button type="primary" size="small" title="下载" v-if="three.type == 'video' || three.type == 'document'" @click="downloadFile(three)" class="addBtn"><Icon icon="ant-design:vertical-align-bottom-outlined"/></a-button> <a-button type="primary" size="small" title="下载" v-if="three.type == 'video' || three.type == 'document'" @click="downloadFile(three)" class="addBtn"><Icon icon="ant-design:vertical-align-bottom-outlined"/></a-button>
<a-button type="primary" size="small" title="查看" v-if="three.type == 'richText'" @click="viewThreePage(three)" class="addBtn"><Icon icon="ant-design:fund-view-outlined"/></a-button> <a-button type="primary" size="small" title="查看" v-if="three.type == 'richText'" @click="viewThreePage(three)" class="addBtn"><Icon icon="ant-design:fund-view-outlined"/></a-button>
@ -530,14 +528,14 @@
cursor:pointer; cursor:pointer;
} }
.max { .max {
height: calc(100vh - 225px); height: calc(100vh - 210px);
//height: calc(-132px + 100vh); //height: calc(-132px + 100vh);
// min-height: calc(-132px + 100vh); // min-height: calc(-132px + 100vh);
// max-height: calc(-132px + 100vh); // max-height: calc(-132px + 100vh);
overflow: auto; overflow: auto;
//overflow: hidden; //overflow: hidden;
.maxDiv { .maxDiv {
height: calc(100% - 94px); height: calc(100% - 5px);
overflow-y: auto; overflow-y: auto;
} }
} }
@ -557,7 +555,7 @@
width: 100%; width: 100%;
} }
.ainputNoEdit { .ainputNoEdit {
border: #d9d9d9 solid 1px; // border: #d9d9d9 solid 1px;
} }
.inputd { .inputd {

View File

@ -9,7 +9,8 @@
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="答案" v-bind="validateInfos.answer"> <a-form-item label="答案" v-bind="validateInfos.answer">
<a-textarea v-model:value="formData.answer" rows="4" placeholder="请输入答案" :disabled="disabled"/> <j-editor v-model:value="formData.answer"/>
<!-- <a-textarea v-model:value="formData.answer" rows="4" placeholder="请输入答案" :disabled="disabled"/> -->
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
@ -24,6 +25,7 @@
import { getValueType } from '/@/utils'; import { getValueType } from '/@/utils';
import { saveOrUpdate } from '../ZyCjwt.api'; import { saveOrUpdate } from '../ZyCjwt.api';
import { Form } from 'ant-design-vue'; import { Form } from 'ant-design-vue';
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
const props = defineProps({ const props = defineProps({
formDisabled: { type: Boolean, default: false }, formDisabled: { type: Boolean, default: false },

View File

@ -13,7 +13,6 @@
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
</a-col> </a-col>
</span> </span>
</a-col> </a-col>

View File

@ -1,77 +1,77 @@
<template> <template>
<div style="background: #fff;height: calc(100vh - 225px);overflow-y: auto;overflow-x: hidden;margin-top:10px;"> <div style="background: #fff;height: calc(100vh - 225px);overflow-y: auto;overflow-x: hidden;margin-top:10px;">
<!--查询区域--> <div v-if="showYl">
<div class="jeecg-basic-table-form-container" style="border-bottom: 2px solid #f0f0f0;"> <!--查询区域-->
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol" style="padding: 20px 10px 0px 10px;"> <div class="jeecg-basic-table-form-container" style="border-bottom: 2px solid #f0f0f0;">
<a-row :gutter="24"> <a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol" style="padding: 20px 10px 0px 10px;">
<a-col :lg="8"> <a-row :gutter="24">
<a-form-item label="标题"> <a-col :lg="8">
<j-input placeholder="请输入标题" v-model:value="queryParam.title"></j-input> <a-form-item label="标题">
</a-form-item> <j-input placeholder="请输入标题" v-model:value="queryParam.title"></j-input>
</a-col> </a-form-item>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> </a-col>
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-col :lg="6"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> <a-col :lg="6">
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button> <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined" style="margin-left: 8px"> 新增</a-button> <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined" style="margin-left: 8px"> 新增</a-button>
<a-button type="primary" @click="handleZtyl(0)" preIcon="ant-design:plus-outlined" style="margin-left: 8px"> 预览</a-button>
</a-col>
</span>
</a-col>
</a-row>
</a-form>
</div>
<a-row>
<a-col :span="24" v-for="(item, index) in tableData" :key="index" style="padding:10px;overflow:hidden;border-bottom: 1px solid #f0f0f0;">
<div>
<a-row style="padding:10px;line-height: 30px;">
<a-col :span="item.ggStatus==0?20:24">
<span style="font-size: 16px;color: #515151 ;font-weight: bold; ">{{item.title}}</span>
<span v-if="item.ggStatus==0" style="margin-left:15px;"><a-tag color="blue">草稿</a-tag></span>
<span style="margin-left:15px;">
<a @click="handleEdit(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==0" title="编辑"><Icon icon="ant-design:form-outlined"/></a>
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==0"/>
<a @click="handleDelete(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==0" title="删除"><Icon icon="ant-design:delete-outlined" /></a>
<a @click="handleCh(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==1" title="撤回"><Icon icon="ant-design:rollback-outlined" /></a>
</span>
</a-col> </a-col>
</span> <a-col :span="item.ggStatus==0?4:24">
</a-col> <div v-if="item.ggStatus==0" style="text-align: right;color:#9e9e9e;">
</a-row> <a-button type="primary" @click="handleFabu(item)">发布</a-button>
</a-form> </div>
</a-col>
</a-row>
<a-row style="padding:10px;">
<a-col :span="24">
<div style="color: #515151" v-html="item.content"></div>
</a-col>
</a-row>
<a-row style="padding:10px;">
<a-col :span="24">
<div style="text-align: right;color:#9e9e9e;font-weight: bold;">{{item.createTime}}</div>
</a-col>
</a-row>
</div>
</a-col>
<a-col :span="24" style="padding:10px;">
<div v-show="tableData.length>0">
<a-pagination v-model="current" :total="total" @change="handlePageChange" :pageSize="pageSize" style="text-align: right;"/>
</div>
<div v-show="tableData.length==0">
<a-empty/>
</div>
</a-col>
</a-row>
</div> </div>
<a-row> <div v-if="!showYl">
<a-col :span="24" v-for="(item, index) in tableData" :key="index" style="padding:10px;overflow:hidden;border-bottom: 1px solid #f0f0f0;"> <div>
<div> <a-button type="primary" @click="handleZtyl(1)" preIcon="ant-design:plus-outlined" style="margin-left: 8px"> 返回</a-button>
<a-row style="padding:10px;line-height: 30px;"> </div>
<a-col :span="14"> <TeacherYulanList />
<span style="font-size: 16px;color: #515151 ;font-weight: bold;">{{item.title}}</span> </div>
<span v-if="item.ggStatus==0" style="margin-left: 20px;"><a-tag color="blue">草稿</a-tag></span>
</a-col>
<a-col :span="10">
<div v-if="item.ggStatus==0" style="text-align: right;color:#9e9e9e;">尚未发布学生端页面看不到这条通知</div>
</a-col>
</a-row>
<a-row style="padding:10px;">
<a-col :span="24">
<div style="color: #515151" v-html="item.content"></div>
</a-col>
</a-row>
<a-row style="padding:10px;">
<a-col :span="16">
<a @click="handleEdit(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==0" title="编辑"><Icon icon="ant-design:form-outlined"/></a>
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==0"/>
<a @click="handleDelete(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==0" title="删除"><Icon icon="ant-design:delete-outlined" /></a>
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==0"/>
<a @click="handleCh(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==1" title="撤回"><Icon icon="ant-design:rollback-outlined" /></a>
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==1"/>
<a @click="handleDetail(item)" style="margin-left:5px;padding: 0px 8px;" title="预览"><Icon icon="ant-design:copy-outlined" /></a>
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==0"/>
<a @click="handleFabu(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==0" title="发布"><Icon icon="ant-design:check-circle-outlined" /></a>
<!-- <a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0" title="编辑"><Icon icon="ant-design:form-outlined"/></a-button>
<a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0" title="删除"><Icon icon="ant-design:delete-outlined" /></a-button>
<a-button type="primary" @click="handleCh(item)" style="margin-left:5px;padding: 0px 8px;background:#a7a6a6;" v-if="item.ggStatus==1" title="撤回"><Icon icon="ant-design:rollback-outlined" /></a-button>
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;padding: 0px 8px;background:#18a689;" title="预览"><Icon icon="ant-design:copy-outlined" /></a-button>
<a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0" title="发布"><Icon icon="ant-design:check-circle-outlined" /></a-button> -->
</a-col>
<a-col :span="8">
<div style="text-align: right;color:#9e9e9e;font-weight: bold;">{{item.createTime}}</div>
</a-col>
</a-row>
</div>
</a-col>
<a-col :span="24" style="padding:10px;">
<div v-show="tableData.length>0">
<a-pagination v-model="current" :total="total" @change="handlePageChange" :pageSize="pageSize" style="text-align: right;"/>
</div>
<div v-show="tableData.length==0">
<a-empty/>
</div>
</a-col>
</a-row>
<ZyGonggaoModal ref="registerModal" @success="handleSuccess"></ZyGonggaoModal> <ZyGonggaoModal ref="registerModal" @success="handleSuccess"></ZyGonggaoModal>
<ZyGonggaoYlModal ref="registerYlModal" @success="handleSuccess"></ZyGonggaoYlModal> <ZyGonggaoYlModal ref="registerYlModal" @success="handleSuccess"></ZyGonggaoYlModal>
<!-- <ZyGonggaoHistoryModal ref="registerHistoryModal" @success="handleSuccess"></ZyGonggaoHistoryModal>--> <!-- <ZyGonggaoHistoryModal ref="registerHistoryModal" @success="handleSuccess"></ZyGonggaoHistoryModal>-->
@ -84,6 +84,7 @@
import { deleteOne } from './ZyGonggao.api'; import { deleteOne } from './ZyGonggao.api';
import ZyGonggaoModal from './components/ZyGonggaoModal.vue'; import ZyGonggaoModal from './components/ZyGonggaoModal.vue';
import ZyGonggaoYlModal from './components/ZyGonggaoYlModal.vue'; import ZyGonggaoYlModal from './components/ZyGonggaoYlModal.vue';
import TeacherYulanList from '/@/views/zy/zyGonggao/TeacherYulanList.vue';
// import ZyGonggaoHistoryModal from './components/ZyGonggaoHistoryModal.vue'; // import ZyGonggaoHistoryModal from './components/ZyGonggaoHistoryModal.vue';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
import { useMessage } from "/@/hooks/web/useMessage"; import { useMessage } from "/@/hooks/web/useMessage";
@ -107,6 +108,7 @@
const pageNo = ref<number>(0); const pageNo = ref<number>(0);
const pageSize = ref<number>(5); const pageSize = ref<number>(5);
const tableData = ref<any>([]); const tableData = ref<any>([]);
const showYl = ref<boolean>(true);
const labelCol = reactive({ const labelCol = reactive({
xs: { span: 24 }, xs: { span: 24 },
@ -117,6 +119,14 @@
sm: { span: 16 }, sm: { span: 16 },
}); });
function handleZtyl(type){
if(type==1){
showYl.value = true;
}else if(type==0){
showYl.value = false;
}
}
/** /**
* 新增事件 * 新增事件
*/ */

View File

@ -132,6 +132,8 @@ const baseApiUrl = globSetting.domainUrl;
if(record.wwcc=='1'){ if(record.wwcc=='1'){
if(record.wwxsl){ if(record.wwxsl){
text = record.wwxsl+"%"; text = record.wwxsl+"%";
}else if(!record.filePath){
text = "-";
}else{ }else{
text = "检测中"; text = "检测中";
} }
@ -140,6 +142,8 @@ const baseApiUrl = globSetting.domainUrl;
if(record.nwcc=='1'){ if(record.nwcc=='1'){
if(record.nwxsl){ if(record.nwxsl){
text = record.nwxsl+"%"; text = record.nwxsl+"%";
}else if(!record.filePath){
text = "-";
}else{ }else{
text = "检测中"; text = "检测中";
} }
@ -148,6 +152,8 @@ const baseApiUrl = globSetting.domainUrl;
if(record.aigccc=='1'){ if(record.aigccc=='1'){
if(record.aigcxsl){ if(record.aigcxsl){
text = record.aigcxsl+"%"; text = record.aigcxsl+"%";
}else if(!record.filePath){
text = "-";
}else{ }else{
text = "检测中"; text = "检测中";
} }
@ -156,6 +162,8 @@ const baseApiUrl = globSetting.domainUrl;
if(record.xncc=='1'){ if(record.xncc=='1'){
if(record.xnxsl){ if(record.xnxsl){
text = record.xnxsl+"%"; text = record.xnxsl+"%";
}else if(!record.filePath){
text = "-";
}else{ }else{
text = "检测中"; text = "检测中";
} }

View File

@ -19,7 +19,6 @@
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined" style="margin-left: 8px;"> 新增</a-button> <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined" style="margin-left: 8px;"> 新增</a-button>
<!--<a @click="toggleSearchStatus = !toggleSearchStatus" style="margin-left: 8px"> <!--<a @click="toggleSearchStatus = !toggleSearchStatus" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }} {{ toggleSearchStatus ? '收起' : '展开' }}

View File

@ -28,7 +28,6 @@
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
<a-button type="primary" preIcon="ant-design:plus-outlined" @click="handleAdd" style="margin-left: 8px"> 新增</a-button> <a-button type="primary" preIcon="ant-design:plus-outlined" @click="handleAdd" style="margin-left: 8px"> 新增</a-button>
</a-col> </a-col>
</span> </span>
@ -45,7 +44,7 @@
<a-col :span="24" style="margin-bottom: 10px;height:53px;overflow:hidden;" :title="item.title"> <a-col :span="24" style="margin-bottom: 10px;height:53px;overflow:hidden;" :title="item.title">
<div style="font-size: 18px;font-weight: bold;">{{item.title}}</div> <div style="font-size: 18px;font-weight: bold;">{{item.title}}</div>
</a-col> </a-col>
<a-col :span="24" class="zyCon">时间{{dayjs(item.startTime).format('YYYY.MM.DD')}} - {{dayjs(item.endTime).format('YYYY.MM.DD')}}</a-col> <a-col :span="24" class="zyCon">时间{{dayjs(item.startTime).format('YYYY.MM.DD HH:mm')}} - {{dayjs(item.endTime).format('YYYY.MM.DD HH:mm')}}</a-col>
<a-col :span="24" class="zyCon"><div style="float:left">&nbsp;</div><div style="float:right;" @click="openXkrs(item)"><a>{{item.xkxs}}人选课</a></div></a-col> <a-col :span="24" class="zyCon"><div style="float:left">&nbsp;</div><div style="float:right;" @click="openXkrs(item)"><a>{{item.xkxs}}人选课</a></div></a-col>
<a-col :span="24" class="zyCon"><div style="float:left">未提交{{item.wtjnum}};</div><div style="float:right;" >已提交{{item.ytjnum}}</div></a-col> <a-col :span="24" class="zyCon"><div style="float:left">未提交{{item.wtjnum}};</div><div style="float:right;" >已提交{{item.ytjnum}}</div></a-col>
<a-col :span="24" class="zyCon"><div style="float:left">未评阅{{item.wpynum}};</div><div style="float:right;" >已评阅{{item.ypynum}}</div></a-col> <a-col :span="24" class="zyCon"><div style="float:left">未评阅{{item.wpynum}};</div><div style="float:right;" >已评阅{{item.ypynum}}</div></a-col>
@ -54,7 +53,8 @@
<a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==0">编辑作业</a-button> <a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==0">编辑作业</a-button>
<a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==0">发布作业</a-button> <a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==0">发布作业</a-button>
<a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==0">删除作业</a-button> <a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==0">删除作业</a-button>
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==1||item.zyStatus==2||item.zyStatus==3">作业详情</a-button> <a-button type="primary" @click="handleBjzy(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==1||item.zyStatus==2||item.zyStatus==3">编辑作业</a-button>
<!-- <a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==1||item.zyStatus==2||item.zyStatus==3">作业详情</a-button> -->
<a-button type="primary" @click="handleZyxx(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==1||item.zyStatus==2||item.zyStatus==3">查看作业</a-button> <a-button type="primary" @click="handleZyxx(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.zyStatus==1||item.zyStatus==2||item.zyStatus==3">查看作业</a-button>
<!-- <a-button type="primary" @click="handleShangchuan(item)" style="margin-left:5px;background:rgb(28, 132, 198);" v-if="item.zyStatus==1||item.zyStatus==2||item.zyStatus==3">上传</a-button> --> <!-- <a-button type="primary" @click="handleShangchuan(item)" style="margin-left:5px;background:rgb(28, 132, 198);" v-if="item.zyStatus==1||item.zyStatus==2||item.zyStatus==3">上传</a-button> -->
</a-col> </a-col>
@ -72,6 +72,7 @@
</a-row> </a-row>
<ZyInfoModal ref="registerModal" @success="handleSuccess"></ZyInfoModal> <ZyInfoModal ref="registerModal" @success="handleSuccess"></ZyInfoModal>
<ZyInfoEditModal ref="registerEditModal" @success="handleSuccess"></ZyInfoEditModal>
<ZyInfoStudentListModal ref="ZyInfoStudentListModalPage" @success="handleSuccess"></ZyInfoStudentListModal> <ZyInfoStudentListModal ref="ZyInfoStudentListModalPage" @success="handleSuccess"></ZyInfoStudentListModal>
<ZyInfoStudentModal ref="ZyInfoStudentModalPage"></ZyInfoStudentModal> <ZyInfoStudentModal ref="ZyInfoStudentModalPage"></ZyInfoStudentModal>
<XxhbbksListModal ref="XxhbbksListModalPage"></XxhbbksListModal> <XxhbbksListModal ref="XxhbbksListModalPage"></XxhbbksListModal>
@ -92,8 +93,9 @@ import dayjs from 'dayjs';
import ZyInfoStudentListModal from '/@/views/zy/zyInfoStudent/ZyInfoStudentListModal.vue'; import ZyInfoStudentListModal from '/@/views/zy/zyInfoStudent/ZyInfoStudentListModal.vue';
import ZyInfoStudentModal from '/@/views/zy/zyInfoStudent/components/ZyInfoStudentModal.vue'; import ZyInfoStudentModal from '/@/views/zy/zyInfoStudent/components/ZyInfoStudentModal.vue';
import XxhbbksListModal from '/@/views/kc/xxhbbks/XxhbbksListModal.vue'; import XxhbbksListModal from '/@/views/kc/xxhbbks/XxhbbksListModal.vue';
import ZyInfoEditModal from './components/ZyInfoEditModal.vue';
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
@ -107,6 +109,7 @@ import dayjs from 'dayjs';
const ZyInfoStudentListModalPage = ref(); const ZyInfoStudentListModalPage = ref();
const ZyInfoStudentModalPage = ref(); const ZyInfoStudentModalPage = ref();
const XxhbbksListModalPage = ref(); const XxhbbksListModalPage = ref();
const registerEditModal = ref();
const current = ref<number>(0); const current = ref<number>(0);
const total = ref<number>(0); const total = ref<number>(0);
const pageNo = ref<number>(0); const pageNo = ref<number>(0);
@ -148,6 +151,12 @@ import dayjs from 'dayjs';
registerModal.value.edit(record); registerModal.value.edit(record);
} }
function handleBjzy(record){
registerEditModal.value.disableSubmit = false;
registerEditModal.value.edit(record);
}
/** /**
* 详情 * 详情
*/ */

View File

@ -1,7 +1,7 @@
<template> <template>
<div style="background: #fff;height: 97%;margin: 10px 0;"> <div style="background: #fff;height: 97%;margin: 10px 0;">
<div style="text-align:right;width:100%;"> <div style="text-align:right;width:100%;">
<a-switch v-model:checked="checked1" @change="onChange1"/> <a-switch v-model:checked="checked1" checkedChildren="卡片" unCheckedChildren="列表" @change="onChange1"/>
</div> </div>
<div v-if="checked1"> <div v-if="checked1">
<ZyInfoList/> <ZyInfoList/>

View File

@ -24,12 +24,12 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="开始时间" v-bind="validateInfos.startTime"> <a-form-item label="开始时间" v-bind="validateInfos.startTime">
<a-date-picker placeholder="请选择开始时间" v-model:value="formData.startTime" :disabled-date="disabledDate" value-format="YYYY-MM-DD" style="width: 100%" :disabled="disabled"/> <a-date-picker placeholder="请选择开始时间" v-model:value="formData.startTime" :disabled-date="disabledDate" :show-time="{ format: 'YYYY-MM-DD HH:mm' }" valueFormat="YYYY-MM-DD HH:mm" format="YYYY-MM-DD HH:mm" style="width: 100%" :disabled="disabled"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="结束时间" v-bind="validateInfos.endTime"> <a-form-item label="结束时间" v-bind="validateInfos.endTime">
<a-date-picker placeholder="请选择结束时间" v-model:value="formData.endTime" :disabled-date="disabledDate" value-format="YYYY-MM-DD" style="width: 100%" :disabled="disabled"/> <a-date-picker placeholder="请选择结束时间" v-model:value="formData.endTime" :disabled-date="disabledDate" :show-time="{ format: 'YYYY-MM-DD HH:mm' }" valueFormat="YYYY-MM-DD HH:mm" format="YYYY-MM-DD HH:mm" style="width: 100%" :disabled="disabled"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">

View File

@ -13,54 +13,46 @@ export const columns: BasicColumn[] = [
title: '学生学号', title: '学生学号',
align: "center", align: "center",
dataIndex: 'createBy', dataIndex: 'createBy',
width: '100px'
}, },
{ {
title: '提交时间', title: '提交时间',
align: "center", align: "center",
dataIndex: 'createTime', dataIndex: 'publishTime',
width: '100px'
}, },
{ {
title: '评分', title: '评分',
align: "center", align: "center",
dataIndex: 'score', dataIndex: 'score',
width: '80px'
}, },
{ {
title: '网络查重', title: '网络查重',
align: "center", align: "center",
dataIndex: 'wwsftg', dataIndex: 'wwsftg',
slots: { customRender: 'wwsftgaction' }, slots: { customRender: 'wwsftgaction' },
width: '100px'
}, },
{ {
title: '作业查重', title: '作业查重',
align: "center", align: "center",
dataIndex: 'nwsftg', dataIndex: 'nwsftg',
slots: { customRender: 'nwsftgaction' }, slots: { customRender: 'nwsftgaction' },
width: '100px'
}, },
{ {
title: 'Aigc查重', title: 'Aigc查重',
align: "center", align: "center",
dataIndex: 'aigcsftg', dataIndex: 'aigcsftg',
slots: { customRender: 'aigcsftgaction' }, slots: { customRender: 'aigcsftgaction' },
width: '100px'
}, },
{ {
title: '校内查重', title: '校内查重',
align: "center", align: "center",
dataIndex: 'xnsftg', dataIndex: 'xnsftg',
slots: { customRender: 'xnsftgaction' }, slots: { customRender: 'xnsftgaction' },
width: '100px'
}, },
{ {
title: '存档类型', title: '存档类型',
align: "center", align: "center",
dataIndex: 'cdlx_dictText', dataIndex: 'cdlx_dictText',
width: '100px'
}, },
]; ];

View File

@ -63,8 +63,8 @@
<span :title="record.wwmessage?record.wwmessage:'暂无原因,请联系管理员'" style="color:red;">检测失败</span> <span :title="record.wwmessage?record.wwmessage:'暂无原因,请联系管理员'" style="color:red;">检测失败</span>
</template> </template>
<template v-else> <template v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.wwpaperviewurl)">{{record.wwxsl}}%</span> <span v-if="text=='通过'" style="color: green;padding: 5px 15px;cursor:pointer" title="通过(点击可查看对比结果)" @click="handleYulan(record.wwpaperviewurl)">{{record.wwxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过" @click="handleYulan(record.wwpaperviewurl)">{{record.wwxsl}}%</span> <span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;cursor:pointer" title="未通过(点击可查看对比结果)" @click="handleYulan(record.wwpaperviewurl)">{{record.wwxsl}}%</span>
<span v-else> <span v-else>
<span v-if="record.filePath">检测中</span> <span v-if="record.filePath">检测中</span>
<span v-else>未提交</span> <span v-else>未提交</span>
@ -79,8 +79,8 @@
<span :title="record.zymessage?record.zymessage:'暂无原因,请联系管理员'" style="color:red;">检测失败</span> <span :title="record.zymessage?record.zymessage:'暂无原因,请联系管理员'" style="color:red;">检测失败</span>
</template> </template>
<template v-else> <template v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.zypaperviewurl)">{{record.nwxsl}}%</span> <span v-if="text=='通过'" style="color: green;padding: 5px 15px;cursor:pointer" title="通过(点击可查看对比结果)" @click="handleYulan(record.zypaperviewurl)">{{record.nwxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过" @click="handleYulan(record.zypaperviewurl)">{{record.nwxsl}}%</span> <span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;cursor:pointer" title="未通过(点击可查看对比结果)" @click="handleYulan(record.zypaperviewurl)">{{record.nwxsl}}%</span>
<span v-else> <span v-else>
<span v-if="record.filePath">检测中</span> <span v-if="record.filePath">检测中</span>
<span v-else>未提交</span> <span v-else>未提交</span>
@ -95,8 +95,8 @@
<span :title="record.aigcmessage?record.aigcmessage:'暂无原因,请联系管理员'" style="color:red;">检测失败</span> <span :title="record.aigcmessage?record.aigcmessage:'暂无原因,请联系管理员'" style="color:red;">检测失败</span>
</template> </template>
<template v-else> <template v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.aigcpaperviewurl)">{{record.aigcxsl}}%</span> <span v-if="text=='通过'" style="color: green;padding: 5px 15px;cursor:pointer" title="通过(点击可查看对比结果)" @click="handleYulan(record.aigcpaperviewurl)">{{record.aigcxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过" @click="handleYulan(record.aigcpaperviewurl)">{{record.aigcxsl}}%</span> <span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;cursor:pointer" title="未通过(点击可查看对比结果)" @click="handleYulan(record.aigcpaperviewurl)">{{record.aigcxsl}}%</span>
<span v-else> <span v-else>
<span v-if="record.filePath">检测中</span> <span v-if="record.filePath">检测中</span>
<span v-else>未提交</span> <span v-else>未提交</span>
@ -111,8 +111,8 @@
<span :title="record.xxmessage?record.xxmessage:'暂无原因,请联系管理员'" style="color:red;">检测失败</span> <span :title="record.xxmessage?record.xxmessage:'暂无原因,请联系管理员'" style="color:red;">检测失败</span>
</template> </template>
<template v-else> <template v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.xxpaperviewurl)">{{record.xnxsl}}%</span> <span v-if="text=='通过'" style="color: green;padding: 5px 15px;cursor:pointer" title="通过(点击可查看对比结果)" @click="handleYulan(record.xxpaperviewurl)">{{record.xnxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过" @click="handleYulan(record.xxpaperviewurl)">{{record.xnxsl}}%</span> <span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;cursor:pointer" title="未通过(点击可查看对比结果)" @click="handleYulan(record.xxpaperviewurl)">{{record.xnxsl}}%</span>
<span v-else> <span v-else>
<span v-if="record.filePath">检测中</span> <span v-if="record.filePath">检测中</span>
<span v-else>未提交</span> <span v-else>未提交</span>
@ -180,7 +180,7 @@
// fixed: 'right', // fixed: 'right',
}, },
beforeFetch: (params) => { beforeFetch: (params) => {
params.column = '',params.order = '';// params.column = 'publishTime',params.order = 'desc';//
return Object.assign(params, queryParam.value); return Object.assign(params, queryParam.value);
}, },
}, },

View File

@ -29,6 +29,19 @@ export const columns: BasicColumn[] = [
title: '文件名称', title: '文件名称',
align:"center", align:"center",
dataIndex: 'fileName', dataIndex: 'fileName',
customRender: ({ record,text }) => {
console.log(`🚀 1~ text:`, text)
if(text){
text = text.substring(text.lastIndexOf("/")+1,text.length)
}
console.log(`🚀 2~ text:`, text)
return text;
}
},
{
title: '文件下载',
align:"center",
dataIndex: 'fileName',
slots: { customRender: 'fileSlot' }, slots: { customRender: 'fileSlot' },
} }
]; ];

View File

@ -4,22 +4,6 @@
<div class="jeecg-basic-table-form-container"> <div class="jeecg-basic-table-form-container">
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="8">
<a-form-item label="学期学年">
<j-dict-select-tag ref="xqDictTag" placeholder="请选择学年学期" v-model:value="queryParam.xqxn" :dictCode="xqxnDic" @change="changeXqxnDic"/>
</a-form-item>
</a-col>
<a-col :lg="8">
<a-form-item label="开课单位">
<j-dict-select-tag ref="dwDictTag" placeholder="请选择开课单位" v-model:value="queryParam.kkdw" :dictCode="kkdwDic" @change="changeKkdwDic"/>
</a-form-item>
</a-col>
<!--<template v-if="toggleSearchStatus">-->
<a-col :lg="8">
<a-form-item label="课程名称">
<j-dict-select-tag ref="kcDictTag" placeholder="请选择课程名称" v-model:value="queryParam.kcmc" :dictCode="kcmcDic" @change="changeKcmcDic"/>
</a-form-item>
</a-col>
<a-col :lg="8"> <a-col :lg="8">
<a-form-item label="文件类型"> <a-form-item label="文件类型">
<j-dict-select-tag ref="wjDictTag" placeholder="请选择文件类型" v-model:value="queryParam.wjlx" :dictCode="wjlxDic"/> <j-dict-select-tag ref="wjDictTag" placeholder="请选择文件类型" v-model:value="queryParam.wjlx" :dictCode="wjlxDic"/>
@ -30,7 +14,6 @@
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="handleAdd" style="margin-left: 8px">新增</a-button> <a-button type="primary" preIcon="ant-design:reload-outlined" @click="handleAdd" style="margin-left: 8px">新增</a-button>
<!--<a @click="toggleSearchStatus = !toggleSearchStatus" style="margin-left: 8px"> <!--<a @click="toggleSearchStatus = !toggleSearchStatus" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }} {{ toggleSearchStatus ? '收起' : '展开' }}