mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-24 02:02:55 +08:00
页面button颜色统一,表格不可选择页面数量
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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>
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -357,7 +357,7 @@ export default {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 8px;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="total > 10"
|
||||
showSizeChanger="true"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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%;
|
||||
|
||||
@@ -237,7 +237,7 @@ export default {
|
||||
.votebtn {
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -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;
|
||||
|
||||
462
src/components/drawers/AssessmentAll.vue
Normal file
462
src/components/drawers/AssessmentAll.vue
Normal 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>
|
||||
@@ -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%;
|
||||
|
||||
@@ -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>
|
||||
@@ -111,7 +111,7 @@ export default {
|
||||
margin:auto 10px;
|
||||
}
|
||||
.op{
|
||||
color:#388be1;
|
||||
color:#4ea6ff;
|
||||
margin: auto 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="total > 10"
|
||||
showSizeChanger="true"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="tableDataTotal > 10"
|
||||
showSizeChanger="true"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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%;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="tableDataTotal > 10"
|
||||
showSizeChanger="true"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
<div class="tableBox">
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
showSizeChanger="true"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user