Commit bb3b5b47 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/luochao/confucius into master

parents 8d5414b6 c181dc3c
......@@ -603,4 +603,16 @@ export function setTeacherHelp(data) {
method: 'post',
data
})
}
/**
* 员工提交建议和意见等
* @param {*} data
*/
export function SubmitTeacherAssessmentApproval(data) {
return request({
url: '/TeacherAssessment/SubmitTeacherAssessmentApproval',
method: 'post',
data
})
}
\ No newline at end of file
<style>
.changeClassProcess {
width: 350px;
}
.changeClassProcess .processList {
width: 100%;
height: auto;
}
.changeClassProcess .processTop {
width: 100%;
height: 54px;
background-color: #F1F1F1;
color: #000000;
text-align: center;
line-height: 54px;
border-radius: 2px;
cursor: pointer;
position: relative;
}
.changeClassProcess .processLine {
width: 100%;
height: 54px;
background-color: #fff;
color: #bbb6b6;
text-align: center;
line-height: 54px;
}
.changeClassProcess .processLine i {
font-size: 25px;
font-weight: bold;
}
.changeClassProcess .otherList {
background-color: #2961FE !important;
color: #fff;
font-weight: bold;
}
.changeClassProcess .process_TwoList {
display: flex;
background-color: #2961FE !important;
color: #fff;
font-weight: bold;
align-items: center;
justify-content: center;
}
.changeClassProcess .process_He {
width: 36px;
height: 36px;
background-color: #3FC4FF;
text-align: center;
line-height: 36px;
color: #fff;
border-radius: 50%;
}
.changeClassProcess .process_Left {
width: 40%;
height: 100%;
text-align: right;
}
.changeClassProcess .process_center {
width: 20%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.changeClassProcess .process_Right {
width: 40%;
height: 100%;
text-align: left;
}
.changeClassProcess .process_OR {
background-color: #F28C1D;
}
.changeClassProcess .addProcessBtn {
width: 100%;
height: 45px;
text-align: center;
line-height: 45px;
color: #2961FE;
border: 1px dashed #2961FE;
border-radius: 2px;
cursor: pointer;
}
.changeClassProcess .process_BtnList {
margin-top: 30px;
width: 100%;
display: flex;
justify-content: center;
}
.changeClassProcess .process_BtnOne {
width: 90px;
height: 38px;
text-align: center;
line-height: 38px;
border-radius: 2px;
border: 1px solid #A1AAB2;
color: #000000;
cursor: pointer;
margin-right: 50px;
}
.changeClassProcess .SetShouSun {
display: inline-block;
border-radius: 2px;
background-color: #8175FB;
color: #fff;
position: absolute;
right: 10px;
width: 60px;
height: 27px;
left: 0;
top: 0;
line-height: 27px;
font-size: 13px;
}
.changeClassProcess .operationDiv {
position: absolute;
right: 0;
top: 0;
height: 30px;
line-height: 30px;
padding-right: 10px;
vertical-align: top;
}
.changeClassProcess .operationDiv i:first-child {
font-size: 13px;
}
.changeClassProcess .operationDiv i:hover {
color: red;
}
.changeClassProcess .justTwoClass {
margin-left: 8px;
}
</style>
<template>
<div class="changeClassProcess">
<div class="processList">
<div class="processTop">发起人</div>
<div class="processLine">
<i class="iconfont icon-down"></i>
</div>
</div>
<template v-for="(item,index) in flowObj.FlowNodeList">
<div class="processList" @click="getItem(index)" :key="index">
<template v-if="item.FlowAduitList&&item.FlowAduitList.length==1">
<div class="processTop otherList">
{{item.FlowAduitList[0].AduitName}}
<template v-if="item.FlowAduitList&&item.FlowAduitList.length>0 && item.FlowAduitList[0].IsSpecNode==1">
<span class="SetShouSun">设定收损</span>
</template>
<div class="operationDiv">
<i class="iconfont icon-shanchu" style="position:relative;top:-2px;" @click.stop="DeleteNode(index)"></i>
<i style="margin:0 8px;" class="iconfont icon-shangyi2" v-if="index!=0"
@click.stop="moveDown(index,0)"></i>
<i class="iconfont icon-xiayi" :class="{'justTwoClass':index==0}" @click.stop="moveDown(index,1)"
v-if="index!=flowObj.FlowNodeList.length-1"></i>
</div>
</div>
<div class="processLine" v-if="index!=flowObj.FlowNodeList.length-1">
<i class="iconfont icon-down"></i>
</div>
</template>
<template v-else>
<div class="processTop process_TwoList">
<div class="process_Left">{{item.FlowAduitList[0].AduitName}}</div>
<div class="process_center">
<template v-if="item.FlowAduitList[0].AuditWay==2">
<div class="process_He"></div>
</template>
<template v-if="item.FlowAduitList[0].AuditWay==3">
<div class="process_He process_OR">或者</div>
</template>
</div>
<div class="process_Right">
<template v-for="(subItem,subIndex) in item.FlowAduitList" v-if="subIndex>0">
{{subItem.AduitName}}
</template>
</div>
<template v-if="item.FlowAduitList&&item.FlowAduitList.length>0 && item.FlowAduitList[0].IsSpecNode==1">
<span class="SetShouSun">设定收损</span>
</template>
<div class="operationDiv">
<i class="iconfont icon-shanchu" style="position:relative;top:-2px;" @click.stop="DeleteNode(index)"></i>
<i style="margin:0 8px;" class="iconfont icon-shangyi2" v-if="index!=0"
@click.stop="moveDown(index,0)"></i>
<i class="iconfont icon-xiayi" :class="{'justTwoClass':index==0}" @click.stop="moveDown(index,1)"
v-if="index!=flowObj.FlowNodeList.length-1"></i>
</div>
</div>
<div class="processLine" v-if="index!=flowObj.FlowNodeList.length-1">
<i class="iconfont icon-down"></i>
</div>
</template>
</div>
</template>
<br />
<div class="addProcessBtn" @click="AddNode">新增节点</div>
<div class="process_BtnList">
<q-btn label="保存" color="accent q-px-md" style="font-weight:400 !important" @click="setBackClassFlow" />
</div>
<process-form v-if="isShowProcess" :save-obj="processObj" :NodeIndex="ChooseNodeIndex" @close="closeProcessForm"
@success="refreshPage" :authObj="showObj">
</process-form>
</div>
</template>
<script>
import processForm from '../../components/flow/process-form';
import {
queryBackClassFlow,
saveBackClassFlow
} from '../../api/system/index'
export default {
meta: {
title: ""
},
components: {
processForm
},
data() {
return {
msg: {
FlowId: 12
},
isShowProcess: false, //显示旁边弹窗
processObj: {}, //传递子组件
flowObj: {
FlowId: 12,
FlowName: "教师考核审批流程",
FlowNodeList: [], //审核节点列表
},
//显示对象
showObj: {
isShowShouSun: 0, //不显示收损
},
ChooseNodeIndex: 0,
}
},
created() {},
mounted() {
this.getBackClassFlow();
},
methods: {
//新增节点
AddNode() {
this.flowObj.FlowNodeList.push({
FlowId: 0,
NodeId: 0,
NodeName: "新增节点",
SortNum: 0,
FlowAduitList: [{
AduitName: "新增节点",
AuditType: 2,
AuditWay: 2,
CheckId: 0,
FlowId: 0,
IsSpecNode: 0,
NodeId: 8,
PostType: 0,
UserId: 0,
}]
});
},
//删除节点
DeleteNode(index) {
this.$q.dialog({
title: '提示信息',
message: '是否确定删除该流程',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
this.flowObj.FlowNodeList.splice(index, 1);
}).onCancel(() => {
});
},
getBackClassFlow() {
queryBackClassFlow(this.msg).then(res => {
if (res.Code == 1 && res.Data) {
this.flowObj = res.Data;
}
})
},
//点开旁边
getItem(nodeIndex) {
this.processObj = this.flowObj;
this.ChooseNodeIndex = nodeIndex;
this.isShowProcess = true;
},
//关闭
closeProcessForm() {
this.isShowProcess = false
},
//成功刷新
refreshPage() {
this.isShowProcess = false;
this.getBackClassFlow();
},
//保存退课流程
setBackClassFlow() {
saveBackClassFlow(this.flowObj).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '操作成功',
position: 'top'
})
this.refreshPage();
}
})
},
//下移下移
moveDown(index, IsUp) {
var currentItem = this.flowObj.FlowNodeList[index];
if (IsUp == 0) {
if (index > 0) {
var upItem = this.flowObj.FlowNodeList[index - 1];
this.$set(this.flowObj.FlowNodeList, index - 1, currentItem);
this.$set(this.flowObj.FlowNodeList, index, upItem);
}
} else {
if (index != this.flowObj.FlowNodeList.length - 1) {
var downItem = this.flowObj.FlowNodeList[index + 1];
this.$set(this.flowObj.FlowNodeList, index + 1, currentItem);
this.$set(this.flowObj.FlowNodeList, index, downItem);
}
}
}
}
}
</script>
\ No newline at end of file
......@@ -404,7 +404,8 @@
//获取员工列表
getEmployee() {
var qMsg = {
EmployeeName: ""
EmployeeName: "",
IsLeave:1,
}
queryEmployee(qMsg).then(res => {
if (res.Code == 1) {
......
......@@ -264,9 +264,7 @@
},
//刷新列表
refreshStudentPage() {
console.log("2222");
this.$emit("success");
},
//客户情况信息的修改
consultsuccess(data) {
......
......@@ -2,21 +2,8 @@
</style>
<template>
<div class="page-body">
<q-tabs
style="margin-bottom: 20px"
v-model="tabCheck"
narrow-indicator
dense
align="left"
class="text-primary"
>
<q-tab
:ripple="false"
v-for="(qitem, qindex) in tabList"
:name="qitem.name"
:label="qitem.label"
:key="qindex"
/>
<q-tabs style="margin-bottom: 20px" v-model="tabCheck" narrow-indicator dense align="left" class="text-primary">
<q-tab :ripple="false" v-for="(qitem, qindex) in tabList" :name="qitem.name" :label="qitem.label" :key="qindex" />
</q-tabs>
<div>
<template v-if="tabCheck == '1'">
......@@ -55,80 +42,89 @@
<!-- vip课程申请 -->
<vipcourse-form></vipcourse-form>
</template>
<template v-if="tabCheck == '10'">
<!-- 课程审批 -->
<bourseapproval-form></bourseapproval-form>
</template>
</div>
</div>
</template>
<script>
import backclassflowForm from "../../components/flow/backclassflow-form";
import changeclassflowForm from "../../components/flow/changeclassflow-form";
import stopclassflowForm from "../../components/flow/stopclassflow-form";
import transferForm from "../../components/flow/transfer-form";
import temporaryClassForm from "../../components/flow/temporaryClass-form";
import separateForm from "../../components/flow/separate-form";
import leaveForm from "../../components/flow/leave-form";
import tougaoForm from "../../components/flow/tougao-form";
import vipcourseForm from "../../components/flow/vipcourse-form";
export default {
meta: {
title: "流程设置",
},
components: {
backclassflowForm,
changeclassflowForm,
stopclassflowForm,
transferForm,
temporaryClassForm,
separateForm,
leaveForm,
tougaoForm,
vipcourseForm
},
data() {
return {
tabList: [
{
name: "1",
label: "退课流程",
},
{
name: "2",
label: "调课流程",
},
{
name: "3",
label: "停课流程",
},
{
name: "4",
label: "转班流程",
},
{
name: "5",
label: "临时上课邀请流程",
},
{
name: "6",
label: "分拆",
},
{
name: "7",
label: "请假流程",
},
{
name: "8",
label: "投稿审批"
},
{
name: "9",
label: "vip课程申请"
}
],
tabCheck: "1",
};
},
created() {},
mounted() {},
methods: {},
};
</script>
import backclassflowForm from "../../components/flow/backclassflow-form";
import changeclassflowForm from "../../components/flow/changeclassflow-form";
import stopclassflowForm from "../../components/flow/stopclassflow-form";
import transferForm from "../../components/flow/transfer-form";
import temporaryClassForm from "../../components/flow/temporaryClass-form";
import separateForm from "../../components/flow/separate-form";
import leaveForm from "../../components/flow/leave-form";
import tougaoForm from "../../components/flow/tougao-form";
import vipcourseForm from "../../components/flow/vipcourse-form";
import bourseapprovalForm from "../../components/flow/bourseApproval-form";
export default {
meta: {
title: "流程设置",
},
components: {
backclassflowForm,
changeclassflowForm,
stopclassflowForm,
transferForm,
temporaryClassForm,
separateForm,
leaveForm,
tougaoForm,
vipcourseForm,
bourseapprovalForm
},
data() {
return {
tabList: [{
name: "1",
label: "退课流程",
},
{
name: "2",
label: "调课流程",
},
{
name: "3",
label: "停课流程",
},
{
name: "4",
label: "转班流程",
},
{
name: "5",
label: "临时上课邀请流程",
},
{
name: "6",
label: "分拆",
},
{
name: "7",
label: "请假流程",
},
{
name: "8",
label: "投稿审批"
},
{
name: "9",
label: "vip课程申请"
},
{
name: "10",
label: "教师考评审批"
}
],
tabCheck: "1",
};
},
created() {},
mounted() {},
methods: {},
};
</script>
\ No newline at end of file
......@@ -29,8 +29,20 @@
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="考核" @click="goAssessTable()" />
</div>
</template>
<template v-slot:body-cell-AuditStatus="props">
<q-td :props="props">
<template v-if="props.row.AuditStatus==0">
待提交
</template>
<template v-else>
{{props.row.AuditStatusName}}
</template>
</q-td>
</template>
<template v-slot:body-cell-OptionId="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" @click="submitApproval(props.row)"
label="提交审批" v-if="props.row.AuditStatus==0&&props.row.TeacherSignDate" />
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" @click="showForm(props.row,1)"
label="评价" />
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" @click="showForm(props.row,2)"
......@@ -52,7 +64,8 @@
</template>
<script>
import {
queryTeacherAssessmentPage
queryTeacherAssessmentPage,
SubmitTeacherAssessmentApproval
} from '../../api/teacher/index';
import behaviorForm from "../../components/teacher/behavior-form.vue";
import helpForm from "../../components/teacher/help-form.vue";
......@@ -112,6 +125,12 @@
field: "TotalScore",
align: "left"
},
{
name: "AuditStatus",
label: "审核状态",
field: "AuditStatus",
align: "left"
},
{
name: 'OptionId',
label: '操作',
......@@ -182,6 +201,24 @@
closeForm() {
this.isShowBehavior = false;
this.isShowHelp = false;
},
//提交审批
submitApproval(item) {
var saveObj = {
Id: item.Id
};
SubmitTeacherAssessmentApproval(saveObj).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "提交审核成功!",
position: "top"
});
this.getTeacherAssessmentPage()
}
});
}
}
}
......
......@@ -166,6 +166,9 @@
<!-- 显示Vip课程申请 -->
<vipcoursebillForm v-if="isShowVipCourseForm" :seting-obj="billObj" :showType="showType" @close="closeBillForm"
@success="refreshPage"></vipcoursebillForm>
<!-- 显示教师考核申请 -->
<assessmentbillForm v-if="isShowAssessmentForm" :seting-obj="billObj" :showType="showType" @close="closeBillForm"
@success="refreshPage"></assessmentbillForm>
</div>
</div>
</template>
......@@ -187,6 +190,7 @@
import examBillForm from "../../components/sale/exambill-form.vue";
import tougaoForm from "../../components/sale/tougao-form.vue";
import vipcoursebillForm from "../../components/sale/vipcoursebill-form.vue";
import assessmentbillForm from "../../components/sale/assessmentbill-form.vue";
export default {
meta: {
title: "我的业务单据",
......@@ -202,7 +206,8 @@
zujuanBillForm,
examBillForm,
tougaoForm,
vipcoursebillForm
vipcoursebillForm,
assessmentbillForm
},
data() {
return {
......@@ -295,8 +300,9 @@
isShowLeaveBillForm: false, //是否显示请假申请单详情
isShowZujuanBillForm: false, //是否显示组卷申请单详情
isShowExamBillForm: false, //是否显示考试申请详情
isShowTougaoForm: false, //是否显示投稿申请详情,
isShowVipCourseForm: false, //是否显示Vip课程申请详情,
isShowTougaoForm: false, //是否显示投稿申请详情
isShowVipCourseForm: false, //是否显示Vip课程申请详情
isShowAssessmentForm: false, //手否显示教师考核申请
};
},
created() {
......@@ -361,6 +367,7 @@
this.isShowExamBillForm = false;
this.isShowTougaoForm = false;
this.isShowVipCourseForm = false;
this.isShowAssessmentForm = false;
this.billObj = {};
},
//显示表单
......@@ -400,9 +407,15 @@
//投稿审批
else if (item.ReceiptType == 10) {
this.isShowTougaoForm = true;
} else if (item.ReceiptType == 11) {
}
//Vip课程申请
else if (item.ReceiptType == 11) {
this.isShowVipCourseForm = true;
}
//教师考核申请
else if (item.ReceiptType == 12) {
this.isShowAssessmentForm = true;
}
this.showType = type;
this.billObj = item;
},
......@@ -450,6 +463,7 @@
this.isShowZujuanBillForm = false;
this.isShowExamBillForm = false;
this.isShowVipCourseForm = false;
this.isShowAssessmentForm = false;
this.billObj = {};
this.getStuBackBill();
},
......
......@@ -107,6 +107,8 @@
TotalScore: 0, //总分
DetailsList: [],
CheckType: 0, //1-教学主管,2-教务主管
IsJiaoWuFinish:0,//教务主管是否完成打分
IsTeacherFinish:0,//教学主管是否完成打分
},
isAuth: false, //是否有权限
saveLoading: false,
......@@ -174,6 +176,8 @@
this.saveObj.TotalScore = tempData.TotalScore;
this.saveObj.CheckType = tempData.CheckType;
this.saveObj.DetailsList = tempData.DetailsList;
this.saveObj.IsTeacherFinish=tempData.IsTeacherFinish;
this.saveObj.IsJiaoWuFinish=tempData.IsJiaoWuFinish;
} else {
this.$q.notify({
type: 'negative',
......
......@@ -164,6 +164,10 @@
<!-- 显示Vip课程申请 -->
<vipcoursebillForm v-if="isShowVipCourseForm" :seting-obj="billObj" :showType="showType" @close="closeBillForm"
@success="refreshPage"></vipcoursebillForm>
<!-- 显示教师考核申请 -->
<assessmentbillForm v-if="isShowAssessmentForm" :seting-obj="billObj" :showType="showType" @close="closeBillForm"
@success="refreshPage"></assessmentbillForm>
</div>
</div>
</template>
......@@ -185,6 +189,7 @@
import stopbillForm from '../../components/sale/stopbill-form';
import temporaryClassForm from '../../components/sale/temporaryClassbill-form';
import vipcoursebillForm from "../../components/sale/vipcoursebill-form.vue";
import assessmentbillForm from "../../components/sale/assessmentbill-form.vue";
export default {
meta: {
title: "教务单据查询"
......@@ -195,7 +200,8 @@
ordertransForm,
stopbillForm,
temporaryClassForm,
vipcoursebillForm
vipcoursebillForm,
assessmentbillForm,
},
data() {
return {
......@@ -294,6 +300,7 @@
isShowStopBillForm: false, //是否显示停课订单详情
isShowTemporaryClass: false, //是否显示临时上课邀请订单详情
isShowVipCourseForm: false, //是否显示Vip课程申请详情
isShowAssessmentForm: false, //是否显示教师考核详情
}
},
created() {
......@@ -340,11 +347,11 @@
this.isShowStopBillForm = false;
this.isShowTemporaryClass = false;
this.isShowVipCourseForm = false;
this.isShowAssessmentForm = false;
this.billObj = {};
},
//显示表单
showBillForm(item, type) {
//调课
if (item.ReceiptType == 1) {
this.isShowChangeBillForm = true;
......@@ -365,10 +372,14 @@
else if (item.ReceiptType == 4) {
this.isShowTemporaryClass = true;
}
//临时上课邀
//Vip课程申
else if (item.ReceiptType == 11) {
this.isShowVipCourseForm = true;
}
//教师考核申请
else if (item.ReceiptType == 12) {
this.isShowAssessmentForm = true;
}
this.showType = type;
this.billObj = item;
this.isShowEdit = false;
......@@ -409,6 +420,7 @@
this.isShowBackBillForm = false;
this.isShowChangeBillForm = false;
this.isShowVipCourseForm = false;
this.isShowAssessmentForm = false;
this.billObj = {};
this.getStuBackBill();
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment