mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-18 23:36:46 +08:00
feat:隐藏功能
This commit is contained in:
@@ -9,6 +9,9 @@ export const projlist = (obj) => http.post('/admin/project/list', obj)
|
|||||||
//获取待审核项目列表
|
//获取待审核项目列表
|
||||||
export const auditlist = (obj) => http.post('/admin/project/auditlist', obj)
|
export const auditlist = (obj) => http.post('/admin/project/auditlist', obj)
|
||||||
|
|
||||||
|
//获取已审核项目列表
|
||||||
|
export const auditedlist = (obj) => http.post('/admin/project/auditedlist', obj)
|
||||||
|
|
||||||
//获取已审核项目列表
|
//获取已审核项目列表
|
||||||
export const listView = (obj) => http.post('/admin/project/listView', obj)
|
export const listView = (obj) => http.post('/admin/project/listView', obj)
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
function formatNumber(n) {
|
function formatNumber(n) {
|
||||||
n = n.toString();
|
n = n.toString();
|
||||||
return n[1] ? n : "0" + n;
|
return n[1] ? n : "0" + n;
|
||||||
}
|
}
|
||||||
|
|
||||||
function toDate(number, format) {
|
function toDate(number, format) {
|
||||||
var formateArr = ["Y", "M", "D", "h", "m", "s"];
|
var formateArr = ["Y", "M", "D", "h", "m", "s"];
|
||||||
var returnArr = [];
|
var returnArr = [];
|
||||||
@@ -25,6 +25,7 @@ function toDate(number, format) {
|
|||||||
}
|
}
|
||||||
return format;
|
return format;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getWeek(date) {
|
function getWeek(date) {
|
||||||
//date:'Y-M-D'
|
//date:'Y-M-D'
|
||||||
let time = new Date(date).getDay()
|
let time = new Date(date).getDay()
|
||||||
@@ -163,6 +164,19 @@ function autoComma(number) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//节流
|
||||||
|
function throttle(fn, delay = 200) {
|
||||||
|
var timer = null;
|
||||||
|
return function () {
|
||||||
|
console.log('throttle')
|
||||||
|
var context = this, args = arguments;
|
||||||
|
clearTimeout(timer);
|
||||||
|
timer = setTimeout(function () {
|
||||||
|
fn.apply(context, args);
|
||||||
|
}, delay);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
//把token存到cookie
|
//把token存到cookie
|
||||||
//name 字段名 value 字段值 perpetual 有效期
|
//name 字段名 value 字段值 perpetual 有效期
|
||||||
const setCookie = (name, value, perpetual) => {
|
const setCookie = (name, value, perpetual) => {
|
||||||
@@ -422,6 +436,7 @@ const organizationalTree = []
|
|||||||
|
|
||||||
const iframeUrl = "https://u-pre.boe.com/pc/iframe"
|
const iframeUrl = "https://u-pre.boe.com/pc/iframe"
|
||||||
export {
|
export {
|
||||||
|
throttle,
|
||||||
toDate,
|
toDate,
|
||||||
getWeek,
|
getWeek,
|
||||||
autoComma,
|
autoComma,
|
||||||
|
|||||||
@@ -1,49 +1,30 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-drawer
|
<a-drawer :visible="addevalVisible" class="drawerStyle addevalDrawer" width="80%" title="添加测评" placement="right"
|
||||||
:visible="addevalVisible"
|
@after-visible-change="afterVisibleChange">
|
||||||
class="drawerStyle addevalDrawer"
|
|
||||||
width="80%"
|
|
||||||
title="添加测评"
|
|
||||||
placement="right"
|
|
||||||
@after-visible-change="afterVisibleChange"
|
|
||||||
>
|
|
||||||
<div class="drawerMain">
|
<div class="drawerMain">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}测评</div>
|
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}测评</div>
|
||||||
<img
|
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
|
||||||
style="width: 29px; height: 29px; cursor: pointer"
|
@click="closeDrawer" />
|
||||||
src="../../assets/images/basicinfo/close.png"
|
|
||||||
@click="closeDrawer"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="contentMain">
|
<div class="contentMain">
|
||||||
<div class="main_left">
|
<div class="main_left">
|
||||||
<div class="main_item">
|
<div class="main_item">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
<div class="sign">
|
<div class="sign">
|
||||||
<img
|
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 3px">测评名称:</span>
|
<span style="margin-right: 3px">测评名称:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-input
|
<a-input v-model:value="inputV1" style="width: 424px; height: 32px" placeholder="请输入测评名称"
|
||||||
v-model:value="inputV1"
|
maxlength="20" />
|
||||||
style="width: 424px; height: 32px"
|
|
||||||
placeholder="请输入测评名称"
|
|
||||||
maxlength="20"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_item">
|
<div class="main_item">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
<div class="sign">
|
<div class="sign">
|
||||||
<img
|
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 3px">选择测评:</span>
|
<span style="margin-right: 3px">选择测评:</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -52,13 +33,9 @@
|
|||||||
选择测评
|
选择测评
|
||||||
</button>
|
</button>
|
||||||
<span style="margin-left: 10px">
|
<span style="margin-left: 10px">
|
||||||
<a-tag
|
<a-tag class="tag-style" v-if="evaluationTypeName !== ''" :closable="true" @close="delTag">{{
|
||||||
class="tag-style"
|
evaluationTypeName
|
||||||
v-if="evaluationTypeName !== ''"
|
}}</a-tag>
|
||||||
:closable="true"
|
|
||||||
@close="delTag"
|
|
||||||
>{{ evaluationTypeName }}</a-tag
|
|
||||||
>
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -67,12 +44,8 @@
|
|||||||
<span style="margin-right: 3px">有效期:</span>
|
<span style="margin-right: 3px">有效期:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-range-picker
|
<a-range-picker style="width: 424px" v-model:value="time" format="YYYY-MM-DD HH:mm:ss"
|
||||||
style="width: 424px"
|
:placeholder="[' 开始时间', ' 结束时间']" />
|
||||||
v-model:value="time"
|
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
|
||||||
:placeholder="[' 开始时间', ' 结束时间']"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_item2">
|
<div class="main_item2">
|
||||||
@@ -80,12 +53,9 @@
|
|||||||
<span style="margin-right: 3px">测评说明:</span>
|
<span style="margin-right: 3px">测评说明:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="textarea">
|
<div class="textarea">
|
||||||
<a-textarea
|
<a-textarea maxlength="150" v-model:value="description" placeholder="请输入测评说明"
|
||||||
v-model:value="description"
|
style="width: 424px; height: 120px" allowClear />
|
||||||
placeholder="请输入测评说明"
|
<span style="position:relative;top:96px;left:-54px;z-index:9999;">{{ description.length }}/150</span>
|
||||||
style="width: 424px; height: 120px"
|
|
||||||
allowClear
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -95,11 +65,8 @@
|
|||||||
<button class="btn2" @click="creoredit">确定</button>
|
<button class="btn2" @click="creoredit">确定</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<EvList
|
<EvList v-model:EvalListVisible="EvalListVisible" v-model:evaluationTypeName="evaluationTypeName"
|
||||||
v-model:EvalListVisible="EvalListVisible"
|
@getEvListData="checkFinish" />
|
||||||
v-model:evaluationTypeName="evaluationTypeName"
|
|
||||||
@getEvListData="checkFinish"
|
|
||||||
/>
|
|
||||||
<!-- <div class="aeLoading" :style="{display:addLoading?'flex':'none'}">
|
<!-- <div class="aeLoading" :style="{display:addLoading?'flex':'none'}">
|
||||||
<a-spin :spinning="addLoading" tip="添加中..." />
|
<a-spin :spinning="addLoading" tip="添加中..." />
|
||||||
</div> -->
|
</div> -->
|
||||||
@@ -170,7 +137,7 @@ export default {
|
|||||||
evaluationTypeId: null,
|
evaluationTypeId: null,
|
||||||
evaluationTypeName: '',
|
evaluationTypeName: '',
|
||||||
description: "",
|
description: "",
|
||||||
EvalListVisible: false,
|
EvalListVisible: false
|
||||||
// addLoading:false,
|
// addLoading:false,
|
||||||
});
|
});
|
||||||
const checkFinish = (value) => {
|
const checkFinish = (value) => {
|
||||||
@@ -287,6 +254,7 @@ export default {
|
|||||||
createEvalText()
|
createEvalText()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const editInvistText = () => {
|
const editInvistText = () => {
|
||||||
if (!state.inputV1) {
|
if (!state.inputV1) {
|
||||||
message.destroy();
|
message.destroy();
|
||||||
@@ -372,7 +340,7 @@ export default {
|
|||||||
queryInvistById,
|
queryInvistById,
|
||||||
editInvistText,
|
editInvistText,
|
||||||
showEvalDrawer,
|
showEvalDrawer,
|
||||||
updateTask,
|
updateTask
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -46,10 +46,11 @@
|
|||||||
<div class="img3"></div>
|
<div class="img3"></div>
|
||||||
<div class="wz">批量删除</div>
|
<div class="wz">批量删除</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
|
<!-- <div class="btn btn2">
|
||||||
<div class="img2"></div>
|
<div class="img2"></div>
|
||||||
<div class="wz">导出信息</div>
|
<div class="wz">导出信息</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="line">
|
<div class="line">
|
||||||
<div class="inline">
|
<div class="inline">
|
||||||
|
|||||||
@@ -15,62 +15,78 @@
|
|||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>项目名称:</span></div>
|
<div class="setc_name"><span>项目名称:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<span style="color: #999999">{{ name }}</span>
|
<span style="color: #999999">{{ projectInfo.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>封面图:</span></div>
|
<div class="setc_name"><span>封面图:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<img style="width: 151px; height: 84px" :src="picUrl" alt="" />
|
<img style="width: 151px; height: 84px" :src="projectInfo.picUrl" alt=""/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>项目时间:</span></div>
|
<div class="setc_name"><span>项目时间:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<span style="color: #999999">{{ startTime }} ~ {{ endTime }}</span>
|
<span style="color: #999999">{{ projectInfo.beginTime }} ~ {{ projectInfo.endTime }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>项目经理:</span></div>
|
<div class="setc_name"><span>项目经理:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<span style="color: #999999">{{ manager }}</span>
|
<span style="color: #999999">{{ projectInfo.manager }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>资源归属:</span></div>
|
<div class="setc_name"><span>资源归属:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<span style="color: #999999">{{ sourceBelongName }}</span>
|
<span style="color: #999999">{{ projectInfo.sourceBelongName }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>项目说明:</span></div>
|
<div class="setc_name"><span>项目说明:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<span style="color: #999999">{{ remark }}</span>
|
<span style="color: #999999">{{ projectInfo.remark }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>同步学习记录:</span></div>
|
<div class="setc_name"><span>同步学习记录:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<a-radio v-model:checked="checkedSty"><span
|
<a-switch
|
||||||
style="color: #333333">同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span></a-radio>
|
v-model:checked="projectInfo.courseSyncFlag"
|
||||||
|
:checkedValue="1"
|
||||||
|
:unCheckedValue="0"
|
||||||
|
:disabled="true"
|
||||||
|
><span
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
color: rgba(109, 117, 132, 1);
|
||||||
|
font-size: 14px;
|
||||||
|
"
|
||||||
|
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
|
||||||
|
></a-switch>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>项目级别:</span></div>
|
<div class="setc_name"><span>项目级别:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<span style="color: #999999">{{ level }}</span>
|
<ProjectLevel v-model:value="projectInfo.level" :disabled="true"></ProjectLevel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>培训体系:</span></div>
|
<div class="setc_name"><span>培训体系:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<span style="color: #999999">{{ systemId }}</span>
|
<TrainClass v-model:value="projectInfo.systemId" :disabled="true"></TrainClass>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="set_content">
|
<div class="set_content">
|
||||||
<div class="setc_name"><span>是否BOEU实施:</span></div>
|
<div class="setc_name"><span>是否BOEU实施:</span></div>
|
||||||
<div class="setc_main">
|
<div class="setc_main">
|
||||||
<a-radio v-model:checked="checkedBOEU"><span style="color: #333333">BOEU实施</span></a-radio>
|
<a-switch
|
||||||
|
v-model:checked="projectInfo.boeFlag"
|
||||||
|
:checkedValue="1"
|
||||||
|
:unCheckedValue="0"
|
||||||
|
:disabled="true"
|
||||||
|
></a-switch>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -120,10 +136,15 @@ import { toDate } from "../../api/method";
|
|||||||
import {auditView} from "../../api/indexAudit";
|
import {auditView} from "../../api/indexAudit";
|
||||||
import {message} from "ant-design-vue";
|
import {message} from "ant-design-vue";
|
||||||
import * as api1 from "@/api/index1";
|
import * as api1 from "@/api/index1";
|
||||||
|
import ProjectLevel from "@/components/project/ProjectLevel";
|
||||||
|
import TrainClass from "@/components/project/TrainClass";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ProjectAudit",
|
name: "ProjectAudit",
|
||||||
components: {},
|
components: {
|
||||||
|
ProjectLevel,
|
||||||
|
TrainClass,
|
||||||
|
},
|
||||||
props: {
|
props: {
|
||||||
ProjAuditvisible: {
|
ProjAuditvisible: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@@ -182,7 +203,8 @@ export default {
|
|||||||
templateId: null, //未改
|
templateId: null, //未改
|
||||||
attach: null,
|
attach: null,
|
||||||
calssifyList: [],
|
calssifyList: [],
|
||||||
faceclassScene:[]
|
faceclassScene: [],
|
||||||
|
projectInfo: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
@@ -199,6 +221,7 @@ export default {
|
|||||||
projectId: props.chooseProject,
|
projectId: props.chooseProject,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
console.log("get task", res.data.data);
|
console.log("get task", res.data.data);
|
||||||
|
state.projectInfo = res.data.data.projectInfo;
|
||||||
let info = res.data.data.projectInfo;
|
let info = res.data.data.projectInfo;
|
||||||
let start = toDate(info.beginTime / 1000, "Y-M-D h:m");
|
let start = toDate(info.beginTime / 1000, "Y-M-D h:m");
|
||||||
let end = toDate(info.endTime / 1000, "Y-M-D h:m");
|
let end = toDate(info.endTime / 1000, "Y-M-D h:m");
|
||||||
|
|||||||
@@ -46,9 +46,15 @@ export default {
|
|||||||
watch(state.id, () => {
|
watch(state.id, () => {
|
||||||
ctx.emit('update:modelValue', state.id)
|
ctx.emit('update:modelValue', state.id)
|
||||||
})
|
})
|
||||||
onMounted(() => {
|
watch(props, () => {
|
||||||
state.options = [{id: props.modelValue, name: props.name}, ...store.state.orgtreeList]
|
if (props.modelValue !== state.id) {
|
||||||
|
state.id = props.modelValue
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
onMounted(() => {
|
||||||
|
state.options = [...store.state.orgtreeList]
|
||||||
|
})
|
||||||
|
|
||||||
function change(key, obj) {
|
function change(key, obj) {
|
||||||
ctx.emit('update:name', obj[0])
|
ctx.emit('update:name', obj[0])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,13 @@ export default {
|
|||||||
options: [],
|
options: [],
|
||||||
id: props.modelValue
|
id: props.modelValue
|
||||||
});
|
});
|
||||||
|
|
||||||
|
watch(props, () => {
|
||||||
|
if (props.modelValue !== state.id) {
|
||||||
|
state.id = props.modelValue
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
watch(state.id,()=>{
|
watch(state.id,()=>{
|
||||||
ctx.emit('update:modelValue',state.id)
|
ctx.emit('update:modelValue',state.id)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
</a-select>
|
</a-select>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {reactive, toRefs, watch} from "vue";
|
import {onMounted, reactive, toRefs, watch} from "vue";
|
||||||
import {scrollLoad} from "@/api/method";
|
import {scrollLoad, throttle} from "@/api/method";
|
||||||
import * as api1 from "@/api/index1";
|
import * as api1 from "@/api/index1";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -46,21 +46,36 @@ export default {
|
|||||||
loading: false,
|
loading: false,
|
||||||
init: false
|
init: false
|
||||||
});
|
});
|
||||||
|
const getMemberThrottle = throttle(getMember, 500)
|
||||||
|
|
||||||
watch(() => state.memberParam, getMember)
|
watch(() => state.memberParam, getMemberThrottle)
|
||||||
watch(() => props.value, init)
|
watch(props, init)
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
console.log('onMounted')
|
||||||
|
init()
|
||||||
|
})
|
||||||
|
|
||||||
function getMember() {
|
function getMember() {
|
||||||
state.loading = true
|
state.loading = true
|
||||||
|
state.options = []
|
||||||
|
getMemberData()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getMemberData() {
|
||||||
api1.getMemberInfo(state.memberParam).then((res) => {
|
api1.getMemberInfo(state.memberParam).then((res) => {
|
||||||
const list = res.data.data.rows.filter(e => !props.value?.includes(e.id + '')).map(e => ({
|
const list = res.data.data.rows.filter(e => !props.value?.includes(e.id + '')).map(e => ({
|
||||||
label: e.realName,
|
label: e.realName,
|
||||||
value: e.id
|
value: e.id
|
||||||
}));
|
}));
|
||||||
state.options.push(...list)
|
if (state.memberParam.pageNo === 1 && props.value) {
|
||||||
|
const arrManagerId = props.value.split(',')
|
||||||
|
const arrManager = props.name.split(',')
|
||||||
|
state.options = [...arrManager.map((e, i) => ({label: e, value: arrManagerId[i]})), ...list]
|
||||||
|
} else state.options.push(...list)
|
||||||
state.loading = false
|
state.loading = false
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const memberScroll = (e) => {
|
const memberScroll = (e) => {
|
||||||
@@ -77,14 +92,26 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
if (props.value && props.name) {
|
console.log('init--', props)
|
||||||
|
if (props.value !== state.managerArray.join(',')) {
|
||||||
|
if (props.value) {
|
||||||
const arrManager = props.name.split(',')
|
const arrManager = props.name.split(',')
|
||||||
const arrManagerId = props.value.split(',')
|
const arrManagerId = props.value.split(',')
|
||||||
state.managerArray = arrManagerId
|
state.managerArray = arrManagerId
|
||||||
state.options = arrManager.map((e, i) => ({label: e, value: arrManagerId[i]}))
|
state.options = arrManager.map((e, i) => ({label: e, value: arrManagerId[i]}))
|
||||||
state.init = true
|
} else {
|
||||||
|
state.managerArray = []
|
||||||
|
}
|
||||||
|
getMemberData()
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!props.value) {
|
||||||
|
if (!(state.options && state.options.length)) {
|
||||||
|
state.options = []
|
||||||
getMember()
|
getMember()
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function change(e, l) {
|
function change(e, l) {
|
||||||
|
|||||||
@@ -33,6 +33,14 @@ export default {
|
|||||||
watch(state.id, () => {
|
watch(state.id, () => {
|
||||||
ctx.emit('update:modelValue', state.id)
|
ctx.emit('update:modelValue', state.id)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
watch(props, () => {
|
||||||
|
if (props.modelValue !== state.id) {
|
||||||
|
state.id = props.modelValue
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
state.options = store.state.projectSys.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
|
state.options = store.state.projectSys.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -73,8 +73,8 @@
|
|||||||
<span style="margin-right: 3px">基础投票数:</span>
|
<span style="margin-right: 3px">基础投票数:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-upload @change="handleChange" :multiple="true" :max-count="1" action="/manageApi/vote/baseVoteupload"
|
<a-upload @change="handleChange" :before-upload="beforeUpload" :multiple="true" :max-count="1"
|
||||||
v-model:file-list="fileList">
|
action="/manageApi/vote/baseVoteupload" v-model:file-list="fileList">
|
||||||
<button class="xkbtn">点击上传</button></a-upload>
|
<button class="xkbtn">点击上传</button></a-upload>
|
||||||
<div v-if="voteCount > 0"><a-tag color="processing"> <span style="font-size:14px;line-height: 33px;">{{
|
<div v-if="voteCount > 0"><a-tag color="processing"> <span style="font-size:14px;line-height: 33px;">{{
|
||||||
voteCount
|
voteCount
|
||||||
@@ -218,7 +218,23 @@ export default {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 限制文件格式上传
|
||||||
|
const beforeUpload = (obj) => {
|
||||||
|
console.log(obj)
|
||||||
|
}
|
||||||
|
|
||||||
const handleChange = info => {
|
const handleChange = info => {
|
||||||
|
console.log(info.file.type, info.file.type.indexOf('sheet'))
|
||||||
|
if (info.file.type.indexOf('sheet') == -1) {
|
||||||
|
message.destroy()
|
||||||
|
message.error("请上传正确的文件格式")
|
||||||
|
|
||||||
|
console.log(state.fileList)
|
||||||
|
|
||||||
|
state.fileList = []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
let resFileList = [...info.fileList];
|
let resFileList = [...info.fileList];
|
||||||
|
|
||||||
|
|
||||||
@@ -401,6 +417,7 @@ export default {
|
|||||||
queryStem,
|
queryStem,
|
||||||
closeStem,
|
closeStem,
|
||||||
handleChange,
|
handleChange,
|
||||||
|
beforeUpload,
|
||||||
log,
|
log,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -67,10 +67,11 @@
|
|||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">重置</div>
|
<div class="btnText">重置</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn3" @click="openMessage">
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
|
<!-- <div class="btn btn3" @click="openMessage">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">导出</div>
|
<div class="btnText">导出</div>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="btn btn4" @click="of_hShow">
|
<div class="btn btn4" @click="of_hShow">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">新建课程</div>
|
<div class="btnText">新建课程</div>
|
||||||
@@ -612,9 +613,7 @@
|
|||||||
v-for="(item, index) in imgList"
|
v-for="(item, index) in imgList"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<div class="file_img">
|
<div class="file_img"></div>
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="file_detail">
|
<div class="file_detail">
|
||||||
<!-- <div class="file_name">
|
<!-- <div class="file_name">
|
||||||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
<span style="color: #6f6f6f">{{ item.name }}</span>
|
||||||
@@ -690,9 +689,10 @@
|
|||||||
<div class="btnText" @click="ft_exit">取消</div>
|
<div class="btnText" @click="ft_exit">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn6">
|
<div class="btn btn6">
|
||||||
<div v-if="(isEdit==0)" class="btnText" @click="handlePush">确定</div>
|
<div v-if="isEdit == 0" class="btnText" @click="handlePush">
|
||||||
|
确定
|
||||||
|
</div>
|
||||||
<div v-if="isEdit == 1" class="btnText">已保存</div>
|
<div v-if="isEdit == 1" class="btnText">已保存</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn6">
|
<div class="btn btn6">
|
||||||
<div class="btnText" @click="reviewClick">提交审核</div>
|
<div class="btnText" @click="reviewClick">提交审核</div>
|
||||||
@@ -1332,7 +1332,7 @@
|
|||||||
:tabBarStyle="{ marginLeft: '10px' }"
|
:tabBarStyle="{ marginLeft: '10px' }"
|
||||||
@change="faceManageChange"
|
@change="faceManageChange"
|
||||||
>
|
>
|
||||||
<a-tab-pane key="1" tab="报名管理">
|
<!-- <a-tab-pane key="1" tab="报名管理">
|
||||||
<div class="b_menunav">
|
<div class="b_menunav">
|
||||||
<div class="bm_select">
|
<div class="bm_select">
|
||||||
<a-select
|
<a-select
|
||||||
@@ -1347,14 +1347,7 @@
|
|||||||
@focus="focus"
|
@focus="focus"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
>
|
>
|
||||||
<!-- <a-select-option value="status">状态</a-select-option>
|
|
||||||
<a-select-option value="passed">已通过</a-select-option>
|
|
||||||
<a-select-option value="weishenhe">
|
|
||||||
未审核
|
|
||||||
</a-select-option>
|
|
||||||
<a-select-option value="reject">
|
|
||||||
管理员拒绝
|
|
||||||
</a-select-option> -->
|
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="bm_input">
|
<div class="bm_input">
|
||||||
@@ -1393,8 +1386,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-tab-pane>
|
</a-tab-pane> -->
|
||||||
<a-tab-pane key="2" tab="学习记录">
|
<a-tab-pane key="1" tab="学习记录">
|
||||||
<div class="b_menunav">
|
<div class="b_menunav">
|
||||||
<div class="bm_select">
|
<div class="bm_select">
|
||||||
<a-select
|
<a-select
|
||||||
@@ -1937,9 +1930,7 @@
|
|||||||
v-for="(item, index) in filesList"
|
v-for="(item, index) in filesList"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<div class="file_img">
|
<div class="file_img"></div>
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="file_detail">
|
<div class="file_detail">
|
||||||
<!-- <div class="file_name">
|
<!-- <div class="file_name">
|
||||||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
<span style="color: #6f6f6f">{{ item.name }}</span>
|
||||||
@@ -1993,8 +1984,6 @@
|
|||||||
<div class="cstm_btn btn6">
|
<div class="cstm_btn btn6">
|
||||||
<div v-if="addLoading" class="btnText">保存中</div>
|
<div v-if="addLoading" class="btnText">保存中</div>
|
||||||
<div v-else class="btnText" @click="handleSureStu">确定</div>
|
<div v-else class="btnText" @click="handleSureStu">确定</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2085,7 +2074,8 @@
|
|||||||
添加学员
|
添加学员
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stmm_btn btn4" @click="hideShow">
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
|
<!-- <div class="stmm_btn btn4" @click="hideShow">
|
||||||
<div class="btn4_sub">
|
<div class="btn4_sub">
|
||||||
<span style="color: #4ea6ff; margin-right: 4px">
|
<span style="color: #4ea6ff; margin-right: 4px">
|
||||||
批量操作
|
批量操作
|
||||||
@@ -2122,7 +2112,7 @@
|
|||||||
<div class="stmm_btn btn5" @click="handleExportStu">
|
<div class="stmm_btn btn5" @click="handleExportStu">
|
||||||
<div class="export"></div>
|
<div class="export"></div>
|
||||||
<div class="btnText">导出</div>
|
<div class="btnText">导出</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="stmm_i6">
|
<div class="stmm_i6">
|
||||||
@@ -2488,7 +2478,6 @@
|
|||||||
<div class="btnText" @click="agreereject_exit">取消</div>
|
<div class="btnText" @click="agreereject_exit">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="qrm_btn btn2">
|
<div class="qrm_btn btn2">
|
||||||
|
|
||||||
<div class="btnText" @click="handleAgreeTrue">确定</div>
|
<div class="btnText" @click="handleAgreeTrue">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2546,10 +2535,8 @@
|
|||||||
<div class="btnText" @click="delete_exit1">取消</div>
|
<div class="btnText" @click="delete_exit1">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2">
|
||||||
|
|
||||||
<div v-if="addLoading" class="btnText">保存中...</div>
|
<div v-if="addLoading" class="btnText">保存中...</div>
|
||||||
<div v-else class="btnText" @click="handleDeleteExit">确定</div>
|
<div v-else class="btnText" @click="handleDeleteExit">确定</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2612,7 +2599,6 @@
|
|||||||
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
||||||
<a-spin :spinning="addLoading" tip="保存中..." />
|
<a-spin :spinning="addLoading" tip="保存中..." />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
@@ -3090,25 +3076,25 @@ const columns7 = [
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: "结业状态",
|
// title: "结业状态",
|
||||||
width: 100,
|
// width: 100,
|
||||||
className: "h",
|
// className: "h",
|
||||||
dataIndex: "overstatus",
|
// dataIndex: "overstatus",
|
||||||
key: "overstatus",
|
// key: "overstatus",
|
||||||
fixed: "right",
|
// fixed: "right",
|
||||||
align: "center",
|
|
||||||
// key: "9",
|
|
||||||
// align: "center",
|
// align: "center",
|
||||||
// customRender: ({ record }) => {
|
// // key: "9",
|
||||||
// switch (String(record.source)) {
|
// // align: "center",
|
||||||
// case "0":
|
// // customRender: ({ record }) => {
|
||||||
// return "未结业";
|
// // switch (String(record.source)) {
|
||||||
// case "1":
|
// // case "0":
|
||||||
// return "已结业";
|
// // return "未结业";
|
||||||
// }
|
// // case "1":
|
||||||
|
// // return "已结业";
|
||||||
|
// // }
|
||||||
|
// // },
|
||||||
// },
|
// },
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
width: 100,
|
width: 100,
|
||||||
@@ -3383,7 +3369,6 @@ export default defineComponent({
|
|||||||
addStudentList: null, //选中列表
|
addStudentList: null, //选中列表
|
||||||
|
|
||||||
newCourseName: null, //新建开课名称
|
newCourseName: null, //新建开课名称
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const showStuAdd = () => {
|
const showStuAdd = () => {
|
||||||
@@ -4038,7 +4023,6 @@ export default defineComponent({
|
|||||||
for (const keyName of checkList) {
|
for (const keyName of checkList) {
|
||||||
if (!keyName) {
|
if (!keyName) {
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return count ? false : true;
|
return count ? false : true;
|
||||||
@@ -4077,8 +4061,22 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
files = files.slice(0, files.length - 1);
|
files = files.slice(0, files.length - 1);
|
||||||
console.log(files);
|
console.log(files);
|
||||||
let tid = (state.teacherId==null)?(state.qdms_inputV5 ? state.qdms_inputV5 : null):state.teacherId;
|
let tid =
|
||||||
console.log("state.teacherId==null",state.teacherId==null,"state.qdms_inputV5",state.qdms_inputV5,"state.teacherId",state.teacherId,"tid",tid);
|
state.teacherId == null
|
||||||
|
? state.qdms_inputV5
|
||||||
|
? state.qdms_inputV5
|
||||||
|
: null
|
||||||
|
: state.teacherId;
|
||||||
|
console.log(
|
||||||
|
"state.teacherId==null",
|
||||||
|
state.teacherId == null,
|
||||||
|
"state.qdms_inputV5",
|
||||||
|
state.qdms_inputV5,
|
||||||
|
"state.teacherId",
|
||||||
|
state.teacherId,
|
||||||
|
"tid",
|
||||||
|
tid
|
||||||
|
);
|
||||||
const postData = {
|
const postData = {
|
||||||
offcourseId: state.offcourseId, //不传代表新增
|
offcourseId: state.offcourseId, //不传代表新增
|
||||||
name: state.qdms_inputV1,
|
name: state.qdms_inputV1,
|
||||||
@@ -4144,7 +4142,6 @@ export default defineComponent({
|
|||||||
state.cstm_hs = true;
|
state.cstm_hs = true;
|
||||||
};
|
};
|
||||||
const handleCancelStu = () => {
|
const handleCancelStu = () => {
|
||||||
|
|
||||||
state.cstm_hs = false;
|
state.cstm_hs = false;
|
||||||
state.kk_eidt = false;
|
state.kk_eidt = false;
|
||||||
state.xjkkradioV1 = "";
|
state.xjkkradioV1 = "";
|
||||||
@@ -4158,7 +4155,6 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
//保存开课
|
//保存开课
|
||||||
const handleSureStu = () => {
|
const handleSureStu = () => {
|
||||||
|
|
||||||
let startTime,
|
let startTime,
|
||||||
endTime = 0;
|
endTime = 0;
|
||||||
if (state.xjkkinputV3) {
|
if (state.xjkkinputV3) {
|
||||||
@@ -4211,7 +4207,6 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
//编辑开课
|
//编辑开课
|
||||||
const handelEditStu = async (itm) => {
|
const handelEditStu = async (itm) => {
|
||||||
|
|
||||||
console.log(itm);
|
console.log(itm);
|
||||||
state.offcourseId = itm.offcourseId;
|
state.offcourseId = itm.offcourseId;
|
||||||
state.offcoursePlanId = itm.offcoursePlanId;
|
state.offcoursePlanId = itm.offcoursePlanId;
|
||||||
@@ -4234,8 +4229,8 @@ export default defineComponent({
|
|||||||
options4CurId.value = item.teacherId;
|
options4CurId.value = item.teacherId;
|
||||||
// (state.regisCom = item.completeType.split(",")[0] == "1" ? true : false),
|
// (state.regisCom = item.completeType.split(",")[0] == "1" ? true : false),
|
||||||
(state.signCom = item.completeType.split(",")[0] == "1" ? true : false),
|
(state.signCom = item.completeType.split(",")[0] == "1" ? true : false),
|
||||||
(state.comLeave = item.completeType.split(",")[1] == "1" ? true : false),
|
(state.comLeave =
|
||||||
|
item.completeType.split(",")[1] == "1" ? true : false),
|
||||||
(state.checked4 = item.evalFlag === 1 ? true : false);
|
(state.checked4 = item.evalFlag === 1 ? true : false);
|
||||||
state.xjkkinputV1 = item.name;
|
state.xjkkinputV1 = item.name;
|
||||||
if (item.signFlag === 1) {
|
if (item.signFlag === 1) {
|
||||||
@@ -4388,7 +4383,6 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
//确认复制
|
//确认复制
|
||||||
const handleAgreeTrue = async () => {
|
const handleAgreeTrue = async () => {
|
||||||
|
|
||||||
if (state.agreestudy_hs) {
|
if (state.agreestudy_hs) {
|
||||||
handleStudent({
|
handleStudent({
|
||||||
offcoursePlanId: state.offcoursePlanId,
|
offcoursePlanId: state.offcoursePlanId,
|
||||||
@@ -4409,7 +4403,6 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
getTableDate2();
|
getTableDate2();
|
||||||
delete_exit1();
|
delete_exit1();
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//确认复制课程
|
//确认复制课程
|
||||||
@@ -4447,7 +4440,6 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (state.copy_hs) {
|
if (state.copy_hs) {
|
||||||
console.log(2222222);
|
console.log(2222222);
|
||||||
@@ -4512,7 +4504,6 @@ export default defineComponent({
|
|||||||
getTableDate();
|
getTableDate();
|
||||||
delete_exit1();
|
delete_exit1();
|
||||||
rest();
|
rest();
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -4532,7 +4523,6 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
const handleDeleteKaike = (value) => {
|
const handleDeleteKaike = (value) => {
|
||||||
state.offcoursePlanId = value.offcoursePlanId;
|
state.offcoursePlanId = value.offcoursePlanId;
|
||||||
@@ -4603,7 +4593,6 @@ export default defineComponent({
|
|||||||
options4CurName.value = item.realName;
|
options4CurName.value = item.realName;
|
||||||
state.xjkkinputV4 = item.realName;
|
state.xjkkinputV4 = item.realName;
|
||||||
state.teacherId = item.id;
|
state.teacherId = item.id;
|
||||||
|
|
||||||
} else if (state.offcourseId) {
|
} else if (state.offcourseId) {
|
||||||
options4CurName.value = item.realName;
|
options4CurName.value = item.realName;
|
||||||
state.qdms_inputV5 = item.realName;
|
state.qdms_inputV5 = item.realName;
|
||||||
@@ -4623,7 +4612,6 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
//编辑面授课
|
//编辑面授课
|
||||||
const handleEdit = async (itm, type) => {
|
const handleEdit = async (itm, type) => {
|
||||||
|
|
||||||
state.isEdit = 0;
|
state.isEdit = 0;
|
||||||
console.log(45555);
|
console.log(45555);
|
||||||
console.log(itm);
|
console.log(itm);
|
||||||
@@ -4891,7 +4879,6 @@ export default defineComponent({
|
|||||||
rest();
|
rest();
|
||||||
getTableDate();
|
getTableDate();
|
||||||
state.addLoading = false;
|
state.addLoading = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -6869,7 +6856,8 @@ export default defineComponent({
|
|||||||
.stmm_btn {
|
.stmm_btn {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
margin-right: 14px;
|
// <!-- 2022-11-30注释 后面放开 -->
|
||||||
|
// margin-right: 14px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border: 1px solid #4ea6ff;
|
border: 1px solid #4ea6ff;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
|||||||
@@ -54,17 +54,9 @@
|
|||||||
v-model:value="valueDate"
|
v-model:value="valueDate"
|
||||||
style="border-radius: 8px; height: 40px; margin-left: 5px"
|
style="border-radius: 8px; height: 40px; margin-left: 5px"
|
||||||
:placeholder="[' 开始时间', ' 结束时间']"
|
:placeholder="[' 开始时间', ' 结束时间']"
|
||||||
@change="rankTimeChange"
|
valueFormat="X"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="inpbox1">-->
|
|
||||||
<!-- <a-select-->
|
|
||||||
<!-- v-model:value="valuestate"-->
|
|
||||||
<!-- placeholder="请选择审核状态"-->
|
|
||||||
<!-- @change="handleChangeproj"-->
|
|
||||||
<!-- :options="optionsproj"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- </div>-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tmplh_btn">
|
<div class="tmplh_btn">
|
||||||
@@ -149,8 +141,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {reactive, toRefs, onMounted} from "vue";
|
import {reactive, toRefs, onMounted} from "vue";
|
||||||
import { listView, auditList } from "../../api/indexAudit";
|
import {listView, auditList, auditlist, auditedlist} from "../../api/indexAudit";
|
||||||
import { toDate } from "@/api/method";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ProjectViewed",
|
name: "ProjectViewed",
|
||||||
@@ -180,8 +171,8 @@ export default {
|
|||||||
columns1: [
|
columns1: [
|
||||||
{
|
{
|
||||||
title: "序号",
|
title: "序号",
|
||||||
dataIndex: "number",
|
dataIndex: "projectId",
|
||||||
key: "number",
|
key: "projectId",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -193,8 +184,8 @@ export default {
|
|||||||
|
|
||||||
{
|
{
|
||||||
title: "所属项目",
|
title: "所属项目",
|
||||||
dataIndex: "sourceBelongName",
|
dataIndex: "topName",
|
||||||
key: "sourceBelongName",
|
key: "topName",
|
||||||
align: "center",
|
align: "center",
|
||||||
width: "10%",
|
width: "10%",
|
||||||
},
|
},
|
||||||
@@ -209,23 +200,24 @@ export default {
|
|||||||
dataIndex: "status",
|
dataIndex: "status",
|
||||||
key: "status",
|
key: "status",
|
||||||
align: "center",
|
align: "center",
|
||||||
|
customRender: ({record: {status}}) => <div>{{2: '审核通过', 3: '审核拒绝'}[status]}</div>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "创建人",
|
title: "创建人",
|
||||||
dataIndex: "creater",
|
dataIndex: "createName",
|
||||||
key: "creater",
|
key: "createName",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "审核时间",
|
title: "审核时间",
|
||||||
dataIndex: "time",
|
dataIndex: "updateTime",
|
||||||
key: "time",
|
key: "updateTime",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "审核说明",
|
title: "审核说明",
|
||||||
dataIndex: "msg",
|
dataIndex: "description",
|
||||||
key: "msg",
|
key: "description",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -239,7 +231,7 @@ export default {
|
|||||||
<div>
|
<div>
|
||||||
<span
|
<span
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showProjAuditModal(value.record.id);
|
showProjAuditModal(value.record.auditList);
|
||||||
}}
|
}}
|
||||||
style="cursor:pointer;color:#387DF7"
|
style="cursor:pointer;color:#387DF7"
|
||||||
>
|
>
|
||||||
@@ -254,23 +246,25 @@ export default {
|
|||||||
columnsAudit: [
|
columnsAudit: [
|
||||||
{
|
{
|
||||||
title: "审核人",
|
title: "审核人",
|
||||||
dataIndex: "name",
|
dataIndex: "createName",
|
||||||
key: "name",
|
key: "createName",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "审核状态",
|
title: "审核状态",
|
||||||
dataIndex: "belong",
|
dataIndex: "status",
|
||||||
key: "belong",
|
key: "status",
|
||||||
align: "center",
|
align: "center",
|
||||||
|
customRender: ({record: {status}}) => <div>{{'2': '审核通过', '-2': '审核拒绝'}[(status + '')]}</div>,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "审核时间",
|
title: "审核时间",
|
||||||
dataIndex: "time",
|
dataIndex: "createTime",
|
||||||
key: "time",
|
key: "createTime",
|
||||||
align: "center",
|
align: "center",
|
||||||
|
width: 220
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -286,124 +280,21 @@ export default {
|
|||||||
});
|
});
|
||||||
const getProjList = () => {
|
const getProjList = () => {
|
||||||
let objn = {
|
let objn = {
|
||||||
beginTime: state.valueDate == undefined ? "" : Date.parse(state.valueDate[0]) ,
|
beginTime: state.valueDate ? state.valueDate[0] : '',
|
||||||
endTime: state.valueDate == undefined ? "" : Date.parse(state.valueDate[1]),
|
endTime: state.valueDate ? state.valueDate[1] : '',
|
||||||
createName: state.valuecreater,
|
createName: state.valuecreater,
|
||||||
manager: state.valuename,
|
manager: state.valuename,
|
||||||
name: state.valueproj,
|
name: state.valueproj,
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
status: 0,
|
status: 1,
|
||||||
};
|
};
|
||||||
listView(objn)
|
auditedlist(objn).then((res) => {
|
||||||
.then((res) => {
|
|
||||||
console.log("获取已审核项目成功", res.data.data.rows);
|
|
||||||
let result = res.data.data;
|
let result = res.data.data;
|
||||||
state.total = res.data.data.total;
|
state.total = res.data.data.total;
|
||||||
setTableData(result.rows);
|
state.tableData1 = result.rows
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
|
||||||
console.log("获取已审核项目失败", err);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
const setTableData = (tabledata) => {
|
|
||||||
let data = tabledata;
|
|
||||||
let array = [];
|
|
||||||
data.map((item,index) => {
|
|
||||||
if(item.type == 3){
|
|
||||||
let obj = {
|
|
||||||
key:index+1,
|
|
||||||
number: item.projectId,
|
|
||||||
name: item.name,
|
|
||||||
belong: "",
|
|
||||||
manager: item.manager || "-",
|
|
||||||
sourceBelongName: item.sourceBelongName,
|
|
||||||
status:
|
|
||||||
item.status == 0
|
|
||||||
? "草稿"
|
|
||||||
: item.status == 1
|
|
||||||
? "已发布"
|
|
||||||
: item.status == 2
|
|
||||||
? "已结束"
|
|
||||||
: "-",
|
|
||||||
creater: item.createName,
|
|
||||||
time: toDate(item.beginTime, "Y-M-D h:m"),
|
|
||||||
msg: item.description || "-",
|
|
||||||
id: item.projectId,
|
|
||||||
};
|
|
||||||
array.push(obj);
|
|
||||||
} else {
|
|
||||||
let obj = {
|
|
||||||
key:index+1,
|
|
||||||
number: item.projectId,
|
|
||||||
name: item.name,
|
|
||||||
belong: "",
|
|
||||||
sourceBelongName: item.sourceBelongName,
|
|
||||||
manager: item.manager || "-",
|
|
||||||
status:
|
|
||||||
item.status == 0
|
|
||||||
? "草稿"
|
|
||||||
: item.status == 1
|
|
||||||
? "已发布"
|
|
||||||
: item.status == 2
|
|
||||||
? "已结束"
|
|
||||||
: "-",
|
|
||||||
creater: item.createName,
|
|
||||||
time: toDate(item.beginTime, "Y-M-D h:m"),
|
|
||||||
msg: item.description || "-",
|
|
||||||
id: item.projectId,
|
|
||||||
children: item.subList ? setTableData(item.subList) : [] ,
|
|
||||||
};
|
|
||||||
array.push(obj);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
state.tableData1 = array;
|
|
||||||
return array
|
|
||||||
};
|
|
||||||
// const getName = (item) => {
|
|
||||||
// if (
|
|
||||||
// Object.prototype.hasOwnProperty.call(item.subList[0], "name") &&
|
|
||||||
// !Object.prototype.hasOwnProperty.call(
|
|
||||||
// item.subList[0].subList[0],
|
|
||||||
// "name"
|
|
||||||
// )
|
|
||||||
// ) {
|
|
||||||
// // 两层
|
|
||||||
// return item.subList[0].name;
|
|
||||||
// } else if (
|
|
||||||
// Object.prototype.hasOwnProperty.call(item.subList[0], "name") &&
|
|
||||||
// Object.prototype.hasOwnProperty.call(item.subList[0].subList[0], "name")
|
|
||||||
// ) {
|
|
||||||
// //三层
|
|
||||||
// return item.subList[0].subList[0].name;
|
|
||||||
// // return item.name
|
|
||||||
// } else {
|
|
||||||
// // 单层
|
|
||||||
// return item.name;
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// const getBelong = (item) => {
|
|
||||||
// if (
|
|
||||||
// Object.prototype.hasOwnProperty.call(item.subList[0], "name") &&
|
|
||||||
// !Object.prototype.hasOwnProperty.call(
|
|
||||||
// item.subList[0].subList[0],
|
|
||||||
// "name"
|
|
||||||
// )
|
|
||||||
// ) {
|
|
||||||
// // 两层
|
|
||||||
// return item.name;
|
|
||||||
// } else if (
|
|
||||||
// Object.prototype.hasOwnProperty.call(item.subList[0], "name") &&
|
|
||||||
// Object.prototype.hasOwnProperty.call(item.subList[0].subList[0], "name")
|
|
||||||
// ) {
|
|
||||||
// //三层
|
|
||||||
// return item.subList[0].name + "/" + item.subList[0].subList[0].name;
|
|
||||||
// // return item.name
|
|
||||||
// } else {
|
|
||||||
// // 单层
|
|
||||||
// return item.name;
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
const changePagination = (pagina) => {
|
const changePagination = (pagina) => {
|
||||||
state.currentPage = pagina;
|
state.currentPage = pagina;
|
||||||
getProjList();
|
getProjList();
|
||||||
@@ -419,21 +310,9 @@ export default {
|
|||||||
const closeProjAuditModal = () => {
|
const closeProjAuditModal = () => {
|
||||||
state.projAuditModal = false;
|
state.projAuditModal = false;
|
||||||
};
|
};
|
||||||
const showProjAuditModal = (id) => {
|
const showProjAuditModal = (data) => {
|
||||||
|
state.tableDataAudit = data
|
||||||
state.projAuditModal = true;
|
state.projAuditModal = true;
|
||||||
auditList({
|
|
||||||
pageNo: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
project_id: id,
|
|
||||||
})
|
|
||||||
.then((res) => {
|
|
||||||
console.log("获取到了审核日志列表", res);
|
|
||||||
let result = res.data.data;
|
|
||||||
setAudit(result.rows);
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
console.log("审核日志列表获取失败", err);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
const setAudit = (table) => {
|
const setAudit = (table) => {
|
||||||
let data = table;
|
let data = table;
|
||||||
@@ -464,7 +343,6 @@ export default {
|
|||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
getProjList,
|
getProjList,
|
||||||
setTableData,
|
|
||||||
changePagination,
|
changePagination,
|
||||||
reset,
|
reset,
|
||||||
closeProjAuditModal,
|
closeProjAuditModal,
|
||||||
@@ -479,13 +357,16 @@ export default {
|
|||||||
.ant-modal {
|
.ant-modal {
|
||||||
width: 816px !important;
|
width: 816px !important;
|
||||||
min-height: 420px !important;
|
min-height: 420px !important;
|
||||||
|
|
||||||
.ant-modal-content {
|
.ant-modal-content {
|
||||||
width: 816px !important;
|
width: 816px !important;
|
||||||
min-height: 420px !important;
|
min-height: 420px !important;
|
||||||
|
|
||||||
.ant-modal-body {
|
.ant-modal-body {
|
||||||
width: 816px !important;
|
width: 816px !important;
|
||||||
min-height: 420px !important;
|
min-height: 420px !important;
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
|
|
||||||
.delete {
|
.delete {
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
width: 816px;
|
width: 816px;
|
||||||
@@ -506,15 +387,18 @@ export default {
|
|||||||
rgba(78, 166, 255, 0) 100%
|
rgba(78, 166, 255, 0) 100%
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
.del_main {
|
.del_main {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
padding-left: 26px;
|
padding-left: 26px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
@@ -522,6 +406,7 @@ export default {
|
|||||||
background-image: url(@/assets/images/taskpage/gan.png);
|
background-image: url(@/assets/images/taskpage/gan.png);
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.close_exit {
|
.close_exit {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 42px;
|
right: 42px;
|
||||||
@@ -532,6 +417,7 @@ export default {
|
|||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.body {
|
.body {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 34px auto 56px auto;
|
margin: 34px auto 56px auto;
|
||||||
@@ -541,9 +427,11 @@ export default {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
// background-color: red;
|
// background-color: red;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.ant-table-empty {
|
.ant-table-empty {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.back {
|
.back {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 30px;
|
top: 30px;
|
||||||
@@ -552,10 +440,12 @@ export default {
|
|||||||
color: #666666;
|
color: #666666;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.del_btnbox {
|
.del_btnbox {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin: 30px auto;
|
margin: 30px auto;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
.del_btn {
|
.del_btn {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
@@ -567,17 +457,20 @@ export default {
|
|||||||
|
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
.btnText {
|
.btnText {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn1 {
|
.btn1 {
|
||||||
border: 1px solid rgba(64, 158, 255, 1);
|
border: 1px solid rgba(64, 158, 255, 1);
|
||||||
color: #4ea6ff;
|
color: #4ea6ff;
|
||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn2 {
|
.btn2 {
|
||||||
background-color: #4ea6ff;
|
background-color: #4ea6ff;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
@@ -589,10 +482,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.projectviewed {
|
.projectviewed {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.tmpl {
|
.tmpl {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.tmpl_header {
|
.tmpl_header {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
@@ -601,33 +497,39 @@ export default {
|
|||||||
|
|
||||||
margin-left: 32px;
|
margin-left: 32px;
|
||||||
margin-right: 32px;
|
margin-right: 32px;
|
||||||
|
|
||||||
.tmplh_inp {
|
.tmplh_inp {
|
||||||
.inpbox {
|
.inpbox {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
margin-top: 42px;
|
margin-top: 42px;
|
||||||
|
|
||||||
.inpbox1 {
|
.inpbox1 {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-right: 24px;
|
margin-right: 24px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|
||||||
.ant-select-selector {
|
.ant-select-selector {
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
width: 270px;
|
width: 270px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tmplh_btn {
|
.tmplh_btn {
|
||||||
display: flex;
|
display: flex;
|
||||||
// margin-left: 38px;
|
// margin-left: 38px;
|
||||||
margin-top: 32px;
|
margin-top: 32px;
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
padding: 0px 26px 0px 26px;
|
padding: 0px 26px 0px 26px;
|
||||||
height: 38px;
|
height: 38px;
|
||||||
@@ -638,72 +540,90 @@ export default {
|
|||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btnText {
|
.btnText {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
line-height: 36px;
|
line-height: 36px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btnText1 {
|
.btnText1 {
|
||||||
color: rgb(255, 255, 255);
|
color: rgb(255, 255, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
.btnText2 {
|
.btnText2 {
|
||||||
color: rgba(64, 158, 255, 1);
|
color: rgba(64, 158, 255, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn1 {
|
.btn1 {
|
||||||
background: #409eff;
|
background: #409eff;
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
width: 15px;
|
width: 15px;
|
||||||
height: 17px;
|
height: 17px;
|
||||||
background-image: url("../../assets/images/courseManage/search0.png");
|
background-image: url("../../assets/images/courseManage/search0.png");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn2 {
|
.btn2 {
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border: 1px solid #388be1;
|
border: 1px solid #388be1;
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
background-image: url("../../assets/images/courseManage/reset1.png");
|
background-image: url("../../assets/images/courseManage/reset1.png");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn1:hover {
|
.btn1:hover {
|
||||||
background: rgb(255, 255, 255);
|
background: rgb(255, 255, 255);
|
||||||
border: 1px solid #388be1;
|
border: 1px solid #388be1;
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
background-image: url("../../assets/images/courseManage/search1.png");
|
background-image: url("../../assets/images/courseManage/search1.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
.btnText {
|
.btnText {
|
||||||
color: rgba(64, 158, 255, 1);
|
color: rgba(64, 158, 255, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn2:hover {
|
.btn2:hover {
|
||||||
background: rgba(64, 158, 255, 1);
|
background: rgba(64, 158, 255, 1);
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
background-image: url("../../assets/images/courseManage/reset0.png");
|
background-image: url("../../assets/images/courseManage/reset0.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
.btnText {
|
.btnText {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tmpl_body {
|
.tmpl_body {
|
||||||
padding: 0px 30px;
|
padding: 0px 30px;
|
||||||
|
|
||||||
.tmpl_tabbox {
|
.tmpl_tabbox {
|
||||||
.operation {
|
.operation {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
color: #4ea6ff;
|
color: #4ea6ff;
|
||||||
|
|
||||||
.nselect {
|
.nselect {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.jc {
|
.jc {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
@@ -712,6 +632,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.pa {
|
.pa {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|||||||
@@ -207,72 +207,6 @@ export default {
|
|||||||
console.log("获取待审核项目失败", err);
|
console.log("获取待审核项目失败", err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const setProjList = (tableData) => {
|
|
||||||
let data = tableData;
|
|
||||||
let array = [];
|
|
||||||
data.map((item, index) => {
|
|
||||||
if (item.type == 3) {
|
|
||||||
let obj = {
|
|
||||||
key: index + 1,
|
|
||||||
number: item.projectId,
|
|
||||||
name: item.name,
|
|
||||||
belong: item.parentId,
|
|
||||||
sourceBelongName: item.sourceBelongName,
|
|
||||||
manager: item.manager || "-",
|
|
||||||
status:
|
|
||||||
item.status == 0
|
|
||||||
? "草稿"
|
|
||||||
: item.status == 1
|
|
||||||
? "待审核"
|
|
||||||
: item.status == 2
|
|
||||||
? "通过"
|
|
||||||
: item.status == 3
|
|
||||||
? "发布"
|
|
||||||
: item.status == -1
|
|
||||||
? "已结束"
|
|
||||||
: item.status == -2
|
|
||||||
? "拒绝"
|
|
||||||
: "-",
|
|
||||||
creater: item.createName,
|
|
||||||
time: item.createTime,
|
|
||||||
projectId: item.projectId,
|
|
||||||
createId: item.createId,
|
|
||||||
};
|
|
||||||
array.push(obj);
|
|
||||||
} else {
|
|
||||||
let obj = {
|
|
||||||
key: index + 1,
|
|
||||||
number: item.projectId,
|
|
||||||
name: item.name,
|
|
||||||
belong: item.parentId,
|
|
||||||
sourceBelongName: item.sourceBelongName,
|
|
||||||
manager: item.manager || "-",
|
|
||||||
status:
|
|
||||||
item.status == 0
|
|
||||||
? "草稿"
|
|
||||||
: item.status == 1
|
|
||||||
? "待审核"
|
|
||||||
: item.status == 2
|
|
||||||
? "通过"
|
|
||||||
: item.status == 3
|
|
||||||
? "发布"
|
|
||||||
: item.status == -1
|
|
||||||
? "已结束"
|
|
||||||
: item.status == -2
|
|
||||||
? "拒绝"
|
|
||||||
: "-",
|
|
||||||
creater: item.createName,
|
|
||||||
time: item.createTime,
|
|
||||||
projectId: item.projectId,
|
|
||||||
createId: item.createId,
|
|
||||||
children: item.subList ? setProjList(item.subList) : [],
|
|
||||||
};
|
|
||||||
array.push(obj);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
state.tableData1 = array
|
|
||||||
return array
|
|
||||||
};
|
|
||||||
const changePagination = (pagina) => {
|
const changePagination = (pagina) => {
|
||||||
state.currentPage = pagina;
|
state.currentPage = pagina;
|
||||||
getProjList();
|
getProjList();
|
||||||
@@ -291,7 +225,6 @@ export default {
|
|||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
showProjAudit,
|
showProjAudit,
|
||||||
getProjList,
|
getProjList,
|
||||||
setProjList,
|
|
||||||
changePagination,
|
changePagination,
|
||||||
reset,
|
reset,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -336,7 +336,10 @@ export default {
|
|||||||
|
|
||||||
const classificationChange5 = (key, option) => {
|
const classificationChange5 = (key, option) => {
|
||||||
state.projectInfo = option
|
state.projectInfo = option
|
||||||
|
state.projectInfo.type = 3
|
||||||
|
state.projectInfo.rangeTime = [option.beginTime, option.endTime]
|
||||||
state.projectInfo.parentName = routers.query.parentName
|
state.projectInfo.parentName = routers.query.parentName
|
||||||
|
state.projectInfo.parentId = routers.query.parentId
|
||||||
};
|
};
|
||||||
//获取模版列表
|
//获取模版列表
|
||||||
const getTemplate = () => {
|
const getTemplate = () => {
|
||||||
|
|||||||
@@ -347,7 +347,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modalMain">
|
<div class="modalMain">
|
||||||
<router-link :to="`/projectadd?parentId=${projectInfo.parentId}&parentName=${projectInfo.parentName}`">
|
<router-link :to="`/projectadd?parentId=${projectInfo.parentId || ''}&parentName=${projectInfo.parentName || ''}`">
|
||||||
<div
|
<div
|
||||||
class="taskbox"
|
class="taskbox"
|
||||||
style="
|
style="
|
||||||
@@ -1342,7 +1342,7 @@ export default {
|
|||||||
编辑
|
编辑
|
||||||
</span>
|
</span>
|
||||||
: ''}
|
: ''}
|
||||||
{(value.record.status === 0 || value.record.status === -2) && value.record.type !== 1 ?
|
{(value.record.status === 0 || value.record.status === -2) && value.record.type === 3 ?
|
||||||
<span
|
<span
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showReviewModal(value.record.projectId);
|
showReviewModal(value.record.projectId);
|
||||||
@@ -1484,7 +1484,7 @@ export default {
|
|||||||
删除
|
删除
|
||||||
</div>
|
</div>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
{value.record.status === 3 || value.record.status === 2 ?
|
{value.record.type === 3 ?
|
||||||
<a-select-option value="存为模版" label="存为模版">
|
<a-select-option value="存为模版" label="存为模版">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@@ -1494,7 +1494,7 @@ export default {
|
|||||||
存为模版
|
存为模版
|
||||||
</div>
|
</div>
|
||||||
</a-select-option> : ''}
|
</a-select-option> : ''}
|
||||||
{value.record.status === 3 || value.record.status === 2 ?
|
{value.record.type === 3 ?
|
||||||
<a-select-option value="基础信息" label="基础信息">
|
<a-select-option value="基础信息" label="基础信息">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
|||||||
@@ -106,7 +106,7 @@
|
|||||||
<a-tab-pane key="1" tab="概览">
|
<a-tab-pane key="1" tab="概览">
|
||||||
<div class="split"></div>
|
<div class="split"></div>
|
||||||
<!-- 概览(无数据) -->
|
<!-- 概览(无数据) -->
|
||||||
<div style="display: none">
|
<div>
|
||||||
<div class="onerow">
|
<div class="onerow">
|
||||||
<div class="taskmain">快速创建项目详情</div>
|
<div class="taskmain">快速创建项目详情</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -149,7 +149,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="centermain">快速添加学员</div>
|
<div class="centermain">快速添加学员</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<!-- 2022-12-2注释 后面放开 -->
|
||||||
|
<!-- <div
|
||||||
class="taskbox"
|
class="taskbox"
|
||||||
@click="showModal"
|
@click="showModal"
|
||||||
style="background: linear-gradient(180deg, #e5f6ec, #eef9f3)"
|
style="background: linear-gradient(180deg, #e5f6ec, #eef9f3)"
|
||||||
@@ -167,12 +168,12 @@
|
|||||||
发布
|
发布
|
||||||
</div>
|
</div>
|
||||||
<div class="centermain">快速发布项目</div>
|
<div class="centermain">快速发布项目</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 概览(无数据) -->
|
<!-- 概览(无数据) -->
|
||||||
<!-- 概览(有数据) -->
|
<!-- 概览(有数据) -->
|
||||||
<div>
|
<div style="display: none">
|
||||||
<div class="onerow">
|
<div class="onerow">
|
||||||
<div class="taskmain">项目概览</div>
|
<div class="taskmain">项目概览</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -447,7 +448,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="operations">
|
<div class="operations">
|
||||||
<div
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
|
<!-- <div
|
||||||
class="operation"
|
class="operation"
|
||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
:style="{
|
:style="{
|
||||||
@@ -456,8 +458,8 @@
|
|||||||
@click="showFS"
|
@click="showFS"
|
||||||
>
|
>
|
||||||
学员
|
学员
|
||||||
</div>
|
</div> -->
|
||||||
<div
|
<!-- <div
|
||||||
class="operation"
|
class="operation"
|
||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
@click="showAA(item.name)"
|
@click="showAA(item.name)"
|
||||||
@@ -469,7 +471,7 @@
|
|||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
考勤
|
考勤
|
||||||
</div>
|
</div> -->
|
||||||
<div
|
<div
|
||||||
class="operation"
|
class="operation"
|
||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
@@ -477,7 +479,8 @@
|
|||||||
>
|
>
|
||||||
二维码
|
二维码
|
||||||
</div>
|
</div>
|
||||||
<div
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
|
<!-- <div
|
||||||
class="operation"
|
class="operation"
|
||||||
style="cursor: pointer; margin-right: 35px"
|
style="cursor: pointer; margin-right: 35px"
|
||||||
@click="
|
@click="
|
||||||
@@ -499,7 +502,7 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
管理
|
管理
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
@@ -804,29 +807,19 @@
|
|||||||
></a-tab-pane>
|
></a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="5" tab="项目积分" disabled>
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
|
<!-- <a-tab-pane key="5" tab="项目积分" disabled>
|
||||||
<ProjectScore :projectId="projectId"></ProjectScore>
|
<ProjectScore :projectId="projectId"></ProjectScore>
|
||||||
</a-tab-pane>
|
</a-tab-pane> -->
|
||||||
<a-tab-pane key="6" tab="排行榜" disabled>
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
|
<!-- <a-tab-pane key="6" tab="排行榜" disabled>
|
||||||
<div class="split"></div>
|
<div class="split"></div>
|
||||||
<div class="content6">
|
<div class="content6">
|
||||||
<div class="title">排行榜</div>
|
<div class="title">排行榜</div>
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<!-- <div class="name">
|
|
||||||
<div class="text">姓名:</div>
|
|
||||||
<a-input
|
|
||||||
v-model:value="valueName"
|
|
||||||
placeholder="请输入姓名"
|
|
||||||
style="
|
|
||||||
width: 264px;
|
|
||||||
height: 40px;
|
|
||||||
border-radius: 8px;
|
|
||||||
margin-left: 5px;
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
</div> -->
|
|
||||||
<div class="time">
|
<div class="time">
|
||||||
<div class="text">选择时间:</div>
|
<div class="text">选择时间:</div>
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
@@ -933,7 +926,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-tab-pane>
|
</a-tab-pane> -->
|
||||||
<a-tab-pane key="7" tab="设置">
|
<a-tab-pane key="7" tab="设置">
|
||||||
<div class="split"></div>
|
<div class="split"></div>
|
||||||
|
|
||||||
@@ -1684,7 +1677,7 @@ import SeeStu from "../../components/drawers/SeeStu";
|
|||||||
import ChangeGroup from "../../components/drawers/ChangeGroup";
|
import ChangeGroup from "../../components/drawers/ChangeGroup";
|
||||||
import NoticePub from "../../components/drawers/NoticePub";
|
import NoticePub from "../../components/drawers/NoticePub";
|
||||||
import NoticeHis from "../../components/drawers/NoticeHis";
|
import NoticeHis from "../../components/drawers/NoticeHis";
|
||||||
import ProjectScore from "../../components/drawers/ProjectScore";
|
// import ProjectScore from "../../components/drawers/ProjectScore";
|
||||||
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
||||||
import { storage } from "../../api/storage";
|
import { storage } from "../../api/storage";
|
||||||
import * as api from "../../api/index1";
|
import * as api from "../../api/index1";
|
||||||
@@ -1723,7 +1716,7 @@ export default {
|
|||||||
SeeStu,
|
SeeStu,
|
||||||
ChangeGroup,
|
ChangeGroup,
|
||||||
NoticePub,
|
NoticePub,
|
||||||
ProjectScore,
|
// ProjectScore,
|
||||||
TaskImpStu,
|
TaskImpStu,
|
||||||
projSet,
|
projSet,
|
||||||
NoticeHis,
|
NoticeHis,
|
||||||
|
|||||||
@@ -3,13 +3,16 @@
|
|||||||
<div class="managepage">
|
<div class="managepage">
|
||||||
<div class="up">
|
<div class="up">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div style="width: 100%">
|
<!-- 2022-11-30注释 后面放开 新增display: flex; justify-content: space-between 评估管理的div更改位置-->
|
||||||
<div class="export">
|
<div style="width: 100%; display: flex; justify-content: space-between">
|
||||||
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
|
<!-- <div class="export">
|
||||||
<img src="../../assets/images/research/export.png" />
|
<img src="../../assets/images/research/export.png" />
|
||||||
<span style="color: #4ea6ff; font-size: 14px; margin-left: 3px">
|
<span style="color: #4ea6ff; font-size: 14px; margin-left: 3px">
|
||||||
导出信息
|
导出信息
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div> -->
|
||||||
|
<div class="text">评估管理</div>
|
||||||
<router-link to="/researchmanage" class="goback">
|
<router-link to="/researchmanage" class="goback">
|
||||||
<span class="return"></span>
|
<span class="return"></span>
|
||||||
<router-link class="returntext" to="/researchmanage">
|
<router-link class="returntext" to="/researchmanage">
|
||||||
@@ -17,7 +20,7 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
<div class="text">评估管理</div>
|
<!-- <div class="text">评估管理</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="message">
|
<div class="message">
|
||||||
<div class="title">基本信息</div>
|
<div class="title">基本信息</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user