Merge branch 'newdev' into 'develop'

Newdev

See merge request !9
This commit is contained in:
huangshengfa
2022-12-07 14:31:40 +08:00
14 changed files with 620 additions and 449 deletions

View File

@@ -43,7 +43,7 @@ export default defineComponent({
const store = useStore();
const isLogin = ref(false);
// console.log("router", router.getRoutes(), route);
console.log("版本0.9.3------------");
console.log("版本0.9.4------------");
const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink);
});

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-12-07 08:54:55
* @LastEditTime: 2022-12-07 13:40:40
* @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/

View File

@@ -43,7 +43,6 @@ import http from "./config";
//根据ID获取评估信息详情
export const queryAppraiseDetailById = (obj) => http.post('/assessment/queryAssessmentDetailById', obj,{
headers: {
'token': '123',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
}
})

View File

@@ -234,7 +234,9 @@ export default {
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
// console.log("获取全部评估信息", res.data.data);
console.log("获取全部评估信息", res.data.data);
state.selectedRowKeys = [props.assessmentId]
console.log(props.assessmentId,props)
getTableDate(arr);
state.tableDataTotal = Number(res.data.data.total);
}

View File

@@ -212,6 +212,7 @@ export default {
console.log(res);
//更新讨论信息
state.assessment1 = res.data.data;
state.assessmentId = res.data.data.assessmentId;
})
.catch(() => {});
}

View File

@@ -21,24 +21,24 @@
<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"
placeholder="请输入项目名称"
placeholder="请输入课程名称/编号"
maxlength="20"
/>
</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"
dropdownClassName="dropdown-style"
style="width: 240px"
placeholder="请选择"
placeholder="请选择课程分类"
:options="options1"
allowClear
showSearch
@@ -209,7 +209,7 @@ export default {
},
setup(props, ctx) {
const state = reactive({
inputV1: "",
inputV1: null,
options1: [
{
value: "微课",
@@ -223,7 +223,7 @@ export default {
time: undefined,
onlineClassesId: null,
onlineName: "",
selectV: "",
selectV: null,
selectedRowKeys: [],
tableData: [],
addOnlineList: [],
@@ -239,7 +239,8 @@ export default {
state.choicecourse = true;
ctx.emit("update:addonlineVisible", false);
ctx.emit("update:edit", false);
state.inputV1 = "";
state.inputV1 = null;
state.selectV = null;
state.selectedRowKeys = [];
state.addOnlineList = [];
state.currentPage = 1;
@@ -258,7 +259,7 @@ export default {
dataIndex: "num",
key: "num",
width: "80px",
align: "left",
align: "center",
},
{
title: "名称",
@@ -266,9 +267,10 @@ export default {
key: "name",
width: "100px",
align: "center",
ellipsis: true,
},
{
title: "内容分类",
title: "课程分类",
dataIndex: "contenttype",
key: "contenttype",
width: "80px",
@@ -539,17 +541,13 @@ export default {
})
.then(() => {
message.destroy();
message.success(
`${props.edit ? "编辑" : "新增"}任务成功`
);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(
`${props.edit ? "编辑" : "新增"}任务失败`
);
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
});
}
@@ -583,7 +581,7 @@ export default {
};
//搜索在线列表
const searchList = () => {
if (state.inputV1 !== "" || state.selectV !== "") {
if (state.inputV1 || state.selectV) {
getAllOnlineText();
} else {
resetOnline();
@@ -591,8 +589,8 @@ export default {
};
//重置在线信息
const resetOnline = () => {
state.inputV1 = "";
state.selectV = "";
state.inputV1 = null;
state.selectV = null;
state.selectedRowKeys = [];
state.addOnlineList = [];
state.currentPage = 1;
@@ -763,6 +761,7 @@ export default {
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);

View File

@@ -580,6 +580,7 @@ export default {
// 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;
@@ -594,6 +595,9 @@ export default {
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;
state.paperName = res.data.data.examinationTestName;
if (
res.data.data.examinationEndTime &&
res.data.data.examinationStartTime
@@ -658,7 +662,7 @@ export default {
updateExamination(obj)
.then(async (res) => {
await updateTask(res);
closeDrawer();
// closeDrawer();
})
.catch(() => {
message.destroy();
@@ -669,7 +673,7 @@ export default {
createExamination(obj)
.then(async (res) => {
await updateTask(res);
closeDrawer();
// closeDrawer();
})
.catch(() => {
message.destroy();
@@ -694,7 +698,8 @@ export default {
};
RouterEditTask(editObj1)
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
console.log("props.edit", props.edit);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
state.addLoading = false;
closeDrawer();
@@ -715,8 +720,9 @@ export default {
// 新增编辑或新增项目
ProjectEditTask(editObj)
.then(() => {
//message.success(`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
//message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);
@@ -732,8 +738,9 @@ export default {
type: 5,
})
.then(() => {
//message.success( `${props.EditTestId ? "编辑" : "新增"}阶段任务成功`);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
//message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);

View File

@@ -1,54 +1,57 @@
<template>
<a-drawer
:visible="EvalListVisible"
class="drawerStyle addonlineDrawer"
width="80%"
title="选择测评"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<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="contentMain">
<div class="main_items">
<div class="mi_ipts">
<div class="mii_ipt">
<div class="ipt_name">测评信息</div>
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称"
/>
</div>
</div>
</div>
<div class="mi_btns">
<div class="btn btn1" @click="searchList">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btn btn2" @click="resetData">
<div class="search"></div>
<div class="btnText">重置</div>
<a-drawer
:visible="EvalListVisible"
class="drawerStyle addonlineDrawer"
width="80%"
title="选择测评"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<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="contentMain">
<div class="main_items">
<div class="mi_ipts">
<div class="mii_ipt">
<div class="ipt_name">测评信息</div>
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称"
/>
</div>
</div>
</div>
<div class="main_table">
<a-table
<div class="mi_btns">
<div class="btn btn1" @click="searchList">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btn btn2" @click="resetData">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
</div>
<div class="main_table">
<a-table
style="border: 1px solid #f2f6fe"
:columns="columns"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
:row-selection="{ selectedRowKeys:selectedRowKeys,onChange:onSelectChange}"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
<div class="pa">
<a-pagination
@@ -63,116 +66,116 @@
@change="changePagination"
/>
</div>
</div>
</div>
<div class="main_btns">
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="checkFinish">确定</button>
</div>
</div>
</a-drawer>
<div class="main_btns">
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="checkFinish">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { reactive, toRefs } from "vue";
import * as api from "../../api/indexEval";
export default {
name: "EvList",
props: {
EvalListVisible: {
type: Boolean,
default: false,
},
evaluationTypeId: {
type: Number,
default: null,
},
evaluationTypeName:{
type: String,
default: "",
},
import * as api from "../../api/indexEval";
export default {
name: "EvList",
props: {
EvalListVisible: {
type: Boolean,
default: false,
},
setup(props, ctx) {
const state = reactive({
currentPage: 1,
tableDataTotal: 0,
pageSize: 10,
inputV1:"",
evaluationTypeId:null,
evaluationTypeName:"",
tableData: [],
selectedRowKeys:[],
evListData:{},
columns:[
{
title: "课程编号",
width: "20%",
dataIndex: "quiz_code",
key: "code",
align: "center",
},
{
title: "课程名称",
width: "20%",
dataIndex: "title",
key: "title",
align: "center",
},
{
title: "备注",
width: "13%",
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",
},
{
title: "可答题人数",
width: "20%",
dataIndex: "quiz_range",
key: "time",
align: "center",
},
]
});
const onSelectChange = (selectedRowKeys,selectedRows)=> {
if(selectedRowKeys.length>1){
return
evaluationTypeId: {
type: Number,
default: null,
},
evaluationTypeName: {
type: String,
default: "",
},
},
setup(props, ctx) {
const state = reactive({
currentPage: 1,
tableDataTotal: 0,
pageSize: 10,
inputV1: "",
evaluationTypeId: null,
evaluationTypeName: "",
tableData: [],
selectedRowKeys: [],
evListData: {},
columns: [
{
title: "课程编号",
width: "20%",
dataIndex: "quiz_code",
key: "code",
align: "center",
},
{
title: "课程名称",
width: "20%",
dataIndex: "title",
key: "title",
align: "center",
},
{
title: "备注",
width: "13%",
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",
},
{
title: "可答题人数",
width: "20%",
dataIndex: "quiz_range",
key: "time",
align: "center",
},
],
});
const onSelectChange = (selectedRowKeys, selectedRows) => {
if (selectedRowKeys.length > 1) {
return;
}
state.selectedRowKeys = selectedRowKeys
state.evListData = selectedRows[0] ? selectedRows[0] : {}
}
state.selectedRowKeys = selectedRowKeys;
state.evListData = selectedRows[0] ? selectedRows[0] : {};
};
const closeDrawer = () => {
state.selectedRowKeys = []
state.evListData = {}
state.inputV1 = ""
state.selectedRowKeys = [];
state.evListData = {};
state.inputV1 = "";
ctx.emit("update:EvalListVisible", false);
};
const afterVisibleChange = (bol) => {
if ( bol == true ) {
if (bol == true) {
getAllEvalText();
}
};
const checkFinish =() =>{
const checkFinish = () => {
ctx.emit("getEvListData", state.evListData);
closeDrawer();
}
};
const changePagination = (page) => {
state.currentPage = page;
getAllEvalText();
@@ -182,73 +185,71 @@ import { reactive, toRefs } from "vue";
let data = tableData;
let array = [];
let arrayKey = [];
if(props.evaluationTypeName != ""){
data.map((value,index) => {
let obj = {
key:index+1,
status:value.status,
quiz_code:value.quiz_code,
quiz_kid:value.quiz_kid,
title:value.title,
theme_desc:value.theme_desc,
quiz_price:value.quiz_price,
quiz_range:value.quiz_range,
};
array.push(obj)
if(obj.title == props.evaluationTypeName){
arrayKey.push(obj.key);
}
});
state.tableData = array;
state.selectedRowKeys = arrayKey;
}
else{
data.map((value,index) => {
let obj = {
key:index+1,
status:value.status,
quiz_code:value.quiz_code,
quiz_kid:value.quiz_kid,
title:value.title,
theme_desc:value.theme_desc,
quiz_price:value.quiz_price,
quiz_range:value.quiz_range,
};
array.push(obj);
});
state.tableData = array;
if (props.evaluationTypeName != "") {
data.map((value, index) => {
let obj = {
key: index + 1,
status: value.status,
quiz_code: value.quiz_code,
quiz_kid: value.quiz_kid,
title: value.title,
theme_desc: value.theme_desc,
quiz_price: value.quiz_price,
quiz_range: value.quiz_range,
};
array.push(obj);
if (obj.title == props.evaluationTypeName) {
arrayKey.push(obj.key);
}
});
state.tableData = array;
state.selectedRowKeys = arrayKey;
} else {
data.map((value, index) => {
let obj = {
key: index + 1,
status: value.status,
quiz_code: value.quiz_code,
quiz_kid: value.quiz_kid,
title: value.title,
theme_desc: value.theme_desc,
quiz_price: value.quiz_price,
quiz_range: value.quiz_range,
};
array.push(obj);
});
state.tableData = array;
}
};
//获取测评列表
const getAllEvalText = ()=> {
const getAllEvalText = () => {
let objael = {
"keyword": state.inputV1,
"user_id": "965341999643234304",
}
keyword: state.inputV1,
user_id: "965341999643234304",
};
api
.choiceEvaluation(objael)
.then((res) => {
getTableDataList(res.data.data)
})
.catch(()=>{
})
}
.choiceEvaluation(objael)
.then((res) => {
getTableDataList(res.data.data);
})
.catch(() => {});
};
//搜索测评列表
const searchList = ()=> {
if(state.inputV1 !== ''){
getAllEvalText()
}else {
resetData()
const searchList = () => {
if (state.inputV1 !== "") {
getAllEvalText();
} else {
resetData();
}
}
};
//重置测评列表
const resetData = ()=> {
const resetData = () => {
state.currentPage = 1;
state.selectedRowKeys = [];
state.evListData = {}
state.evListData = {};
getAllEvalText();
}
};
return {
...toRefs(state),
afterVisibleChange,
@@ -260,206 +261,206 @@ import { reactive, toRefs } from "vue";
searchList,
resetData,
};
},
};
},
};
</script>
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addonlineDrawer {
.drawerMain {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addonlineDrawer {
.drawerMain {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.contentMain {
padding-right: 12px;
.main_items {
display: flex;
margin-bottom: 12px;
flex-wrap: wrap;
.mi_ipts {
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.contentMain {
padding-right: 12px;
.main_items {
margin-bottom: 20px;
.mii_ipt {
display: flex;
margin-bottom: 12px;
flex-wrap: wrap;
.mi_ipts {
display: flex;
margin-bottom: 20px;
.mii_ipt {
display: flex;
align-items: center;
margin-right: 24px;
.ipt_name {
white-space: nowrap;
}
}
}
.mi_btns {
display: flex;
margin-left: 38px;
margin-bottom: 20px;
cursor: pointer;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-left: 14px;
flex-shrink: 0;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
background: rgb(64, 158, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/search0.png");
}
.btnText {
color: rgb(255, 255, 255);
}
}
.btn2 {
background: rgb(255, 255, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/reset1.png");
}
.btnText {
color: rgb(64, 158, 255);
}
}
.btn1:hover {
background: rgb(255, 255, 255);
.search {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388be1;
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("@/assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
.main_notice {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 32px;
height: 40px;
background-color: #e9f6fe;
.mntc_left {
display: flex;
align-items: center;
.notice_icon {
width: 14px;
height: 14px;
margin-right: 9px;
margin-left: 9px;
background-image: url(@/assets/images/coursewareManage/gan.png);
background-size: 100% 100%;
}
}
.mntc_right {
cursor: pointer;
margin-right: 24px;
.ipt_name {
white-space: nowrap;
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.classify {
margin-left: 10px !important;
padding-left: 9px !important;
}
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 60px !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;
.mi_btns {
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;
margin-left: 38px;
margin-bottom: 20px;
cursor: pointer;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-left: 14px;
flex-shrink: 0;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
background: rgb(64, 158, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/search0.png");
}
.btnText {
color: rgb(255, 255, 255);
}
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
background: rgb(255, 255, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/reset1.png");
}
.btnText {
color: rgb(64, 158, 255);
}
}
.btn1:hover {
background: rgb(255, 255, 255);
.search {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388be1;
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("@/assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
.main_notice {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 32px;
height: 40px;
background-color: #e9f6fe;
.mntc_left {
display: flex;
align-items: center;
.notice_icon {
width: 14px;
height: 14px;
margin-right: 9px;
margin-left: 9px;
background-image: url(@/assets/images/coursewareManage/gan.png);
background-size: 100% 100%;
}
}
.mntc_right {
cursor: pointer;
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.classify {
margin-left: 10px !important;
padding-left: 9px !important;
}
.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>
}
</style>

View File

@@ -96,7 +96,7 @@
v-model:visible="cancelModal"
:footer="null"
:closable="closeCancel"
wrapClassName="CopyModal"
wrapClassName="DelModal"
centered="true"
>
<div class="delete">
@@ -422,6 +422,119 @@ export default {
padding: 0px;
}
}
.DelModal {
.ant-modal {
.ant-modal-content {
width: 424px !important;
.ant-modal-body {
.delete {
width: 424px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px;
position: absolute;
left: 50%;
top: 10%;
transform: translate(-50%, -50%);
.del_header {
position: absolute;
width: calc(100%);
height: 40px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.del_main {
width: 100%;
position: relative;
.header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.del-icons {
width: 16px;
height: 16px;
position: relative;
margin-right: 10px;
img {
width: 100%;
height: 100%;
position: absolute;
top: 0px;
left: 0px;
background-size: 100% 100%;
}
}
.close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
}
.body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
}
.del_btnbox {
display: flex;
margin: 30px auto;
justify-content: center;
.del_btn {
width: 100px;
height: 40px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
}
.btn1 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
}
.btn2 {
background-color: #4ea6ff;
color: #ffffff;
}
}
}
}
}
}
}
}
.ProjPowerList {
// width: 80%;

View File

@@ -122,9 +122,9 @@ const searchMember = (keyWord) => {
};
function change(e, l) {
selectOptions.value = l
isOpen.value = false
emit('onChange', e, l, selectOptions.value.find(e => e.deptId)?.deptId)
Array.isArray(l) && (selectOptions.value = l)
Array.isArray(selectOptions.value) && emit('onChange', e, l, selectOptions.value.find(e => e.deptId)?.deptId)
if (Array.isArray(l)) {
emit('update:name', l.map(t => t.label).join(','))
emit('update:value', l.map(t => t.value).join(','))

View File

@@ -715,7 +715,7 @@
<div class="btn btn6" @click="handlePush">
<div class="btnText">保存</div>
</div>
<div
class="btn btn6"
v-if="statusTingQi == 1"
@@ -2487,13 +2487,13 @@
<div class="stmm_i1">
<span style="margin-right: 52px">
{{ currentPlanItem.name }}课程-第1期-
{{ getdateToDateFn(currentPlanItem.createTime) }}
{{ currentPlanItem.createTime }}
</span>
<span style="color: #ffb751">已开课 4.5</span>
</div>
<div class="stmm_i2">
<span style="color: #999ba3">时间:</span>
<span>{{ getdateToTimeFn(currentPlanItem.endTime) }}</span>
<span>{{ currentPlanItem.endTime }}</span>
</div>
<div class="stmm_i3">
<span style="color: #999ba3">地点:</span>
@@ -3148,8 +3148,10 @@ const columns1 = [
dataIndex: "num",
key: "num",
align: "center",
customRender: ({ index }) => {
return index + 1;
customRender: ({ index, record }) => {
const pageNum =
Number(record.pageNo) - 1 > 0 ? (Number(record.pageNo) - 1) * 10 : 0;
return index + 1 + pageNum;
},
},
{
@@ -3397,9 +3399,10 @@ const columns6 = [
width: "6%",
align: "center",
ellipsis: true,
customRender: ({ index }) => {
//{ text, record, index, column }
return index + 1;
customRender: ({ index, record }) => {
const pageNum =
Number(record.pageNo) - 1 > 0 ? (Number(record.pageNo) - 1) * 10 : 0;
return index + 1 + pageNum;
},
},
{
@@ -3454,7 +3457,8 @@ const columns6 = [
ellipsis: true,
align: "center",
customRender: ({ text }) => {
return text ? getdateToTime(text * 1000) : "-";
// return text ? getdateToTime(text * 1000) : "-";
return text ? text : "-";
},
},
{
@@ -3465,7 +3469,8 @@ const columns6 = [
ellipsis: true,
align: "center",
customRender: ({ text }) => {
return text ? getdateToTime(text * 1000) : "-";
// return text ? getdateToTime(text * 1000) : "-";
return text ? text : "-";
},
},
{
@@ -3484,9 +3489,10 @@ const columns7 = [
dataIndex: "num",
key: "num",
align: "center",
customRender: ({ index }) => {
//{ text, record, index, column }
return index + 1;
customRender: ({ index, record }) => {
const pageNum =
Number(record.pageNo) - 1 > 0 ? (Number(record.pageNo) - 1) * 10 : 0;
return index + 1 + pageNum;
},
},
{
@@ -3885,7 +3891,7 @@ export default defineComponent({
selectTime: "",
pageSize3: 10,
currentPage3: 0,
currentPage3: 1,
tableDataTotal3: 0,
checked1: false,
@@ -4107,14 +4113,17 @@ export default defineComponent({
endTime: endTime,
beginTime: startTime,
});
const { rows, total } = res.data.data;
const { rows, total, pageNo } = res.data.data;
console.log(res.data.data);
state.tableDataTotal1 = total;
for (let i = 0; i < rows.length; i++) {
rows[i].num = i + 1 + (state.currentPage1 - 1) * 10;
}
const datas = traverseArr(
rows,
{
key: "offcourseId",
num: "offcourseId",
num: "num",
name: "name",
content: "categoryId",
courseform: "type",
@@ -4132,6 +4141,7 @@ export default defineComponent({
true
);
datas.forEach((itm) => {
itm.pageNo = pageNo;
for (let item of options2.value) {
if (String(item.value) === String(itm.content)) {
itm.contentTxt = item.label;
@@ -4416,8 +4426,12 @@ export default defineComponent({
// console.log("获取学员信息", obj);
let res = await studentList(obj);
// console.log("获取学员列表", res);
const { rows, total } = res.data.data;
const { rows, total, pageNo } = res.data.data;
state.tableDataTotal3 = total;
for (let i = 0; i < rows.length; i++) {
rows[i].num = i + 1 + (state.currentPage3 - 1) * 10;
}
rows.forEach((item, index) => {
rows[index] = {
...item,
@@ -4428,7 +4442,7 @@ export default defineComponent({
rows,
{
key: "studentId",
num: "studentId",
num: "num",
name: "name",
number: "studentId",
department: "deptName",
@@ -4442,6 +4456,9 @@ export default defineComponent({
},
true
);
data2.forEach((itm) => {
itm.pageNo = pageNo;
});
state.tableData7 = data2;
};
getTableDate2();
@@ -4518,13 +4535,17 @@ export default defineComponent({
console.log("获取开课", obj);
let res = await planList(obj);
console.log("开课res", res);
const { rows, total } = res.data.data;
const { rows, total, pageNo } = res.data.data;
state.tableDataTotal222 = total;
for (let i = 0; i < rows.length; i++) {
rows[i].num = i + 1 + (state.currentPage222 - 1) * 10;
}
const datas = traverseArr(
rows,
{
key: "offcoursePlanId",
num: "offcoursePlanId",
num: "num",
organization: "name",
address: "address",
starttime: "beginTime",
@@ -4532,6 +4553,9 @@ export default defineComponent({
},
true
);
datas.forEach((itm) => {
itm.pageNo = pageNo;
});
state.tableData6 = datas;
};
@@ -4618,6 +4642,8 @@ export default defineComponent({
state.of_hs = false;
state.ft_hs = true;
state.valueE1 = "";
state.teacher = "";
state.teacherName = "";
state.qdms_inputV1 = state.xzinputV1;
state.xzinputV1 = "";
getDictList("faceclassPic");
@@ -4717,7 +4743,7 @@ export default defineComponent({
// ft_exit_1();
rest();
state.addLoading = false;
state.statusTingQi = 1;
// console.log("res.data", res.data);
if (param === "review") {
@@ -4817,8 +4843,7 @@ export default defineComponent({
//编辑开课
const handelEditStu = async (itm) => {
console.log(itm);
state.offcourseId = itm.offcourseId;
state.offcoursePlanId = itm.offcoursePlanId;
@@ -4828,13 +4853,16 @@ export default defineComponent({
if (res.data.code === 200) return res.data.data;
});
let obj={
assessmentId:item.evaluateId,
}
api.queryAppraiseDetailById(obj).then((res) => {
state.assessmentName= res.data.data.assessmentName;
}).catch();
let obj = {
assessmentId: item.evaluateId,
};
api
.queryAppraiseDetailById(obj)
.then((res) => {
state.assessmentName = res.data.data.assessmentName;
})
.catch();
console.log("res");
console.log(item);
@@ -5247,10 +5275,6 @@ export default defineComponent({
};
//编辑面授课
const handleEdit = async (itm, type) => {
console.log(45555);
console.log(itm);
if (type === "1") {
@@ -5322,7 +5346,6 @@ export default defineComponent({
state.lookCourseModal = false;
};
const handleLook = async (itm, type) => {
if (type === "1") {
return;
}

View File

@@ -455,7 +455,9 @@
<div class="iconame">
{{ checkType(item.type) }}
</div>
<div class="icontext">{{ item.name }}</div>
<div class="icontext" :title="item.name">
{{ item.name }}
</div>
</div>
</div>
<div class="type">
@@ -466,7 +468,7 @@
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">
{{ item.startTime !== null ? item.startTime : "" }}
{{ item.startTime !== null ? item.startTime : "-" }}
</div>
</div>
<div class="progress">
@@ -3751,7 +3753,10 @@ export default {
color: #999ba3;
font-size: 14px;
margin-left: 12px;
width: 83px;
width: 120px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}

View File

@@ -959,6 +959,7 @@ export default defineComponent({
state.projectInfo.status = res.data.data.projectTemplateInfo.status;
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl;
state.projectInfo.attach = res.data.data.projectTemplateInfo.attach;
state.projectInfo.category = res.data.data.projectTemplateInfo.category;
let data = res.data.data.stageList;
console.log("data=====", data);
for (let i in data) {
@@ -1131,8 +1132,28 @@ export default defineComponent({
console.log(file);
list = state.fileList;
console.log("list", list);
let str = JSON.stringify(list);
let str = JSON.stringify(fileList);
console.log("str", str);
console.table({
name: state.projectInfo.name,
category: state.projectInfo.category,
picUrl: state.projectInfo.picUrl,
beginTime: new Date(state.projectInfo.beginTime).getTime()/1000,
endTime: new Date(state.projectInfo.endTime).getTime()/1000,
manager: state.projectInfo.manager,
managerId: state.projectInfo.managerId || 0,
sourceBelongId: state.projectInfo.sourceBelongId,
level: state.projectInfo.level,
systemId: state.projectInfo.systemId,
boeFlag: state.projectInfo.boeFlag ? 1 : 0,
courseSyncFlag: state.projectInfo.courseSyncFlag ? 1 : 0,
notice: state.projectInfo.notice,
noticeFlag: state.projectInfo.noticeFlag,
projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
remark: state.projectInfo.remark,
status: state.projectInfo.status,
attach: str,
})
//要编辑项目
api
.templateEdit({

View File

@@ -129,7 +129,7 @@
<ProjectManager
v-model:value="projectInfo.managerId"
v-model:name="projectInfo.manager"
@change="managerChange"
@onChange="managerChange"
mode="multiple"
></ProjectManager>
</div>
@@ -372,7 +372,7 @@ export default {
state.picUrlName = dates[i].label
}
}
state.projectInfo.rangeTime = [
state.projectInfo.beginTime,
state.projectInfo.endTime,