修改bug

This commit is contained in:
yangjun 2024-09-07 16:15:48 +08:00
parent b8e19e840f
commit 1d50bf8157
11 changed files with 741 additions and 245 deletions

View File

@ -106,16 +106,16 @@ public class SyncZyxx extends BaseSync {
//保存到胃 //保存到胃
try { try {
QueryWrapper dqw = new QueryWrapper(); // QueryWrapper dqw = new QueryWrapper();
zyHuizongService.remove(dqw); // zyHuizongService.remove(dqw);
zyHuizongService.syncList(outDataList); zyHuizongService.syncList(outDataList);
QueryWrapper dqw1 = new QueryWrapper(); // QueryWrapper dqw1 = new QueryWrapper();
zyHuizongXiangxiService.remove(dqw1); // zyHuizongXiangxiService.remove(dqw1);
zyHuizongXiangxiService.syncList(out1DataList); zyHuizongXiangxiService.syncList(out1DataList);
QueryWrapper dqw2 = new QueryWrapper(); // QueryWrapper dqw2 = new QueryWrapper();
zyInfoScjlService.remove(dqw2); // zyInfoScjlService.remove(dqw2);
zyInfoScjlService.syncList(out2DataList); zyInfoScjlService.syncList(out2DataList);
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();

View File

@ -0,0 +1,65 @@
package org.jeecg.modules.demo.zyHuizong.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.demo.zjSqxx.entity.ZjSqxx;
import org.jeecg.modules.demo.zjSqxx.service.IZjSqxxService;
import org.jeecg.modules.demo.zyHuizong.entity.ZyHuizong;
import org.jeecg.modules.demo.zyHuizong.entity.ZyInfo;
import org.jeecg.modules.demo.zyHuizong.service.IZyHuizongService;
import org.jeecg.modules.demo.zyHuizong.service.ZyInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Date;
/**
* @Description: 作业汇总
* @Author: jeecg-boot
* @Date: 2024-09-03
* @Version: V1.0
*/
@Api(tags="作业汇总")
@RestController
@RequestMapping("/zyInfo/zyInfo")
@Slf4j
public class ZyInfoController extends JeecgController<ZyInfo, ZyInfoService> {
@Autowired
private ZyInfoService zyInfoService;
/**
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "作业汇总-通过id查询")
@ApiOperation(value="作业汇总-通过id查询", notes="作业汇总-通过id查询")
@GetMapping(value = "/queryById")
public Result<ZyInfo> queryById(@RequestParam(name="id",required=true) String id) {
ZyInfo zyHuizong = zyInfoService.getById(id);
if(zyHuizong==null) {
return Result.error("未找到对应数据");
}
return Result.OK(zyHuizong);
}
}

View File

@ -0,0 +1,218 @@
package org.jeecg.modules.demo.zyHuizong.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 作业发布
* @Author: jeecg-boot
* @Date: 2024-05-06
* @Version: V1.0
*/
@Data
@TableName("zy_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="zy_info对象", description="作业发布")
public class ZyInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**createBy*/
@ApiModelProperty(value = "createBy")
private String createBy;
/**createTime*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "createTime")
private Date createTime;
/**updateBy*/
@ApiModelProperty(value = "updateBy")
private String updateBy;
/**updateTime*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "updateTime")
private Date updateTime;
/**作业名称*/
@Excel(name = "作业名称", width = 15)
@ApiModelProperty(value = "作业名称")
private String title;
/**类型*/
@Excel(name = "类型", width = 15, dicCode = "zy_type")
@Dict(dicCode = "zy_type")
@ApiModelProperty(value = "类型")
private String zyType;
/**描述*/
@Excel(name = "描述", width = 15)
@ApiModelProperty(value = "描述")
private String content;
/**开始时间*/
@Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd HH:mm")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
@ApiModelProperty(value = "开始时间")
private Date startTime;
/**结束时间*/
@Excel(name = "结束时间", width = 15, format = "yyyy-MM-dd HH:mm")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
@ApiModelProperty(value = "结束时间")
private Date endTime;
/**状态*/
@Excel(name = "状态", width = 15)
@ApiModelProperty(value = "状态")
@Dict(dicCode = "zy_status")
private String zyStatus;
/**学年学期*/
@Excel(name = "学年学期", width = 15)
@ApiModelProperty(value = "学年学期")
private String xnxq;
/**外网是否查重*/
@Excel(name = "外网是否查重", width = 15, dicCode = "yn")
@Dict(dicCode = "yn")
@ApiModelProperty(value = "外网是否查重")
private String wwcc;
/**外网通过率*/
@Excel(name = "外网通过率", width = 15)
@ApiModelProperty(value = "外网通过率")
private Double wwtgl;
/**内网查重*/
@Excel(name = "内网查重", width = 15, dicCode = "yn")
@Dict(dicCode = "yn")
@ApiModelProperty(value = "内网查重")
private String nwcc;
/**内网通过率*/
@Excel(name = "内网通过率", width = 15)
@ApiModelProperty(value = "内网通过率")
private Double nwtgl;
/**aigc查重*/
@Excel(name = "aigc查重", width = 15, dicCode = "yn")
@Dict(dicCode = "yn")
@ApiModelProperty(value = "aigc查重")
private String aigccc;
/**aigc通过率*/
@Excel(name = "aigc通过率", width = 15)
@ApiModelProperty(value = "aigc通过率")
private Double aigctgl;
/**校内查重*/
@Excel(name = "校内查重", width = 15, dicCode = "yn")
@Dict(dicCode = "yn")
@ApiModelProperty(value = "校内查重")
private String xncc;
/**校内通过率*/
@Excel(name = "校内通过率", width = 15)
@ApiModelProperty(value = "校内通过率")
private Double xntgl;
//作业分值
private String score;
private String rwbh;
private String filePath;
private String xkxs;//选课学生
private String kcnr;//考察内容多选
private String pfbz;//评分标准
private String sturead;//评分标准是否允许学生查看
private Integer sort;//序号
private String xshpkg;//学生互评开关
private String xshprsq;//学生互评人数
private String zyLeixing;//作业类型 0课程作业 1期末作业
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
private Date xshpkssj;//学生互评开始时间
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
private Date xshpjssj;//学生互评结束时间
private String sfzzcj;//是否最终成绩1是 0否
private String xssfck;//学生是否查看1是 0否
private String hpsfwcone;//第1次互评是否完成1是 0否
private String hpsfwctwo;//第2次互评是否完成1是 0否
private String sfcc;//是否查重0不查重 1查重
private String sfsckhcl;//是否上传考核材料0否 1是
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
private Date sfsckhclTime;//上传考核材料时间
@TableField(exist = false)
private String sflssj;//是否历史数据
@TableField(exist = false)
private String stuId;
@TableField(exist = false)
private String stuFilePath;
@TableField(exist = false)
private String stuPdfPath;
@TableField(exist = false)
private String wtjnum;
@TableField(exist = false)
private String ytjnum;
@TableField(exist = false)
private String wpynum;
@TableField(exist = false)
private String ypynum;
@TableField(exist = false)
private String wwxsl;
@TableField(exist = false)
private String nwxsl;
@TableField(exist = false)
private String aigcxsl;
@TableField(exist = false)
private String xnxsl;
@TableField(exist = false)
private String teano;
@TableField(exist = false)
private String kcmc;
@TableField(exist = false)
private String skjs;
@TableField(exist = false)
private String stuscore;
@TableField(exist = false)
private String wwsftg;
@TableField(exist = false)
private String nwsftg;
@TableField(exist = false)
private String aigcsftg;
@TableField(exist = false)
private String xnsftg;
@TableField(exist = false)
private String zzdf;
@TableField(exist = false)
private String xshpfs;
@TableField(exist = false)
private String jxfs;
@TableField(exist = false)
private String dpynum;
@TableField(exist = false)
private String zgccl;
@TableField(exist = false)
private String zyzb;
@TableField(exist = false)
private String scoreFabu;
@TableField(exist = false)
private String pyContent;
@TableField(exist = false)
private String pyFilePath;
}

View File

@ -0,0 +1,15 @@
package org.jeecg.modules.demo.zyHuizong.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.demo.zyHuizong.entity.Vkczxzy0001;
import org.jeecg.modules.demo.zyHuizong.entity.ZyInfo;
/**
* @Description: 作业汇总
* @Author: jeecg-boot
* @Date: 2024-09-03
* @Version: V1.0
*/
public interface ZyInfoMapper extends BaseMapper<ZyInfo> {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.zyHuizong.mapper.ZyInfoMapper">
</mapper>

View File

@ -0,0 +1,15 @@
package org.jeecg.modules.demo.zyHuizong.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.demo.zyHuizong.entity.Vkczxzy0001;
import org.jeecg.modules.demo.zyHuizong.entity.ZyInfo;
/**
* @Description: 作业汇总
* @Author: jeecg-boot
* @Date: 2024-09-03
* @Version: V1.0
*/
public interface ZyInfoService extends IService<ZyInfo> {
}

View File

@ -0,0 +1,23 @@
package org.jeecg.modules.demo.zyHuizong.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.demo.zyHuizong.entity.Vkczxzy0001;
import org.jeecg.modules.demo.zyHuizong.entity.ZyInfo;
import org.jeecg.modules.demo.zyHuizong.mapper.Vkczxzy0001Mapper;
import org.jeecg.modules.demo.zyHuizong.mapper.ZyInfoMapper;
import org.jeecg.modules.demo.zyHuizong.service.Vkczxzy0001Service;
import org.jeecg.modules.demo.zyHuizong.service.ZyInfoService;
import org.springframework.stereotype.Service;
/**
* @Description: 作业汇总
* @Author: jeecg-boot
* @Date: 2024-09-03
* @Version: V1.0
*/
@Service
@DS("multi-datasource1")
public class ZyInfoServiceImpl extends ServiceImpl<ZyInfoMapper, ZyInfo> implements ZyInfoService {
}

View File

@ -5,19 +5,12 @@
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24"> <a-row :gutter="24">
<div style="width:100%;"> <div style="width:100%;">
<div style="text-align: right">
模板下载
<a-button type="primary" style="margin-left: 10px;">课程考核合理性评价单</a-button>
<a-button type="primary" style="margin-left: 10px;">成绩单</a-button>
<a-button type="primary" style="margin-left: 10px;">课程目标达成评价报告</a-button>
<a-button type="primary" style="margin-left: 10px;">专家用评价表</a-button>
</div>
<div style="text-align: center;font-size: 16px;font-weight: 700;line-height: 50px;" v-if="jxrwInfo.value"> <div style="text-align: center;font-size: 16px;font-weight: 700;line-height: 50px;" v-if="jxrwInfo.value">
{{jxrwInfo?.value.xn}}{{jxrwInfo?.value.xqmc}}学期{{jxrwInfo?.value.kcmc}}课程考核材料 {{jxrwInfo?.value.xn}}{{jxrwInfo?.value.xqmc}}学期{{jxrwInfo?.value.kcmc}}课程考核材料
</div> </div>
<div v-if="jxrwInfo.value"> <div v-if="jxrwInfo.value">
<div>概要信息</div> <div style="padding-left: 15px;font-weight: 700;">概要信息</div>
<a-row> <a-row style="line-height: 30px;">
<a-col :span="5"> <a-col :span="5">
<span style="margin-left: 15px;">开课单位</span> <span>{{jxrwInfo?.value.kkyxmc}}</span> <span style="margin-left: 15px;">开课单位</span> <span>{{jxrwInfo?.value.kkyxmc}}</span>
</a-col> </a-col>

View File

@ -1,106 +1,112 @@
<template> <template>
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<a-form ref="formRef" style="background: #f9f9f9" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol"> <div class="region">
<a-row> <div class="region-title">基本信息</div>
<div class="wrapper-back"> <a-col :span="24">
<div class="wrapper-title">基本信息</div> <a-form-item label="考试题目" v-bind="validateInfos.title">
<a-col :span="24"> {{zyInfo.title}}
<a-form-item label="作业题目"> </a-form-item>
<span class="spanb-word">{{ formData.zymc }}</span> </a-col>
</a-form-item> <a-col :span="24">
</a-col> <a-form-item label="考试截止时间" v-bind="validateInfos.endTime">
<a-col :span="24" v-if="dataKhnr.length > 0"> {{zyInfo.endTime}}
<a-form-item label="考察内容"> </a-form-item>
<a-table :columns="columnsKhnr" class="spanb-word" rowKey="id" :data-source="dataKhnr" :pagination="false" /> </a-col>
</a-form-item> <a-col :span="24">
</a-col> <a-form-item label="考试发布时间" v-bind="validateInfos.startTime">
<a-col :span="12"> {{zyInfo.startTime}}
<a-form-item label="作业截止时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2"> </a-form-item>
<span class="spanb-word">{{ formData.endTime }}</span> </a-col>
</a-form-item> <a-col :span="24">
</a-col> <a-form-item label="考试要求" v-bind="validateInfos.content">
<a-col :span="12"> <div style="color: #777777" v-html="zyInfo.content"></div>
<a-form-item label="作业发布时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2"> </a-form-item>
<span class="spanb-word">{{ formData.startTime }}</span> </a-col>
</a-form-item> <a-col :span="24">
</a-col> <a-form-item label="是否允许学生查看" >
<a-col :span="24"> <j-dict-select-tag type="radio" v-model:value="zyInfo.sturead" dictCode="yn" placeholder="请选择评分标准是否允许学生查看" disabled />
<a-form-item label="作业要求">
<div class="spanb-word" style="margin-top: 5px" v-html="formData.content"></div>
</a-form-item>
</a-col>
<a-col :span="24" v-if="formData.filePath">
<a-form-item label="参考资料">
<span>{{ lastString(formData.filePath) }}</span>
<a-button type="primary" style="margin-left: 10px" @click="downLoad(formData.filePath)">下载</a-button>
</a-form-item>
</a-col>
<a-col :span="24" v-show="formData.sturead == '1' && formData.pfbz">
<a-form-item label="评分标准" layout="inline">
<div class="spanb-word" style="margin-top: 5px" v-html="formData.pfbz"></div>
</a-form-item>
</a-col>
</div>
<a-col :span="24" v-if="formData.wwtgl" class="wrapper-back">
<div class="wrapper-title">查重设置</div>
<a-form-item layout="inline" style="margin-left: 100px">
<a-form-item label="检测通过率" :labelCol="labelCol3" :wrapperCol="wrapperCol3">
<span style="padding: 7px 10px"></span>
<a-input-number v-model:value="formData.wwtgl" placeholder="检测通过率" style="width: 60%" :max="100" :min="0" disabled>
<template #addonAfter> % </template>
</a-input-number>
</a-form-item>
<a-form-item label="比对库设置" :labelCol="labelCol3" :wrapperCol="wrapperCol3">
<div style="padding: 7px 20px">维普</div>
<div style="padding: 0 10px">
<a-checkbox v-model:checked="formData.wwcc" style="margin-left: 10px" disabled>
<span class="Check-title">维普资源库查重</span><br />
<span class="Check-concent">中文科技期刊数据库硕博学位论文库高校特色论文库互联网数据资源/互联网文档资源</span>
</a-checkbox>
<a-checkbox v-model:checked="formData.xncc" disabled>
<span class="Check-title">学校作业库查重</span><br />
<span class="Check-concent">历届学生提供的作业库内查重</span>
</a-checkbox>
<a-checkbox v-model:checked="formData.nwcc" disabled>
<span class="Check-title">本次作业查重</span><br />
<span class="Check-concent">本次学生提交的作业间查重</span>
</a-checkbox>
</div>
<div style="padding: 7px 20px">AIGC</div>
<div style="padding: 0 10px">
<a-checkbox v-model:checked="formData.aigccc" style="margin-left: 10px" disabled>
<span class="Check-title">AIGC查重</span><br />
<span class="Check-concent">检测作业是否部分或全部由AI模型生成</span>
</a-checkbox>
</div>
</a-form-item>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24">
<a-col v-if="formData.pyContent || formData.pyFilePath"> <a-form-item label="评分标准">
<div class="wrapper-back"> <div v-html="zyInfo.pfbz"></div>
<div class="wrapper-title">批阅信息</div> </a-form-item>
<a-row> </a-col>
<a-col :span="24" v-if="formData.pyContent"> </div>
<a-form-item label="批阅内容" layout="inline"> </a-col>
<div class="spanb-word" style="margin-top: 5px" v-html="formData.pyContent"></div> <a-col :span="24">
</a-form-item> <div class="region">
</a-col> <div class="region-title">学生互评</div>
<a-col :span="24" v-if="formData.pyFilePath"> <a-form-item label="学生互评">
<a-form-item label="批阅附件"> <div class="tishi" v-if="zyInfo.xshpkg == '1'"
<span>{{ lastString(formData.pyFilePath) }}</span> >每份考试至少互评三次每个学生互评五份考试按时完成互评任务的学生可额外获得最终分数的2%作为互评奖励互评考试质量高的学生可额外获得最终分数的5%作为互评奖励</div
<a-button type="primary" style="margin-left: 10px" @click="downLoad(formData.pyFilePath)">下载</a-button> >
</a-form-item> <j-dict-select-tag
</a-col> type="radio"
</a-row> v-model:value="zyInfo.xshpkg"
</div> dictCode="yn"
</a-col> placeholder="请选择是否允许学生查看"
</a-row> style="margin-top: 15px"
</a-form> :disabled="true"
/>
<div v-if="zyInfo.xshpkg == '1'">
<a-form-item label="互评结果使用" :labelCol="labelCol3" :wrapperCol="wrapperCol3" style="margin-top: 20px; margin-left: -30px">
<a-radio-group v-model:value="zyInfo.sfzzcj" style="width: 100%" size="default" :disabled="true">
<a-radio :value="'1'" style="width: 100%; margin-bottom: 5px">互评成绩为最终成绩</a-radio>
<a-radio :value="'0'" style="width: 100%; margin-bottom: 5px">互评成绩作为教师评分的参考成绩</a-radio>
</a-radio-group>
</a-form-item>
<a-form-item
label="是否允许学生看到互评成绩"
:labelCol="labelCol4"
:wrapperCol="wrapperCol4"
style="margin-top: 20px; margin-left: -10px"
>
<a-radio-group v-model:value="zyInfo.xssfck" disabled>
<a-radio :value="'1'" style="margin-top: 5px">(匿名)</a-radio>
<a-radio :value="'0'" style="margin-top: 5px"></a-radio>
</a-radio-group>
</a-form-item>
<a-form-item label="互评结束时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
{{zyInfo.xshpjssj}}
</a-form-item>
</div>
</a-form-item>
</div>
</a-col>
<a-col :span="24">
<div class="region">
<div class="region-title">查重设置</div>
<a-form-item label="检测通过率" :labelCol="labelCol3" :wrapperCol="wrapperCol3" style="margin: -1px; margin-left: -10px">
<a-input-number v-model:value="zyInfo.wwtgl" placeholder="请输入检测通过率" style="width: 50%" :max="100" :min="0" :disabled="true">
<template #addonAfter> % </template>
</a-input-number>
</a-form-item>
<a-form-item label="比对库设置" :labelCol="labelCol3" :wrapperCol="wrapperCol3" style="margin-left: -10px">
<div style="padding: 5px 0">维普</div>
<div style="display: flex; flex-direction: column">
<a-checkbox v-model:checked="zyInfo.wwcc" :disabled="true" style="margin-left: 8px">
<span class="bled-countenance">维普资源库查重</span><br />
<span class="bled-countenance2">中文科技期刊数据库硕博学位论文库高校特色论文库互联网数据资源/互联网文档资源</span>
</a-checkbox>
<a-checkbox v-model:checked="zyInfo.xncc" :disabled="true" style="margin-left: 8px">
<span class="bled-countenance">学校考试库查重</span><br /><span class="bled-countenance2">历届学生提供的考试库内查重</span>
</a-checkbox>
<a-checkbox v-model:checked="zyInfo.nwcc" :disabled="true" style="margin-left: 8px">
<span class="bled-countenance">本次考试查重</span><br /><span class="bled-countenance2">本次学生提交的考试间查重</span>
</a-checkbox>
</div>
<div style="padding: 5px 0">AIGC</div>
<div>
<a-checkbox v-model:checked="zyInfo.aigccc" style="margin-left: 8px" :disabled="true">
<span class="bled-countenance">AIGC查重</span><br /><span class="bled-countenance2">检测考试是否部分或全部由AI模型生成</span>
</a-checkbox>
</div>
</a-form-item>
</div>
</a-col> </a-col>
</a-row> </a-row>
</a-form> </a-form>
@ -134,23 +140,96 @@ const useForm = Form.useForm;
const emit = defineEmits(['register', 'ok']); const emit = defineEmits(['register', 'ok']);
const dataKhnr = ref<any>([]); const dataKhnr = ref<any>([]);
const formData = reactive<Record<string, any>>({ const formData = reactive<Record<string, any>>({
id: '', id: '',
createTime: '', createTime: '',
jgh: '', jgh: '',
kcmc: '', kcmc: '',
qmzb: '', qmzb: '',
rwbh: '', rwbh: '',
sfsckhcl: '', sfsckhcl: '',
sfsckhclTime: '', sfsckhclTime: '',
skjs: '', skjs: '',
xnxq: '', xnxq: '',
xybh: '', xybh: '',
xymc: '', xymc: '',
zyLeixing: '', zyLeixing: '',
zybh: '', zybh: '',
zylx_dictText: '', zylx_dictText: '',
zymc: '', zymc: '',
}); });
const zyInfo = reactive<Record<string, any>>({
id: '',
createBy: '',
createTime: '',
updateBy: '',
updateTime: '',
title: '',
zyType: '',
content: '',
startTime: '',
endTime: '',
zyStatus: '',
xnxq: '',
wwcc: false,
wwtgl: '',
nwcc: false,
nwtgl: '',
aigccc: false,
aigctgl: '',
xncc: false,
xntgl: '',
score: '',
rwbh: '',
filePath: '',
xkxs: '',
kcnr: '',
pfbz: '',
sturead: '',
sort: '',
xshpkg: '',
xshprsq: '',
zyLeixing: '',
xshpkssj: '',
xshpjssj: '',
sfzzcj: '',
xssfck: '',
hpsfwcone: '',
hpsfwctwo: '',
sfcc: '',
sfsckhcl: '',
sfsckhclTime: '',
sflssj: '',
stuId: '',
stuFilePath: '',
stuPdfPath: '',
wtjnum: '',
ytjnum: '',
wpynum: '',
ypynum: '',
wwxsl: '',
nwxsl: '',
aigcxsl: '',
xnxsl: '',
teano: '',
kcmc: '',
skjs: '',
stuscore: '',
wwsftg: '',
nwsftg: '',
aigcsftg: '',
xnsftg: '',
zzdf: '',
xshpfs: '',
jxfs: '',
dpynum: '',
zgccl: '',
zyzb: '',
scoreFabu: '',
pyContent: '',
pyFilePath: ''
} );
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } }); const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } }); const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
@ -170,6 +249,12 @@ const wrapperCol3 = reactive({
sm: { span: 20 }, sm: { span: 20 },
}); });
const labelCol4 = reactive({
sm: { span: 10 },
});
const wrapperCol4 = reactive({
sm: { span: 12 },
});
const confirmLoading = ref<boolean>(false); const confirmLoading = ref<boolean>(false);
// //
const validatorRules = { const validatorRules = {
@ -249,9 +334,11 @@ function edit(record) {
console.log('😈', record); console.log('😈', record);
nextTick(() => { nextTick(() => {
resetFields(); resetFields();
// defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: record.id } }).then((res) => {
Object.assign(formData, record); console.log('👨‍🌾', res);
handleKcnr(formData.kcnr); //
Object.assign(zyInfo, res);
});
}); });
} }
@ -264,82 +351,9 @@ function lastString(record) {
/** /**
* 提交数据 * 提交数据
*/ */
async function submitForm() { async function submitForm() {
//
await validate();
confirmLoading.value = true;
const isUpdate = ref<boolean>(false);
//
let model = formData;
if (model.id) {
isUpdate.value = true;
}
//
for (let data in model) {
//
if (model[data] instanceof Array) {
let valueType = getValueType(formRef.value.getProps, data);
//
if (valueType === 'string') {
model[data] = model[data].join(',');
}
}
}
if (model.wwcc == '1') {
if (!model.wwtgl) {
createMessage.warning('网络通过率不能为空');
confirmLoading.value = false;
return;
}
}
if (model.nwcc == '1') {
if (!model.nwtgl) {
createMessage.warning('内网通过率不能为空');
confirmLoading.value = false;
return;
}
}
if (model.aigccc == '1') {
if (!model.aigctgl) {
createMessage.warning('AIGC通过率不能为空');
confirmLoading.value = false;
return;
}
}
if (model.xncc == '1') {
if (!model.xntgl) {
createMessage.warning('校内通过率不能为空');
confirmLoading.value = false;
return;
}
}
await saveOrUpdate(model, isUpdate.value)
.then((res) => {
if (res.success) {
createMessage.success(res.message);
emit('ok');
} else {
createMessage.warning(res.message);
}
})
.finally(() => {
confirmLoading.value = false;
});
} }
//
function handleKcnr(kcnr) {
if (kcnr) {
defHttp.get({ url: '/teachingunitcontent/kcTeachingUnitContentOne/getAllList', params: { id: kcnr } }).then((res) => {
console.log('🤦‍♀️', res);
dataKhnr.value = res;
});
} else {
dataKhnr.value = [];
}
}
defineExpose({ defineExpose({
add, add,
@ -349,47 +363,175 @@ defineExpose({
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.antd-modal-form {
min-height: 300px !important; .title {
overflow-y: auto; margin-left: 20px;
padding: 24px 24px 24px 24px; font-size: 16px;
}
.spanSm {
top: -22px;
position: inherit;
padding: 0 0 0 164px;
color: #a9a9a9;
}
.spana {
margin-left: 30px;
line-height: 30px;
}
.spanb {
margin-left: 30px;
line-height: 30px;
}
.spanb-word {
color: #999999;
}
.wrapper-back {
background: #fff;
border-radius: 10px;
margin-top: 10px;
padding-top: 15px;
width: 100%;
}
.wrapper-title {
font-size: 18px;
border-left: 4px solid #1ab394;
font-weight: bold; font-weight: bold;
padding-left: 20px; }
.title2 {
font-size:16px;
font-weight: bold;
}
.ant-divider-horizontal {
display: flex;
clear: both;
width: 100%;
min-width: 100%;
margin: 3px 0 5px;
}
.tishi {
width: 100%;
font-size: 12px;
color: #fd8f02;
margin-top: -4px;
background: #fffbf2;
text-align: center;
padding: 6px 0;
}
.cardClass {
min-height: 200px;
}
.sznrClass {
line-height: 40px;
text-align: center;
}
.ant-card {
box-sizing: border-box;
margin: 0;
padding: 0;
color: rgb(0 0 0);
font-size: 14px;
font-variant: tabular-nums;
line-height: 1.5715;
list-style: none;
font-feature-settings: tnum;
position: relative;
border-radius: 5px;
border: 1px solid #dadada;
background: #f7f7f7;
}
.ant-card-head {
min-height: 48px;
margin-bottom: -1px;
padding: 0 24px;
color: rgba(0, 0, 0, 0.85);
font-weight: 500;
font-size: 16px;
background: transparent;
border-bottom: 1px solid #dadada;
border-radius: 2px 2px 0 0;
}
.ellipsis {
overflow: hidden; /* 确保超出容器的内容被裁剪 */
white-space: nowrap; /* 确保文本在一行内显示 */
text-overflow: ellipsis; /* 超出部分显示省略号 */
}
.ellip-title {
display: flex;
justify-content: space-between;
align-items: flex-end;
margin-top: -10px;
}
.elli-title {
font-size: 16px;
font-weight: bold;
}
.ellip-word {
font-size:12px;
color: #666666;
margin-right: 10px;
}
.ellip-word2{
font-size:12px;
color: #333;
font-weight: bold;
}
.zuanqu:hover {
cursor: pointer;
color: #18a689;
}
.data-suggest {
display: flex;
flex-direction: column;
text-align: center;
width: 25%;
margin-right: 3px;
padding: 8px 3px;
border-radius: 5px;
background: #f7f7f7;
margin-top: 10px;
}
.data-suggest span:nth-child(1) {
font-size: 16px;
font-weight: bold;
}
.data-suggest span:nth-child(2) {
font-size: 12px;
}
.work-img {
width: 100%;
display: flex;
justify-content: center;
margin-top: 80px;
margin-bottom: 30px;
}
.work-img-img {
width: 180px;
height: 139px;
}
.buttonClass {
background: #1ab394;
font-weight: 600;
color: #fff;
border-radius: 3px;
border: none;
}
.mar-right20 {
margin-right: 14px;
}
.button-zhta {
color: #666666;
cursor: pointer;
}
.button-zhta:hover {
cursor: pointer;
color: #18a689;
}
.sear-distance {
padding: 0 10px;
}
.ant-form-item {
box-sizing: border-box;
margin: 10px 0;
padding: 0;
color: rgba(0, 0, 0, 0.85);
font-size: 14px;
font-variant: tabular-nums;
line-height: 1.5715;
list-style: none;
font-feature-settings: tnum;
/* margin-bottom: 24px; */
vertical-align: top;
}
.bled-countenance {
color: #333333;
}
.bled-countenance2 {
color: #999999;
font-size: 12px;
}
.region {
margin: 5px 10px;
padding-bottom: 20px;
background: #fff;
border-radius: 5px;
}
.region-title {
font-size: 16px;
color: #029c88;
padding: 8px 20px;
border-left: 5px solid #029c88;
margin-bottom: 20px; margin-bottom: 20px;
} }
.Check-title {
color: #333;
font-weight: bold;
}
.Check-concent {
color: #999;
}
</style> </style>

View File

@ -86,21 +86,25 @@ export const columns: BasicColumn[] = [
title: '维普资源库', title: '维普资源库',
align: "center", align: "center",
dataIndex: 'wpzyk', dataIndex: 'wpzyk',
slots: {customRender: 'wpzyk'}
}, },
{ {
title: '学校作业库', title: '学校作业库',
align: "center", align: "center",
dataIndex: 'xxzyk', dataIndex: 'xxzyk',
slots: {customRender: 'xxzyk'}
}, },
{ {
title: '本次作业库', title: '本次作业库',
align: "center", align: "center",
dataIndex: 'bczyk', dataIndex: 'bczyk',
slots: {customRender: 'bczyk'}
}, },
{ {
title: 'AIGC', title: 'AIGC',
align: "center", align: "center",
dataIndex: 'aigc', dataIndex: 'aigc',
slots: {customRender: 'aigc'}
}, },
] ]
}, },

View File

@ -7,6 +7,19 @@
<template #action="{ record }"> <template #action="{ record }">
<TableAction :actions="getTableAction(record)" /> <TableAction :actions="getTableAction(record)" />
</template> </template>
<template #wpzyk="{ record }">
<a @click="handleOpen(record.wpccbg)">{{record.wpzyk}}</a>
</template>
<template #xxzyk="{ record }">
<a @click="handleOpen(record.xxccbg)">{{record.xxzyk}}</a>
</template>
<template #bczyk="{ record }">
<a @click="handleOpen(record.bcccbg)">{{record.bczyk}}</a>
</template>
<template #aigc="{ record }">
<a @click="handleOpen(record.aigcccbg)">{{record.aigc}}</a>
</template>
</BasicTable> </BasicTable>
<!-- 表单区域 --> <!-- 表单区域 -->
<ZyHuizongXiangxiModal ref="registerModal" @success="handleSuccess"></ZyHuizongXiangxiModal> <ZyHuizongXiangxiModal ref="registerModal" @success="handleSuccess"></ZyHuizongXiangxiModal>
@ -84,6 +97,9 @@ function handleSuperQuery(params) {
searchQuery(); searchQuery();
} }
function handleOpen(url){
window.open(url,"_blank");
}
/** /**
* 新增事件 * 新增事件
*/ */