Merge branch 'master' of http://47.115.223.229:8888/yangjun/dbsd_kczx
This commit is contained in:
commit
141183368b
|
@ -16,7 +16,7 @@
|
||||||
<div class="ant-upload-text">{{ text }}</div>
|
<div class="ant-upload-text">{{ text }}</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<a-button v-else-if="buttonVisible" :disabled="isMaxCount || disabled || otherData.loading" :loading="otherData.loading">
|
<a-button v-else-if="buttonVisible" type="primary" :disabled="isMaxCount || disabled || otherData.loading" :loading="otherData.loading">
|
||||||
<Icon icon="ant-design:upload-outlined" />
|
<Icon icon="ant-design:upload-outlined" />
|
||||||
<span>{{ text }}</span>
|
<span>{{ text }}</span>
|
||||||
</a-button>
|
</a-button>
|
||||||
|
|
|
@ -86,6 +86,14 @@ const stuzy: AppRouteModule = {
|
||||||
title: '作业互评',
|
title: '作业互评',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'zyhpDetail',
|
||||||
|
name: 'zyhpDetail',
|
||||||
|
component: () => import('/@/views/zy/zyInfoStudentHp/ZyInfoStudentHpMyhpfsDetailList.vue'),
|
||||||
|
meta: {
|
||||||
|
title: '作业互评结果',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,11 +22,11 @@
|
||||||
<a-input v-model:value="formData.score" placeholder="请输入名称" :disabled="disabled"></a-input>
|
<a-input v-model:value="formData.score" placeholder="请输入名称" :disabled="disabled"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" v-show="formData.atype=='6'">
|
<!-- <a-col :span="24" v-show="formData.atype=='6'">
|
||||||
<a-form-item label="问卷平均分数" >
|
<a-form-item label="问卷平均分数" >
|
||||||
<a-input v-model:value="formData.average_score" placeholder="请输入名称" :disabled="disabled"></a-input>
|
<a-input v-model:value="formData.average_score" placeholder="请输入名称" :disabled="disabled"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col> -->
|
||||||
|
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
|
@ -30,18 +30,19 @@
|
||||||
<!-- <div style="font-size: 18px;font-weight: bold;" class="ellipsis">{{item.title}}</div> -->
|
<!-- <div style="font-size: 18px;font-weight: bold;" class="ellipsis">{{item.title}}</div> -->
|
||||||
<div style="font-size: 18px; font-weight: bold">{{ item.title }}</div>
|
<div style="font-size: 18px; font-weight: bold">{{ item.title }}</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" class="zyCon">开始时间:{{ dayjs(item.startTime).format('YYYY.MM.DD HH:mm') }}</a-col>
|
<a-col :span="24" class="zyCon">作业时间:{{ dayjs(item.startTime).format('YYYY.MM.DD HH:mm') }} ~ {{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</a-col>
|
||||||
<a-col :span="24" class="zyCon">结束时间:{{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</a-col>
|
<a-col :span="24" class="zyCon">互评时间:<span v-if="item.xshpkg == '1'">{{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }} ~ {{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</span><span v-else>未设置互评</span></a-col>
|
||||||
<a-col :span="24" class="zyCon">
|
<a-col :span="24" class="zyCon">
|
||||||
<div style="float: left">评分:{{ item.stuscore ? item.stuscore : '未评' }}分</div>
|
<div style="float: left">作业评分:{{ item.zzdf ? item.zzdf : item.stuscore ? item.stuscore : '未评' }}分</div>
|
||||||
|
<div style="float: right" class="wpopen" v-if="handleSfkshp(item)" @click="handleHpfs(item)">互评分数:{{ item.xshpfs ? item.xshpfs : '未评' }}分</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" class="zyCon">
|
<a-col :span="24" class="zyCon">
|
||||||
<div style="float: left" class="wpopen" :title="item.wwsftg" @click="handleOpenCcjg(item, '0')">网络查重:{{ getCctype(item, '1') }}</div>
|
<div style="float: left" class="wpopen" :title="item.wwsftg" @click="handleOpenCcjg(item, '0')">维普资源库查重:{{ getCctype(item, '1') }}</div>
|
||||||
<div style="float: right" class="wpopen" :title="item.nwsftg" @click="handleOpenCcjg(item, '1')">作业查重:{{ getCctype(item, '2') }}</div>
|
<div style="float: right" class="wpopen" :title="item.nwsftg" @click="handleOpenCcjg(item, '1')">本次作业查重:{{ getCctype(item, '2') }}</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" class="zyCon">
|
<a-col :span="24" class="zyCon">
|
||||||
<div style="float: left" class="wpopen" :title="item.aigcsftg" @click="handleOpenCcjg(item, '2')">Aigc查重:{{ getCctype(item, '3') }}</div>
|
<div style="float: left" class="wpopen" :title="item.xnsftg" @click="handleOpenCcjg(item, '3')">学校作业库查重:{{ getCctype(item, '4') }}</div>
|
||||||
<div style="float: right" class="wpopen" :title="item.xnsftg" @click="handleOpenCcjg(item, '3')">校内查重:{{ getCctype(item, '4') }}</div>
|
<div style="float: right" class="wpopen" :title="item.aigcsftg" @click="handleOpenCcjg(item, '2')">Aigc查重:{{ getCctype(item, '3') }}</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" style="text-align: center; margin-top: 20px">
|
<a-col :span="24" style="text-align: center; margin-top: 20px">
|
||||||
<a-button type="primary" @click="handleDetail(item)" style="margin-left: 5px; background: rgb(28, 132, 198)">详情</a-button>
|
<a-button type="primary" @click="handleDetail(item)" style="margin-left: 5px; background: rgb(28, 132, 198)">详情</a-button>
|
||||||
|
@ -131,6 +132,11 @@ const wrapperCol = reactive({
|
||||||
sm: { span: 16 },
|
sm: { span: 16 },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function handleHpfs(record){
|
||||||
|
var href = '/stuzy/zyhpDetail';
|
||||||
|
router.push({ path: href, query: { rwbh, xqxn, type, teano, zyStuId: record.stuId, mainId: record.id } });
|
||||||
|
}
|
||||||
|
|
||||||
function handleOpenCcjg(record, type) {
|
function handleOpenCcjg(record, type) {
|
||||||
var text = "0";
|
var text = "0";
|
||||||
if (type == '0') {
|
if (type == '0') {
|
||||||
|
@ -178,7 +184,7 @@ function handleSfkshp(record) {
|
||||||
var xshpkssj = new Date(record.xshpkssj);
|
var xshpkssj = new Date(record.xshpkssj);
|
||||||
var xshpjssj = new Date(record.xshpjssj);
|
var xshpjssj = new Date(record.xshpjssj);
|
||||||
var nowTime = new Date();
|
var nowTime = new Date();
|
||||||
if (sfkshp == '1' && nowTime.getTime() >= xshpkssj.getTime() && nowTime.getTime() <= xshpjssj.getTime()) {
|
if (record.stuFilePath && sfkshp == '1' && nowTime.getTime() >= xshpkssj.getTime() && nowTime.getTime() <= xshpjssj.getTime()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -961,6 +961,17 @@ async function submitForm() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(xshpkssj && startTime){
|
||||||
|
var endTimestamp = Date.parse(xshpkssj);
|
||||||
|
var startTimestamp = Date.parse(startTime);
|
||||||
|
if (endTimestamp < startTimestamp) {
|
||||||
|
createMessage.warning('互评开始间不能小于作业发布时间!');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
await saveOrUpdate(model, isUpdate.value)
|
await saveOrUpdate(model, isUpdate.value)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
|
|
@ -74,15 +74,15 @@
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" v-if="!isYl">
|
<a-col :span="24" v-if="!isYl" style="text-align: center;">
|
||||||
<a-form-item label="上传作业" v-bind="validateInfos.filePath">
|
<!-- <a-form-item label="上传作业" v-bind="validateInfos.filePath"> -->
|
||||||
<j-upload v-model:value="formData.filePath" :disabled="disabled" maxCount="1" accept=".doc,.docx,.pdf" :forceAcceptVerify="true" ></j-upload>
|
<j-upload v-model:value="formData.filePath" :disabled="disabled" maxCount="1" accept=".doc,.docx,.pdf" :text="`上传作业`" style="background: #ededed" :forceAcceptVerify="true" ></j-upload>
|
||||||
</a-form-item>
|
<!-- </a-form-item> -->
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" v-if="isYl">
|
<a-col :span="24" v-if="isYl">
|
||||||
<span style="width:300px;float: left;">
|
<span style="width:300px;float: left;">
|
||||||
<span style="float:left;">
|
<span style="float:left;">
|
||||||
<j-upload v-model:value="formData.stuFilePath" maxCount="1" accept=".doc,.docx,.pdf" :forceAcceptVerify="true"></j-upload>
|
<j-upload v-model:value="formData.stuFilePath" maxCount="1" accept=".doc,.docx,.pdf" :forceAcceptVerify="true"></j-upload>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span style="float: right;">
|
<span style="float: right;">
|
||||||
|
|
|
@ -31,7 +31,8 @@ export const columnsZyhp: BasicColumn[] = [
|
||||||
{
|
{
|
||||||
title: '学生姓名',
|
title: '学生姓名',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'studentName'
|
dataIndex: 'studentName',
|
||||||
|
slots: { customRender: 'stuNameSlot' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '作业预览',
|
title: '作业预览',
|
||||||
|
@ -50,7 +51,8 @@ export const columnsZyhpYhp: BasicColumn[] = [
|
||||||
{
|
{
|
||||||
title: '学生姓名',
|
title: '学生姓名',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'studentName'
|
dataIndex: 'studentName',
|
||||||
|
slots: { customRender: 'stuNameSlot' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '作业预览',
|
title: '作业预览',
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
|
<!-- <div style="height: calc(100% - 87px);overflow-y: auto;"> -->
|
||||||
<div>
|
<div>
|
||||||
<!--查询区域-->
|
<!--查询区域-->
|
||||||
<div class="jeecg-basic-table-form-container">
|
<div class="jeecg-basic-table-form-con tainer">
|
||||||
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :lg="8" :sm="24">
|
<a-col :lg="8" :sm="24">
|
||||||
|
@ -17,6 +18,7 @@
|
||||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||||
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
||||||
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
||||||
|
<a-button type="primary" @click="handleZyxxDetail" style="margin-left: 8px;;">作业信息</a-button>
|
||||||
</span>
|
</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -32,6 +34,9 @@
|
||||||
<template #htmlSlot="{ text }">
|
<template #htmlSlot="{ text }">
|
||||||
<div v-html="text"></div>
|
<div v-html="text"></div>
|
||||||
</template>
|
</template>
|
||||||
|
<template #stuNameSlot="{ text }">
|
||||||
|
匿名
|
||||||
|
</template>
|
||||||
<template #sfpfSlot="{ text }">
|
<template #sfpfSlot="{ text }">
|
||||||
<div v-if="text == '0'">否</div>
|
<div v-if="text == '0'">否</div>
|
||||||
<div v-if="text == '1'">是</div>
|
<div v-if="text == '1'">是</div>
|
||||||
|
@ -53,7 +58,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
||||||
import { ref, reactive, unref } from 'vue';
|
import { ref, reactive, unref,defineExpose } from 'vue';
|
||||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
import { useListPage } from '/@/hooks/system/useListPage';
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
||||||
|
@ -180,7 +185,7 @@ function handleSuccess() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleZyxxDetail(record: Recordable) {
|
function handleZyxxDetail(record: Recordable) {
|
||||||
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: record.mainId } }).then((res) => {
|
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
console.log('😒', res);
|
console.log('😒', res);
|
||||||
registerZyxxModal.value.disableSubmit = true;
|
registerZyxxModal.value.disableSubmit = true;
|
||||||
registerZyxxModal.value.edit(res);
|
registerZyxxModal.value.edit(res);
|
||||||
|
@ -193,10 +198,10 @@ function handleZyxxDetail(record: Recordable) {
|
||||||
function getTableAction(record) {
|
function getTableAction(record) {
|
||||||
if(record.sfpf == '0'){
|
if(record.sfpf == '0'){
|
||||||
return [
|
return [
|
||||||
{
|
// {
|
||||||
label: '作业信息',
|
// label: '作业信息',
|
||||||
onClick: handleZyxxDetail.bind(null, record),
|
// onClick: handleZyxxDetail.bind(null, record),
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
label: '评分',
|
label: '评分',
|
||||||
onClick: handleOneScore.bind(null, record),
|
onClick: handleOneScore.bind(null, record),
|
||||||
|
@ -204,10 +209,10 @@ function getTableAction(record) {
|
||||||
];
|
];
|
||||||
}else{
|
}else{
|
||||||
return [
|
return [
|
||||||
{
|
// {
|
||||||
label: '作业信息',
|
// label: '作业信息',
|
||||||
onClick: handleZyxxDetail.bind(null, record),
|
// onClick: handleZyxxDetail.bind(null, record),
|
||||||
},
|
// },
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,6 +253,12 @@ function searchReset() {
|
||||||
//刷新数据
|
//刷新数据
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
reload
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -0,0 +1,246 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div style="width:100%;text-align: right;">
|
||||||
|
<a-button type="primary" @click="handleback">返回</a-button>
|
||||||
|
<a-button type="primary" @click="handleZyxxDetail" style="margin-left: 8px;;">作业信息</a-button></div>
|
||||||
|
<!--引用表格-->
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<!--操作栏-->
|
||||||
|
<template #action="{ record }">
|
||||||
|
<TableAction :actions="getTableAction(record)" />
|
||||||
|
</template>
|
||||||
|
<!--字段回显插槽-->
|
||||||
|
<template #htmlSlot="{ text }">
|
||||||
|
<div v-html="text"></div>
|
||||||
|
</template>
|
||||||
|
<template #sfpfSlot="{ text }">
|
||||||
|
<div v-if="text == '0'">否</div>
|
||||||
|
<div v-if="text == '1'">是</div>
|
||||||
|
</template>
|
||||||
|
<template #stuNameSlot="{ text }">
|
||||||
|
匿名
|
||||||
|
</template>
|
||||||
|
<!--省市区字段回显插槽-->
|
||||||
|
<!--<template #pcaSlot="{text}">
|
||||||
|
{{ getAreaTextByCode(text) }}
|
||||||
|
</template>-->
|
||||||
|
<template #fileSlot="{ text }">
|
||||||
|
<span v-if="!text" style="font-size: 12px; font-style: italic">无文件</span>
|
||||||
|
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
<!-- 表单区域 -->
|
||||||
|
<ZyInfoStudentHpModal ref="registerModal" @success="handleSuccess"></ZyInfoStudentHpModal>
|
||||||
|
<ZyInfoDetailModal ref="registerZyxxModal" @success="handleSuccess"></ZyInfoDetailModal>
|
||||||
|
<ZyInfoStudentHpOneModal ref="registerOneModal" @success="handleSuccess"></ZyInfoStudentHpOneModal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
||||||
|
import { ref, reactive, unref,defineExpose } from 'vue';
|
||||||
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
|
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
||||||
|
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, getHpxxYpyList } from './ZyInfoStudentHp.api';
|
||||||
|
import { downloadFile } from '/@/utils/common/renderUtils';
|
||||||
|
import ZyInfoStudentHpModal from './components/ZyInfoStudentHpModal.vue';
|
||||||
|
import ZyInfoDetailModal from '/@/views/zy/zyInfo/components/ZyInfoDetailModal.vue';
|
||||||
|
import ZyInfoStudentHpOneModal from '/@/views/zy/zyInfoStudentHp/components/ZyInfoStudentHpOneModal.vue';
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
import { JInput } from '/@/components/Form';
|
||||||
|
import { useRouter } from 'vue-router';
|
||||||
|
|
||||||
|
//当前路由信息
|
||||||
|
const { currentRoute } = useRouter();
|
||||||
|
const { query } = unref(currentRoute);
|
||||||
|
const { rwbh, xqxn, type, teano ,mainId,zyStuId} = query; //获取传递参数
|
||||||
|
const toggleSearchStatus = ref<boolean>(false);
|
||||||
|
const queryParam = ref<any>({rwbh,zyStuId});
|
||||||
|
let router = useRouter();
|
||||||
|
const registerModal = ref();
|
||||||
|
const registerZyxxModal = ref();
|
||||||
|
const registerOneModal = ref();
|
||||||
|
//注册table数据
|
||||||
|
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
|
tableProps: {
|
||||||
|
api: list,
|
||||||
|
columns: columns,
|
||||||
|
canResize: false,
|
||||||
|
useSearchForm: false,
|
||||||
|
showActionColumn: false,
|
||||||
|
actionColumn: {
|
||||||
|
width: 120,
|
||||||
|
fixed: 'right',
|
||||||
|
},
|
||||||
|
beforeFetch: (params) => {
|
||||||
|
(params.column = ''), (params.order = ''); //新生成的默认不带排序
|
||||||
|
return Object.assign(params, queryParam.value);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
exportConfig: {
|
||||||
|
name: '学生成绩互评',
|
||||||
|
url: getExportUrl,
|
||||||
|
},
|
||||||
|
importConfig: {
|
||||||
|
url: getImportUrl,
|
||||||
|
success: handleSuccess,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { rowSelection, selectedRowKeys }] =
|
||||||
|
tableContext;
|
||||||
|
const labelCol = reactive({
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 7 },
|
||||||
|
});
|
||||||
|
const wrapperCol = reactive({
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 16 },
|
||||||
|
});
|
||||||
|
|
||||||
|
function handleback(){
|
||||||
|
var href = "/stuzy/studentDqzy";
|
||||||
|
router.push({path:href,query: {rwbh,xqxn,type,teano}});
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 新增事件
|
||||||
|
*/
|
||||||
|
function handleAdd() {
|
||||||
|
registerModal.value.disableSubmit = false;
|
||||||
|
registerModal.value.add();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑事件
|
||||||
|
*/
|
||||||
|
function handleEdit(record: Recordable) {
|
||||||
|
registerModal.value.disableSubmit = false;
|
||||||
|
registerModal.value.edit(record);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 详情
|
||||||
|
*/
|
||||||
|
function handleDetail(record: Recordable) {
|
||||||
|
registerModal.value.disableSubmit = true;
|
||||||
|
registerModal.value.edit(record);
|
||||||
|
}
|
||||||
|
function handleOneScore(record: Recordable) {
|
||||||
|
record.zyStuId = record.id;
|
||||||
|
record.rwbh = record.rwbh;
|
||||||
|
registerOneModal.value.disableSubmit = false;
|
||||||
|
registerOneModal.value.edit(record);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除事件
|
||||||
|
*/
|
||||||
|
async function handleDelete(record) {
|
||||||
|
await deleteOne({ id: record.id }, handleSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除事件
|
||||||
|
*/
|
||||||
|
async function batchHandleDelete() {
|
||||||
|
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成功回调
|
||||||
|
*/
|
||||||
|
function handleSuccess() {
|
||||||
|
(selectedRowKeys.value = []) && reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleZyxxDetail(record: Recordable) {
|
||||||
|
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
|
console.log('😒', res);
|
||||||
|
registerZyxxModal.value.disableSubmit = true;
|
||||||
|
registerZyxxModal.value.edit(res);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作栏
|
||||||
|
*/
|
||||||
|
function getTableAction(record) {
|
||||||
|
if(record.sfpf == '0'){
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: '作业信息',
|
||||||
|
onClick: handleZyxxDetail.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '评分',
|
||||||
|
onClick: handleOneScore.bind(null, record),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}else{
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: '作业信息',
|
||||||
|
onClick: handleZyxxDetail.bind(null, record),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下拉操作栏
|
||||||
|
*/
|
||||||
|
function getDropDownAction(record) {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: '详情',
|
||||||
|
onClick: handleDetail.bind(null, record),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '删除',
|
||||||
|
popConfirm: {
|
||||||
|
title: '是否确认删除',
|
||||||
|
confirm: handleDelete.bind(null, record),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询
|
||||||
|
*/
|
||||||
|
function searchQuery() {
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置
|
||||||
|
*/
|
||||||
|
function searchReset() {
|
||||||
|
queryParam.value = {};
|
||||||
|
selectedRowKeys.value = [];
|
||||||
|
//刷新数据
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
defineExpose({
|
||||||
|
reload
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.jeecg-basic-table-form-container {
|
||||||
|
.table-page-search-submitButtons {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.query-group-cust {
|
||||||
|
width: calc(50% - 15px);
|
||||||
|
min-width: 100px !important;
|
||||||
|
}
|
||||||
|
.query-group-split-cust {
|
||||||
|
width: 30px;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,5 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
|
<div style="width:100%;text-align: right;"><a-button type="primary" @click="handleZyxxDetail" style="margin-left: 8px;;">作业信息</a-button></div>
|
||||||
<!--引用表格-->
|
<!--引用表格-->
|
||||||
<BasicTable @register="registerTable">
|
<BasicTable @register="registerTable">
|
||||||
<!--操作栏-->
|
<!--操作栏-->
|
||||||
|
@ -34,7 +35,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
||||||
import { ref, reactive, unref } from 'vue';
|
import { ref, reactive, unref,defineExpose } from 'vue';
|
||||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
import { useListPage } from '/@/hooks/system/useListPage';
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
||||||
|
@ -63,6 +64,7 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
columns: columns,
|
columns: columns,
|
||||||
canResize: false,
|
canResize: false,
|
||||||
useSearchForm: false,
|
useSearchForm: false,
|
||||||
|
showActionColumn: false,
|
||||||
actionColumn: {
|
actionColumn: {
|
||||||
width: 120,
|
width: 120,
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
|
@ -144,7 +146,7 @@ function handleSuccess() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleZyxxDetail(record: Recordable) {
|
function handleZyxxDetail(record: Recordable) {
|
||||||
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: record.mainId } }).then((res) => {
|
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
console.log('😒', res);
|
console.log('😒', res);
|
||||||
registerZyxxModal.value.disableSubmit = true;
|
registerZyxxModal.value.disableSubmit = true;
|
||||||
registerZyxxModal.value.edit(res);
|
registerZyxxModal.value.edit(res);
|
||||||
|
@ -212,6 +214,9 @@ function searchReset() {
|
||||||
//刷新数据
|
//刷新数据
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
defineExpose({
|
||||||
|
reload
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
||||||
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
||||||
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
||||||
|
<a-button type="primary" @click="handleZyxxDetail" style="margin-left: 8px;;">作业信息</a-button>
|
||||||
</span>
|
</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -36,6 +37,9 @@
|
||||||
<div v-if="text == '0'">否</div>
|
<div v-if="text == '0'">否</div>
|
||||||
<div v-if="text == '1'">是</div>
|
<div v-if="text == '1'">是</div>
|
||||||
</template>
|
</template>
|
||||||
|
<template #stuNameSlot="{ text }">
|
||||||
|
匿名
|
||||||
|
</template>
|
||||||
<!--省市区字段回显插槽-->
|
<!--省市区字段回显插槽-->
|
||||||
<!--<template #pcaSlot="{text}">
|
<!--<template #pcaSlot="{text}">
|
||||||
{{ getAreaTextByCode(text) }}
|
{{ getAreaTextByCode(text) }}
|
||||||
|
@ -53,7 +57,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
||||||
import { ref, reactive, unref } from 'vue';
|
import { ref, reactive, unref,defineExpose } from 'vue';
|
||||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
import { useListPage } from '/@/hooks/system/useListPage';
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
import { columns, columnsZyhpYhp } from './ZyInfoStudentHp.data';
|
import { columns, columnsZyhpYhp } from './ZyInfoStudentHp.data';
|
||||||
|
@ -88,6 +92,7 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
columns: columnsZyhpYhp,
|
columns: columnsZyhpYhp,
|
||||||
canResize: false,
|
canResize: false,
|
||||||
useSearchForm: false,
|
useSearchForm: false,
|
||||||
|
showActionColumn: false,
|
||||||
actionColumn: {
|
actionColumn: {
|
||||||
width: 120,
|
width: 120,
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
|
@ -179,7 +184,7 @@ function handleSuccess() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleZyxxDetail(record: Recordable) {
|
function handleZyxxDetail(record: Recordable) {
|
||||||
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: record.mainId } }).then((res) => {
|
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
console.log('😒', res);
|
console.log('😒', res);
|
||||||
registerZyxxModal.value.disableSubmit = true;
|
registerZyxxModal.value.disableSubmit = true;
|
||||||
registerZyxxModal.value.edit(res);
|
registerZyxxModal.value.edit(res);
|
||||||
|
@ -192,10 +197,10 @@ function handleZyxxDetail(record: Recordable) {
|
||||||
function getTableAction(record) {
|
function getTableAction(record) {
|
||||||
if (record.sfpf == '0') {
|
if (record.sfpf == '0') {
|
||||||
return [
|
return [
|
||||||
{
|
// {
|
||||||
label: '作业信息',
|
// label: '作业信息',
|
||||||
onClick: handleZyxxDetail.bind(null, record),
|
// onClick: handleZyxxDetail.bind(null, record),
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
label: '评分',
|
label: '评分',
|
||||||
onClick: handleOneScore.bind(null, record),
|
onClick: handleOneScore.bind(null, record),
|
||||||
|
@ -203,10 +208,10 @@ function getTableAction(record) {
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
return [
|
return [
|
||||||
{
|
// {
|
||||||
label: '作业信息',
|
// label: '作业信息',
|
||||||
onClick: handleZyxxDetail.bind(null, record),
|
// onClick: handleZyxxDetail.bind(null, record),
|
||||||
},
|
// },
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -246,6 +251,9 @@ function searchReset() {
|
||||||
//刷新数据
|
//刷新数据
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
defineExpose({
|
||||||
|
reload
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div style="background: #fff; height: 97%; margin: 10px 0;padding:10px;">
|
<div style="background: #fff; margin: 10px 0;padding:10px;">
|
||||||
<div style="text-align: right;width:100%;"><a-button type="primary" @click="handleback">返回</a-button></div>
|
<div style="text-align: right;width:100%;"><a-button type="primary" @click="handleback">返回</a-button></div>
|
||||||
<a-tabs v-model:activeKey="activeKey" @change="handleChange">
|
<a-tabs v-model:activeKey="activeKey" @change="handleChange">
|
||||||
<a-tab-pane key="1" tab="待互评">
|
<a-tab-pane key="1" tab="待互评">
|
||||||
<ZyInfoStudentHpList />
|
<ZyInfoStudentHpList ref="dhpPage"/>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="2" tab="已互评" force-render>
|
<a-tab-pane key="2" tab="已互评" force-render>
|
||||||
<ZyInfoStudentHpYpyList />
|
<ZyInfoStudentHpYpyList ref="yhpPage" />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="3" tab="本次作业互评分数">
|
<a-tab-pane key="3" tab="我的作业互评结果" v-if="zyInfo.xssfck=='1'">
|
||||||
<ZyInfoStudentHpMyhpfsList />
|
<ZyInfoStudentHpMyhpfsList ref="wdhpPage" />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,18 +22,37 @@ import ZyInfoStudentHpYpyList from '/@/views/zy/zyInfoStudentHp/ZyInfoStudentHpY
|
||||||
import ZyInfoStudentHpMyhpfsList from '/@/views/zy/zyInfoStudentHp/ZyInfoStudentHpMyhpfsList.vue'
|
import ZyInfoStudentHpMyhpfsList from '/@/views/zy/zyInfoStudentHp/ZyInfoStudentHpMyhpfsList.vue'
|
||||||
|
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
var activeKey = ref('1');
|
var activeKey = ref('1');
|
||||||
|
const dhpPage = ref();
|
||||||
|
const yhpPage = ref();
|
||||||
|
const wdhpPage = ref();
|
||||||
const { currentRoute } = useRouter();
|
const { currentRoute } = useRouter();
|
||||||
const { query } = unref(currentRoute);
|
const { query } = unref(currentRoute);
|
||||||
const { rwbh, xqxn, type, teano ,mainId,zyStuId} = query; //获取传递参数
|
const { rwbh, xqxn, type, teano ,mainId,zyStuId} = query; //获取传递参数
|
||||||
let router = useRouter();
|
let router = useRouter();
|
||||||
|
const zyInfo = ref<any>({});
|
||||||
function handleChange(record) {
|
function handleChange(record) {
|
||||||
console.log('👩🚒', record);
|
console.log('👩🚒', record);
|
||||||
|
if(record == '1'){
|
||||||
|
dhpPage.value.reload();
|
||||||
|
}else if(record == '2'){
|
||||||
|
yhpPage.value.reload();
|
||||||
|
}else if(record == '3'){
|
||||||
|
wdhpPage.value.reload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function handleback(){
|
function handleback(){
|
||||||
var href = "/stuzy/studentDqzy";
|
var href = "/stuzy/studentDqzy";
|
||||||
router.push({path:href,query: {rwbh,xqxn,type,teano}});
|
router.push({path:href,query: {rwbh,xqxn,type,teano}});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
|
console.log('😒', res);
|
||||||
|
zyInfo.value = res;
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -2,9 +2,23 @@
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-row>
|
<a-row>
|
||||||
|
<a-col :span="24" v-show="formData.sturead == '1' && formData.pfbz">
|
||||||
|
<a-form-item label="评分标准" layout="inline">
|
||||||
|
<div v-html="formData.pfbz" style="margin-top: 5px"></div>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="评分" v-bind="validateInfos.stuScore">
|
<a-form-item label="评分" v-bind="validateInfos.stuScore">
|
||||||
<a-input-number v-model:value="formData.stuScore" placeholder="请输入评分" :min="1" :max="100" style="width:300px;" :disabled="disabled"></a-input-number>
|
<div style="width: 100%; padding: 5px 10px; font-size: 14px; color: darkgrey">说明:评分范围0-100之间;</div>
|
||||||
|
<a-input-number
|
||||||
|
v-model:value="formData.stuScore"
|
||||||
|
placeholder="请输入评分"
|
||||||
|
:min="0"
|
||||||
|
:max="100"
|
||||||
|
style="width: 300px"
|
||||||
|
:disabled="disabled"
|
||||||
|
@change="handleScoreChange"
|
||||||
|
></a-input-number>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -58,6 +72,13 @@ const disabled = computed(() => {
|
||||||
return props.formDisabled;
|
return props.formDisabled;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function handleScoreChange(record) {
|
||||||
|
console.log('😥', record);
|
||||||
|
if (record && parseInt(record) > 100) {
|
||||||
|
formData.stuScore = '';
|
||||||
|
createMessage.error('请输入正确的分数');
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 新增
|
* 新增
|
||||||
*/
|
*/
|
||||||
|
@ -100,6 +121,11 @@ async function submitForm() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!model.stuScore) {
|
||||||
|
createMessage.warning('分数为空,请输入正确的评分');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
console.log('👚', model);
|
console.log('👚', model);
|
||||||
await saveOne(model, isUpdate.value)
|
await saveOne(model, isUpdate.value)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
@ -124,7 +150,7 @@ defineExpose({
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.antd-modal-form {
|
.antd-modal-form {
|
||||||
min-height: 500px !important;
|
min-height: 200px !important;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding: 24px 24px 24px 24px;
|
padding: 24px 24px 24px 24px;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue