--demand 添加权限

This commit is contained in:
yuping
2023-02-01 20:19:45 +08:00
parent 5b8e8a691b
commit 2b00230efa
11 changed files with 78 additions and 71 deletions

View File

@@ -3,7 +3,7 @@
<!-- <div class="split"></div> -->
<div class="noticeTitle">
<!-- <div class="notitle"><span class="titlespan">公告</span></div> -->
<div v-button-per="permissions" class="switch">
<div v-if="checkPer(permissions)" class="switch">
<a-switch
v-model:checked="noticeChecked"
@click="noticeFlag"
@@ -25,7 +25,7 @@
style="margin-top: -10px; height: 220px;border:1px solid #fff; resize: none;background-color: #fff;color:#666;"
/>
<!-- <pre>{{noticeContent1}}</pre> -->
<div class="btn-content" v-button-per="permissions">
<div class="btn-content" v-if="checkPer(permissions)">
<a-button type="primary" @click="handleEdit">编辑</a-button>
</div>
</template>
@@ -49,7 +49,7 @@
placeholder="公告信息最多输入150个字"
style="margin-top: -10px; height: 160px;"
/>
<div class="btn-content" v-button-per="permissions">
<div class="btn-content" v-if="checkPer(permissions)">
<a-button class="cancel" @click="handleCancel">取消</a-button>
<a-button type="primary" @click="pubNotice" class="sure">
发布
@@ -66,6 +66,8 @@ import { editProj, getTask } from "../../api/indexTaskadd";
// import { editProj } from "../../api/indexTaskadd";
import { publishNotice } from "../../api/indexNotice";
import emitter from "../../utils/bus";
import {checkPer} from "@/utils/utils";
export default {
name: "NoticePub",
props: {
@@ -159,6 +161,7 @@ export default {
return {
...toRefs(state),
getTaskInfo,
checkPer,
pubNotice,
handleEdit,
handleCancel,

View File

@@ -144,7 +144,7 @@
<div class="groupright">
<div class="spandiv"><span class="spantext">规则</span></div>
<div v-if="edit" class="btns">
<div v-button-per="permissions" class="btn1" @click="edit = false">
<div v-if="checkPer(permissions)" class="btn1" @click="edit = false">
<img src="../../assets/images/projectadd/edit1.png" />
<span class="btn1text">编辑</span>
</div>

View File

@@ -79,7 +79,7 @@
type="flex"
gutter="12"
style="padding-left: 20px; margin-right: 0px"
v-button-per="permissions"
v-if="checkPer(permissions)"
>
<a-col :span="1.5">
<CommonStudent
@@ -219,20 +219,18 @@
<slot name="extension" v-bind:data="{ record }"></slot>
<a-button
v-button-per="permissions"
v-if="type === 3 && record.status !== 0"
v-if="type === 3 && record.status !== 0 && checkPer(permissions)"
@click="updateStatus(0, record.id)"
type="link"
>通过</a-button
>
<a-button
v-button-per="permissions"
v-if="type === 3 && record.status !== 0"
v-if="type === 3 && record.status !== 0 && checkPer(permissions)"
@click="updateStatus(2, record.id)"
type="link"
>拒绝</a-button
>
<a-button v-button-per="permissions" @click="del(record.id)" type="link" danger>删除</a-button>
<a-button v-if="checkPer(permissions)" @click="del(record.id)" type="link" danger>删除</a-button>
</a-space>
</template>
</a-table>
@@ -355,6 +353,7 @@ import ExportHomeWork from "../Modals/ExportHomeWork.vue";
import * as api from "../../api/index1";
import ImpStu from "../drawers/AddLevelImportStu";
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
import {checkPer} from "@/utils/utils";
const props = defineProps({
type: Number,

View File

@@ -16,7 +16,6 @@ import 'element-plus/dist/index.css'
import "@/assets/scss/common.scss"
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
import {vButPer} from "@/utils/directive";
// import axios from 'axios'
// axios.defaults.withCredentials = true;
// import zhCN from 'ant-design-vue/es/locale/zh_CN';
@@ -29,5 +28,4 @@ app.config.warnHandler = () => null;
app.use(Antd);
app.use(router);
app.use(store);
app.directive('buttonPer', vButPer)
app.mount('#app');

View File

@@ -1,13 +0,0 @@
export const vButPer = {
mounted: (el, binding) => {
checkPer(binding.value) || el.parentNode.removeChild(el)
}
}
const admin = [5, 6, 8, 9, 11, 12]
function checkPer(per) {
if (!per) {
return true
}
return (per + "").split(',').some(t => admin.some(s => s == t))
}

View File

@@ -27,6 +27,15 @@ export function traverseArr(arr, traverseObj, saveOld = false) {
return newArr;
}
const admin = [5, 6, 8, 9, 11, 12]
export function checkPer(per) {
if (!per) {
return false
}
return (per + "").split(',').some(t => admin.some(s => s == t))
}
export function deepClone(obj) {
let result = typeof obj.splice === "function" ? [] : {};
if (obj && typeof obj === "object") {

View File

@@ -316,16 +316,16 @@
<template #bodyCell="{ record, column }">
<template v-if="column.key === 'operation'">
<a-space>
<a-button v-button-per="record.permissions" v-if="record.status===0 || record.status===-1 || !record.kkty" @click="() => handleEdit(record, String(record.courseform))" type="link">编辑</a-button>
<a-button v-button-per="record.permissions" block v-if="record.status===2" @click="() => handleStart(record, String(record.courseform))" type="link">开课</a-button>
<a-button v-button-per="record.permissions" v-if="record.status===2" @click="() => handleLook(record, String(record.courseform))" type="link">查看</a-button>
<a-button v-if="record.status===2" @click="() => handleGuan22(record, String(record.courseform))" type="link">管理</a-button>
<DropDown v-button-per="record.permissions" value="授权">
<a-button v-if="(record.status===0 || record.status===-1 || !record.kkty) && checkPer(record.permissions)" @click="() => handleEdit(record, String(record.courseform))" type="link">编辑</a-button>
<a-button v-if="record.status===2 && checkPer(record.permissions)" @click="() => handleStart(record, String(record.courseform))" type="link">开课</a-button>
<a-button v-if="record.status===2 && checkPer(record.permissions)" @click="() => handleLook(record, String(record.courseform))" type="link">查看</a-button>
<a-button v-if="record.status===2 && checkPer(record.permissions)" @click="() => handleGuan22(record, String(record.courseform))" type="link">管理</a-button>
<DropDown v-if="checkPer(record.permissions)" value="授权">
<OwnerTableModelStudent :types="[10,11,12]" :id="record.offcourseId">权限名单</OwnerTableModelStudent>
<CommonStudent :type="10" :id="record.offcourseId" title="查看权">查看权</CommonStudent>
<CommonStudent :type="11" :id="record.offcourseId" title="管理权">管理权</CommonStudent>
</DropDown>
<DropDown v-button-per="record.permissions" value="更多">
<DropDown v-if="checkPer(record.permissions)" value="更多">
<a-button @click="() => handleCopy(record, String(record.courseform))" type="link">复制</a-button>
<a-button @click="() => handleRejectExit(record, String(record.courseform))" type="link">撤回</a-button>
<a-button v-if="record.status===2 && record.kkty" @click="() => handleStop(record, String(record.courseform))" type="link">停用</a-button>
@@ -1544,6 +1544,7 @@ import FJUpload from "@/components/common/FJUpload";
import { updateStudent } from "@/api/indexProjStu";
import { useStore } from "vuex";
import DropDown from "@/components/common/DropDown";
import {checkPer} from "@/utils/utils";
//列表表格
const columns1 = [
@@ -1719,7 +1720,7 @@ const columns1 = [
},
{
title: "操作",
width: 370,
width: 320,
dataIndex: "operation",
key: "operation",
fixed: "right",
@@ -4823,7 +4824,7 @@ export default defineComponent({
handelChangePageTea2,
submitReview,
reviewClick,
checkPer,
showPrower,
showOwnPrower,
showViewPrower,

View File

@@ -105,16 +105,16 @@
<template #bodyCell="{ record, column }">
<template v-if="column.key === 'operation'">
<a-space>
<a-button v-button-per="record.permissions" v-if="record.state==='草稿'" @click="showPub(record)" type="link">发布</a-button>
<a-button v-button-per="record.permissions" v-if="record.state==='草稿'" @click="getLearnPathInfo(record.id)" type="link">编辑</a-button>
<a-button v-button-per="record.permissions" v-if="record.state==='已发布'" @click="getLearnPathInfo(record.id)" type="link">编辑</a-button>
<a-button v-if="record.state==='草稿' && checkPer(record.permissions)" @click="showPub(record)" type="link">发布</a-button>
<a-button v-if="record.state==='草稿' && checkPer(record.permissions)" @click="getLearnPathInfo(record.id)" type="link">编辑</a-button>
<a-button v-if="record.state==='已发布' && checkPer(record.permissions)" @click="getLearnPathInfo(record.id)" type="link">编辑</a-button>
<a-button @click="manage(record.id)" type="link">管理</a-button>
<DropDown v-button-per="record.permissions" value="授权">
<DropDown v-if="checkPer(record.permissions)" value="授权">
<OwnerTableModelStudent :types="[7,8,9]" :id="record.id" :type="9">权限名单</OwnerTableModelStudent>
<CommonStudent :type="7" :id="record.id" title="查看权">查看权</CommonStudent>
<CommonStudent :type="8" :id="record.id" title="管理权">管理权</CommonStudent>
</DropDown>
<DropDown v-button-per="record.permissions" value="更多">
<DropDown v-if="checkPer(record.permissions)" value="更多">
<a-button @click="showCopyModal(record.id)" type="link">复制</a-button>
<a-button @click="showDeleteModal(record.id)" type="link" danger>删除</a-button>
<a-button v-if="record.state==='已发布'" @click="showBackModal(record.id)" type="link">撤回</a-button>
@@ -225,7 +225,7 @@
<!-- <img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" /> -->
<div
@click="chooseImg(item)"
v-for="(item, index) in imgData"
@@ -354,7 +354,7 @@
<!-- <img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" /> -->
<div
@click="chooseImg2(item)"
v-for="(item, index) in imgData"
@@ -730,6 +730,7 @@ import OrgClass from "@/components/project/OrgClass";
import NameInput from "@/components/project/NameInput";
import {validateName} from "@/api/index1";
import DropDown from "@/components/common/DropDown";
import {checkPer} from "@/utils/utils";
export default {
@@ -1125,6 +1126,7 @@ export default {
pubtime: value.publishTime ? value.publishTime : "-",
cretime: value.createTime ? value.createTime : "-",
remark: value.remark ? value.remark : "-",
permissions:value.permissions
};
array.push(obj);
});
@@ -1594,6 +1596,7 @@ export default {
searchLearnPath,
resetLearnPath,
showLearnBgMore,
checkPer,
closeLearnBgMore,
};
},

View File

@@ -19,7 +19,7 @@
<div v-if="action == 1 || action == 0" class="line"></div>-->
<div
class="pubIcon"
v-if="action == 1 || action == 0"
v-if="(action == 1 || action == 0) && checkPer(permissions)"
@click="pubIcon(action)"
>
<img class="img2" src="../../assets/images/leveladd/pub.png" />
@@ -53,7 +53,7 @@
<div class="onerow">
<div class="taskmain">快速创建路径图详情</div>
</div>
<div class="second" v-button-per="permissions">
<div class="second" v-if="checkPer(permissions)">
<div @click="totask">
<div
class="taskbox"
@@ -326,7 +326,7 @@
<div class="onerow">
<div class="taskmain">任务大纲</div>
<router-link to="/leveladddetail" class="editright" v-button-per="permissions">
<router-link to="/leveladddetail" class="editright" v-if="checkPer(permissions)">
<img
class="editimg"
src="../../assets/images/leveladd/edit.png"
@@ -563,7 +563,7 @@
>
<template #extension="{ data: { record } }">
<a-button type="link" @click="showStudent(record)">查看</a-button>
<a-button type="link" @click="setLevels(record)" v-button-per="permissions">调整</a-button>
<a-button type="link" @click="setLevels(record)" v-if="checkPer(permissions)">调整</a-button>
</template>
</TableStudent>
<TableStudent
@@ -575,7 +575,7 @@
>
<template #extension="{ data: { record } }">
<a-button type="link" @click="showStudent(record)">查看</a-button>
<a-button type="link" @click="setLevels(record)" v-button-per="permissions">调整</a-button>
<a-button type="link" @click="setLevels(record)" v-if="checkPer(permissions)">调整</a-button>
</template>
</TableStudent>
</a-tab-pane>
@@ -592,7 +592,7 @@
<div class="headone">
<div class="box"></div>
<div class="onetitle">关卡内容可见可学设置</div>
<div class="oneedi" @click="showbtn" v-show="twobtn" v-button-per="permissions">
<div class="oneedi" @click="showbtn" v-show="twobtn" v-if="checkPer(permissions)">
编辑
</div>
<div v-show="twobtnn" class="twobtn">
@@ -1350,6 +1350,7 @@ import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
import TableStudent from "@/components/student/TableStudent";
// import * as student from "@/api/student";
import { getStuPage, moveStudent } from "@/api/index1";
import { checkPer } from "@/utils/utils";
import RouterFaceTeachManage from "../../components/drawers/router/RouterFaceTeachManage";
import RouterExaminationManage from "../../components/drawers/router/RouterExaminationManage";
@@ -2714,6 +2715,7 @@ export default {
setLevels,
selectProjectName4,
changeLevel,
checkPer
};
},
};

View File

@@ -96,20 +96,20 @@
<template #bodyCell="{ record, column }">
<template v-if="column.key === 'operation'">
<a-space align="start">
<a-button v-button-per="record.permissions" v-if="record.status===0 || record.status===2 || record.status===-5" @click="handleEdit(record)" type="link">编辑</a-button>
<a-button v-button-per="record.permissions" v-if="record.type===1" @click="createSub(record)" type="link">创建子项目</a-button>
<a-button v-button-per="record.permissions" v-if="record.type===2" @click="createClass(record)" type="link">创建班级</a-button>
<a-button v-button-per="record.permissions" v-if="record.status===0 && record.type===3" @click="showReviewModal(record.projectId)" type="link">提交审核</a-button>
<a-button v-button-per="record.permissions" v-if="record.status===1 && record.type===3" @click="showRecallReviewModal(record.projectId)" type="link">撤回审核</a-button>
<a-button v-button-per="record.permissions" v-if="record.status===2 && record.type===3" @click="push(record)" type="link">发布</a-button>
<a-button v-button-per="record.permissions" v-if="record.status===3 && record.type===3" @click="showBackModal(record.projectId)" type="link">撤回发布</a-button>
<a-button v-if="(record.status===0 || record.status===2 || record.status===-5) && checkPer(record.permissions)" @click="handleEdit(record)" type="link">编辑</a-button>
<a-button v-if="record.type===1 && checkPer(record.permissions)" @click="createSub(record)" type="link">创建子项目</a-button>
<a-button v-if="record.type===2 && checkPer(record.permissions)" @click="createClass(record)" type="link">创建班级</a-button>
<a-button v-if="record.status===0 && record.type===3 && checkPer(record.permissions)" @click="showReviewModal(record.projectId)" type="link">提交审核</a-button>
<a-button v-if="record.status===1 && record.type===3 && checkPer(record.permissions)" @click="showRecallReviewModal(record.projectId)" type="link">撤回审核</a-button>
<a-button v-if="record.status===2 && record.type===3 && checkPer(record.permissions)" @click="push(record)" type="link">发布</a-button>
<a-button v-if="record.status===3 && record.type===3 && checkPer(record.permissions)" @click="showBackModal(record.projectId)" type="link">撤回发布</a-button>
<a-button v-if="record.status!==3 && record.type===3" @click="baseInfo(record)" type="link">管理</a-button>
<DropDown v-button-per="record.permissions" value="授权">
<DropDown v-if="checkPer(record.permissions)" value="授权">
<OwnerTableModelStudent :types="[4,5,6]" :id="record.projectId" :type="6">权限名单</OwnerTableModelStudent>
<CommonStudent :type="4" :id="record.projectId" title="查看权">查看权</CommonStudent>
<CommonStudent :type="5" :id="record.projectId" title="管理权">管理权</CommonStudent>
</DropDown>
<DropDown v-button-per="record.permissions" value="更多">
<DropDown v-if="checkPer(record.permissions)" value="更多">
<a-button @click="showCopyModal(record.projectId)" type="link">复制</a-button>
<a-button v-if="record.status!==3" @click="showDeleteModal(record.projectId)" type="link" danger>删除</a-button>
<a-button v-if="record.status===3" @click="showStartModal(record.projectId)" type="link">存为模版</a-button>
@@ -866,6 +866,7 @@ import { validateName } from "@/api/index1";
import CommonStudent from "@/components/student/CommonStudent";
import OwnerTableModelStudent from "@/components/student/OwnerTableModelStudent";
import DropDown from "@/components/common/DropDown";
import {checkPer} from "@/utils/utils";
export default {
name: "projectManage",
@@ -1425,7 +1426,7 @@ export default {
title: "操作",
dataIndex: "operation",
key: "operation",
width: 300,
width: 350,
align: "right",
fixed: "right",
scopedSlots: {customRender: "action"}
@@ -1692,6 +1693,7 @@ export default {
copyProject,
closeReminderModal,
okReminderModal,
checkPer
};
},
};

View File

@@ -31,25 +31,25 @@
></div>-->
<!-- 显示发布图标 -->
<img
v-if="action == 2"
v-if="action == 2 && checkPer(permissions)"
class="img2"
src="../../assets/images/leveladd/pub.png"
/>
<!-- 显示撤回发布图标 -->
<img
v-if="action == 3"
v-if="action == 3 && checkPer(permissions)"
class="img2"
src="../../assets/images/project/finish.png"
/>
<!-- 显示审核图标 -->
<img
v-if="action == 0 || action == -2"
v-if="(action == 0 || action == -2) && checkPer(permissions)"
class="img2"
src="../../assets/images/project/reviewsubmit.png"
/>
<!-- 显示撤回审核图标 -->
<img
v-if="action == 1"
v-if="action == 1 && checkPer(permissions)"
class="img2"
src="../../assets/images/project/reviewrecall.png"
/>
@@ -59,7 +59,7 @@
<div
class="pub"
style="width: 56px; color: #a497ff"
v-if="action == 0 || action == -2"
v-if="(action == 0 || action == -2) && checkPer(permissions)"
@click="submitExamine"
>
{{ act }}
@@ -68,7 +68,7 @@
<div
class="pub"
style="width: 56px; color: #a497ff"
v-if="action == 1"
v-if="action == 1 && checkPer(permissions)"
@click="showRecallReviewModal"
>
{{ act }}
@@ -77,7 +77,7 @@
<div
class="pub"
style="width: 28px"
v-if="action == 2"
v-if="action == 2 && checkPer(permissions)"
@click="showProjectPub"
>
{{ act }}
@@ -86,7 +86,7 @@
<div
class="pub"
style="width: 56px; color: #57c887"
v-if="action == 3"
v-if="action == 3 && checkPer(permissions)"
@click="showBackModal"
>
{{ act }}
@@ -195,7 +195,7 @@
<div class="onerow">
<div class="taskmain">快速创建项目详情</div>
</div>
<div v-button-per="permissions" class="second">
<div v-if="checkPer(permissions)" class="second">
<!-- @click="totask" -->
<div
class="taskbox"
@@ -423,7 +423,7 @@
批量面授报名
</button> -->
<router-link
v-button-per="permissions"
v-if="checkPer(permissions)"
:to="{ path: `/taskadd`, query: { projectId: projectId } }"
>
<button class="edit">
@@ -571,7 +571,7 @@
>
</div>
</div>
<div v-button-per="permissions" class="operations">
<div v-if="checkPer(permissions)" class="operations">
<div
class="operation"
style="cursor: pointer"
@@ -673,7 +673,7 @@
</router-link>
<!-- 无数据创建任务 -->
</div>
<div v-button-per="permissions" v-else>
<div v-else-if="checkPer(permissions)">
<div
class="taskbox"
@click="
@@ -752,7 +752,7 @@
</div>
</div>
</div>
<div class="second2" v-button-per="permissions">
<div class="second2" v-if="checkPer(permissions)">
<div class="btn1" @click="showModal2(1, null)">
<img src="../../assets/images/courseManage/add0.png" />
<span class="btn1text">创建小组</span>
@@ -783,7 +783,7 @@
style="color: rgba(0, 0, 0, 0.45); cursor: pointer"
>. . .</span
>
<div class="moreItems" v-button-per="permissions">
<div class="moreItems" v-if="checkPer(permissions)">
<div class="sammo" @click="showModal2(2, item)">
编辑
</div>
@@ -1098,7 +1098,7 @@
<div class="img"></div>
<div class="ed">编辑</div>
</div> -->
<div v-button-per="permissions" class="edit" v-if="status != 3" @click="toEdit">
<div class="edit" v-if="status != 3 && checkPer(permissions)" @click="toEdit">
<div class="img"></div>
<div class="ed">编辑</div>
</div>
@@ -2108,6 +2108,8 @@ import ProjectManager from "@/components/project/ProjectManagerNew";
import TableStudent from "@/components/student/TableStudent";
import { getStuPage } from "@/api/index1";
import ChangeGroupModal from "@/components/student/ChangeGroupModal.vue";
import {checkPer} from "@/utils/utils";
export default {
name: "taskPage",
components: {
@@ -4660,6 +4662,7 @@ export default {
showCodeModel2,
checkType,
downloadFile,
checkPer,
addCertificate,
previewPic,
};