修改bug
This commit is contained in:
parent
b8e19e840f
commit
1d50bf8157
|
|
@ -106,16 +106,16 @@ public class SyncZyxx extends BaseSync {
|
|||
|
||||
//保存到胃
|
||||
try {
|
||||
QueryWrapper dqw = new QueryWrapper();
|
||||
zyHuizongService.remove(dqw);
|
||||
// QueryWrapper dqw = new QueryWrapper();
|
||||
// zyHuizongService.remove(dqw);
|
||||
zyHuizongService.syncList(outDataList);
|
||||
|
||||
QueryWrapper dqw1 = new QueryWrapper();
|
||||
zyHuizongXiangxiService.remove(dqw1);
|
||||
// QueryWrapper dqw1 = new QueryWrapper();
|
||||
// zyHuizongXiangxiService.remove(dqw1);
|
||||
zyHuizongXiangxiService.syncList(out1DataList);
|
||||
|
||||
QueryWrapper dqw2 = new QueryWrapper();
|
||||
zyInfoScjlService.remove(dqw2);
|
||||
// QueryWrapper dqw2 = new QueryWrapper();
|
||||
// zyInfoScjlService.remove(dqw2);
|
||||
zyInfoScjlService.syncList(out2DataList);
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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> {
|
||||
|
||||
}
|
||||
|
|
@ -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>
|
||||
|
|
@ -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> {
|
||||
|
||||
}
|
||||
|
|
@ -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 {
|
||||
|
||||
}
|
||||
|
|
@ -5,19 +5,12 @@
|
|||
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||
<a-row :gutter="24">
|
||||
<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">
|
||||
{{jxrwInfo?.value.xn}}{{jxrwInfo?.value.xqmc}}学期《{{jxrwInfo?.value.kcmc}}》课程考核材料
|
||||
</div>
|
||||
<div v-if="jxrwInfo.value">
|
||||
<div>概要信息</div>
|
||||
<a-row>
|
||||
<div style="padding-left: 15px;font-weight: 700;">概要信息</div>
|
||||
<a-row style="line-height: 30px;">
|
||||
<a-col :span="5">
|
||||
<span style="margin-left: 15px;">开课单位</span> :<span>{{jxrwInfo?.value.kkyxmc}}</span>
|
||||
</a-col>
|
||||
|
|
|
|||
|
|
@ -1,106 +1,112 @@
|
|||
<template>
|
||||
<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-col :span="24">
|
||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<div class="wrapper-back">
|
||||
<div class="wrapper-title">基本信息</div>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="作业题目">
|
||||
<span class="spanb-word">{{ formData.zymc }}</span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="dataKhnr.length > 0">
|
||||
<a-form-item label="考察内容">
|
||||
<a-table :columns="columnsKhnr" class="spanb-word" rowKey="id" :data-source="dataKhnr" :pagination="false" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="作业截止时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
|
||||
<span class="spanb-word">{{ formData.endTime }}</span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="作业发布时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
|
||||
<span class="spanb-word">{{ formData.startTime }}</span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<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>
|
||||
<div class="region">
|
||||
<div class="region-title">基本信息</div>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="考试题目" v-bind="validateInfos.title">
|
||||
{{zyInfo.title}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="考试截止时间" v-bind="validateInfos.endTime">
|
||||
{{zyInfo.endTime}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="考试发布时间" v-bind="validateInfos.startTime">
|
||||
{{zyInfo.startTime}}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="考试要求" v-bind="validateInfos.content">
|
||||
<div style="color: #777777" v-html="zyInfo.content"></div>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="是否允许学生查看" >
|
||||
<j-dict-select-tag type="radio" v-model:value="zyInfo.sturead" dictCode="yn" placeholder="请选择评分标准是否允许学生查看" disabled />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col v-if="formData.pyContent || formData.pyFilePath">
|
||||
<div class="wrapper-back">
|
||||
<div class="wrapper-title">批阅信息</div>
|
||||
<a-row>
|
||||
<a-col :span="24" v-if="formData.pyContent">
|
||||
<a-form-item label="批阅内容" layout="inline">
|
||||
<div class="spanb-word" style="margin-top: 5px" v-html="formData.pyContent"></div>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="formData.pyFilePath">
|
||||
<a-form-item label="批阅附件">
|
||||
<span>{{ lastString(formData.pyFilePath) }}</span>
|
||||
<a-button type="primary" style="margin-left: 10px" @click="downLoad(formData.pyFilePath)">下载</a-button>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="评分标准">
|
||||
<div v-html="zyInfo.pfbz"></div>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div class="region">
|
||||
<div class="region-title">学生互评</div>
|
||||
<a-form-item label="学生互评">
|
||||
<div class="tishi" v-if="zyInfo.xshpkg == '1'"
|
||||
>每份考试至少互评三次,每个学生互评五份考试。按时完成互评任务的学生,可额外获得最终分数的2%作为互评奖励;互评考试质量高的学生,可额外获得最终分数的5%作为互评奖励。</div
|
||||
>
|
||||
<j-dict-select-tag
|
||||
type="radio"
|
||||
v-model:value="zyInfo.xshpkg"
|
||||
dictCode="yn"
|
||||
placeholder="请选择是否允许学生查看"
|
||||
style="margin-top: 15px"
|
||||
: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-row>
|
||||
</a-form>
|
||||
|
|
@ -134,23 +140,96 @@ const useForm = Form.useForm;
|
|||
const emit = defineEmits(['register', 'ok']);
|
||||
const dataKhnr = ref<any>([]);
|
||||
const formData = reactive<Record<string, any>>({
|
||||
id: '',
|
||||
createTime: '',
|
||||
jgh: '',
|
||||
kcmc: '',
|
||||
qmzb: '',
|
||||
rwbh: '',
|
||||
sfsckhcl: '',
|
||||
sfsckhclTime: '',
|
||||
skjs: '',
|
||||
xnxq: '',
|
||||
xybh: '',
|
||||
xymc: '',
|
||||
zyLeixing: '',
|
||||
zybh: '',
|
||||
zylx_dictText: '',
|
||||
zymc: '',
|
||||
id: '',
|
||||
createTime: '',
|
||||
jgh: '',
|
||||
kcmc: '',
|
||||
qmzb: '',
|
||||
rwbh: '',
|
||||
sfsckhcl: '',
|
||||
sfsckhclTime: '',
|
||||
skjs: '',
|
||||
xnxq: '',
|
||||
xybh: '',
|
||||
xymc: '',
|
||||
zyLeixing: '',
|
||||
zybh: '',
|
||||
zylx_dictText: '',
|
||||
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 labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||
|
|
@ -170,6 +249,12 @@ const wrapperCol3 = reactive({
|
|||
sm: { span: 20 },
|
||||
});
|
||||
|
||||
const labelCol4 = reactive({
|
||||
sm: { span: 10 },
|
||||
});
|
||||
const wrapperCol4 = reactive({
|
||||
sm: { span: 12 },
|
||||
});
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
//表单验证
|
||||
const validatorRules = {
|
||||
|
|
@ -249,9 +334,11 @@ function edit(record) {
|
|||
console.log('😈', record);
|
||||
nextTick(() => {
|
||||
resetFields();
|
||||
//赋值
|
||||
Object.assign(formData, record);
|
||||
handleKcnr(formData.kcnr);
|
||||
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: record.id } }).then((res) => {
|
||||
console.log('👨🌾', res);
|
||||
//赋值
|
||||
Object.assign(zyInfo, res);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -264,82 +351,9 @@ function lastString(record) {
|
|||
/**
|
||||
* 提交数据
|
||||
*/
|
||||
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;
|
||||
});
|
||||
async function submitForm() {
|
||||
}
|
||||
|
||||
//选择考察内容
|
||||
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({
|
||||
add,
|
||||
|
|
@ -349,47 +363,175 @@ defineExpose({
|
|||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.antd-modal-form {
|
||||
min-height: 300px !important;
|
||||
overflow-y: auto;
|
||||
padding: 24px 24px 24px 24px;
|
||||
}
|
||||
.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;
|
||||
|
||||
.title {
|
||||
margin-left: 20px;
|
||||
font-size: 16px;
|
||||
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;
|
||||
}
|
||||
.Check-title {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
.Check-concent {
|
||||
color: #999;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -86,21 +86,25 @@ export const columns: BasicColumn[] = [
|
|||
title: '维普资源库',
|
||||
align: "center",
|
||||
dataIndex: 'wpzyk',
|
||||
slots: {customRender: 'wpzyk'}
|
||||
},
|
||||
{
|
||||
title: '学校作业库',
|
||||
align: "center",
|
||||
dataIndex: 'xxzyk',
|
||||
slots: {customRender: 'xxzyk'}
|
||||
},
|
||||
{
|
||||
title: '本次作业库',
|
||||
align: "center",
|
||||
dataIndex: 'bczyk',
|
||||
slots: {customRender: 'bczyk'}
|
||||
},
|
||||
{
|
||||
title: 'AIGC',
|
||||
align: "center",
|
||||
dataIndex: 'aigc',
|
||||
slots: {customRender: 'aigc'}
|
||||
},
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -7,6 +7,19 @@
|
|||
<template #action="{ record }">
|
||||
<TableAction :actions="getTableAction(record)" />
|
||||
</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>
|
||||
<!-- 表单区域 -->
|
||||
<ZyHuizongXiangxiModal ref="registerModal" @success="handleSuccess"></ZyHuizongXiangxiModal>
|
||||
|
|
@ -84,6 +97,9 @@ function handleSuperQuery(params) {
|
|||
searchQuery();
|
||||
}
|
||||
|
||||
function handleOpen(url){
|
||||
window.open(url,"_blank");
|
||||
}
|
||||
/**
|
||||
* 新增事件
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue