2024-08-08 22:11:15 +08:00
|
|
|
|
<template>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<div style="background: #fafafa; height: calc(100vh - 225px); overflow-y: auto; margin: 10px 0; padding: 8px 0 0 0">
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<div v-if="showType == 0">
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-row>
|
|
|
|
|
<a-col :span="24"><span class="title">课程作业次数设置</span><a-divider /></a-col>
|
2024-08-01 19:28:42 +08:00
|
|
|
|
<div class="tishi">温馨提示:设置完成后,您也可以在课程教学过程中,随时根据实际情况进行调整。</div>
|
|
|
|
|
<div class="work-img">
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<img class="work-img-img" src="../../../assets/images/homework.png" />
|
2024-08-01 19:28:42 +08:00
|
|
|
|
</div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-col :span="24" style="text-align: center; color: #494b56">
|
2024-08-01 19:28:42 +08:00
|
|
|
|
<div>老师您好,</div>
|
2024-08-19 08:37:20 +08:00
|
|
|
|
<div>请根据课程教学大纲的要求,</div>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<div>设置学生修完本课程需要完成的作业次数及每次作业在总成绩中所占的比例。</div>
|
2024-08-19 08:37:20 +08:00
|
|
|
|
<div style="margin-top: 30px" class="ant-btn buttonClass"><a @click="handleSzzycs(1)">设置作业次数</a></div>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</div>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<div v-if="showType == 1">
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-row>
|
|
|
|
|
<a-col :span="24"><span class="title">课程作业次数设置</span><a-divider /></a-col>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<a-col :span="24" style="margin-top: 10px; height: 50px">
|
|
|
|
|
<a-row style="text-align: center">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-col :span="8"><span>课程作业占比:</span><span>{{ kczyzb }}%;</span></a-col>
|
|
|
|
|
<a-col :span="8"><span>期末考试占比:</span><span>{{ qmkszb }}%;</span></a-col>
|
|
|
|
|
<a-col :span="8"><span>课堂测验占比:</span><span>{{ ktcyzb }}%;</span></a-col>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
</a-row>
|
2024-08-19 08:37:20 +08:00
|
|
|
|
</a-col>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<a-col :span="24" style="padding: 0 0 0 30px">
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-row>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-col :span="18" style="margin-top: 5px">
|
|
|
|
|
<span style="color: #777777">学生修完本课程需要完成的作业次数:</span>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-input-number style="width: 30%" v-model:value="zycs" @change="handleZycs" :max="100"
|
|
|
|
|
:disabled="zycsDisabled" /><span style="margin-left: 5px">次</span>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-col>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-col :span="6" style="text-align: right; padding: 5px 0 0 0">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-button type="primary" @click="handleAddZycs" class="mar-right20">
|
|
|
|
|
<Icon icon="ant-design:file-add-outlined" />新增作业
|
|
|
|
|
</a-button>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</a-col>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-col :span="24" style="margin-top: 10px">
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-table :columns="columns" :data-source="tableData" :pagination="false">
|
|
|
|
|
<template #bodyCell="{ column, record }">
|
|
|
|
|
<template v-if="column.key === 'score'">
|
|
|
|
|
<span>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-input-number v-model:value="record.score" :min="0" :max="100"> <template #addonAfter> %
|
|
|
|
|
</template></a-input-number>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</span>
|
|
|
|
|
</template>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<template v-else-if="column.key === 'lstitle'">
|
|
|
|
|
<span> 第{{ record.sort }}次作业 </span>
|
|
|
|
|
</template>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<template v-else-if="column.key === 'action'">
|
|
|
|
|
<span>
|
|
|
|
|
<a @click="handleDelZycs(record.sort)">删除</a>
|
|
|
|
|
</span>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
</a-table>
|
|
|
|
|
</a-col>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-col :span="24" style="margin-top: 30px; font-size: 18px">
|
|
|
|
|
<div style="text-align: center">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-button class="buttonClass" @click="handleBatchAdd">
|
|
|
|
|
<Icon icon="ant-design:save-outlined" />保存
|
|
|
|
|
</a-button>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-divider type="vertical" />
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-button class="buttonClass" @click="reloadZy">
|
|
|
|
|
<Icon icon="ant-design:arrow-left-outlined" />返回
|
|
|
|
|
</a-button>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</div>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</div>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<div v-if="showType == 2">
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-spin :spinning="confirmLoading">
|
|
|
|
|
<a-row>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<a-col :span="24">
|
2024-10-28 13:42:38 +08:00
|
|
|
|
<div style="text-align: right">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-button style="margin-right: 10px" type="primary" @click="handleYyzy"
|
|
|
|
|
:disabled="editDisabled">引用作业</a-button>
|
2024-10-28 13:42:38 +08:00
|
|
|
|
</div>
|
2024-12-13 15:38:39 +08:00
|
|
|
|
<div>
|
|
|
|
|
<span class="title">编辑作业</span> - <span class="title2">布置作业:设置第{{ zyInfo.sort }}次作业内容及要求</span>
|
|
|
|
|
</div>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<a-divider />
|
|
|
|
|
</a-col>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
|
|
|
|
<a-row>
|
|
|
|
|
<a-col :span="24">
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<div class="region">
|
2024-08-27 15:21:22 +08:00
|
|
|
|
<div class="region-title"><span class="region-title-headline"></span><span>基本信息</span></div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-form-item label="作业题目" v-bind="validateInfos.title">
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<a-input v-model:value="zyInfo.title" placeholder="请输入作业题目" :disabled="editDisabled"></a-input>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
</a-form-item>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-col>
|
2024-08-09 14:08:22 +08:00
|
|
|
|
<!-- <a-col :span="24">
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-form-item label="考察内容" v-bind="validateInfos.kcnr">
|
|
|
|
|
<a-textarea v-model:value="zyInfo.kcnr" placeholder="请输入描述" hidden></a-textarea>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<a-button type="primary" @click="handleKcnr" :disabled="editDisabled">选择</a-button>
|
2024-07-30 20:39:43 +08:00
|
|
|
|
</a-form-item>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24" style="padding: 0 20px" v-if="dataKhnr.length > 0">
|
|
|
|
|
<a-table :columns="columnsKhnr" rowKey="id" :data-source="dataKhnr" :pagination="false" />
|
2024-08-09 14:08:22 +08:00
|
|
|
|
</a-col> -->
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-form-item label="作业截止时间" v-bind="validateInfos.endTime">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-date-picker placeholder="请选择作业截止时间" v-model:value="zyInfo.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%"
|
|
|
|
|
@change="handleEndTime" />
|
2024-07-30 20:39:43 +08:00
|
|
|
|
</a-form-item>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-form-item label="作业发布时间" v-bind="validateInfos.startTime">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-date-picker placeholder="请选择作业发布时间" v-model:value="zyInfo.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: 90%"
|
|
|
|
|
:disabled="editDisabled" />
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<span>
|
|
|
|
|
<a-popover title="温馨提示">
|
|
|
|
|
<template #content>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<p>填写作业发布时间,则作业在指定时间进行发布;如未填写作业发布时间,则布置完成作业后,可手动点击“发布作业”进行作业发布。</p>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
</template>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<Icon
|
|
|
|
|
icon="ant-design:question-circle-outlined"
|
|
|
|
|
:size="20"
|
|
|
|
|
class="jbxx-zyfbsj-ico" />
|
2024-08-08 22:11:15 +08:00
|
|
|
|
</a-popover>
|
|
|
|
|
</span>
|
2024-07-30 20:39:43 +08:00
|
|
|
|
</a-form-item>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-form-item label="作业要求" v-bind="validateInfos.content">
|
2025-02-05 08:44:07 +08:00
|
|
|
|
<!-- <j-editor v-model:value="zyInfo.content" v-if="zyyqShow" @blur="handleZyyqShow(0)" /> -->
|
|
|
|
|
<a-textarea v-model:value="zyInfo.content" v-if="zyyqShow" @blur="handleZyyqShow(0)"></a-textarea>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div style="color: #777777" v-html="zyInfo.content" v-if="!zyyqShow"></div>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<div @click="handleZyyqShow(1)" class="tishi" v-if="!editDisabled">温馨提示:点击可编辑作业要求</div>
|
2024-08-05 10:02:34 +08:00
|
|
|
|
<!-- <div @click="handleZyyqShow(1)"><span style="cursor: pointer; color: #18a689">温馨提示:点击可编辑作业要求</span></div> -->
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-form-item label="参考资料" v-bind="validateInfos.filePath">
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<j-upload v-model:value="zyInfo.filePath" :disabled="editDisabled"></j-upload>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24">
|
2024-08-08 09:47:20 +08:00
|
|
|
|
<a-form-item label="评分标准" layout="inline" v-bind="validateInfos.pfbz">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-form-item label="是否允许学生查看" :labelCol="labelCol2" :wrapperCol="wrapperCol2"
|
|
|
|
|
class="pjbz-sfyxxsck">
|
|
|
|
|
<j-dict-select-tag type="radio" v-model:value="zyInfo.sturead" dictCode="yn"
|
|
|
|
|
placeholder="请选择评分标准是否允许学生查看" :disabled="editDisabled" />
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-form-item>
|
2024-08-08 09:47:20 +08:00
|
|
|
|
<a-form-item label="">
|
2025-02-05 08:44:07 +08:00
|
|
|
|
<!-- <j-editor v-model:value="zyInfo.pfbz" v-if="pfbzShow" @blur="handlePfbzShow(0)" /> -->
|
|
|
|
|
<a-textarea v-model:value="zyInfo.pfbz" v-if="pfbzShow" @blur="handlePfbzShow(0)"></a-textarea>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div v-html="zyInfo.pfbz" v-if="!pfbzShow"></div>
|
2024-08-12 09:14:57 +08:00
|
|
|
|
<div class="tishi" @click="handlePfbzShow(1)" v-if="!editDisabled">温馨提示:点击可编辑评分标准</div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2025-01-15 10:41:58 +08:00
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-form-item label="小组形式提交作业" >
|
|
|
|
|
<a-radio-group v-model:value="zyInfo.xzxstjzy" @change="xztjzyxsFunc(zyInfo.xzxstjzy)" :options="xzxstjzyOptions" :disabled="editDisabled"/>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-form-item label="小组信息" >
|
|
|
|
|
<a-button type="primary" @click="bjxzxxFunc(true)" v-show="!editDisabled" :disabled="zyInfo.xzxstjzy=='N'" >设置小组信息</a-button>
|
|
|
|
|
<a-button type="primary" @click="bjxzxxFunc(false)" v-show="editDisabled" >查看小组信息</a-button>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
</div>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24">
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div class="region">
|
2024-08-27 15:21:22 +08:00
|
|
|
|
<div class="region-title"><span class="region-title-headline"></span><span>学生互评</span></div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-form-item label="学生互评">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<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="editDisabled"
|
|
|
|
|
@change="handleXshpkg" />
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div v-if="zyInfo.xshpkg == '1'">
|
|
|
|
|
<!-- <a-form-item label="设置互评人数" :labelCol="labelCol3" :wrapperCol="wrapperCol3" style="margin-top: 20px">
|
|
|
|
|
<a-input-number v-model:value="zyInfo.xshprsq" placeholder="请设置互评人数" style="width: 60%" :max="100" :min="0">
|
|
|
|
|
<template #addonAfter>人</template>
|
|
|
|
|
</a-input-number>
|
|
|
|
|
</a-form-item> -->
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-form-item label="互评结果使用" :labelCol="labelCol3" :wrapperCol="wrapperCol3" class="sshp-hpjgsy">
|
|
|
|
|
<a-radio-group v-model:value="zyInfo.sfzzcj" style="width: 100%" size="default"
|
|
|
|
|
:disabled="editDisabled">
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<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>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-form-item label="是否允许学生看到互评成绩" :labelCol="labelCol4" :wrapperCol="wrapperCol4"
|
|
|
|
|
class="sshp-sfyxxskdhpcj">
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-radio-group v-model:value="zyInfo.xssfck">
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<a-radio :value="'1'" style="margin-top: 5px">是(匿名)</a-radio>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-radio :value="'0'" style="margin-top: 5px">否</a-radio>
|
|
|
|
|
</a-radio-group>
|
|
|
|
|
<!-- <j-dict-select-tag
|
|
|
|
|
type="radio"
|
|
|
|
|
v-model:value="zyInfo.xshpkg"
|
|
|
|
|
dictCode="yn"
|
|
|
|
|
placeholder="请选择是否允许学生查看"
|
|
|
|
|
style="margin-top: 15px"
|
|
|
|
|
/> -->
|
|
|
|
|
</a-form-item>
|
2024-08-08 09:47:20 +08:00
|
|
|
|
<a-form-item label="互评开始时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2" hidden>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-date-picker placeholder="请选择互评开始时间" v-model:value="zyInfo.xshpkssj"
|
|
|
|
|
: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%" />
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-form-item>
|
2024-08-05 10:02:34 +08:00
|
|
|
|
<a-form-item label="互评结束时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-date-picker placeholder="请选择互评结束时间" v-model:value="zyInfo.xshpjssj"
|
|
|
|
|
: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%" />
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</div>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</div>
|
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<div class="region">
|
2024-08-27 15:21:22 +08:00
|
|
|
|
<div class="region-title"><span class="region-title-headline"></span><span>查重设置</span></div>
|
2024-08-29 13:33:02 +08:00
|
|
|
|
<a-form-item label="是否进行查重" :labelCol="labelCol3" :wrapperCol="wrapperCol3">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<j-dict-select-tag type="radio" v-model:value="zyInfo.sfcc" dictCode="yn" placeholder="请选择是否查重"
|
2025-05-23 08:48:38 +08:00
|
|
|
|
/>
|
2024-08-29 13:33:02 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-form-item label="检测通过率" :labelCol="labelCol3" :wrapperCol="wrapperCol3" class="ccsz-jctgl"
|
|
|
|
|
v-if="zyInfo.sfcc == '1'">
|
|
|
|
|
<a-input-number v-model:value="zyInfo.wwtgl" placeholder="请输入检测通过率" style="width: 50%" :max="100"
|
2025-05-23 08:48:38 +08:00
|
|
|
|
:min="0" >
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<template #addonAfter> % </template>
|
|
|
|
|
</a-input-number>
|
|
|
|
|
</a-form-item>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-form-item label="比对库设置" :labelCol="labelCol3" :wrapperCol="wrapperCol3" class="ccsz-bdksz"
|
|
|
|
|
v-if="zyInfo.sfcc == '1'">
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div style="padding: 5px 0">维普</div>
|
|
|
|
|
<div style="display: flex; flex-direction: column">
|
2025-05-23 08:48:38 +08:00
|
|
|
|
<a-checkbox v-model:checked="zyInfo.wwcc" style="margin-left: 8px">
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<span class="bled-countenance">维普资源库查重</span><br />
|
|
|
|
|
<span class="bled-countenance2">中文科技期刊数据库、硕博学位论文库、高校特色论文库、互联网数据资源/互联网文档资源</span>
|
|
|
|
|
</a-checkbox>
|
2025-05-23 08:48:38 +08:00
|
|
|
|
<a-checkbox v-model:checked="zyInfo.xncc" >
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<span class="bled-countenance">学校作业库查重</span><br /><span
|
|
|
|
|
class="bled-countenance2">历届学生提供的作业库内查重</span>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-checkbox>
|
2025-05-23 08:48:38 +08:00
|
|
|
|
<a-checkbox v-model:checked="zyInfo.nwcc" >
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<span class="bled-countenance">本次作业查重</span><br /><span
|
|
|
|
|
class="bled-countenance2">本次学生提交的作业间查重</span>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-checkbox>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div style="padding: 5px 0">AIGC</div>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<div>
|
2025-05-23 08:48:38 +08:00
|
|
|
|
<a-checkbox v-model:checked="zyInfo.aigccc" style="margin-left: 8px" >
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<span class="bled-countenance">AIGC查重</span><br /><span
|
|
|
|
|
class="bled-countenance2">检测作业是否部分或全部由AI模型生成</span>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-checkbox>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</div>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-col>
|
2024-08-08 09:47:20 +08:00
|
|
|
|
<a-col :span="24" style="text-align: center; margin-top: 10px; margin-bottom: 40px">
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-button type="primary" @click="submitForm">保存</a-button>
|
|
|
|
|
<a-button type="primary" @click="reloadZy" style="margin-left: 15px">返回</a-button>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-col>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</a-row>
|
|
|
|
|
</a-form>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</a-spin>
|
|
|
|
|
</div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div v-show="showType == 3" style="overflow-y: auto">
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-row>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-col :span="24"><span class="title">批阅作业</span> - <span class="title2">作业详情页</span>
|
|
|
|
|
<a-button type="primary" preIcon="ant-design:arrow-left-outlined" @click="reloadZy"
|
|
|
|
|
style="float: right; margin-right: 8px"> 返回</a-button>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<a-popover title="温馨提示">
|
|
|
|
|
<template #content>
|
|
|
|
|
<p>1、非高峰期预计30分钟内返回检测结果,高峰期预计时间会更长,请您耐心等待!</p>
|
|
|
|
|
<p>2、点击互评分数,可查看同学间互评作业详情</p>
|
|
|
|
|
<p>3、点击最高查重率,可分别查看学生“维普作业库查重”、“学校作业库查重”、“本次作业查重”、“AIGC查重”相似率</p>
|
|
|
|
|
<p>4、学生上传的课程作业全部存档</p>
|
|
|
|
|
</template>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<Icon icon="ant-design:question-circle-outlined" :size="30"
|
|
|
|
|
style="float: right; margin-right: 8px; color: #029c88" />
|
2024-08-08 22:11:15 +08:00
|
|
|
|
</a-popover>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-divider /></a-col>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-col :span="24" style="overflow: hidden">
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<!--查询区域-->
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<div class="sear-distance">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-form @keyup.enter.native="searchQueryZyxq" :model="queryParam" :label-col="labelCol"
|
|
|
|
|
:wrapper-col="wrapperCol">
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-row :gutter="24">
|
|
|
|
|
<a-col :lg="12">
|
|
|
|
|
<a-form-item label="学生姓名">
|
|
|
|
|
<j-input placeholder="请输入学生姓名" v-model:value="queryParam.studentName"></j-input>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-col :lg="12">
|
|
|
|
|
<a-form-item label="学生学号">
|
|
|
|
|
<j-input placeholder="请输入学生学号" v-model:value="queryParam.createBy"></j-input>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<a-col :lg="12">
|
|
|
|
|
<a-form-item label="作业状态">
|
|
|
|
|
<!-- <j-input placeholder="请输入学生学号" v-model:value="queryParam.createBy"></j-input> -->
|
|
|
|
|
<a-select v-model:value="queryType" style="width: 100%">
|
|
|
|
|
<a-select-option value="">全部</a-select-option>
|
|
|
|
|
<a-select-option value="1">待提交</a-select-option>
|
|
|
|
|
<a-select-option value="2">已提交</a-select-option>
|
|
|
|
|
<a-select-option value="5">待评阅</a-select-option>
|
|
|
|
|
<a-select-option value="4">已评阅</a-select-option>
|
|
|
|
|
</a-select>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-row>
|
2024-12-13 15:38:39 +08:00
|
|
|
|
<a-row :gutter="[16, 16]">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-col :span="24" :lg="{ span: 16 }">
|
|
|
|
|
<a-button type="primary" :preIcon="isSmallScreen ? '' : 'ant-design:search-outlined'"
|
|
|
|
|
@click="searchQueryZyxq">查询</a-button>
|
|
|
|
|
<a-button type="primary" :preIcon="isSmallScreen ? '' : 'ant-design:reload-outlined'"
|
|
|
|
|
@click="searchReset" style="margin-left: 8px">重置</a-button>
|
|
|
|
|
<a-button type="primary" :preIcon="isSmallScreen ? '' : 'ant-design:export-outlined'"
|
|
|
|
|
@click="onExportXls" style="margin-left: 8px">导出</a-button>
|
|
|
|
|
<a-button type="primary" :preIcon="isSmallScreen ? '' : 'ant-design:export-outlined'"
|
|
|
|
|
@click="batchHandleFabu" style="margin-left: 8px">发布成绩</a-button>
|
2025-04-02 08:33:50 +08:00
|
|
|
|
<!-- <a-button type="primary" preIcon="ant-design:export-outlined" @click="handleZip" style="margin-left: 8px"> 一键下载</a-button> -->
|
2024-12-18 17:24:05 +08:00
|
|
|
|
</a-col>
|
|
|
|
|
<a-col :span="24" :lg="{ span: 8 }">
|
|
|
|
|
<span class="tishi" style="padding: 10px">温馨提示:作业完成后,请及时发布评分</span>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</a-form>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</div>
|
|
|
|
|
<!--引用表格-->
|
|
|
|
|
<BasicTable @register="registerTable" :rowSelection="rowSelection">
|
|
|
|
|
<template #action="{ record }">
|
|
|
|
|
<TableAction :actions="getTableAction(record)" />
|
|
|
|
|
</template>
|
|
|
|
|
<template #zgcclaction="{ record }">
|
|
|
|
|
<div v-if="record.alltgl">
|
|
|
|
|
<span v-if="record.filePath">
|
2024-07-30 20:39:43 +08:00
|
|
|
|
<template v-if="record.zgccl && record.zgccl != '0'">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<span v-if="parseFloat(record.zgccl) <= parseFloat(record.alltgl)" title="通过"
|
|
|
|
|
style="color: #36b395; cursor: pointer" @click="handleViewInfo(record)">
|
2024-08-03 08:57:53 +08:00
|
|
|
|
{{ record.zgccl }}
|
|
|
|
|
</span>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<span v-else title="未通过" style="color: red" @click="handleViewInfo(record)">{{ record.zgccl
|
|
|
|
|
}}</span>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</template>
|
|
|
|
|
<template v-else>查重中</template>
|
|
|
|
|
</span>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<span v-else> </span>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div v-else>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<span></span>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</div>
|
|
|
|
|
</template>
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<template #scoreaction="{ record }">
|
2024-08-12 09:14:57 +08:00
|
|
|
|
<span style="color: #36b395; cursor: pointer" v-if="record.scoreFabu == '1' || !record.filePath">
|
2024-08-08 22:11:15 +08:00
|
|
|
|
{{ record.score }}
|
|
|
|
|
</span>
|
2024-08-12 09:14:57 +08:00
|
|
|
|
<span style="color: #36b395; cursor: pointer" v-if="record.scoreFabu != '1' && record.filePath">
|
2024-08-08 22:11:15 +08:00
|
|
|
|
<a-input v-model:value="record.score" style="width: 90%" @blur="handleChangeScore(record)" />
|
|
|
|
|
</span>
|
|
|
|
|
</template>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<template #xshpfsaction="{ record }">
|
|
|
|
|
<span style="color: #36b395; cursor: pointer" @click="handleXshpfs(record)">
|
|
|
|
|
{{ record.xshpfs }}
|
|
|
|
|
</span>
|
|
|
|
|
</template>
|
2024-07-30 20:39:43 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<template #htmlSlot="{ text }">
|
|
|
|
|
<div v-html="text"></div>
|
|
|
|
|
</template>
|
|
|
|
|
</BasicTable>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</div>
|
2024-07-30 20:39:43 +08:00
|
|
|
|
<div v-if="showType == 4">
|
|
|
|
|
<a-row>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-col :span="24"><span class="title">批阅作业</span> - <span class="title2">作业详情页</span> - <span
|
|
|
|
|
class="title2">查重相似度详情</span>
|
|
|
|
|
<a-button type="primary" @click="handleShowType(3)" style="float: right; margin-right: 8px">
|
|
|
|
|
<Icon icon="ant-design:arrow-left-outlined" />返回
|
|
|
|
|
</a-button>
|
|
|
|
|
<a-divider /></a-col>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-table :columns="columnsCcjg" :data-source="tableCcjgData" :pagination="false">
|
|
|
|
|
<template #bodyCell="{ column, record }">
|
|
|
|
|
<template v-if="column.key === 'action'">
|
|
|
|
|
<span>
|
|
|
|
|
<a @click="handleOpenLwxx(record)">查看</a>
|
|
|
|
|
</span>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
</a-table>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div v-if="showType == 5">
|
|
|
|
|
<a-row>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-col :span="24"><span class="title">批阅作业</span> - <span class="title2">作业详情页</span> - <span
|
|
|
|
|
class="title2">学生互评详情</span>
|
|
|
|
|
<a-button type="primary" @click="handleShowType(3)" style="float: right; margin-right: 8px">
|
|
|
|
|
<Icon icon="ant-design:arrow-left-outlined" />返回
|
|
|
|
|
</a-button>
|
|
|
|
|
<a-divider /></a-col>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-col :span="24">
|
|
|
|
|
<a-table :columns="columnsXshp" :data-source="tableXshpData" :pagination="false"> </a-table>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</div>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<div v-if="showType == 999">
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-row>
|
|
|
|
|
<a-col :span="24"><span class="title">布置作业</span><a-divider /></a-col>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<a-col :span="24" style="text-align: right; margin-top: 5px">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-button type="primary" @click="handleSzzycs(1)">
|
|
|
|
|
<Icon icon="ant-design:edit-outlined" />修改课程作业次数
|
|
|
|
|
</a-button>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-divider type="vertical" />
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-button type="primary" @click="handleAddOne" class="mar-right20">
|
|
|
|
|
<Icon icon="ant-design:file-add-outlined" />新增作业
|
|
|
|
|
</a-button>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</a-col>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-col :span="24">
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<a-row style="padding: 10px">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-col :lg="24" v-for="(item, index) in tableData" style="padding: 0 5px 12px 5px; border-radius: 5px"
|
|
|
|
|
:key="index">
|
|
|
|
|
<a-card :title="'第' + item.sort + '次作业(占比' + item.score + '%)'" v-if="!item.endTime"
|
|
|
|
|
class="cardClass module-bg">
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<template #extra><span class="card-label3"> 待设置</span> </template>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<p class="sznrClass">尚未布置作业题目及具体要求</p>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div style="text-align: right">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a @click="handleEdit(item, false)" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:file-text-outlined" />设置作业内容及要求
|
|
|
|
|
</a>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-divider type="vertical" />
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a @click="handleDelete(item)" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:delete-outlined" />删除
|
|
|
|
|
</a>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</div>
|
|
|
|
|
</a-card>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-card :title="'第' + item.sort + '次作业(占比' + item.score + '%)'"
|
|
|
|
|
v-if="item.endTime && (item.zyStatus == '1' || item.zyStatus == '2')" class="cardClass module-bg">
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<template #extra><span class="card-label">已发布</span> </template>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<div class="ellip-title">
|
2024-08-08 09:47:20 +08:00
|
|
|
|
<span class="ellipsis elli-title" :title="item.title">{{ item.title }}</span>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<a class="button-zhta" @click="openXkrs(item)">{{ item.xkxs }}人选课</a>
|
|
|
|
|
</div>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<div style="width: 100%; display: flex">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<div class="data-suggest zuanqu" @click="handleZyxx(item, '1')"><span>{{ item.wtjnum
|
|
|
|
|
}}人</span><span>待提交</span></div>
|
2024-08-08 09:47:20 +08:00
|
|
|
|
<!-- <div class="data-suggest zuanqu" @click="handleZyxx(item, '2')"
|
2024-08-03 08:57:53 +08:00
|
|
|
|
><span>{{ item.ytjnum }}人</span><span>已提交</span></div
|
2024-08-08 09:47:20 +08:00
|
|
|
|
> -->
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<div class="data-suggest zuanqu" @click="handleZyxx(item, '5')"><span>{{ item.dpynum
|
|
|
|
|
}}人</span><span>待评阅</span></div>
|
|
|
|
|
<div class="data-suggest zuanqu" @click="handleZyxx(item, '4')"><span>{{ item.ypynum
|
|
|
|
|
}}人</span><span>已评阅</span></div>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
</div>
|
2024-12-13 15:38:39 +08:00
|
|
|
|
<div>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<div style="width: 100%; display: flex; margin-top: 20px">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<div class="ellip-word flex"><span class="ellip-word2">作业发布时间:</span>{{ item.startTime ?
|
|
|
|
|
dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}</div>
|
|
|
|
|
<div class="ellip-word flex"><span class="ellip-word2">作业截止时间:</span>{{
|
|
|
|
|
dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</div>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div style="text-align: right; margin-top: 20px; margin-bottom: -10px; width: 100%">
|
2024-10-08 09:42:28 +08:00
|
|
|
|
<!-- <a @click="handleWxtx(item)" class="home-status"><Icon icon="ant-design:wechat-outlined" />微信提醒</a>
|
|
|
|
|
<a-divider type="vertical" /> -->
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a @click="handleEdit(item, true)" v-if="item.ytjnum > 0" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:form-outlined" />编辑作业
|
|
|
|
|
</a>
|
|
|
|
|
<a-divider type="vertical" v-if="item.ytjnum > 0" />
|
|
|
|
|
<a @click="handleFenxiang(item)" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:share-alt-outlined" />分享
|
|
|
|
|
</a>
|
2025-01-15 10:41:58 +08:00
|
|
|
|
<a-divider type="vertical"/>
|
|
|
|
|
<a @click="ckxzxxFunc(item)" v-if="item.dpynum == 0 && item.ypynum == 0" class="home-status">
|
|
|
|
|
<Icon icon="fluent:people-team-16-regular" />查看分组
|
|
|
|
|
</a>
|
2024-11-07 08:58:18 +08:00
|
|
|
|
<a-divider type="vertical" />
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a @click="handleChehui(item)" v-if="item.dpynum == 0 && item.ypynum == 0" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:import-outlined" />撤回作业
|
|
|
|
|
</a>
|
|
|
|
|
<a-divider type="vertical" v-if="item.dpynum == 0 && item.ypynum == 0" />
|
|
|
|
|
<a @click="handleZyxx(item, '')" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:file-done-outlined" />批阅作业
|
|
|
|
|
</a>
|
|
|
|
|
<a-divider type="vertical" v-if="item.dpynum == 0 && item.ypynum == 0" />
|
|
|
|
|
<a @click="handleDelete(item)" v-if="item.dpynum == 0 && item.ypynum == 0" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:delete-outlined" />删除
|
|
|
|
|
</a>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
</div>
|
2024-08-09 13:58:28 +08:00
|
|
|
|
</div>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
</a-card>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-card :title="'第' + item.sort + '次作业(占比' + item.score + '%)'"
|
|
|
|
|
v-if="item.endTime && item.zyStatus == '0'" class="cardClass" bodyStyle="background: #fff;">
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<template #extra><span class="card-label2">待发布</span> </template>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<div class="ellip-title">
|
2024-08-08 09:47:20 +08:00
|
|
|
|
<span class="ellipsis elli-title" :title="item.title">{{ item.title }}</span>
|
2024-08-02 19:10:36 +08:00
|
|
|
|
<a class="button-zhta" @click="openXkrs(item)">{{ item.xkxs }}人选课</a>
|
|
|
|
|
</div>
|
2024-08-29 09:10:49 +08:00
|
|
|
|
<div style="width: 100%">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<div class="ellip-word flex"><span class="ellip-word2">作业发布时间:</span>{{ item.startTime ?
|
|
|
|
|
dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}</div>
|
|
|
|
|
<div class="ellip-word flex"><span class="ellip-word2">作业截止时间:</span>{{
|
|
|
|
|
dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
</div>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<div style="height: 45px"> </div>
|
2024-08-03 08:57:53 +08:00
|
|
|
|
<div style="text-align: right; margin-top: 30px">
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a @click="handleEdit(item, false)" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:form-outlined" />编辑作业
|
|
|
|
|
</a>
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<a-divider type="vertical" />
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a @click="handleFenxiang(item)" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:share-alt-outlined" />分享
|
|
|
|
|
</a>
|
2024-11-11 18:33:09 +08:00
|
|
|
|
<a-divider type="vertical" />
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a @click="handleFabu(item)" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:upload-outlined" />发布作业
|
|
|
|
|
</a>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
<a-divider type="vertical" />
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a @click="handleDelete(item)" class="home-status">
|
|
|
|
|
<Icon icon="ant-design:delete-outlined" />删除
|
|
|
|
|
</a>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</div>
|
|
|
|
|
</a-card>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
</div>
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
<SzybStudentModal ref="SzybStudentModalpage" @success="handleSuccess"></SzybStudentModal>
|
|
|
|
|
<ZyInfoStudentScoreModal ref="registerScoreModal" @success="handleSuccess"></ZyInfoStudentScoreModal>
|
2024-08-29 13:33:02 +08:00
|
|
|
|
<ZyInfoStudentPiyueModal ref="registerPiyueModal" @success="handleSuccess"></ZyInfoStudentPiyueModal>
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<KcTeachingUnitContentOneListModal ref="registerZcjcModal" @success="handleCheckZcjcSuccess">
|
|
|
|
|
</KcTeachingUnitContentOneListModal>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
|
|
|
|
<ZyInfoDetailModal ref="registerDetialModal" @success="handleSuccess"></ZyInfoDetailModal>
|
|
|
|
|
<ZyInfoModal ref="registerModal" @success="handleSuccess"></ZyInfoModal>
|
|
|
|
|
<ZyInfoEditModal ref="registerEditModal" @success="handleSuccess"></ZyInfoEditModal>
|
|
|
|
|
<ZyInfoStudentListModal ref="ZyInfoStudentListModalPage" @success="handleSuccess"></ZyInfoStudentListModal>
|
|
|
|
|
<ZyInfoStudentModal ref="ZyInfoStudentModalPage"></ZyInfoStudentModal>
|
|
|
|
|
<XxhbbksListModal ref="XxhbbksListModalPage"></XxhbbksListModal>
|
2024-10-23 19:46:08 +08:00
|
|
|
|
<YyzyListModal ref="YyzyListModalPage" @success="handleCallYinyong"></YyzyListModal>
|
2024-11-07 08:58:18 +08:00
|
|
|
|
<ZyCyFenxiangListModal ref="ZyCyFenxiangListModalpage"></ZyCyFenxiangListModal>
|
2025-01-15 10:41:58 +08:00
|
|
|
|
<Xzxx ref="XzxxRef" :studentsQP="queryParam" @saveSuccess="xzxxSaveSuccess"></Xzxx>
|
2025-03-17 09:39:55 +08:00
|
|
|
|
<ZyInfoBhModal ref="bohuiRef" @success="handleSuccess"></ZyInfoBhModal>
|
2024-09-26 08:59:02 +08:00
|
|
|
|
|
2024-12-18 17:24:05 +08:00
|
|
|
|
<a-modal v-model:visible="imgvisible" title="图片预览" width="800px" :cancelText="`关闭`"
|
|
|
|
|
:okButtonProps="{ class: { 'jee-hidden': true } }">
|
2024-10-23 19:46:08 +08:00
|
|
|
|
<div style="padding: 10px 20px">
|
2024-10-11 17:12:06 +08:00
|
|
|
|
<a-button type="primary" @click="rotateImage">顺时针旋转</a-button>
|
2024-10-23 19:46:08 +08:00
|
|
|
|
<a-button type="primary" @click="rotateImage2" style="margin-left: 20px">逆时针旋转</a-button>
|
2024-10-08 20:49:49 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="image-container">
|
2024-10-23 19:46:08 +08:00
|
|
|
|
<img :src="ylimgurl" :style="{ transform: 'rotate(' + rotationAngle + 'deg)' }" class="rotated-image" />
|
2024-09-26 08:59:02 +08:00
|
|
|
|
</div>
|
|
|
|
|
</a-modal>
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script lang="ts" name="zyInfo-zyInfo" setup>
|
2024-12-13 15:38:39 +08:00
|
|
|
|
import { ref, reactive, onMounted, unref , onUnmounted, watchEffect} from 'vue';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
import { list, deleteOne } from './ZyInfo.api';
|
|
|
|
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
|
|
|
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
2025-01-15 10:41:58 +08:00
|
|
|
|
import { Input, Popover, Pagination, Empty, message } from 'ant-design-vue';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
import { defHttp } from '/@/utils/http/axios';
|
|
|
|
|
import { useMessage } from '/@/hooks/web/useMessage';
|
|
|
|
|
import { useRouter } from 'vue-router';
|
|
|
|
|
import { JInput } from '/@/components/Form';
|
|
|
|
|
import { Form } from 'ant-design-vue';
|
|
|
|
|
import { saveOrUpdate } from '/@/views/zy/zyInfo/ZyInfo.api';
|
|
|
|
|
import { getValueType } from '/@/utils';
|
|
|
|
|
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
2025-02-05 08:44:07 +08:00
|
|
|
|
import JEditor from '/@/components/Form/src/jeecg/components/JEditor3.vue';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
import dayjs, { Dayjs } from 'dayjs';
|
|
|
|
|
import { useListPage } from '/@/hooks/system/useListPage';
|
|
|
|
|
import { newcolumns } from '/@/views/zy/zyInfoStudent/ZyInfoStudent.data';
|
2024-10-23 19:46:08 +08:00
|
|
|
|
import { getList2, getExportUrl, batchFabu,batchFabu2, batchKhcl } from '/@/views/zy/zyInfoStudent/ZyInfoStudent.api';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
import { downloadFile } from '/@/utils/common/renderUtils';
|
|
|
|
|
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
|
|
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
2024-08-03 08:57:53 +08:00
|
|
|
|
import { openByUrl } from '/@/utils/file/download';
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
import SzybStudentModal from '/@/views/zy/zyInfoStudent/components/SzybStudentModal.vue';
|
|
|
|
|
import ZyInfoStudentScoreModal from '/@/views/zy/zyInfoStudent/components/ZyInfoStudentScoreModal.vue';
|
2024-08-29 13:33:02 +08:00
|
|
|
|
import ZyInfoStudentPiyueModal from '/@/views/zy/zyInfoStudent/components/ZyInfoStudentPiyueModal.vue';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
import KcTeachingUnitContentOneListModal from '/@/views/zy/zyInfo/zyCheckZcjc/KcTeachingUnitContentOneListModal.vue';
|
|
|
|
|
|
|
|
|
|
import ZyInfoDetailModal from './components/ZyInfoDetailModal.vue';
|
|
|
|
|
import ZyInfoModal from './components/ZyInfoModal.vue';
|
|
|
|
|
import ZyInfoStudentListModal from '/@/views/zy/zyInfoStudent/ZyInfoStudentListModal.vue';
|
|
|
|
|
import ZyInfoStudentModal from '/@/views/zy/zyInfoStudent/components/ZyInfoStudentModal.vue';
|
|
|
|
|
import XxhbbksListModal from '/@/views/kc/xxhbbks/XxhbbksListModal.vue';
|
|
|
|
|
import ZyInfoEditModal from './components/ZyInfoEditModal.vue';
|
2024-10-23 19:46:08 +08:00
|
|
|
|
import YyzyListModal from '/@/views/zy/zyInfo/YyzyListModal.vue';
|
2024-11-07 08:58:18 +08:00
|
|
|
|
import ZyCyFenxiangListModal from '/@/views/zy/zyCyFenxiang/ZyCyFenxiangListModal.vue';
|
2025-03-17 09:39:55 +08:00
|
|
|
|
import ZyInfoBhModal from '/@/views/zy/zyInfo/components/ZyInfoBhModal.vue';
|
2025-01-15 10:41:58 +08:00
|
|
|
|
import Xzxx from './components/Xzxx.vue';
|
2024-09-26 08:59:02 +08:00
|
|
|
|
import { encryptByBase64 } from '/@/utils/cipher';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
|
|
|
|
|
const globSetting = useGlobSetting();
|
|
|
|
|
const baseApiUrl = globSetting.domainUrl;
|
|
|
|
|
//当前路由信息
|
|
|
|
|
const { currentRoute } = useRouter();
|
|
|
|
|
const { query } = unref(currentRoute);
|
|
|
|
|
const { rwbh, xqxn, type, teano } = query; //获取传递参数
|
|
|
|
|
const APagination = Pagination;
|
|
|
|
|
const { createConfirm, createMessage } = useMessage();
|
2024-09-26 08:59:02 +08:00
|
|
|
|
const queryParam = ref<any>({ rwbh });
|
2024-07-27 16:12:11 +08:00
|
|
|
|
const queryParamZy = ref<any>({});
|
|
|
|
|
const registerModal = ref();
|
|
|
|
|
const current = ref<number>(0);
|
|
|
|
|
const total = ref<number>(0);
|
|
|
|
|
const pageNo = ref<number>(0);
|
|
|
|
|
const pageSize = ref<number>(100);
|
|
|
|
|
const tableData = ref<any>([]);
|
|
|
|
|
const showType = ref<number>(0);
|
|
|
|
|
const zycs = ref<number>(0);
|
2024-08-19 08:37:20 +08:00
|
|
|
|
const otherKszb = ref<number>(0);
|
2024-08-29 09:10:49 +08:00
|
|
|
|
const kczyzb = ref<number>(0);
|
|
|
|
|
const qmkszb = ref<number>(0);
|
|
|
|
|
const ktcyzb = ref<number>(0);
|
|
|
|
|
|
2024-08-12 16:03:32 +08:00
|
|
|
|
const zycsDisabled = ref<boolean>(false);
|
2025-01-15 10:41:58 +08:00
|
|
|
|
const zyInfo = ref<any>({xzxstjzy:'N'});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
const formRef = ref();
|
|
|
|
|
const confirmLoading = ref<boolean>(false);
|
|
|
|
|
const zyyqShow = ref<boolean>(false);
|
|
|
|
|
const pfbzShow = ref<boolean>(false);
|
2024-08-29 13:33:02 +08:00
|
|
|
|
const sfccShow = ref<boolean>(false);
|
2024-07-27 16:12:11 +08:00
|
|
|
|
const editDisabled = ref<boolean>(false);
|
2024-09-26 08:59:02 +08:00
|
|
|
|
const imgvisible = ref<boolean>(false);
|
2024-07-27 16:12:11 +08:00
|
|
|
|
const queryType = ref<string>('');
|
|
|
|
|
|
|
|
|
|
const dataKhnr = ref<any>([]);
|
|
|
|
|
const tableCcjgData = ref<any>([]);
|
2024-08-03 08:57:53 +08:00
|
|
|
|
const tableXshpData = ref<any>([]);
|
2024-07-27 16:12:11 +08:00
|
|
|
|
const rowSelectionKhnr = ref<any>([]);
|
2024-09-26 08:59:02 +08:00
|
|
|
|
const ylimgurl = ref<any>('');
|
2024-10-08 20:49:49 +08:00
|
|
|
|
const rotationAngle = ref(0);
|
2024-07-27 16:12:11 +08:00
|
|
|
|
|
|
|
|
|
const SzybStudentModalpage = ref();
|
|
|
|
|
const registerScoreModal = ref();
|
|
|
|
|
const registerZcjcModal = ref();
|
|
|
|
|
|
|
|
|
|
const ZyInfoStudentListModalPage = ref();
|
|
|
|
|
const ZyInfoStudentModalPage = ref();
|
|
|
|
|
const XxhbbksListModalPage = ref();
|
|
|
|
|
const registerEditModal = ref();
|
|
|
|
|
const registerDetialModal = ref();
|
2024-08-29 13:33:02 +08:00
|
|
|
|
const registerPiyueModal = ref();
|
2024-10-23 19:46:08 +08:00
|
|
|
|
const YyzyListModalPage = ref();
|
2024-11-07 08:58:18 +08:00
|
|
|
|
const ZyCyFenxiangListModalpage = ref();
|
2025-01-15 10:41:58 +08:00
|
|
|
|
const XzxxRef = ref()
|
2025-03-17 09:39:55 +08:00
|
|
|
|
const bohuiRef = ref()
|
2024-08-03 08:57:53 +08:00
|
|
|
|
const pdfUrl = ref('/downPath/ylhpsf.pdf');
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//注册table数据
|
|
|
|
|
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
|
|
|
|
tableProps: {
|
2024-09-20 08:34:10 +08:00
|
|
|
|
api: getList2,
|
2024-07-27 16:12:11 +08:00
|
|
|
|
columns: newcolumns,
|
|
|
|
|
canResize: false,
|
|
|
|
|
useSearchForm: false,
|
2024-08-03 08:57:53 +08:00
|
|
|
|
pagination: {
|
|
|
|
|
current: 1,
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
},
|
2024-07-27 16:12:11 +08:00
|
|
|
|
actionColumn: {
|
2024-08-29 13:33:02 +08:00
|
|
|
|
width: '200px',
|
2024-08-03 08:57:53 +08:00
|
|
|
|
fixed: 'right',
|
2024-07-27 16:12:11 +08:00
|
|
|
|
},
|
|
|
|
|
showTableSetting: true,
|
|
|
|
|
defSort: {
|
|
|
|
|
field: 'name',
|
|
|
|
|
order: 'ascend',
|
|
|
|
|
},
|
|
|
|
|
beforeFetch: (params) => {
|
|
|
|
|
// params.column = 'publishTime',params.order = 'desc';//新生成的默认不带排序
|
|
|
|
|
return Object.assign(params, queryParam.value);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
exportConfig: {
|
|
|
|
|
name: '学生作业信息',
|
|
|
|
|
url: getExportUrl,
|
|
|
|
|
params: () => {
|
|
|
|
|
return Object.assign({}, queryParam.value);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { rowSelection, selectedRowKeys }] =
|
|
|
|
|
tableContext;
|
|
|
|
|
//设置作业删除功能
|
|
|
|
|
const disabledDate = (current: Dayjs) => {
|
|
|
|
|
return current && current < dayjs().subtract(1, 'days').endOf('day');
|
|
|
|
|
};
|
|
|
|
|
const useForm = Form.useForm;
|
2025-01-15 10:41:58 +08:00
|
|
|
|
const xzxstjzyOptions = ref([
|
|
|
|
|
{ label: '关闭', value: 'N' },
|
|
|
|
|
{ label: '开启', value: 'Y' },
|
|
|
|
|
])
|
2025-04-02 08:33:50 +08:00
|
|
|
|
|
|
|
|
|
//一键下载
|
|
|
|
|
function handleZip(){
|
|
|
|
|
defHttp.get({url:'/zyInfoStudent/zyInfoStudent/downStudentZip',params:{mainId:zyInfo.value.id}}).then(res=>{
|
|
|
|
|
console.log(res);
|
|
|
|
|
if(res.status=="1"){
|
|
|
|
|
downloadFile(res.downPath);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-23 19:46:08 +08:00
|
|
|
|
//引用作业
|
|
|
|
|
function handleYyzy() {
|
|
|
|
|
var params = { xqxn, rwbh };
|
|
|
|
|
YyzyListModalPage.value.disableSubmit = true;
|
|
|
|
|
YyzyListModalPage.value.init(params);
|
|
|
|
|
}
|
|
|
|
|
//引用作业回调
|
|
|
|
|
function handleCallYinyong(record) {
|
|
|
|
|
console.log('👯♂️', record);
|
|
|
|
|
var zysort = zyInfo.value.sort; //防止顺序错误
|
|
|
|
|
var zyid = zyInfo.value.id; //替换原来的id,防止新增
|
2024-11-11 18:33:09 +08:00
|
|
|
|
var createBy = zyInfo.value.createBy;//替换原来的id,防止新增
|
|
|
|
|
var rwbh = zyInfo.value.rwbh;//替换原来的id,防止新增
|
2024-10-23 19:46:08 +08:00
|
|
|
|
record.id = zyid;
|
|
|
|
|
record.sort = zysort;
|
|
|
|
|
record.zyLeixing = '0'; //作业类型,课程作业
|
2025-01-15 10:41:58 +08:00
|
|
|
|
setZyInfo(record)
|
2024-11-11 18:33:09 +08:00
|
|
|
|
zyInfo.value.createBy = createBy
|
|
|
|
|
zyInfo.value.rwbh = rwbh
|
|
|
|
|
zyInfo.value.zyStatus = "0"
|
2024-10-23 19:46:08 +08:00
|
|
|
|
console.log('😠', zyInfo);
|
|
|
|
|
}
|
2024-11-07 08:58:18 +08:00
|
|
|
|
//分享给他人
|
|
|
|
|
function handleFenxiang(record){
|
|
|
|
|
// console.log(record);
|
|
|
|
|
record.type="0";
|
|
|
|
|
ZyCyFenxiangListModalpage.value.init(record)
|
|
|
|
|
ZyCyFenxiangListModalpage.value.disableSubmit = true;
|
|
|
|
|
// defHttp.get({url:'/zyInfoStudent/zyInfoStudent/cxccByZyId'}).then(res=>{
|
|
|
|
|
// console.log("🚀 ~ defHttp.get ~ res:", res)
|
|
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
}
|
2024-10-23 19:46:08 +08:00
|
|
|
|
|
|
|
|
|
//选择是否允许学生查看
|
2024-07-30 20:39:43 +08:00
|
|
|
|
function handleXshpkg(record) {
|
|
|
|
|
console.log('👨👧👦', record);
|
|
|
|
|
}
|
2024-10-23 19:46:08 +08:00
|
|
|
|
//选择作业截止时间
|
2024-08-08 09:47:20 +08:00
|
|
|
|
function handleEndTime(record) {
|
|
|
|
|
console.log('👽', record);
|
|
|
|
|
zyInfo.value.xshpkssj = record;
|
2024-08-03 08:57:53 +08:00
|
|
|
|
}
|
2024-10-23 19:46:08 +08:00
|
|
|
|
//微信提醒
|
2024-10-08 09:42:28 +08:00
|
|
|
|
function handleWxtx(record) {
|
|
|
|
|
defHttp.post({ url: '/zyInfo/zyInfo/sendWxtx', params: { id: record.id } }).then((res) => {
|
|
|
|
|
console.log('👣', res);
|
|
|
|
|
});
|
|
|
|
|
createMessage.success('发送成功');
|
|
|
|
|
}
|
2024-10-23 19:46:08 +08:00
|
|
|
|
//图片旋转 顺时针旋转
|
2024-10-08 20:49:49 +08:00
|
|
|
|
function rotateImage() {
|
|
|
|
|
rotationAngle.value += 90; // 每次点击旋转90度
|
|
|
|
|
}
|
2024-10-23 19:46:08 +08:00
|
|
|
|
//图片旋转 逆时针旋转
|
2024-10-08 20:49:49 +08:00
|
|
|
|
function rotateImage2() {
|
|
|
|
|
rotationAngle.value -= 90; // 每次点击旋转90度
|
|
|
|
|
}
|
2024-10-23 19:46:08 +08:00
|
|
|
|
//成绩百分比
|
2024-09-26 08:59:02 +08:00
|
|
|
|
function handleJscjbfb() {
|
2024-08-29 09:10:49 +08:00
|
|
|
|
var list = tableData.value;
|
2024-09-26 08:59:02 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
var cjbfb = qmkszb.value; //成绩百分比
|
|
|
|
|
var cjbfb2 = kczyzb.value; //成绩百分比
|
|
|
|
|
var zcj = 0;
|
|
|
|
|
var score22 = 0;
|
|
|
|
|
for (var i = 0; i < list.length; i++) {
|
|
|
|
|
console.log('🥵', list);
|
|
|
|
|
var score = list[i].score;
|
|
|
|
|
if (score == null || score + '' == '') {
|
|
|
|
|
createMessage.error('第' + (i + 1) + '次作业总成绩的百分比不能为空!');
|
|
|
|
|
break;
|
|
|
|
|
}
|
2024-09-26 08:59:02 +08:00
|
|
|
|
score22 = parseInt(score22) + parseInt(score);
|
2024-08-29 09:10:49 +08:00
|
|
|
|
if (score < 0 || score > 100) {
|
|
|
|
|
createMessage.error('作业成绩百分比必须在0-100之间!');
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (score22 > 100) {
|
|
|
|
|
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-09-26 08:59:02 +08:00
|
|
|
|
zcj = parseInt(score22) + parseInt(cjbfb) + parseInt(cjbfb2);
|
2024-08-29 09:10:49 +08:00
|
|
|
|
if (zcj > 100) {
|
|
|
|
|
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//获取查重结果
|
2024-07-30 20:39:43 +08:00
|
|
|
|
function handleViewInfo(record) {
|
2024-07-27 16:12:11 +08:00
|
|
|
|
defHttp.get({ url: '/zyCcjg/zyCcjg/ccjglist', params: { zyStuId: record.id } }).then((res) => {
|
|
|
|
|
console.log('🤦♀️', res);
|
|
|
|
|
tableCcjgData.value = res;
|
|
|
|
|
});
|
|
|
|
|
handleShowType(4);
|
|
|
|
|
}
|
2024-08-08 22:11:15 +08:00
|
|
|
|
//教师修改作业分数
|
|
|
|
|
function handleChangeScore(record) {
|
|
|
|
|
console.log('👯', record);
|
|
|
|
|
var score = record.score;
|
|
|
|
|
console.log('👝', score);
|
|
|
|
|
console.log('👝', isNaN(score));
|
|
|
|
|
if (isNaN(score)) {
|
|
|
|
|
createMessage.error('请输入正确的评分1');
|
|
|
|
|
return;
|
|
|
|
|
} else if (parseInt(score) > 100 || parseInt(score) < 0) {
|
|
|
|
|
createMessage.error('请输入正确的评分2');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/editFabu', params: { id: record.id, score: record.score } }).then((res) => {
|
|
|
|
|
console.log('😮', res);
|
|
|
|
|
handleSuccess();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
//学生互评详细
|
|
|
|
|
function handleXshpfs(record) {
|
|
|
|
|
defHttp.get({ url: '/zyInfoStudentHp/zyInfoStudentHp/list', params: { zyStuId: record.id, pageSize: -1 } }).then((res) => {
|
|
|
|
|
console.log('🤦♀️', res);
|
|
|
|
|
tableXshpData.value = res.records;
|
|
|
|
|
console.log('😒', res.records);
|
|
|
|
|
console.log('👨🦰', tableXshpData.value);
|
|
|
|
|
});
|
|
|
|
|
handleShowType(5);
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//产看论文报告
|
2024-07-30 20:39:43 +08:00
|
|
|
|
function handleOpenLwxx(record) {
|
|
|
|
|
window.open(record.paperviewurl, '_blank');
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//选择章次节次后的回调
|
|
|
|
|
function handleCheckZcjcSuccess(record) {
|
|
|
|
|
console.log('🙅♂️', record);
|
|
|
|
|
console.log('🙅♂️', record[0]);
|
2024-07-30 20:39:43 +08:00
|
|
|
|
var kcnr = '';
|
|
|
|
|
kcnr = kcnr ? kcnr : '';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
for (var i = 0; i < record.length; i++) {
|
|
|
|
|
kcnr = kcnr + record[i] + ',';
|
|
|
|
|
}
|
|
|
|
|
if (kcnr.indexOf(',') > -1) {
|
|
|
|
|
kcnr = kcnr.substring(0, kcnr.length - 1);
|
|
|
|
|
}
|
|
|
|
|
zyInfo.value.kcnr = kcnr;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
console.log('💑', kcnr);
|
2024-07-30 20:39:43 +08:00
|
|
|
|
if (kcnr) {
|
2024-07-27 16:12:11 +08:00
|
|
|
|
defHttp.get({ url: '/teachingunitcontent/kcTeachingUnitContentOne/getAllList', params: { id: kcnr } }).then((res) => {
|
|
|
|
|
console.log('🤦♀️', res);
|
|
|
|
|
dataKhnr.value = res;
|
|
|
|
|
});
|
2024-07-30 20:39:43 +08:00
|
|
|
|
} else {
|
2024-07-27 16:12:11 +08:00
|
|
|
|
dataKhnr.value = [];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//选择考察内容
|
|
|
|
|
function handleKcnr() {
|
2024-07-30 20:39:43 +08:00
|
|
|
|
registerZcjcModal.value.disableSubmit = false;
|
2024-07-27 16:12:11 +08:00
|
|
|
|
registerZcjcModal.value.init({ rwbh, xnxq: xqxn, createBy: teano });
|
|
|
|
|
// defHttp.get({ url: '/teachingunitcontent/kcTeachingUnitContentOne/getAllList', params: { rwbh, xnxq: xqxn, createBy: teano } }).then((res) => {
|
|
|
|
|
// console.log('🤦♀️', res);
|
|
|
|
|
// dataKhnr.value = res;
|
|
|
|
|
// });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 作业详情查询
|
|
|
|
|
*/
|
|
|
|
|
function searchQueryZyxq() {
|
|
|
|
|
selectedRowKeys.value = [];
|
2024-07-30 20:39:43 +08:00
|
|
|
|
|
2024-09-23 13:31:31 +08:00
|
|
|
|
// queryParam.value.mainId = zyInfo.value.id;
|
2024-07-30 20:39:43 +08:00
|
|
|
|
queryParam.value.queryType = queryType.value;
|
2025-01-15 10:41:58 +08:00
|
|
|
|
console.log('queryParam.value',queryParam.value)
|
2024-07-27 16:12:11 +08:00
|
|
|
|
reload();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//新增一次作业
|
|
|
|
|
function handleAddOne() {
|
2024-08-29 09:10:49 +08:00
|
|
|
|
defHttp.post({ url: '/zyInfo/zyInfo/addOne', params: { rwbh, xnxq: xqxn, teano, zyLeixing: '0' } }).then((res) => {
|
2024-07-30 20:39:43 +08:00
|
|
|
|
handleSuccess2();
|
2024-07-24 22:34:15 +08:00
|
|
|
|
});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//撤回发布
|
|
|
|
|
function handleNoScoreFabu(record: Recordable) {
|
2024-10-12 13:33:36 +08:00
|
|
|
|
createConfirm({
|
|
|
|
|
iconType: 'warning',
|
|
|
|
|
title: '撤回发布',
|
|
|
|
|
content: '<span style="color:red;font-size:16px">您已面向学生发布,是否确定撤回评分</span>',
|
|
|
|
|
okText: '确认',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
onOk: () => {
|
|
|
|
|
defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/editFabu', params: { id: record.id, scoreFabu: '0' } }).then((res) => {
|
|
|
|
|
handleSuccess();
|
|
|
|
|
});
|
2024-10-23 19:46:08 +08:00
|
|
|
|
},
|
2024-07-27 16:12:11 +08:00
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//设置样本
|
|
|
|
|
function handleSzyb(record: Recordable) {
|
|
|
|
|
SzybStudentModalpage.value.disabled = false;
|
|
|
|
|
SzybStudentModalpage.value.edit(record);
|
|
|
|
|
}
|
|
|
|
|
//下载
|
|
|
|
|
function handleDown(text) {
|
|
|
|
|
downloadFile(text);
|
|
|
|
|
}
|
|
|
|
|
//预览
|
|
|
|
|
function yulanFile(record) {
|
2024-09-26 08:59:02 +08:00
|
|
|
|
console.log('🙇♀️', record);
|
2025-03-06 10:04:04 +08:00
|
|
|
|
if (record.pdfPath) {
|
|
|
|
|
var url2 = getFileAccessHttpUrl(record.pdfPath);
|
|
|
|
|
let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
|
|
|
|
window.open(url, '_blank');
|
2024-09-26 08:59:02 +08:00
|
|
|
|
} else {
|
2025-03-06 10:04:04 +08:00
|
|
|
|
const parts = record.filePath.split('.');
|
|
|
|
|
const filetype = parts[parts.length - 1];
|
|
|
|
|
if (filetype == 'jpg' || filetype == 'png' || filetype == 'jpeg' || filetype == 'xls' || filetype == 'xlsx' || filetype == 'text') {
|
|
|
|
|
imgvisible.value = true;
|
|
|
|
|
var url2 = getFileAccessHttpUrl(record.filePath);
|
|
|
|
|
console.log('👀', url2);
|
|
|
|
|
ylimgurl.value = url2;
|
|
|
|
|
// var file = baseApiUrl + "/"+record.filePath;
|
|
|
|
|
// console.log('🤬', file);
|
2025-04-02 08:33:50 +08:00
|
|
|
|
// window.open('https://zjdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file)));
|
2025-03-06 10:04:04 +08:00
|
|
|
|
|
|
|
|
|
// var url2 = getFileAccessHttpUrl(record.filePath);
|
|
|
|
|
// let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
|
|
|
|
// window.open(url, '_blank');
|
|
|
|
|
} else if (filetype == 'doc' || filetype == 'docx' || filetype == 'pdf') {
|
|
|
|
|
var url2 = getFileAccessHttpUrl(record.pdfPath);
|
|
|
|
|
let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
|
|
|
|
window.open(url, '_blank');
|
|
|
|
|
} else {
|
|
|
|
|
createMessage.error('当前作业不支持预览,请下载后查阅!');
|
|
|
|
|
}
|
2024-08-29 13:33:02 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
|
|
|
|
//驳回
|
2025-01-15 10:41:58 +08:00
|
|
|
|
async function handleBohui(record: Recordable) {
|
2025-03-17 09:39:55 +08:00
|
|
|
|
|
|
|
|
|
bohuiRef.value.disableSubmit = false;
|
|
|
|
|
bohuiRef.value.edit(record);
|
|
|
|
|
|
|
|
|
|
// createConfirm({
|
|
|
|
|
// iconType: 'warning',
|
|
|
|
|
// title: '驳回',
|
|
|
|
|
// content: '您确定驳回此作业吗,驳回后需要学生重新提交?',
|
|
|
|
|
// okText: '确认',
|
|
|
|
|
// cancelText: '取消',
|
|
|
|
|
// onOk: async () => {
|
|
|
|
|
// let zyinfo = await defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: record.mainId } })
|
|
|
|
|
// if(zyinfo.xzxstjzy == 'Y'){
|
|
|
|
|
// let stuZyIds = await defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/getZyStuIdById', data: { zyinfoId: record.mainId, xh: record.createBy } })
|
|
|
|
|
// stuZyIds.forEach(async stu => {
|
|
|
|
|
// await defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/editBohui', params: { id: stu.id } })
|
|
|
|
|
// })
|
|
|
|
|
// }else{
|
|
|
|
|
// await defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/editBohui', params: { id: record.id } })
|
|
|
|
|
// }
|
|
|
|
|
// createMessage.success('作业驳回成功!')
|
|
|
|
|
// handleSuccess();
|
|
|
|
|
// },
|
|
|
|
|
// });
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
|
|
|
|
//填写评分
|
|
|
|
|
function handleScore(record: Recordable) {
|
|
|
|
|
registerScoreModal.value.disableSubmit = false;
|
|
|
|
|
registerScoreModal.value.edit(record);
|
|
|
|
|
}
|
|
|
|
|
//发布确定评分
|
|
|
|
|
function handleScoreFabu(record: Recordable) {
|
|
|
|
|
//判断
|
|
|
|
|
if (!record.score) {
|
|
|
|
|
createMessage.warn('请填写评分!');
|
|
|
|
|
return;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/editFabu', params: { id: record.id, scoreFabu: '1' } }).then((res) => {
|
|
|
|
|
handleSuccess();
|
|
|
|
|
});
|
|
|
|
|
}
|
2024-08-29 13:33:02 +08:00
|
|
|
|
//教师批阅作业
|
2024-09-26 08:59:02 +08:00
|
|
|
|
function handlepiyue(record: Recordable) {
|
2024-10-08 08:29:29 +08:00
|
|
|
|
registerPiyueModal.value.disableSubmit = true;
|
2024-08-29 13:33:02 +08:00
|
|
|
|
registerPiyueModal.value.edit(record);
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-21 14:14:27 +08:00
|
|
|
|
|
|
|
|
|
function handleScccjg(record: Recordable){
|
|
|
|
|
|
|
|
|
|
// defHttp.get({url:'/zyInfoStudent/zyInfoStudent/Scccjg',params:{id:record.id}}).then(res=>{
|
|
|
|
|
// })
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
/**
|
|
|
|
|
* 操作栏
|
|
|
|
|
*/
|
|
|
|
|
function getTableAction(record) {
|
|
|
|
|
if (record.filePath) {
|
|
|
|
|
if (record.scoreFabu == '1') {
|
|
|
|
|
let list = [
|
|
|
|
|
{
|
|
|
|
|
label: '撤回发布',
|
|
|
|
|
onClick: handleNoScoreFabu.bind(null, record),
|
|
|
|
|
},
|
2024-08-01 16:33:04 +08:00
|
|
|
|
// {
|
|
|
|
|
// label: '标记作业',
|
|
|
|
|
// onClick: handleSzyb.bind(null, record),
|
|
|
|
|
// },
|
2024-11-21 14:14:27 +08:00
|
|
|
|
// {
|
|
|
|
|
// label: '删除查重结果',
|
|
|
|
|
// onClick: handleScccjg.bind(null, record),
|
|
|
|
|
// },
|
2024-07-27 16:12:11 +08:00
|
|
|
|
{
|
|
|
|
|
label: '下载',
|
|
|
|
|
onClick: handleDown.bind(null, record.filePath),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '预览',
|
|
|
|
|
onClick: yulanFile.bind(null, record),
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
return list;
|
|
|
|
|
} else {
|
|
|
|
|
let list = [
|
|
|
|
|
{
|
|
|
|
|
label: '驳回',
|
|
|
|
|
onClick: handleBohui.bind(null, record),
|
|
|
|
|
},
|
2024-08-29 13:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
label: '批阅',
|
|
|
|
|
onClick: handlepiyue.bind(null, record),
|
|
|
|
|
},
|
2024-08-08 22:11:15 +08:00
|
|
|
|
// {
|
|
|
|
|
// label: record.score ? '修改评分' : '评分',
|
|
|
|
|
// onClick: handleScore.bind(null, record),
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// label: '发布评分',
|
|
|
|
|
// onClick: handleScoreFabu.bind(null, record),
|
|
|
|
|
// },
|
2024-07-27 16:12:11 +08:00
|
|
|
|
{
|
|
|
|
|
label: '下载',
|
|
|
|
|
onClick: handleDown.bind(null, record.filePath),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '预览',
|
|
|
|
|
onClick: yulanFile.bind(null, record),
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
return list;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
} else {
|
|
|
|
|
let list = [];
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//发布作业评分
|
|
|
|
|
async function batchHandleFabu() {
|
2024-10-23 19:46:08 +08:00
|
|
|
|
console.log('🧐', { id: zyInfo.value.id });
|
|
|
|
|
defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/getNoScore', params: { id: zyInfo.value.id } }).then((res) => {
|
|
|
|
|
console.log('🦴', res);
|
|
|
|
|
var list = res;
|
|
|
|
|
console.log('🧚♀️', list.length);
|
|
|
|
|
if (list.length > 0) {
|
|
|
|
|
var studentName = '';
|
|
|
|
|
for (var i = 0; i < list.length; i++) {
|
|
|
|
|
studentName = studentName + list[i].studentName + '、';
|
|
|
|
|
}
|
|
|
|
|
createConfirm({
|
|
|
|
|
iconType: 'warning',
|
|
|
|
|
title: '确认发布',
|
|
|
|
|
content: '当前学生:' + studentName + '没有给与评分,<span style="color:red;font-size:14px;font-weight:700;">若继续发布成绩,学生成绩为0</span>,是否发布成绩数据',
|
|
|
|
|
okText: '确认',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
onOk: () => {
|
|
|
|
|
batchFabu2({ id: zyInfo.value.id }, handleBatchSuccess);
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
createConfirm({
|
|
|
|
|
iconType: 'warning',
|
|
|
|
|
title: '确认发布',
|
|
|
|
|
content: '是否发布成绩数据',
|
|
|
|
|
okText: '确认',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
onOk: () => {
|
|
|
|
|
batchFabu2({ id: zyInfo.value.id }, handleBatchSuccess);
|
|
|
|
|
},
|
|
|
|
|
});
|
2024-07-30 20:39:43 +08:00
|
|
|
|
}
|
2024-10-23 19:46:08 +08:00
|
|
|
|
// handleSuccess();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// if (selectedRowKeys.value.length == 0) {
|
|
|
|
|
// createMessage.warn('请勾选要发布的数据!');
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// var datapar2 = rowSelection.selectedRows;
|
|
|
|
|
// console.log('👌', datapar2);
|
|
|
|
|
// var sfjx = '0';
|
|
|
|
|
// for (var i = 0; i < datapar2.length; i++) {
|
|
|
|
|
// var score = datapar2[i].score;
|
|
|
|
|
// if (!score) {
|
|
|
|
|
// sfjx = '1';
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// if (sfjx == '1') {
|
|
|
|
|
// createMessage.warning('您有未填写的评分信息,不可一键发布,请检查您的评分数据!');
|
|
|
|
|
// return;
|
|
|
|
|
// } else {
|
|
|
|
|
// await batchFabu({ ids: selectedRowKeys.value }, reload);
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function handleBatchSuccess() {
|
|
|
|
|
//正常刷新列表
|
|
|
|
|
reload();
|
|
|
|
|
//提交校内查重记录
|
|
|
|
|
defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/xnccBatchWeipu', params: { id: zyInfo.value.id } }).then((res) => {});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
2024-07-30 20:39:43 +08:00
|
|
|
|
|
2024-09-26 08:59:02 +08:00
|
|
|
|
function batchHandleKhcl() {
|
2024-09-06 16:07:04 +08:00
|
|
|
|
if (selectedRowKeys.value.length == 0) {
|
|
|
|
|
createMessage.warn('请勾选要上传的数据!');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
batchKhcl({ ids: selectedRowKeys.value }, reload);
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-30 20:39:43 +08:00
|
|
|
|
//
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//表单验证
|
|
|
|
|
const validatorRules = {
|
|
|
|
|
title: [{ required: true, message: '请输入作业名称!' }],
|
|
|
|
|
endTime: [{ required: true, message: '请输入结束时间!' }],
|
2024-08-08 09:47:20 +08:00
|
|
|
|
pfbz: [{ required: true, message: '请输入评分标准!' }],
|
2024-07-27 16:12:11 +08:00
|
|
|
|
};
|
|
|
|
|
const { resetFields, validate, validateInfos } = useForm(zyInfo, validatorRules, { immediate: true });
|
|
|
|
|
const labelCol = reactive({
|
|
|
|
|
xs: { span: 24 },
|
|
|
|
|
sm: { span: 4 },
|
|
|
|
|
});
|
|
|
|
|
const wrapperCol = reactive({
|
|
|
|
|
xs: { span: 24 },
|
|
|
|
|
sm: { span: 16 },
|
|
|
|
|
});
|
|
|
|
|
const labelCol2 = reactive({
|
|
|
|
|
sm: { span: 6 },
|
|
|
|
|
});
|
|
|
|
|
const wrapperCol2 = reactive({
|
|
|
|
|
sm: { span: 18 },
|
|
|
|
|
});
|
|
|
|
|
const labelCol3 = reactive({
|
|
|
|
|
sm: { span: 4 },
|
|
|
|
|
});
|
|
|
|
|
const wrapperCol3 = reactive({
|
|
|
|
|
sm: { span: 20 },
|
|
|
|
|
});
|
2024-07-30 20:39:43 +08:00
|
|
|
|
const labelCol4 = reactive({
|
2024-08-08 09:47:20 +08:00
|
|
|
|
sm: { span: 10 },
|
2024-07-30 20:39:43 +08:00
|
|
|
|
});
|
|
|
|
|
const wrapperCol4 = reactive({
|
2024-08-08 09:47:20 +08:00
|
|
|
|
sm: { span: 12 },
|
2024-07-30 20:39:43 +08:00
|
|
|
|
});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//作业要求切换
|
|
|
|
|
function handleZyyqShow(type) {
|
|
|
|
|
if (type == 1) {
|
|
|
|
|
zyyqShow.value = true;
|
|
|
|
|
} else {
|
|
|
|
|
zyyqShow.value = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//评分标准切换
|
|
|
|
|
function handlePfbzShow(type) {
|
|
|
|
|
if (type == 1) {
|
|
|
|
|
pfbzShow.value = true;
|
|
|
|
|
} else {
|
|
|
|
|
pfbzShow.value = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//尚未布置作业题目及具体要求
|
|
|
|
|
function handleSzzynr(record) {
|
2025-01-15 10:41:58 +08:00
|
|
|
|
setZyInfo(record)
|
2024-07-30 20:39:43 +08:00
|
|
|
|
dataKhnr.value = [];
|
2024-07-27 16:12:11 +08:00
|
|
|
|
handleShowType(2);
|
|
|
|
|
}
|
|
|
|
|
//批量进行保存
|
|
|
|
|
function handleBatchAdd() {
|
|
|
|
|
var list = tableData.value;
|
|
|
|
|
var sfjx = 0; //是否继续
|
2024-08-29 09:10:49 +08:00
|
|
|
|
var cjbfb = qmkszb.value; //成绩百分比
|
|
|
|
|
var cjbfb2 = ktcyzb.value; //成绩百分比
|
|
|
|
|
var zcj = 0;
|
|
|
|
|
|
|
|
|
|
var score22 = 0;
|
2024-07-27 16:12:11 +08:00
|
|
|
|
if (list.length == 0) {
|
|
|
|
|
createMessage.error('作业次数不能为空!');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
for (var i = 0; i < list.length; i++) {
|
2024-08-08 22:11:15 +08:00
|
|
|
|
console.log('🥵', list);
|
2024-07-27 16:12:11 +08:00
|
|
|
|
var score = list[i].score;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
if (score == null || score + '' == '') {
|
|
|
|
|
createMessage.error('第' + (i + 1) + '次作业总成绩的百分比不能为空!');
|
2024-07-27 16:12:11 +08:00
|
|
|
|
sfjx = 1;
|
|
|
|
|
break;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
if (score < 0 || score > 100) {
|
|
|
|
|
createMessage.error('作业成绩百分比必须在0-100之间!');
|
|
|
|
|
sfjx = 1;
|
|
|
|
|
break;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-09-26 08:59:02 +08:00
|
|
|
|
score22 = parseInt(score22) + parseInt(score);
|
2024-08-29 09:10:49 +08:00
|
|
|
|
if (score22 > 100) {
|
|
|
|
|
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
|
|
|
|
sfjx = 1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-09-26 08:59:02 +08:00
|
|
|
|
|
|
|
|
|
zcj = parseInt(score22) + parseInt(cjbfb) + parseInt(cjbfb2);
|
2024-08-29 09:10:49 +08:00
|
|
|
|
|
|
|
|
|
if (zcj > 100) {
|
|
|
|
|
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
|
|
|
|
sfjx = 1;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-08-29 09:10:49 +08:00
|
|
|
|
if (sfjx == 1) {
|
2024-08-01 08:35:49 +08:00
|
|
|
|
return;
|
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
|
|
|
|
|
createConfirm({
|
|
|
|
|
iconType: 'warning',
|
|
|
|
|
title: '确认保存',
|
|
|
|
|
content: '设置完课程作业次数后,需要对每次作业的内容和要求进行设置,然后进行发布',
|
|
|
|
|
okText: '确认',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
onOk: () => {
|
|
|
|
|
defHttp.post({ url: '/zyInfo/zyInfo/batchAdd', data: list }).then((res) => {
|
|
|
|
|
reloadZy();
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
2024-08-19 08:37:20 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
function handleSzzycs(val) {
|
|
|
|
|
defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params: { rwbh, xqxn, teano, zyLeixing: '1' } }).then((res) => {
|
|
|
|
|
console.log('😥', res);
|
|
|
|
|
var list = res;
|
2024-09-26 08:59:02 +08:00
|
|
|
|
for (var i = 0; i < list.length; i++) {
|
|
|
|
|
if (list[i].zyLeixing == '0') {
|
|
|
|
|
kczyzb.value = list[i].score;
|
|
|
|
|
} else if (list[i].zyLeixing == '1') {
|
|
|
|
|
qmkszb.value = list[i].score;
|
|
|
|
|
} else if (list[i].zyLeixing == '2') {
|
|
|
|
|
} else if (list[i].zyLeixing == '3') {
|
|
|
|
|
ktcyzb.value = list[i].score;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-08-19 08:37:20 +08:00
|
|
|
|
});
|
2024-08-29 09:10:49 +08:00
|
|
|
|
handleShowType(1);
|
2024-08-19 08:37:20 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//显示第几个类型模块
|
|
|
|
|
function handleShowType(val) {
|
2024-08-29 09:10:49 +08:00
|
|
|
|
if (tableData.value.length > 0) {
|
2024-08-12 16:03:32 +08:00
|
|
|
|
zycsDisabled.value = true;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
} else {
|
2024-08-12 16:03:32 +08:00
|
|
|
|
zycsDisabled.value = false;
|
|
|
|
|
}
|
2024-08-29 09:10:49 +08:00
|
|
|
|
console.log('👩👩👧👧', zycsDisabled);
|
2024-08-12 16:03:32 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
showType.value = val;
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
|
|
|
|
//新增一次作业,再最后面添加
|
|
|
|
|
function handleAddZycs() {
|
|
|
|
|
var changeZycs = zycs.value;
|
|
|
|
|
zycs.value = changeZycs + 1;
|
|
|
|
|
handleZycs();
|
|
|
|
|
}
|
|
|
|
|
//删除指定第几次作业
|
|
|
|
|
function handleDelZycs(index) {
|
|
|
|
|
var dataList = tableData.value;
|
|
|
|
|
dataList.splice(index - 1, 1);
|
|
|
|
|
tableData.value = dataList;
|
|
|
|
|
zycs.value = dataList.length;
|
|
|
|
|
handleZycs();
|
|
|
|
|
}
|
|
|
|
|
//动态添加作业次数
|
|
|
|
|
function handleZycs() {
|
|
|
|
|
var dataList = tableData.value;
|
|
|
|
|
var changeZycs = zycs.value;
|
|
|
|
|
if (changeZycs > dataList.length) {
|
|
|
|
|
for (var i = dataList.length; i < changeZycs; i++) {
|
|
|
|
|
dataList.push({
|
|
|
|
|
sort: i + 1,
|
|
|
|
|
lstitle: '第' + (i + 1) + '次作业',
|
|
|
|
|
score: '',
|
|
|
|
|
rwbh: rwbh,
|
|
|
|
|
xqxn: xqxn,
|
|
|
|
|
createBy: teano,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} else if (changeZycs < dataList.length) {
|
|
|
|
|
for (var i = dataList.length; i > changeZycs; i--) {
|
|
|
|
|
dataList.pop();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
for (let i = 0; i < dataList.length; i++) {
|
|
|
|
|
var ppar = dataList[i];
|
|
|
|
|
ppar.sort = i + 1;
|
|
|
|
|
dataList[i] = ppar;
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
tableData.value = dataList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 提交数据
|
|
|
|
|
*/
|
|
|
|
|
async function submitForm() {
|
|
|
|
|
// 触发表单验证
|
|
|
|
|
await validate();
|
|
|
|
|
confirmLoading.value = true;
|
|
|
|
|
const isUpdate = ref<boolean>(false);
|
|
|
|
|
//时间格式化
|
|
|
|
|
let model = zyInfo.value;
|
|
|
|
|
if (model.id) {
|
|
|
|
|
isUpdate.value = true;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//循环数据
|
|
|
|
|
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(',');
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
console.log('👕', model);
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-08-01 08:35:49 +08:00
|
|
|
|
var xshpkg = model.xshpkg;
|
|
|
|
|
if (xshpkg == '1') {
|
|
|
|
|
var sfzzcj = model.sfzzcj;
|
|
|
|
|
if (!sfzzcj) {
|
|
|
|
|
createMessage.warning('请先设置互评成绩是否为最终成绩!');
|
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var xssfck = model.xssfck;
|
|
|
|
|
if (!xssfck) {
|
|
|
|
|
createMessage.warning('请先设置是否允许学生看到互评成绩!');
|
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var xshpkssj = model.xshpkssj;
|
|
|
|
|
if (!xshpkssj) {
|
|
|
|
|
createMessage.warning('请先设置互评开始时间!');
|
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var xshpjssj = model.xshpjssj;
|
|
|
|
|
if (!xshpjssj) {
|
|
|
|
|
createMessage.warning('请先设置互评结束时间!');
|
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var wwtgl = model.wwtgl;
|
|
|
|
|
var wwcc = model.wwcc;
|
|
|
|
|
var xncc = model.xncc;
|
|
|
|
|
var nwcc = model.nwcc;
|
|
|
|
|
var aigccc = model.aigccc;
|
2024-08-29 13:33:02 +08:00
|
|
|
|
var sfcc = model.sfcc;
|
2024-08-01 08:35:49 +08:00
|
|
|
|
console.log('🚶♂️', model);
|
2024-09-26 08:59:02 +08:00
|
|
|
|
if (sfcc == '1') {
|
2025-01-15 10:41:58 +08:00
|
|
|
|
var xzxstjzy = model.xzxstjzy
|
|
|
|
|
if(xzxstjzy == 'Y'){
|
|
|
|
|
createMessage.warning('由于设置了小组形式提交作业,因此无法开启查重功能!');
|
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-09-26 08:59:02 +08:00
|
|
|
|
//开启查重再进行验证,否则不进行验证
|
2024-08-29 13:33:02 +08:00
|
|
|
|
if (wwtgl) {
|
|
|
|
|
if ((wwcc == false && xncc == false && nwcc == false && aigccc == false) || (!wwcc && !xncc && !nwcc && !aigccc)) {
|
|
|
|
|
createMessage.warning('您设置了检测通过率,但您没有设置查重比对库,请先设置查重比对库!');
|
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
console.log('1111111111', wwtgl, wwcc, xncc, aigccc);
|
|
|
|
|
} else {
|
|
|
|
|
console.log('22222222222', wwtgl, wwcc, xncc, aigccc);
|
|
|
|
|
if (wwcc == true || xncc == true || nwcc == true || aigccc == true || wwcc == 'true' || xncc == 'true' || nwcc == 'true' || aigccc == 'true') {
|
|
|
|
|
createMessage.warning('您设置了查重比对库,但您没设置检测通过率,请先设置检测通过率');
|
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-08-01 08:35:49 +08:00
|
|
|
|
}
|
2025-01-15 17:02:35 +08:00
|
|
|
|
}
|
2024-08-01 08:35:49 +08:00
|
|
|
|
|
|
|
|
|
var xshpkssj = model.xshpkssj;
|
|
|
|
|
var xshpjssj = model.xshpjssj;
|
|
|
|
|
if (xshpkssj && xshpjssj) {
|
|
|
|
|
var xshpkssjTimestamp = Date.parse(xshpkssj);
|
|
|
|
|
var xshpjssjTimestamp = Date.parse(xshpjssj);
|
|
|
|
|
if (xshpkssjTimestamp > xshpjssjTimestamp) {
|
2024-08-08 22:11:15 +08:00
|
|
|
|
createMessage.warning('作业截止时间不能大于互评结束时间!');
|
2024-08-03 08:57:53 +08:00
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
2024-08-01 08:35:49 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var endTime = model.endTime;
|
|
|
|
|
var startTime = model.startTime;
|
|
|
|
|
if (endTime && startTime) {
|
|
|
|
|
var endTimestamp = Date.parse(endTime);
|
|
|
|
|
var startTimestamp = Date.parse(startTime);
|
|
|
|
|
if (endTimestamp < startTimestamp) {
|
2024-08-02 19:11:38 +08:00
|
|
|
|
createMessage.warning('作业发布时间不能大于作业截止时间!');
|
2024-08-01 08:35:49 +08:00
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
if (xshpkssj && endTime) {
|
2024-08-02 10:55:54 +08:00
|
|
|
|
var endTimestamp = Date.parse(xshpkssj);
|
2024-08-03 08:57:53 +08:00
|
|
|
|
var startTimestamp = Date.parse(endTime);
|
2024-08-02 10:55:54 +08:00
|
|
|
|
if (endTimestamp < startTimestamp) {
|
2024-08-03 08:57:53 +08:00
|
|
|
|
createMessage.warning('互评开始间不能小于作业截止时间!');
|
2024-08-02 10:55:54 +08:00
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
await saveOrUpdate(model, isUpdate.value)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
if (res.success) {
|
|
|
|
|
createMessage.success(res.message);
|
|
|
|
|
reloadZy();
|
|
|
|
|
} else {
|
|
|
|
|
createMessage.warning(res.message);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.finally(() => {
|
|
|
|
|
confirmLoading.value = false;
|
|
|
|
|
});
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
const columns = [
|
|
|
|
|
{
|
|
|
|
|
title: '序号',
|
|
|
|
|
dataIndex: 'sort',
|
|
|
|
|
key: 'sort',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '作业次数',
|
|
|
|
|
dataIndex: 'lstitle',
|
|
|
|
|
key: 'lstitle',
|
|
|
|
|
},
|
|
|
|
|
{
|
2024-08-29 09:10:49 +08:00
|
|
|
|
title: '本次作业占总成绩的百分比',
|
2024-07-27 16:12:11 +08:00
|
|
|
|
dataIndex: 'score',
|
|
|
|
|
key: 'score',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '操作',
|
|
|
|
|
key: 'action',
|
|
|
|
|
},
|
|
|
|
|
];
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
const columnsCcjg = [
|
|
|
|
|
{
|
|
|
|
|
title: '序号',
|
|
|
|
|
dataIndex: 'no',
|
|
|
|
|
key: 'no',
|
|
|
|
|
customRender: (text) => {
|
|
|
|
|
return text.index + 1;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
},
|
2024-07-27 16:12:11 +08:00
|
|
|
|
width: 80,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '学生姓名',
|
|
|
|
|
dataIndex: 'stuName',
|
|
|
|
|
key: 'stuName',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '学生学号',
|
|
|
|
|
dataIndex: 'stuNo',
|
|
|
|
|
key: 'stuNo',
|
|
|
|
|
},
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
{
|
|
|
|
|
title: '比对库',
|
|
|
|
|
dataIndex: 'bdkname',
|
|
|
|
|
key: 'bdkname',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '是否查重',
|
|
|
|
|
dataIndex: 'ccType',
|
|
|
|
|
key: 'ccType',
|
|
|
|
|
customRender: (text) => {
|
2024-07-30 20:39:43 +08:00
|
|
|
|
return '是';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
2024-08-05 10:02:34 +08:00
|
|
|
|
title: '查重率(%)',
|
2024-07-27 16:12:11 +08:00
|
|
|
|
dataIndex: 'percentage',
|
|
|
|
|
key: 'percentage',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '操作',
|
|
|
|
|
key: 'action',
|
|
|
|
|
},
|
|
|
|
|
];
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
const columnsXshp = [
|
|
|
|
|
{
|
|
|
|
|
title: '序号',
|
|
|
|
|
dataIndex: 'no',
|
|
|
|
|
key: 'no',
|
|
|
|
|
customRender: (text) => {
|
|
|
|
|
return text.index + 1;
|
|
|
|
|
},
|
|
|
|
|
width: 80,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '学生姓名',
|
|
|
|
|
dataIndex: 'stuName',
|
|
|
|
|
key: 'stuName',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '学生学号',
|
|
|
|
|
dataIndex: 'stuId',
|
|
|
|
|
key: 'stuId',
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
title: '互评时间',
|
|
|
|
|
dataIndex: 'createTime',
|
|
|
|
|
key: 'createTime',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '互评分数',
|
|
|
|
|
dataIndex: 'stuScore',
|
|
|
|
|
key: 'stuScore',
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
const columnsKhnr = [
|
|
|
|
|
{
|
|
|
|
|
title: '序号',
|
|
|
|
|
dataIndex: 'no',
|
|
|
|
|
key: 'no',
|
|
|
|
|
customRender: (text) => {
|
|
|
|
|
return text.index + 1;
|
|
|
|
|
},
|
|
|
|
|
width: 80,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '章次',
|
|
|
|
|
dataIndex: 'title',
|
|
|
|
|
key: 'title',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '节次',
|
|
|
|
|
dataIndex: 'twoTitle',
|
|
|
|
|
key: 'twoTitle',
|
|
|
|
|
},
|
|
|
|
|
];
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
function classFun(type) {
|
|
|
|
|
if (type == '0') {
|
|
|
|
|
return 'background: #fe1a1a';
|
|
|
|
|
} else if (type == '1') {
|
|
|
|
|
return 'background: #c6c209';
|
|
|
|
|
} else if (type == '2') {
|
|
|
|
|
return 'background: #18a689';
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 新增事件
|
|
|
|
|
*/
|
|
|
|
|
function handleAdd() {
|
|
|
|
|
registerModal.value.disableSubmit = false;
|
|
|
|
|
registerModal.value.add();
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-08-08 22:11:15 +08:00
|
|
|
|
function handleChehui(record) {
|
|
|
|
|
createConfirm({
|
|
|
|
|
iconType: 'warning',
|
|
|
|
|
title: '撤回作业',
|
|
|
|
|
content: '您确认撤回此次作业吗?',
|
|
|
|
|
okText: '确认',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
onOk: () => {
|
|
|
|
|
defHttp
|
|
|
|
|
.post({
|
|
|
|
|
url: '/zyInfo/zyInfo/editChehui',
|
|
|
|
|
params: { id: record.id },
|
|
|
|
|
})
|
|
|
|
|
.then((res) => {
|
|
|
|
|
createMessage.success(res.message);
|
|
|
|
|
handleSuccess2();
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
/**
|
|
|
|
|
* 编辑事件
|
|
|
|
|
*/
|
|
|
|
|
function handleEdit(record, type) {
|
2024-08-08 09:47:20 +08:00
|
|
|
|
if (!record.sturead) {
|
|
|
|
|
record.sturead = '1';
|
|
|
|
|
}
|
|
|
|
|
if (!record.xshpkg) {
|
|
|
|
|
record.xshpkg = '1';
|
|
|
|
|
}
|
|
|
|
|
if (!record.sfzzcj) {
|
|
|
|
|
record.sfzzcj = '1';
|
|
|
|
|
}
|
2024-08-29 13:33:02 +08:00
|
|
|
|
if (!record.sfcc) {
|
|
|
|
|
record.sfcc = '1';
|
|
|
|
|
}
|
2024-08-08 09:47:20 +08:00
|
|
|
|
if (!record.xssfck) {
|
|
|
|
|
record.xssfck = '1';
|
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
editDisabled.value = type;
|
2025-01-15 10:41:58 +08:00
|
|
|
|
setZyInfo(record)
|
2024-09-26 08:59:02 +08:00
|
|
|
|
console.log('👨👦', zyInfo.value);
|
|
|
|
|
if (zyInfo.value.xncc == 'false') {
|
|
|
|
|
zyInfo.value.xncc = null;
|
|
|
|
|
}
|
|
|
|
|
if (zyInfo.value.nwcc == 'false') {
|
|
|
|
|
zyInfo.value.nwcc = null;
|
|
|
|
|
}
|
|
|
|
|
if (zyInfo.value.wwcc == 'false') {
|
|
|
|
|
zyInfo.value.wwcc = null;
|
|
|
|
|
}
|
|
|
|
|
if (zyInfo.value.aigccc == 'false') {
|
|
|
|
|
zyInfo.value.aigccc = null;
|
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
dataKhnr.value = [];
|
|
|
|
|
var kcnr = zyInfo.value.kcnr;
|
2024-07-30 20:39:43 +08:00
|
|
|
|
if (kcnr) {
|
2024-07-27 16:12:11 +08:00
|
|
|
|
defHttp.get({ url: '/teachingunitcontent/kcTeachingUnitContentOne/getAllList', params: { id: kcnr } }).then((res) => {
|
|
|
|
|
dataKhnr.value = res;
|
|
|
|
|
});
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
handleShowType(2);
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2025-01-15 10:41:58 +08:00
|
|
|
|
function setZyInfo(record){
|
|
|
|
|
zyInfo.value = record;
|
|
|
|
|
if(!zyInfo.value.xzxstjzy)zyInfo.value.xzxstjzy = 'N'
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
function handleBjzy(record) {
|
|
|
|
|
registerEditModal.value.disableSubmit = false;
|
|
|
|
|
registerEditModal.value.edit(record);
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
/**
|
|
|
|
|
* 详情
|
|
|
|
|
*/
|
|
|
|
|
function handleDetail(record: Recordable) {
|
|
|
|
|
registerDetialModal.value.disableSubmit = true;
|
|
|
|
|
registerDetialModal.value.edit(record);
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-08-08 09:47:20 +08:00
|
|
|
|
//批阅作业信息
|
2024-07-27 16:12:11 +08:00
|
|
|
|
function handleZyxx(record, type) {
|
2024-08-03 08:57:53 +08:00
|
|
|
|
if (type == '1') {
|
|
|
|
|
if (!record.wtjnum || record.wtjnum == '0') {
|
|
|
|
|
createMessage.error('当前人数为0,不能进行查询');
|
2024-08-01 13:48:43 +08:00
|
|
|
|
return;
|
|
|
|
|
}
|
2024-08-03 08:57:53 +08:00
|
|
|
|
} else if (type == '2') {
|
|
|
|
|
if (!record.ytjnum || record.ytjnum == '0') {
|
|
|
|
|
createMessage.error('当前人数为0,不能进行查询');
|
2024-08-01 13:48:43 +08:00
|
|
|
|
return;
|
|
|
|
|
}
|
2024-08-03 08:57:53 +08:00
|
|
|
|
} else if (type == '3') {
|
|
|
|
|
if (!record.wpynum || record.wpynum == '0') {
|
|
|
|
|
createMessage.error('当前人数为0,不能进行查询');
|
2024-08-01 13:48:43 +08:00
|
|
|
|
return;
|
|
|
|
|
}
|
2024-08-03 08:57:53 +08:00
|
|
|
|
} else if (type == '4') {
|
|
|
|
|
if (!record.ypynum || record.ypynum == '0') {
|
|
|
|
|
createMessage.error('当前人数为0,不能进行查询');
|
2024-08-01 13:48:43 +08:00
|
|
|
|
return;
|
|
|
|
|
}
|
2024-08-08 09:47:20 +08:00
|
|
|
|
} else if (type == '4') {
|
|
|
|
|
if (!record.dpynum || record.dpynum == '0') {
|
|
|
|
|
createMessage.error('当前人数为0,不能进行查询');
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-08-01 13:48:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
2025-01-15 10:41:58 +08:00
|
|
|
|
setZyInfo(record)
|
2024-07-27 16:12:11 +08:00
|
|
|
|
handleShowType(3);
|
|
|
|
|
queryType.value = type;
|
2024-08-01 08:35:49 +08:00
|
|
|
|
rowSelection.value = [];
|
|
|
|
|
selectedRowKeys.value = [];
|
|
|
|
|
console.log('🧟♀️', rowSelection);
|
2024-07-27 16:12:11 +08:00
|
|
|
|
queryParam.value = {};
|
2024-09-20 08:34:10 +08:00
|
|
|
|
queryParam.value.ywid = record.id;
|
|
|
|
|
queryParam.value.rwbh = rwbh;
|
2024-07-27 16:12:11 +08:00
|
|
|
|
queryParam.value.queryType = type;
|
|
|
|
|
reload();
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//获取选课人数
|
|
|
|
|
function openXkrs(record) {
|
|
|
|
|
console.log(`🚀 ~ openXkrs ~ record:`, record);
|
|
|
|
|
XxhbbksListModalPage.value.disableSubmit = true;
|
|
|
|
|
XxhbbksListModalPage.value.init(record);
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
/**
|
|
|
|
|
* 删除事件
|
|
|
|
|
*/
|
|
|
|
|
async function handleDelete(record) {
|
|
|
|
|
if (record.endTime) {
|
2024-07-24 22:34:15 +08:00
|
|
|
|
createConfirm({
|
|
|
|
|
iconType: 'warning',
|
|
|
|
|
title: '删除',
|
2024-07-27 16:12:11 +08:00
|
|
|
|
content: '您已经对作业的内容和要求进行了设置,如果继续删除,内容和要求将一并删除,确认进行删除吗?',
|
2024-07-24 22:34:15 +08:00
|
|
|
|
okText: '确认',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
onOk: () => {
|
|
|
|
|
deleteOne({ id: record.id }, handleSuccess2);
|
2024-07-27 16:12:11 +08:00
|
|
|
|
},
|
2024-07-24 22:34:15 +08:00
|
|
|
|
});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
} else {
|
|
|
|
|
deleteOne({ id: record.id }, handleSuccess2);
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//发布作业
|
|
|
|
|
async function handleFabu(record) {
|
|
|
|
|
createConfirm({
|
2024-07-24 22:34:15 +08:00
|
|
|
|
iconType: 'warning',
|
|
|
|
|
title: '确认发布',
|
|
|
|
|
content: '是否发布作业数据',
|
|
|
|
|
okText: '确认',
|
|
|
|
|
cancelText: '取消',
|
|
|
|
|
onOk: () => {
|
2024-07-27 16:12:11 +08:00
|
|
|
|
var url = '/zyInfo/zyInfo/release';
|
|
|
|
|
var params = { id: record.id, zyStatus: '1' };
|
2024-07-24 22:34:15 +08:00
|
|
|
|
defHttp.post({ url: url, params }).then((res) => {
|
|
|
|
|
handleZySuccess(record.id);
|
|
|
|
|
});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
},
|
2024-07-24 22:34:15 +08:00
|
|
|
|
});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
/**
|
|
|
|
|
* 成功回调,用于删除
|
|
|
|
|
*/
|
|
|
|
|
function handleSuccess2() {
|
|
|
|
|
total.value = 1;
|
|
|
|
|
handlePageChange(1);
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
/**
|
|
|
|
|
* 成功回调,用于增加、修改、发布和撤回
|
|
|
|
|
*/
|
|
|
|
|
function handleSuccess() {
|
2024-07-30 20:39:43 +08:00
|
|
|
|
searchQueryZyxq();
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
function handleZySuccess(zyid) {
|
|
|
|
|
setTimeout(() => {
|
2024-07-30 20:39:43 +08:00
|
|
|
|
handleSuccess2();
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}, 1500);
|
|
|
|
|
var url = '/zyInfo/zyInfo/editStudent';
|
|
|
|
|
defHttp.get({ url: url, params: { id: zyid } }).then((res) => {});
|
2024-08-19 08:37:20 +08:00
|
|
|
|
|
2024-12-26 14:37:52 +08:00
|
|
|
|
// defHttp.get({ url: '/zyInfo/zyInfo/sendZyWechat', params: { id: zyid } }).then((res) => {});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
/**
|
|
|
|
|
* 查询
|
|
|
|
|
*/
|
|
|
|
|
function searchQuery() {
|
|
|
|
|
total.value = 1;
|
|
|
|
|
handlePageChange(1);
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
/**
|
|
|
|
|
* 重置
|
|
|
|
|
*/
|
|
|
|
|
function searchReset() {
|
|
|
|
|
queryParam.value = {};
|
2024-09-30 13:04:10 +08:00
|
|
|
|
queryParam.value.queryType = queryType.value;
|
|
|
|
|
queryParam.value.rwbh = rwbh;
|
|
|
|
|
queryParam.value.ywid = zyInfo.value.id;
|
2024-10-08 09:42:28 +08:00
|
|
|
|
console.log(`🚀 ~ searchReset ~ rwbh:`, rwbh);
|
2024-07-27 16:12:11 +08:00
|
|
|
|
total.value = 1;
|
2024-07-30 20:39:43 +08:00
|
|
|
|
searchQueryZyxq();
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
//查询列表数据
|
|
|
|
|
function reloadZy() {
|
|
|
|
|
queryParamZy.value.pageNo = current.value;
|
|
|
|
|
queryParamZy.value.pageSize = pageSize.value;
|
|
|
|
|
queryParamZy.value.rwbh = rwbh;
|
|
|
|
|
queryParamZy.value.xnxq = xqxn;
|
2024-09-20 08:34:10 +08:00
|
|
|
|
// queryParamZy.value.teano = teano;
|
2024-08-19 08:37:20 +08:00
|
|
|
|
queryParamZy.value.zyLeixing = '0';
|
2024-07-27 16:12:11 +08:00
|
|
|
|
// queryParamZy.value.column = 'a.sort';
|
|
|
|
|
// queryParamZy.value.order = 'asc';
|
|
|
|
|
defHttp.get({ url: '/zyInfo/zyInfo/list', params: queryParamZy.value }).then((res) => {
|
|
|
|
|
console.log(`🚀 ~ defHttp.get ~ res:`, res);
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
total.value = res.total;
|
|
|
|
|
pageNo.value = res.pages;
|
|
|
|
|
current.value = res.current;
|
|
|
|
|
tableData.value = res.records;
|
|
|
|
|
zycs.value = tableData.value.length;
|
|
|
|
|
if (tableData.value.length > 0) {
|
|
|
|
|
showType.value = 999;
|
|
|
|
|
} else {
|
|
|
|
|
showType.value = 0;
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
});
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function handlePageChange(record) {
|
|
|
|
|
current.value = record;
|
|
|
|
|
reloadZy();
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
|
2025-01-15 10:41:58 +08:00
|
|
|
|
//编辑小组信息
|
|
|
|
|
function bjxzxxFunc(isEdit){
|
|
|
|
|
XzxxRef.value.showModal(zyInfo.value,tableData.value,isEdit)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ckxzxxFunc(item){
|
|
|
|
|
XzxxRef.value.showModal(item,tableData.value,false)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//小组形式提交作业选项变更
|
|
|
|
|
function xztjzyxsFunc(val){
|
2025-04-30 08:21:49 +08:00
|
|
|
|
if(val == 'Y') {
|
|
|
|
|
zyInfo.value.xshpkg = '0'
|
|
|
|
|
zyInfo.value.sfcc = '0'
|
|
|
|
|
createMessage.warning('开启小组形式提交作业后,将无法使用查重功能!');
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-15 10:41:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const xzxxSaveSuccess = (id,data) => {
|
|
|
|
|
tableData.value.forEach(item => {
|
|
|
|
|
if(item.id == id) item.xzrs = data.rs
|
|
|
|
|
});
|
|
|
|
|
// createMessage.success('保存成功!')
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
onMounted(() => {
|
|
|
|
|
searchQuery();
|
|
|
|
|
});
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
|
|
|
|
const isSmallScreen = ref(false);
|
|
|
|
|
|
|
|
|
|
const checkScreenSize = () => {
|
|
|
|
|
isSmallScreen.value = window.innerWidth <= 768; // 根据需要调整断点
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 立即执行一次以设置初始值,并在组件卸载前监听窗口大小变化
|
|
|
|
|
watchEffect(() => {
|
|
|
|
|
checkScreenSize();
|
|
|
|
|
const resizeObserver = () => checkScreenSize();
|
|
|
|
|
window.addEventListener('resize', resizeObserver);
|
|
|
|
|
onUnmounted(() => {
|
|
|
|
|
window.removeEventListener('resize', resizeObserver);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
2024-07-24 22:34:15 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="less" scoped>
|
2024-12-13 15:38:39 +08:00
|
|
|
|
// 小屏
|
|
|
|
|
@media (max-width: 768px) {
|
2024-12-18 17:24:05 +08:00
|
|
|
|
.jbxx-zyfbsj-ico{
|
|
|
|
|
float: right;
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
color: #029c88;
|
|
|
|
|
margin-right: 5px
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
.ccsz-bdksz{}
|
|
|
|
|
|
|
|
|
|
.ccsz-jctgl{}
|
|
|
|
|
|
|
|
|
|
.sshp-sfyxxskdhpcj{}
|
|
|
|
|
|
|
|
|
|
.sshp-hpjgsy {}
|
|
|
|
|
|
|
|
|
|
.pjbz-sfyxxsck {}
|
|
|
|
|
|
|
|
|
|
.title {
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// PC大屏
|
|
|
|
|
@media (min-width: 769px) {
|
2024-12-18 17:24:05 +08:00
|
|
|
|
.jbxx-zyfbsj-ico{
|
|
|
|
|
float: right;
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
color: #029c88;
|
|
|
|
|
margin-right: 19px
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-13 15:38:39 +08:00
|
|
|
|
.ccsz-bdksz{
|
|
|
|
|
margin-left: -10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ccsz-jctgl{
|
|
|
|
|
margin-top: -1px;
|
|
|
|
|
margin-left: -10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sshp-sfyxxskdhpcj{
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
margin-left: -10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sshp-hpjgsy {
|
|
|
|
|
margin-top: -20px;
|
|
|
|
|
margin-left: -30px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.pjbz-sfyxxsck {
|
|
|
|
|
margin-top: -1px;
|
|
|
|
|
margin-left: -17px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title {
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-08 22:11:15 +08:00
|
|
|
|
.title2 {
|
2024-08-29 09:10:49 +08:00
|
|
|
|
font-size: 16px;
|
2024-08-09 13:58:28 +08:00
|
|
|
|
font-weight: bold;
|
2024-08-08 22:11:15 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-07-24 22:34:15 +08:00
|
|
|
|
.ant-divider-horizontal {
|
2024-07-27 16:12:11 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
clear: both;
|
|
|
|
|
width: 100%;
|
|
|
|
|
min-width: 100%;
|
|
|
|
|
margin: 3px 0 5px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
.tishi {
|
2024-08-01 19:28:42 +08:00
|
|
|
|
width: 100%;
|
2024-07-27 16:12:11 +08:00
|
|
|
|
font-size: 12px;
|
2024-08-01 19:28:42 +08:00
|
|
|
|
color: #fd8f02;
|
|
|
|
|
margin-top: -4px;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
background: #fffbf2;
|
2024-08-01 19:28:42 +08:00
|
|
|
|
text-align: center;
|
|
|
|
|
padding: 6px 0;
|
2024-07-27 16:12:11 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
.cardClass {
|
2024-07-24 22:34:15 +08:00
|
|
|
|
min-height: 200px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
.sznrClass {
|
2024-08-08 09:47:20 +08:00
|
|
|
|
line-height: 40px;
|
2024-07-27 16:12:11 +08:00
|
|
|
|
text-align: center;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-07-24 22:34:15 +08:00
|
|
|
|
.ant-card {
|
2024-07-27 16:12:11 +08:00
|
|
|
|
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;
|
2024-08-26 15:36:42 +08:00
|
|
|
|
border: 1px solid #f0f0f0;
|
2024-08-02 10:56:42 +08:00
|
|
|
|
background: #f7f7f7;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.ant-card:hover {
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
box-shadow: 2px 2px 10px 1px #d4d4d4;
|
2024-08-26 15:36:42 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-07-24 22:34:15 +08:00
|
|
|
|
.ant-card-head {
|
2024-07-27 16:12:11 +08:00
|
|
|
|
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;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-07-24 22:34:15 +08:00
|
|
|
|
.ellipsis {
|
2024-12-13 15:38:39 +08:00
|
|
|
|
overflow: hidden;
|
|
|
|
|
/* 确保超出容器的内容被裁剪 */
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
/* 确保文本在一行内显示 */
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
/* 超出部分显示省略号 */
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.ellip-title {
|
2024-08-02 19:10:36 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
2024-08-09 13:58:28 +08:00
|
|
|
|
align-items: flex-end;
|
|
|
|
|
margin-top: -10px;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.elli-title {
|
2024-08-02 19:10:36 +08:00
|
|
|
|
font-size: 16px;
|
2024-08-03 08:57:53 +08:00
|
|
|
|
font-weight: bold;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.ellip-word {
|
2024-08-29 09:10:49 +08:00
|
|
|
|
font-size: 12px;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
color: #666666;
|
2024-08-09 13:58:28 +08:00
|
|
|
|
margin-right: 10px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.ellip-word2 {
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #333;
|
|
|
|
|
font-weight: bold;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-07-27 16:12:11 +08:00
|
|
|
|
.zuanqu:hover {
|
2024-07-24 22:34:15 +08:00
|
|
|
|
cursor: pointer;
|
2024-07-27 16:12:11 +08:00
|
|
|
|
color: #18a689;
|
2024-08-26 15:36:42 +08:00
|
|
|
|
background: #eff6f4;
|
2024-07-24 22:34:15 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-02 19:10:36 +08:00
|
|
|
|
.data-suggest {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
text-align: center;
|
|
|
|
|
width: 25%;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
margin-right: 5px;
|
2024-08-03 08:57:53 +08:00
|
|
|
|
padding: 8px 3px;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
border-radius: 5px;
|
|
|
|
|
background: #f7f7f7;
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.data-suggest span:nth-child(1) {
|
2024-08-02 19:10:36 +08:00
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.data-suggest span:nth-child(2) {
|
2024-08-02 19:10:36 +08:00
|
|
|
|
font-size: 12px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.work-img {
|
2024-08-01 19:28:42 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
2024-08-03 08:57:53 +08:00
|
|
|
|
margin-top: 80px;
|
2024-08-01 19:28:42 +08:00
|
|
|
|
margin-bottom: 30px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.work-img-img {
|
|
|
|
|
width: 180px;
|
|
|
|
|
height: 139px;
|
2024-08-01 19:28:42 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.buttonClass {
|
|
|
|
|
background: #1ab394;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
color: #fff;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
border: none;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.mar-right20 {
|
|
|
|
|
margin-right: 14px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.button-zhta {
|
|
|
|
|
color: #666666;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.button-zhta:hover {
|
2024-08-02 19:10:36 +08:00
|
|
|
|
cursor: pointer;
|
|
|
|
|
color: #18a689;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.sear-distance {
|
|
|
|
|
padding: 0 10px;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-02 19:10:36 +08:00
|
|
|
|
.ant-form-item {
|
2024-08-03 08:57:53 +08:00
|
|
|
|
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;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.bled-countenance {
|
2024-08-27 15:21:22 +08:00
|
|
|
|
color: #666;
|
2024-08-03 08:57:53 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.bled-countenance2 {
|
|
|
|
|
color: #999999;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
font-size: 12px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.region {
|
2024-08-27 15:21:22 +08:00
|
|
|
|
margin: 6px 12px;
|
2024-08-03 08:57:53 +08:00
|
|
|
|
padding-bottom: 20px;
|
|
|
|
|
background: #fff;
|
|
|
|
|
border-radius: 5px;
|
2024-08-27 15:21:22 +08:00
|
|
|
|
border: 1px solid #e6e6e6;
|
2024-12-13 15:38:39 +08:00
|
|
|
|
padding: 10px;
|
2024-08-27 15:21:22 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.region:hover {
|
2024-08-27 15:21:22 +08:00
|
|
|
|
margin: 6px 12px;
|
|
|
|
|
padding-bottom: 20px;
|
|
|
|
|
background: #fff;
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
border: 1px solid #e6e6e6;
|
|
|
|
|
box-shadow: 2px 2px 10px 1px #d4d4d4;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-03 08:57:53 +08:00
|
|
|
|
.region-title {
|
|
|
|
|
font-size: 16px;
|
2024-08-27 15:21:22 +08:00
|
|
|
|
color: #333;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
height: 50px;
|
|
|
|
|
line-height: 50px;
|
|
|
|
|
border-bottom: 1px solid #e1e4eb;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
margin-bottom: 20px;
|
2024-08-27 15:21:22 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.region-title-headline {
|
2024-08-27 15:21:22 +08:00
|
|
|
|
display: block;
|
|
|
|
|
width: 5px;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
height: 16px;
|
2024-08-27 15:21:22 +08:00
|
|
|
|
background: #18a689;
|
|
|
|
|
border-radius: 6px;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
margin-top: 18px;
|
2024-08-27 15:21:22 +08:00
|
|
|
|
margin-right: 20px;
|
2024-08-02 19:10:36 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.module-bg {
|
2024-08-26 15:36:42 +08:00
|
|
|
|
background: #fff;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
border-radius: 6px;
|
2024-08-26 16:38:39 +08:00
|
|
|
|
border: 1px solid #e6e6e6;
|
2024-08-26 15:36:42 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.home-status {
|
2024-08-26 15:36:42 +08:00
|
|
|
|
color: #1ab394;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.home-status:hover {
|
2024-08-26 15:36:42 +08:00
|
|
|
|
color: #333;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.card-label {
|
2024-08-26 16:38:39 +08:00
|
|
|
|
background: #81cbbc;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
border-radius: 4px;
|
2024-08-26 16:38:39 +08:00
|
|
|
|
color: #fff;
|
|
|
|
|
padding: 2px 6px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.card-label2 {
|
2024-08-26 16:38:39 +08:00
|
|
|
|
background: #84c4fa;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
border-radius: 4px;
|
2024-08-26 16:38:39 +08:00
|
|
|
|
color: #fff;
|
|
|
|
|
padding: 2px 6px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.card-label3 {
|
2024-08-26 16:38:39 +08:00
|
|
|
|
background: #fabe84;
|
2024-08-29 09:10:49 +08:00
|
|
|
|
border-radius: 4px;
|
2024-08-26 16:38:39 +08:00
|
|
|
|
color: #fff;
|
|
|
|
|
padding: 2px 6px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-29 09:10:49 +08:00
|
|
|
|
.zbClass {
|
|
|
|
|
margin-left: 15px;
|
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-10-08 20:49:49 +08:00
|
|
|
|
.image-container {
|
|
|
|
|
padding: 10px;
|
2024-12-13 15:38:39 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
/* 设置容器宽度 */
|
|
|
|
|
height: auto;
|
|
|
|
|
/* 设置容器高度 */
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
/* 隐藏溢出的部分 */
|
2024-10-08 20:49:49 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
2024-10-23 19:46:08 +08:00
|
|
|
|
|
2024-10-08 20:49:49 +08:00
|
|
|
|
.rotated-image {
|
2024-12-13 15:38:39 +08:00
|
|
|
|
max-width: 100%;
|
|
|
|
|
/* 最大宽度为容器宽度 */
|
|
|
|
|
max-height: 100%;
|
|
|
|
|
/* 最大高度为容器高度 */
|
|
|
|
|
object-fit: contain;
|
|
|
|
|
/* 保持图片内容不失真 */
|
|
|
|
|
transform: rotate(90deg);
|
|
|
|
|
/* 假设图片已经旋转90度 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
:deep(.ant-card-body) {
|
|
|
|
|
padding: 20px;
|
2024-10-08 20:49:49 +08:00
|
|
|
|
}
|
2024-12-13 15:38:39 +08:00
|
|
|
|
|
2024-08-26 16:38:39 +08:00
|
|
|
|
</style>
|