修改bug

This commit is contained in:
yangjun 2024-06-04 08:47:27 +08:00
parent 1228e8c0ac
commit 98a93fccce
34 changed files with 356 additions and 137 deletions

View File

@ -19,8 +19,8 @@ VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
VITE_GLOB_API_URL=/jeecg-boot VITE_GLOB_API_URL=/jeecg-boot
#后台接口全路径地址(必填) #后台接口全路径地址(必填)
#VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/jeecg-boot VITE_GLOB_DOMAIN_URL=https://zxkccx.webvpn.nenu.edu.cn/jeecg-boot
VITE_GLOB_DOMAIN_URL=http://210.47.29.100/jeecg-boot # VITE_GLOB_DOMAIN_URL=http://210.47.29.100/jeecg-boot
#RTC服务器地址 #RTC服务器地址
VITE_GLOB_RTC_SERVER = https://zxkccx.webvpn.nenu.edu.cn:8081 VITE_GLOB_RTC_SERVER = https://zxkccx.webvpn.nenu.edu.cn:8081
@ -38,5 +38,5 @@ VITE_USE_PWA = false
VITE_LEGACY = false VITE_LEGACY = false
# 是否开启单点登录 # 是否开启单点登录
VITE_GLOB_APP_OPEN_SSO = false VITE_GLOB_APP_OPEN_SSO = true

View File

@ -34,7 +34,7 @@
</a-form> </a-form>
</div> </div>
<a-row> <a-row>
<a-col :span="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;"> <a-col :lg="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;">
<div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div> <div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div>
<a-card style="height: 256px;border: 1px solid rgb(28, 132, 198);"> <a-card style="height: 256px;border: 1px solid rgb(28, 132, 198);">
<div class="rotate" :style="classFun(item.qpublish)">{{item.qpublish_dictText}}</div> <div class="rotate" :style="classFun(item.qpublish)">{{item.qpublish_dictText}}</div>

View File

@ -33,7 +33,7 @@
<a-row> <a-row>
<a-col :span="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;"> <a-col :span="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;">
<div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div> <div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div>
<a-card style="height: 210px;"> <a-card style="height: 210px;border: 1px solid rgb(28, 132, 198);">
<div class="rotate" :style="classFun(item.flag)">{{getStatus(item.flag)}}</div> <div class="rotate" :style="classFun(item.flag)">{{getStatus(item.flag)}}</div>
<a-row style="top: -48px;position: relative;"> <a-row style="top: -48px;position: relative;">
<a-col :span="24" style="margin-bottom: 10px;height:53px;overflow:hidden;"> <a-col :span="24" style="margin-bottom: 10px;height:53px;overflow:hidden;">
@ -85,7 +85,7 @@
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn,typa } = query;// const { rwbh,xqxn,type,teano } = query;//
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const APagination = Pagination; const APagination = Pagination;
const queryParam = ref<any>({}); const queryParam = ref<any>({});
@ -117,7 +117,7 @@
createMessage.error('还未到答卷时间!'); createMessage.error('还未到答卷时间!');
return; return;
} }
let endTimestamp = Date.parse(record.endTime); let endTimestamp = Date.parse(record.endTime+" 23:59:59");
if(timestamp>endTimestamp){ if(timestamp>endTimestamp){
createMessage.error('答卷时间已过!'); createMessage.error('答卷时间已过!');
return; return;
@ -139,6 +139,7 @@
queryParam.value.pageSize = pageSize.value; queryParam.value.pageSize = pageSize.value;
queryParam.value.rwbh = rwbh; queryParam.value.rwbh = rwbh;
queryParam.value.xqxn = xqxn; queryParam.value.xqxn = xqxn;
queryParam.value.teano = teano;
queryParam.value.atype = "6"; queryParam.value.atype = "6";
defHttp.get({ url: '/wjxWjxx/wjxWjxx/stuList', params: queryParam.value }).then(res => { defHttp.get({ url: '/wjxWjxx/wjxWjxx/stuList', params: queryParam.value }).then(res => {
// console.log(`🚀 ~ defHttp.get ~ res:`, res) // console.log(`🚀 ~ defHttp.get ~ res:`, res)

View File

@ -90,7 +90,7 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
useSearchForm: false, useSearchForm: false,
actionColumn: { actionColumn: {
width: 280, width: 280,
fixed: 'right', // fixed: 'right',
}, },
beforeFetch: (params) => { beforeFetch: (params) => {
params.column = '',params.order = '';// params.column = '',params.order = '';//

View File

@ -33,7 +33,7 @@
</a-form> </a-form>
</div> </div>
<a-row> <a-row>
<a-col :span="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;"> <a-col :lg="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;">
<div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div> <div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div>
<a-card style="height: 256px;border: 1px solid rgb(28, 132, 198);"> <a-card style="height: 256px;border: 1px solid rgb(28, 132, 198);">
<div class="rotate" :style="classFun(item.qpublish)">{{item.qpublish_dictText}}</div> <div class="rotate" :style="classFun(item.qpublish)">{{item.qpublish_dictText}}</div>
@ -59,13 +59,13 @@
</a-row> </a-row>
</a-col> </a-col>
<a-col :span="24" style="text-align:center;margin-top:8px;"> <a-col :span="24" style="text-align:center;margin-top:8px;">
<a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">编辑问卷</a-button> <a-button type="primary" @click="handlePeizhi(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">设置问卷</a-button>
<a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">发布问卷</a-button> <a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">发布问卷</a-button>
<a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">删除问卷</a-button> <a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">删除问卷</a-button>
<a-button type="primary" @click="handlePeizhi(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">问卷设置</a-button> <a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">编辑问卷</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">问卷预览</a-button> <a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">预览问卷</a-button>
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷详情</a-button> <a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷详情</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷预览</a-button> <a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">预览问卷</a-button>
<a-button type="primary" @click="handleDjjgs(item,'')" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷结果</a-button> <a-button type="primary" @click="handleDjjgs(item,'')" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷结果</a-button>
</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;">-->

View File

@ -33,7 +33,7 @@
<a-row> <a-row>
<a-col :span="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;"> <a-col :span="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;">
<div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div> <div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div>
<a-card style="height: 210px;"> <a-card style="height: 210px;border: 1px solid rgb(28, 132, 198);">
<div class="rotate" :style="classFun(item.flag)">{{getStatus(item.flag)}}</div> <div class="rotate" :style="classFun(item.flag)">{{getStatus(item.flag)}}</div>
<a-row style="top: -48px;position: relative;"> <a-row style="top: -48px;position: relative;">
<a-col :span="24" style="margin-bottom: 10px;height:53px;overflow:hidden;"> <a-col :span="24" style="margin-bottom: 10px;height:53px;overflow:hidden;">
@ -85,7 +85,7 @@
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn,typa } = query;// const { rwbh,xqxn,type,teano } = query;//
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const APagination = Pagination; const APagination = Pagination;
const queryParam = ref<any>({}); const queryParam = ref<any>({});
@ -117,7 +117,7 @@
createMessage.error('还未到答卷时间!'); createMessage.error('还未到答卷时间!');
return; return;
} }
let endTimestamp = Date.parse(record.endTime); let endTimestamp = Date.parse(record.endTime+" 23:59:59");
if(timestamp>endTimestamp){ if(timestamp>endTimestamp){
createMessage.error('答卷时间已过!'); createMessage.error('答卷时间已过!');
return; return;
@ -139,6 +139,7 @@
queryParam.value.pageSize = pageSize.value; queryParam.value.pageSize = pageSize.value;
queryParam.value.rwbh = rwbh; queryParam.value.rwbh = rwbh;
queryParam.value.xqxn = xqxn; queryParam.value.xqxn = xqxn;
queryParam.value.teano = teano;
queryParam.value.atype = "1"; queryParam.value.atype = "1";
defHttp.get({ url: '/wjxWjxx/wjxWjxx/stuList', params: queryParam.value }).then(res => { defHttp.get({ url: '/wjxWjxx/wjxWjxx/stuList', params: queryParam.value }).then(res => {
// console.log(`🚀 ~ defHttp.get ~ res:`, res) // console.log(`🚀 ~ defHttp.get ~ res:`, res)

View File

@ -155,6 +155,7 @@ async function submitForm(){
// values[i].openTime = openTime.value; // values[i].openTime = openTime.value;
} }
const isUpdate = false const isUpdate = false
console.log(`🚀 ~ submitForm ~ values:`, values)
await djtj(values, isUpdate); await djtj(values, isUpdate);
// //
emit('ok'); emit('ok');

View File

@ -43,9 +43,11 @@
<div style="margin-left: 40px;">题目分值 {{item.wjScore}} </div> <div style="margin-left: 40px;">题目分值 {{item.wjScore}} </div>
<div style="margin-left: 40px;">所得分值 {{item.itemScore}} </div> <div style="margin-left: 40px;">所得分值 {{item.itemScore}} </div>
</template> </template>
<!-- -{{item.itemSelected}}- -->
<a-checkbox-group v-model:value="item.itemSelected" style="width: 100%" size="default" disabled> <a-checkbox-group v-model:value="item.itemSelected" style="width: 100%" size="default" disabled>
<a-row> <a-row>
<a-col :span="24" v-for="(tmxx,index) in item.wjxWjxxTmxxList"> <a-col :span="24" v-for="(tmxx,index) in item.wjxWjxxTmxxList">
<!-- -{{tmxx}}- -->
<a-checkbox :value="tmxx.itemIndex" style="width: 100%;margin-bottom: 5px;"> <a-checkbox :value="tmxx.itemIndex" style="width: 100%;margin-bottom: 5px;">
<span v-html:value="tmxx.itemTitle" style="width:80%;font-size: 16px;"></span> <span v-html:value="tmxx.itemTitle" style="width:80%;font-size: 16px;"></span>
</a-checkbox> </a-checkbox>

View File

@ -22,7 +22,9 @@
<div style="width: 100%;" v-if="item.wjType==3"> <div style="width: 100%;" v-if="item.wjType==3">
<a-card > <a-card >
<template #title> <template #title>
<span>{{index+1}}</span><a-textarea placeholder="请填写单选题题干" v-model:value="item.wjTitle" style="width: 75%" :auto-size="{ minRows: 2, maxRows: 5 }"/> <span>{{index+1}}</span>
<a-textarea placeholder="请填写单选题题干" v-model:value="item.wjTitle" :bordered="false" :style="{width:handinpwei(item.wjTitle)}" :auto-size="{ minRows: 1, maxRows: 5 }"/>
<span style="color: #c2bfbf;">[单选]</span>
</template> </template>
<template #extra> <template #extra>
<a-tooltip placement="topRight" title="题目分数" v-if="isShow"> <a-tooltip placement="topRight" title="题目分数" v-if="isShow">
@ -43,7 +45,9 @@
</a-row> </a-row>
<a-radio-group v-model:value="item.itemSelected" style="width: 100%" size="default" :disabled="!isShow"> <a-radio-group v-model:value="item.itemSelected" style="width: 100%" size="default" :disabled="!isShow">
<div style="width: 100%" v-for="(tmxx,index) in item.wjxWjxxTmxxList"> <div style="width: 100%" v-for="(tmxx,index) in item.wjxWjxxTmxxList">
<a-radio :value="tmxx.itemIndex+``" style="width: 100%"><a-input placeholder="请填写选项" v-model:value="tmxx.itemTitle" :bordered="false" style="width:80%;"/> <a-radio :value="tmxx.itemIndex+``" style="width: 100%">
<a-input placeholder="请填写选项" v-model:value="tmxx.itemTitle" :style="{width:handinpwei(tmxx.itemTitle)}" :bordered="false" />
<span style="color: #ecb646;" v-if="item.itemSelected==tmxx.itemIndex">(正确答案)</span>
<a-tooltip placement="topLeft" title="在下方添加新的选项"><Icon icon="ant-design:plus-circle-outlined" style="cursor: pointer;margin:5px;font-size:20px;color: #1890ff;" @click="handleAddTmxx(tmxx,index,item.wjxWjxxTmxxList)" /></a-tooltip > <a-tooltip placement="topLeft" title="在下方添加新的选项"><Icon icon="ant-design:plus-circle-outlined" style="cursor: pointer;margin:5px;font-size:20px;color: #1890ff;" @click="handleAddTmxx(tmxx,index,item.wjxWjxxTmxxList)" /></a-tooltip >
<a-tooltip placement="topLeft" title="删除选项" ><Icon icon="ant-design:minus-circle-outlined" style="cursor: pointer;margin:5px;font-size:20px;color: #1890ff;" @click="handleRemTmxx(tmxx,index,item.wjxWjxxTmxxList)" /></a-tooltip > <a-tooltip placement="topLeft" title="删除选项" ><Icon icon="ant-design:minus-circle-outlined" style="cursor: pointer;margin:5px;font-size:20px;color: #1890ff;" @click="handleRemTmxx(tmxx,index,item.wjxWjxxTmxxList)" /></a-tooltip >
</a-radio> </a-radio>
@ -55,7 +59,8 @@
<div style="width: 100%;" v-else-if="item.wjType==4"> <div style="width: 100%;" v-else-if="item.wjType==4">
<a-card > <a-card >
<template #title> <template #title>
<span>{{index+1}}</span><a-textarea placeholder="请填写多选题题干" v-model:value="item.wjTitle" style="width: 75%" :auto-size="{ minRows: 2, maxRows: 5 }"/> <span>{{index+1}}</span><a-textarea placeholder="请填写多选题题干" v-model:value="item.wjTitle" :bordered="false" :style="{width:handinpwei(item.wjTitle)}" :auto-size="{ minRows: 1, maxRows: 5 }"/>
<span style="color: #c2bfbf;">[多选]</span>
</template> </template>
<template #extra> <template #extra>
<a-tooltip placement="topRight" title="题目分数" v-if="isShow"> <a-tooltip placement="topRight" title="题目分数" v-if="isShow">
@ -77,7 +82,9 @@
<a-checkbox-group v-model:value="item.itemSelected" style="width: 100%" :disabled="!isShow"> <a-checkbox-group v-model:value="item.itemSelected" style="width: 100%" :disabled="!isShow">
<a-row> <a-row>
<a-col :span="24" v-for="(tmxx,index) in item.wjxWjxxTmxxList"> <a-col :span="24" v-for="(tmxx,index) in item.wjxWjxxTmxxList">
<a-checkbox :value="tmxx.itemIndex"><a-input placeholder="请填写选项" v-model:value="tmxx.itemTitle" :bordered="false" style="width:80%;"/></a-checkbox> <!-- -{{item.itemSelected}}-{{tmxx.itemIndex}} -->
<a-checkbox :value="tmxx.itemIndex"><a-input placeholder="请填写选项" v-model:value="tmxx.itemTitle" :bordered="false" :style="{width:handinpwei(tmxx.itemTitle)}"/></a-checkbox>
<span style="color: #ecb646;" v-if="cheGrp(item.itemSelected,tmxx.itemIndex)">(正确答案)</span>
<a-tooltip placement="topLeft" title="在下方添加新的选项"><Icon icon="ant-design:plus-circle-outlined" style="cursor: pointer;margin:5px;font-size:20px;color: #1890ff;" @click="handleAddTmxx(tmxx,index,item.wjxWjxxTmxxList)"/></a-tooltip > <a-tooltip placement="topLeft" title="在下方添加新的选项"><Icon icon="ant-design:plus-circle-outlined" style="cursor: pointer;margin:5px;font-size:20px;color: #1890ff;" @click="handleAddTmxx(tmxx,index,item.wjxWjxxTmxxList)"/></a-tooltip >
<a-tooltip placement="topLeft" title="删除选项" ><Icon icon="ant-design:minus-circle-outlined" style="cursor: pointer;margin:5px;font-size:20px;color: #1890ff;" @click="handleRemTmxx(tmxx,index,item.wjxWjxxTmxxList)"/></a-tooltip > <a-tooltip placement="topLeft" title="删除选项" ><Icon icon="ant-design:minus-circle-outlined" style="cursor: pointer;margin:5px;font-size:20px;color: #1890ff;" @click="handleRemTmxx(tmxx,index,item.wjxWjxxTmxxList)"/></a-tooltip >
</a-col> </a-col>
@ -89,7 +96,8 @@
<div style="width: 100%;" v-else-if="item.wjType==5"> <div style="width: 100%;" v-else-if="item.wjType==5">
<a-card > <a-card >
<template #title> <template #title>
<span>{{index+1}}</span><a-textarea placeholder="请填写填空题题干" v-model:value="item.wjTitle" style="width: 75%" :auto-size="{ minRows: 2, maxRows: 5 }"/> <span>{{index+1}}</span><a-textarea placeholder="请填写填空题题干" v-model:value="item.wjTitle" :bordered="false" :style="{width:handinpwei(item.wjTitle)}" :auto-size="{ minRows: 1, maxRows: 5 }"/>
<span style="color: #c2bfbf;">[填空]</span>
</template> </template>
<template #extra> <template #extra>
<a-tooltip placement="topRight" title="题目分数" v-if="isShow"> <a-tooltip placement="topRight" title="题目分数" v-if="isShow">
@ -105,7 +113,7 @@
</template> </template>
<a-row v-if="isShow"> <a-row v-if="isShow">
<a-col :span="24"> <a-col :span="24">
<a-textarea placeholder="请填写答案" v-model:value="item.wjAnswer" :bordered="true" style="width:100%;" :auto-size="{ minRows: 2, maxRows: 5 }"/> <a-textarea placeholder="请填写答案" v-model:value="item.wjAnswer" :bordered="false" style="width:100%" :auto-size="{ minRows: 1, maxRows: 5 }"/>
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
@ -151,6 +159,11 @@ const emit = defineEmits(['register', 'success']);
function addTigan(type){ function addTigan(type){
var list = tiganData.value; var list = tiganData.value;
if(type==3){ if(type==3){
var chk = "";
console.log(`🚀 ~ addTigan ~ isShow:`, isShow)
if(isShow.value){
chk = "1";
}
let params = { let params = {
wjType:parseInt(type), wjType:parseInt(type),
wjIndex:list.length+1, wjIndex:list.length+1,
@ -158,12 +171,17 @@ function addTigan(type){
wjTitle:null, wjTitle:null,
wjScore:null, wjScore:null,
wjLeixing, wjLeixing,
// itemSelected:'1', itemSelected:chk,
wjxWjxxTmxxList:[{itemTitle:null,itemIndex:'1'},{itemTitle:null,itemIndex:'2'}], wjxWjxxTmxxList:[{itemTitle:null,itemIndex:'1'},{itemTitle:null,itemIndex:'2'}],
} }
list.push(params); list.push(params);
tiganData.value = [...list]; tiganData.value = [...list];
}else if(type==4){ }else if(type==4){
var chk = [];
if(isShow.value){
chk = ['1','2'];
}
let params = { let params = {
wjType:parseInt(type), wjType:parseInt(type),
wjIndex:list.length+1, wjIndex:list.length+1,
@ -171,7 +189,7 @@ function addTigan(type){
wjTitle:null, wjTitle:null,
wjScore:null, wjScore:null,
wjLeixing, wjLeixing,
// itemSelected:['1'], itemSelected:chk,
wjxWjxxTmxxList:[{itemTitle:null,itemIndex:'1'},{itemTitle:null,itemIndex:'2'}], wjxWjxxTmxxList:[{itemTitle:null,itemIndex:'1'},{itemTitle:null,itemIndex:'2'}],
} }
list.push(params); list.push(params);
@ -190,6 +208,36 @@ function addTigan(type){
tiganData.value = [...list]; tiganData.value = [...list];
} }
} }
function cheGrp(a,b){
var retChe = false;
if(a){
for(var i=0;i<a.length;i++){
if(a[i]==b){
retChe = true;
break;
}
}
}
return retChe;
}
function handinpwei(value){
if(!value){
return '20rem';
}else{
if(String(value).length * 1.1<20){
return '20rem';
}else if(String(value).length * 1.1>60){
return '60rem';
}else{
return String(value).length * 1.1 +"rem";
}
}
}
// //
function handleYylx(sylx){ function handleYylx(sylx){
var createBy = ""; var createBy = "";
@ -303,7 +351,7 @@ function handleAddTmxx(record,index,list){
} }
} }
list.push({itemTitle:null,itemIndex:itemIndex+1}); list.push({itemTitle:null,itemIndex:parseInt(itemIndex)+1});
} }
// //
function handleDelTigan(record,index){ function handleDelTigan(record,index){
@ -428,29 +476,34 @@ async function submitForm(){
<style lang="less" scoped> <style lang="less" scoped>
/deep/span.ant-radio + * { // /deep/span.ant-radio + * {
width: 100%; // width: 100%;
} // }
/deep/.ant-checkbox-wrapper { // /deep/.ant-checkbox-wrapper {
box-sizing: border-box; // box-sizing: border-box;
margin: 0; // margin: 0;
padding: 0; // padding: 0;
color: rgba(0, 0, 0, 0.85); // color: rgba(0, 0, 0, 0.85);
font-size: 14px; // font-size: 14px;
font-variant: tabular-nums; // font-variant: tabular-nums;
line-height: 1.5715; // line-height: 1.5715;
list-style: none; // list-style: none;
font-feature-settings: tnum; // font-feature-settings: tnum;
display: inline-flex; // display: inline-flex;
align-items: baseline; // align-items: baseline;
line-height: unset; // line-height: unset;
cursor: pointer; // cursor: pointer;
width: 80%; // width: 80%;
} // }
/deep/.ant-checkbox + span { // /deep/.ant-checkbox + span {
padding-right: 8px; // padding-right: 8px;
padding-left: 8px; // padding-left: 8px;
width: 100%; // width: 100%;
// }
.auto-width-input {
width: max-content;
min-width: 100px; /* 设置最小宽度,防止过度缩小 */
} }
</style> </style>

View File

@ -151,10 +151,13 @@ function toIndex(){
}) })
let roleList = userStore?.getLoginInfo?.roleList let roleList = userStore?.getUserInfo?.roleList;
console.log(`🚀 ~ onMounted ~ userStore:`, userStore)
console.log(`🚀 ~ onMounted ~ roleList:`, roleList)
if(roleList){ if(roleList){
for(var i=0;i<roleList.length;i++){ for(var i=0;i<roleList.length;i++){
var roleCode = roleList[i].roleCode var roleCode = roleList[i].roleCode
console.log(`🚀 ~ onMounted ~ roleCode:`, roleCode)
if(roleCode == 'admin' || roleCode == 'jwms'){ if(roleCode == 'admin' || roleCode == 'jwms'){
sfxx.value = "1"; sfxx.value = "1";
} }

View File

@ -64,7 +64,7 @@ function toWeek(week){
loadData() loadData()
}); });
window.open('/zy/dqkcDetail?rwbh='+item.rwbh+'&xqxn='+getSysConfig().flag1+"&type=1","_blank"); window.open('/zy/dqkcDetail?rwbh='+item.rwbh+'&xqxn='+getSysConfig().flag1+"&type=1"+"&teano="+item.jgh,"_blank");
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -1,11 +1,14 @@
<template> <template>
<div style="margin-top:10px;background:#fff;height: calc(100vh - 225px);overflow:auto;"> <div style="margin-top:10px;background:#fff;height: calc(100vh - 225px);overflow:auto;">
<div style="width:100%;text-align:right;">
<a-button type="primary" style="margin-left:10px;" @click="handleZtyl(jxdgInfo)">预览</a-button>
</div>
<a-card> <a-card>
<div> <div>
<a-row> <a-row>
<a-col :span="3" style="font-size: 18px;font-weight: bold;">课程简介</a-col> <a-col :lg="3" style="font-size: 18px;font-weight: bold;">课程简介</a-col>
<a-col :span="15"><a-textarea style="width: 100%;" v-model:value="jxdgInfo.kcjs"></a-textarea></a-col> <a-col :lg="15"><a-textarea style="width: 100%;" v-model:value="jxdgInfo.kcjs"></a-textarea></a-col>
<a-col :span="6" style="text-align:right;"><a-button type="primary" @click="addKcjsHandle(1)">提交</a-button><a-button type="primary" style="margin-left:10px;" @click="handleYinyong(jxdgInfo)">引用</a-button></a-col> <a-col :lg="6" style="text-align:right;"><a-button type="primary" @click="addKcjsHandle(1)">提交</a-button><a-button type="primary" style="margin-left:10px;" @click="handleYinyong(jxdgInfo)">引用</a-button></a-col>
</a-row> </a-row>
</div> </div>
</a-card> </a-card>
@ -71,6 +74,7 @@
</a-card> </a-card>
<ZyCjwtModal ref="ZyCjwtModalPage" @success="handleCjwtOk" /> <ZyCjwtModal ref="ZyCjwtModalPage" @success="handleCjwtOk" />
<ZyJxdgListModal ref="ZyJxdgListModalPage" @success="getKcjsJxdg" /> <ZyJxdgListModal ref="ZyJxdgListModalPage" @success="getKcjsJxdg" />
<studentZyxxModal ref="studentZyxxModalPage" />
</div> </div>
</template> </template>
@ -92,6 +96,7 @@
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils'; import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
import JeecgPdfView from '/@/views/demo/jeecg/JeecgPdfView.vue'; import JeecgPdfView from '/@/views/demo/jeecg/JeecgPdfView.vue';
import { useGlobSetting } from '/@/hooks/setting'; import { useGlobSetting } from '/@/hooks/setting';
import studentZyxxModal from '/@/views/site/studentWdkc/studentZyxxModal.vue';
const globSetting = useGlobSetting(); const globSetting = useGlobSetting();
const baseApiUrl = globSetting.domainUrl; const baseApiUrl = globSetting.domainUrl;
@ -99,7 +104,7 @@ const baseApiUrl = globSetting.domainUrl;
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn } = query;// const { rwbh,xqxn,teano } = query;//
const APagination = Pagination; const APagination = Pagination;
const current = ref<number>(1); const current = ref<number>(1);
const total = ref<number>(0); const total = ref<number>(0);
@ -108,6 +113,7 @@ const baseApiUrl = globSetting.domainUrl;
const tkzjParam = ref({rwbh:rwbh}); const tkzjParam = ref({rwbh:rwbh});
const ZyCjwtModalPage = ref(); const ZyCjwtModalPage = ref();
const ZyJxdgListModalPage = ref(); const ZyJxdgListModalPage = ref();
const studentZyxxModalPage = ref();
const cjwtSource = ref([]); const cjwtSource = ref([]);
let router = useRouter(); let router = useRouter();
const { createMessage } = useMessage(); const { createMessage } = useMessage();
@ -137,6 +143,11 @@ const baseApiUrl = globSetting.domainUrl;
}); });
} }
function handleZtyl(record){
studentZyxxModalPage.value.disableSubmit = true;
studentZyxxModalPage.value.edit(record);
}
// //
function handleYinyong(record){ function handleYinyong(record){
ZyJxdgListModalPage.value.disableSubmit = true; ZyJxdgListModalPage.value.disableSubmit = true;
@ -201,7 +212,7 @@ const baseApiUrl = globSetting.domainUrl;
} }
function cjwtData(){ function cjwtData(){
defHttp.get({ url: '/zyCjwt/zyCjwt/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,column:'createTime',order:'desc' } }).then((res) => { defHttp.get({ url: '/zyCjwt/zyCjwt/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,teano:teano,column:'createTime',order:'desc' } }).then((res) => {
// console.log(`🚀 ~ defHttp.get ~ res:`, res) // console.log(`🚀 ~ defHttp.get ~ res:`, res)
cjwtSource.value = res.records; cjwtSource.value = res.records;
total.value = res.total; total.value = res.total;
@ -212,7 +223,9 @@ const baseApiUrl = globSetting.domainUrl;
} }
// //
function getKcjsJxdg(){ function getKcjsJxdg(){
defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh:rwbh,xqxn:xqxn } }).then((res) => { console.log(`🚀 ~111111111111111:`)
defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh:rwbh,xqxn:xqxn,teano:teano } }).then((res) => {
console.log(`🚀 ~2222222222222222:`,res)
if(res){ if(res){
jxdgInfo.value = res; jxdgInfo.value = res;
} }
@ -223,13 +236,14 @@ const baseApiUrl = globSetting.domainUrl;
var model = jxdgInfo.value; var model = jxdgInfo.value;
model.rwbh = rwbh; model.rwbh = rwbh;
model.xqxn = xqxn; model.xqxn = xqxn;
// console.log(`🚀 ~ addKcjsHandle ~ model:`, model) model.teano = teano;
console.log(`🚀 ~ addKcjsHandle ~ model:`, model)
if(model.id){ if(model.id){
if(type=='1'){ if(type=='1'){
model.filePath = ''; model.filePath = '';
} }
defHttp.post({ url: '/zyJxdg/zyJxdg/edit', params: model }).then((res) => { defHttp.post({ url: '/zyJxdg/zyJxdg/edit', params: model }).then((res) => {
// console.log(`🚀 ~ defHttp.post 111~ res:`, res) console.log(`🚀 ~ defHttp.post 111~ res:`, res)
getKcjsJxdg(); getKcjsJxdg();
}); });
}else{ }else{
@ -237,7 +251,7 @@ const baseApiUrl = globSetting.domainUrl;
model.filePath = ''; model.filePath = '';
} }
defHttp.post({ url: '/zyJxdg/zyJxdg/add', params: model }).then((res) => { defHttp.post({ url: '/zyJxdg/zyJxdg/add', params: model }).then((res) => {
// console.log(`🚀 ~ defHttp.post 222~ res:`, res) console.log(`🚀 ~ defHttp.post 222~ res:`, res)
getKcjsJxdg(); getKcjsJxdg();
}); });
} }

View File

@ -69,7 +69,7 @@
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn,type } = query;// const { rwbh,xqxn,type,teano } = query;//
let router = useRouter(); let router = useRouter();
@ -101,11 +101,11 @@
href = "/zy/dqkcCdxx"; href = "/zy/dqkcCdxx";
} }
router.push({path:href,query: {rwbh,xqxn,type}}); router.push({path:href,query: {rwbh,xqxn,type,teano}});
} }
function gotoPageByName(name) { function gotoPageByName(name) {
router.push({ name, query: { rwbh, xqxn, type } }); router.push({ name, query: { rwbh, xqxn, type,teano } });
} }
// //

View File

@ -51,7 +51,7 @@
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn,type } = query;// const { rwbh,xqxn,type,teano } = query;//
let router = useRouter(); let router = useRouter();
@ -71,11 +71,11 @@
}else if(zytype=='tlq'){// }else if(zytype=='tlq'){//
href = "/stuzy/stuTlq"; href = "/stuzy/stuTlq";
}else if(zytype == 'stuJiaoXueDanYuanNeiRong'){// }else if(zytype == 'stuJiaoXueDanYuanNeiRong'){//
router.push({ name: 'stuJiaoXueDanYuanNeiRong', query: { rwbh,xqxn,type } }); router.push({ name: 'stuJiaoXueDanYuanNeiRong', query: { rwbh,xqxn,type,teano } });
return; return;
} }
router.push({path:href,query: {rwbh,xqxn,type}}); router.push({path:href,query: {rwbh,xqxn,type,teano}});
} }
// //

View File

@ -59,7 +59,7 @@ function openKecheng(record){
defHttp.post({ url: '/zyDbtx/zyDbtx/deleteByRwbhCreate',params:{rwbh:record.rwbh} }).then((res) => { defHttp.post({ url: '/zyDbtx/zyDbtx/deleteByRwbhCreate',params:{rwbh:record.rwbh} }).then((res) => {
loaddata() loaddata()
}); });
var url = "/stuzy/studentMain?rwbh="+record.rwbh+"&xqxn="+record.xqxn; var url = "/stuzy/studentMain?rwbh="+record.rwbh+"&xqxn="+record.xqxn+"&teano="+record.jgh;
window.open(url,'_blank') window.open(url,'_blank')
} }

View File

@ -3,8 +3,8 @@
<a-card> <a-card>
<div> <div>
<a-row> <a-row>
<a-col :span="3" style="font-size: 18px;font-weight: bold;">课程简介</a-col> <a-col :lg="3" style="font-size: 18px;font-weight: bold;">课程简介</a-col>
<a-col :span="20">{{jxdgInfo.kcjs}}</a-col> <a-col :lg="20">{{jxdgInfo.kcjs}}</a-col>
</a-row> </a-row>
</div> </div>
</a-card> </a-card>
@ -97,7 +97,7 @@ const baseApiUrl = globSetting.domainUrl;
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn } = query;// const { rwbh,xqxn,teano } = query;//
const APagination = Pagination; const APagination = Pagination;
const current = ref<number>(1); const current = ref<number>(1);
const total = ref<number>(0); const total = ref<number>(0);
@ -168,7 +168,7 @@ function openJxrlPdf(record){
} }
function cjwtData(){ function cjwtData(){
defHttp.get({ url: '/zyCjwt/zyCjwt/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,column:'createTime',order:'desc' } }).then((res) => { defHttp.get({ url: '/zyCjwt/zyCjwt/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,teano:teano,column:'createTime',order:'desc' } }).then((res) => {
// console.log(`🚀 ~ defHttp.get ~ res:`, res) // console.log(`🚀 ~ defHttp.get ~ res:`, res)
cjwtSource.value = res.records; cjwtSource.value = res.records;
total.value = res.total; total.value = res.total;
@ -179,7 +179,7 @@ function openJxrlPdf(record){
} }
// //
function getKcjsJxdg(){ function getKcjsJxdg(){
defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh:rwbh,xqxn:xqxn} }).then((res) => { defHttp.get({ url: '/zyJxdg/zyJxdg/getKcjsJxdg', params: { rwbh:rwbh,xqxn:xqxn,teano:teano} }).then((res) => {
// console.log(`🚀 1111111111111~ getKcjsJxdg ~ res:`, res) // console.log(`🚀 1111111111111~ getKcjsJxdg ~ res:`, res)
if(res){ if(res){
jxdgInfo.value = res; jxdgInfo.value = res;

View File

@ -193,7 +193,7 @@ onMounted(() => {
tjData.value = res; tjData.value = res;
}); });
let roleList = userStore?.getLoginInfo?.roleList let roleList = userStore?.getUserInfo?.roleList;
if(roleList){ if(roleList){
for(var i=0;i<roleList.length;i++){ for(var i=0;i<roleList.length;i++){
var roleCode = roleList[i].roleCode var roleCode = roleList[i].roleCode

View File

@ -1,7 +1,7 @@
<template> <template>
<a-card class="rowGutter"> <a-card class="rowGutter">
<a-row :gutter="[16,16]"> <a-row :gutter="[16,16]">
<a-col :span="12" v-for="(item,index) in list" :key="index"> <a-col :lg="12" v-for="(item,index) in list" :key="index">
<a :href="item.nlink" target="_blank" class="itemLink"> <a :href="item.nlink" target="_blank" class="itemLink">
<span class=""> <span class="">
<WifiOutlined :rotate="45" class="greenTxt"/> <WifiOutlined :rotate="45" class="greenTxt"/>
@ -14,8 +14,8 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row style="font-size:16px;font-weight: 700;margin-top:10px;"> <a-row style="font-size:16px;font-weight: 700;margin-top:10px;">
<a-col :span="3">调停课通知</a-col> <a-col :lg="3">调停课通知</a-col>
<a-col :span="15"> <a-col :lg="15">
<a-carousel autoplay easing="linear"> <a-carousel autoplay easing="linear">
<div v-for="(item,index) in tklist" :key="index" style="font-size:16px;font-weight: 700;">{{item.kcmc}}</div> <div v-for="(item,index) in tklist" :key="index" style="font-size:16px;font-weight: 700;">{{item.kcmc}}</div>
</a-carousel> </a-carousel>

View File

@ -3,7 +3,7 @@
<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"> <a-col :span="24">
<a-card title="外网检测" > <a-card title="网络查重" >
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="文件"> <a-form-item label="文件">
@ -30,7 +30,7 @@
<a-col :span="24"> <a-col :span="24">
<a-card title="校内检测(自定义范围库唯一标识及名称)" > <a-card title="校内查重(自定义范围库唯一标识及名称)" >
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="文件"> <a-form-item label="文件">
@ -58,7 +58,7 @@
<a-col :span="24"> <a-col :span="24">
<a-card title="AIGC检测" > <a-card title="Aigc查重" >
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="文件"> <a-form-item label="文件">
@ -272,7 +272,7 @@
defHttp.post({ url: '/blZycc/blZycc/aigcKsjc', params: formData, }).then((res) => { defHttp.post({ url: '/blZycc/blZycc/aigcKsjc', params: formData, }).then((res) => {
}); });
} }
//AIGC //Aigc
function handleAigccxjcjg(){ function handleAigccxjcjg(){
confirmLoading.value = true; confirmLoading.value = true;
defHttp.post({ url: '/blZycc/blZycc/aigcCxjcjg', params: formData, }).then((res) => { defHttp.post({ url: '/blZycc/blZycc/aigcCxjcjg', params: formData, }).then((res) => {

View File

@ -7,7 +7,7 @@
<div class="topButton"> <div class="topButton">
<a-space v-if="!isPreview"> <a-space v-if="!isPreview">
<!-- <a-button type="primary" @click="save" :loading="saveLoading" title="保存"><Icon icon="ant-design:save-outlined"/>保存</a-button> --> <!-- <a-button type="primary" @click="save" :loading="saveLoading" title="保存"><Icon icon="ant-design:save-outlined"/>保存</a-button> -->
<a-button type="primary" @click="addOne()" class="addBtn" title="新增标题"><Icon icon="ant-design:plus-outlined"/>新增标题</a-button> <a-button type="primary" @click="addOne()" class="addBtn" title="新增章节"><Icon icon="ant-design:plus-outlined"/>新增章节</a-button>
<a-button type="" v-if="!isPreview" @click="() => { isPreview = true; reloadStn(); }" class="addBtn" title="预览"><Icon icon="ant-design:fund-view-outlined"/>预览</a-button> <a-button type="" v-if="!isPreview" @click="() => { isPreview = true; reloadStn(); }" class="addBtn" title="预览"><Icon icon="ant-design:fund-view-outlined"/>预览</a-button>
<a-button @click="reload"><Icon icon="ant-design:reload-outlined"/>刷新</a-button> <a-button @click="reload"><Icon icon="ant-design:reload-outlined"/>刷新</a-button>
</a-space> </a-space>
@ -43,7 +43,9 @@
<template #extra> <template #extra>
<span v-show="one.showBtn"> <span v-show="one.showBtn">
<a-space> <a-space>
<div><a-button type="primary" size="small" @click="addTwo($event, one)" class="twoBtn addBtn" title="新增章节"><Icon icon="ant-design:plus-outlined"/></a-button></div> <div v-show="one.fabu=='0'"><a-button type="primary" size="small" @click="handleFabu(one,'1')" class="addBtn" title="发布"><Icon icon="ant-design:check-outlined"/></a-button></div>
<div v-show="one.fabu=='1'"><a-button type="primary" size="small" @click="handleFabu(one,'0')" class="addBtn" title="取消发布"><Icon icon="ant-design:rollback-outlined"/></a-button></div>
<div><a-button type="primary" size="small" @click="addTwo($event, one)" class="twoBtn addBtn" title="新增节次"><Icon icon="ant-design:plus-outlined"/></a-button></div>
<div><a-button type="primary" size="small" danger @click="delOne($event, one)" class="addBtn" title="删除"><Icon icon="ant-design:delete"/></a-button></div> <div><a-button type="primary" size="small" danger @click="delOne($event, one)" class="addBtn" title="删除"><Icon icon="ant-design:delete"/></a-button></div>
</a-space> </a-space>
</span> </span>
@ -169,7 +171,7 @@
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh, xqxn, type } = query;// const { rwbh, xqxn, type,teano } = query;//
const { createConfirm, createMessage } = useMessage(); const { createConfirm, createMessage } = useMessage();
const queryParam = ref<any>({}); const queryParam = ref<any>({});
@ -214,6 +216,7 @@
addOne = '/teachingunitcontent/kcTeachingUnitContentOne/add', addOne = '/teachingunitcontent/kcTeachingUnitContentOne/add',
editOne = '/teachingunitcontent/kcTeachingUnitContentOne/edit', editOne = '/teachingunitcontent/kcTeachingUnitContentOne/edit',
delOne = '/teachingunitcontent/kcTeachingUnitContentOne/delete', delOne = '/teachingunitcontent/kcTeachingUnitContentOne/delete',
editJxdyOne = '/teachingunitcontent/kcTeachingUnitContentOne/editJxdyOne',
addTwo = '/teachingunitcontent/kcTeachingUnitContentTwo/add', addTwo = '/teachingunitcontent/kcTeachingUnitContentTwo/add',
editTwo = '/teachingunitcontent/kcTeachingUnitContentTwo/edit', editTwo = '/teachingunitcontent/kcTeachingUnitContentTwo/edit',
@ -235,6 +238,7 @@
const addOneFetch = (params) => defHttp.post({ url: Api.addOne, params }, { isTransformResponse: false }); const addOneFetch = (params) => defHttp.post({ url: Api.addOne, params }, { isTransformResponse: false });
const editOneFetch = (params) => defHttp.put({ url: Api.editOne, params }, { isTransformResponse: false }); const editOneFetch = (params) => defHttp.put({ url: Api.editOne, params }, { isTransformResponse: false });
const delOneFetch = (params) => defHttp.delete({ url: Api.delOne, params }, { isTransformResponse: false, joinParamsToUrl: true }); const delOneFetch = (params) => defHttp.delete({ url: Api.delOne, params }, { isTransformResponse: false, joinParamsToUrl: true });
const editJxdyOne = (params) => defHttp.put({ url: Api.editJxdyOne, params }, { isTransformResponse: false });
const addTwoFetch = (params) => defHttp.post({ url: Api.addTwo, params }, { isTransformResponse: false }); const addTwoFetch = (params) => defHttp.post({ url: Api.addTwo, params }, { isTransformResponse: false });
const editTwoFetch = (params) => defHttp.put({ url: Api.editTwo, params }, { isTransformResponse: false }); const editTwoFetch = (params) => defHttp.put({ url: Api.editTwo, params }, { isTransformResponse: false });
@ -258,6 +262,7 @@
let params = { let params = {
rwbh, rwbh,
xqxn, xqxn,
teano,
} }
await listAll(params).then(res => { await listAll(params).then(res => {
dataRecursion(res, (x) => x._id = x.id); dataRecursion(res, (x) => x._id = x.id);
@ -295,6 +300,18 @@
dataRecursion(dataSource.value, (x, i) => x.sort = i+1); dataRecursion(dataSource.value, (x, i) => x.sort = i+1);
} }
function handleFabu(record,type){
console.log(`🚀 ~ handleFabu ~ record,type:`, record,type)
var params = {id:record.id,fabu:type}
editJxdyOne(params).then(res => {
if(res.success){
createMessage.success('操作成功!');
reload();
}
});
}
// //
function getBtnEle(e, className){ function getBtnEle(e, className){
if(e){ if(e){
@ -348,7 +365,7 @@
addOneFetch(nowData).then(res => { addOneFetch(nowData).then(res => {
if(res.success){ if(res.success){
nowData.id = res.result.id; nowData.id = res.result.id;
createMessage.success('添加标题成功!'); createMessage.success('新增章节成功!');
// nextTick(() => { // nextTick(() => {
// refreshDataSort(); // refreshDataSort();
// }); // });
@ -359,7 +376,7 @@
function editOne(one){ function editOne(one){
editOneFetch(one).then(res => { editOneFetch(one).then(res => {
if(res.success){ if(res.success){
createMessage.success('修改标题成功!'); createMessage.success('修改章节成功!');
} }
}); });
} }
@ -372,7 +389,7 @@
let index = dataSource.value.findIndex(x => x == one); let index = dataSource.value.findIndex(x => x == one);
if(index == -1) return; if(index == -1) return;
dataSource.value.splice(index, 1); dataSource.value.splice(index, 1);
createMessage.success('删除标题成功!'); createMessage.success('删除章节成功!');
nextTick(() => { nextTick(() => {
refreshDataSort(); refreshDataSort();
}) })
@ -415,7 +432,7 @@
addTwoFetch(nowData).then(res => { addTwoFetch(nowData).then(res => {
if(res.success){ if(res.success){
nowData.id = res.result.id; nowData.id = res.result.id;
createMessage.success('添加节成功!'); createMessage.success('添加成功!');
} }
}); });
} }
@ -423,7 +440,7 @@
function editTwo(two){ function editTwo(two){
editTwoFetch(two).then(res => { editTwoFetch(two).then(res => {
if(res.success){ if(res.success){
createMessage.success('修改节成功!'); createMessage.success('修改成功!');
} }
}); });
} }
@ -435,7 +452,7 @@
let index = one.childrenList.findIndex(x => x == two); let index = one.childrenList.findIndex(x => x == two);
if(index == -1) return; if(index == -1) return;
one.childrenList.splice(index, 1); one.childrenList.splice(index, 1);
createMessage.success('删除节成功!'); createMessage.success('删除成功!');
nextTick(() => { nextTick(() => {
refreshDataSort(); refreshDataSort();
}) })

View File

@ -187,7 +187,7 @@
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh, xqxn, type } = query;// const { rwbh, xqxn, type, teano } = query;//
const props = defineProps({ const props = defineProps({
@ -258,6 +258,8 @@
let params = { let params = {
rwbh, rwbh,
xqxn, xqxn,
teano,
fabu:'1',
} }
await listAll(params).then(res => { await listAll(params).then(res => {
dataRecursion(res, (x) => x._id = x.id); dataRecursion(res, (x) => x._id = x.id);

View File

@ -61,8 +61,8 @@
const APagination = Pagination; const APagination = Pagination;
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn } = query;// const { rwbh,xqxn,teano } = query;//
const queryParam = ref<any>({ rwbh,xqxn ,ggStatus:'1'}); const queryParam = ref<any>({ rwbh,xqxn,teano ,ggStatus:'1'});
const current = ref<number>(0); const current = ref<number>(0);
const total = ref<number>(0); const total = ref<number>(0);
const pageNo = ref<number>(0); const pageNo = ref<number>(0);
@ -94,6 +94,7 @@
queryParam.value = {}; queryParam.value = {};
queryParam.value.rwbh = rwbh; queryParam.value.rwbh = rwbh;
queryParam.value.xqxn = xqxn; queryParam.value.xqxn = xqxn;
queryParam.value.teano = teano;
queryParam.value.ggStatus='1'; queryParam.value.ggStatus='1';
total.value = 1; total.value = 1;
handlePageChange(1); handlePageChange(1);
@ -110,6 +111,7 @@
queryParam.value.pageSize = pageSize.value; queryParam.value.pageSize = pageSize.value;
queryParam.value.rwbh = rwbh; queryParam.value.rwbh = rwbh;
queryParam.value.xqxn = xqxn; queryParam.value.xqxn = xqxn;
queryParam.value.teano = teano;
queryParam.value.column="createTime"; queryParam.value.column="createTime";
queryParam.value.order="desc"; queryParam.value.order="desc";
console.log(`🚀 ~ reload ~ queryParam:`, queryParam) console.log(`🚀 ~ reload ~ queryParam:`, queryParam)

View File

@ -40,12 +40,22 @@
</a-row> </a-row>
<a-row style="padding:10px;"> <a-row style="padding:10px;">
<a-col :span="16"> <a-col :span="16">
<a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0">编辑</a-button> <a @click="handleEdit(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==0" title="编辑"><Icon icon="ant-design:form-outlined"/></a>
<a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0">删除</a-button> <a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==0"/>
<a-button type="primary" @click="handleCh(item)" style="margin-left:5px;padding: 0px 8px;background:#a7a6a6;" v-if="item.ggStatus==1">撤回</a-button> <a @click="handleDelete(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==0" title="删除"><Icon icon="ant-design:delete-outlined" /></a>
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;padding: 0px 8px;background:#18a689;">预览</a-button> <a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==0"/>
<a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0">发布</a-button> <a @click="handleCh(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==1" title="撤回"><Icon icon="ant-design:rollback-outlined" /></a>
<!-- <a-button type="primary" @click="handleHistory(item)" style="margin-left:5px;padding: 0px 8px;background:#18a689;">历史</a-button>--> <a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==1"/>
<a @click="handleDetail(item)" style="margin-left:5px;padding: 0px 8px;" title="预览"><Icon icon="ant-design:copy-outlined" /></a>
<a-divider type="vertical" style="height: 30px; background-color: #7cb305" v-if="item.ggStatus==0"/>
<a @click="handleFabu(item)" style="margin-left:5px;padding: 0px 8px;" v-if="item.ggStatus==0" title="发布"><Icon icon="ant-design:check-circle-outlined" /></a>
<!-- <a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0" title="编辑"><Icon icon="ant-design:form-outlined"/></a-button>
<a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0" title="删除"><Icon icon="ant-design:delete-outlined" /></a-button>
<a-button type="primary" @click="handleCh(item)" style="margin-left:5px;padding: 0px 8px;background:#a7a6a6;" v-if="item.ggStatus==1" title="撤回"><Icon icon="ant-design:rollback-outlined" /></a-button>
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;padding: 0px 8px;background:#18a689;" title="预览"><Icon icon="ant-design:copy-outlined" /></a-button>
<a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.ggStatus==0" title="发布"><Icon icon="ant-design:check-circle-outlined" /></a-button> -->
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<div style="text-align: right;color:#9e9e9e;font-weight: bold;">{{item.createTime}}</div> <div style="text-align: right;color:#9e9e9e;font-weight: bold;">{{item.createTime}}</div>

View File

@ -43,14 +43,14 @@
<a-col :span="24" class="zyCon">时间{{dayjs(item.startTime).format('YYYY.MM.DD')}} - {{dayjs(item.endTime).format('YYYY.MM.DD')}}</a-col> <a-col :span="24" class="zyCon">时间{{dayjs(item.startTime).format('YYYY.MM.DD')}} - {{dayjs(item.endTime).format('YYYY.MM.DD')}}</a-col>
<a-col :span="24" class="zyCon"> <a-col :span="24" class="zyCon">
<div style="float:left" >评分{{item.score?item.score:'未评'}}</div> <div style="float:left" >评分{{item.score?item.score:'未评'}}</div>
<div style="float:right;">网络查重:{{item.wwxsl?item.wwxsl+'%':'-'}}</div>
</a-col> </a-col>
<a-col :span="24" class="zyCon"> <a-col :span="24" class="zyCon">
<div style="float:left" >作业查重:{{item.nwxsl?item.nwxsl+'%':'-'}}</div> <div style="float:left;">网络查重:{{getCctype(item,"1")}}</div>
<div style="float:right;">Aigc查重:{{item.aigcxsl?item.aigcxsl+'%':'-'}}</div> <div style="float:right" >作业查重:{{getCctype(item,"2")}}</div>
</a-col> </a-col>
<a-col :span="24" class="zyCon"> <a-col :span="24" class="zyCon">
<div style="float:left" >校内查重:{{item.xnxsl?item.xnxsl+'%':'-'}}</div> <div style="float:left;">Aigc查重:{{getCctype(item,"3")}}</div>
<div style="float:right" >校内查重:{{getCctype(item,"4")}}</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>
@ -99,7 +99,7 @@
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn,type } = query;// const { rwbh,xqxn,type,teano } = query;//
const APagination = Pagination; const APagination = Pagination;
const { createConfirm,createMessage } = useMessage(); const { createConfirm,createMessage } = useMessage();
const queryParam = ref<any>({}); const queryParam = ref<any>({});
@ -126,6 +126,43 @@ const baseApiUrl = globSetting.domainUrl;
sm: { span: 16 }, sm: { span: 16 },
}); });
function getCctype(record,type){
var text="-";
if(type=='1'){
if(record.wwcc=='1'){
if(record.wwxsl){
text = record.wwxsl+"%";
}else{
text = "检测中";
}
}
}else if(type=='2'){
if(record.nwcc=='1'){
if(record.nwxsl){
text = record.nwxsl+"%";
}else{
text = "检测中";
}
}
}else if(type=='3'){
if(record.aigccc=='1'){
if(record.aigcxsl){
text = record.aigcxsl+"%";
}else{
text = "检测中";
}
}
}else if(type=='4'){
if(record.xncc=='1'){
if(record.xnxsl){
text = record.xnxsl+"%";
}else{
text = "检测中";
}
}
}
return text;
}
function classFun(record){ function classFun(record){
if(record.score){ if(record.score){
@ -234,6 +271,7 @@ const baseApiUrl = globSetting.domainUrl;
queryParam.value.pageSize = pageSize.value; queryParam.value.pageSize = pageSize.value;
queryParam.value.rwbh = rwbh; queryParam.value.rwbh = rwbh;
queryParam.value.xqxn = xqxn; queryParam.value.xqxn = xqxn;
queryParam.value.teano = teano;
queryParam.value.zyStatus = '1,2,3,4'; queryParam.value.zyStatus = '1,2,3,4';
queryParam.value.column="createTime"; queryParam.value.column="createTime";
queryParam.value.order="desc"; queryParam.value.order="desc";

View File

@ -74,8 +74,8 @@
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn,type } = query;// const { rwbh,xqxn,type,teano } = query;//
const queryParam = ref<any>({xqxn,rwbh}); const queryParam = ref<any>({xqxn,rwbh,teano});
const toggleSearchStatus = ref<boolean>(false); const toggleSearchStatus = ref<boolean>(false);
const registerModal = ref(); const registerModal = ref();
const ZyInfoStudentListModalPage = ref(); const ZyInfoStudentListModalPage = ref();
@ -89,7 +89,7 @@
useSearchForm: false, useSearchForm: false,
actionColumn: { actionColumn: {
width: 220, width: 220,
fixed: 'right', // fixed: 'right',
}, },
beforeFetch: (params) => { beforeFetch: (params) => {
params.column = 'endTime',params.order = 'desc';// params.column = 'endTime',params.order = 'desc';//
@ -254,6 +254,7 @@
queryParam.value = {}; queryParam.value = {};
queryParam.value.xqxn = xqxn; queryParam.value.xqxn = xqxn;
queryParam.value.rwbh = rwbh; queryParam.value.rwbh = rwbh;
queryParam.value.teano = teano;
// //
reload(); reload();
} }

View File

@ -37,7 +37,7 @@
</a-form> </a-form>
</div> </div>
<a-row style="overflow:hidden;"> <a-row style="overflow:hidden;">
<a-col :span="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;"> <a-col :lg="8" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px;overflow:hidden;">
<div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div> <div style="width: 100%; height: 20px; background-color: rgb(28, 132, 198);"></div>
<a-card style="height: 256px;border: 1px solid rgb(28, 132, 198);"> <a-card style="height: 256px;border: 1px solid rgb(28, 132, 198);">
<div class="rotate" :style="classFun(item.zyStatus)">{{item.zyStatus_dictText}}</div> <div class="rotate" :style="classFun(item.zyStatus)">{{item.zyStatus_dictText}}</div>
@ -98,7 +98,7 @@ import dayjs from 'dayjs';
// //
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn,type } = query;// const { rwbh,xqxn,type,teano } = query;//
const APagination = Pagination; const APagination = Pagination;
const { createConfirm,createMessage } = useMessage(); const { createConfirm,createMessage } = useMessage();
const queryParam = ref<any>({}); const queryParam = ref<any>({});
@ -258,6 +258,7 @@ import dayjs from 'dayjs';
queryParam.value.pageSize = pageSize.value; queryParam.value.pageSize = pageSize.value;
queryParam.value.rwbh = rwbh; queryParam.value.rwbh = rwbh;
queryParam.value.xqxn = xqxn; queryParam.value.xqxn = xqxn;
queryParam.value.teano = teano;
// queryParam.value.sflssj = '0'; // queryParam.value.sflssj = '0';
queryParam.value.column="endTime"; queryParam.value.column="endTime";
queryParam.value.order="desc"; queryParam.value.order="desc";

View File

@ -70,6 +70,17 @@
</span> </span>
</span> </span>
</template> </template>
<template #xnsftgaction="{text,record}">
<span v-if="record.xncc=='0'">-</span>
<span v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过">{{record.xnxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过">{{record.xnxsl}}%</span>
<span v-else>
<span v-if="record.filePath">检测中</span>
<span v-else>未提交</span>
</span>
</span>
</template>
</BasicTable> </BasicTable>
<!-- 表单区域 --> <!-- 表单区域 -->
<ZyInfoStudentModal ref="registerModal" @success="handleSuccess"></ZyInfoStudentModal> <ZyInfoStudentModal ref="registerModal" @success="handleSuccess"></ZyInfoStudentModal>

View File

@ -12,6 +12,7 @@ enum Api {
editCdlx='/zyInfoStudent/zyInfoStudent/editCdlx', editCdlx='/zyInfoStudent/zyInfoStudent/editCdlx',
deleteOne = '/zyInfoStudent/zyInfoStudent/delete', deleteOne = '/zyInfoStudent/zyInfoStudent/delete',
deleteBatch = '/zyInfoStudent/zyInfoStudent/deleteBatch', deleteBatch = '/zyInfoStudent/zyInfoStudent/deleteBatch',
fabuBatch = '/zyInfoStudent/zyInfoStudent/fabuBatch',
importExcel = '/zyInfoStudent/zyInfoStudent/importExcel', importExcel = '/zyInfoStudent/zyInfoStudent/importExcel',
exportXls = '/zyInfoStudent/zyInfoStudent/exportXls', exportXls = '/zyInfoStudent/zyInfoStudent/exportXls',
getQuaList = '/zyCcjg/zyCcjg/getQuaList', getQuaList = '/zyCcjg/zyCcjg/getQuaList',
@ -67,6 +68,21 @@ export const batchDelete = (params, handleSuccess) => {
}); });
} }
export const batchFabu = (params, handleSuccess) => {
createConfirm({
iconType: 'warning',
title: '确认发布',
content: '是否发布选中数据',
okText: '确认',
cancelText: '取消',
onOk: () => {
return defHttp.post({url: Api.fabuBatch, data: params}, {joinParamsToUrl: true}).then(() => {
handleSuccess();
});
}
});
}
/** /**
* *
* @param params * @param params

View File

@ -28,28 +28,28 @@ export const columns: BasicColumn[] = [
width: '80px' width: '80px'
}, },
{ {
title: '外网检测', title: '网络查重',
align: "center", align: "center",
dataIndex: 'wwsftg', dataIndex: 'wwsftg',
slots: { customRender: 'wwsftgaction' }, slots: { customRender: 'wwsftgaction' },
width: '100px' width: '100px'
}, },
{ {
title: '作业检测', title: '作业查重',
align: "center", align: "center",
dataIndex: 'nwsftg', dataIndex: 'nwsftg',
slots: { customRender: 'nwsftgaction' }, slots: { customRender: 'nwsftgaction' },
width: '100px' width: '100px'
}, },
{ {
title: 'aigc检测', title: 'Aigc查重',
align: "center", align: "center",
dataIndex: 'aigcsftg', dataIndex: 'aigcsftg',
slots: { customRender: 'aigcsftgaction' }, slots: { customRender: 'aigcsftgaction' },
width: '100px' width: '100px'
}, },
{ {
title: '校内检测', title: '校内查重',
align: "center", align: "center",
dataIndex: 'xnsftg', dataIndex: 'xnsftg',
slots: { customRender: 'xnsftgaction' }, slots: { customRender: 'xnsftgaction' },
@ -102,13 +102,13 @@ export const htcxcolumns: BasicColumn[] = [
width: '100px', width: '100px',
customRender:({text}) =>{ customRender:({text}) =>{
if(text=='1'){ if(text=='1'){
text = '作业检测' text = '作业查重'
}else if(text=='3'){ }else if(text=='3'){
text = '全校检测' text = '全校检测'
}else if(text=='2'){ }else if(text=='2'){
text = 'aigc检测' text = 'Aigc查重'
}else{ }else{
text = '外网检测' text = '网络查重'
} }
return text; return text;
}, },
@ -177,26 +177,33 @@ export const cdxxcolumns: BasicColumn[] = [
width: '80px' width: '80px'
}, },
{ {
title: '外网检测', title: '网络查重',
align: "center", align: "center",
dataIndex: 'wwsftg', dataIndex: 'wwsftg',
slots: { customRender: 'wwsftgaction' }, slots: { customRender: 'wwsftgaction' },
width: '100px' width: '100px'
}, },
{ {
title: '内网检测', title: '作业查重',
align: "center", align: "center",
dataIndex: 'nwsftg', dataIndex: 'nwsftg',
slots: { customRender: 'nwsftgaction' }, slots: { customRender: 'nwsftgaction' },
width: '100px' width: '100px'
}, },
{ {
title: 'aigc检测', title: 'Aigc查重',
align: "center", align: "center",
dataIndex: 'aigcsftg', dataIndex: 'aigcsftg',
slots: { customRender: 'aigcsftgaction' }, slots: { customRender: 'aigcsftgaction' },
width: '100px' width: '100px'
}, },
{
title: '校内查重',
align: "center",
dataIndex: 'xnsftg',
slots: { customRender: 'xnsftgaction' },
width: '100px'
},
{ {
title: '存档类型', title: '存档类型',
align: "center", align: "center",

View File

@ -27,13 +27,28 @@
</a-form> </a-form>
</div> </div>
<!--引用表格--> <!--引用表格-->
<BasicTable @register="registerTable"> <BasicTable @register="registerTable" :rowSelection="rowSelection" style="margin-top:-20px;">
<template #tableTitle> <template #tableTitle>
<span style="font-size: 16px;font-weight:blod;color:red;">检测时间提醒 非高峰期预计30分钟内返回检测结果高峰期预计时间会更长请您耐心等待</span> <a-dropdown v-if="selectedRowKeys.length > 0">
<template #overlay>
<a-menu>
<a-menu-item key="1" @click="batchHandleFabu">
<Icon icon="ant-design:delete-outlined"></Icon>
发布评分
</a-menu-item>
</a-menu>
</template>
<a-button type="primary">批量操作
<Icon icon="mdi:chevron-down"></Icon>
</a-button>
</a-dropdown>
<span style="font-size: 16px;font-weight:blod;color:b9b6b6;width:100%;">温馨提醒 非高峰期预计30分钟内返回检测结果高峰期预计时间会更长请您耐心等待</span>
</template> </template>
<!--操作栏--> <!--操作栏-->
<template #action="{ record }"> <template #action="{ record }">
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/> <!-- <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/> -->
<TableAction :actions="getTableAction(record)" />
</template> </template>
<!--字段回显插槽--> <!--字段回显插槽-->
<template #htmlSlot="{text}"> <template #htmlSlot="{text}">
@ -44,8 +59,8 @@
<template #wwsftgaction="{text,record}"> <template #wwsftgaction="{text,record}">
<span v-if="record.wwcc=='0'">-</span> <span v-if="record.wwcc=='0'">-</span>
<span v-else> <span v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过">{{record.wwxsl}}%</span> <span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.wwpaperviewurl)">{{record.wwxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过">{{record.wwxsl}}%</span> <span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过" @click="handleYulan(record.wwpaperviewurl)">{{record.wwxsl}}%</span>
<span v-else> <span v-else>
<span v-if="record.filePath">检测中</span> <span v-if="record.filePath">检测中</span>
<span v-else>未提交</span> <span v-else>未提交</span>
@ -55,8 +70,8 @@
<template #nwsftgaction="{text,record}"> <template #nwsftgaction="{text,record}">
<span v-if="record.nwcc=='0'">-</span> <span v-if="record.nwcc=='0'">-</span>
<span v-else> <span v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过">{{record.nwxsl}}%</span> <span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.zypaperviewurl)">{{record.nwxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过">{{record.nwxsl}}%</span> <span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过" @click="handleYulan(record.zypaperviewurl)">{{record.nwxsl}}%</span>
<span v-else> <span v-else>
<span v-if="record.filePath">检测中</span> <span v-if="record.filePath">检测中</span>
<span v-else>未提交</span> <span v-else>未提交</span>
@ -66,8 +81,8 @@
<template #aigcsftgaction="{text,record}"> <template #aigcsftgaction="{text,record}">
<span v-if="record.aigccc=='0'">-</span> <span v-if="record.aigccc=='0'">-</span>
<span v-else> <span v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过">{{record.aigcxsl}}%</span> <span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.aigcpaperviewurl)">{{record.aigcxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过">{{record.aigcxsl}}%</span> <span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过" @click="handleYulan(record.aigcpaperviewurl)">{{record.aigcxsl}}%</span>
<span v-else> <span v-else>
<span v-if="record.filePath">检测中</span> <span v-if="record.filePath">检测中</span>
<span v-else>未提交</span> <span v-else>未提交</span>
@ -77,8 +92,8 @@
<template #xnsftgaction="{text,record}"> <template #xnsftgaction="{text,record}">
<span v-if="record.aigccc=='0'">-</span> <span v-if="record.aigccc=='0'">-</span>
<span v-else> <span v-else>
<span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过">{{record.xnxsl}}%</span> <span v-if="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.xxpaperviewurl)">{{record.xnxsl}}%</span>
<span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过">{{record.xnxsl}}%</span> <span v-else-if="text=='未通过'" style="color: red;padding: 5px 15px;" title="未通过" @click="handleYulan(record.xxpaperviewurl)">{{record.xnxsl}}%</span>
<span v-else> <span v-else>
<span v-if="record.filePath">检测中</span> <span v-if="record.filePath">检测中</span>
<span v-else>未提交</span> <span v-else>未提交</span>
@ -109,7 +124,7 @@
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 } from './ZyInfoStudent.data'; import { columns } from './ZyInfoStudent.data';
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './ZyInfoStudent.api'; import { list, deleteOne, batchDelete, getImportUrl, getExportUrl,batchFabu } from './ZyInfoStudent.api';
import { downloadFile } from '/@/utils/common/renderUtils'; import { downloadFile } from '/@/utils/common/renderUtils';
import ZyInfoStudentModal from './components/ZyInfoStudentModal.vue' import ZyInfoStudentModal from './components/ZyInfoStudentModal.vue'
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
@ -246,10 +261,16 @@
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess); await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
} }
async function batchHandleFabu() {
await batchFabu({ ids: selectedRowKeys.value }, handleSuccess);
}
/** /**
* 成功回调 * 成功回调
*/ */
function handleSuccess() { function handleSuccess() {
selectedRowKeys.value = [];
reload(); reload();
} }
@ -268,6 +289,14 @@
label: '设置样本', label: '设置样本',
onClick: handleSzyb.bind(null, record), onClick: handleSzyb.bind(null, record),
}, },
{
label: '作业',
onClick: handleDown.bind(null, record.filePath),
},
{
label: '预览',
onClick: yulanFile.bind(null, record),
},
]; ];
return list; return list;
}else{ }else{
@ -284,6 +313,14 @@
label: '发布评分', label: '发布评分',
onClick: handleScoreFabu.bind(null, record), onClick: handleScoreFabu.bind(null, record),
}, },
{
label: '作业',
onClick: handleDown.bind(null, record.filePath),
},
{
label: '预览',
onClick: yulanFile.bind(null, record),
},
]; ];
return list; return list;
} }
@ -360,6 +397,7 @@ function handleYulan(text){
* 查询 * 查询
*/ */
function searchQuery() { function searchQuery() {
selectedRowKeys.value = [];
reload(); reload();
} }
@ -375,6 +413,7 @@ function handleYulan(text){
} }
function init(record){ function init(record){
selectedRowKeys.value = [];
queryParam.value = {}; queryParam.value = {};
queryParam.value.mainId = record.id; queryParam.value.mainId = record.id;
mainId.value = record.id; mainId.value = record.id;

View File

@ -18,9 +18,9 @@
<a-form-item label="检测类型"> <a-form-item label="检测类型">
<a-select placeholder="请选择" v-model:value="queryParam.ccType"> <a-select placeholder="请选择" v-model:value="queryParam.ccType">
<a-select-option :value="undefined">请选择</a-select-option> <a-select-option :value="undefined">请选择</a-select-option>
<a-select-option value="0">外网检测</a-select-option> <a-select-option value="0">网络查重</a-select-option>
<a-select-option value="1">作业检测</a-select-option> <a-select-option value="1">作业查重</a-select-option>
<a-select-option value="2">AIGC检测</a-select-option> <a-select-option value="2">Aigc查重</a-select-option>
<a-select-option value="3">全校检测</a-select-option> <a-select-option value="3">全校检测</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>

View File

@ -4,7 +4,7 @@
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="评分" v-bind="validateInfos.score"> <a-form-item label="评分" v-bind="validateInfos.score">
<a-input v-model:value="formData.score" :disabled="disabled" ></a-input> <a-input-number v-model:value="formData.score" :disabled="disabled" style="width:100%;" ></a-input-number>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>

View File

@ -76,7 +76,7 @@
const APagination = Pagination; const APagination = Pagination;
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn } = query;// const { rwbh,xqxn,teano } = query;//
const labelCol = reactive({ const labelCol = reactive({
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 7 }, sm: { span: 7 },
@ -164,7 +164,7 @@
} }
function loadData(){ function loadData(){
defHttp.get({ url: '/zyTlq/zyTlq/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,sffb:'1',column:'createTime',order:'desc' } }).then((res) => { defHttp.get({ url: '/zyTlq/zyTlq/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,teano:teano,sffb:'1',column:'createTime',order:'desc' } }).then((res) => {
console.log(`🚀 ~ defHttp.get ~ res:`, res) console.log(`🚀 ~ defHttp.get ~ res:`, res)
dataSource.value = res.records; dataSource.value = res.records;
total.value = res.total; total.value = res.total;

View File

@ -87,7 +87,7 @@
const APagination = Pagination; const APagination = Pagination;
const { currentRoute } = useRouter(); const { currentRoute } = useRouter();
const { query } = unref(currentRoute); const { query } = unref(currentRoute);
const { rwbh,xqxn } = query;// const { rwbh,xqxn,teano } = query;//
const labelCol = reactive({ const labelCol = reactive({
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 7 }, sm: { span: 7 },
@ -185,7 +185,7 @@
} }
function loadData(){ function loadData(){
defHttp.get({ url: '/zyTlq/zyTlq/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,column:'createTime',order:'desc' } }).then((res) => { defHttp.get({ url: '/zyTlq/zyTlq/list', params: { pageSize: 3,pageNo:current.value, rwbh:rwbh,xqxn:xqxn,teano:teano,column:'createTime',order:'desc' } }).then((res) => {
console.log(`🚀 ~ defHttp.get ~ res:`, res) console.log(`🚀 ~ defHttp.get ~ res:`, res)
dataSource.value = res.records; dataSource.value = res.records;
total.value = res.total; total.value = res.total;