mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-09 10:56:46 +08:00
-- 添加学员
This commit is contained in:
2
.env
2
.env
@@ -3,6 +3,8 @@ VUE_APP_BASE_API=/manageApi
|
|||||||
VUE_APP_PROXY_URL=http://111.231.196.214:30001/
|
VUE_APP_PROXY_URL=http://111.231.196.214:30001/
|
||||||
VUE_APP_LOGIN_URL=https://u-pre.boe.com/web
|
VUE_APP_LOGIN_URL=https://u-pre.boe.com/web
|
||||||
|
|
||||||
|
VUE_APP_BOE_API_URL=https://u-pre.boe.com
|
||||||
|
|
||||||
|
|
||||||
VUE_APP_IFRAME_URL=https://u-pre.boe.com/pc/iframe
|
VUE_APP_IFRAME_URL=https://u-pre.boe.com/pc/iframe
|
||||||
VUE_APP_IFRAME_STUDENT_URL=https://u-pre.boe.com/pc/loading
|
VUE_APP_IFRAME_STUDENT_URL=https://u-pre.boe.com/pc/loading
|
||||||
|
|||||||
52
src/App.vue
52
src/App.vue
@@ -1,27 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="container" v-if="!isLogin">
|
<div id="container" v-if="!isLogin">
|
||||||
<nav-top />
|
<nav-top/>
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<nav-left />
|
<nav-left/>
|
||||||
<div style="flex: 1; display: flex; flex-direction: column; width: 0">
|
<div style="flex: 1; display: flex; flex-direction: column; width: 0">
|
||||||
<open-pages />
|
<open-pages/>
|
||||||
<bread-crumb />
|
<bread-crumb/>
|
||||||
<main>
|
<main>
|
||||||
<a-config-provider :locale="zhCN">
|
<a-config-provider :locale="zhCN">
|
||||||
<router-view />
|
<router-view/>
|
||||||
</a-config-provider>
|
</a-config-provider>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="container" v-if="isLogin">
|
<div id="container" v-if="isLogin">
|
||||||
<router-view />
|
<router-view/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { computed, defineComponent, ref } from "vue";
|
import {computed, defineComponent, ref} from "vue";
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import {useRouter, useRoute} from "vue-router";
|
||||||
import { useStore } from "vuex";
|
import {useStore} from "vuex";
|
||||||
import NavLeft from "@/components/NavLeft";
|
import NavLeft from "@/components/NavLeft";
|
||||||
import NavTop from "@/components/NavTop";
|
import NavTop from "@/components/NavTop";
|
||||||
import OpenPages from "@/components/OpenPages";
|
import OpenPages from "@/components/OpenPages";
|
||||||
@@ -78,7 +78,7 @@ export default defineComponent({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const memberInitInfo = await api1
|
const memberInitInfo = await api1
|
||||||
.getMemberInfo({ keyWord: "", pageNo: 1, pageSize: 10 })
|
.getMemberInfo({keyWord: "", pageNo: 1, pageSize: 10})
|
||||||
.then((res) => res.data.data.rows);
|
.then((res) => res.data.data.rows);
|
||||||
store.commit("SET_MEMBER_INFO", memberInitInfo);
|
store.commit("SET_MEMBER_INFO", memberInitInfo);
|
||||||
localStorage.setItem("memberInitInfo", JSON.stringify(memberInitInfo));
|
localStorage.setItem("memberInitInfo", JSON.stringify(memberInitInfo));
|
||||||
@@ -94,13 +94,13 @@ export default defineComponent({
|
|||||||
if (localStory) {
|
if (localStory) {
|
||||||
list = localStorage.getItem(key);
|
list = localStorage.getItem(key);
|
||||||
if (list) {
|
if (list) {
|
||||||
store.commit("SET_DICT", { key, data: JSON.parse(list) });
|
store.commit("SET_DICT", {key, data: JSON.parse(list)});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
list = await getDictList(key);
|
list = await getDictList(key);
|
||||||
localStory && localStorage.setItem(key, JSON.stringify(list));
|
localStory && localStorage.setItem(key, JSON.stringify(list));
|
||||||
store.commit("SET_DICT", { key, data: list });
|
store.commit("SET_DICT", {key, data: list});
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDictList = (param) =>
|
const getDictList = (param) =>
|
||||||
@@ -199,6 +199,34 @@ export default defineComponent({
|
|||||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cus-btn {
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-right: 16px;
|
||||||
|
border: 1px solid #4ea6ff;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #4ea6ff;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white {
|
||||||
|
background: #fff;
|
||||||
|
color: #4ea6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cus-input {
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.cus-select{
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
// @media screen and (max-width: 1366px) {
|
// @media screen and (max-width: 1366px) {
|
||||||
// .cmMain {
|
// .cmMain {
|
||||||
// width: 750px;
|
// width: 750px;
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
export const BASE = 'https://pre.boe.com'
|
|
||||||
export const BASE_DEV = 'https://u-pre.boe.com'
|
|
||||||
|
|
||||||
export const USER_LIST = '/userbasic/user/list post'
|
export const USER_LIST = '/userbasic/user/list post'
|
||||||
export const ORG_LIST = '/userbasic/org/list post'
|
export const ORG_LIST = '/userbasic/org/list post'
|
||||||
export const ORG_CHILD_LIST = '/userbasic/org/info post'
|
export const ORG_CHILD_LIST = '/userbasic/org/info post'
|
||||||
|
|
||||||
export const AUDIENCE_LIST = '/userbasic/audience/list post'
|
export const AUDIENCE_LIST = '/userbasic/audience/list post'
|
||||||
@@ -131,6 +131,8 @@ export const addStudentCourse = (obj) => http.post("/admin/offcourse/addStudent"
|
|||||||
// 获取组织结构树
|
// 获取组织结构树
|
||||||
export const orgtree = () => http.get("/org/tree");
|
export const orgtree = () => http.get("/org/tree");
|
||||||
export const saveStu = obj => http.post("/admin/student/addStudent", obj);
|
export const saveStu = obj => http.post("/admin/student/addStudent", obj);
|
||||||
|
export const getStuPage = obj => http.get("/admin/student/getStudent", {params: obj});
|
||||||
|
export const delStudentList = obj => http.post("/admin/student/delStudent", obj);
|
||||||
export const validateName = obj => http.post("/admin/validate/validateName", obj);
|
export const validateName = obj => http.post("/admin/validate/validateName", obj);
|
||||||
|
|
||||||
//获取积分列表
|
//获取积分列表
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ export function useRequest(_url, params = {}, init = true) {
|
|||||||
export async function request(_url, params) {
|
export async function request(_url, params) {
|
||||||
const s = _url.split(' ')
|
const s = _url.split(' ')
|
||||||
let url = s[0]
|
let url = s[0]
|
||||||
const method = s[1] || 'get'
|
const method = s[1]?.toLowerCase() || 'get'
|
||||||
if (method === 'get') {
|
if (method === 'get') {
|
||||||
let paramsArray = [];
|
let paramsArray = [];
|
||||||
//拼接参数
|
//拼接参数
|
||||||
|
|||||||
@@ -1,187 +1,195 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-drawer
|
<div>
|
||||||
:visible="visiableState"
|
<a-drawer
|
||||||
class="drawerStyle ProjCheckship"
|
:visible="visiable"
|
||||||
placement="right"
|
class="drawerStyle ProjCheckship"
|
||||||
width="45%"
|
placement="right"
|
||||||
>
|
width="45%"
|
||||||
<div class="drawerMain" id="ProjCheckship">
|
>
|
||||||
<div class="header">
|
<div class="drawerMain" id="ProjCheckship">
|
||||||
<div class="headerTitle">
|
<div class="header">
|
||||||
{{ {1: '查看权', 2: '管理权', 3: '添加学员'}[type] || '' }}
|
<div class="headerTitle">
|
||||||
|
{{ {1: '添加学员', 2: '添加学员', 3: '添加学员'}[type] || '' }}
|
||||||
|
</div>
|
||||||
|
<img
|
||||||
|
style="width: 29px; height: 29px; cursor: pointer"
|
||||||
|
src="../../assets/images/basicinfo/close.png"
|
||||||
|
@click="closeDrawer"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<img
|
<div style="width:100%;display: grid;grid-template-columns: 750px auto;">
|
||||||
style="width: 29px; height: 29px; cursor: pointer"
|
<div class="tabs">
|
||||||
src="../../assets/images/basicinfo/close.png"
|
<a-tabs v-model:activeKey="activeKey">
|
||||||
@click="closeDrawer"
|
<a-tab-pane :key="1" tab="快速选人">
|
||||||
/>
|
<div :style="{ height: screenHeight - 235 + 'px' }">
|
||||||
</div>
|
<div class="tab1">
|
||||||
<div style="width:100%;display: grid;grid-template-columns: 750px auto;">
|
<a-form-item label="姓名">
|
||||||
<div class="tabs">
|
<a-input
|
||||||
<a-tabs v-model:activeKey="activeKey">
|
v-model:value="nameSearch.keyword"
|
||||||
<a-tab-pane :key="1" tab="快速选人">
|
style="width: 270px; height: 40px; border-radius: 8px"
|
||||||
<div :style="{ height: screenHeight - 235 + 'px' }">
|
placeholder="请输入姓名"
|
||||||
<div class="tab1">
|
/>
|
||||||
<a-form-item label="姓名">
|
<a-button type="primary" @click="onSearchStu" style="margin-left: 20px;border-radius: 4px">
|
||||||
<a-input
|
<template #icon>
|
||||||
v-model:value="nameSearch.keyword"
|
<SearchOutlined/>
|
||||||
style="width: 270px; height: 40px; border-radius: 8px"
|
</template>
|
||||||
placeholder="请输入姓名"
|
搜索
|
||||||
/>
|
</a-button>
|
||||||
<a-button type="primary" @click="onSearchStu" style="margin-left: 20px;border-radius: 4px">
|
<a-button @click="resetStu" style="margin-left: 20px;border-radius: 4px">重置</a-button>
|
||||||
<template #icon>
|
</a-form-item>
|
||||||
<SearchOutlined/>
|
</div>
|
||||||
</template>
|
<div class="chooseLeft" style="display: grid;grid-template-columns: 250px auto">
|
||||||
搜索
|
<div :style="{ height: screenHeight - 235 + 'px' ,overflowY:'auto'}">
|
||||||
</a-button>
|
<a-tree
|
||||||
<a-button @click="resetStu" style="margin-left: 20px;border-radius: 4px">重置</a-button>
|
allow-clear
|
||||||
</a-form-item>
|
tree-default-expand-all
|
||||||
|
:tree-data="treeData"
|
||||||
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
key: 'id',
|
||||||
|
title: 'name',
|
||||||
|
value: 'name',
|
||||||
|
}"
|
||||||
|
@select="stuStuOrgSelect"
|
||||||
|
>
|
||||||
|
</a-tree>
|
||||||
|
</div>
|
||||||
|
<div class="tableBox tabb">
|
||||||
|
<a-table
|
||||||
|
:columns="stuColumns"
|
||||||
|
:data-source="stuData"
|
||||||
|
:pagination="stuPagination"
|
||||||
|
:loading="stuLoading"
|
||||||
|
row-key="id"
|
||||||
|
:row-selection="stuRowSelection"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="chooseLeft" style="display: grid;grid-template-columns: 250px auto">
|
</a-tab-pane>
|
||||||
<div :style="{ height: screenHeight - 235 + 'px' ,overflowY:'auto'}">
|
<a-tab-pane :key="2" tab="添加组织">
|
||||||
|
<div
|
||||||
|
:style="{ height: screenHeight - 235 + 'px' }"
|
||||||
|
>
|
||||||
|
<div class="tab2">
|
||||||
|
<a-form-item label="组织:">
|
||||||
|
<a-input
|
||||||
|
v-model:value="searchOrgName.keyword"
|
||||||
|
style="width: 230px; height: 40px; border-radius: 8px"
|
||||||
|
placeholder="请输入组织"
|
||||||
|
/>
|
||||||
|
<a-button type="primary" @click="searchOrg" style="margin-left: 20px;border-radius: 4px">
|
||||||
|
<template #icon>
|
||||||
|
<SearchOutlined/>
|
||||||
|
</template>
|
||||||
|
搜索
|
||||||
|
</a-button>
|
||||||
|
<a-button @click="resetOrg" style="margin-left: 20px;border-radius: 4px">重置</a-button>
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
<div class="boeTree">
|
||||||
<a-tree
|
<a-tree
|
||||||
allow-clear
|
:tree-data="searchOrgName.keyword ? orgData : treeData"
|
||||||
tree-default-expand-all
|
@select="onOrgSelectChange"
|
||||||
:tree-data="treeData"
|
|
||||||
:fieldNames="{
|
:fieldNames="{
|
||||||
children: 'treeChildList',
|
children: 'treeChildList',
|
||||||
key: 'id',
|
key: 'id',
|
||||||
title: 'name',
|
title: 'name',
|
||||||
value: 'name',
|
value: 'name',
|
||||||
}"
|
}"
|
||||||
@select="stuStuOrgSelect"
|
row-key="id"
|
||||||
|
:row-selection="orgRowSelection"
|
||||||
|
multiple
|
||||||
>
|
>
|
||||||
</a-tree>
|
</a-tree>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane :key="3" tab="受众关联">
|
||||||
|
<div
|
||||||
|
:style="{ height: screenHeight - 235 + 'px' }"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<a-form-item label="受众名称:">
|
||||||
|
<a-input
|
||||||
|
v-model:value="audienceName.keyword"
|
||||||
|
style="width: 260px; height: 40px; border-radius: 8px"
|
||||||
|
placeholder="请输入受众名称"
|
||||||
|
/>
|
||||||
|
<a-button type="primary" @click="searchAudi" style="margin-left: 20px;border-radius: 4px">
|
||||||
|
<template #icon>
|
||||||
|
<SearchOutlined/>
|
||||||
|
</template>
|
||||||
|
搜索
|
||||||
|
</a-button>
|
||||||
|
<a-button @click="resetAudienceInfo" style="margin-left: 20px;border-radius: 4px">重置</a-button>
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
<div class="tableBox tabb">
|
<div class="tableBox tabb">
|
||||||
<a-table
|
<a-table
|
||||||
:columns="stuColumns"
|
style="border: 1px solid #f2f6fe"
|
||||||
:data-source="stuData"
|
|
||||||
:pagination="stuPagination"
|
|
||||||
:loading="stuLoading"
|
|
||||||
row-key="id"
|
row-key="id"
|
||||||
:row-selection="stuRowSelection"
|
:columns="audiColums"
|
||||||
|
:data-source="audiData"
|
||||||
|
:loading="audiLoading"
|
||||||
|
:pagination="auditPagination"
|
||||||
|
:row-selection="auditRowSelection"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</a-tab-pane>
|
||||||
</a-tab-pane>
|
</a-tabs>
|
||||||
<a-tab-pane :key="2" tab="添加组织">
|
|
||||||
<div
|
|
||||||
:style="{ height: screenHeight - 235 + 'px' }"
|
|
||||||
>
|
|
||||||
<div class="tab2">
|
|
||||||
<a-form-item label="组织:">
|
|
||||||
<a-input
|
|
||||||
v-model:value="searchOrgName.keyword"
|
|
||||||
style="width: 230px; height: 40px; border-radius: 8px"
|
|
||||||
placeholder="请输入组织"
|
|
||||||
/>
|
|
||||||
<a-button type="primary" @click="searchOrg" style="margin-left: 20px;border-radius: 4px">
|
|
||||||
<template #icon>
|
|
||||||
<SearchOutlined/>
|
|
||||||
</template>
|
|
||||||
搜索
|
|
||||||
</a-button>
|
|
||||||
<a-button @click="resetOrg" style="margin-left: 20px;border-radius: 4px">重置</a-button>
|
|
||||||
</a-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="boeTree">
|
|
||||||
<a-tree
|
|
||||||
:tree-data="searchOrgName.keyword ? orgData : treeData"
|
|
||||||
@select="onOrgSelectChange"
|
|
||||||
:fieldNames="{
|
|
||||||
children: 'treeChildList',
|
|
||||||
key: 'id',
|
|
||||||
title: 'name',
|
|
||||||
value: 'name',
|
|
||||||
}"
|
|
||||||
row-key="id"
|
|
||||||
:row-selection="orgRowSelection"
|
|
||||||
multiple
|
|
||||||
>
|
|
||||||
</a-tree>
|
|
||||||
<!-- <div>-->
|
|
||||||
<!-- <a-table-->
|
|
||||||
<!-- :columns="stuColumns"-->
|
|
||||||
<!-- :data-source="stuData"-->
|
|
||||||
<!-- :pagination="stuPagination"-->
|
|
||||||
<!-- :loading="orgLoading"-->
|
|
||||||
<!-- row-key="id"-->
|
|
||||||
<!-- :row-selection="stuRowSelection"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- </div>-->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a-tab-pane>
|
|
||||||
<a-tab-pane :key="3" tab="受众关联">
|
|
||||||
<div
|
|
||||||
:style="{ height: screenHeight - 235 + 'px' }"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<a-form-item label="受众名称:">
|
|
||||||
<a-input
|
|
||||||
v-model:value="audienceName.keyword"
|
|
||||||
style="width: 260px; height: 40px; border-radius: 8px"
|
|
||||||
placeholder="请输入受众名称"
|
|
||||||
/>
|
|
||||||
<a-button type="primary" @click="searchAudi" style="margin-left: 20px;border-radius: 4px">
|
|
||||||
<template #icon>
|
|
||||||
<SearchOutlined/>
|
|
||||||
</template>
|
|
||||||
搜索
|
|
||||||
</a-button>
|
|
||||||
<a-button @click="resetAudienceInfo" style="margin-left: 20px;border-radius: 4px">重置</a-button>
|
|
||||||
</a-form-item>
|
|
||||||
</div>
|
|
||||||
<div class="tableBox tabb">
|
|
||||||
<a-table
|
|
||||||
style="border: 1px solid #f2f6fe"
|
|
||||||
row-key="id"
|
|
||||||
:columns="audiColums"
|
|
||||||
:data-source="audiData"
|
|
||||||
:loading="audiLoading"
|
|
||||||
:pagination="auditPagination"
|
|
||||||
:row-selection="auditRowSelection"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a-tab-pane>
|
|
||||||
</a-tabs>
|
|
||||||
</div>
|
|
||||||
<div style="padding:100px 0 0 20px;display: grid;grid-template-rows: auto auto auto;">
|
|
||||||
<div>
|
|
||||||
<div style="margin-top: 20px">快速选人</div>
|
|
||||||
<a-tag :closable="true" color="#4ea6ff" @close="stuDel(i)" v-for="(item,i) in selectsData.studentList"
|
|
||||||
:key="i" style="margin-top:20px">
|
|
||||||
{{ item.realName }}
|
|
||||||
</a-tag>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div style="padding:100px 0 0 20px;display: grid;grid-template-rows: auto auto auto;">
|
||||||
<div style="margin-top: 20px">组织添加</div>
|
<div>
|
||||||
<a-tag :closable="true" color="#4ea6ff" @close="orgDel(i)" v-for="(item,i) in selectsData.deptList" :key="i"
|
<div style="margin-top: 20px">快速选人</div>
|
||||||
style="margin-top:20px">
|
<a-tag :closable="true" color="#4ea6ff" @close="stuDel(i)" v-for="(item,i) in selectsData.studentList"
|
||||||
{{ item.name }}
|
:key="i" style="margin-top:20px">
|
||||||
</a-tag>
|
{{ item.realName }}
|
||||||
</div>
|
</a-tag>
|
||||||
<div>
|
</div>
|
||||||
<div style="margin-top: 20px">受众添加</div>
|
<div>
|
||||||
<a-tag :closable="true" color="#4ea6ff" @close="AuditDel(i)" v-for="(item,i) in selectsData.groupList"
|
<div style="margin-top: 20px">组织添加</div>
|
||||||
:key="i" style="margin-top:20px">
|
<a-tag :closable="true" color="#4ea6ff" @close="orgDel(i)" v-for="(item,i) in selectsData.deptList"
|
||||||
{{ item.audienceName }}
|
:key="i"
|
||||||
</a-tag>
|
style="margin-top:20px">
|
||||||
|
{{ item.name }}
|
||||||
|
</a-tag>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div style="margin-top: 20px">受众添加</div>
|
||||||
|
<a-tag :closable="true" color="#4ea6ff" @close="AuditDel(i)" v-for="(item,i) in selectsData.groupList"
|
||||||
|
:key="i" style="margin-top:20px">
|
||||||
|
{{ item.audienceName }}
|
||||||
|
</a-tag>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="btnn">
|
||||||
|
<button class="btn1" @click="closeDrawer">取消</button>
|
||||||
|
<button class="btn2" @click="submitAuth">确定</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn">
|
</a-drawer>
|
||||||
<button class="btn1" @click="closeDrawer">取消</button>
|
<div @click="openDrawer">
|
||||||
<button class="btn2" @click="submitAuth">确定</button>
|
<slot></slot>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</div>
|
||||||
|
<a-modal v-model:visible="stageVisible" width="1000px" title="选择阶段" @ok="handleStageOk">
|
||||||
|
<div>
|
||||||
|
{{ type === 1 ? '选择阶段' : '选择关卡' }}
|
||||||
|
<a-select style="width: 150px" :placeholder="type===1?'选择阶段':'选择关卡'" v-model:value="selectsData.stageId"
|
||||||
|
className="cus-select">
|
||||||
|
<a-select-option v-for="(item,i) in stageIds" :key="i" :value="item.id">{{
|
||||||
|
item.name || '默认'
|
||||||
|
}}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {computed, defineEmits, defineProps, onMounted, ref} from "vue";
|
import {computed, defineEmits, defineProps, ref, watch} from "vue";
|
||||||
import {useStore} from "vuex";
|
import {useStore} from "vuex";
|
||||||
import {useBoeApi, useBoeApiPage} from "@/api/request";
|
import {useBoeApi, useBoeApiPage} from "@/api/request";
|
||||||
import {AUDIENCE_LIST, ORG_LIST, USER_LIST} from "@/api/ThirdApi";
|
import {AUDIENCE_LIST, ORG_LIST, USER_LIST} from "@/api/ThirdApi";
|
||||||
@@ -191,16 +199,17 @@ const store = useStore();
|
|||||||
const emit = defineEmits({})
|
const emit = defineEmits({})
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
type: Number,
|
type: Number,
|
||||||
visiable: {
|
id: String,
|
||||||
type: Boolean,
|
stage: {
|
||||||
default: false
|
type: Array,
|
||||||
},
|
default: () => []
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
const visiable = ref(false)
|
||||||
const visiableState = computed(() => props.visiable)
|
|
||||||
|
|
||||||
const activeKey = ref(1)
|
const activeKey = ref(1)
|
||||||
|
const stageVisible = ref(false)
|
||||||
const selectsData = ref({
|
const selectsData = ref({
|
||||||
|
stageId: '',
|
||||||
studentList: [],
|
studentList: [],
|
||||||
deptList: [],
|
deptList: [],
|
||||||
groupList: []
|
groupList: []
|
||||||
@@ -222,6 +231,8 @@ const searchOrgName = ref({
|
|||||||
pageSize: 10
|
pageSize: 10
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const stageIds = computed(() => props.stage)
|
||||||
|
|
||||||
const {
|
const {
|
||||||
data: stuData,
|
data: stuData,
|
||||||
fetch: searchStu,
|
fetch: searchStu,
|
||||||
@@ -250,7 +261,7 @@ const {
|
|||||||
total: audiTotal
|
total: audiTotal
|
||||||
} = useBoeApiPage(AUDIENCE_LIST, audienceName.value, {
|
} = useBoeApiPage(AUDIENCE_LIST, audienceName.value, {
|
||||||
init: true,
|
init: true,
|
||||||
result: res => res.result.audienceList,
|
result: res => res.result.audienceList.map(e => ({...e, id: e.id + ''})),
|
||||||
totalPage: res => res.result.totalPage,
|
totalPage: res => res.result.totalPage,
|
||||||
total: res => res.result.totalElement
|
total: res => res.result.totalElement
|
||||||
})
|
})
|
||||||
@@ -367,11 +378,11 @@ const auditRowSelection = computed(() => ({
|
|||||||
preserveSelectedRowKeys: true,
|
preserveSelectedRowKeys: true,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
});
|
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
|
visiable.value = false
|
||||||
|
};
|
||||||
|
const openDrawer = () => {
|
||||||
|
visiable.value = true
|
||||||
};
|
};
|
||||||
//获取组织树
|
//获取组织树
|
||||||
const treeData = computed(() => {
|
const treeData = computed(() => {
|
||||||
@@ -397,6 +408,7 @@ function AuditDel(i) {
|
|||||||
auditSelectKeys.value = auditSelectKeys.value.filter(e => e !== selectsData.value.groupList[i].id)
|
auditSelectKeys.value = auditSelectKeys.value.filter(e => e !== selectsData.value.groupList[i].id)
|
||||||
selectsData.value.groupList.splice(i, 1)
|
selectsData.value.groupList.splice(i, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// function orgSelect(key, obj) {
|
// function orgSelect(key, obj) {
|
||||||
// console.log(obj)
|
// console.log(obj)
|
||||||
@@ -432,8 +444,6 @@ const changePagination = (page) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const auditChangePagination = (page) => {
|
const auditChangePagination = (page) => {
|
||||||
console.log(1111111111)
|
|
||||||
console.log(page)
|
|
||||||
audienceName.value.page = page;
|
audienceName.value.page = page;
|
||||||
searchAudi()
|
searchAudi()
|
||||||
};
|
};
|
||||||
@@ -468,14 +478,50 @@ const resetAudienceInfo = () => {
|
|||||||
// };
|
// };
|
||||||
//确定添加授权
|
//确定添加授权
|
||||||
const submitAuth = () => {
|
const submitAuth = () => {
|
||||||
emit('update:visiable', false)
|
if (props.type !== 3) {
|
||||||
saveStu(selectsData.value)
|
stageVisible.value = true
|
||||||
|
} else {
|
||||||
|
handleStageOk()
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function handleStageOk() {
|
||||||
|
stageVisible.value = false
|
||||||
|
visiable.value = false
|
||||||
|
emit('finash', false)
|
||||||
|
saveStu({
|
||||||
|
targetId: props.id,
|
||||||
|
type: props.type,
|
||||||
|
deptIds: selectsData.value.deptList?.map(e => e.id),
|
||||||
|
stageId: selectsData.value.stageId,
|
||||||
|
groupIds: selectsData.value.groupList?.map(e => e.id),
|
||||||
|
studentList: selectsData.value.studentList
|
||||||
|
}).then(() => {
|
||||||
|
emit('finash', true)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(visiable, () => {
|
||||||
|
stuSelectKeys.value = []
|
||||||
|
orgSelectKeys.value = []
|
||||||
|
auditSelectKeys.value = []
|
||||||
|
selectsData.value = {
|
||||||
|
stageId: '',
|
||||||
|
studentList: [],
|
||||||
|
deptList: [],
|
||||||
|
groupList: []
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.ant-btn-primary {
|
.ant-btn-primary {
|
||||||
background-color: #4ea6ff !important;
|
background-color: #4ea6ff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cus-select {
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
213
src/components/student/TableStudent.vue
Normal file
213
src/components/student/TableStudent.vue
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-row type="flex" gutter="12" style="padding-left: 20px">
|
||||||
|
<a-col>
|
||||||
|
<a-form-item title="姓名:" @click="getStuList">
|
||||||
|
<a-input class="cus-input" v-model:value="tableParam.studentName" placeholder="请输入姓名"/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col>
|
||||||
|
<a-button class="cus-btn" style="width: 100px">
|
||||||
|
<template #icon>
|
||||||
|
<img style="margin-right: 10px" src="../../assets/images/courseManage/search0.png"/></template>
|
||||||
|
搜索
|
||||||
|
</a-button>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="2">
|
||||||
|
<a-button class="cus-btn white" style="width: 100px" @click="reset">重置</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
|
<a-row type="flex" gutter="12" style="padding-left: 20px">
|
||||||
|
<a-col :span="1.5">
|
||||||
|
<CommonStudent :type="type" :id="id" @finash="submitCall" :stage="stage">
|
||||||
|
<a-button class="cus-btn">
|
||||||
|
<template #icon><img style="margin-right: 10px" src="../../assets/images/courseManage/add0.png"/></template>
|
||||||
|
添加学员
|
||||||
|
</a-button>
|
||||||
|
</CommonStudent>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="1.5">
|
||||||
|
<a-button class="cus-btn white" @click="bathDel">
|
||||||
|
<template #icon><img style="margin-right: 10px" src="../../assets/images/projectadd/delete.png"/></template>
|
||||||
|
批量删除
|
||||||
|
</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<div style="margin-top: 20px">
|
||||||
|
<a-table
|
||||||
|
:columns="tablecolumns"
|
||||||
|
:data-source="tableData.list"
|
||||||
|
:pagination="stuPagination"
|
||||||
|
:loading="tableData.loading"
|
||||||
|
row-key="id"
|
||||||
|
:row-selection="stuRowSelection"
|
||||||
|
>
|
||||||
|
<template #action="{record}">
|
||||||
|
<a-row gutter="12">
|
||||||
|
<a-col>
|
||||||
|
<slot name="extension" v-bind:data="{record}"></slot>
|
||||||
|
</a-col>
|
||||||
|
<a-col>
|
||||||
|
<a-select style="width: 80px" value="更多">
|
||||||
|
<a-select-option value="删除" label="删除">
|
||||||
|
<div @click="del(record.id)">删除</div>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import {computed, defineProps, onMounted, ref, watch} from "vue";
|
||||||
|
import {delStudentList, getStuPage} from "@/api/index1";
|
||||||
|
import CommonStudent from '@/components/student/CommonStudent'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
type: Number,
|
||||||
|
id: String,
|
||||||
|
columns: {
|
||||||
|
type: Array,
|
||||||
|
default: () => []
|
||||||
|
},
|
||||||
|
stage: {
|
||||||
|
type: Array,
|
||||||
|
default: () => []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const tablecolumns = ref([
|
||||||
|
{
|
||||||
|
title: "姓名",
|
||||||
|
dataIndex: "studentName",
|
||||||
|
key: "studentName",
|
||||||
|
width: "20%",
|
||||||
|
align: "left",
|
||||||
|
className: "h",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "工号",
|
||||||
|
dataIndex: "studentUserNo",
|
||||||
|
key: "studentUserNo",
|
||||||
|
width: "10%",
|
||||||
|
align: "center",
|
||||||
|
className: "h",
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "部门",
|
||||||
|
dataIndex: "studentDepartName",
|
||||||
|
key: "studentDepartName",
|
||||||
|
width: "10%",
|
||||||
|
align: "center",
|
||||||
|
className: "h",
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "加入方式",
|
||||||
|
dataIndex: "source",
|
||||||
|
key: "source",
|
||||||
|
width: "10%",
|
||||||
|
align: "center",
|
||||||
|
customRender: ({record: {source}}) => ({1: '快速添加', 2: '组织', 3: '受众'}[source])
|
||||||
|
},
|
||||||
|
...props.columns,
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "operation",
|
||||||
|
key: "operation",
|
||||||
|
width: "25%",
|
||||||
|
align: "center",
|
||||||
|
slots: {customRender: 'action'}
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const tableParam = ref({
|
||||||
|
studentName: "",
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
type: props.type,
|
||||||
|
pid: props.id,
|
||||||
|
})
|
||||||
|
const stuSelectKeys = ref([])
|
||||||
|
const tableData = ref({
|
||||||
|
list: [],
|
||||||
|
total: 0,
|
||||||
|
loading: false
|
||||||
|
})
|
||||||
|
|
||||||
|
const stuRowSelection = computed(() => ({
|
||||||
|
columnWidth: 20,
|
||||||
|
selectedRowKeys: stuSelectKeys.value,
|
||||||
|
onChange: onStuSelectChange,
|
||||||
|
preserveSelectedRowKeys: true,
|
||||||
|
}))
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getStuList()
|
||||||
|
})
|
||||||
|
|
||||||
|
function onStuSelectChange(e) {
|
||||||
|
stuSelectKeys.value = e
|
||||||
|
}
|
||||||
|
|
||||||
|
const stuPagination = computed(() => ({
|
||||||
|
total: tableData.value.total,
|
||||||
|
showSizeChanger: false,
|
||||||
|
current: tableParam.value.pageNo,
|
||||||
|
pageSize: tableParam.value.pageSize,
|
||||||
|
onChange: changePagination
|
||||||
|
}))
|
||||||
|
|
||||||
|
function changePagination(page) {
|
||||||
|
tableParam.value.pageNo = page;
|
||||||
|
getStuList()
|
||||||
|
}
|
||||||
|
|
||||||
|
function getStuList() {
|
||||||
|
tableData.value.loading = true
|
||||||
|
getStuPage(tableParam.value).then(res => {
|
||||||
|
tableData.value.total = res.data.data.total;
|
||||||
|
tableData.value.list = res.data.data.records;
|
||||||
|
tableData.value.loading = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function reset() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function bathDel() {
|
||||||
|
stuSelectKeys.value && stuSelectKeys.value.length && delStudentList({
|
||||||
|
ids: stuSelectKeys.value,
|
||||||
|
}).then(() => {
|
||||||
|
getStuList()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function del(id) {
|
||||||
|
id && delStudentList({
|
||||||
|
ids: [id],
|
||||||
|
}).then(() => {
|
||||||
|
getStuList()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function submitCall(flag) {
|
||||||
|
tableData.value.loading = true
|
||||||
|
flag && getStuList()
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.studentopea1 {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #387df7;
|
||||||
|
line-height: 22px;
|
||||||
|
padding-right: 8px;
|
||||||
|
border-right: 1px solid #e9e9e9;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -2276,236 +2276,168 @@
|
|||||||
<span>{{ currentPlanItem.teacher }}</span>
|
<span>{{ currentPlanItem.teacher }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stmm_i5">
|
<div class="stmm_i5">
|
||||||
<div class="i5_left">
|
<TableStudent :type="3" :id="offcourseId" :columns="stuColumns">
|
||||||
<!-- <a-input
|
<!-- <template #extension = "data">-->
|
||||||
v-model:value="xygl_inputV1"
|
<!-- <div style="display: flex">-->
|
||||||
style="
|
<!-- <button @click="handlJoinStu(data)">成绩录入</button>-->
|
||||||
width: 270px;
|
<!-- </div>-->
|
||||||
height: 40px;
|
<!-- </template>-->
|
||||||
border-radius: 8px;
|
</TableStudent>
|
||||||
margin-right: 14px;
|
|
||||||
"
|
|
||||||
placeholder="请输入姓名"
|
|
||||||
/> -->
|
|
||||||
<a-input
|
|
||||||
v-model:value="xygl_inputV1"
|
|
||||||
placeholder="请输入姓名"
|
|
||||||
style="
|
|
||||||
width: 400px;
|
|
||||||
height: 40px;
|
|
||||||
border-radius: 8px;
|
|
||||||
margin-right: 14px;
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
<div class="btn btn1" @click="handleSearchStu">
|
|
||||||
<div class="search"></div>
|
|
||||||
<div class="btnText">搜索</div>
|
|
||||||
</div>
|
|
||||||
<div class="btnn btn2" @click="handleRestStu">
|
|
||||||
<div class="search"></div>
|
|
||||||
<div class="btnText">重置</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="btns">
|
|
||||||
<div class="btn btn3" @click="showStuAdd(currentPlanItem)">
|
|
||||||
<div class="search"></div>
|
|
||||||
<div class="btnText">添加学员</div>
|
|
||||||
</div>
|
|
||||||
<!-- 2022-11-30注释 后面放开 -->
|
|
||||||
<!-- <div class="stmm_btn btn4" @click="hideShow">
|
|
||||||
<div class="btn4_sub">
|
|
||||||
<span style="color: #4ea6ff; margin-right: 4px">
|
|
||||||
批量操作
|
|
||||||
</span>
|
|
||||||
<div
|
|
||||||
class="b_zk"
|
|
||||||
:style="{ display: hideshow ? 'block' : 'none' }"
|
|
||||||
></div>
|
|
||||||
<div
|
|
||||||
class="b_sq"
|
|
||||||
:style="{ display: hideshow ? 'none' : 'block' }"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="btn4_sup"
|
|
||||||
:style="{ display: hideshow ? 'none' : 'block' }"
|
|
||||||
>
|
|
||||||
<div class="btnsbox">
|
|
||||||
<div class="btn4_tit" @click="handleAllJion">
|
|
||||||
<span style="color: #4ea6ff">批量录入成绩</span>
|
|
||||||
</div>
|
|
||||||
<div class="btn4_op1" @click="handleAllover">
|
|
||||||
<span>批量结业</span>
|
|
||||||
</div>
|
|
||||||
<div class="btn4_op2" @click="handleAllSuc">
|
|
||||||
<span>批量通过</span>
|
|
||||||
</div>
|
|
||||||
<div class="btn4_op3" @click="handleAllReject">
|
|
||||||
<span>批量拒绝</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="stmm_btn btn5" @click="handleExportStu">
|
|
||||||
<div class="export"></div>
|
|
||||||
<div class="btnText">导出</div>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tableBox" style="margin-top: 20px">
|
<div class="tableBox" style="margin-top: 20px">
|
||||||
<a-table
|
<!-- <a-table-->
|
||||||
:columns="columns7"
|
<!-- :columns="columns7"-->
|
||||||
:data-source="tableData7"
|
<!-- :data-source="tableData7"-->
|
||||||
:loading="tableDataTotal3 === -1 ? true : false"
|
<!-- :loading="tableDataTotal3 === -1 ? true : false"-->
|
||||||
:scroll="{ x: 800 }"
|
<!-- :scroll="{ x: 800 }"-->
|
||||||
expandRowByClick="true"
|
<!-- expandRowByClick="true"-->
|
||||||
@expand="expandTable"
|
<!-- @expand="expandTable"-->
|
||||||
:pagination="false"
|
<!-- :pagination="false"-->
|
||||||
:row-selection="{
|
<!-- :row-selection="{-->
|
||||||
selectedRowKeys: selectedRowKeys7,
|
<!-- selectedRowKeys: selectedRowKeys7,-->
|
||||||
onChange: onSelectChange7,
|
<!-- onChange: onSelectChange7,-->
|
||||||
}"
|
<!-- }"-->
|
||||||
>
|
<!-- >-->
|
||||||
<template #bodyCell="{ record, column }">
|
<!-- <template #bodyCell="{ record, column }">-->
|
||||||
<!-- 操作1 -->
|
<!-- <!– 操作1 –>-->
|
||||||
<template
|
<!-- <template-->
|
||||||
v-if="
|
<!-- v-if="-->
|
||||||
(String(record.applyStatus) === '0' ||
|
<!-- (String(record.applyStatus) === '0' ||-->
|
||||||
record.status === '待审核') &&
|
<!-- record.status === '待审核') &&-->
|
||||||
column.key === 'overstatus'
|
<!-- column.key === 'overstatus'-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<span class="table-operation">-</span>
|
<!-- <span class="table-operation">-</span>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
<template
|
<!-- <template-->
|
||||||
v-if="
|
<!-- v-if="-->
|
||||||
(String(record.applyStatus) === '-1' ||
|
<!-- (String(record.applyStatus) === '-1' ||-->
|
||||||
record.status === '已拒绝') &&
|
<!-- record.status === '已拒绝') &&-->
|
||||||
column.key === 'overstatus'
|
<!-- column.key === 'overstatus'-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<span class="table-operation">-</span>
|
<!-- <span class="table-operation">-</span>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
<template
|
<!-- <template-->
|
||||||
v-if="
|
<!-- v-if="-->
|
||||||
(String(record.applyStatus) === '1' ||
|
<!-- (String(record.applyStatus) === '1' ||-->
|
||||||
record.status === '已通过') &&
|
<!-- record.status === '已通过') &&-->
|
||||||
column.key === 'overstatus'
|
<!-- column.key === 'overstatus'-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<span class="table-operation">
|
<!-- <span class="table-operation">-->
|
||||||
<a
|
<!-- <a-->
|
||||||
@click="
|
<!-- @click="-->
|
||||||
() => {
|
<!-- () => {-->
|
||||||
handlJoinStu(record);
|
<!-- handlJoinStu(record);-->
|
||||||
}
|
<!-- }-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
成绩录入
|
<!-- 成绩录入-->
|
||||||
</a>
|
<!-- </a>-->
|
||||||
<a
|
<!-- <a-->
|
||||||
@click="
|
<!-- @click="-->
|
||||||
() => {
|
<!-- () => {-->
|
||||||
handleOverStu(record);
|
<!-- handleOverStu(record);-->
|
||||||
}
|
<!-- }-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
结业
|
<!-- 结业-->
|
||||||
</a>
|
<!-- </a>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
<!-- 操作2 -->
|
<!-- <!– 操作2 –>-->
|
||||||
<template
|
<!-- <template-->
|
||||||
v-if="
|
<!-- v-if="-->
|
||||||
(String(record.applyStatus) === '0' ||
|
<!-- (String(record.applyStatus) === '0' ||-->
|
||||||
record.status === '待审核') &&
|
<!-- record.status === '待审核') &&-->
|
||||||
column.key === 'operation'
|
<!-- column.key === 'operation'-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<span class="table-operation">
|
<!-- <span class="table-operation">-->
|
||||||
<a
|
<!-- <a-->
|
||||||
@click="
|
<!-- @click="-->
|
||||||
() => {
|
<!-- () => {-->
|
||||||
handleSucessStu(record);
|
<!-- handleSucessStu(record);-->
|
||||||
}
|
<!-- }-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
通过
|
<!-- 通过-->
|
||||||
</a>
|
<!-- </a>-->
|
||||||
<a
|
<!-- <a-->
|
||||||
@click="
|
<!-- @click="-->
|
||||||
() => {
|
<!-- () => {-->
|
||||||
handleRejectStu(record);
|
<!-- handleRejectStu(record);-->
|
||||||
}
|
<!-- }-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
拒绝
|
<!-- 拒绝-->
|
||||||
</a>
|
<!-- </a>-->
|
||||||
<a
|
<!-- <a-->
|
||||||
@click="
|
<!-- @click="-->
|
||||||
() => {
|
<!-- () => {-->
|
||||||
handleDeleteStu(record);
|
<!-- handleDeleteStu(record);-->
|
||||||
}
|
<!-- }-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
删除
|
<!-- 删除-->
|
||||||
</a>
|
<!-- </a>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
<template
|
<!-- <template-->
|
||||||
v-if="
|
<!-- v-if="-->
|
||||||
(String(record.applyStatus) === '1' ||
|
<!-- (String(record.applyStatus) === '1' ||-->
|
||||||
record.status === '已通过') &&
|
<!-- record.status === '已通过') &&-->
|
||||||
column.key === 'operation'
|
<!-- column.key === 'operation'-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<span class="table-operation">
|
<!-- <span class="table-operation">-->
|
||||||
<a
|
<!-- <a-->
|
||||||
@click="
|
<!-- @click="-->
|
||||||
() => {
|
<!-- () => {-->
|
||||||
handleDeleteStu(record);
|
<!-- handleDeleteStu(record);-->
|
||||||
}
|
<!-- }-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
删除
|
<!-- 删除-->
|
||||||
</a>
|
<!-- </a>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
<template
|
<!-- <template-->
|
||||||
v-if="
|
<!-- v-if="-->
|
||||||
(String(record.applyStatus) === '-1' ||
|
<!-- (String(record.applyStatus) === '-1' ||-->
|
||||||
record.status === '已拒绝') &&
|
<!-- record.status === '已拒绝') &&-->
|
||||||
column.key === 'operation'
|
<!-- column.key === 'operation'-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<span class="table-operation">
|
<!-- <span class="table-operation">-->
|
||||||
<a
|
<!-- <a-->
|
||||||
@click="
|
<!-- @click="-->
|
||||||
() => {
|
<!-- () => {-->
|
||||||
handleDeleteStu(record);
|
<!-- handleDeleteStu(record);-->
|
||||||
}
|
<!-- }-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
删除
|
<!-- 删除-->
|
||||||
</a>
|
<!-- </a>-->
|
||||||
</span>
|
<!-- </span>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</a-table>
|
<!-- </a-table>-->
|
||||||
<div class="tableBox" style="margin-top: 50px">
|
<!-- <div class="tableBox" style="margin-top: 50px">-->
|
||||||
<div class="pa">
|
<!-- <div class="pa">-->
|
||||||
<a-pagination
|
<!-- <a-pagination-->
|
||||||
:showSizeChanger="false"
|
<!-- :showSizeChanger="false"-->
|
||||||
showQuickJumper="true"
|
<!-- showQuickJumper="true"-->
|
||||||
hideOnSinglePage="true"
|
<!-- hideOnSinglePage="true"-->
|
||||||
:pageSize="pageSize3"
|
<!-- :pageSize="pageSize3"-->
|
||||||
:current="currentPage3"
|
<!-- :current="currentPage3"-->
|
||||||
:total="tableDataTotal3"
|
<!-- :total="tableDataTotal3"-->
|
||||||
class="pagination"
|
<!-- class="pagination"-->
|
||||||
@change="handelChangePage3"
|
<!-- @change="handelChangePage3"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2604,11 +2536,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="qrm_btnbox">
|
<div class="qrm_btnbox">
|
||||||
<div class="qrm_btn btn1">
|
<div class="qrm_btn btn1" @click="rg_exit">
|
||||||
<div class="btnText" @click="rg_exit">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="qrm_btn btn2">
|
<div class="qrm_btn btn2" @click="handleJoin">
|
||||||
<div class="btnText" @click="handleJoin">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2930,6 +2862,7 @@ import { queryWorkDetailById } from "@/api/indexWork";
|
|||||||
import { queryExaminationDetailById } from "@/api/indexExam";
|
import { queryExaminationDetailById } from "@/api/indexExam";
|
||||||
import AddHomework from "../../components/drawers/AddHomework.vue";
|
import AddHomework from "../../components/drawers/AddHomework.vue";
|
||||||
import AddTest from "../../components/drawers/AddTest.vue";
|
import AddTest from "../../components/drawers/AddTest.vue";
|
||||||
|
import TableStudent from "@/components/student/TableStudent";
|
||||||
//列表表格
|
//列表表格
|
||||||
const columns1 = [
|
const columns1 = [
|
||||||
// {
|
// {
|
||||||
@@ -3448,6 +3381,7 @@ export default defineComponent({
|
|||||||
AddHomework,
|
AddHomework,
|
||||||
AddTest,
|
AddTest,
|
||||||
NameInput,
|
NameInput,
|
||||||
|
TableStudent,
|
||||||
// VNodes: (_, {attrs}) => {
|
// VNodes: (_, {attrs}) => {
|
||||||
// return attrs.vnodes;
|
// return attrs.vnodes;
|
||||||
// },
|
// },
|
||||||
@@ -3458,6 +3392,72 @@ export default defineComponent({
|
|||||||
const CourseModalRef = ref(null);
|
const CourseModalRef = ref(null);
|
||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
|
stuColumns:[
|
||||||
|
{
|
||||||
|
title: "报名状态",
|
||||||
|
width: '10%',
|
||||||
|
dataIndex: "status",
|
||||||
|
key: "5",
|
||||||
|
align: "center",
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
switch (String(record.source)) {
|
||||||
|
case "0":
|
||||||
|
return "待审核";
|
||||||
|
case "1":
|
||||||
|
return "审核通过";
|
||||||
|
case "2":
|
||||||
|
return "审核拒绝";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "加入方式",
|
||||||
|
width: '10%',
|
||||||
|
dataIndex: "join",
|
||||||
|
key: "6",
|
||||||
|
align: "center",
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
switch (String(record.source)) {
|
||||||
|
case "1":
|
||||||
|
return "手动加入";
|
||||||
|
case "2":
|
||||||
|
return "报名加入";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "签到状态",
|
||||||
|
width: '10%',
|
||||||
|
dataIndex: "signstatus",
|
||||||
|
key: "7",
|
||||||
|
align: "center",
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
switch (String(record.signStatus)) {
|
||||||
|
case "0":
|
||||||
|
return "未签到";
|
||||||
|
case "1":
|
||||||
|
return "已签到";
|
||||||
|
case "2":
|
||||||
|
return "请假";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "评估状态",
|
||||||
|
width: '10%',
|
||||||
|
dataIndex: "evastatus",
|
||||||
|
key: "8",
|
||||||
|
align: "center",
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
switch (String(record.evalStatus)) {
|
||||||
|
case "0":
|
||||||
|
return "未评估";
|
||||||
|
case "1":
|
||||||
|
return "已评估";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
shipType: 1,
|
shipType: 1,
|
||||||
addLoading: false,
|
addLoading: false,
|
||||||
currentPlanItem: {},
|
currentPlanItem: {},
|
||||||
@@ -8640,6 +8640,30 @@ export default defineComponent({
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cus-btn {
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-right: 16px;
|
||||||
|
border: 1px solid #4ea6ff;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #4ea6ff;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.white {
|
||||||
|
background: #fff;
|
||||||
|
color: #4ea6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cus-input {
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
// .tableSelect {
|
// .tableSelect {
|
||||||
// position: relative;
|
// position: relative;
|
||||||
// .hoverList {
|
// .hoverList {
|
||||||
|
|||||||
@@ -505,127 +505,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="3" tab="学员管理" force-render>
|
<a-tab-pane key="3" tab="学员管理" force-render>
|
||||||
<div class="split"></div>
|
<TableStudent :type="3" :id="routerId"></TableStudent>
|
||||||
<div class="xwid">
|
|
||||||
<div class="pad"></div>
|
|
||||||
<div class="xin" style="overflow-x: auto">
|
|
||||||
<div class="xhead">
|
|
||||||
<a-input
|
|
||||||
v-model:value="gatenamee"
|
|
||||||
style="width: 270px; height: 40px; border-radius: 8px"
|
|
||||||
placeholder="请输入姓名"
|
|
||||||
/>
|
|
||||||
<div class="btns" @click="searchLevel">
|
|
||||||
<div class="btn btn1">
|
|
||||||
<div class="search"></div>
|
|
||||||
<a-button
|
|
||||||
class="btnText"
|
|
||||||
style="
|
|
||||||
border: none;
|
|
||||||
background: none;
|
|
||||||
transform: translateY(-20%);
|
|
||||||
"
|
|
||||||
>搜索
|
|
||||||
</a-button>
|
|
||||||
</div>
|
|
||||||
<div class="btn btn2" @click="resetLevel">
|
|
||||||
<div class="search"></div>
|
|
||||||
<a-button
|
|
||||||
style="
|
|
||||||
border: none;
|
|
||||||
background: none;
|
|
||||||
transform: translateY(-20%);
|
|
||||||
width: 100%;
|
|
||||||
"
|
|
||||||
class="btnText"
|
|
||||||
>重置</a-button
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="xheadb">
|
|
||||||
<button class="addx" @click="showAddStu">添加学员</button>
|
|
||||||
<!-- 2022-11-30注释 后面放开 -->
|
|
||||||
<!-- <button class="addd" @click="showImpStu">导入学员</button> -->
|
|
||||||
<div class="select">
|
|
||||||
<a-button
|
|
||||||
style="
|
|
||||||
border: 1px solid rgba(64, 158, 255, 1);
|
|
||||||
background: none;
|
|
||||||
width: 130px;
|
|
||||||
height: 40px;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 400;
|
|
||||||
color: rgba(64, 158, 255, 1);
|
|
||||||
margin-left: 5px;
|
|
||||||
border-radius: 8px;
|
|
||||||
cursor: pointer;
|
|
||||||
"
|
|
||||||
class="btnText"
|
|
||||||
@click="deleteStu()"
|
|
||||||
>批量删除</a-button
|
|
||||||
>
|
|
||||||
<!-- <a-select
|
|
||||||
style="width: 130px"
|
|
||||||
value="更多操作"
|
|
||||||
@change="handleStuChange"
|
|
||||||
:options="projectNameList"
|
|
||||||
>
|
|
||||||
</a-select> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- 2022-12-11注释 后面放开 -->
|
|
||||||
<!--
|
|
||||||
<div class="talk">
|
|
||||||
<img class="im" src="../../assets/images/leveladd/gan.png" />
|
|
||||||
<div class="xu">
|
|
||||||
<span class="yi">已选择</span>
|
|
||||||
<div style="width: 5px; display: inline-block"></div>
|
|
||||||
<span class="th">{{ selectedRowKeys.length }}</span>
|
|
||||||
<div style="width: 5px; display: inline-block"></div>
|
|
||||||
<span class="yi">项</span>
|
|
||||||
<span class="zon">列表选项总数:</span>
|
|
||||||
<span class="th">{{ stuTotal }}</span>
|
|
||||||
<span class="yi"> 条</span>
|
|
||||||
</div>
|
|
||||||
<div class="clear" @click="clearChooseStu">清空</div>
|
|
||||||
</div>-->
|
|
||||||
<div class="tableBox" style="margin-top: 30px">
|
|
||||||
<a-table
|
|
||||||
style="border: 1px solid #f2f6fe"
|
|
||||||
:columns="tableDataFunc()"
|
|
||||||
:scroll="{ x: 1400 }"
|
|
||||||
:data-source="tableData"
|
|
||||||
:loading="tableDataTotal === -1 ? true : false"
|
|
||||||
expandRowByClick="true"
|
|
||||||
@expand="expandTable"
|
|
||||||
:pagination="false"
|
|
||||||
:row-selection="{
|
|
||||||
columnWidth: 30,
|
|
||||||
selectedRowKeys: selectedRowKeys,
|
|
||||||
onChange: onSelectChange,
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div class="pa">
|
|
||||||
<a-pagination
|
|
||||||
v-if="tableDataTotal > 10"
|
|
||||||
:showSizeChanger="false"
|
|
||||||
showQuickJumper="true"
|
|
||||||
hideOnSinglePage="true"
|
|
||||||
:pageSize="pageSize"
|
|
||||||
:current="currentPage"
|
|
||||||
:total="tableDataTotal"
|
|
||||||
@change="pageChange"
|
|
||||||
class="pagination"
|
|
||||||
style="display: block"
|
|
||||||
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="pad"></div>
|
|
||||||
</div>
|
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<!--1211注释 待开放
|
<!--1211注释 待开放
|
||||||
<a-tab-pane key="4" tab="设置">
|
<a-tab-pane key="4" tab="设置">
|
||||||
@@ -1232,6 +1112,7 @@ import * as api from "../../api/index1";
|
|||||||
import { editRoutered } from "../../api/indexLearningPath";
|
import { editRoutered } from "../../api/indexLearningPath";
|
||||||
import { codeUrl } from "../../api/method";
|
import { codeUrl } from "../../api/method";
|
||||||
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
||||||
|
import TableStudent from "@/components/student/TableStudent";
|
||||||
// import * as student from "@/api/student";
|
// import * as student from "@/api/student";
|
||||||
export default {
|
export default {
|
||||||
name: "LevelAdd",
|
name: "LevelAdd",
|
||||||
@@ -1248,6 +1129,7 @@ export default {
|
|||||||
WorkManage,
|
WorkManage,
|
||||||
SeeStu,
|
SeeStu,
|
||||||
TwoDimensionalCode,
|
TwoDimensionalCode,
|
||||||
|
TableStudent,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,9 @@ module.exports = defineConfig({
|
|||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
"^/manageApi": "",
|
"^/manageApi": "",
|
||||||
},
|
},
|
||||||
|
},"/userbasic": {
|
||||||
|
target: process.env.VUE_APP_BOE_API_URL,
|
||||||
|
changeOrigin: true, //表示是否改变原域名
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user