页面button颜色统一,表格不可选择页面数量

This commit is contained in:
zhangyc
2022-12-11 11:46:52 +08:00
parent 6fc160ae79
commit 65fbc3eba4
84 changed files with 1642 additions and 2633 deletions

View File

@@ -317,7 +317,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -405,7 +405,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;

View File

@@ -41,6 +41,7 @@ import { reactive, toRefs } from "vue";
import { useStore } from "vuex";
import { useRouter } from "vue-router";
import draggable from "vuedraggable";
import { message } from "ant-design-vue";
export default {
name: "OpenPages",
components: {
@@ -55,13 +56,18 @@ export default {
const closePage = (value) => {
console.log("点击关闭页面", value, state.openList);
state.openList.map((item, key) => {
if (item.href === value.href) {
if (state.openList.length === 1) {
if (state.openList[0].href !== "/learningpath") {
state.openList.splice(key, 1);
$router.push({ path: "/learningpath" });
}else{
message.destroy();
return message.warning("至少保留一个页面");
}
$router.push({ path: "/learningpath" });
} else {
if (value.active) {
if (key === state.openList.length - 1) {

View File

@@ -278,7 +278,7 @@ export default {
.codeUrlCopy {
width: 96px;
height: 40px;
background-color: #388be1;
background-color: #4ea6ff;
border-radius: 8px;
display: flex;
align-items: center;

View File

@@ -164,7 +164,7 @@ function del(i) {
left: 0;
width: 60%;
height: 5px;
background-color: #388be1;
background-color: #4ea6ff;
border-radius: 3px;
}
@@ -179,7 +179,7 @@ function del(i) {
position: absolute;
right: -62px;
top: -30px;
color: #388be1;
color: #4ea6ff;
}
.updataxq2 {

View File

@@ -1,397 +0,0 @@
<!-- 评估列表 -->
<template>
<a-drawer
:visible="assessmentVisible"
class="drawerStyle addinvistDrawer"
width="70%"
title="添加评估"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div v-if="edit" class="headerTitle">编辑评估</div>
<div v-else class="headerTitle">添加评估</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="contentMain">
<div class="main_left">
<div class="main_item">
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 40px"
placeholder="请输入评估名称"
maxlength="20"
/>
</div>
<div class="btns" @click="getAllInvistText">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnsn" @click="resetInvist">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
<div class="main_item2">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:row-key="(record) => record.assessmentId"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
type: 'radio',
}"
filterMultiple:false
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="handelChangePage"
/>
</div>
</div>
</div>
</div>
</div>
</a-drawer>
</template>
<script>
import { reactive, toRefs, watch } from "vue";
import * as api from "../../api/indexInvist.js";
import dayjs from "dayjs";
export default {
name: "AssessmentList",
// components: {
// },
props: {
assessmentVisible: {
type: Boolean,
default: false,
},
assessmentId: {
type: Number,
default: null,
},
titleTag: {
type: Boolean,
default: false,
},
assessmentName: {
type: String,
default: null,
},
},
setup(props, ctx) {
watch(
props,
(newVal) => {
state.selectedRowKeys = newVal.assessmentId
? [newVal.assessmentId]
: [];
},
{ deep: true }
);
const state = reactive({
assessmentVisible: false,
assessment: null,
inputV1: "",
currentPage: 1,
pageSize: 10,
tableDataTotal: 0,
tableData: [],
selectedRowKeys: [],
assessmentId: null,
assessmentName: null,
});
const closeDrawer = () => {
state.selectedRowKeys = [];
ctx.emit("update:assessmentVisible", false);
ctx.emit("update:titleTag", true);
};
const afterVisibleChange = (bool) => {
console.log("state getAllInvistText", bool, "======", props.titleTag);
if (props.assessmentVisible && bool) {
getAllInvistText();
}
};
const tableDataFunc = () => {
const columns = [
{
title: "名称",
dataIndex: "name",
// width: "30%",
key: "name",
width: "150px",
align: "left",
className: "classify",
},
{
title: "题数",
dataIndex: "num",
key: "num",
width: "80px",
align: "center",
},
{
title: "创建人",
dataIndex: "creator",
key: "creator",
width: "150px",
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: "200px",
align: "center",
},
];
return columns;
};
const rowSelection = {
type: "radio",
onSelect: (selectedRows) => {
state.assessment = selectedRows;
/* state.assessmentId = selectedRows.assessmentId;
ctx.emit("checkedAss", state.assessment);
ctx.emit("update:assessmentId", state.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name);
console.log("state.assessment",state.assessment);
state.selectedRowKeys = [];
closeDrawer();*/
},
};
// const onSelectChange = (selectedRowKeys) => {
// if(selectedRowKeys.length>2){return}
// state.selectedRowKeys = selectedRowKeys;
// };
const onSelectChange = (selectedRowKeys, selectRow) => {
console.log("selectedRowKeys changed: ", selectedRowKeys, selectRow);
state.selectedRowKeys = selectedRowKeys;
console.log(selectRow);
state.assessment = selectRow[0];
state.assessmentId = selectRow[0].assessmentId;
ctx.emit("checkedAss", state.assessment);
ctx.emit("update:assessmentId", state.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name);
closeDrawer();
};
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
getAllInvistText();
};
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
data.map((value, index) => {
let obj = {
key: index,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
});
// (state.selectedRowKeys = []), (state.tableData = array);
state.tableData = array;
};
//获取全部评估信息接口
const getAllInvistText = () => {
api
.queryAssessmentDetailList({
assessmentName: state.inputV1,
pageNo: state.currentPage,
pageSize: state.pageSize,
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
console.log("获取全部评估信息", res.data.data);
state.selectedRowKeys = [props.assessmentId]
console.log(props.assessmentId,props)
getTableDate(arr);
state.tableDataTotal = Number(res.data.data.total);
}
})
.catch((err) => {
console.log("获取全部评估信息接口失败", err);
// state.createLoading = false;
});
};
//重置评估信息
const resetInvist = () => {
state.inputV1 = "";
getAllInvistText();
};
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
tableDataFunc,
rowSelection,
getAllInvistText,
resetInvist,
handelChangePage,
onSelectChange,
};
},
};
</script>
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addinvistDrawer {
.drawerMain {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.contentMain {
display: flex;
justify-content: space-between;
.main_left {
padding-right: 30px;
margin-top: 32px;
.main_item {
display: flex;
align-items: center;
margin-bottom: 32px;
.fi_input {
margin-right: 20px;
}
.btns {
margin-right: 20px;
padding: 0px 26px 0px 26px;
height: 38px;
background: #409eff;
border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search0.png");
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
}
.btnsn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #ffffff;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png");
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #409eff;
line-height: 36px;
margin-left: 5px;
}
}
}
.main_item2 {
.pa {
width: 100%;
margin: 15px auto;
display: flex;
justify-content: center;
}
}
}
}
.main_btns {
height: 72px;
width: 100%;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
}
</style>

View File

@@ -724,8 +724,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
}
@@ -765,8 +765,8 @@ export default {
.btn2 {
background: #ffffff;
margin-right: 20px;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
.line {

View File

@@ -31,12 +31,73 @@
<div class="btnbox">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 32px"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入活动名称"
maxlength="20"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动时间</span>
</div>
<div class="btnbox">
<a-range-picker
show-time
format="YYYY-MM-DD hh:mm"
style="width: 400px; height: 40px; border-radius: 8px;"
v-model:value="time"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动时长</span>
</div>
<div class="btnbox">
<a-input-number
:min="0"
:precision="0"
style="width: 400px; height: 40px; border-radius: 8px;"
v-model:value="inputV2"
/>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动地点</span>
</div>
<div class="btnbox">
<a-input
v-model:value="inputV3"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入活动地点"
maxlength="100"
/>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<div class="sign">
@@ -47,7 +108,7 @@
</div>
<span style="margin-right: 3px">活动公告</span>
</div>
<div class="textarea">
<div class="textarea" >
<a-textarea
v-model:value="textV1"
placeholder="请输入活动公告"
@@ -71,70 +132,6 @@
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动时间</span>
</div>
<div class="btnbox">
<a-range-picker
show-time
format="YYYY-MM-DD hh:mm:ss"
style="width: 424px"
v-model:value="time"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动时长</span>
</div>
<div class="btnbox">
<a-input-number
:min="0"
:precision="0"
style="
width: 388px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV2"
/>
<span style="margin-left: 5px">分钟</span>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动地址</span>
</div>
<div class="btnbox">
<a-input
v-model:value="inputV3"
style="width: 424px; height: 32px"
placeholder="请输入活动地址"
maxlength="100"
/>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">考勤设置</span>
@@ -147,7 +144,7 @@
</div>
<div class="setbox">
<div class="timerbox">
<span>开始前</span>
<span>活动开始前</span>
<a-input-number
:min="0"
:max="30"
@@ -160,10 +157,10 @@
"
v-model:value="inputV4"
/>
<span style="color: #999999; margin-left: 8px">分钟</span>
<span style="color: #999999; margin-left: 8px">分钟允许签到</span>
</div>
<div class="timerbox">
<span>开始后</span>
<span>活动开始后</span>
<a-input-number
:min="0"
:max="30"
@@ -176,7 +173,7 @@
"
v-model:value="inputV5"
/>
<span style="color: #999999; margin-left: 8px">分钟</span>
<span style="color: #999999; margin-left: 8px">分钟允许签到</span>
</div>
</div>
<!-- <div class="qdqtbox">
@@ -222,6 +219,15 @@
</a-radio-group>
</div>
</div>
<div class="main_item" style="height:40px;">
<div class="signbox">
<span style="margin-right: 3px"></span>
</div>
<div class="btnbox">
</div>
</div>
</div>
</div>
<div class="main_btns">
@@ -581,7 +587,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -595,7 +601,7 @@ export default {
align-items: flex-start;
margin-bottom: 32px;
.textarea {
width: 423px;
width: 400px;
.ant-input {
width: 100%;
@@ -649,13 +655,13 @@ export default {
}
.setbox {
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-bottom: 24px;
.timerbox {
margin-top: 6px;
margin-top: 22px;
margin-right: 32px;
display: flex;
align-items: center;
@@ -673,7 +679,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;

View File

@@ -21,11 +21,11 @@
<div class="main_items">
<div class="mi_ipts">
<div class="mii_ipt">
<div class="ipt_name">案例标题</div>
<div class="ipt_name"></div>
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 264px; height: 40px; border-radius: 8px"
style="width: 424px; height: 40px; border-radius: 8px"
placeholder="请输入案例标题"
show-count
:maxlength="20"
@@ -46,6 +46,7 @@
</div>
<div class="main_table">
<!--
<a-table
v-if="edit"
class="ant-table-striped"
@@ -61,14 +62,15 @@
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
/>-->
<a-table
v-else
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="{
type: 'radio',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
@@ -77,10 +79,11 @@
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
<div class="tableBox">
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
v-if="tableDataTotal > 10"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -89,7 +92,7 @@
class="pagination"
@change="handelChangePage"
/>
</div>
</div></div>
</div>
</div>
<div class="main_btns">
@@ -189,7 +192,7 @@ export default {
dataIndex: "title",
key: "title",
width: "400px",
align: "center",
ellipsis: true,
},
{
title: "作者名称",
@@ -198,13 +201,13 @@ export default {
width: "200px",
align: "center",
},
{
title: "导入时间",
dataIndex: "time",
key: "time",
width: "400px",
align: "center",
},
// {
// title: "导入时间",
// dataIndex: "time",
// key: "time",
// width: "400px",
// align: "center",
// },
];
return columns;
};
@@ -253,6 +256,7 @@ export default {
.then((res) => {
console.log("案例列表", res);
if (res.data.code === 200) {
state.tableDataTotal = res.data.data.count;
// state.selectedRowKeys = [0];
for (let i = 0; i < res.data.data.list.length; i++) {
console.log(
@@ -399,7 +403,7 @@ export default {
.main_items {
margin-top: 32px;
display: flex;
justify-content: space-between;
margin-bottom: 12px;
flex-wrap: wrap;
.mi_ipts {
@@ -467,7 +471,7 @@ export default {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388be1;
color: #4ea6ff;
}
}
.btn2:hover {

View File

@@ -357,7 +357,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;

View File

@@ -17,7 +17,7 @@
<span style="margin-right: 3px">测评名称</span>
</div>
<div class="btnbox">
<a-input v-model:value="inputV1" style="width: 424px; height: 32px" placeholder="请输入测评名称"
<a-input v-model:value="inputV1" style="width: 400px; height: 40px; border-radius: 8px;" placeholder="请输入测评名称"
show-count
:maxlength="20" />
</div>
@@ -51,7 +51,7 @@
<div class="btnbox">
<a-range-picker
show-time
style="width: 424px" v-model:value="time" format="YYYY-MM-DD HH:mm:ss"
style="width: 400px; height: 40px; border-radius: 8px;" v-model:value="time" format="YYYY-MM-DD HH:mm"
:placeholder="[' 开始时间', ' 结束时间']" />
</div>
</div>
@@ -61,7 +61,7 @@
</div>
<div class="textarea">
<a-textarea show-count :maxlength="200" v-model:value="description" placeholder="请输入测评说明"
style="width: 424px;" allowClear :rows="6"/>
style="width:400px;" allowClear :rows="6"/>
</div>
</div>
@@ -548,6 +548,37 @@ export default {
color: #fff;
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
display: flex;
justify-content: center;
position: absolute;
bottom: 20px;
}
}
}
}
</style>

View File

@@ -27,13 +27,13 @@
alt=""
/>
</div>
<span style="margin-right: 3px">课程名称</span>
<span style="margin-right: 3px">课程任务名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="courseName"
style="width: 384px; height: 32px"
placeholder="请输入名称"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入课程任务名称"
:maxlength="20"
/>
</div>
@@ -50,7 +50,7 @@
</div>
<div class="btnbox">
<button class="xkbtn" @click="showDrawerSelFacet">
{{ chooseCourseName ? "重选" : "选择" }}面授课
{{ chooseCourse ? "重选" : "选择" }}面授课
</button>
<div v-if="chooseCourse">
<a-tag closable color="processing" @close="logC">
@@ -70,21 +70,7 @@
</div>
<!-- 选择面授侧弹窗 -->
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">面授说明</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="description"
placeholder="请输入说明"
allow-clear
show-count
:maxlength="200"
:rows="6"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
@@ -95,7 +81,7 @@
</div>
<span style="margin-right: 3px">授课教师</span>
</div>
<div class="btnbox">
<div class="select" style="width: 400px;">
<!-- <a-auto-complete placeholder="选择老师" :value="memberValue.label" style="width: 364px"-->
<!-- :options="options" @change="handleChange2" @search="handleSearch"></a-auto-complete>-->
<ProjectManager
@@ -114,9 +100,10 @@
</div>
<span style="margin-right: 3px">面授时间</span>
</div>
<div class="btnbox">
<div class="select">
<a-range-picker
show-time
format="YYYY/MM/DD HH:mm"
v-model:value="chooseTime"
:placeholder="[' 开始时间', ' 结束时间']"
/>
@@ -132,17 +119,12 @@
</div>
<span style="margin-right: 3px">面授时长</span>
</div>
<div class="btnbox">
<div class="select">
<a-input-number
:min="0"
:max="300"
:precision="0"
style="
width: 364px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
style="width: 400px; height: 40px; border-radius: 8px;"
v-model:value="duration"
></a-input-number>
<span style="margin-left: 5px; width: 30px">分钟</span>
@@ -151,22 +133,34 @@
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">上课地</span>
<span style="margin-right: 3px">上课地</span>
</div>
<div class="btnbox">
<div class="select">
<a-input
v-model:value="address"
style="width: 384px; height: 32px"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入上课地址"
:maxlength="100"
/>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">面授说明</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="description"
placeholder="请输入说明"
allow-clear
show-count
:maxlength="200"
:rows="6"
/>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">考勤设置</span>
@@ -282,7 +276,6 @@
</div>
<AssessmentList
v-model:assessmentVisible="assessmentVisible"
v-model:titleTag="titleTag"
v-model:assessmentId="assessmentId"
v-model:assessmentName="assessmentName"
/>
@@ -336,7 +329,7 @@
</div>
<div class="main_item">
<div class="signbox">
<span style="margin-right: 3px">配置考试:</span>
<span style="margin-right: 3px">配置考试</span>
</div>
<div class="btnbox" @click="showDrawerAddTest">
<button class="xkbtn">配置</button>
@@ -354,7 +347,7 @@
</div>
<div v-if="EditTestId > 0" class="main_item">
<div class="signbox">
<span style="margin-right: 3px">已选考试:</span>
<span style="margin-right: 3px">已选考试</span>
</div>
<div class="btnbox">
<a-tag closable color="processing" @close="logT">
@@ -498,7 +491,7 @@ export default {
fileList: [],
chooseCourse: null, //选择的在线课程
chooseCourseName: null, //选择的在线课程
assessmentId: null,
assessmetId: null,
EditTestId: null,
EditWorkId: null,
workName: null,
@@ -609,19 +602,30 @@ export default {
state.EditWorkId = result.homeWorkId;
state.assessmentId = result.evaluateId;
state.needEval = result.evaluateId;
detail({offcourseId:result.offcourseId}).then((res)=>{
console.log("====",!result.offcourseId,!result.homeWorkId,!result.testId);
if(result.offcourseId){
detail({offcourseId:result.offcourseId}).then((res)=>{
state.chooseCourseName =res.data.data.name;
console.log(" state.chooseCourseName", state.chooseCourseName);
});
queryAppraiseDetailById({assessmentId:result.evaluateId}).then((res)=>{
}
if(result.evaluateId){
queryAppraiseDetailById({assessmentId:!result.offcourseId}).then((res)=>{
state.assessmentName =res.data.data.assessmentName;
});
queryWorkDetailById({workId:result.homeWorkId}).then((res)=>{
}
if(result.homeWorkId){
queryWorkDetailById({workId:result.homeWorkId}).then((res)=>{
state.workName = res.data.data.workName;
});
queryExaminationDetailById({ examinationId: result.testId }).then((res)=>{
}
if(result.testId){
queryExaminationDetailById({ examinationId: result.testId }).then((res)=>{
state.testName = res.data.data.examinationName;
});
}
console.log("state=======", state);
});
};
@@ -639,8 +643,8 @@ export default {
state.chooseCourse == null ||
state.memberValue == {} ||
state.chooseTime == [] ||
state.duration == "" ||
state.address == ""
state.duration == ""
) {
message.destroy();
return message.warning("请输入必填字段");
@@ -763,11 +767,7 @@ export default {
const showAssessment = () => {
state.assessmentVisible = true;
};
const faceAssess = (value) => {
console.log(value);
state.chooseMent = value;
state.chooseMentName = value.name;
};
// 员工滚动
const templateScroll = (e) => {
console.log("滚动", e);
@@ -843,7 +843,7 @@ export default {
clear,
handleChange,
showAssessment,
faceAssess,
// change,
options,
handleFocus,
@@ -918,7 +918,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -933,7 +933,7 @@ export default {
margin-bottom: 32px;
.textarea {
width: 423px;
width: 400px;
.ant-input {
width: 100%;
@@ -1008,7 +1008,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;
@@ -1043,7 +1043,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;

View File

@@ -70,7 +70,7 @@
<div class="pa">
<a-pagination
v-if="total > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"

View File

@@ -33,7 +33,7 @@
<a-input
v-model:value="formState.workName"
style="width: 424px; height: 32px; margin-left: 35px"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入作业名称"
autocomplete="off"
show-count :maxlength="20"
@@ -41,6 +41,20 @@
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="提交时间" name="choosedTime">
<a-range-picker
show-time
style="width: 400px; height: 40px; border-radius: 8px;"
v-model:value="formState.choosedTime"
format="YYYY/MM/DD HH:mm"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</a-form-item>
</div>
</div>
<div class="main_item2">
<a-form-item has-feedback label="作业要求" name="workRequirement">
<div class="textarea">
@@ -50,27 +64,12 @@
placeholder="请输入作业要求"
autocomplete="off"
allow-clear
:rows="6"
style="margin-left: 35px"
show-count :maxlength="200"
/></div>
</a-form-item>
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="提交时间" name="choosedTime">
<a-range-picker
show-time
style="width: 424px; margin-left: 35px"
v-model:value="formState.choosedTime"
format="YYYY-MM-DD hh:mm:ss"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
@@ -558,7 +557,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -572,7 +571,7 @@ export default {
align-items: flex-start;
margin-bottom: 32px;
.textarea {
width: 423px;
width: 400px;
.ant-input {
width: 100%;
@@ -633,7 +632,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;

View File

@@ -10,7 +10,7 @@
<div class="drawerMain">
<div class="header">
<div v-if="edit" class="headerTitle">编辑评估</div>
<div v-else class="headerTitle">添加评估</div>
<div v-else class="headerTitle">添加评估{{assessmentName}}{{assessmentId}}</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@@ -20,83 +20,22 @@
<div class="contentMain">
<div class="main">
<div class="main_left">
<div class="main_notice">
<div class="mntc_left">
<div class="notice_icon"></div>
<div v-if="assessment == null && assessment1 == null">
<span class="title"
>已选择 <span class="data">0</span> </span
>
</div>
<div v-else>
<div v-if="assessment1 == null">
<span class="title"
>已选择 <span class="data">1</span> ;</span
>
<span class="title"
>名称 <span class="data">{{ assessment.name }}</span>
</span>
<span class="title"
>题数 <span class="data">{{ assessment.num }}</span>
</span>
<span class="title"
>创建人
<span class="data">{{ assessment.creator }}</span>
</span>
<span class="title"
>创建时间
<span class="data">{{ assessment.time }}</span>
</span>
</div>
<div v-else>
<span class="title"
>已选择 <span class="data">1</span> ;</span
>
<span class="title"
>名称
<span class="data">{{ assessment1.assessmentName }}</span>
</span>
<span class="title"
>题数
<span class="data">{{
assessment1.essayQuestionVoList.length
}}</span>
</span>
<span class="title"
>创建人
<span class="data">{{ assessment1.createUser }}</span>
</span>
<span class="title"
>创建时间
<span class="data">{{ assessment1.createTime }}</span>
</span>
</div>
</div>
</div>
</div>
<div class="main_item">
<div class="fi_input">
<div class="btns" @click="checkAssDrawer">
<div class="search"></div>
<div class="btnText">选择评估</div>
<div class="main_item2">
<AssessmentList
<AssessmentAll
v-model:assessmentVisible="assessmentVisible"
v-model:titleTag="titleTag"
:assessmentId="assessmentId"
@checkedAss="getCheckedAss"
v-model:assessmentId="assessmentId"
v-model:assessmentName="assessmentName"
/>
</div>
</div>
</div>
</div>
</div>
<div class="main_btns">
</div>
</div>
<div class="main_btns">
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="updateTask">确定</button>
</div>
</div>
</div>
</div>
</a-drawer>
</template>
@@ -104,14 +43,19 @@
import { reactive, toRefs } from "vue";
import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue";
import { RouterEditTask, IsExistence, IsExistenceProject} from "@/api/indexTask";
import * as api from "../../api/indexInvist";
import {
RouterEditTask,
IsExistence,
IsExistenceProject,
IsExistenceProjectTemplate,
} from "@/api/indexTask";
import { addTempTask } from "../../api/indexTaskadd";
import AssessmentList from "@/components/drawers/AssessmentList.vue";
import AssessmentAll from "@/components/drawers/AssessmentAll.vue";
export default {
name: "AddInvist",
components: {
AssessmentList,
AssessmentAll,
},
props: {
addinvistVisible: {
@@ -175,56 +119,53 @@ export default {
assessmentName: "",
assessment: null,
assessment1: null,
assessmentVisible: false,
assessmentVisible:false,
titleTag: false,
});
const getCheckedAss = (ass) => {
state.assessmentId = ass.assessmentId;
state.assessment = ass;
state.assessment1 = null;
};
// const getCheckedAss = (ass) => {
// state.assessmentId = ass.assessmentId;
// state.assessment = ass;
// console.log("state.assessment1",state.assessment);
//
// };
const closeDrawer = () => {
ctx.emit("update:addinvistVisible", false);
ctx.emit("update:edit", false);
state.assessment = null;
state.assessment1 = null;
state.assessmentId = null;
state.assessmentName = null;
state.inputV1 = "";
// ctx.emit("changeData", false);
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
};
const checkAssDrawer = () => {
state.assessmentVisible = true;
};
const afterVisibleChange = () => {
state.assessmentId = null;
state.assessmentName = "";
state.assessment = null;
queryInfo();
};
const queryInfo = () => {
if (props.edit) {
state.titleTg = false;
//编辑讨
api
.queryAppraiseDetailById({ assessmentId: props.EditInvistId })
.then((res) => {
console.log(res);
//更新讨论信息
state.assessment1 = res.data.data;
state.assessmentId = res.data.data.assessmentId;
})
.catch(() => {});
const afterVisibleChange = (bool) => {
if(bool && props.EditInvistId >0){
state.assessmentVisible = true;
state.assessmentId = props.EditInvistId;
}else{
state.assessmentId =null;
state.assessmentName =null;
}
};
const updateTask = () => {
if (state.assessment == null) {
console.log("state.assessmentId ",state.assessmentId ,state.assessmentName );
if (!state.assessmentId) {
return message.warning("请选择评估");
}
let l_data_id = [];
l_data_id.push(Number(state.assessmentId))
console.log("state.assessment",state.assessment,state.assessmentId);
if (props.isLevel == 1) {
IsExistence({
chapterId: Number(props.isactive),
courseId: state.assessment.assessmentId,
courseTaskId:l_data_id,
routerId: props.routerId,
type: 11,
})
@@ -247,8 +188,8 @@ export default {
} else {
RouterEditTask({
chapterId: props.isactive,
courseId: state.assessment.assessmentId,
name: state.assessment.name,
courseTaskId: state.assessmentId,
name: state.assessmentName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 11,
@@ -272,7 +213,7 @@ export default {
} else if (props.isLevel == 2) {
IsExistenceProject({
courseId: state.assessment.assessmentId,
courseTaskId: l_data_id,
projectId: props.projectId,
stageId: props.chooseStageId || 0,
type: 11,
@@ -295,8 +236,8 @@ export default {
} else {
apiTask
.addTask({
courseId: state.assessment.assessmentId,
name: state.assessment.name,
courseId: state.assessmentId,
name: state.assessmentName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
@@ -316,9 +257,31 @@ export default {
})
} else if (props.isLevel == 3) {
addTempTask({
courseId: state.assessment.assessmentId,
name: state.assessment.name,
IsExistenceProjectTemplate({
courseTaskId: l_data_id,
projectTemplateId: props.projectTemplateId,
stageId: props.chooseStageId || 0,
type: 11,
}).then((res)=>{
console.log(res)
console.log("项目中是否包含此评估了", res);
if (res.data.data.length) {
let strdata = res.data.data;
let tipStr = "";
for (let i = 0; i < strdata.length; i++) {
if (i == strdata.length - 1) {
tipStr += strdata[i].courseName;
} else {
tipStr += strdata[i].courseName + "/";
}
}
message.destroy();
message.warning("评估(" + tipStr + ")重复添加");
return;
}else{
addTempTask({
courseId: state.assessmentId,
name: state.assessmentName,
projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
@@ -334,6 +297,9 @@ export default {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
}
});
}
};
@@ -343,7 +309,7 @@ export default {
closeDrawer,
updateTask,
checkAssDrawer,
getCheckedAss,
};
},
};
@@ -369,8 +335,7 @@ export default {
}
}
.contentMain {
display: flex;
justify-content: space-between;
.main {
width: 100%;
.main_left {
@@ -379,7 +344,7 @@ export default {
.main_item {
display: flex;
align-items: center;
margin-bottom: 64px;
.fi_input {
margin-right: 20px;
}
@@ -441,7 +406,7 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 32px;
margin-bottom:3px;
height: 40px;
background-color: #e9f6fe;
.mntc_left {
@@ -452,7 +417,7 @@ export default {
margin-right: 17px;
}
.data {
color: #388be1;
color: #4ea6ff;
}
.notice_icon {
width: 14px;
@@ -470,10 +435,11 @@ export default {
}
}
}
.main_btns {
height: 72px;
width: 100%;
margin-top: 180px;
bottom: 0;
left: 0;
display: flex;

View File

@@ -84,7 +84,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -169,7 +169,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize1"
@@ -260,7 +260,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -1383,7 +1383,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -175,7 +175,7 @@ export default {
.up2 {
font-size: 16px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
margin-left: 4px;
}
}
@@ -210,7 +210,7 @@ export default {
.tip {
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
margin-top: 15px;
cursor: pointer;
}
@@ -279,7 +279,7 @@ export default {
.stateloading {
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
}
.statedefeat {
font-size: 14px;
@@ -302,7 +302,7 @@ export default {
height: 5px;
border-radius: 4px;
background: #388be1;
background: #4ea6ff;
}
//下载失败条
.inprogdefeat {

View File

@@ -32,9 +32,9 @@
<div class="btnbox">
<a-input
v-model:value="inputV1"
style="width: 400px; height: 32px"
placeholder="请输入考试名称"
maxlength="20"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入直播名称"
:maxlength="20"
/>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="textarea">
<a-textarea
v-model:value="textV1"
placeholder="请输入考试说明"
placeholder="请输入直播说明"
allow-clear
show-count
:maxlength="200"
@@ -66,7 +66,7 @@
<div class="btnbox">
<a-range-picker
show-time
style="width: 424px"
style="width: 400px; height: 40px; border-radius: 8px;"
v-model:value="time"
format="YYYY/MM/DD HH:mm"
:placeholder="[' 开始时间', ' 结束时间']"
@@ -88,15 +88,10 @@
:min="0"
:max="300"
:precision="0"
style="
width: 364px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
style="width: 400px; height: 40px; border-radius: 8px;"
v-model:value="inputV2"
></a-input-number>
<span style="margin-left: 5px">分钟</span>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div>
<div class="main_item">
@@ -109,7 +104,7 @@
</div>
<span style="margin-right: 3px">授课老师</span>
</div>
<div class="btnbox">
<div class="select" style="width: 400px;" >
<ProjectManager
v-model:value="memberValue.value"
v-model:name="memberValue.label"
@@ -124,7 +119,7 @@
alt=""
/>
</div>
<span style="margin-right: 14px">直播封面</span>
<span style="margin-right: 14px">直播封面</span>
</div>
<div class="item_inp">
<a-upload
@@ -148,7 +143,8 @@
</div>
</a-upload>
<div class="i_bottom">
<div class="tip">支持图片格式为jpg/jpeg/png 图片最大为2MB</div>
<div class="tip"> <span style="color: #999999; margin-left: 8px">支持图片格式为jpg/jpeg/png 图片最大为2MB</span></div>
</div>
</div>
</div>
@@ -159,7 +155,7 @@
<div class="btnbox">
<a-input
v-model:value="inputV4"
style="width: 424px; height: 32px"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入直播链接"
:maxlength="100"
/>
@@ -181,7 +177,7 @@
<div class="btnbox">
<a-input
v-model:value="inputV5"
style="width: 424px; height: 32px"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入回放链接"
:maxlength="100"
/>
@@ -190,35 +186,21 @@
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">评估</span>
<span style="margin-right: 3px">直播说明</span>
</div>
<div class="btnbox2">
<a-checkbox
v-model:checked="needEval"
@click="needEval = !needEval"
>需要评估
</a-checkbox>
</div>
</div>
<div v-if="needEval" class="main_item">
<div class="signbox"></div>
<div class="btnbox">
<button class="xkbtn" @click="showAssessment">选择评估</button>
<div v-if="assessmentId > 0">
<a-tag closable @close="removePG" color="processing">
<span style="font-size: 14px; line-height: 33px">{{
assessmentName
}}</span>
</a-tag>
</div>
<AssessmentList
v-model:assessmentVisible="assessmentVisible"
v-model:titleTag="titleTag"
v-model:assessmentId="assessmentId"
v-model:assessmentName="assessmentName"
<div class="textarea">
<a-textarea
v-model:value="textV1"
placeholder="请输入考试说明"
allow-clear
show-count
:maxlength="200"
:rows="6"
/>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">考勤设置</span>
@@ -231,7 +213,7 @@
</div>
<div class="setbox">
<div class="timerbox">
<span>开始前</span>
<span>直播开始前</span>
<a-input-number
:min="0"
:max="30"
@@ -244,10 +226,10 @@
"
v-model:value="inputV6"
></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span>
<span style="color: #999999; margin-left: 8px">分钟允许签到</span>
</div>
<div class="timerbox">
<span>开始后</span>
<span>直播开始后</span>
<a-input-number
:min="0"
:max="30"
@@ -260,7 +242,7 @@
"
v-model:value="inputV7"
></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span>
<span style="color: #999999; margin-left: 8px">分钟允许签到</span>
</div>
</div>
<!-- <div class="qdqtbox">
@@ -303,7 +285,7 @@
</div>
</div>
<div class="main_item">
<div class="main_item" style="margin-bottom: 28px;">
<div class="signbox">
<span style="margin-right: 3px">其他设置</span>
</div>
@@ -315,6 +297,45 @@
</a-checkbox>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">评估</span>
</div>
<div class="btnbox2">
<a-checkbox
v-model:checked="needEval"
@click="needEval = !needEval"
>需要评估
</a-checkbox>
</div>
</div>
<div v-if="needEval" class="main_item">
<div class="signbox"></div>
<div class="btnbox">
<button class="xkbtn" @click="showAssessment">选择评估</button>
<div v-if="assessmentId > 0">
<a-tag closable @close="removePG" color="processing">
<span style="font-size: 14px; line-height: 33px">{{
assessmentName
}}</span>
</a-tag>
</div>
<AssessmentList
v-model:assessmentVisible="assessmentVisible"
v-model:titleTag="titleTag"
v-model:assessmentId="assessmentId"
v-model:assessmentName="assessmentName"
/>
</div>
</div>
<div class="main_item" style="height:30px;">
<div class="signbox">
<span style="margin-right: 3px"></span>
</div>
<div class="btnbox">
</div>
</div>
</div>
</div>
<div class="main_btns">
@@ -891,7 +912,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -905,7 +926,7 @@ export default {
align-items: flex-start;
margin-bottom: 32px;
.textarea {
width: 423px;
width: 400px;
.ant-input {
width: 100%;
@@ -959,13 +980,13 @@ export default {
}
.setbox {
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-bottom: 24px;
margin-bottom: 6px;
.timerbox {
margin-top: 6px;
margin-top: 22px;
margin-right: 32px;
display: flex;
align-items: center;
@@ -983,7 +1004,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;
@@ -1005,7 +1026,7 @@ export default {
}
.item_nam {
width: 100px;
width: 120px;
display: flex;
align-items: center;
justify-content: flex-end;

View File

@@ -21,7 +21,7 @@
<div class="main_items">
<div class="mi_ipts">
<div class="mii_ipt">
<div class="ipt_name">课程名称</div>
<div class="ipt_name"></div>
<div class="fi_input">
<a-input
v-model:value="inputV1"
@@ -32,7 +32,7 @@
</div>
</div>
<div class="mii_ipt">
<div class="ipt_name">课程分类</div>
<div class="ipt_name"></div>
<div class="select">
<a-select
v-model:value="selectV"
@@ -57,13 +57,14 @@
</div>
</div>
</div>
<!--
<div class="main_notice">
<div class="mntc_left">
<div class="notice_icon"></div>
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px"
>已选择
<span v-if="edit" style="color: #388be1">{{ 1 }}</span>
<span v-else style="color: #388be1">{{
<span v-if="edit" style="color: #4ea6ff">{{ 1 }}</span>
<span v-else style="color: #4ea6ff">{{
selectedRowKeys.length
}}</span>
</span
@@ -73,12 +74,13 @@
>
</div>
<div class="mntc_right" @click="clearLine" v-if="!edit">
<span style="color: #387df7; margin-right: 24px">清空</span>
<span style="color: #387df7; margin-right: 24px"></span>
</div>
</div>
-->
<div class="main_table">
<!-- 编辑的表格 -->
<div v-if="edit">
<div>
<div>
<a-table
class="ant-table-striped"
@@ -95,10 +97,11 @@
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
<div class="tableBox">
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -109,8 +112,8 @@
/>
</div>
</div>
</div>
<div v-else>
</div></div>
<!-- <div v-else>
<a-table
class="ant-table-striped"
:row-class-name="
@@ -129,7 +132,7 @@
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -139,7 +142,12 @@
@change="handelChangePage"
/>
</div>
</div>
-->
</div>
</div>
<div class="main_btns">
@@ -159,6 +167,7 @@ import {
RouterEditTask,
IsExistence,
IsExistenceProject,
IsExistenceProjectTemplate,
} from "@/api/indexTask";
import { addTempTask } from "../../api/indexTaskadd";
export default {
@@ -251,51 +260,62 @@ export default {
const afterVisibleChange = (bol) => {
if (bol == true) {
getAllOnlineText();
getOnlineById();
}
};
//TODO 根据id 获取在线课信息
const getOnlineById=()=>{
}
const tableDataFunc = () => {
const columns = [
{
title: "课程编号",
dataIndex: "num",
key: "num",
width: "80px",
align: "center",
},
// {
// title: "课程编号",
// dataIndex: "num",
// key: "num",
// width: "80px",
// align: "center",
// },
{
title: "名称",
dataIndex: "name",
key: "name",
width: "100px",
align: "center",
width: "40%",
ellipsis: true,
},
{
title: "课程分类",
dataIndex: "contenttype",
key: "contenttype",
width: "80px",
width: "15%",
align: "center",
},
{
title: "授课教师",
dataIndex: "teacher",
key: "teacher",
width: "100px",
width: "15%",
align: "center",
},
{
title: "创建人",
dataIndex: "sysCreateBy",
key: "sysCreateBy",
width: "80px",
width: "15%x",
align: "center",
},
// {
// title: "创建时间",
// dataIndex: "createTime",
// key: "createTime",
// width: "15%",
// align: "center",
// },
{
title: "完成时间",
dataIndex: "overtime",
key: "time",
width: "150px",
title: "发布时间",
dataIndex: "publishTime",
key: "publishTime",
width: "15%",
align: "center",
},
];
@@ -339,7 +359,8 @@ export default {
contenttype: value.contentType == 10 ? "微课" : "录播课",
teacher: value.teacher,
sysCreateBy: value.sysCreateBy,
overtime: "",
createTime: value.sysCreateTime,
publishTime: value.publishTime,
courseId: Number(value.onlineClassesId),
};
array.push(obj);
@@ -426,19 +447,7 @@ export default {
});
};
const updateTask = () => {
if (props.isLevel == 1) {
// isExistence(23)
// return
// let routerarr = []
// console.log('我是要便利的数据1', state.addOnlineList)
// state.addOnlineList.map((value) => {
// routerarr.push(isExistence(value.courseId))
// })
// console.log('当前是否已经添加了',routerarr)
}
if (props.isLevel == 3) {
console.log("我是要便利的数据3", state.addOnlineList);
}
if (props.isLevel == 1) {
console.log("我是要便利的数据2", state.addOnlineList);
let l_data = state.addOnlineList;
@@ -557,28 +566,60 @@ export default {
console.log(err);
});
} else if (props.isLevel == 3) {
state.addOnlineList.map((value) => {
console.log( props, props.projectTemplateId,props.projectTaskId)
addTempTask({
courseId: value.num,
name: value.name,
projectTemplateId: localStorage.getItem("projectTemplateId"),
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 1,
})
.then((res) => {
console.log('新增或者编辑在线课',res)
let p_data = state.addOnlineList;
let p_data_id = [];
p_data.map((item) => {
p_data_id.push(item["courseId"]);
});
console.log("需要查询的在线课ID", p_data_id);
IsExistenceProjectTemplate({
courseTaskId: p_data_id,
projectTemplateId:props.projectTemplateId,
stageId: props.chooseStageId || 0,
type: 1,
}).then((res)=>{
console.log("项目中是否包含此在线课了", res);
if (res.data.data.length) {
let strdata = res.data.data;
let tipStr = "";
for (let i = 0; i < strdata.length; i++) {
if (i == strdata.length - 1) {
tipStr += strdata[i].courseName;
} else {
tipStr += strdata[i].courseName + "/";
}
}
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`);
ctx.emit("changeData", false);
closeDrawer();
message.warning("在线课" + tipStr + "重复添加");
return;
}else{
state.addOnlineList.map((value) => {
console.log( props, props.projectTemplateId,props.projectTaskId)
addTempTask({
courseId: value.num,
name: value.name,
projectTemplateId: localStorage.getItem("projectTemplateId"),
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 1,
})
.then((res) => {
console.log('新增或者编辑在线课',res)
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`);
});
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`);
}
});
})
}
//if(state.addOnlineList.Target==undefined){
// closeDrawer();
@@ -602,9 +643,7 @@ export default {
getAllOnlineText();
};
onMounted(() => {
// let cookie =
// "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njk0MjgwNTAsImV4cCI6MTY2OTQzNTI1MCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.9ea5ce6d4cd43c2c17f21a293e4dc0d362c2a404b9d50fae5c49fed5a238fb1a";
// setCookie("token", cookie, 10);
});
return {
...toRefs(state),
@@ -651,7 +690,7 @@ export default {
padding-right: 12px;
.main_items {
display: flex;
justify-content: space-between;
margin-top: 32px;
margin-bottom: 12px;
flex-wrap: wrap;
@@ -720,7 +759,7 @@ export default {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388be1;
color: #4ea6ff;
}
}
.btn2:hover {
@@ -738,7 +777,7 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 32px;
margin-bottom: 3px;
height: 40px;
background-color: #e9f6fe;
.mntc_left {

View File

@@ -21,40 +21,40 @@
<div class="main_items">
<div class="mi_ipts">
<div class="mii_ipt">
<div class="ipt_name">项目名称</div>
<div class="ipt_name"></div>
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 240px; height: 40px; border-radius: 8px"
style="width: 210px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称"
maxlength="20"
/>
</div>
</div>
<div class="mii_ipt">
<div class="ipt_name">项目经理</div>
<div class="ipt_name"></div>
<div class="fi_input">
<a-input
v-model:value="inputV2"
style="width: 240px; height: 40px; border-radius: 8px"
style="width: 210px; height: 40px; border-radius: 8px"
placeholder="请输入项目经理"
maxlength="20"
/>
</div>
</div>
<div class="mii_ipt">
<div class="ipt_name">创建人</div>
<div class="ipt_name"></div>
<div class="fi_input">
<a-input
v-model:value="inputV3"
style="width: 240px; height: 40px; border-radius: 8px"
style="width: 210px; height: 40px; border-radius: 8px"
placeholder="请输入创建人"
maxlength="20"
/>
</div>
</div>
</div>
<div class="mi_btns">
<div class="mi_btns" style="margin-left:0px;">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText" @click="searchProjectList()">搜索</div>
@@ -141,26 +141,13 @@
</div>
</div>
</div>
<div class="">
<div class="main_table">
<div class="drawerbox">
<!-- 添加的时候显示多选的表 -->
<a-table
v-if="!edit"
:columns="tableDataFunc()"
:data-source="drawertableData"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 700 }"
@expand="expandTable"
:pagination="false"
>
</a-table>
<!-- 编辑的时候显示单选的表 -->
<a-table
v-else
:columns="tableDataFunc()"
:data-source="drawertableData"
:row-selection="{
@@ -169,7 +156,6 @@
type: 'radio',
}"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 700 }"
@expand="expandTable"
:pagination="false"
>
@@ -180,7 +166,7 @@
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -323,28 +309,28 @@ export default {
title: "项目名称",
dataIndex: "name",
key: "projectName",
width: 200,
width:"40%",
ellipsis: true,
},
{
title: "项目经理",
dataIndex: "manager",
key: "manager",
width: 100,
width:"20%",
align: "center",
},
{
title: "创建人",
dataIndex: "creater",
key: "creater",
width: 100,
width:"20%",
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: 180,
width:"20%",
align: "center",
},
];
@@ -779,7 +765,7 @@ export default {
// margin-right: 17px;
// }
// .data {
// color: #388be1;
// color: #4ea6ff;
// }
// .notice_icon {
// width: 14px;
@@ -851,7 +837,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -859,7 +845,7 @@ export default {
}
}
}
.main_item2 {
display: flex;
align-items: flex-start;
@@ -939,7 +925,37 @@ export default {
}
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
display: flex;
justify-content: center;
position: absolute;
bottom: 20px;
}
}
.main_btns {
height: 72px;
width: 100%;
@@ -971,6 +987,7 @@ export default {
color: #fff;
}
}
}
}
</style>

View File

@@ -40,7 +40,7 @@
<div class="btnbox">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 32px"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入外链名称"
show-count :maxlength="20"
/>
@@ -59,7 +59,7 @@
<div class="btnbox">
<a-input
v-model:value="inputV2"
style="width: 424px; height: 32px"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入链接"
show-count :maxlength="100"
@@ -70,7 +70,7 @@
<div class="signbox">
<span style="margin-right: 3px">外链说明</span>
</div>
<div class="textarea">
<div class="textarea" style="width:400px;">
<a-textarea
v-model:value="textV1"
placeholder="请输入外链说明"
@@ -350,7 +350,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -397,7 +397,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;

View File

@@ -33,84 +33,46 @@
外部考试
</button> -->
</div>
<a-form
v-if="isOuter == 1"
ref="formRef"
name="custom-validation"
:model="formState"
:rules="rules"
v-bind="layout"
@finish="handleFinish"
@validate="handleValidate"
@finishFailed="handleFinishFailed"
>
<div class="contentMain">
<div class="main_left">
<div class="main_item">
<div class="btnbox">
<div class="sign" style="margin-bottom: 24px">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<a-form-item
has-feedback
label="考试名称"
name="examinationName"
>
<a-input
v-model:value="formState.examinationName"
style="width: 424px; height: 32px; margin-left: 35px"
autocomplete="off"
placeholder="请输入考试名称"
show-count
:maxlength="20"
/>
</a-form-item>
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">考试名称</span>
</div>
<div class="main_item2">
<a-form-item
has-feedback
label="考试说明"
name="examinationExplain"
>
<div class="textarea">
<a-textarea
v-model:value="formState.examinationExplain"
placeholder="请输入考试说明"
allow-clear
:rows="6"
style="margin-left: 35px"
show-count
:maxlength="200"
/>
</div>
</a-form-item>
<div class="btnbox">
<a-input
v-model:value="test.examinationName"
style="width: 400px; height: 40px; border-radius: 8px;"
placeholder="请输入考试名称"
:maxlength="20"
/>
</div>
<div class="main_item">
<div class="btnbox">
<div class="sign" style="margin-bottom: 24px">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<a-form-item has-feedback label="选择试卷" name="choosedTest">
<a-button
type="primary"
style="width: 100px; margin-left: 35px"
class="outer"
@click.prevent
@click="selectTest()"
>
选择试卷
</a-button>
<a-tag
v-if="paperName != ''"
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">选择试卷</span>
</div>
<div class="btnbox">
<button class="xkbtn" @click="selectTest">
{{ chooseCourse ? "重选" : "选择" }}试卷
</button>
<div v-if="paperName != ''">
<a-tag
closable
color="processing"
@close="delTag"
@@ -119,84 +81,111 @@
paperName
}}</span>
</a-tag>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="btnbox">
<div class="sign" style="margin-bottom: 24px">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<a-form-item has-feedback label="考试时间" name="choosedTime">
<a-range-picker
show-time
v-model:value="formState.choosedTime"
format="YYYY-MM-DD hh:mm:ss"
style="width: 424px; margin-left: 35px"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</a-form-item>
</div>
<!-- 选择面授侧弹窗 -->
<div>
<sel-facet
v-model:selfacetVisible="selfacetvisible"
v-model:chooseCourse="chooseCourse"
v-model:chooseCourseName="chooseCourseName"
/>
</div>
<div class="main_item">
<div class="btnbox">
<div class="sign" style="margin-bottom: 24px">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<a-form-item
has-feedback
label="考试时长"
name="examinationDuration"
>
<a-input
v-model:value="formState.examinationDuration"
type="number"
style="width: 388px; height: 32px; margin-left: 35px"
/>
</a-form-item>
<span style="transform: translateY(-50%)">分钟</span>
<!-- 选择面授侧弹窗 -->
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">考试时间</span>
</div>
<div class="main_item">
<div class="btnbox">
<span style="margin-right: 43px">考试限制</span>
<a-form-item
has-feedback
label="允许重复考试"
name="examinationLimit"
>
<div class="btnbox" >
<a-range-picker style="width: 400px; height: 40px; border-radius: 8px;"
show-time
format="YYYY/MM/DD HH:mm"
v-model:value="test.chooseTime"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">考试时长</span>
</div>
<div class="select">
<a-input-number
:min="0"
:max="300"
:precision="0"
style="width: 400px; height: 40px; border-radius: 8px;"
v-model:value="test.examinationDuration"
></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">考试说明</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="test.examinationExplain"
placeholder="请输入考试说明"
allow-clear
show-count
:maxlength="200"
:rows="6"
/>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">考试限制</span>
</div>
<div class="kqszbox">
<div class="setbox">
<div class="timerbox">
<span>允许重复考试</span>
<a-input-number
:min="-1"
:max="300"
:precision="0"
type="number"
v-model:value="formState.examinationLimit"
style="
width: 88px;
width: 100px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
/>
<span style="margin-left: 8px"></span>
<span style="margin-left: 24px; color: #999999"
>-1表示无限制</span
>
</a-form-item>
v-model:value="test.examinationLimit"
></a-input-number>
<span style="color: #999999; margin-left: 8px">,-1表示无限制</span>
</div>
</div>
</div>
</div>
<div class="main_item">
<div class="signbox">
<span style="margin-right: 3px">显示答案</span>
</div>
<div class="btnbox">
<a-form-item has-feedback label="显示答案" name="showAnswers">
<a-radio-group
style="margin-left: 35px; margin-right: 12px"
v-model:value="formState.showAnswers"
style="margin-right: 12px"
v-model:value="test.showAnswers"
>
<a-radio
v-model:checked="checked"
@@ -211,15 +200,18 @@
>不允许查看
</a-radio>
</a-radio-group>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="signbox">
<span style="margin-right: 3px">显示解析</span>
</div>
<div class="btnbox">
<a-form-item has-feedback label="显示解析" name="showAnalysis">
<a-radio-group
style="margin-left: 35px; margin-right: 12px"
v-model:value="formState.showAnalysis"
style="margin-right: 12px"
v-model:value="test.showAnalysis"
>
<a-radio
v-model:checked="checked"
@@ -234,15 +226,18 @@
>不允许查看
</a-radio>
</a-radio-group>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="signbox">
<span style="margin-right: 3px">评分模式</span>
</div>
<div class="btnbox">
<a-form-item has-feedback label="评分模式" name="scoringModel">
<a-radio-group
style="margin-left: 35px; margin-right: 12px"
v-model:value="formState.scoringModel"
style="margin-right: 12px"
v-model:value="test.scoringModel"
>
<a-radio
v-model:checked="checked"
@@ -257,31 +252,34 @@
>最后一次
</a-radio>
</a-radio-group>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="signbox">
<span style="margin-right: 3px">及格线</span>
</div>
<div class="btnbox">
<a-form-item has-feedback label="及格线" name="passLine">
<a-input
v-model:value="formState.passLine"
v-model:value="test.passLine"
type="number"
style="width: 88px; height: 32px; margin-left: 35px"
style="width: 400px; height: 40px; border-radius: 8px;"
/>
</a-form-item>
<span style="margin-left: 8px"></span>
<span style="color: #999999; margin-left: 8px"></span>
</div>
</div>
<div class="main_item">
<div class="main_item">
<div class="signbox">
<span style="margin-right: 3px">作业要求</span>
</div>
<div class="btnbox">
<a-form-item
has-feedback
label="作业要求"
name="questionArrangement"
>
<a-radio-group
style="margin-right: 12px"
v-model:value="formState.questionArrangement"
v-model:value="test.questionArrangement"
>
<a-radio
v-model:checked="checked"
@@ -308,103 +306,30 @@
>不乱序
</a-radio>
</a-radio-group>
</a-form-item>
</div>
</div>
</div>
</div>
<div class="main_btns">
<a-button class="btn1" @click="closeDrawer2">取消</a-button>
<a-button class="btn2" html-type="submit">确定</a-button>
</div>
</a-form>
<a-form
v-else
ref="formRef"
name="custom-validation"
:model="formState"
:rules="rules"
v-bind="layout"
@finish="handleFinish"
@validate="handleValidate"
@finishFailed="handleFinishFailed"
>
<div class="contentMain">
<div class="main_left">
<div class="main_item">
<div class="btnbox">
<a-form-item
has-feedback
label="考试名称"
name="examinationName"
>
<a-input
v-model:value="formState.examinationName"
style="width: 424px; height: 32px; margin-left: 35px"
autocomplete="off"
placeholder="请输入考试名称"
show-count
:maxlength="20"
/>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item
has-feedback
label="数据来源"
name="examinationName"
>
<a-input
v-model:value="请输入数据来源"
style="width: 424px; height: 32px; margin-left: 35px"
autocomplete="off"
placeholder="数据来源"
show-count
:maxlength="20"
/>
</a-form-item>
</div>
</div>
<div class="main_item2">
<a-form-item
has-feedback
label="考试说明"
name="examinationExplain"
>
<div class="textarea">
<a-textarea
v-model:value="formState.examinationExplain"
placeholder="请输入考试说明"
allow-clear
:rows="6"
style="margin-left: 35px"
show-count
:maxlength="200"
/>
</div>
</a-form-item>
</div>
</div>
</div>
<div class="main_btns">
<a-button class="btn1" @click="closeDrawer2">取消</a-button>
<a-button class="btn2" html-type="submit">确定</a-button>
</div>
</a-form>
</div>
<div class="main_btns">
<a-button class="btn1" @click="closeDrawer2">取消</a-button>
<a-button class="btn2" @click="updateTest">确定</a-button>
</div>
<!-- 加载动画 -->
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
<a-spin :spinning="addLoading" tip="添加中..." />
</div>
<!-- 选择考试抽屉 -->
<s-test v-model:STvisible="STvisible" @getSTData="getData" />
</div>
</a-drawer>
</template>
<script>
import { reactive, ref, toRefs } from "vue";
import { reactive,toRefs } from "vue";
import { message } from "ant-design-vue";
import {
createExamination,
@@ -415,6 +340,7 @@ import STest from "./SelectTest.vue";
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
import { addTempTask } from "../../api/indexTaskadd";
import dayjs from "dayjs";
import { toDate } from "@/api/method";
export default {
name: "AddTest",
@@ -480,22 +406,11 @@ export default {
},
},
setup(props, ctx) {
const formState = reactive({
examinationName: "",
examinationDuration: 0,
choosedTime: "",
paperName: "",
examinationLimit: "",
passLine: null,
examinationEndTime: "",
examinationExplain: "",
questionArrangement: 1,
scoringModel: 2,
showAnalysis: 2,
showAnswers: 2,
choosedTest: "",
});
const state = reactive({
test:{
},
addLoading: false,
isOuter: 1, // 是否为外部考试
STvisible: false, //选择试卷抽屉
@@ -517,52 +432,31 @@ export default {
},
],
});
const formRef = ref();
const options1 = ref([
{
label: "math",
value: "math",
},
{
label: "eng",
value: "eng",
},
]);
const handleFinish = () => {
updateTest();
};
const handleFinishFailed = () => {
// message.error("handleFinishFailed");
};
const resetForm = () => {
formRef.value.resetFields();
state.paperName = "";
state.paperId = null;
state.id = "";
state.testName = "";
};
const handleValidate = (...args) => {
console.log(args);
const clearAll = () => {
state.test={};
};
const closeDrawer = () => {
console.log("closeDrawer");
formState.choosedTime = "";
state.statechoosedTime = "";
ctx.emit("update:addtestVisible", false);
ctx.emit("update:edit", false);
ctx.emit("update:EditTestId", state.EditTestId);
ctx.emit("update:testName", state.testName);
console.log("formState.testName", state.testName);
console.log("statetestName", state.testName);
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
state.addLoading = false;
resetForm();
clearAll();
};
const closeDrawer2 = () => {
formState.choosedTime = "";
state.statechoosedTime = "";
ctx.emit("update:edit", false);
ctx.emit("update:addtestVisible", false);
resetForm();
clearAll();
state.addLoading = false;
};
const afterVisibleChange = () => {
@@ -580,70 +474,32 @@ export default {
state.paperName = "";
};
const queryTest = () => {
// state.addLoading = true;
queryExaminationDetailById({ examinationId: props.EditTestId })
.then((res) => {
console.log("获取编辑考试信息", res);
formState.examinationName = res.data.data.examinationName;
formState.workRequirement = res.data.data.workRequirement;
formState.examinationDuration = res.data.data.examinationDuration;
formState.examinationLimit =
Number(res.data.data.examinationLimit) || -1;
formState.passLine = res.data.data.passLine;
formState.examinationExplain = res.data.data.examinationExplain;
formState.questionArrangement =
Number(res.data.data.questionArrangement) || 1;
formState.scoringModel = Number(res.data.data.scoringModel) || 1;
formState.showAnalysis = Number(res.data.data.showAnalysis) || 1;
formState.showAnswers = Number(res.data.data.showAnswers) || 1;
formState.papaerName = res.data.data.examinationTestName;
state.paperName = res.data.data.examinationTestName;
// state.paperId=
state.paperId = res.data.data.examinationTestId;
if (
res.data.data.examinationEndTime &&
res.data.data.examinationStartTime
) {
formState.choosedTime = [
dayjs(res.data.data.examinationStartTime, "YYYY-MM-DD HH:mm:ss"),
dayjs(res.data.data.examinationEndTime, "YYYY-MM-DD HH:mm:ss"),
];
state.addLoading = false;
} else {
formState.choosedTime = [];
}
state.test = res.data.data;
state.test.showAnswers = Number(state.test.showAnswers);
state.test.showAnalysis = Number(state.test.showAnalysis);
state.test.scoringModel =Number(state.test.scoringModel);
state.test.questionArrangement =Number(state.test.questionArrangement);
state.test.chooseTime = [
dayjs(res.data.data.examinationStartTime, "YYYY-MM-DD HH:mm"),
dayjs(res.data.data.examinationEndTime, "YYYY-MM-DD HH:mm"),
];
state.paperName = state.test.examinationTestName;
// state.paperId=dayjs
state.paperId = state.test.examinationTestId;
console.log("querytest",state.test);
})
.catch(() => {
//message.error(`查询失败`);
});
};
const updateTest = () => {
//state.addLoading = true;updateTask
let obj = {
examinationDuration: formState.examinationDuration,
examinationEndTime: dayjs(formState.choosedTime[1]).format(
"YYYY-MM-DD HH:mm:ss"
),
examinationExplain: formState.examinationExplain,
examinationId: props.edit ? props.EditTestId : 0,
examinationLimit: formState.examinationLimit,
examinationName: formState.examinationName,
examinationPaperId: 0,
// examinationPaperName: formState.choosedTest,
examinationStartTime: dayjs(formState.choosedTime[0]).format(
"YYYY-MM-DD HH:mm:ss"
),
passLine: formState.passLine,
questionArrangement: formState.questionArrangement,
scoringModel: formState.scoringModel,
showAnalysis: formState.showAnalysis,
showAnswers: formState.showAnswers,
examinationTestId: state.paperId,
examinationTestName: state.paperName,
};
if (!formState.examinationName) {
if (!state.test.examinationName) {
message.destroy();
return message.warning("请输入考试名称");
}
@@ -651,18 +507,40 @@ export default {
message.destroy();
return message.warning("请输入选择试卷");
}
if (!formState.choosedTime) {
message.destroy();
return message.warning("请输入开始结束时间");
if (!state.test.chooseTime) {
message.destroy();
return message.warning("请输入开始结束时间");
}
if (!formState.examinationDuration) {
if (!state.test.examinationDuration) {
message.destroy();
return message.warning("请输入考试时长");
}
state.addLoading = true;
if (props.edit) {
console.log("test",state.test);
// state.test.examinationStartTime = toDate(
// new Date(state.test.chooseTime[0].$d).getTime() / 1000,
// "Y-M-D h:m"
// );
// state.test.examinationEndTime =toDate(
// new Date(state.test.$slotschooseTime[1].$d).getTime() / 1000,
// "Y-M-D h:m"
// );
state.test.examinationStartTime = toDate(
new Date(state.test.chooseTime[0].$d).getTime() / 1000,
"Y-M-D h:m"
);
state.test.examinationEndTime =toDate(
new Date(state.test.chooseTime[1].$d).getTime() / 1000,
"Y-M-D h:m"
);
state.test.examinationPaperId = state.paperId;
//TODO缺少paperName字段
state.test.examinationTestName = state.paperName;
if (props.EditTestId>0) {
// 编辑任务
updateExamination(obj)
updateExamination(state.test)
.then(async (res) => {
await updateTask(res);
// closeDrawer();
@@ -673,7 +551,7 @@ export default {
});
} else {
// 创建任务
createExamination(obj)
createExamination(state.test)
.then(async (res) => {
await updateTask(res);
// closeDrawer();
@@ -755,22 +633,22 @@ export default {
};
const cloradio1 = (value) => {
if (value != "") {
formState.showAnswers = "";
state.showAnswers = "";
}
};
const cloradio2 = (value) => {
if (value != "") {
formState.showAnalysis = "";
state.showAnalysis = "";
}
};
const cloradio3 = (value) => {
if (value != "") {
formState.scoringModel = "";
state.scoringModel = "";
}
};
const cloradio4 = (value) => {
if (value != "") {
formState.questionArrangement = "";
state.questionArrangement = "";
}
};
const changeOuter = (value) => {
@@ -791,7 +669,7 @@ export default {
};
return {
formState,
afterVisibleChange,
closeDrawer,
closeDrawer2,
@@ -800,12 +678,9 @@ export default {
cloradio2,
cloradio3,
cloradio4,
options1,
handleFinish,
handleFinishFailed,
resetForm,
handleValidate,
formRef,
clearAll,
delTag,
// layout,
@@ -918,7 +793,7 @@ export default {
margin-bottom: 32px;
.textarea {
width: 423px;
width: 400px;
.ant-input {
width: 100%;
@@ -992,7 +867,37 @@ export default {
}
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
display: flex;
justify-content: center;
position: absolute;
bottom: 20px;
}
}
.main_btns {
height: 72px;
width: 100%;

View File

@@ -237,7 +237,7 @@ export default {
.votebtn {
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
display: flex;
align-items: center;

View File

@@ -65,7 +65,7 @@
</button>
<div :style="{ display: creVote ? 'block' : 'none' }">
<div class="fileTigan">
<span style="color: #388be1">{{ ballotName }}</span>
<span style="color: #4ea6ff">{{ ballotName }}</span>
<div class="delBox" @click="dleVoteStem()"></div>
</div>
</div>
@@ -417,7 +417,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -481,7 +481,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;

View File

@@ -0,0 +1,462 @@
<!-- 评估列表 -->
<template>
<div class="main_item">
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 40px; border-radius: 8px;"
placeholder="请输入评估名称"
maxlength="20"
/>
</div>
<div class="btns" @click="getAllInvistText">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnsn" @click="resetInvist">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
<div class="main_notice">
<div class="mntc_left">
<div class="notice_icon"></div>
<div v-if="assessment == null">
<span class="title"
>已选择 <span class="data">0</span> </span
>
</div>
<div v-else>
<div >
<span class="title"
>已选择 <span class="data">1</span> ;</span
>
<span class="title"
>名称 <span class="data">{{ assessment.name }}</span>
</span><!--
<span class="title"
>题数 <span class="data">{{ assessment.essayQuestionVoList?Number(assessment.essayQuestionVoList.length):0
+Number(assessment.multipleStemVoList?assessment.multipleStemVoList.length:0)
+Number(assessment.scoringQuestionVoList?assessment.scoringQuestionVoList.length:0)
+Number(assessment.singleStemVoList?assessment.singleStemVoList.length:0) }}</span>
</span>-->
<span class="title"
>题数 <span class="data">{{ assessment.num }}</span>
</span>
<span class="title"
>创建人
<span class="data">{{ assessment.creator }}</span>
</span>
<span class="title"
>创建时间
<span class="data">{{ assessment.time }}</span>
</span>
</div>
<!--
<div v-else>
<span class="title"
>已选择 <span class="data">1</span> ;</span
>
<span class="title"
>名称
<span class="data">{{ assessment1.assessmentName }}</span>
</span>
<span class="title"
>题数
<span class="data">{{
assessment1.essayQuestionVoList.length
}}</span>
</span>
<span class="title"
>创建人
<span class="data">{{ assessment1.createUser }}</span>
</span>
<span class="title"
>创建时间
<span class="data">{{ assessment1.createTime }}</span>
</span>
</div>
-->
</div>
</div>
</div>
<div class="main_table">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:row-selection="{
type: 'radio',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
filterMultiple:false
/>
<div class="tableBox">
<div class="pa">
<a-pagination
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="handelChangePage"
/>
</div></div>
</div>
</template>
<script>
import { reactive, toRefs,onMounted } from "vue";
import * as api from "../../api/indexInvist.js";
import dayjs from "dayjs";
export default {
name: "AssessmentAll",
// components: {
// },
props: {
assessmentVisible: {
type: Boolean,
default: false,
},
assessmentId:{
type: Number,
default: null,
},
assessmentName:{
type: String,
default: null,
},
},
setup(props, ctx) {
const state = reactive({
assessmentVisible: false,
assessment: null,
inputV1: "",
currentPage: 1,
pageSize: 10,
tableDataTotal: 0,
tableData: [],
selectedRowKeys:[],
assessmentId:null,
assessmentName:null,
});
const closeDrawer = () => {
ctx.emit("update:assessmentVisible", false);
};
//清空所选
const clearLine = () => {
console.log("state.selectedRowKeys",state.selectedRowKeys)
state.selectedRowKeys = [];
state.addOnlineList = [];
};
const queryInfo = () => {
//if (props.edit) {
// state.titleTg = false;
//编辑讨
console.log("查询评估",props.assessmentId);
if(props.assessmentId){
api
.queryAppraiseDetailById({ assessmentId: props.assessmentId })
.then((res) => {
console.log(res);
//更新讨论信息
state.assessment = res.data.data;
// state.assessmentId = res.data.data.assessmentId;
})
.catch(() => {});
}
// }
};
const tableDataFunc = () => {
const columns = [
{
title: "名称",
dataIndex: "name",
// width: "30%",
key: "name",
width: "40%",
className: "classify",
ellipsis: true,
},
{
title: "题数",
dataIndex: "num",
key: "num",
width: "20%",
align: "center",
},
{
title: "创建人",
dataIndex: "creator",
key: "creator",
width: "20%",
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: "20%",
align: "center",
},
];
return columns;
};
const onSelectChange = (selectedRowKeys, selectedRows) => {
state.selectedRowKeys = selectedRowKeys;
state.addOnlineList = selectedRows;
console.log(selectedRowKeys, selectedRows);
state.assessment = selectedRows[0];
console.log("selectedRows=======", state.assessment);
// ctx.emit("checkedAss", state.assessment);
ctx.emit("update:assessmentId", state.assessment.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name);
}
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
getAllInvistText();
};
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
data.map((value, index) => {
let obj = {
key: index,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList?Number(value.essayQuestionVoList.length):0
+value.multipleStemVoList?Number(value.multipleStemVoList.length):0
+value.scoringQuestionVoList?Number(value.scoringQuestionVoList.length):0
+value.singleStemVoList?Number(value.singleStemVoList.length):0,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
});
(state.selectedRowKeys = []), (state.tableData = array);
};
//获取全部评估信息接口
const getAllInvistText = () => {
api
.queryAssessmentDetailList({
assessmentName: state.inputV1,
pageNo: state.currentPage,
pageSize: state.pageSize,
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
// console.log("获取全部评估信息", res.data.data);
getTableDate(arr);
state.tableDataTotal = Number(res.data.data.total);
}
})
.catch((err) => {
console.log("获取全部评估信息接口失败", err);
// state.createLoading = false;
});
};
//重置评估信息
const resetInvist = () => {
state.inputV1 = "";
getAllInvistText();
};
onMounted(() => {
clearLine();
console.log("state.selectedRowKeys",state.selectedRowKeys)
if(!state.assessmentId){
clearLine();
}
queryInfo();
getAllInvistText();
});
return {
...toRefs(state),
onSelectChange,
closeDrawer,
tableDataFunc,
getAllInvistText,
resetInvist,
handelChangePage,
queryInfo,
};
},
};
</script>
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addinvistDrawer {
.drawerMain {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.contentMain {
.main_left {
padding-right: 30px;
margin-top: 32px;
.main_item {
display: flex;
align-items: center;
.fi_input {
margin-right: 20px;
}
.btns {
margin-right: 20px;
padding: 0px 26px 0px 26px;
height: 38px;
background: #409eff;
border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search0.png");
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
}
.btnsn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #ffffff;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png");
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #409eff;
line-height: 36px;
margin-left: 5px;
}
}
}
.main_item2 {
.pa {
width: 100%;
margin: 15px auto;
display: flex;
justify-content: center;
}
}
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
display: flex;
justify-content: center;
position: absolute;
bottom: 20px;
}
}
.main_btns {
height: 72px;
width: 100%;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
}
</style>

View File

@@ -24,7 +24,7 @@
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 40px"
style="width: 424px; height: 40px; border-radius: 8px;"
placeholder="请输入评估名称"
maxlength="20"
/>
@@ -38,7 +38,8 @@
<div class="btnText">重置</div>
</div>
</div>
<div class="main_item2">
<div class="main_table">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
@@ -50,10 +51,10 @@
:row-selection="rowSelection"
filterMultiple:false
/>
<div class="tableBox">
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -62,10 +63,15 @@
class="pagination"
@change="handelChangePage"
/>
</div>
</div></div>
</div>
</div>
</div>
<div class="main_btns">
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="submitCheck">确定</button>
</div>
</div>
</a-drawer>
</template>
@@ -82,10 +88,14 @@ export default {
type: Boolean,
default: false,
},
isface: {
assessmentId: {
type: Number,
default: null,
},
assessmentName: {
type: String,
default: null,
},
},
setup(props, ctx) {
const state = reactive({
@@ -97,6 +107,8 @@ export default {
tableDataTotal: 0,
tableData: [],
selectedRowKeys: [],
assessmentName:null,
assessmentId:null,
});
const closeDrawer = () => {
ctx.emit("update:assessmentVisible", false);
@@ -114,9 +126,9 @@ export default {
dataIndex: "name",
// width: "30%",
key: "name",
width: "20%",
align: "left",
width: "40%",
className: "classify",
ellipsis: true,
},
{
title: "题数",
@@ -147,21 +159,17 @@ export default {
onSelect: (selectedRows) => {
state.assessment = selectedRows;
console.log("selectedRows=======", state.assessment);
if (props.isface == 1) {
ctx.emit("faceAssess", state.assessment);
} else {
ctx.emit("checkedAss", state.assessment);
}
state.selectedRowKeys = [];
closeDrawer();
state.selectedRowKeys = [];
},
};
// const onSelectChange = (selectedRowKeys) => {
// if(selectedRowKeys.length>2){return}
// state.selectedRowKeys = selectedRowKeys;
// };
const submitCheck=()=>{
ctx.emit("update:assessmentId", state.assessment.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name);
closeDrawer();
}
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
@@ -174,7 +182,8 @@ export default {
let obj = {
key: index,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
num: Number(value.essayQuestionVoList.length)+Number(value.multipleStemVoList.length)+Number(value.scoringQuestionVoList
.length)+Number(value.singleStemVoList.length),
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
@@ -219,6 +228,7 @@ export default {
getAllInvistText,
resetInvist,
handelChangePage,
submitCheck,
};
},
};
@@ -319,6 +329,37 @@ export default {
}
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
display: flex;
justify-content: center;
position: absolute;
bottom: 20px;
}
}
.main_btns {
height: 72px;
width: 100%;

View File

@@ -1,396 +0,0 @@
<!-- 评估列表 -->
<template>
<a-drawer
:visible="assessmentVisible"
class="drawerStyle addinvistDrawer"
width="70%"
title="添加评估"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div v-if="edit" class="headerTitle">编辑评估11</div>
<div v-else class="headerTitle">添加评估11</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="contentMain">
<div class="main_left">
<div class="main_item">
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 40px"
placeholder="请输入评估名称"
maxlength="20"
/>
</div>
<div class="btns" @click="getAllInvistText">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnsn" @click="resetInvist">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
<div class="main_item2">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:row-key="(record) => record.assessmentId"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
type: 'radio',
}"
filterMultiple:false
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="handelChangePage"
/>
</div>
</div>
</div>
</div>
</div>
</a-drawer>
</template>
<script>
import { reactive, toRefs, watch } from "vue";
import * as api from "../../api/indexInvist.js";
import dayjs from "dayjs";
export default {
name: "AssessmentList",
// components: {
// },
props: {
assessmentVisible: {
type: Boolean,
default: false,
},
assessmentId: {
type: Number,
default: null,
},
titleTag: {
type: Boolean,
default: false,
},
assessmentName: {
type: String,
default: null,
},
},
setup(props, ctx) {
watch(
props,
(newVal) => {
state.selectedRowKeys = newVal.assessmentId
? [newVal.assessmentId]
: [];
},
{ deep: true }
);
const state = reactive({
assessmentVisible: false,
assessment: null,
inputV1: "",
currentPage: 1,
pageSize: 10,
tableDataTotal: 0,
tableData: [],
selectedRowKeys: [],
assessmentId: null,
assessmentName: null,
});
const closeDrawer = () => {
state.selectedRowKeys = [];
ctx.emit("update:assessmentVisible", false);
ctx.emit("update:titleTag", true);
};
const afterVisibleChange = (bool) => {
console.log("state getAllInvistText", bool, "======", props.titleTag);
if (props.assessmentVisible && bool) {
getAllInvistText();
}
};
const tableDataFunc = () => {
const columns = [
{
title: "名称",
dataIndex: "name",
// width: "30%",
key: "name",
width: "20%",
align: "left",
className: "classify",
},
{
title: "题数",
dataIndex: "num",
key: "num",
width: "20%",
align: "center",
},
{
title: "创建人",
dataIndex: "creator",
key: "creator",
width: "20%",
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: "20%",
align: "center",
},
];
return columns;
};
const rowSelection = {
type: "radio",
onSelect: (selectedRows) => {
state.assessment = selectedRows;
/* state.assessmentId = selectedRows.assessmentId;
ctx.emit("checkedAss", state.assessment);
ctx.emit("update:assessmentId", state.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name);
console.log("state.assessment",state.assessment);
state.selectedRowKeys = [];
closeDrawer();*/
},
};
// const onSelectChange = (selectedRowKeys) => {
// if(selectedRowKeys.length>2){return}
// state.selectedRowKeys = selectedRowKeys;
// };
const onSelectChange = (selectedRowKeys, selectRow) => {
console.log("selectedRowKeys changed: ", selectedRowKeys, selectRow);
state.selectedRowKeys = selectedRowKeys;
console.log(selectRow);
state.assessment = selectRow[0];
state.assessmentId = selectRow[0].assessmentId;
ctx.emit("checkedAss", state.assessment);
ctx.emit("update:assessmentId", state.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name);
closeDrawer();
};
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
getAllInvistText();
};
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
data.map((value, index) => {
let obj = {
key: index,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
});
// (state.selectedRowKeys = []), (state.tableData = array);
state.tableData = array;
};
//获取全部评估信息接口
const getAllInvistText = () => {
api
.queryAssessmentDetailList({
assessmentName: state.inputV1,
pageNo: state.currentPage,
pageSize: state.pageSize,
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
console.log("获取全部评估信息", res.data.data);
state.selectedRowKeys = [props.assessmentId]
console.log(props.assessmentId,props)
getTableDate(arr);
state.tableDataTotal = Number(res.data.data.total);
}
})
.catch((err) => {
console.log("获取全部评估信息接口失败", err);
// state.createLoading = false;
});
};
//重置评估信息
const resetInvist = () => {
state.inputV1 = "";
getAllInvistText();
};
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
tableDataFunc,
rowSelection,
getAllInvistText,
resetInvist,
handelChangePage,
onSelectChange,
};
},
};
</script>
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addinvistDrawer {
.drawerMain {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.contentMain {
.main_left {
padding-right: 30px;
margin-top: 32px;
.main_item {
display: flex;
align-items: center;
margin-bottom: 32px;
.fi_input {
margin-right: 20px;
}
.btns {
margin-right: 20px;
padding: 0px 26px 0px 26px;
height: 38px;
background: #409eff;
border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search0.png");
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
}
.btnsn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #ffffff;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png");
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #409eff;
line-height: 36px;
margin-left: 5px;
}
}
}
.main_item2 {
.pa {
width: 100%;
margin: 15px auto;
display: flex;
justify-content: center;
}
}
}
}
.main_btns {
height: 72px;
width: 100%;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
}
</style>

View File

@@ -111,7 +111,7 @@ export default {
margin:auto 10px;
}
.op{
color:#388be1;
color:#4ea6ff;
margin: auto 20px;
cursor: pointer;
}

View File

@@ -58,7 +58,7 @@
<div class="tableBox">
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -596,7 +596,7 @@
// background-color: #bfa;
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
cursor: pointer;
}
}

View File

@@ -106,7 +106,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -272,7 +272,7 @@
/>
<div class="pa" style="margin-top: 20px">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -1891,7 +1891,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -105,7 +105,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -271,7 +271,7 @@
/>
<div class="pa" style="margin-top: 20px">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -1890,7 +1890,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -18,6 +18,7 @@
/>
</div>
<div class="contentMain">
<!--
<div class="main_item">
<div class="signbox">
<div class="sign">
@@ -32,7 +33,7 @@
placeholder="请输入投票名称"
/>
</div>
</div>
</div> -->
<div class="box" @click="showDrawerCreVote">
<button class="cjtpbtn" @click="addQue()">创建题干</button>
</div>
@@ -213,10 +214,7 @@ export default {
}
//创建题干接口
const createQueTit = () => {
if (!state.inputV1) {
message.destroy();
return message.warning("请输入投票名称");
}
for (let i = 0; i < state.questions.length; i++) {
if (!state.questions[i].inputV) {
message.destroy();
@@ -298,7 +296,7 @@ export default {
message.success("删除成功");
})
.catch(() => {
message.error("创建失败");
message.error("创建失败")s;
});
}
//根据id获取题干信息
@@ -402,7 +400,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -505,7 +503,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -554,7 +552,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;

View File

@@ -45,7 +45,7 @@
closable
@close="log"
color="#F0FFFF"
style="background-color: #388be1"
style="background-color: #4ea6ff"
>时间管理</a-tag
>
</div>
@@ -330,7 +330,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -410,7 +410,7 @@ export default {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388be1;
color: #4ea6ff;
}
}
.btn2:hover {

View File

@@ -20,11 +20,11 @@
<div class="main_items">
<div class="mi_ipts">
<div class="mii_ipt">
<div class="ipt_name">测评信息</div>
<div class="ipt_name"></div>
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 240px; height: 40px; border-radius: 8px"
style="width:424px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称"
/>
</div>
@@ -49,14 +49,16 @@
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
:row-selection="{
type: 'radio',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
<div class="tableBox">
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -65,7 +67,7 @@
class="pagination"
@change="changePagination"
/>
</div>
</div></div>
</div>
</div>
<div class="main_btns">
@@ -107,14 +109,13 @@ export default {
evListData: {},
columns: [
{
title: "课程编号",
title: "测评编号",
width: "20%",
dataIndex: "quiz_code",
key: "code",
align: "center",
},
{
title: "课程名称",
title: "测评名称",
width: "20%",
dataIndex: "title",
key: "title",
@@ -122,29 +123,26 @@ export default {
},
{
title: "备注",
width: "13%",
width: "40%",
dataIndex: "theme_desc",
key: "content",
align: "center",
maxWidth: "13%",
overflow: "hidden",
whiteSpace: "nowrap",
textOverflow: "ellipsis",
},
{
title: "状态",
width: "13%",
dataIndex: "status",
key: "status",
align: "center",
},
{
title: "价格",
width: "13%",
dataIndex: "quiz_price",
key: "price",
align: "center",
ellipsis: true,
},
// {
// title: "状态",
// width: "13%",
// dataIndex: "status",
// key: "status",
// align: "center",
// },
// {
// title: "价格",
// width: "13%",
// dataIndex: "quiz_price",
// key: "price",
// align: "center",
// },
{
title: "可答题人数",
width: "20%",
@@ -225,12 +223,13 @@ export default {
//获取测评列表
const getAllEvalText = () => {
let objael = {
keyword: state.inputV1,
user_id: "965341999643234304",
keyword:state.inputV1,
user_id:"965341999643234304",
};
api
.choiceEvaluation(objael)
.then((res) => {
state.tableDataTotal=9;
getTableDataList(res.data.data);
})
.catch(() => {});
@@ -306,8 +305,7 @@ export default {
}
.mi_btns {
display: flex;
margin-left: 38px;
margin-bottom: 20px;
cursor: pointer;
.btn {
padding: 0px 26px 0px 26px;
@@ -357,7 +355,7 @@ export default {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388be1;
color: #4ea6ff;
}
}
.btn2:hover {

View File

@@ -139,8 +139,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
}
@@ -171,8 +171,8 @@ export default {
}
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
.tab {

View File

@@ -165,7 +165,7 @@
.up2 {
font-size: 16px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
margin-left: 4px;
}
}
@@ -199,7 +199,7 @@
.tip {
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
margin-top: 15px;
cursor: pointer;
}
@@ -255,7 +255,7 @@
.stateloading {
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
}
.statedefeat {
font-size: 14px;
@@ -278,7 +278,7 @@
height: 5px;
border-radius: 4px;
background: #388be1;
background: #4ea6ff;
}
//下载失败条
.inprogdefeat {

View File

@@ -102,7 +102,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -577,8 +577,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
}
@@ -622,8 +622,8 @@ export default {
.btn2 {
background: #ffffff;
margin-right: 20px;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}

View File

@@ -799,8 +799,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
}
@@ -840,8 +840,8 @@ export default {
.btn2 {
background: #ffffff;
margin-right: 20px;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
.line {

View File

@@ -176,7 +176,7 @@ export default {
.up2 {
font-size: 16px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
margin-left: 4px;
}
}
@@ -212,7 +212,7 @@ export default {
.tip {
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
margin-top: 15px;
cursor: pointer;
}
@@ -281,7 +281,7 @@ export default {
.stateloading {
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
}
.statedefeat {
font-size: 14px;
@@ -304,7 +304,7 @@ export default {
height: 5px;
border-radius: 4px;
background: #388be1;
background: #4ea6ff;
}
//下载失败条
.inprogdefeat {

View File

@@ -106,7 +106,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -279,7 +279,7 @@
/>
<div class="pa" style="margin-top: 20px">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -1898,7 +1898,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -84,7 +84,7 @@
<div class="pa">
<a-pagination
v-if="total > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"

View File

@@ -106,7 +106,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -1131,7 +1131,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -107,7 +107,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -1162,7 +1162,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -61,7 +61,7 @@
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -595,7 +595,7 @@ export default {
// background-color: #bfa;
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
cursor: pointer;
}
}

View File

@@ -121,7 +121,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -318,7 +318,7 @@
/>
<div class="pa" style="margin-top: 20px">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -1967,7 +1967,7 @@ export default {
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -106,7 +106,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -272,7 +272,7 @@
/>
<div class="pa" style="margin-top: 20px">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -1890,7 +1890,7 @@ const afterVisibleChange = (bool) => {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -60,7 +60,7 @@
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -642,7 +642,7 @@ export default {
}
.btn1 {
background: #388be1;
background: #4ea6ff;
color: #ffffff;
}
@@ -650,8 +650,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
}
@@ -693,7 +693,7 @@ export default {
// background-color: #bfa;
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
cursor: pointer;
}
}

View File

@@ -394,7 +394,7 @@ export default {
position: absolute;
width: 100px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
display: flex;
align-items: center;
@@ -455,7 +455,7 @@ export default {
.debtn {
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
color: #ffffff;

View File

@@ -113,7 +113,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -1129,7 +1129,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -37,7 +37,7 @@
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"

View File

@@ -106,7 +106,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -272,7 +272,7 @@
/>
<div class="pa" style="margin-top: 20px">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -1893,7 +1893,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -24,7 +24,7 @@
<div class="fi_input">
<a-input
v-model:value="name"
style="width: 240px; height: 40px; border-radius: 8px"
style="width: 424px; height: 40px; border-radius: 8px;"
placeholder="请输入课程名称"
/>
</div>
@@ -115,10 +115,11 @@
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
<div class="tableBox">
<div class="pa" style="display:flex;justify-content:center;padding:20px;">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -127,10 +128,13 @@
class="pagination"
@change="changePaginationStu"
/>
</div>
</div></div>
</div>
</div>
<div class="main_btns">
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="submitCourse">确定</button>
</div>
</div>
</a-drawer>
</template>
@@ -140,47 +144,48 @@ import {reactive, toRefs, computed} from "vue";
// import { planList } from "../../api/indexTaskadd";
//import {detail} from "../../api/indexCourse";
import {list} from "../../api/indexTaskadd";
import {toDate} from "../../api/method";
const columns1 = [
{
title: "课程编号",
width: "20%",
dataIndex: "num",
key: "num",
align: "center",
},
// {
// title: "课程编号",
// title: "课程编号",
// width: "20%",
// dataIndex: "num",
// key: "num",
//// align: "center",
// },
{
title: "名称",
width: "20%",
width: "30%",
dataIndex: "name",
key: "name",
align: "center",
},
{
title: "内容分类",
width: "13%",
width: "15%",
dataIndex: "content",
key: "content",
align: "center",
},
{
title: "授课教师",
width: "13%",
width: "15%",
dataIndex: "teacher",
key: "teacher",
align: "center",
},
{
title: "创建人",
width: "13%",
width: "15%",
dataIndex: "creator",
key: "creator",
align: "center",
},
{
title: "完成时间",
width: "20%",
title: "发布时间",
width: "25%",
dataIndex: "time",
key: "time",
align: "center",
@@ -246,7 +251,6 @@ export default {
state.chooseCourse = selectedRows.num;
state.chooseCourseName = selectedRows.name;
console.log(selectedRows, "==========", state.chooseCourse);
closeDrawer();
},
onChange: (selectedRows) => {
console.log('onChange')
@@ -254,11 +258,14 @@ export default {
},
}
})
const closeDrawer = () => {
ctx.emit("update:selfacetVisible", false);
const submitCourse=()=>{
state.chooseCourse && ctx.emit("update:chooseCourse", state.chooseCourse);
state.chooseCourseName && ctx.emit("update:chooseCourseName", state.chooseCourseName);
closeDrawer();
}
const closeDrawer = () => {
ctx.emit("update:selfacetVisible", false);
};
const afterVisibleChange = (bool) => {
if (bool) {
@@ -309,7 +316,7 @@ export default {
name: value.name || "-",
teacher: value.teacher || "-",
creator: value.createName || "-",
time: toDate(value.publishTime / 1000, "Y-M-D h:m"),
time: value.publishTime,
categoryId: value.categoryId,
//需要判断content
};
@@ -368,6 +375,7 @@ export default {
changePaginationStu,
rowSelection,
search,
submitCourse,
// change,
};
},
@@ -399,7 +407,7 @@ export default {
.contentMain {
.main_items {
display: flex;
justify-content: space-between;
margin-bottom: 12px;
margin-top: 32px;
flex-wrap: wrap;
@@ -484,7 +492,7 @@ export default {
}
.btnText {
color: #388be1;
color: #4ea6ff;
}
}
@@ -520,7 +528,7 @@ export default {
}
.data {
color: #388be1;
color: #4ea6ff;
}
.notice_icon {
@@ -538,7 +546,37 @@ export default {
}
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
display: flex;
justify-content: center;
position: absolute;
bottom: 20px;
}
}
.main_btns {
height: 72px;
width: 100%;

View File

@@ -74,7 +74,7 @@
<div class="pa">
<a-pagination
v-if="tableDataTotal>10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -335,7 +335,7 @@ export default {
display: flex;
flex-wrap: wrap;
margin-top: 20px;
justify-content: space-between;
.sealeft {
display: flex;
@@ -386,8 +386,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
}

View File

@@ -114,7 +114,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -280,7 +280,7 @@
/>
<div class="pa" style="margin-top: 20px">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -2139,7 +2139,7 @@ export default {
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -29,7 +29,7 @@
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"

View File

@@ -167,7 +167,7 @@ export default {
.up2 {
font-size: 16px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
margin-left: 4px;
}
}
@@ -201,7 +201,7 @@ export default {
.tip {
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
margin-top: 15px;
cursor: pointer;
}
@@ -257,7 +257,7 @@ export default {
.stateloading {
font-size: 14px;
font-weight: 400;
color: #388be1;
color: #4ea6ff;
}
.statedefeat {
font-size: 14px;
@@ -280,7 +280,7 @@ export default {
height: 5px;
border-radius: 4px;
background: #388be1;
background: #4ea6ff;
}
//下载失败条
.inprogdefeat {

View File

@@ -100,7 +100,7 @@
<div class="tableBox">
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -637,8 +637,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
}
@@ -678,8 +678,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
.tab {

View File

@@ -79,7 +79,7 @@
<div class="tableBox">
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -598,8 +598,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
}
@@ -639,8 +639,8 @@ export default {
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
color: #4ea6ff;
border: 1px solid #4ea6ff;
}
}
.tab {

View File

@@ -83,7 +83,7 @@
<div class="tableBox">
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"

View File

@@ -105,7 +105,7 @@
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
@@ -271,7 +271,7 @@
/>
<div class="pa" style="margin-top: 20px">
<a-pagination
showSizeChanger="true"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize2"
@@ -1888,7 +1888,7 @@ import { toDate } from "../../api/method";
// margin-bottom: 20px;
}
.count {
color: #388be1;
color: #4ea6ff;
font-size: 16px;
margin: 0 6px;
}

View File

@@ -33,7 +33,7 @@
<a-input
v-model:value="inputV1"
style="width: 424px; height: 32px"
placeholder="请输入投票名称"
placeholder="请输入投票任务名称"
maxlength="20"
/>
</div>
@@ -46,16 +46,16 @@
alt=""
/>
</div>
<span>创建投票</span>
<span>创建投票题干</span>
</div>
<div class="btnbox">
<button class="xkbtn" @click="showDrawerCreVote">
{{ ballotId ? "编辑" : "创建" }}投票
{{ ballotId ? "编辑" : "创建" }}投票题干
</button>
<div v-if="ballotId > 0">
<a-tag closable color="processing" @close="handlelog">
<span style="font-size: 14px; line-height: 33px">
{{ ballot_name }}
删除投票题干
</span>
</a-tag>
</div>
@@ -76,7 +76,7 @@
</button>
<div :style="{ display: creVote ? 'block' : 'none' }">
<div class="fileTigan">
<span style="color: #388be1">{{ ballot_name }}</span>
<span style="color: #4ea6ff">{{ ballot_name }}</span>
<div class="delBox" @click="dleVoteStem()"></div>
</div>
</div>
@@ -112,114 +112,7 @@
/>
</div>
</div>
<div class="main_item" style="margin-bottom: 24px; margin-left: 29px">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">基础投票数设置</span>
</div>
<!-- <div class="btnbox">
<a-upload :before-upload="beforeUpload" :max-count="1">
<button class="xkbtn">点击上传</button>
<template #itemRender="{ file, actions }">
<a-space v-if="file.type.indexOf('sheet') > -1">
<span :style="file.status === 'error' ? 'color: red' : ''">
{{ file.name }}
</span>
<a href="javascript:;" @click="actions.remove">
<img
src="../../assets/del.png"
alt="del"
style="width: 12px; height: 12px"
/>
</a>
</a-space>
</template>
</a-upload>
<div v-if="voteCount > 0">
<a-tag color="processing">
<span style="font-size: 14px; line-height: 33px">
{{ voteCount }}
</span>
</a-tag>
</div>
<button class="xkbtn" @click="downloadTemplate">下载模板
</button>
</div> -->
</div>
<div
style="
display: flex;
align-items: center;
margin-left: 64px;
margin-bottom: 24px;
"
>
<div>参与数</div>
<div style="width: 159px">
<a-input-number
style="width: 159px"
id="inputNumber"
v-model:value="partakeNum"
:min="0"
:max="99999"
:precision="0"
/>
</div>
</div>
<div
style="
display: flex;
align-items: center;
margin-left: 64px;
margin-bottom: 24px;
"
>
<div>总票数</div>
<div style="width: 159px">
<a-input-number
style="width: 159px"
id="inputNumber"
v-model:value="totalVoteNum"
:min="0"
:max="99999"
:precision="0"
/>
</div>
</div>
<div
style="
display: flex;
align-items: center;
margin-left: 64px;
margin-bottom: 24px;
"
>
<div>浏览数</div>
<div style="width: 159px">
<a-input-number
style="width: 159px"
id="inputNumber"
v-model:value="browseNum"
:min="0"
:max="99999"
:precision="0"
/>
</div>
</div>
<!-- <div class="main_item" style="margin-top: -25px">
<div class="signbox"></div>
<div class="btnbox">
<span style="color: #999999">支持xls.xlsx</span>
</div>
</div> -->
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">投票说明</span>
@@ -477,7 +370,7 @@ export default {
if (!state.time) {
message.destroy();
return message.warning("请输入直播时间");
return message.warning("请输入起止时间");
}
// if (!state.basevote) {
// return message.warning("请上传投票基数");
@@ -495,9 +388,9 @@ export default {
ballotId: state.ballotId,
baseVote: state.basevote,
voteExplain: state.textV1,
votesTotal: state.totalVoteNum, //总票数
numberOfInvolved: state.partakeNum, //参与数
numberOfBrowse: state.browseNum, //浏览数
//votesTotal: state.totalVoteNum, //总票数
//numberOfInvolved: state.partakeNum, //参与数
//numberOfBrowse: state.browseNum, //浏览数
};
if (props.edit) {
api
@@ -740,7 +633,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -836,7 +729,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;

View File

@@ -1,626 +0,0 @@
<!-- 评估管理-创建评估页面 -->
<template>
<a-drawer
:visible="createVoteVisible"
class="drawerStyle createvoteDrawer"
width="100%"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="researchadd">
<div class="header">
<div class="headerTitle">创建投票</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="main_left">
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">投票名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="ballotName"
style="width: 424px; height: 32px"
placeholder="请输入任务名称"
maxlength="20"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span>创建题干</span>
</div>
<div class="btnbox">
<button class="xkbtn" @click="handleTypes">添加题干</button>
</div>
</div>
<!-- 创建投票侧弹窗 -->
</div>
<div v-for="(item, index) in allFormsData" :key="index">
<VoteQuestion
v-model:info="information"
:item="item"
:optionId="optionId"
@delOption="delOption"
@del="handleDel"
@edits="edits"
@addOption="addOption"
/>
</div>
<div class="footer">
<div class="btn">
<a-button
type="primary"
style="
width: 100px;
height: 40px;
border-radius: 8px;
background-color: #409eff;
"
@click="handleSave"
>
保存
</a-button>
<a-button
type="primary"
ghost
style="
width: 100px;
height: 40px;
margin-left: 14px;
border-radius: 8px;
"
@click="handleAllCancel"
>
取消
</a-button>
</div>
</div>
</div>
</a-drawer>
</template>
<script>
import { reactive, toRefs } from "vue";
import { message } from "ant-design-vue";
// import { createResearch } from "../../api/indexResearch";
import VoteQuestion from "./VoteQuestion.vue";
import {
// sortBy,
traverseArr,
//filterCommon,
// deepCloneFilterString,
} from "../../utils/utils";
//import store from "@/store";
import * as api from "@/api/indexVote";
//import { useRouter } from "vue-router";
import {} from "@/api/indexResearch";
//import { message } from "ant-design-vue";
export default {
name: "CreateVote",
components: {
VoteQuestion,
},
props: {
createVoteVisible: {
type: Boolean,
default: false,
},
ballotId: {
type: Number,
default: null,
},
editChild: {
type: Boolean,
default: false,
},
},
setup(props, ctx) {
const state = reactive({
ballotId: "",
ballotName: "",
allFormsData: [],
allFormsData1: [],
});
// const router = useRouter();
const afterVisibleChange = () => {
if (props.ballotId) {
getInfoDate();
} else {
handleTypes();
}
};
const closeDrawer = () => {
ctx.emit("update:createVoteVisible", false);
ctx.emit("update:ballotId", state.ballotId);
handleAllCancel();
};
// 详情
const getInfoDate = async () => {
console.log("props.editChild=====", props.editChild);
if (props.ballotId) {
console.log("props.editChild2=====", props.editChild);
let res = await api.queryStemByStemId(props.ballotId).then((res) => {
if (res.data.code === 200) {
return res.data.data;
}
});
console.log("res====", res);
state.ballotName = res.ballotId;
// let renderArr = [...res];
// sortBy(renderArr, "orderNumber"); //序号
state.allFormsData = parseData(res); //类型
state.allFormsData1 = parseData(res); //类型
console.log(state.allFormsData);
}
};
// 转换成前端格式
const parseData = (arr) => {
const resultArr = [];
state.ballotId = arr.ballotId;
state.ballotName = arr.ballotName;
console.log("arr.voteStemVoList=====", arr.voteStemVoList);
arr.voteStemVoList.forEach((item) => {
let obj = {};
let restList = traverseArr(item.optionDetailList, {
inputVal: "optionName",
imgVal: "optionPictureAddress",
optionId: "optionId",
voteStemId: "voteStemId",
stem: "stem",
}).map((itm, idx) => {
itm.id = idx + 1;
return itm;
});
obj = {
voteStemId: item.voteStemId,
valueSingle: item.voteStemName,
singleList: restList,
};
resultArr.push(obj);
});
resultArr.map((itm, idx) => {
itm.id = idx + 1;
return itm;
});
return resultArr;
};
// 转换成后端格式
const restData = (arr) => {
const resultArr = [];
arr.forEach((item) => {
let obj = {};
console.log("item=======", item);
// if (item[typeKey] === 1) {
let restList = traverseArr(item.singleList, {
optionName: "inputVal",
optionPictureAddress: "imgVal",
optionId: "optionId",
voteStemId: "voteStemId",
stem: "stem",
}).map((itm, idx) => {
itm.optionOrderNum = idx + 1;
return itm;
});
restList.forEach((item) => {
item.optionId = item.optionId ? item.optionId : "";
});
obj = {
voteStemName: item.valueSingle,
optionDetailList: restList,
voteStemId: item.voteStemId,
};
resultArr.push(obj);
// }
console.log("resultArr=======", resultArr);
});
resultArr.map((itm, idx) => {
itm.orderNumber = idx + 1;
return itm;
});
return resultArr;
};
// 解散传值
const parseItem = (arrr) => {
// const filterComObj = filterCommon(arr, "questionType");
let resultObj = {};
// for (let key in filterComObj) {
// if (key === "1") {
// let arrSingle = arrr
//filterComObj[key];
console.log("arrr======", arrr);
/*
let arr = [];
arrSingle.forEach((item) => {
console.log("item======",item);
if (item.singleList.length) {
item.singleList.forEach((itm) => {
arr.push({
...itm,
optionName: item.optionName,
optionOrderNum: item.optionOrderNum,
});
});
}
});*/
resultObj.voteStemDtoList = arrr;
// }
console.log("resultObj======", resultObj);
// }
return resultObj;
};
const handleTypes = () => {
let obj = {
id: state.allFormsData.length,
valueSingle: "",
singleList: [
{
id: 1,
inputVal: "",
imgVal: "",
},
{
id: 2,
inputVal: "",
imgVal: "",
},
],
};
state.allFormsData.push(obj);
state.allFormsData1.push(obj);
};
const handleDel = ({ id }) => {
console.log("1234523432434234234", id, state.allFormsData);
state.allFormsData.forEach((item, index) => {
if (item.id === id) {
console.log("oooooo", item);
state.allFormsData.splice(index, 1);
}
});
// state.allFormsData.map((item, index) => {
// item.id = index + 1;
// return item;
// });
// orderNumber: curItem.orderNumber,
};
const delOption = (data) => {
console.log("datadatadatadatadata", data, state.allFormsData);
state.allFormsData.forEach((item, index) => {
if (item.voteStemId === data.value.voteStemId) {
state.allFormsData[index].singleList.forEach((ii, nn) => {
if (ii.id == data.value.id) {
console.log(
1212121212,
state.allFormsData[index].singleList[nn],
nn
);
state.allFormsData[index].singleList.splice(nn, 1);
console.log("12", state.allFormsData);
}
});
}
});
state.allFormsData1.forEach((item, index) => {
if (item.voteStemId === data.value.voteStemId) {
state.allFormsData1[index].singleList.forEach((ii, nn) => {
if (ii.id == data.value.id) {
console.log(
1212121212,
state.allFormsData1[index].singleList[nn],
nn
);
state.allFormsData1[index].singleList.splice(nn, 1);
console.log("33", state.allFormsData1);
}
});
}
});
};
const edits = (data) => {
console.log(
"我传递过来了吗---111",
data,
data.value.id,
state.allFormsData1
);
state.allFormsData1.forEach((item, index) => {
if (item.voteStemId === data.value.voteStemId) {
item.singleList.forEach((ii, nn) => {
if (ii.id === data.value.id) {
// ii.optionName = data.value.inputVal
state.allFormsData1[index].singleList[nn].inputVal =
data.value.inputVal;
}
});
}
});
console.log("123-456-789", state.allFormsData1);
};
// 增加选项
const addOption = (data) => {
console.log(data);
state.allFormsData1.forEach((item, index) => {
if (item.voteStemId === data.value.voteStemId) {
state.allFormsData1[index].singleList = data.value.singleList;
}
});
};
const handleSave = () => {
let resultPost = {};
let filterData = parseItem(restData(state.allFormsData1, "type"));
console.log("filterData==111", filterData);
if (!state.ballotName) {
return message.warning("请输入投票名称");
}
// 校验s
// 校验
if (!checkVal(filterData)) {
return false;
}
// checkVal(filterData);
console.log(12121212);
console.log(filterData);
console.log("111111222223333----0000", state.ballotId);
if (state.ballotId) {
resultPost = {
ballotId: state.ballotId,
ballotName: state.ballotName,
...filterData,
};
/*
resultPost = deepCloneFilterString(resultPost, [
"assessmentMaxScore",
"assessmentMinScore",
]);*/
console.log(1212334);
console.log(resultPost);
api.updateStemMessage(resultPost).then((res) => {
if (res.data.code === 200) {
state.ballotId = res.data.data.ballotId;
console.log("res.data.data==============", res.data.data);
console.log("res.state.ballotId==============", state.ballotId);
message.success("编辑成功");
closeDrawer();
}
});
} else {
resultPost = {
ballotName: state.ballotName,
...filterData,
};
/*
resultPost = deepCloneFilterString(resultPost, [
"assessmentMaxScore",
"assessmentMinScore",
]);*/
console.log("=========", resultPost);
api.createStemMessage(resultPost).then((res) => {
if (res.data.code === 200) {
state.ballotId = res.data.data.ballotId;
console.log("res.data.data2==============", res.data.data);
console.log("res.state.ballotId=2s=============", state.ballotId);
message.success("创建成功");
closeDrawer();
}
});
}
};
const handleAllCancel = () => {
state.allFormsData = [];
};
const checkVal = (filterData) => {
console.log("filterData.====", filterData);
console.log("filterData.voteStemVoList====", filterData.voteStemDtoList);
if (!filterData.voteStemDtoList) {
message.error("请添加题干");
return false;
}
let arr = filterData.voteStemDtoList;
arr.forEach((item) => {
console.log("item===", item);
console.log("!item.voteStemName===", !item.voteStemName);
if (!item.voteStemName) {
console.log("item.voteStemName===", item.voteStemName);
message.error("题干为必填 请确认", item.voteStemName);
return false;
}
});
return true;
};
return {
...toRefs(state),
handleTypes,
handleSave,
handleAllCancel,
handleDel,
afterVisibleChange,
closeDrawer,
edits,
delOption,
addOption,
};
},
};
</script>
<style lang="scss">
.researchadd {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
margin-bottom: 25px;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.main_left {
margin-left: 50px;
padding-right: 30px;
flex: 1;
border-right: 1px solid #e8e8e8;
.main_item {
display: flex;
align-items: center;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.btnbox {
display: flex;
flex: 1;
align-items: center;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
color: #fff;
margin-right: 10px;
}
.fileTigan {
display: flex;
align-items: center;
padding: 3px 5px;
background-color: rgba(42, 103, 209, 0.4);
span {
margin-right: 5px;
}
.delBox {
width: 13px;
height: 13px;
background-image: url(@/assets/images/basicinfo/ch.png);
background-size: 100% 100%;
border-radius: 50%;
}
}
}
}
.main_item2 {
display: flex;
align-items: flex-start;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.kqszbox {
.qdqtbox {
margin-left: 56px;
}
.setbox {
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-bottom: 24px;
.timerbox {
margin-top: 6px;
margin-right: 32px;
display: flex;
align-items: center;
flex-wrap: nowrap;
}
}
}
.btnbox2 {
display: flex;
flex-direction: column;
justify-content: flex-start;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;
color: #fff;
margin-top: 16px;
margin-bottom: 60px;
}
}
}
}
}
</style>

View File

@@ -9,7 +9,7 @@
>
<div class="researchadd">
<div class="header">
<div class="headerTitle">{{ ballotId ? "编辑投票" : "创建投票" }}</div>
<div class="headerTitle">{{ ballotId ? "编辑投票题干" : "创建投票题干" }}</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@@ -17,7 +17,8 @@
/>
</div>
<div class="main_left">
<div class="main_item">
<!-- <div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
@@ -32,7 +33,7 @@
maxlength="20"
/>
</div>
</div>
</div>-->
<div class="main_item">
<div class="signbox">
<div class="sign">
@@ -296,10 +297,7 @@ export default {
console.log("555555555555555555", filterData);
// 校验
if (!state.ballotName) {
message.warning("请输入投票名称");
return false;
}
if (!checkVal(filterData)) {
return false;
}
@@ -417,7 +415,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -492,7 +490,7 @@ export default {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;