zcwy-dev 补充

This commit is contained in:
lims1@hunktimes.com
2023-08-01 20:53:35 +08:00
21 changed files with 22659 additions and 148 deletions

22375
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -884,7 +884,7 @@ export default {
selectedKeys: "sub21",
pagename: "受众管理",
},
],
oldManage: window.location.protocol + process.env.VUE_APP_OLD_MANAGE
});

View File

@@ -0,0 +1,136 @@
<template>
<a-table :customRow="customRow" class="ant-table-striped"
:row-class-name="(_, index) => (index % 2 === 1 ? 'table-striped' : null)" row-key="id" :columns="columns"
:data-source="data" :loading="loading" :pagination="pagination" :row-selection="rowSelection">
<template #operation="{ record }">
<slot :record="record"></slot>
</template>
</a-table>
</template>
<script setup>
import { defineProps, defineExpose, ref, computed, onMounted, defineEmits, nextTick } from "vue";
import { useRowsPageNoInit } from "@/api/request";
import { useResetRef } from "@/utils/useCommon";
const props = defineProps({
type: {
type: String,
default: ""
},
columns: {
type: Array,
default: () => []
},
url: {
type: String,
default: ""
},
pageKey: {
type: String,
default: "pageNo"
},
params: {
type: Object,
default: () => ({})
},
init: {
type: Boolean,
default: true
},
request: {
type: Function,
default: useRowsPageNoInit
}
});
const emit = defineEmits(["update:params", "update:selectedRowKeys", "update:selectedRows"]);
const rowSelectKeys = ref([]);
const selectsData = ref([]);
const params = useResetRef({ [props.pageKey]: 1, pageSize: 10 });
const postParam = computed(() => ({ ...params.value, ...props.params }));
const { data, loading, total, fetch: onFetch } = props.request(props.url, postParam);
const rowSelection = computed(() => (props.type ? {
type: props.type,
columnWidth: 20,
selectedRowKeys: rowSelectKeys.value,
onChange: onSelectChange,
preserveSelectedRowKeys: true,
} : null));
const customRow = (record) => ({
onClick: () => {
if (props.type === "checkbox") {
if (rowSelectKeys.value.some(t => t === record.id)) {
rowSelectKeys.value = rowSelectKeys.value.filter(t => t !== record.id);
selectsData.value = selectsData.value.filter(t => t.id !== record.id);
} else {
rowSelectKeys.value.push(record.id);
selectsData.value.push(record);
}
} else {
rowSelectKeys.value = [record.id];
selectsData.value = [record];
}
emit("update:selectedRowKeys", [...rowSelectKeys.value]);
emit("update:selectedRows", [...selectsData.value]);
}
});
onMounted(() => props.init && nextTick(onFetch));
function onSelectChange(e, l) {
rowSelectKeys.value = e;
selectsData.value = l;
emit("update:selectedRowKeys", e);
emit("update:selectedRows", l);
}
const pagination = computed(() => ({
total: total.value,
showSizeChanger: false,
current: params.value[props.pageKey],
pageSize: params.value.pageSize,
onChange: changePagination,
}));
const changePagination = (e) => {
params.value[props.pageKey] = e;
nextTick(onFetch);
};
function reset(v) {
params.reset();
v && emit("update:params", { ...v });
nextTick(onFetch);
}
function resetSelected() {
rowSelectKeys.value = [];
selectsData.value = [];
emit("update:selectedRowKeys", []);
emit("update:selectedRows", []);
}
function clear(v) {
rowSelectKeys.value = [];
selectsData.value = [];
params.reset();
v && emit("update:params", { ...v });
emit("update:selectedRowKeys", []);
emit("update:selectedRows", []);
}
const toLoading = () => loading.value = true;
function remove(i) {
rowSelectKeys.value.splice(i, 1);
selectsData.value.splice(i, 1);
emit("update:selectedRowKeys", rowSelectKeys.value);
emit("update:selectedRows", selectsData.value);
}
const fetch = () => nextTick(onFetch);
defineExpose({ fetch, reset, resetSelected, clear, toLoading, remove });
</script>

View File

@@ -282,7 +282,7 @@
<!-- 二维码弹窗 -->
</template>
<script>
<script lang="jsx">
import { toRefs, reactive } from "vue";
import SignQR from "./SignQR.vue";
import TwoDimensionalCode from "../../components/TwoDimensionalCode";

View File

@@ -25,7 +25,7 @@
>
起止时间{{ datasource.startTime }} {{ datasource.endTime }}
</div>
<!--
<!--
<div v-else class="endtime">
起止时间
</div>-->
@@ -48,7 +48,7 @@
placeholder="请选择"
:options="projectNameList"
@change="selectProjectName"
></a-select>
</div>
</div>
@@ -69,7 +69,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">催促学习</div>
@@ -114,7 +114,7 @@
</a-drawer>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { message } from "ant-design-vue";
// import * as api from "../../../api/index";
@@ -288,7 +288,7 @@ export default {
);
},
},
{
title: "任务状态",
dataIndex: "finishStatus",
@@ -374,8 +374,8 @@ export default {
currentStageId: props.datasource.stageId,
type: 1,
pid: props.datasource.projectId,
taskId: props.datasource.projectTaskId,
taskType: props.datasource.type,
taskId: props.datasource.projectTaskId,
taskType: props.datasource.type,
status: state.projectName,
studentName: state.name,
});
@@ -387,7 +387,7 @@ export default {
type: 1,
pid: props.datasource.projectId,
taskId: props.datasource.projectTaskId,
taskType: props.datasource.type,
taskType: props.datasource.type,
status: state.projectName,
studentName: state.name,
})
@@ -686,4 +686,4 @@ export default {
}
}
</style>

View File

@@ -56,7 +56,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px" v-if="checkPer(permissions,createId)">
<div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">催促考试</div>
@@ -120,7 +120,7 @@
<CheckAnsware v-model:CAvisible="CAvisible" :datasource="datasource1"/>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive } from "vue";
import { message } from "ant-design-vue";
import EScore from "../ExportScore.vue";
@@ -327,12 +327,12 @@ export default {
customRender: (text) => {
return (
<div class="racona">
{text.record.status === 1 || text.record.status === 9 ?
{text.record.status === 1 || text.record.status === 9 ?
<a onClick={()=>{
state.studentKid = text.record.studentKid;
state.datasource1 = text.record;
state.CAvisible = true;
}}>查看答卷 </a> :
}}>查看答卷 </a> :
<span style="color:rgba(0, 0, 0, 0.25);cursor:not-allowed;"> 查看答卷 </span>
}
</div>
@@ -424,7 +424,7 @@ export default {
// 重置
function reseatTableData() {
state.loadingData = true;
state.currentPage = 1;
state.currentPage = 1;
state.name = '';
state.projectName = undefined;
getData();
@@ -441,7 +441,7 @@ export default {
function exportData() {
// window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?chapterId=${props.datasource.stageId=="0"?"":props.datasource.stageId}&targetId=${props.datasource.projectId}&taskId=${props.datasource.courseId}&type=${2}`)
window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?currentStageId=${props.datasource.stageId}&type=${2}&targetId=${props.datasource.projectId}&pid=${props.datasource.projectId}&taskId=${props.datasource.courseId}&taskType=${props.datasource.type}`)
{/* api.ExportExam({
"chapterId": props.datasource.chapterId,
"targetId": props.datasource.routerId,

View File

@@ -57,7 +57,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">催促考试</div>
@@ -92,7 +92,7 @@
:scroll="{ x: 900 }"
:pagination="false"
/>
<div class="pa">
<a-pagination
:showSizeChanger="false"
@@ -108,31 +108,31 @@
</div>
</div>
</div>
<!-- <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button>
</div> -->
</div>
<!-- 导出成绩抽屉 -->
<ExportAchievement
<ExportAchievement
@closeDraw="closeDraw"
v-model:eScorevisibleExternalExternal="eScorevisibleExternalExternal"
v-model:eScorevisibleExternalExternal="eScorevisibleExternalExternal"
:type="1"
:targetId="datasource.projectId"
:targetId="datasource.projectId"
:courseId="datasource.courseId"
:taskId="datasource.id"
:chapterId="datasource.stageId" />
</a-drawer>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive } from "vue";
import { message } from "ant-design-vue";
import ExportAchievement from "../ExportAchievement.vue";
import * as api from '../../../api/indexTaskManage';
import { batchSendMessage } from "@/api/index1";
export default {
name: "ProjectExternalExamManage",
components: {
@@ -162,7 +162,7 @@
default: null,
},
},
setup(props, ctx) {
const state = reactive({
name: "",
@@ -302,7 +302,7 @@
);
},
},
{
title: "完成时间",
dataIndex: "finishedTime",
@@ -332,7 +332,7 @@
],
loadingData: true
});
const closeDrawer = () => {
ctx.emit("update:TMvisibleExternal", false);
state.name = "";
@@ -358,7 +358,7 @@
}
state.selectedRowKeys = selectedRowKeys;
};
//催促学员学习
const godie = () => {
//项目催促请求报文
@@ -386,7 +386,7 @@
const clearLine = () => {
state.selectedRowKeys = [];
};
// 获取数据
function getData() {
state.loadingData = true;
@@ -415,24 +415,24 @@
// 重置
function reseatTableData() {
state.loadingData = true;
state.currentPage = 1;
state.currentPage = 1;
state.name = '';
state.projectName = undefined;
getData();
}
//分页
const changePaginationStu = (page) => {
state.loadingData = true;
state.currentPage = page;
getData();
};
{/* 导出数据 */}
function exportData() {
window.open(`${process.env.VUE_APP_BASE_API}/admin/external/exam/manage/exportExternalExam?chapterId=${props.datasource.stageId}&type=${1}&targetId=${props.datasource.projectId}&taskId=${props.datasource.id}&courseId=${props.datasource.courseId}`)
}
const closeDraw = (e) => {
console.log('我关闭了导入成绩弹框吗', e)
getData();
@@ -456,7 +456,7 @@
},
};
</script>
<style lang="scss">
.ProjectExternalExamManage {
.drawerMain {
@@ -465,7 +465,7 @@
overflow-x: auto;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
@@ -473,7 +473,7 @@
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
@@ -481,7 +481,7 @@
line-height: 25px;
}
}
.main {
width: 100%;
height: 100%;
@@ -492,27 +492,27 @@
font-weight: 500;
color: #333333;
}
.search {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 20px;
.namecon {
display: flex;
flex-wrap: nowrap;
margin-bottom: 10px;
.name {
margin-top: 8px;
}
}
.btns {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 100px;
@@ -521,7 +521,7 @@
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
@@ -529,7 +529,7 @@
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 16px;
height: 18px;
@@ -538,26 +538,26 @@
margin-right: 7px;
}
}
.btn1 {
background: #4ea6ff;
color: #ffffff;
}
.btn2 {
background: #4ea6ff;
color: #fff;
border: 1px solid #4ea6ff;
}
}
}
.btnss {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 130px;
@@ -566,7 +566,7 @@
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
@@ -574,7 +574,7 @@
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 17px;
height: 16px;
@@ -583,13 +583,13 @@
margin-right: 7px;
}
}
.btn1 {
background: #4ea6ff;
color: #ffffff;
}
.btn2 {
background: #4ea6ff;
margin-right: 20px;
@@ -597,7 +597,7 @@
border: 1px solid #4ea6ff;
}
}
.line {
width: 100%;
height: 40px;
@@ -607,41 +607,41 @@
align-items: center;
margin-top: 20px;
border: 1px solid #c3e6fc;
.inline {
width: 95%;
height: 100%;
display: flex;
justify-content: space-between;
.left {
height: 100%;
display: flex;
align-items: center;
.img {
width: 14px;
height: 15px;
background-image: url(../../../assets/images/leveladd/gan.png);
background-size: 100% 100%;
}
.text {
color: #999ba3;
}
.text2 {
color: #4ea6ff;
margin-left: 5px;
margin-right: 5px;
}
.text3 {
color: #999ba3;
margin-left: 20px;
}
}
.right {
font-size: 14px;
font-weight: 400;
@@ -653,7 +653,7 @@
}
}
}
.tableBox {
.ant-table-selection-column {
padding: 0px !important;
@@ -670,21 +670,21 @@
.ant-table-selection-column {
padding: 0 !important;
}
th.h {
background-color: #eff4fc !important;
}
.head {
padding-left: 0px !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.studentopea1 {
font-size: 14px;
font-weight: 400;
@@ -704,7 +704,7 @@
border-right: 1px solid #e9e9e9;
cursor: pointer;
}
.pa {
margin-top: 15px;
width: 100%;
@@ -713,7 +713,7 @@
}
}
}
.btnn {
height: 72px;
width: 100%;
@@ -725,7 +725,7 @@
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
@@ -735,7 +735,7 @@
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
@@ -750,5 +750,5 @@
}
}
</style>

View File

@@ -133,7 +133,7 @@
:downloadUrl="downloadUrl"
/>
</template>
<script setup>
<script setup lang="jsx">
import {computed, defineEmits, ref, watch} from "vue";
import * as api from "@/api/index1";
import BaseTable from "@/components/common/BaseTable";

View File

@@ -158,7 +158,7 @@
/>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive } from "vue";
import { message } from "ant-design-vue";
import CKWork from "../CheckWork.vue";

View File

@@ -89,7 +89,7 @@
<div class="img1"></div>
<div class="wz">催促学习</div>
</div>
<div class="btn btn2" @click="exportTaskStu" v-if="checkPer(permissions,createId)">
<div class="img2"></div>
<div class="wz">导出数据</div>
@@ -132,7 +132,7 @@
:basicdata="datasource.info" />
</template>
<script>
<script lang="jsx">
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { message } from "ant-design-vue";
// import * as api from "../../../api/index";

View File

@@ -69,7 +69,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">催促学习</div>
@@ -119,7 +119,7 @@
/>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { message } from "ant-design-vue";
// import * as api from "../../../api/index";

View File

@@ -85,7 +85,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px" v-if="checkPer(permissions,createId)">
<div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">催促学习</div>
@@ -132,7 +132,7 @@
:basicdata="datasource.info" />
</template>
<script>
<script lang="jsx">
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { message } from "ant-design-vue";
import ViewAssess from "../ViewAssess";

View File

@@ -112,7 +112,7 @@
</a-drawer>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { message } from "ant-design-vue";
// import * as api from "../../../api/index";

View File

@@ -62,7 +62,7 @@
<div class="wz">催促考试</div>
</div>
<div class="btn btn2" @click="exportData">
<div class="img2"></div>
<div class="img2"></div>
<div class="wz">导出数据</div>
</div>
<div class="btn btn2" @click="showEScoreModal">
@@ -91,7 +91,7 @@
:scroll="{ x: 900 }"
:pagination="false"
/>
<div class="pa">
<a-pagination
:showSizeChanger="false"
@@ -114,25 +114,25 @@
</div>-->
</div>
<!-- 导出成绩抽屉 -->
<ExportAchievement
<ExportAchievement
@closeDraw="closeDraw"
v-model:eScorevisibleExternalExternal="eScorevisibleExternalExternal"
v-model:eScorevisibleExternalExternal="eScorevisibleExternalExternal"
:type="2"
:targetId="datasource.routerId"
:targetId="datasource.routerId"
:courseId="datasource.courseId"
:taskId="datasource.id"
:chapterId="datasource.chapterId" />
</a-drawer>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive } from "vue";
import { message } from "ant-design-vue";
import ExportAchievement from "../ExportAchievement.vue";
import * as api from '../../../api/indexTaskManage';
import { batchSendMessage } from "@/api/index1";
import {checkPer} from "@/utils/utils";
// import * as api from "../../../api/index";
export default {
name: "RouterExaminationManage",
@@ -175,7 +175,7 @@
default: null,
},
},
setup(props, ctx) {
const state = reactive({
name: "",
@@ -315,7 +315,7 @@
);
},
},
{
title: "完成时间",
dataIndex: "finishedTime",
@@ -345,7 +345,7 @@
],
loadingData: true
});
const closeDrawer = () => {
ctx.emit("update:ExaminationExaminaModelVisible", false);
state.name = "";
@@ -370,7 +370,7 @@
}
state.selectedRowKeys = selectedRowKeys;
};
//催促学员学习
const godie = () => {
message.destroy();
@@ -403,7 +403,7 @@
console.log('我关闭了导入成绩弹框吗', e)
getData();
}
// 获取数据
function getData() {
state.loadingData = true;
@@ -434,19 +434,19 @@
// 重置
function reseatTableData() {
state.loadingData = true;
state.currentPage = 1;
state.currentPage = 1;
state.name = '';
state.projectName = undefined;
getData();
}
//分页
const changePaginationStu = (page) => {
state.loadingData = true;
state.currentPage = page;
getData();
};
{/* 导出数据 */}
function exportData() {
window.open(`${process.env.VUE_APP_BASE_API}/admin/external/exam/manage/exportExternalExam?chapterId=${props.datasource.chapterId}&type=${2}&targetId=${props.datasource.routerId}&taskId=${props.datasource.id}&courseId=${props.datasource.courseId}`)
@@ -470,7 +470,7 @@
},
};
</script>
<style lang="scss">
.RouterExaminationExternalManage {
.drawerMain {
@@ -479,7 +479,7 @@
overflow-x: auto;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
@@ -487,7 +487,7 @@
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
@@ -495,7 +495,7 @@
line-height: 25px;
}
}
.main {
width: 100%;
height: 100%;
@@ -506,27 +506,27 @@
font-weight: 500;
color: #333333;
}
.search {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 20px;
.namecon {
display: flex;
flex-wrap: nowrap;
margin-bottom: 10px;
.name {
margin-top: 8px;
}
}
.btns {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 100px;
@@ -535,7 +535,7 @@
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
@@ -543,7 +543,7 @@
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 16px;
height: 18px;
@@ -552,26 +552,26 @@
margin-right: 7px;
}
}
.btn1 {
background: #4ea6ff;
color: #ffffff;
}
.btn2 {
background: #4ea6ff;
color: #fff;
border: 1px solid #4ea6ff;
}
}
}
.btnss {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 130px;
@@ -580,7 +580,7 @@
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
@@ -588,7 +588,7 @@
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 17px;
height: 16px;
@@ -597,13 +597,13 @@
margin-right: 7px;
}
}
.btn1 {
background: #4ea6ff;
color: #ffffff;
}
.btn2 {
background: #4ea6ff;
margin-right: 20px;
@@ -611,7 +611,7 @@
border: 1px solid #4ea6ff;
}
}
.line {
width: 100%;
height: 40px;
@@ -621,41 +621,41 @@
align-items: center;
margin-top: 20px;
border: 1px solid #c3e6fc;
.inline {
width: 95%;
height: 100%;
display: flex;
justify-content: space-between;
.left {
height: 100%;
display: flex;
align-items: center;
.img {
width: 14px;
height: 15px;
background-image: url(../../../assets/images/leveladd/gan.png);
background-size: 100% 100%;
}
.text {
color: #999ba3;
}
.text2 {
color: #4ea6ff;
margin-left: 5px;
margin-right: 5px;
}
.text3 {
color: #999ba3;
margin-left: 20px;
}
}
.right {
font-size: 14px;
font-weight: 400;
@@ -667,7 +667,7 @@
}
}
}
.tableBox {
.ant-table-selection-column {
padding: 0px !important;
@@ -684,21 +684,21 @@
.ant-table-selection-column {
padding: 0 !important;
}
th.h {
background-color: #eff4fc !important;
}
.head {
padding-left: 0px !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.studentopea1 {
font-size: 14px;
font-weight: 400;
@@ -718,7 +718,7 @@
border-right: 1px solid #e9e9e9;
cursor: pointer;
}
.pa {
margin-top: 15px;
width: 100%;
@@ -727,7 +727,7 @@
}
}
}
.btnn {
height: 72px;
width: 100%;
@@ -739,7 +739,7 @@
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
@@ -749,7 +749,7 @@
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;

View File

@@ -82,7 +82,7 @@
<CheckAnsware v-model:CAvisible="CAvisible" :datasource="datasource1" />
</template>
<script>
<script lang="jsx">
import { toRefs, reactive } from "vue";
import { message } from "ant-design-vue";
import EScore from "../ExportScore.vue";

View File

@@ -150,7 +150,7 @@
</a-drawer>
</template>
<script setup>
<script setup lang="jsx">
import {computed, defineEmits, ref, watch} from "vue";
import * as api from "@/api/index1";
import BaseTable from "@/components/common/BaseTable";

View File

@@ -101,7 +101,7 @@
<ExportHomeWork v-model:exportHomeWorkV="exportHomeWorkV" :downloadUrl="downloadUrl" />
</template>
<script>
<script lang="jsx">
import { toRefs, reactive } from "vue";
import { message } from "ant-design-vue";
import CKWork from "../CheckWork.vue";

View File

@@ -69,7 +69,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px" v-if="checkPer(permissions,createId)">
<div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">催促学习</div>
@@ -120,7 +120,7 @@
/>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { message } from "ant-design-vue";
import SeeStu from "@/components/drawers/SeeStu";

View File

@@ -69,7 +69,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px" v-if="checkPer(permissions,createId)">
<div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">催促学习</div>
@@ -119,7 +119,7 @@
/>
</template>
<script>
<script lang="jsx">
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { message } from "ant-design-vue";
// import * as api from "../../../api/index";

View File

@@ -3415,7 +3415,7 @@ export default defineComponent({
console.log("开课res", res);
const { rows, total, pageNo } = res.data.data;
state.tableDataTotal222 = total;
state.tableDataTotal2 = total;
state.tableDataTotal2 = total;
for (let i = 0; i < rows.length; i++) {
rows[i].num = i + 1 + (state.currentPage222 - 1) * 10;

View File

@@ -1810,7 +1810,7 @@
@focus="focus"
@change="handleChange"
>
</a-select>
</div>
<div class="bm_input">